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

ストリーミング SIMD 拡張命令 (SSE) の組込み関数のプロトタイプは、ヘッダファイル 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
r3 := a3 & b3

__m128 _mm_andnot_ps(__m128 a, __m128 b)

a の 4 つの単精度浮動小数点値の NOT (否定) 演算を実行し、その結果と b の 4 つの単精度浮動小数点値について、ビット単位の AND (論理積) を計算します。
r0 := ~a0 & b0
r1 := ~a1 & b1
r2 := ~a2 & b2
r3 := ~a3 & b3

__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