Проверка работоспособности инструкции SSE - PullRequest
1 голос
/ 07 ноября 2011

Код, приведенный ниже, немного озадачил меня:


function(__m128 foo)
{
  __m128 bar = _mm_shuffle_ps(foo, foo, _MM_SHUFFLE(2,2,2,2))
}

Это просто взять 2-е слово foo и вставить его 4 раза в bar, или он делает что-то еще?

1 Ответ

2 голосов
/ 07 ноября 2011

Я не знаю, существует ли _mm_shuffle.Это должно быть _mm_shuffle_ps, учитывая __m128 аргументы.

В этом случае это именно то, что вы думаете.Он копирует 3-е (а не 2-е, отсчет начинается с 0 справа), так что это действительно 2-е слева) 32-битное слово foo во все 4 32-битных слова bar.Что еще он должен делать?

...