Перетасовка AVX с типами, отличными от байтовых ⇐ C#

Место общения программистов C#
Anonymous
Перетасовка AVX с типами, отличными от байтовых

Сообщение Anonymous »

API для перетасовки поддерживает только байты и сбайты

Код: Выделить всё

 //
// Summary:
//     __m256i _mm256_shuffle_epi8 (__m256i a, __m256i b)
//
//     VPSHUFB ymm, ymm, ymm/m256
//
// Parameters:
//   value:
//
//   mask:
public static Vector256 Shuffle(Vector256 value, Vector256 mask);
//
// Summary:
//     __m256i _mm256_shuffle_epi8 (__m256i a, __m256i b)
//
//     VPSHUFB ymm, ymm, ymm/m256
//
// Parameters:
//   value:
//
//   mask:
public static Vector256 Shuffle(Vector256 value, Vector256 mask);
Как бы вы перетасовали другие типы? Например, предположим, что у меня есть Vector256 и я хочу выполнить перетасовку с маской типа [0, 1, 7, 7, 3, 3, 2, 0]?< /p>
Придется ли мне вместо этого делать это на уровне байтов? т.е. преобразовать приведенную выше маску в ее байтовый эквивалент?

Подробнее здесь: https://stackoverflow.com/questions/787 ... -than-byte

Вернуться в «C#»