3
Мне нужно горизонтально добавить __m128i
, что соответствует 16 x epi8. Инструкции XOP сделали бы это тривиальным, но у меня его нет.Самый быстрый способ горизонтальной суммы SSE без знакового байтового вектора
Текущий метод:
hd = _mm_hadd_epi16(_mm_cvtepi8_epi16(sum), _mm_cvtepi8_epi16(_mm_shuffle_epi8(sum, swap)));
hd = _mm_hadd_epi16(hd, hd);
hd = _mm_hadd_epi16(hd, hd);
Есть ли лучший способ с до SSE4.1?