インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
float32 ベクトルのドット積を計算します。対応するインテル® AVX 命令は VDPPS です。
extern __m256 _mm256_dp_ps(__m256 m1, __m256 m2, const int mask); |
m1 |
演算に使用する float32 ベクトル |
m2 |
演算に使用する float32 ベクトル |
mask |
整数型の定数。上位 4 ビットは結果要素の加算方法を示し、下位 4 ビットは計算結果をデスティネーション・ベクトルにブロードキャストするかどうかを示します。 |
最初に、1 つ目のソースベクトル m1 と 2 つ目のソースベクトル m2 の下位 4 つのパックド単精度浮動小数点要素 (float32 要素) の SIMD 乗算を実行します。
乗算結果の 4 つの単精度浮動小数点要素は、それぞれ mask 引数の上位 4 ビットの条件に応じて加算されます。
mask の対応する下位ビットが 1 の場合、デスティネーション・ベクトルの下位 4 つの要素のうち、対応する要素に加算結果がブロードキャストされます。mask の対応する下位ビットが 0 の場合、デスティネーション・ベクトルの下位 4 つの要素のうち、対応する要素が 0 に設定されます。
そして、ソースベクトルの上位要素に対して、この処理が繰り返されます。
演算の結果。