【发布时间】:2021-04-17 17:15:10
【问题描述】:
ARM NEON C 内部函数定义数组类型 (per docs here),它们是包含向量数据类型数组的 C 结构。例如,int16x4x2_t 是两个int16x4_t。
我的问题很简单:为什么会存在这些?与直接使用向量类型相比,它们是否具有一些性能优势?例如,如果我从双指针 vld1q_f64 到 float64x2_t 并使用 vaddq_f64、vmulq_f64、vfmaq_f64 等,我会期望与 vld1q_f64_x4-ing 和 float64x2x4_t 有任何性能差异并在数组元素上使用相同的函数。我想我只是对为什么他们创建这些固定长度的数组类型感到困惑,而直接对它们进行操作的唯一内在函数是加载和存储。
【问题讨论】:
标签: c optimization arm neon