我正在使用AVX指令手动优化某些代码。在某些时候,我想从一个(未对齐的)数组中收集一些带有_mm_i32gather_ps()的浮点数,因为它们位于随机位置(不连续)。
然而,我没有得到我期望的价值。我检查了索引(这是正确的),甚至当我对索引中的值进行硬编码时,例如
idx = _mm256_set_epi32(100,101,102,103,104,105,106,107);
values = _mm256_i32gather_ps(array,idx,1);
我没有得到预期的值。
据我所知,没有必要对齐数组,也不需要访问数组。 有谁看到我可能做错了什么?
由于