インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
次の表に、浮動小数点論理演算用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数のリストを示します。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。
これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
各組込み関数演算の結果はレジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。各組込み関数の結果レジスターは R0 と R1 で示します。R0 および R1 はそれぞれ、結果レジスターの 1 つの部分を表します。
組込み関数名 |
演算 |
対応するインテル® SSE2 命令 |
---|---|---|
_mm_and_pd |
AND (論理積) を計算する |
ANDPD |
_mm_andnot_pd |
ANDNOT (論理積否定) を計算する |
ANDNPD |
_mm_or_pd |
OR (論理和) を計算する |
ORPD |
_mm_xor_pd |
XOR (排他的論理和) を計算する |
XORPD |
__m128d _mm_and_pd(__m128d a, __m128d b);
a と b の 2 つの倍精度浮動小数点値について、ビット単位の AND (論理積) を計算します。
R0 |
R1 |
---|---|
a0 & b0 |
a1 & b1 |
__m128d _mm_andnot_pd(__m128d a, __m128d b);
a の 128 ビット値のビット単位の NOT (論理否定) を実行し、その結果と b の 128 ビット値について、ビット単位の AND (論理積) を計算します。
R0 |
R1 |
---|---|
(~a0) & b0 |
(~a1) & b1 |
__m128d _mm_or_pd(__m128d a, __m128d b);
a と b の 2 つの倍精度浮動小数点値について、ビット単位の OR (論理和) を計算します。
R0 |
R1 |
---|---|
a0 | b0 |
a1 | b1 |
__m128d _mm_xor_pd(__m128d a, __m128d b);
a と b の 2 つの倍精度浮動小数点値について、ビット単位の XOR (排他的論理和) を計算します。
R0 |
R1 |
---|---|
a0 ^ b0 |
a1 ^ b1 |