Инвертировать значения в регистре __m512i

Я хотел бы изменить порядок всех значений в __m512i регистр.
Моя главная проблема заключается в том, что я не нахожу объяснения того, как использовать все различные операции тасования. Я уже пробовала _mm512_shuffle_epi32 но я не могу найти объяснения, как _MM_PERM_AAAA, _MM_PERM_AAAB… на самом деле работает, и просто пробуя их, я не понимаю, как их использовать.

0

Решение

Нашел решение:

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» — это не настоящая маска, а регистр, который содержит позиции для каждого объекта в регистре для реверса.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]