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

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 4VNNIW 命令の組込み関数

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 4VNNIW 命令の組込み関数のプロトタイプは、zmmintrin.h ヘッダーファイルで定義されていますが、

これらの組込み関数を使用する場合、次のように immintrin.h ファイルをインクルードします。

#include <immintrin.h>


_mm512_4dpwssd_epi32

__mm512i _mm512_4dpwssd_epi32 (__m512 c, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: vp4dpwssd zmm1, zmm2+3, m128

2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、ダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。



_mm512_mask_4dpwssd_epi32

__mm512i _mm512_mask_4dpwssd_epi32 (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: vp4dpwssd zmm1 {k}, zmm2+3, m128

マスク k を使用して、2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、ダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm512_maskz_4dpwssd_epi32

__mm512i _mm512_maskz_4dpwssd_epi32 (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: vp4dpwssd zmm1 {k}, zmm2+3, m128

マスク k を使用して、2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、ダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。



_mm512_4dpwssds_epi32

__mm512i _mm512_4dpwssds_epi32 (__m512 c, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター

命令: vp4dpwssds zmm1, zmm2+3, m128

2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、符号付き飽和処理を行ってダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。



_mm512_mask_4dpwssds_epi32

__mm512i _mm512_mask_4dpwssds_epi32 (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: vp4dpwssds zmm1 {k}, zmm2+3, m128

マスク k を使用して、2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、符号付き飽和処理を行ってダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。マスクの対応するビットが設定されていない場合は c の要素がコピーされます。



_mm512_maskz_4dpwssds_epi32

__mm512i _mm512_maskz_4dpwssds_epi32 (__m512 c, __mmask16 k, __m512 a0, __m512 a1, __m512 a2, __m512 a3, __m128 * b)
変数 定義
an 1 つ目のソースブロック - 4 つのベクトル
b 2 つ目のソースブロックへのポインター
c 3 つ目のソース - アキュムレーター
k セレクターとして使用されるマスク

命令: vp4dpwssds zmm1 {k}, zmm2+3, m128

マスク k を使用して、2 つの符号付きワードオペランドの 4 つのベクトル・ソースブロックのドット積を計算して、符号付き飽和処理を行ってダブルワードで c に累積します。メモリーオペランドは、各ステップでシーケンシャルに選択されます。マスクの対応するビットが設定されていない場合は要素が 0 に設定されます。