比較組込み関数は、aとbの比較を実行します。パックド形式の場合は、a と b の2つの倍精度浮動小数点値を比較して、128ビットマスクを返します。スカラ形式の場合は、a と b の下位の倍精度浮動小数点値を比較して、64ビットマスクを返します。上位の倍精度浮動小数点値は、a からそのまま渡されます。マスクは、各要素について、比較の結果が真の場合は0xffffffffffffffffに設定し、偽の場合は0x0に設定します。命令名の後の r は、SIMD命令の実行時にオペランドが逆順にされることを示します。次の表に、ストリーミング SIMD 拡張命令 2の比較組込み関数のリストを示します。表の後に、各組込み関数の説明を示します。
ストリーミングSIMD拡張命令2の組込み関数のプロトタイプは、ヘッダ・ファイルemmintrin.h内にあります。
組込み関数名 | 対応する命令 | 比較の条件 |
---|---|---|
_mm_cmpeq_pd | CMPEQPD | = |
_mm_cmplt_pd | CMPLTPD | < |
_mm_cmple_pd | CMPLEPD | より小さいか等しい |
_mm_cmpgt_pd | CMPLTPDr | より大きい |
_mm_cmpge_pd | CMPLEPDr | より大きいか等しい |
_mm_cmpord_pd | CMPORDPD | 順序化可能 |
_mm_cmpunord_pd | CMPUNORDPD | 順序化不可能 |
_mm_cmpneq_pd | CMPNEQPD | ≠ |
_mm_cmpnlt_pd | CMPNLTPD | より小さくない |
_mm_cmpnle_pd | CMPNLEPD | より小さくなく等しくない |
_mm_cmpngt_pd | CMPNLTPDr | より大きくない |
_mm_cmpnge_pd | CMPLEPDr | より大きくなく等しくない |
_mm_cmpeq_sd | CMPEQSD | = |
_mm_cmplt_sd | CMPLTSD | < |
_mm_cmple_sd | CMPLESD | より小さいか等しい |
_mm_cmpgt_sd | CMPLTSDr | より大きい |
_mm_cmpge_sd | CMPLESDr | より大きいか等しい |
_mm_cmpord_sd | CMPORDSD | 順序化可能 |
_mm_cmpunord_sd | CMPUNORDSD | 順序化不可能 |
_mm_cmpneq_sd | CMPNEQSD | ≠ |
_mm_cmpnlt_sd | CMPNLTSD | より小さくない |
_mm_cmpnle_sd | CMPNLESD | より小さくなく等しくない |
_mm_cmpngt_sd | CMPNLTSDr | より大きくない |
_mm_cmpnge_sd | CMPNLESDR | より大きくなく等しくない |
_mm_comieq_sd | COMISD | = |
_mm_comilt_sd | COMISD | < |
_mm_comile_sd | COMISD | より小さいか等しい |
_mm_comigt_sd | COMISD | より大きい |
_mm_comige_sd | COMISD | より大きいか等しい |
_mm_comineq_sd | COMISD | 等しくない |
_mm_ucomieq_sd | UCOMISD | = |
_mm_ucomilt_sd | UCOMISD | < |
_mm_ucomile_sd | UCOMISD | より小さいか等しい |
_mm_ucomigt_sd | UCOMISD | より大きい |
_mm_ucomige_sd | UCOMISD | より大きいか等しい |
_mm_ucomineq_sd | UCOMISD | 等しくない |
__m128d _mm_cmpeq_pd(__m128d a, __m128d b)
a と b の2つの倍精度浮動小数点値が等しいかどうか比較します。
r0 := (a0 == b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 == b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmplt_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより小さいかどうか比較します。
r0 := (a0 < b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 < b1) ? 0xffffffffffffffff : 0x0
___m128d _mm_cmple_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより小さいか等しいかどうか比較します。
r0 := (a0 <= b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 <= b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpgt_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより大きいかどうか比較します。
r0 := (a0 > b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 > b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpge_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより大きいか等しいかどうか比較します。
r0 := (a0 >= b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 >= b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpord_pd(__m128d a, __m128d b)
a と b の2つの倍精度浮動小数点値が順序化可能かどうか判定します。
r0 := (a0 ord b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 ord b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpunord_pd(__m128d a, __m128d b)
a と b の2つの倍精度浮動小数点値が順序化不可能かどうか判定します。
r0 := (a0 unord b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 unord b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpneq_pd ( __m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値が等しくないかどうか比較します。
r0 := (a0 != b0) ? 0xffffffffffffffff : 0x0
r1 := (a1 != b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpnlt_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより小さくないかどうか比較します。
r0 := !(a0 < b0) ? 0xffffffffffffffff : 0x0
r1 := !(a1 < b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpnle_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより小さくなく等しくないかどうか比較します。
r0 := !(a0 <= b0) ? 0xffffffffffffffff : 0x0
r1 := !(a1 <= b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpngt_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより大きくないかどうか比較します。
r0 := !(a0 > b0) ? 0xffffffffffffffff : 0x0
r1 := !(a1 > b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpnge_pd(__m128d a, __m128d b)
aとbの2個の倍精度浮動小数点値について、aがbより大きくなく等しくないかどうか比較します。
r0 := !(a0 >= b0) ? 0xffffffffffffffff : 0x0
r1 := !(a1 >= b1) ? 0xffffffffffffffff : 0x0
__m128d _mm_cmpeq_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値が等しいかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 == b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmplt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 < b0) ? 0xffffffffffffffff : 0x0
r1 := i1
__m128d _mm_cmple_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいか等しいかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 <= b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpgt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 > b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpge_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいか等しいかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 >= b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpord_sd(__m128d a, __m128d b)
a と b の下位の倍精度浮動小数点値が順序化可能かどうか判定します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 ord b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpunord_sd(__m128d a, __m128d b)
a と b の下位の倍精度浮動小数点値が順序化不可能かどうか判定します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 unord b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpneq_sd(__m128d a, __m128d b)
a と b の下位の倍精度浮動小数点値が等しくないかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := (a0 != b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpnlt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さくないかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := !(a0 < b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpnle_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さくなく等しくないかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := !(a0 <= b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpngt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きくないかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := !(a0 > b0) ? 0xffffffffffffffff : 0x0
r1 := a1
__m128d _mm_cmpnge_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きくなく等しくないかどうか比較します。上位の倍精度浮動小数点値は、aからそのまま渡されます。
r0 := !(a0 >= b0) ? 0xffffffffffffffff : 0x0
r1 := a1
int _mm_comieq_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aとbが等しいかどうか比較します。aとbが等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 == b0) ? 0x1 : 0x0
int _mm_comilt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいかどうか比較します。aがbより小さい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 < b0) ? 0x1 : 0x0
int _mm_comile_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいか等しいかどうか比較します。aがbより小さいか等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 <= b0) ? 0x1 : 0x0
int _mm_comigt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいかどうか比較します。aがbより大きい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 > b0) ? 0x1 : 0x0
int _mm_comige_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいか等しいかどうか比較します。aがbより大きいか等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 >= b0) ? 0x1 : 0x0
int _mm_comineq_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aとbが等しくないかどうか比較します。aとbが等しくない場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 != b0) ? 0x1 : 0x0
int _mm_ucomieq_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aとbが等しいかどうか比較します。aとbが等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 == b0) ? 0x1 : 0x0
int _mm_ucomilt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいかどうか比較します。aがbより小さい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 < b0) ? 0x1 : 0x0
int _mm_ucomile_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより小さいか等しいかどうか比較します。aがbより小さいか等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 <= b0) ? 0x1 : 0x0
int _mm_ucomigt_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいかどうか比較します。aがbより大きい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 > b0) ? 0x1 : 0x0
int _mm_ucomige_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aがbより大きいか等しいかどうか比較します。aがbより大きいか等しい場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 >= b0) ? 0x1 : 0x0
int _mm_ucomineq_sd(__m128d a, __m128d b)
aとbの下位の倍精度浮動小数点値について、aとbが等しくないかどうか比較します。aとbが等しくない場合は、1を返します。それ以外の場合は、0を返します。
r := (a0 != b0) ? 0x1 : 0x0