, Это вызывает так называемую задержку переформатирования ".

ался изо всех сил оптимизировать некоторый код, который я использую с помощью встроенных функций sse от Microsoft. Одна из самых больших проблем при оптимизации моего кода - это LHS, возникающая всякий раз, когда я хочу использовать константу. Кажется, есть некоторая информация о генерации определенных констант (Вот а такжездесь - раздел 13.4), но все его сборки (что я бы предпочел избежать).

Проблема в том, что когда я пытаюсь реализовать то же самое с помощью встроенных функций, msvc жалуется на несовместимые типы и т. Д. Кто-нибудь знает какие-либо эквивалентные приемы с использованием встроенных функций?

Пример - Генерация {1.0,1.0,1.0,1.0}

//pcmpeqw xmm0,xmm0 
__m128 t = _mm_cmpeq_epi16( t, t );

//pslld xmm0,25 
_mm_slli_epi32(t, 25);

//psrld xmm0,2
return _mm_srli_epi32(t, 2);

Это создает кучу ошибок о несовместимом типе (__m128 против _m128i). Я довольно новичок в этом, поэтому я почти уверен, что упускаю что-то очевидное. Кто-нибудь может помочь?

tldr Я могу генерировать vec __m128, заполненный постоянными числами одинарной точности с мс встроенными?

Спасибо за чтение :)

Ответы на вопрос(2)

Ваш ответ на вопрос