インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_cmp_epi32_mask _mm512_cmpeq_epi32_mask、 _mm512_cmpge_epi32_mask、 _mm512_cmpgt_epi32_mask、 _mm512_cmple_epi32_mask、 _mm512_cmplt_epi32_mask、 _mm512_cmpneq_epi32_mask、 _mm512_mask_cmp_epi32_mask、 _mm512_mask_cmpeq_epi32_mask、 _mm512_mask_cmpge_epi32_mask、 _mm512_mask_cmpgt_epi32_mask、 _mm512_mask_cmple_epi32_mask、 _mm512_mask_cmplt_epi32_mask、 _mm512_mask_cmpneq_epi32_mask |
比較オペランドに基づく符号付き int32 要素の比較を行います。 |
VPCMPD |
_mm512_cmp_epi64_mask、 _mm512_mask_cmp_epi64_mask _mm512_cmpeq_epi64_mask、 _mm512_cmpge_epi64_mask、 _mm512_cmpgt_epi64_mask、 _mm512_cmple_epi64_mask、 _mm512_cmplt_epi64_mask、 _mm512_cmpneq_epi64_mask、 _mm512_mask_cmp_epi64_mask、 _mm512_mask_cmpeq_epi64_mask、 _mm512_mask_cmpge_epi64_mask、 _mm512_mask_cmpgt_epi64_mask、 _mm512_mask_cmple_epi64_mask、 _mm512_mask_cmplt_epi64_mask、 _mm512_mask_cmpneq_epi64_mask |
比較オペランドに基づく符号付き int64 要素の比較を行います。 |
VPCMPQ |
_mm512_cmp_epu32_mask _mm512_cmpeq_epu32_mask、 _mm512_cmpge_epu32_mask、 _mm512_cmpgt_epu32_mask、 _mm512_cmple_epu32_mask、 _mm512_cmplt_epu32_mask、 _mm512_cmpneq_epu32_mask、 _mm512_mask_cmp_epu32_mask、 _mm512_mask_cmpeq_epu32_mask、 _mm512_mask_cmpge_epu32_mask、 _mm512_mask_cmpgt_epu32_mask、 _mm512_mask_cmple_epu32_mask、 _mm512_mask_cmplt_epu32_mask、 _mm512_mask_cmpneq_epu32_mask |
比較オペランドに基づく符号なし int32 要素の比較を行います。 |
VPCMPUD |
_mm512_cmp_epu64_mask、 _mm512_mask_cmp_epu64_mask _mm512_cmpeq_epu64_mask、 _mm512_cmpge_epu64_mask、 _mm512_cmpgt_epu64_mask、 _mm512_cmple_epu64_mask、 _mm512_cmplt_epu64_mask、 _mm512_cmpneq_epu64_mask、 _mm512_mask_cmp_epu64_mask、 _mm512_mask_cmpeq_epu64_mask、 _mm512_mask_cmpge_epu64_mask、 _mm512_mask_cmpgt_epu64_mask、 _mm512_mask_cmple_epu64_mask、 _mm512_mask_cmplt_epu64_mask、 _mm512_mask_cmpneq_epu64_mask |
比較オペランドに基づく符号なし int64 要素の比較を行います。 |
VPCMPUQ |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
b | 2 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
imm | 比較オペランド |
src | ソース要素 |
_mm_comi_round_sd
extern int __cdecl _mm_comi_round_sd(__m128d a, __m128d b, const int imm, const int sae);
imm で指定した比較オペランドに基づいて、a と b の下位の倍精度 (64 ビット) 浮動小数点要素を比較し、結果をブール値 (0 または 1) で返します。
__MM_FROUND_NO_EXC を sae に渡してすべての例外を抑止します。
_mm_comi_round_ss
extern int __cdecl _mm_comi_round_ss(__m128 a, __m128 b, const int imm, const int sae);
imm で指定した比較オペランドに基づいて、a と b の下位の単精度 (32 ビット) 浮動小数点要素を比較し、結果をブール値 (0 または 1) で返します。
__MM_FROUND_NO_EXC を sae に渡してすべての例外を抑止します。
_mm512_cmp_epi32_mask
extern __mmask16 __cdecl _mm512_cmp_epi32_mask(__m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド int32 要素を比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmp_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmp_epi32_mask(__mmask16 k, __m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド int32 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpeq_epi32_mask
extern __mmask16 __cdecl _mm512_cmpeq_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpeq_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmpeq_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpge_epi32_mask
extern __mmask16 __cdecl _mm512_cmpge_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpge_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmpge_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpgt_epi32_mask
extern __mmask16 __cdecl _mm512_cmpgt_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpgt_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmpgt_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_epi32_mask
extern __mmask16 __cdecl _mm512_cmple_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmple_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmple_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_epi32_mask
extern __mmask16 __cdecl _mm512_cmplt_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmplt_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmplt_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_epi32_mask
extern __mmask16 __cdecl _mm512_cmpneq_epi32_mask(__m512i a, __m512i b);
a と b のパックド int32 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpneq_epi32_mask
extern __mmask16 __cdecl _mm512_mask_cmpneq_epi32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド int32 要素が等しくないかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmp_epi64_mask
extern __mmask8 __cdecl _mm512_cmp_epi64_mask(__m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド int64 要素を比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmp_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmp_epi64_mask(__mmask8 k, __m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド int64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpeq_epi64_mask
extern __mmask8 __cdecl _mm512_cmpeq_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpeq_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmpeq_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpge_epi64_mask
extern __mmask8 __cdecl _mm512_cmpge_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpge_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmpge_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpgt_epi64_mask
extern __mmask8 __cdecl _mm512_cmpgt_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpgt_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmpgt_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_epi64_mask
extern __mmask8 __cdecl _mm512_cmple_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmple_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmple_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_epi64_mask
extern __mmask8 __cdecl _mm512_cmplt_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmplt_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmplt_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_epi64_mask
extern __mmask8 __cdecl _mm512_cmpneq_epi64_mask(__m512i a, __m512i b);
a と b のパックド int64 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpneq_epi64_mask
extern __mmask8 __cdecl _mm512_mask_cmpneq_epi64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド int64 要素が等しくないかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmp_epu32_mask
extern __mmask16 __cdecl _mm512_cmp_epu32_mask(__m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド符号なし int32 要素を比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmp_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmp_epu32_mask(__mmask16 k, __m512i a, __m512i b, const int imm);
imm で指定した比較オペランドに基づいて、a と b のパックド符号なし int32 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpeq_epu32_mask
extern __mmask16 __cdecl _mm512_cmpeq_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpeq_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmpeq_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpge_epu32_mask
extern __mmask16 __cdecl _mm512_cmpge_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpge_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmpge_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpgt_epu32_mask
extern __mmask16 __cdecl _mm512_cmpgt_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpgt_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmpgt_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_epu32_mask
extern __mmask16 __cdecl _mm512_cmple_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmple_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmple_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_epu32_mask
extern __mmask16 __cdecl _mm512_cmplt_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmplt_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmplt_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_epu32_mask
extern __mmask16 __cdecl _mm512_cmpneq_epu32_mask(__m512i a, __m512i b);
a と b のパックド符号なし int32 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpneq_epu32_mask
extern __mmask16 __cdecl _mm512_mask_cmpneq_epu32_mask(__mmask16 k, __m512i a, __m512i b);
a と b のパックド符号なし int32 要素が等しくないかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmp_epu64_mask
extern __mmask8 __cdecl _mm512_cmp_epu64_mask(__m512i a, __m512i b, const _MM_CMPINT_ENUM imm);
imm で指定した比較オペランドに基づいて、a と b のパックド符号なし int64 要素を比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmp_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmp_epu64_mask(__mmask8 k, __m512i a, __m512i b, const _MM_CMPINT_ENUM imm);
imm で指定した比較オペランドに基づいて、a と b のパックド符号なし int64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpge_epu64_mask
extern __mmask8 __cdecl _mm512_cmpge_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpge_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmpge_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpgt_epu64_mask
extern __mmask8 __cdecl _mm512_cmpgt_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpgt_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmpgt_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmple_epu64_mask
extern __mmask8 __cdecl _mm512_cmple_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmple_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmple_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmplt_epu64_mask
extern __mmask8 __cdecl _mm512_cmplt_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmplt_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmplt_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpeq_epu64_mask
extern __mmask8 __cdecl _mm512_cmpeq_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpeq_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmpeq_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_cmpneq_epu64_mask
extern __mmask8 __cdecl _mm512_cmpneq_epu64_mask(__m512i a, __m512i b);
a と b のパックド符号なし int64 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。
_mm512_mask_cmpneq_epu64_mask
extern __mmask8 __cdecl _mm512_mask_cmpneq_epu64_mask(__mmask8 k, __m512i a, __m512i b);
a と b のパックド符号なし int64 要素が等しくないかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。