次の4つの論理演算組込み関数とそれに対応する命令は、ストリーミングSIMD拡張命令2 をサポートするプロセッサ上で有効です。
ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイルemmintrin.h内にあります。
__m128i _mm_and_si128(__m128i a, __m128i b)
(PAND を使用)a の128ビット値と b の128ビット値について、ビット単位の AND (論理和)を計算します。
r := a & b
__m128i _mm_andnot_si128(__m128i a, __m128i b)
(PANDNを使用)a の128ビット値のビット単位の NOT (否定)を実行し、その結果と b の128ビット値について、ビット単位の AND (論理積)を計算します。
r := (~a) & b
__m128i _mm_or_si128(__m128i a, __m128i b)
(PORを使用)a の128ビット値と b の128ビット値について、ビット単位の OR (論理和)を計算します。
r := a | b
__m128i _mm_xor_si128(__m128i a, __m128i b)
(PXOR を使用)a の128ビット値と b の128ビット値について、ビット単位の XOR (論理和)を計算します。
r := a ^ b