Код, приведенный ниже, немного озадачил меня:
function(__m128 foo) { __m128 bar = _mm_shuffle_ps(foo, foo, _MM_SHUFFLE(2,2,2,2)) }
Это просто взять 2-е слово foo и вставить его 4 раза в bar, или он делает что-то еще?
Я не знаю, существует ли _mm_shuffle.Это должно быть _mm_shuffle_ps, учитывая __m128 аргументы.
_mm_shuffle
_mm_shuffle_ps
__m128
В этом случае это именно то, что вы думаете.Он копирует 3-е (а не 2-е, отсчет начинается с 0 справа), так что это действительно 2-е слева) 32-битное слово foo во все 4 32-битных слова bar.Что еще он должен делать?
foo
bar