Как использовать _mm256_shuffle_epi8 для упорядочивания элементов ⇐ C++
Как использовать _mm256_shuffle_epi8 для упорядочивания элементов
Я пробую следующий код. Я знаю, что в функции перемешивания есть некоторые ограничения по полосам движения. Но я не знаю, как правильно с этим справиться. Есть у кого-нибудь идеи?
#include интервал основной() { auto vals = _mm256_setr_epi8( 0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11, 0, 0, 0, 0, 12, 15, 18, 21, 13, 16, 19, 22, 14, 17, 20, 23, 0, 0, 0, 0 ); автоматическая маска = _mm256_setr_epi8( 0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11, 16, 20, 24, 17, 21, 25, 18, 22, 26, 19, 23, 27, -1, -1, -1, -1, -1, -1, -1, -1); auto res = _mm256_shuffle_epi8 (значения, маска); /*рез: 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 12 17 18 19 20 21 22 23 0 0 0 0 0 0 0 0 0 но должен 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 0 0 0 0 0 0 0 0 */ вернуть 0; }
Я пробую следующий код. Я знаю, что в функции перемешивания есть некоторые ограничения по полосам движения. Но я не знаю, как правильно с этим справиться. Есть у кого-нибудь идеи?
#include интервал основной() { auto vals = _mm256_setr_epi8( 0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11, 0, 0, 0, 0, 12, 15, 18, 21, 13, 16, 19, 22, 14, 17, 20, 23, 0, 0, 0, 0 ); автоматическая маска = _mm256_setr_epi8( 0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11, 16, 20, 24, 17, 21, 25, 18, 22, 26, 19, 23, 27, -1, -1, -1, -1, -1, -1, -1, -1); auto res = _mm256_shuffle_epi8 (значения, маска); /*рез: 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 12 17 18 19 20 21 22 23 0 0 0 0 0 0 0 0 0 но должен 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 0 0 0 0 0 0 0 0 */ вернуть 0; }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
C++ создает текстовый файл путем анализа и упорядочивания чисел [закрыто]
Anonymous » » в форуме C++ - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-