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

_mm256_maddubs_epi16

1 つ目のベクトルの 16 ビットのパックド符号なし整数データ要素と 2 つ目のベクトルの符号付き要素を乗算します。対応するインテル® AVX2 命令は VPMADDUBSW です。

構文

extern __m256i _mm256_maddubs_epi16(__m256i s1, __m256i s2);

引数

s1

演算に使用する整数ソースベクトル

s2

演算に使用する整数ソースベクトル

説明

ソースベクトル s1 の各符号なしバイトとソースベクトル s2 の対応する符号付きバイトを垂直乗算し、中間値として 16 ビットの符号付き整数を生成します。そして、隣接する各符号付きワードのペアを加算し、飽和処理済みの結果をデスティネーション・ベクトルにパックします。

例えば、ベクトル s1s2 の最下位バイト (ビット 7:0) を乗算し、その中間結果の符号付きワードと、ベクトル s1 と s2 の最下位から 2 番目のバイト (ビット 15:8) を乗算した中間結果を足します。そして、符号付き飽和処理済みの結果をデスティネーション・ベクトルの最下位ワード (15:0) に格納します。同じ演算は、隣接する別のバイトのペアに対しても行われます。

戻り値

乗算の結果。