インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
論理演算用のインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の組込み関数のプロトタイプは、ヘッダーファイル xmmintrin.h 内にあります。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
各組込み関数演算の結果はレジスターに配置されます。ここでは、このレジスターを組込み関数ごとに R0 から R3 までを使用して示します。R0、R1、R2、および R3 はそれぞれ、結果レジスターの 4 つの 32 ビット部分を表します。
組込み関数名 |
演算 |
対応するインテル® 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 |