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

FP 比較演算の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、immintrin.h を使用します。


組込み関数名

演算

対応するインテル® AVX-512 命令

_mm512_cmp_round_pd_mask_mm512_mask_cmp_round_pd_mask

_mm512_cmp_pd_mask_mm512_mask_cmp_pd_mask_mm512_cmp_round_pd_mask_mm512_mask_cmp_round_pd_mask_mm512_cmpeq_pd_mask_mm512_mask_cmpeq_pd_mask_mm512_cmple_pd_mask_mm512_mask_cmple_pd_mask_mm512_cmplt_pd_mask_mm512_mask_cmplt_pd_mask_mm512_cmpneq_pd_mask_mm512_cmplt_pd_mask_mm512_cmpneq_pd_mask_mm512_mask_cmpneq_pd_mask_mm512_cmpnle_pd_mask_mm512_mask_cmpnle_pd_mask_mm512_cmpnlt_pd_mask_mm512_mask_cmpnlt_pd_mask_mm512_cmpord_pd_mask_mm512_mask_cmpord_pd_mask_mm512_cmpunord_pd_mask_mm512_mask_cmpunord_pd_mask

比較オペランドに基づいて、float64 ベクトル要素を比較します。

VCMPPD

_mm512_cmp_round_ps_mask_mm512_mask_cmp_round_ps_mask

_mm512_cmp_ps_mask_mm512_mask_cmp_ps_mask_mm512_cmp_round_ps_mask_mm512_mask_cmp_round_ps_mask_mm512_cmpeq_ps_mask_mm512_mask_cmpeq_ps_mask_mm512_cmple_ps_mask_mm512_mask_cmple_ps_mask_mm512_cmplt_ps_mask_mm512_mask_cmplt_ps_mask_mm512_cmpneq_ps_mask_mm512_mask_cmpneq_ps_mask_mm512_cmpnle_ps_mask_mm512_mask_cmpnle_ps_mask_mm512_cmpnlt_ps_mask_mm512_mask_cmpnlt_ps_mask_mm512_cmpord_ps_mask_mm512_mask_cmpord_ps_mask_mm512_cmpunord_ps_mask_mm512_mask_cmpunord_ps_mask

比較オペランドに基づいて、float32 ベクトル要素を比較します。

VCMPPS

_mm_cmp_sd_mask_mm_mask_cmp_sd_mask_mm_cmp_round_sd_mask_mm_mask_cmp_sd_mask

比較オペランドに基づいて、下位 float64 ベクトル要素を比較します。

VCMPSD

_mm_cmp_ss_mask_mm_mask_cmp_ss_mask_mm_cmp_round_ss_mask_mm_mask_cmp_ss_mask

比較オペランドに基づいて、下位 float32 ベクトル要素を比較します。

VCMPSS


変数 定義
k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素

b

2 つ目のソースベクトルの要素

src

書き込みマスクの結果に応じて使用されるソース要素

round

丸め制御値。次のいずれかになります (sae によりすべての例外フラグが抑止されます)。

  • _MM_FROUND_TO_NEAREST_INT - 最も近い偶数に丸めます。
  • _MM_FROUND_TO_NEG_INF - 負の無限大に丸めます。
  • _MM_FROUND_TO_POS_INF -正の無限大に丸めます。
  • _MM_FROUND_TO_ZERO - ゼロに丸めます。
  • _MM_FROUND_CUR_DIRECTION - MXCSR レジスターのデフォルトを使用して丸めます。
imm

比較プレディケート。次のいずれかの値を使用できます。

  • _MM_CMPINT_EQ - 等しい
  • _MM_CMPINT_LT - より小さい
  • _MM_CMPINT_LE - 以下
  • _MM_CMPINT_NE - 等しくない
  • _MM_CMPINT_NLT - より小さくない
  • _MM_CMPINT_GE - 以上
  • _MM_CMPINT_NLE - 以下でない
  • _MM_CMPINT_GT - より大きい


_mm512_cmp_pd_mask

extern __mmask8 __cdecl _mm512_cmp_pd_mask(__m512d a, __m512d b, const int imm);

imm で指定した比較オペランドに基づいて、ab の float64 要素を比較します。

結果はマスクベクトルに格納されます。



_mm512_cmp_round_pd_mask

extern __mmask8 __cdecl _mm512_cmp_round_pd_mask(__m512d a, __m512d b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の float64 要素を比較します。

結果はマスクベクトルに格納されます。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm512_mask_cmp_round_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmp_round_pd_mask(__mmask8 k, __m512d a, __m512d b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の float64 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm512_mask_cmp_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmp_pd_mask(__mmask8 k, __m512d a, __m512d b, const int imm);

imm で指定した比較オペランドに基づいて、ab の float64 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpeq_pd_mask

extern __mmask8 __cdecl _mm512_cmp_pd_mask(__m512d a, __m512d b);

ab の float64 要素が等しいかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpeq_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpeq_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素が等しいかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_pd_mask

extern __mmask8 __cdecl _mm512_cmple_pd_mask(__m512d a, __m512d b);

ab の float64 要素が以下かどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmple_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmple_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素が以下かどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmplt_pd_mask

extern __mmask8 __cdecl _mm512_cmplt_pd_mask(__m512d a, __m512d b);

ab の float64 要素がより小さいかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmplt_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmplt_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素がより小さいかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpneq_pd_mask

extern __mmask8 __cdecl _mm512_cmpneq_pd_mask(__m512d a, __m512d b);

ab の float64 要素が等しくないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpneq_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpneq_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素が等しくないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpnle_pd_mask

extern __mmask8 __cdecl _mm512_cmpnle_pd_mask(__m512d a, __m512d b);

ab の float64 要素が以下でないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpnle_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpnle_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素が以下でないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpnlt_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpnlt_pd_mask(__m512d a, __m512d b);

ab の float64 要素がより小さくないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpnlt_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpnlt_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素がより小さくないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpord_pd_mask

extern __mmask8 __cdecl _mm512_cmpord_pd_mask(__m512d a, __m512d b);

ab の float64 要素を比較し、どちらも NaN でないことを確認します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpord_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素を比較し、どちらも NaN でないことを確認します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpunord_pd_mask

extern __mmask8 __cdecl _mm512_cmpunord_pd_mask(__m512d a, __m512d b);

ab の float64 要素を比較し、いずれかが NaN であることを確認します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpord_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素を比較し、どちらも NaN でないことを確認します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_mask_cmpunord_pd_mask

extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);

ab の float64 要素を比較し、いずれかが NaN であることを確認します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmp_ps_mask

extern __mmask16 __cdecl _mm512_cmp_ps_mask(__m512 a, __m512 b, const int imm);

imm で指定した比較オペランドに基づいて、ab の float32 要素を比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmp_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmp_ps_mask(__mmask16 k, __m512 a, __m512 b, const int imm);

imm で指定した比較オペランドに基づいて、ab の float32 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmp_round_ps_mask

extern __mmask16 __cdecl _mm512_cmp_round_ps_mask(__m512 a, __m512 b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の float32 要素を比較します。

結果はマスクベクトルに格納されます。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm512_mask_cmp_round_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmp_round_ps_mask(__mmask16 k, __m512 a, __m512 b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の float32 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm512_cmpeq_ps_mask

extern __mmask16 __cdecl _mm512_cmpeq_ps_mask(__m512 a, __m512 b);

ab の float32 要素が等しいかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpeq_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpeq_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素が等しいかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_ps_mask

extern __mmask16 __cdecl _mm512_cmple_ps_mask(__m512 a, __m512 b);

ab の float32 要素が以下かどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmple_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmple_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素が以下かどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpunord_ps_mask

extern __mmask16 __cdecl _mm512_cmpunord_ps_mask(__m512 a, __m512 b);

ab の float32 要素を比較し、いずれかが NaN であることを確認します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpunord_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpunord_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素を比較し、どちらも NaN でないことを確認します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmplt_ps_mask

extern __mmask16 __cdecl _mm512_cmplt_ps_mask(__m512 a, __m512 b);

ab の float32 要素がより小さいかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmplt_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmplt_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素がより小さいかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpneq_ps_mask

extern __mmask16 __cdecl _mm512_cmpneq_ps_mask(__m512 a, __m512 b);

ab の float32 要素が等しくないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpneq_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpneq_ps_mask(__mmask16 k, __m512 a, __m512 b, const int round);

ab の float32 要素が等しくないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpnle_ps_mask

extern __mmask16 __cdecl _mm512_cmpnle_ps_mask(__m512 a, __m512 b);

ab の float32 要素が以下でないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpnle_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpnle_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素が以下でないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpnlt_ps_mask

extern __mmask16 __cdecl _mm512_cmpnlt_ps_mask(__m512 a, __m512 b);

ab の float32 要素がより小さくないかどうかを比較します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpnlt_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpnlt_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素がより小さくないかどうかを比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpord_ps_mask

extern __mmask16 __cdecl _mm512_cmpord_ps_mask(__m512 a, __m512 b);

ab の float32 要素を比較し、いずれかが NaN であることを確認します。

結果はマスクベクトルに格納されます。



_mm512_mask_cmpord_ps_mask

extern __mmask16 __cdecl _mm512_mask_cmpord_ps_mask(__mmask16 k, __m512 a, __m512 b);

ab の float32 要素を比較し、いずれかが NaN であることを確認します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm_cmp_round_sd_mask

extern __mmask8 __cdecl _mm_cmp_round_sd_mask(__m128d a, __m128d b, const int imm, const round);

imm で指定した比較オペランドに基づいて、ab の下位 float64 要素を比較します。

結果はマスクベクトルに格納されます。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm_mask_cmp_round_sd_mask

extern __mmask8 __cdecl _mm_mask_cmp_round_sd_mask(__mmask8 k, __m128d a, __m128d b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の下位 float64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm_cmp_sd_mask

extern __mmask8 __cdecl _mm_cmp_sd_mask(__m128d a, __m128d b, const int imm);

imm で指定した比較オペランドに基づいて、ab の下位 float64 要素を比較します。

結果はマスクベクトルに格納されます。



_mm_mask_cmp_sd_mask

extern __mmask8 __cdecl _mm_mask_cmp_sd_mask(__mmask8 k, __m128d a, __m128d b, const int imm);

imm で指定した比較オペランドに基づいて、ab の下位 float64 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。



_mm_cmp_round_ss_mask

extern __mmask8 __cdecl _mm_cmp_round_ss_mask(__m128 a, __m128 b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の下位 float32 要素を比較します。

結果はマスクベクトルに格納されます。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm_mask_cmp_round_ss_mask

extern __mmask8 __cdecl _mm_mask_cmp_round_ss_mask(__mmask8 k, __m128 a, __m128 b, const int imm, const int round);

imm で指定した比較オペランドに基づいて、ab の下位 float32 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。

__MM_FROUND_NO_EXCround に渡してすべての例外を抑止します。



_mm_cmp_ss_mask

extern __mmask8 __cdecl _mm_cmp_ss_mask(__m128 a, __m128 b, const int imm);

imm で指定した比較オペランドに基づいて、ab の下位 float32 要素を比較します。

結果はマスクベクトルに格納されます。



_mm_mask_cmp_ss_mask

extern __mmask8 __cdecl _mm_mask_cmp_ss_mask(__mmask8 k, __m128 a, __m128 b, const int imm);

imm で指定した比較オペランドに基づいて、ab の下位 float32 要素を比較します。

結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。