インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
2 つのベクトルの拡張パックド符号なし整数を乗算し、結果を丸めてスケーリングします。対応するインテル® AVX2 命令は VPMULHRSW です。
extern __m256i _mm256_mulhrs_epi16(__m256i s1, __m256i s2); |
s1 |
演算に使用する整数ソースベクトル |
s2 |
演算に使用する整数ソースベクトル |
s1 ベクトルの 16 ビットの各符号付き整数と s2 ベクトルの対応する 16 ビットの符号付き整数を垂直乗算し、中間値として 32 ビットの符号付き整数を生成します。そして、各中間値の 32 ビット整数を最上位 18 ビットに切り捨て、18 ビットの最下位ビットに 1 を足して丸めます。
最終結果は、各中間値の 18 ビットの最上位ビットの右隣から 16 ビットを選択し、デスティネーション・オペランドにパックしたものです。
乗算、丸め、スケール操作の結果。