インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、実際にヘッダーをコードにインクルードする場合は、immintrin.h を使用します。
変数 | 定義 |
---|---|
base_addr | ロード/ストア操作を開始するメモリーのベースアドレスへのポインター |
mem_addr | メモリーのベースアドレスへのポインター |
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
_mm_mask_compressstoreu_pd
void _mm_mask_compressstoreu_pd(void* base_addr, __mmask8 k, __m128d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vcompresspd
a のアクティブな倍精度 (64 ビット) 浮動小数点要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm256_mask_compressstoreu_pd
void _mm256_mask_compressstoreu_pd(void* base_addr, __mmask8 k, __m256d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vcompresspd
a のアクティブな倍精度 (64 ビット) 浮動小数点要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm_mask_compressstoreu_ps
void _mm_mask_compressstoreu_ps(void* base_addr, __mmask8 k, __m128 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vcompressps
a のアクティブな単精度 (32 ビット) 浮動小数点要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm256_mask_compressstoreu_ps
void _mm256_mask_compressstoreu_ps(void* base_addr, __mmask8 k, __m256 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vcompressps
a のアクティブな単精度 (32 ビット) 浮動小数点要素 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm_mask_store_pd
void _mm_mask_store_pd(void* mem_addr, __mmask8 k, __m128d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_store_pd
void _mm256_mask_store_pd(void* mem_addr, __mmask8 k, __m256d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovapd
書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_store_ps
void _mm_mask_store_ps(void* mem_addr, __mmask8 k, __m128 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_store_ps
void _mm256_mask_store_ps(void* mem_addr, __mmask8 k, __m256 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovaps
書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_storeu_pd
void _mm_mask_storeu_pd(void* mem_addr, __mmask8 k, __m128d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_pd
void _mm256_mask_storeu_pd(void* mem_addr, __mmask8 k, __m256d a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovupd
書き込みマスク k を使用して、a のパックド倍精度 (64 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_storeu_ps
void _mm_mask_storeu_ps(void* mem_addr, __mmask8 k, __m128 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_ps
void _mm256_mask_storeu_ps(void* mem_addr, __mmask8 k, __m256 a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovups
書き込みマスク k を使用して、a のパックド単精度 (32 ビット) 浮動小数点要素をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_i32scatter_pd
void _mm_i32scatter_pd(void* base_addr, __m128i vindex, __m128d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdpd
32 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i32scatter_pd
void _mm_mask_i32scatter_pd(void* base_addr, __mmask8 k, __m128i vindex, __m128d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdpd
32 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i32scatter_pd
void _mm256_i32scatter_pd(void* base_addr, __m128i vindex, __m256d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdpd
32 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i32scatter_pd
void _mm256_mask_i32scatter_pd(void* base_addr, __mmask8 k, __m128i vindex, __m256d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdpd
32 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i32scatter_ps
void _mm_i32scatter_ps(void* base_addr, __m128i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdps
32 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i32scatter_ps
void _mm_mask_i32scatter_ps(void* base_addr, __mmask8 k, __m128i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdps
32 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i32scatter_ps
void _mm256_i32scatter_ps(void* base_addr, __m256i vindex, __m256 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdps
32 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i32scatter_ps
void _mm256_mask_i32scatter_ps(void* base_addr, __mmask8 k, __m256i vindex, __m256 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterdps
32 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i64scatter_pd
void _mm_i64scatter_pd(void* base_addr, __m128i vindex, __m128d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqpd
64 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i64scatter_pd
void _mm_mask_i64scatter_pd(void* base_addr, __mmask8 k, __m128i vindex, __m128d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqpd
64 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i64scatter_pd
void _mm256_i64scatter_pd(void* base_addr, __m256i vindex, __m256d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqpd
64 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i64scatter_pd
void _mm256_mask_i64scatter_pd(void* base_addr, __mmask8 k, __m256i vindex, __m256d a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqpd
64 ビットのインデックスを使用して、a の倍精度 (64 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i64scatter_ps
void _mm_i64scatter_ps(void* base_addr, __m128i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqps
64 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i64scatter_ps
void _mm_mask_i64scatter_ps(void* base_addr, __mmask8 k, __m128i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqps
64 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i64scatter_ps
void _mm256_i64scatter_ps(void* base_addr, __m256i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqps
64 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i64scatter_ps
void _mm256_mask_i64scatter_ps(void* base_addr, __mmask8 k, __m256i vindex, __m128 a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vscatterqps
64 ビットのインデックスを使用して、a の単精度 (32 ビット) 浮動小数点要素をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_store_epi32
void _mm_mask_store_epi32(void* mem_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
書き込みマスク k を使用して、a のパックド 32 ビット整数をメモリーにストアします。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_store_epi32
void _mm256_mask_store_epi32(void* mem_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa32
書き込みマスク k を使用して、a のパックド 32 ビット整数をメモリーにストアします。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_store_epi64
void _mm_mask_store_epi64(void* mem_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
書き込みマスク k を使用して、a のパックド 64 ビット整数をメモリーにストアします。mem_addr は 16 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm256_mask_store_epi64
void _mm256_mask_store_epi64(void* mem_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqa64
書き込みマスク k を使用して、a のパックド 64 ビット整数をメモリーにストアします。mem_addr は 32 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生する可能性があります。
_mm_mask_storeu_epi16
void _mm_mask_storeu_epi16(void* mem_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
書き込みマスク k を使用して、a のパックド 16 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_epi16
void _mm256_mask_storeu_epi16(void* mem_addr, __mmask16 k, __m256i a)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu16
書き込みマスク k を使用して、a のパックド 16 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_mask_storeu_epi16
void _mm512_mask_storeu_epi16(void* mem_addr, __mmask32 k, __m512i a)
CPUID フラグ: AVX512BW
命令: vmovdqu16
書き込みマスク k を使用して、a のパックド 16 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_storeu_epi32
void _mm_mask_storeu_epi32(void* mem_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
書き込みマスク k を使用して、a のパックド 32 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_epi32
void _mm256_mask_storeu_epi32(void* mem_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu32
書き込みマスク k を使用して、a のパックド 32 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_storeu_epi64
void _mm_mask_storeu_epi64(void* mem_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
書き込みマスク k を使用して、a のパックド 64 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_epi64
void _mm256_mask_storeu_epi64(void* mem_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vmovdqu64
書き込みマスク k を使用して、a のパックド 64 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_storeu_epi8
void _mm_mask_storeu_epi8(void* mem_addr, __mmask16 k, __m128i a)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
書き込みマスク k を使用して、a のパックド 8 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm256_mask_storeu_epi8
void _mm256_mask_storeu_epi8(void* mem_addr, __mmask32 k, __m256i a)
CPUID フラグ: AVX512BW、AVX512VL
命令: vmovdqu8
書き込みマスク k を使用して、a のパックド 8 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm512_mask_storeu_epi8
void _mm512_mask_storeu_epi8(void* mem_addr, __mmask64 k, __m512i a)
CPUID フラグ: AVX512BW
命令: vmovdqu8
書き込みマスク k を使用して、a のパックド 8 ビット整数をメモリーにストアします。mem_addr は特定の境界でアライメントされている必要はありません。
_mm_mask_compressstoreu_epi32
void _mm_mask_compressstoreu_epi32(void* base_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vpcompressd
a のアクティブな 32 ビット整数 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm256_mask_compressstoreu_epi32
void _mm256_mask_compressstoreu_epi32(void* base_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vpcompressd
a のアクティブな 32 ビット整数 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm_mask_compressstoreu_epi64
void _mm_mask_compressstoreu_epi64(void* base_addr, __mmask8 k, __m128i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vpcompressq
a のアクティブな 64 ビット整数 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm256_mask_compressstoreu_epi64
void _mm256_mask_compressstoreu_epi64(void* base_addr, __mmask8 k, __m256i a)
CPUID フラグ: AVX512F、AVX512VL
命令: vpcompressq
a のアクティブな 64 ビット整数 (書き込みマスク k の対応するビットがセットされている要素) をアライメントされていないメモリー位置 base_addr に連続してストアします。
_mm_i32scatter_epi32
void _mm_i32scatter_epi32(void* base_addr, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdd
32 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i32scatter_epi32
void _mm_mask_i32scatter_epi32(void* base_addr, __mmask8 k, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdd
32 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i32scatter_epi32
void _mm256_i32scatter_epi32(void* base_addr, __m256i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdd
32 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i32scatter_epi32
void _mm256_mask_i32scatter_epi32(void* base_addr, __mmask8 k, __m256i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdd
32 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i32scatter_epi64
void _mm_i32scatter_epi64(void* base_addr, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdq
32 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i32scatter_epi64
void _mm_mask_i32scatter_epi64(void* base_addr, __mmask8 k, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdq
32 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i32scatter_epi64
void _mm256_i32scatter_epi64(void* base_addr, __m128i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdq
32 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i32scatter_epi64
void _mm256_mask_i32scatter_epi64(void* base_addr, __mmask8 k, __m128i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterdq
32 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 32 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i64scatter_epi32
void _mm_i64scatter_epi32(void* base_addr, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqd
64 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i64scatter_epi32
void _mm_mask_i64scatter_epi32(void* base_addr, __mmask8 k, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqd
64 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i64scatter_epi32
void _mm256_i64scatter_epi32(void* base_addr, __m256i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqd
64 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i64scatter_epi32
void _mm256_mask_i64scatter_epi32(void* base_addr, __mmask8 k, __m256i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqd
64 ビットのインデックスを使用して、a の 32 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 32 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm_i64scatter_epi64
void _mm_i64scatter_epi64(void* base_addr, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqq
64 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm_mask_i64scatter_epi64
void _mm_mask_i64scatter_epi64(void* base_addr, __mmask8 k, __m128i vindex, __m128i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqq
64 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。
_mm256_i64scatter_epi64
void _mm256_i64scatter_epi64(void* base_addr, __m256i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqq
64 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。開始アドレス base_addr に、vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます)。scale は、1、2、4、または 8 でなければなりません。
_mm256_mask_i64scatter_epi64
void _mm256_mask_i64scatter_epi64(void* base_addr, __mmask8 k, __m256i vindex, __m256i a, const int scale)
CPUID フラグ: AVX512F、AVX512VL
命令: vpscatterqq
64 ビットのインデックスを使用して、a の 64 ビット整数をメモリーに分散 (Scatter) します。マスク k を使用して、開始アドレス base_addr に vindex の各 64 ビット要素をオフセットとして 64 ビット要素をストアします (各インデックスは scale の係数でスケーリングされます。マスクの対応するビットが設定されていない場合、要素はストアされません)。scale は、1、2、4、または 8 でなければなりません。