インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。
#include <immintrin.h>
組込み関数名 |
演算 |
対応するインテル® AVX-512 命令 |
---|---|---|
_mm512_sll_epi32、 _mm512_mask_sll_epi32、 _mm512_maskz_sll_epi32 _mm512_slli_epi32、 _mm512_mask_slli_epi32、 _mm512_maskz_slli_epi32 |
int32 要素に対して左への論理シフトを実行します。 |
VPSLLD |
_mm512_srl_epi32、 _mm512_mask_srl_epi32、 _mm512_maskz_srl_epi32 _mm512_srli_epi32、 _mm512_mask_srli_epi32、 _mm512_maskz_srli_epi32 |
int32 要素に対して右への論理シフトを実行します。 |
VPSRLD |
_mm512_sll_epi64、 _mm512_mask_sll_epi64、 _mm512_maskz_sll_epi64 _mm512_slli_epi64、 _mm512_mask_slli_epi64、 _mm512_maskz_slli_epi64 |
int64 要素に対して左への論理シフトを実行します。 |
VPSLLQ |
_mm512_srl_epi64、 _mm512_mask_srl_epi64、 _mm512_maskz_srl_epi64 _mm512_srli_epi64、 _mm512_mask_srli_epi64、 _mm512_maskz_srli_epi64 |
int64 要素に対して右への論理シフトを実行します。 |
VPSRLQ |
_mm512_sllv_epi32、 _mm512_mask_sllv_epi32、 _mm512_maskz_sllv_epi32 |
int32 要素に対して、要素ごとにシフト量の異なる左への論理シフトを実行します。 |
VPSLLVD |
_mm512_srlv_epi32、 _mm512_mask_srlv_epi32、 _mm512_maskz_srlv_epi32 |
int32 要素に対して、要素ごとにシフト量の異なる右への論理シフトを実行します。 |
VPSRLVD |
_mm512_sllv_epi64、 _mm512_mask_sllv_epi64、 _mm512_maskz_sllv_epi64 |
int64 要素に対して、要素ごとにシフト量の異なる左への論理シフトを実行します。 |
VPSLLVQ |
_mm512_srlv_epi64、 _mm512_mask_srlv_epi64、 _mm512_maskz_srlv_epi64 |
int64 要素に対して、要素ごとにシフト量の異なる右への論理シフトを実行します。 |
VPSRLVQ |
_mm512_sra_epi32、 _mm512_mask_sra_epi32、 _mm512_maskz_sra_epi32 _mm512_srai_epi32、 _mm512_mask_srai_epi32、 _mm512_maskz_srai_epi32 |
int32 要素に対して右への算術シフトを実行します。 |
VPSRAD |
_mm512_srav_epi32、 _mm512_mask_srav_epi32、 _mm512_maskz_srav_epi32 |
int32 要素に対して、要素ごとにシフト量の異なる右への算術シフトを実行します。 |
VPSRAVD |
_mm512_srav_epi64、 _mm512_mask_srav_epi64、 _mm512_maskz_srav_epi64 |
int64 要素に対して、要素ごとにシフト量の異なる右への算術シフトを実行します。 |
VPSRAVQ |
_mm512_sra_epi64、 _mm512_mask_sra_epi64、 _mm512_maskz_sra_epi64 _mm512_srai_epi64、 _mm512_mask_srai_epi64、 _mm512_maskz_srai_epi64 |
int64 要素に対して右への算術シフトを実行します。 |
VPSRAQ |
変数 | 定義 |
---|---|
k | セレクターとして使用される書き込みマスク |
a | 1 つ目のソースベクトルの要素 |
src | 書き込みマスクの結果に応じて使用されるソース要素 |
count | シフトするビット数 |
imm | デスティネーションのオフセットを指定する 8 ビットの即値 |
_mm512_sll_epi32
extern __m512i __cdecl _mm512_sll_epi32(__m512i a, __m128i count);
a のパックド int32 要素を左に count だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_sll_epi32
extern __m512i __cdecl _mm512_mask_sll_epi32(__m512i src, __mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を左に count だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sll_epi32
extern __m512i __cdecl _mm512_maskz_sll_epi32(__mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を左に count だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_slli_epi32
extern __m512i __cdecl _mm512_slli_epi32(__m512i a, unsigned int imm);
a のパックド int32 要素を左に imm だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_slli_epi32
extern __m512i __cdecl _mm512_mask_slli_epi32(__m512i src, __mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を左に imm だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_slli_epi32
extern __m512i __cdecl _mm512_maskz_slli_epi32(__mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を左に imm だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_sll_epi64
extern __m512i __cdecl _mm512_sll_epi64(__m512i a, __m128i count);
a のパックド int64 要素を左に count だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_sll_epi64
extern __m512i __cdecl _mm512_mask_sll_epi64(__m512i src, __mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を左に count だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sll_epi64
extern __m512i __cdecl _mm512_maskz_sll_epi64(__mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を左に count だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_slli_epi64
extern __m512i __cdecl _mm512_slli_epi64(__m512i a, unsigned int imm);
a のパックド int64 要素を左に imm だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_slli_epi64
extern __m512i __cdecl _mm512_mask_slli_epi64(__m512i src, __mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を左に imm だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_slli_epi64
extern __m512i __cdecl _mm512_maskz_slli_epi64(__mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を左に imm だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_sllv_epi32
extern __m512i __cdecl _mm512_sllv_epi32(__m512i a, __m512i count);
a のパックド int32 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_sllv_epi32
extern __m512i __cdecl _mm512_mask_sllv_epi32(__m512i src, __mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sllv_epi32
extern __m512i __cdecl _mm512_maskz_sllv_epi32(__mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_sllv_epi64
extern __m512i __cdecl _mm512_sllv_epi64(__m512i a, __m512i count);
a のパックド int64 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_sllv_epi64
extern __m512i __cdecl _mm512_mask_sllv_epi64(__m512i src, __mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sllv_epi64
extern __m512i __cdecl _mm512_maskz_sllv_epi64(__mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を左に count で指定した値だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_sra_epi32
extern __m512i __cdecl _mm512_sra_epi32(__m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_sra_epi32
extern __m512i __cdecl _mm512_mask_sra_epi32(__m512i src, __mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sra_epi32
extern __m512i __cdecl _mm512_maskz_sra_epi32(__mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_sra_epi64
extern __m512i __cdecl _mm512_sra_epi64(__m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_sra_epi64
extern __m512i __cdecl _mm512_mask_sra_epi64(__m512i src, __mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_sra_epi64
extern __m512i __cdecl _mm512_maskz_sra_epi64(__mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srai_epi32
extern __m512i __cdecl _mm512_srai_epi32(__m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_srai_epi32
extern __m512i __cdecl _mm512_mask_srai_epi32(__m512i src, __mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srai_epi32
extern __m512i __cdecl _mm512_maskz_srai_epi32(__mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srai_epi64
extern __m512i __cdecl _mm512_srai_epi64(__m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_srai_epi64
extern __m512i __cdecl _mm512_mask_srai_epi64(__m512i src, __mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srai_epi64
extern __m512i __cdecl _mm512_maskz_srai_epi64(__mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srav_epi32
extern __m512i __cdecl _mm512_srav_epi32(__m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_srav_epi32
extern __m512i __cdecl _mm512_mask_srav_epi32(__m512i src, __mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srav_epi32
extern __m512i __cdecl _mm512_maskz_srav_epi32(__mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srav_epi64
extern __m512i __cdecl _mm512_srav_epi64(__m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、結果を格納します。
_mm512_mask_srav_epi64
extern __m512i __cdecl _mm512_mask_srav_epi64(__m512i src, __mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srav_epi64
extern __m512i __cdecl _mm512_maskz_srav_epi64(__mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、その符号ビットをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srl_epi32
extern __m512i __cdecl _mm512_srl_epi32(__m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srl_epi32
extern __m512i __cdecl _mm512_mask_srl_epi32(__m512i src, __mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srl_epi32
extern __m512i __cdecl _mm512_maskz_srl_epi32(__mmask16 k, __m512i a, __m128i count);
a のパックド int32 要素を右に count だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srli_epi32
extern __m512i __cdecl _mm512_srli_epi32(__m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srli_epi32
extern __m512i __cdecl _mm512_mask_srli_epi32(__m512i src, __mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srli_epi32
extern __m512i __cdecl _mm512_maskz_srli_epi32(__mmask16 k, __m512i a, unsigned int imm);
a のパックド int32 要素を右に imm だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srl_epi64
extern __m512i __cdecl _mm512_srl_epi64(__m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srl_epi64
extern __m512i __cdecl _mm512_mask_srl_epi64(__m512i src, __mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srl_epi64
extern __m512i __cdecl _mm512_maskz_srl_epi64(__mmask8 k, __m512i a, __m128i count);
a のパックド int64 要素を右に count だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srli_epi64
extern __m512i __cdecl _mm512_srli_epi64(__m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srli_epi64
extern __m512i __cdecl _mm512_mask_srli_epi64(__m512i src, __mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srli_epi64
extern __m512i __cdecl _mm512_maskz_srli_epi64(__mmask8 k, __m512i a, unsigned int imm);
a のパックド int64 要素を右に imm だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srlv_epi32
extern __m512i __cdecl _mm512_srlv_epi32(__m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srlv_epi32
extern __m512i __cdecl _mm512_mask_srlv_epi32(__m512i src, __mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srlv_epi32
extern __m512i __cdecl _mm512_maskz_srlv_epi32(__mmask16 k, __m512i a, __m512i count);
a のパックド int32 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。
_mm512_srlv_epi64
extern __m512i __cdecl _mm512_srlv_epi64(__m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、結果を格納します。
_mm512_mask_srlv_epi64
extern __m512i __cdecl _mm512_mask_srlv_epi64(__m512i src, __mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、書き込みマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は src の要素がコピーされます)。
_mm512_maskz_srlv_epi64
extern __m512i __cdecl _mm512_maskz_srlv_epi64(__mmask8 k, __m512i a, __m512i count);
a のパックド int64 要素を右に count で指定した値だけシフトし、ゼロをシフトインして、ゼロマスク k を使用して結果を格納します (マスクの対応するビットが設定されていない場合は要素が 0 に設定されます)。