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

_mm256_dp_ps

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 に設定されます。

そして、ソースベクトルの上位要素に対して、この処理が繰り返されます。

戻り値

演算の結果。