次の 4 つの論理演算組込み関数とそれに対応する命令は、ストリーミング SIMD 拡張命令 2 (SSE2) をサポートするプロセッサ上で有効です。
SSE2 の組込み関数のプロトタイプは、ヘッダファイル 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