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

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

各組み込み関数演算の結果はレジスターに配置されます。ここでは、このレジスターを組み込み関数ごとに R0 から R3 までを使用して示します。結果レジスターの 4 つの 32 ビット部分を、R0、R1、R2、および R3 とそれぞれ表します。

次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。

組み込み関数名 操作 対応する SSE 命令
_mm_and_ps ビット単位の AND (論理積) ANDPS
_mm_andnot_ps ビット単位の ANDNOT (論理積否定) 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 R1 R2 R3
a0 & b0 a1 & b1 a2 & b2 a3 & b3

 

__m128 _mm_andnot_ps(__m128 a, __m128 b)

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

R0 R1 R2 R3
~a0 & b0 ~a1 & b1 ~a2 & b2 ~a3 & b3

 

__m128 _mm_or_ps(__m128 a, __m128 b)

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

R0 R1 R2 R3
a0 | b0 a1 | b1 a2 | b2 a3 | b3

 

__m128 _mm_xor_ps(__m128 a, __m128 b)

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

R0 R1 R2 R3
a0 ^ b0 a1 ^ b1 a2 ^ b2 a3 ^ b3