インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <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 によりすべての例外フラグが抑止されます)。
|
imm | 比較プレディケート。次のいずれかの値を使用できます。
|
_mm512_cmp_pd_mask
extern __mmask8 __cdecl _mm512_cmp_pd_mask(__m512d a, __m512d b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の 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 で指定した比較オペランドに基づいて、a と b の float64 要素を比較します。
結果はマスクベクトルに格納されます。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_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 で指定した比較オペランドに基づいて、a と b の float64 要素を比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_mask_cmp_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmp_pd_mask(__mmask8 k, __m512d a, __m512d b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の float64 要素を比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpeq_pd_mask
extern __mmask8 __cdecl _mm512_cmp_pd_mask(__m512d a, __m512d b);
a と b の float64 要素が等しいかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpeq_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpeq_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素が等しいかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_pd_mask
extern __mmask8 __cdecl _mm512_cmple_pd_mask(__m512d a, __m512d b);
a と b の float64 要素が以下かどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmple_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmple_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素が以下かどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_pd_mask
extern __mmask8 __cdecl _mm512_cmplt_pd_mask(__m512d a, __m512d b);
a と b の float64 要素がより小さいかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmplt_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmplt_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素がより小さいかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_pd_mask
extern __mmask8 __cdecl _mm512_cmpneq_pd_mask(__m512d a, __m512d b);
a と b の float64 要素が等しくないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpneq_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpneq_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素が等しくないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpnle_pd_mask
extern __mmask8 __cdecl _mm512_cmpnle_pd_mask(__m512d a, __m512d b);
a と b の float64 要素が以下でないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpnle_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpnle_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素が以下でないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpnlt_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpnlt_pd_mask(__m512d a, __m512d b);
a と b の float64 要素がより小さくないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpnlt_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpnlt_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素がより小さくないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpord_pd_mask
extern __mmask8 __cdecl _mm512_cmpord_pd_mask(__m512d a, __m512d b);
a と b の float64 要素を比較し、どちらも NaN でないことを確認します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpord_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素を比較し、どちらも NaN でないことを確認します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpunord_pd_mask
extern __mmask8 __cdecl _mm512_cmpunord_pd_mask(__m512d a, __m512d b);
a と b の float64 要素を比較し、いずれかが NaN であることを確認します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpord_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素を比較し、どちらも NaN でないことを確認します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_mask_cmpunord_pd_mask
extern __mmask8 __cdecl _mm512_mask_cmpord_pd_mask(__mmask8 k, __m512d a, __m512d b);
a と b の float64 要素を比較し、いずれかが NaN であることを確認します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmp_ps_mask
extern __mmask16 __cdecl _mm512_cmp_ps_mask(__m512 a, __m512 b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の float32 要素を比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmp_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmp_ps_mask(__mmask16 k, __m512 a, __m512 b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の 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 で指定した比較オペランドに基づいて、a と b の float32 要素を比較します。
結果はマスクベクトルに格納されます。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_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 で指定した比較オペランドに基づいて、a と b の float32 要素を比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm512_cmpeq_ps_mask
extern __mmask16 __cdecl _mm512_cmpeq_ps_mask(__m512 a, __m512 b);
a と b の float32 要素が等しいかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpeq_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpeq_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素が等しいかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_ps_mask
extern __mmask16 __cdecl _mm512_cmple_ps_mask(__m512 a, __m512 b);
a と b の float32 要素が以下かどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmple_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmple_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素が以下かどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpunord_ps_mask
extern __mmask16 __cdecl _mm512_cmpunord_ps_mask(__m512 a, __m512 b);
a と b の float32 要素を比較し、いずれかが NaN であることを確認します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpunord_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpunord_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素を比較し、どちらも NaN でないことを確認します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_ps_mask
extern __mmask16 __cdecl _mm512_cmplt_ps_mask(__m512 a, __m512 b);
a と b の float32 要素がより小さいかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmplt_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmplt_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素がより小さいかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_ps_mask
extern __mmask16 __cdecl _mm512_cmpneq_ps_mask(__m512 a, __m512 b);
a と b の float32 要素が等しくないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpneq_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpneq_ps_mask(__mmask16 k, __m512 a, __m512 b, const int round);
a と b の float32 要素が等しくないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpnle_ps_mask
extern __mmask16 __cdecl _mm512_cmpnle_ps_mask(__m512 a, __m512 b);
a と b の float32 要素が以下でないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpnle_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpnle_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素が以下でないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpnlt_ps_mask
extern __mmask16 __cdecl _mm512_cmpnlt_ps_mask(__m512 a, __m512 b);
a と b の float32 要素がより小さくないかどうかを比較します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpnlt_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpnlt_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の float32 要素がより小さくないかどうかを比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpord_ps_mask
extern __mmask16 __cdecl _mm512_cmpord_ps_mask(__m512 a, __m512 b);
a と b の float32 要素を比較し、いずれかが NaN であることを確認します。
結果はマスクベクトルに格納されます。
_mm512_mask_cmpord_ps_mask
extern __mmask16 __cdecl _mm512_mask_cmpord_ps_mask(__mmask16 k, __m512 a, __m512 b);
a と b の 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 で指定した比較オペランドに基づいて、a と b の下位 float64 要素を比較します。
結果はマスクベクトルに格納されます。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_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 で指定した比較オペランドに基づいて、a と b の下位 float64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_cmp_sd_mask
extern __mmask8 __cdecl _mm_cmp_sd_mask(__m128d a, __m128d b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の下位 float64 要素を比較します。
結果はマスクベクトルに格納されます。
_mm_mask_cmp_sd_mask
extern __mmask8 __cdecl _mm_mask_cmp_sd_mask(__mmask8 k, __m128d a, __m128d b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の下位 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 で指定した比較オペランドに基づいて、a と b の下位 float32 要素を比較します。
結果はマスクベクトルに格納されます。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_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 で指定した比較オペランドに基づいて、a と b の下位 float32 要素を比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。
__MM_FROUND_NO_EXC を round に渡してすべての例外を抑止します。
_mm_cmp_ss_mask
extern __mmask8 __cdecl _mm_cmp_ss_mask(__m128 a, __m128 b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の下位 float32 要素を比較します。
結果はマスクベクトルに格納されます。
_mm_mask_cmp_ss_mask
extern __mmask8 __cdecl _mm_mask_cmp_ss_mask(__mmask8 k, __m128 a, __m128 b, const int imm);
imm で指定した比較オペランドに基づいて、a と b の下位 float32 要素を比較します。
結果は、ゼロマスク k を使用してマスクベクトルに格納されます (マスクビット 0 が設定されていない場合は要素が 0 に設定されます)。