【发布时间】:2011-07-11 09:53:29
【问题描述】:
我最近注意到
_m128 m = _mm_set_ps(0,1,2,3);
在转换为浮点数组时将 4 个浮点数倒序排列:
(float*) p = (float*)(&m);
// p[0] == 3
// p[1] == 2
// p[2] == 1
// p[3] == 0
union { _m128 m; float[4] a; } 也会发生同样的情况。
为什么 SSE 操作使用这种排序?这没什么大不了的,但有点令人困惑。
还有一个后续问题:
当按索引访问数组中的元素时,应该按0..3 的顺序访问还是按3..0 的顺序访问?
【问题讨论】: