, Это вызывает так называемую задержку переформатирования ".
ался изо всех сил оптимизировать некоторый код, который я использую с помощью встроенных функций 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, заполненный постоянными числами одинарной точности с мс встроенными?
Спасибо за чтение :)