我了解 _mm_shuffle_ps
的工作原理。例如,在下面。
__m128 r = _mm_shuffle_ps(x,y, _MM_SHUFFLE(2,0,2,0));
r
将包含内容,x[0]
、x[2]
、y[0]
, y[2]
.
但我看到 _MM_SHUFFLE
也为 _mm256_shuffle_ps
使用了 4 个参数,而每个 vector 都有 8 个元素。所以,逻辑上 _MM_SHUFFLE
应该有 8 个参数。有人可以解释一下这是如何工作的吗?
最佳答案
_mm256_shuffle_ps
独立地洗牌两个 128 位 channel 中的每一个,就好像 _mm_shuffle_ps
是在两个 XMM 上调用的。如果你想洗牌所有 8 个 32 位元素,你需要 _mm256_permutevar8x32_ps
关于c - _mm256_shuffle_ps 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41073382/