Почему _mm256_unpacklo "прыгает" двойное слово и где это говорит в документации?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему _mm256_unpacklo "прыгает" двойное слово и где это говорит в документации?

Сообщение Anonymous »

Я нахожу _MM256_unpacklo_epi32 инструкция немного смешной и не может действительно связать ее с документацией.
#include
#include

int main() {
__m256i a = _mm256_set_epi32(8, 7, 6, 5, 4, 3, 2, 1);
__m256i b = _mm256_set_epi32(16, 15, 14, 13, 12, 11, 10, 9);

__m256i c = _mm256_unpacklo_epi32(a, b);

int* values = (int*)&c;
for (size_t i = 0; i < 8 - 1; i++) {
std::cout
  • В чем причина этого? Есть ли инструкция, которая переключает нижние 128 -битные векторы из исходных векторов? Поведение не кажется мне таким полезным. Docs/CPP-компилятор/разработчик-Guide-Reference/2021-10/MM256-UNPACKLO-EPI8-16-32-64.HTML. Где это говорит, что второй самый низкий двойной слой игнорируется?


Подробнее здесь: https://stackoverflow.com/questions/794 ... o-in-the-d
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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