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

比較演算子

「=」および「≠」の比較については、オペランドは符号が異なっていてもかまいませんが、サイズは同じでなければなりません。「<」および「>」の比較については、オペランドは符号もサイズも同じでなければなりません。

比較演算子の構文の使用例

共通の親データ型のうち最も近いデータ型を返します。戻り値は、等しいかどうか、または等しくないかどうかの比較演算に使用します。

Iu8vec8 A;

Is8vec8 B;

I8vec8 C;

C = cmpneq(A,B);

サイズの異なる要素の等しいかどうか、または等しくないかどうかの比較演算には、型キャストが必要です。

Iu8vec8 A, C;

Is16vec4 B;

C = cmpeq(A,(Iu8vec8)B);

サイズや符号の異なる要素のより小さいかどうか、およびより大きいかどうかの比較には型キャストが必要です。

Iu16vec4 A;

Is16vec4 B, C;

C = cmpge((Is16vec4)A,B);

C = cmpgt(B,C);

比較演算子と対応する組込み関数

比較の条件

演算子

構文

組込み関数

等しい

cmpeq

R = cmpeq(A, B)

_mm_cmpeq_pi32
_mm_cmpeq_pi16
_mm_cmpeq_pi8

等しくない

cmpneq

R = cmpneq(A, B)

_mm_cmpeq_pi32
_mm_cmpeq_pi16
_mm_cmpeq_pi8
_mm_andnot_si64

より大きい

cmpgt

R = cmpgt(A, B)

_mm_cmpgt_pi32
_mm_cmpgt_pi16
_mm_cmpgt_pi8

以上

cmpge

R = cmpge(A, B)

_mm_cmpgt_pi32
_mm_cmpgt_pi16
_mm_cmpgt_pi8
_mm_andnot_si64

より小さい

cmplt

R = cmplt(A, B)

_mm_cmpgt_pi32
_mm_cmpgt_pi16
_mm_cmpgt_pi8

以下

cmple

R = cmple(A, B)

_mm_cmpgt_pi32
_mm_cmpgt_pi16
_mm_cmpgt_pi8
_mm_andnot_si64

比較演算子のオペランドは、そのサイズも符号も、次の「比較演算子の多重定義」の表に従っていなければなりません。

比較演算子の多重定義

R

比較条件

A

B

I32vec2 R

cmpeq
cmpne

I[s|u]32vec2 B

I[s|u]32vec2 B

I16vec4 R

 

I[s|u]16vec4 B

I[s|u]16vec4 B

I8vec8 R

 

I[s|u]8vec8 B

I[s|u]8vec8 B

I32vec2 R

cmpgt
cmpge
cmplt
cmple

Is32vec2 B

Is32vec2 B

I16vec4 R

 

Is16vec4 B

Is16vec4 B

I8vec8 R

 

Is8vec8 B

Is8vec8 B