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

ロード操作の組込み関数

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

#include <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 でなければなりません。