После некоторых операций у меня есть регистр SSE, где в каждом из 16 байтов установлен младший бит, если какое-то условие было выполнено, или 0, если оно не было. Теперь я хотел бы извлечь это в битовую маску, где для каждого из этих 16 байтов установлен бит, если байт имеет значение один.
Я просмотрел руководство по внутренним функциям Intel вверх и вниз, но не смог найти, как это сделать. Псевдокод
void _mm_???(__m128i a)
FOR j := 0 to 15
i := j*8
IF a[i]
a[j] := 1
else
a[j] := 0
FI
ENDFOR