用于为 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
以提高人类可读性,尤其是。在每个元素不同的情况下。
在 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
以提高人类可读性,尤其是。在每个元素不同的情况下。