インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、immintrin.h を使用します。
変数 | 定義 |
---|---|
src | 書き込みマスクの結果に応じて使用されるソース要素 |
k | セレクターとして使用される書き込みマスク |
mem_addr | メモリーのベースアドレスへのポインター |
base_addr | ロード/ストア操作を開始するメモリーのベースアドレスへのポインター |
_mm_mask_expandloadu_pd
__m128d _mm_mask_expandloadu_pd(__m128d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandpd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 2 ビットで指定された倍精度 (64 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_expandloadu_pd
__m128d _mm_maskz_expandloadu_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandpd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 2 ビットで指定された倍精度 (64 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_mask_expandloadu_pd
__m256d _mm256_mask_expandloadu_pd(__m256d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandpd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された倍精度 (64 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_expandloadu_pd
__m256d _mm256_maskz_expandloadu_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandpd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された倍精度 (64 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_mask_expandloadu_ps
__m128 _mm_mask_expandloadu_ps(__m128 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandps
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された単精度 (32 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_expandloadu_ps
__m128 _mm_maskz_expandloadu_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandps
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された単精度 (32 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_mask_expandloadu_ps
__m256 _mm256_mask_expandloadu_ps(__m256 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandps
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 8 ビットで指定された単精度 (32 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_expandloadu_ps
__m256 _mm256_maskz_expandloadu_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vexpandps
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 8 ビットで指定された単精度 (32 ビット) 浮動小数点要素をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_mmask_i32gather_pd
__m128d _mm_mmask_i32gather_pd(__m128d src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherdpd
32 ビットのインデックスを使用して、メモリーから倍精度 (64 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i32gather_pd
__m256d _mm256_mmask_i32gather_pd(__m256d src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherdpd
32 ビットのインデックスを使用して、メモリーから倍精度 (64 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i32gather_ps
__m128 _mm_mmask_i32gather_ps(__m128 src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherdps
32 ビットのインデックスを使用して、メモリーから単精度 (32 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i32gather_ps
__m256 _mm256_mmask_i32gather_ps(__m256 src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherdps
32 ビットのインデックスを使用して、メモリーから単精度 (32 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i64gather_pd
__m128d _mm_mmask_i64gather_pd(__m128d src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherqpd
64 ビットのインデックスを使用して、メモリーから倍精度 (64 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i64gather_pd
__m256d _mm256_mmask_i64gather_pd(__m256d src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherqpd
64 ビットのインデックスを使用して、メモリーから倍精度 (64 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i64gather_ps
__m128 _mm_mmask_i64gather_ps(__m128 src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherqps
64 ビットのインデックスを使用して、メモリーから単精度 (32 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i64gather_ps
__m128 _mm256_mmask_i64gather_ps(__m128 src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vgatherqps
64 ビットのインデックスを使用して、メモリーから単精度 (32 ビット) 浮動小数点要素を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_load_pd
__m128d _mm_mask_load_pd(__m128d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
書き込みマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_maskz_load_pd
__m128d _mm_maskz_load_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
ゼロマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_load_pd
__m256d _mm256_mask_load_pd(__m256d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
書き込みマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_maskz_load_pd
__m256d _mm256_maskz_load_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
ゼロマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_load_ps
__m128 _mm_mask_load_ps(__m128 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
書き込みマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_maskz_load_ps
__m128 _mm_maskz_load_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
ゼロマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_load_ps
__m256 _mm256_mask_load_ps(__m256 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
書き込みマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_maskz_load_ps
__m256 _mm256_maskz_load_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
ゼロマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_loadu_pd
__m128d _mm_mask_loadu_pd(__m128d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
書き込みマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_pd
__m128d _mm_maskz_loadu_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
ゼロマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_pd
__m256d _mm256_mask_loadu_pd(__m256d src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
書き込みマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_pd
__m256d _mm256_maskz_loadu_pd(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
ゼロマスク k を使用して、メモリーから戻り値にパックド倍精度 (64 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_loadu_ps
__m128 _mm_mask_loadu_ps(__m128 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
書き込みマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_ps
__m128 _mm_maskz_loadu_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
ゼロマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_ps
__m256 _mm256_mask_loadu_ps(__m256 src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
書き込みマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_ps
__m256 _mm256_maskz_loadu_ps(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
ゼロマスク k を使用して、メモリーから戻り値にパックド単精度 (32 ビット) 浮動小数点要素をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_load_epi32
__m128i _mm_mask_load_epi32(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
書き込みマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_maskz_load_epi32
__m128i _mm_maskz_load_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
ゼロマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_load_epi32
__m256i _mm256_mask_load_epi32(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
書き込みマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_maskz_load_epi32
__m256i _mm256_maskz_load_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
ゼロマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_load_epi64
__m128i _mm_mask_load_epi64(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
書き込みマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_maskz_load_epi64
__m128i _mm_maskz_load_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
ゼロマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_load_epi64
__m256i _mm256_mask_load_epi64(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
書き込みマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_maskz_load_epi64
__m256i _mm256_maskz_load_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
ゼロマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_loadu_epi16
__m128i _mm_mask_loadu_epi16(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
書き込みマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_epi16
__m128i _mm_maskz_loadu_epi16(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
ゼロマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_epi16
__m256i _mm256_mask_loadu_epi16(__m256i src, __mmask16 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
書き込みマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_epi16
__m256i _mm256_maskz_loadu_epi16(__mmask16 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
ゼロマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_mask_loadu_epi16
__m512i _mm512_mask_loadu_epi16(__m512i src, __mmask32 k, void const* mem_addr)
CPUID フラグ: AVX512BW
命令: vmovdqu16
書き込みマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_maskz_loadu_epi16
__m512i _mm512_maskz_loadu_epi16(__mmask32 k, void const* mem_addr)
CPUID フラグ: AVX512BW
命令: vmovdqu16
ゼロマスク k を使用して、メモリーから戻り値にパックド 16 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_loadu_epi32
__m128i _mm_mask_loadu_epi32(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
書き込みマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_epi32
__m128i _mm_maskz_loadu_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
ゼロマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_epi32
__m256i _mm256_mask_loadu_epi32(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
書き込みマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_epi32
__m256i _mm256_maskz_loadu_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
ゼロマスク k を使用して、メモリーから戻り値にパックド 32 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_loadu_epi64
__m128i _mm_mask_loadu_epi64(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
書き込みマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_epi64
__m128i _mm_maskz_loadu_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
ゼロマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_epi64
__m256i _mm256_mask_loadu_epi64(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
書き込みマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_epi64
__m256i _mm256_maskz_loadu_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
ゼロマスク k を使用して、メモリーから戻り値にパックド 64 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_loadu_epi8
__m128i _mm_mask_loadu_epi8(__m128i src, __mmask16 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
書き込みマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_maskz_loadu_epi8
__m128i _mm_maskz_loadu_epi8(__mmask16 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
ゼロマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_loadu_epi8
__m256i _mm256_mask_loadu_epi8(__m256i src, __mmask32 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
書き込みマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_maskz_loadu_epi8
__m256i _mm256_maskz_loadu_epi8(__mmask32 k, void const* mem_addr)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
ゼロマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_mask_loadu_epi8
__m512i _mm512_mask_loadu_epi8(__m512i src, __mmask64 k, void const* mem_addr)
CPUID フラグ: AVX512BW
命令: vmovdqu8
書き込みマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_maskz_loadu_epi8
__m512i _mm512_maskz_loadu_epi8(__mmask64 k, void const* mem_addr)
CPUID フラグ: AVX512BW
命令: vmovdqu8
ゼロマスク k を使用して、メモリーから戻り値にパックド 8 ビット整数をロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_expandloadu_epi32
__m128i _mm_mask_expandloadu_epi32(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された 32 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_expandloadu_epi32
__m128i _mm_maskz_expandloadu_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された 32 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_mask_expandloadu_epi32
__m256i _mm256_mask_expandloadu_epi32(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 8 ビットで指定された 32 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_expandloadu_epi32
__m256i _mm256_maskz_expandloadu_epi32(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandd
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 8 ビットで指定された 32 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_mask_expandloadu_epi64
__m128i _mm_mask_expandloadu_epi64(__m128i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandq
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 2 ビットで指定された 64 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm_maskz_expandloadu_epi64
__m128i _mm_maskz_expandloadu_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandq
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 2 ビットで指定された 64 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm256_mask_expandloadu_epi64
__m256i _mm256_mask_expandloadu_epi64(__m256i src, __mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandq
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された 64 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm256_maskz_expandloadu_epi64
__m256i _mm256_maskz_expandloadu_epi64(__mmask8 k, void const* mem_addr)
CPUID フラグ: AVX512F、AVX512VL
命令: vpexpandq
アライメントされていないメモリー位置 mem_addr から、マスク k の下位 4 ビットで指定された 64 ビット整数をロードし、マスクに対応する結果要素の位置に配置します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm_mmask_i32gather_epi32
__m128i _mm_mmask_i32gather_epi32(__m128i src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherdd
32 ビットのインデックスを使用して、メモリーから 32 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i32gather_epi32
__m256i _mm256_mmask_i32gather_epi32(__m256i src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherdd
32 ビットのインデックスを使用して、メモリーから 32 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i32gather_epi64
__m128i _mm_mmask_i32gather_epi64(__m128i src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherdq
32 ビットのインデックスを使用して、メモリーから 64 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i32gather_epi64
__m256i _mm256_mmask_i32gather_epi64(__m256i src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherdq
32 ビットのインデックスを使用して、メモリーから 64 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i64gather_epi32
__m128i _mm_mmask_i64gather_epi32(__m128i src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherqd
64 ビットのインデックスを使用して、メモリーから 32 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i64gather_epi32
__m128i _mm256_mmask_i64gather_epi32(__m128i src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherqd
64 ビットのインデックスを使用して、メモリーから 32 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mmask_i64gather_epi64
__m128i _mm_mmask_i64gather_epi64(__m128i src, __mmask8 k, __m128i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherqq
64 ビットのインデックスを使用して、メモリーから 64 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mmask_i64gather_epi64
__m256i _mm256_mmask_i64gather_epi64(__m256i src, __mmask8 k, __m256i vindex, void const* base_addr, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpgatherqq
64 ビットのインデックスを使用して、メモリーから 64 ビット整数を集約 (Gather) します。開始アドレス base_addr から、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をロードします (各インデックスは scale の係数でスケーリングされます)。集約した要素は、書き込みマスク k を使用して戻り値にマージします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。scale は、1、2、4、または 8 でなければなりません。