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

整数比較演算の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、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 で指定した比較オペランドに基づいて、ab の下位の倍精度 (64 ビット) 浮動小数点要素を比較し、結果をブール値 (0 または 1) で返します。

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



_mm_comi_round_ss

extern int __cdecl _mm_comi_round_ss(__m128 a, __m128 b, const int imm, const int sae);

imm で指定した比較オペランドに基づいて、ab の下位の単精度 (32 ビット) 浮動小数点要素を比較し、結果をブール値 (0 または 1) で返します。

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



_mm512_cmp_epi32_mask

extern __mmask16 __cdecl _mm512_cmp_epi32_mask(__m512i a, __m512i b, const int imm);

imm で指定した比較オペランドに基づいて、ab のパックド 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 で指定した比較オペランドに基づいて、ab のパックド int32 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpeq_epi32_mask

extern __mmask16 __cdecl _mm512_cmpeq_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpeq_epi32_mask

  extern __mmask16 __cdecl _mm512_mask_cmpeq_epi32_mask(__mmask16 k, __m512i a, __m512i b);

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



_mm512_cmpge_epi32_mask

extern __mmask16 __cdecl _mm512_cmpge_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpge_epi32_mask

extern __mmask16 __cdecl _mm512_mask_cmpge_epi32_mask(__mmask16 k, __m512i a, __m512i b);

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



_mm512_cmpgt_epi32_mask

extern __mmask16 __cdecl _mm512_cmpgt_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpgt_epi32_mask

extern __mmask16 __cdecl _mm512_mask_cmpgt_epi32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド int32 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_epi32_mask

extern __mmask16 __cdecl _mm512_cmple_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmple_epi32_mask

extern __mmask16 __cdecl _mm512_mask_cmple_epi32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド int32 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmplt_epi32_mask

extern __mmask16 __cdecl  _mm512_cmplt_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmplt_epi32_mask

extern __mmask16 __cdecl  _mm512_mask_cmplt_epi32_mask(__mmask16 k, __m512i a, __m512i b);

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



_mm512_cmpneq_epi32_mask

extern __mmask16 __cdecl  _mm512_cmpneq_epi32_mask(__m512i a, __m512i b);

ab のパックド int32 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpneq_epi32_mask

extern __mmask16 __cdecl  _mm512_mask_cmpneq_epi32_mask(__mmask16 k, __m512i a, __m512i b);

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



_mm512_cmp_epi64_mask

extern __mmask8 __cdecl _mm512_cmp_epi64_mask(__m512i a, __m512i b, const int imm);

imm で指定した比較オペランドに基づいて、ab のパックド 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 で指定した比較オペランドに基づいて、ab のパックド int64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpeq_epi64_mask

extern __mmask8 __cdecl _mm512_cmpeq_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpeq_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmpeq_epi64_mask(__mmask8 k, __m512i a, __m512i b);

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



_mm512_cmpge_epi64_mask

extern __mmask8 __cdecl _mm512_cmpge_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpge_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmpge_epi64_mask(__mmask8 k, __m512i a, __m512i b);

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



_mm512_cmpgt_epi64_mask

extern __mmask8 __cdecl _mm512_cmpgt_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpgt_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmpgt_epi64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド int64 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_epi64_mask

extern __mmask8 __cdecl _mm512_cmple_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmple_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmple_epi64_mask(__mmask8 k, __m512i a, __m512i b);

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



_mm512_cmplt_epi64_mask

extern __mmask8 __cdecl _mm512_cmplt_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmplt_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmplt_epi64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド int64 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpneq_epi64_mask

extern __mmask8 __cdecl _mm512_cmpneq_epi64_mask(__m512i a, __m512i b);

ab のパックド int64 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpneq_epi64_mask

extern __mmask8 __cdecl _mm512_mask_cmpneq_epi64_mask(__mmask8 k, __m512i a, __m512i b);

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



_mm512_cmp_epu32_mask

extern __mmask16 __cdecl _mm512_cmp_epu32_mask(__m512i a, __m512i b, const int imm);

imm で指定した比較オペランドに基づいて、ab のパックド符号なし 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 で指定した比較オペランドに基づいて、ab のパックド符号なし int32 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpeq_epu32_mask

extern __mmask16 __cdecl  _mm512_cmpeq_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpeq_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmpeq_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし int32 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpge_epu32_mask

extern __mmask16 __cdecl  _mm512_cmpge_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpge_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmpge_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし int32 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpgt_epu32_mask

extern __mmask16 __cdecl  _mm512_cmpgt_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpgt_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmpgt_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし int32 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_epu32_mask

extern __mmask16 __cdecl  _mm512_cmple_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmple_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmple_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし int32 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmplt_epu32_mask

extern __mmask16 __cdecl  _mm512_cmplt_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmplt_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmplt_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし int32 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpneq_epu32_mask

extern __mmask16 __cdecl  _mm512_cmpneq_epu32_mask(__m512i a, __m512i b);

ab のパックド符号なし int32 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpneq_epu32_mask

extern __mmask16 __cdecl  _mm512_mask_cmpneq_epu32_mask(__mmask16 k, __m512i a, __m512i b);

ab のパックド符号なし 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 で指定した比較オペランドに基づいて、ab のパックド符号なし 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 で指定した比較オペランドに基づいて、ab のパックド符号なし int64 要素を比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpge_epu64_mask

extern __mmask8 __cdecl _mm512_cmpge_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素が以上かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpge_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmpge_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素が以上かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpgt_epu64_mask

extern __mmask8 __cdecl _mm512_cmpgt_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素がより大きいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpgt_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmpgt_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素がより大きいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmple_epu64_mask

extern __mmask8 __cdecl _mm512_cmple_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素が以下かどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmple_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmple_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素が以下かどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmplt_epu64_mask

extern __mmask8 __cdecl _mm512_cmplt_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素がより小さいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmplt_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmplt_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素がより小さいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpeq_epu64_mask

extern __mmask8 __cdecl _mm512_cmpeq_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素が等しいかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpeq_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmpeq_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素が等しいかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。



_mm512_cmpneq_epu64_mask

extern __mmask8 __cdecl _mm512_cmpneq_epu64_mask(__m512i a, __m512i b);

ab のパックド符号なし int64 要素が等しくないかどうかを比較し、結果をマスクベクトル k に格納します。



_mm512_mask_cmpneq_epu64_mask

extern __mmask8 __cdecl _mm512_mask_cmpneq_epu64_mask(__mmask8 k, __m512i a, __m512i b);

ab のパックド符号なし int64 要素が等しくないかどうかを比較し、ゼロマスク k を使用して結果をマスクベクトル k に格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。