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

Use*_*291 3 c macros intel intrinsics avx

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

Pet*_*des 6

您仍然可以使用_MM_SHUFFLE()将控制输入作为 8 位立即数的随机播放。例如_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提高人类可读性,尤其是。在每个元素不同的情况下。

  • 不,我在脑海中执行此操作并写出十六进制值或写一条评论。但 `_MM_SHUFFLE` 基本上是一个以 4 为基数的宏。 (2认同)