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

整数ロード/ストア操作の組込み関数

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


組込み関数名

演算

対応するインテル® AVX-512 命令

_mm512_load_epi32_mm512_mask_load_epi32_mm512_maskz_load_epi32

メモリーからパックド int32 要素をロードします。

VMOVDQA32

_mm512_load_epi64_mm512_mask_load_epi64_mm512_maskz_load_epi64

メモリーからパックド int64 要素をロードします。

VMOVDQA64

_mm512_loadu_si512

アライメントされていないメモリー位置から 512 ビットのスカラー整数をロードします。

VMOVDQU32

_mm512_mask_loadu_epi32_mm512_maskz_loadu_epi32

アライメントされていないメモリー位置からパックド int32 要素をロードします。

VMOVDQU32

_mm512_mask_loadu_epi64_mm512_maskz_loadu_epi64

アライメントされていないメモリー位置からパックド int64 要素をロードします。

VMOVDQU64

_mm512_stream_load_si512

非テンポラルなヒントを使用してダブル・クワッドワードをロードします。

MOVNTDQA

_mm512_mask_storeu_epi64

パックド int64 要素をアライメントされていないメモリー位置にストアします。

VMOVDQU64

_mm512_stream_si512

非テンポラルなヒントを使用して、パックド整数値をストアします。

VMOVNTDQA


変数 定義
k

セレクターとして使用される書き込みマスク

a

1 つ目のソースベクトルの要素

mem_addr

メモリーのベースアドレスへのポインター

src

書き込みマスクの結果に応じて使用されるソース要素


_mm512_load_si512

extern __m512i __cdecl _mm512_load_si512(void const* mem_addr);

512 ビットの整数データをメモリーからデスティネーションにロードします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_loadu_si512

extern __m512i __cdecl _mm512_loadu_si512(void const* mem_addr);

512 ビットの整数データをメモリーからデスティネーションにロードします。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_load_epi32

extern __m512i __cdecl _mm512_load_epi32(void const* mem_addr);

512 ビット (16 のパックド 32 ビット整数) をメモリーからデスティネーションにロードします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_load_epi32

extern __m512i __cdecl _mm512_mask_load_epi32(__m512i src, __mmask16 k, void const* mem_addr);

書き込みマスク k を使用して、パックド int32 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_maskz_load_epi32

extern __m512i __cdecl _mm512_maskz_load_epi32(__mmask16 k, void const* mem_addr);

ゼロマスク k を使用して、パックド int32 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_load_epi64

extern __m512i __cdecl _mm512_load_epi64(void const* mem_addr);

512 ビット (8 つのパックド int64 要素) をメモリーからデスティネーションにロードします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_load_epi64

extern __m512i __cdecl _mm512_mask_load_epi64(__m512i src, __mmask8 k, void const* mem_addr);

書き込みマスク k を使用して、パックド int64 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_maskz_load_epi64

extern __m512i __cdecl _mm512_maskz_load_epi64(__mmask8 k, void const* mem_addr);

ゼロマスク k を使用して、パックド int64 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_loadu_epi32

extern __m512i __cdecl _mm512_mask_loadu_epi32(__m512i src, __mmask16 k, void const* mem_addr);

書き込みマスク k を使用して、パックド int32 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_maskz_loadu_epi32

extern __m512i __cdecl _mm512_maskz_loadu_epi32(__mmask16 k, void const* mem_addr);

ゼロマスク k を使用して、パックド int32 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_mask_loadu_epi64

extern __m512i __cdecl _mm512_mask_loadu_epi64(__m512i src, __mmask8 k, void const* mem_addr);

書き込みマスク k を使用して、パックド int64 要素をメモリーからデスティネーションにロードします (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_stream_load_si512

extern __m512i __cdecl _mm512_stream_load_si512(void * mem_addr);

非テンポラルなヒントを使用して、512 ビットの整数データをメモリーからデスティネーションにロードします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_store_epi32

extern void __cdecl _mm512_store_epi32(void* mem_addr, __m512i a);

a の 512 ビット (16 のパックド 32 ビット整数) をメモリーにストアします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_store_epi32

extern void __cdecl _mm512_mask_store_epi32(void* mem_addr, __mmask16 k, __m512i a);

書き込みマスク k を使用して、a のパックド int32 要素をメモリーにストアします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_store_si512

extern void __cdecl _mm512_store_si512(void* mem_addr, __m512i a);

a の 512 ビットの整数データをメモリーにストアします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_store_epi64

extern void __cdecl _mm512_store_epi64(void* mem_addr, __m512i a);

a の 512 ビットの整数データ (8 つのパックド int64 要素) をメモリーにストアします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_store_epi64

extern void __cdecl _mm512_mask_store_epi64(void* mem_addr, __mmask8 k, __m512i a);

書き込みマスク k を使用して、a のパックド int64 要素をメモリーにストアします。

mem_addr は 64 バイト境界でアライメントされていなければなりません。そうでない場合、一般的な保護例外が発生します。



_mm512_mask_storeu_epi32

extern void __cdecl _mm512_mask_storeu_epi32(void* mem_addr, __mmask16 k, __m512i a);

書き込みマスク k を使用して、a のパックド int32 要素をメモリーにストアします。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_mask_storeu_epi64

extern void __cdecl _mm512_mask_storeu_epi64(void* mem_addr, __mmask8 k, __m512i a);

書き込みマスク k を使用して、a のパックド int64 要素をメモリーにストアします。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_storeu_si512

extern void __cdecl _mm512_storeu_si512(void* mem_addr, __m512i a);

a の 512 ビットの整数データをメモリーにストアします。

mem_addr は特定の境界でアライメントされている必要はありません。



_mm512_stream_si512

extern void __cdecl _mm512_stream_si512(void* mem_addr, __m512i a);

非テンポラルなヒントを使用して、a の 512 ビットの整数データをメモリーにストアします。