反向__m512i寄存器中的值

Reverse the values in a __m512i register

本文关键字:寄存器 m512i 反向      更新时间:2023-10-16

我想扭转__m512i寄存器中所有值的顺序。我的主要问题是,我没有找到有关如何使用所有不同的洗牌操作的解释。我已经尝试了_mm512_shuffle_epi32,但是我找不到任何解释_MM_PERM_AAAA_MM_PERM_AAAB,实际上是工作的,并且仅通过尝试它们,我就无法完全使用它们。

找到了一个解决方案:

const __m512i reverseMask = _mm512_set_epi32 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
__m512i reversed = _mm512_permutevar_epi32(reverseMask,ObjectToReverse); 

请注意,"反向任务"不是真实的掩码,而是保留寄存器中每个对象位置以反向的寄存器。