Я хотел бы изменить порядок всех значений в __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);
Обратите внимание, что «reverseMask» — это не настоящая маска, а регистр, который содержит позиции для каждого объекта в регистре для реверса.
Других решений пока нет …