用于生成AVX shuffle内在函数的immediates的宏

时间:2016-05-07 12:19:17

标签: c macros intel intrinsics avx

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

1 个答案:

答案 0 :(得分:3)

您仍然使用_MM_SHUFFLE()进行随机播放,将控制输入视为8位立即数。例如_mm256_shuffle_epi32vpshufd)在两个车道上都进行相同的随机播放。

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

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

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