2015-01-14 6 views
0

Предположим, что у меня есть 128-битный целочисленный вектор а:равны нулю инструкции в SSE

__m128i x; 

Тогда как знать, если все биты в х равны нулю?

Проверка каждого упакованного целого является простым подходом.

Но я ищу более быстрый способ.

Есть ли какие-либо инструкции в SSE, которые могут выполнять эту работу?

ответ

3

Если это SSE 4.1, вы можете использовать _mm_testz_si128, например.

_mm_testz_si128(idata, _mm_set1_epi32(0x0000)) 

Возможно также посмотреть в Check XMM register for all zeroes для решения совместимого SSE2.

+0

Это действительно помогло. – KUN

+0

Рад это слышать :) –

+3

Обратите внимание, что вам не нужно генерировать нулевой вектор для второго параметра, вы можете просто передать 'idata' для обоих. –

Смежные вопросы