インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
比較操作用のインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の組込み関数のプロトタイプは、ヘッダーファイル xmmintrin.h 内にあります。
比較組込み関数は、a と b の比較を実行します。 パックド形式では、a と b の 4 つの単精度浮動小数点値を比較して、128 ビット・マスクを返します。 スカラー形式では、a と b の最下位の単精度浮動小数点値を比較して、32 ビット・マスクを返します。上位 3 つの単精度浮動小数点値は、a からそのまま渡されます。 マスクは、各要素について、比較の結果が真の場合は 0xffffffff に設定し、偽の場合は 0x0 に設定されます。
各組込み関数演算の結果はレジスターに配置されます。ここでは、このレジスターを組込み関数ごとに R または R0 から R3 までを使用して示します。R0、R1、R2、および R3 はそれぞれ、結果レジスターの 4 つの 32 ビット部分を表します。
組込み関数名 |
演算子 |
対応するインテル® SSE 命令
|
---|---|---|
_mm_cmpeq_ss |
等しい |
CMPEQSS |
_mm_cmpeq_ps |
等しい |
CMPEQPS |
_mm_cmplt_ss |
より小さい |
CMPLTSS |
_mm_cmplt_ps |
より小さい |
CMPLTPS |
_mm_cmple_ss |
以下 |
CMPLESS |
_mm_cmple_ps |
以下 |
CMPLEPS |
_mm_cmpgt_ss |
より大きい |
CMPLTSS |
_mm_cmpgt_ps |
より大きい |
CMPLTPS |
_mm_cmpge_ss |
以上 |
CMPLESS |
_mm_cmpge_ps |
以上 |
CMPLEPS |
_mm_cmpneq_ss |
等しくない |
CMPNEQSS |
_mm_cmpneq_ps |
等しくない |
CMPNEQPS |
_mm_cmpnlt_ss |
より小さくない |
CMPNLTSS |
_mm_cmpnlt_ps |
より小さくない |
CMPNLTPS |
_mm_cmpnle_ss |
以下でない |
CMPNLESS |
_mm_cmpnle_ps |
以下でない |
CMPNLEPS |
_mm_cmpngt_ss |
より大きくない |
CMPNLTSS |
_mm_cmpngt_ps |
より大きくない |
CMPNLTPS |
_mm_cmpnge_ss |
以上でない |
CMPNLESS |
_mm_cmpnge_ps |
以上でない |
CMPNLEPS |
_mm_cmpord_ss |
順序付けされている |
CMPORDSS |
_mm_cmpord_ps |
順序付けされている |
CMPORDPS |
_mm_cmpunord_ss |
順序付けされていない |
CMPUNORDSS |
_mm_cmpunord_ps |
順序付けされていない |
CMPUNORDPS |
_mm_comieq_ss |
等しい |
COMISS |
_mm_comilt_ss |
より小さい |
COMISS |
_mm_comile_ss |
以下 |
COMISS |
_mm_comigt_ss |
より大きい |
COMISS |
_mm_comige_ss |
以上 |
COMISS |
_mm_comineq_ss |
等しくない |
COMISS |
_mm_ucomieq_ss |
等しい |
UCOMISS |
_mm_ucomilt_ss |
より小さい |
UCOMISS |
_mm_ucomile_ss |
以下 |
UCOMISS |
_mm_ucomigt_ss |
より大きい |
UCOMISS |
_mm_ucomige_ss |
以上 |
UCOMISS |
_mm_ucomineq_ss |
等しくない |
UCOMISS |
int _mm_comieq_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a と b が等しいかどうか比較します。 a と b が等しい場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_comilt_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b より小さいかどうか比較します。 a が b より小さい場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_comile_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b 以下かどうか比較します。 a が b 以下の場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_comigt_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b より大きいかどうか比較します。 a が b より大きい場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_comige_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b 以上かどうか比較します。 a が b 以上の場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_comineq_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a と b が等しくないかどうか比較します。 a と b が等しくない場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_ucomieq_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a と b が等しいかどうか比較します。 a と b が等しい場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_ucomilt_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b より小さいかどうか比較します。 a が b より小さい場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_ucomile_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b 以下かどうか比較します。 a が b 以下の場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_ucomigt_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b より大きいかどうか比較します。 a が b 以上の場合は、1 を返します。 それ以外の場合は、0 を返します。
int _mm_ucomige_ss(__m128 a, __m128 b)
a と b の最下位の単精度浮動小数点値について、a が b 以上かどうか比較します。 a が b 以上の場合は、1 を返します。 それ以外の場合は、0 を返します。