インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

論理演算組込み関数

ここでは、整数論理演算用のインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) の組込み関数について説明します。インテル® SSE2 の組込み関数のプロトタイプは、ヘッダーファイル emmintrin.h 内にあります。

各組込み関数演算の結果は R レジスターに配置されます。各レジスターに配置される値については、次の表の関数名の詳細で示します。

組込み関数名

演算

対応するインテル® SSE2 命令

_mm_and_si128

AND (論理積) を計算する

PAND

_mm_andnot_si128

ANDNOT (論理積否定) を計算する

PANDN

_mm_or_si128

OR (論理和) を計算する

POR

_mm_xor_si128

XOR (排他的論理和) を計算する

PXOR

_mm_and_si128

__m128i _mm_and_si128(__m128i a, __m128i b);

a の 128 ビット値と b の 128 ビット値について、ビット単位の AND (論理積) を計算します。

R0

a & b

_mm_andnot_si128

__m128i _mm_andnot_si128(__m128i a, __m128i b);

a の 128 ビット値のビット単位の NOT (論理否定) を実行し、その結果と b の 128 ビット値について、ビット単位の AND (論理積) を計算します。

R0

(~a) & b

_mm_or_si128

__m128i _mm_or_si128(__m128i a, __m128i b);

a の 128 ビット値と b の 128 ビット値について、ビット単位の OR (論理和) を計算します。

R0

a | b

_mm_xor_si128

__m128i _mm_xor_si128(__m128i a, __m128i b);

a の 128 ビット値と b の 128 ビット値について、ビット単位の XOR (排他的論理和) を計算します。

R0

a ^ b