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

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

組込み関数名 操作 対応する命令
_mm_and_ps ビット単位のAND(論理積) ANDPS
_mm_andnot_ps NOT(否定) ANDNPS
_mm_or_ps ビット単位のOR(論理和) ORPS
_mm_xor_ps ビット単位のXOR(排他的論理和) XORPS
 

__m128 _mm_and_ps(__m128 a, __m128 b)

aの4個の単精度浮動小数点値とbの4個の単精度浮動小数点値について、ビット単位のAND (論理積)を計算します。

r0 := a0 & b0
r1 := a1 & b1
r2 := a2 & b2
X

__m128 _mm_andnot_ps(__m128 a, __m128 b)

aの4個の単精度浮動小数点値のNOT (否定)演算を実行し、その結果とbの4個の単精度浮動小数点値について、ビット単位のAND (論理積)を計算します。

r0 := ~a0 & b0
r1 := ~a1 & b1
r2 := ~a2 & b2
非対応

__m128 _mm_or_ps(__m128 a, __m128 b)

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

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

r2 := a2 | b2

r3 := a3 | b3

__m128 _mm_xor_ps(__m128 a, __m128 b)

aの4個の単精度浮動小数点値とbの4個の単精度浮動小数点値について、ビット単位のXOR (排他的論理和)を計算します。

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

r2 := a2 ^ b2

r3 := a3 ^ b3