ストリーミング SIMD 拡張命令 2 の整数論理演算

次の 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