用于为 AVX shuffle 内在函数生成立即数的宏

Macro for generating immediates for AVX shuffle intrinsics

在 AVX 中,是否有任何特殊的宏可以帮助构造 _mm256_shuffle_* 内在函数的立即常量,例如 _MM_SHUFFLE(..) 用于其 SSE 对应项?我找不到。

对于将控制输入作为 8 位立即数的随机播放,您仍然使用 _MM_SHUFFLE()。例如_mm256_shuffle_epi32 (vpshufd) 在两条车道上进行相同的洗牌。

_MM_SHUFFLE(dd,cc,bb,aa) 只是将每个 arg 的低 2 位打包成 0bddccbbaa.

可以将_MM_SHUFFLE(1,1,1,1)(广播元素1)写成0b01010101,即0x55.

您可以使用 C++14 分隔符(或它们的任何名称)将其写为 0b01'01'01'01 以提高人类可读性,尤其是。在每个元素不同的情况下。