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

ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイルemmintrin.h内にあります。

__m128d _mm_and_pd(__m128d a, __m128d b)

(ANDPD を使用)ab の2個の倍精度浮動小数点値について、ビット単位の AND (論理積)を計算します。

r0 := a0 & b0
r1 := a1 & b1

__m128d _mm_andnot_pd(__m128d a, __m128d b)

(ANDNPD を使用)a の128ビット値のビット単位の NOT (否定)を実行し、その結果と b の128ビット値について、ビット単位の AND (論理積)を計算します。

r0 := (~a0) & b0
r1 := (~a1) & b1

__m128d _mm_or_pd(__m128d a, __m128d b)

(ORPD を使用)a b の2個の倍精度浮動小数点値について、ビット単位の OR (論理和)を計算します。

r0 := a0 | b0
r1 := a1 | b1

__m128d _mm_xor_pd(__m128d a, __m128d b)

(XORPD を使用)a b の2個の倍精度浮動小数点値について、ビット単位の XOR (論理和)を計算します。

r0 := a0 ^ b0
r1 := a1 ^ b1