インテル® 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 |
等しくない |
cmpneq |
R = cmpneq(A, B) |
_mm_cmpeq_pi32 |
より大きい |
cmpgt |
R = cmpgt(A, B) |
_mm_cmpgt_pi32 |
以上 |
cmpge |
R = cmpge(A, B) |
_mm_cmpgt_pi32 |
より小さい |
cmplt |
R = cmplt(A, B) |
_mm_cmpgt_pi32 |
以下 |
cmple |
R = cmple(A, B) |
_mm_cmpgt_pi32 |
比較演算子のオペランドは、そのサイズも符号も、次の「比較演算子の多重定義」の表に従っていなければなりません。
比較演算子の多重定義
R |
比較条件 |
A |
B |
---|---|---|---|
I32vec2 R |
cmpeq |
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 |
Is32vec2 B |
Is32vec2 B |
I16vec4 R |
|
Is16vec4 B |
Is16vec4 B |
I8vec8 R |
|
Is8vec8 B |
Is8vec8 B |