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

_mm_fmsub_ss

3 つの float32 ベクトルを使用して、スカラー単精度浮動小数点値の乗算-減算を行います。対応する FMA 命令は VFMSUB<XXX>SS で、XXX は 132、213、または 231 です。

構文

extern __m128 _mm_fmsub_ss(__m128 a, __m128 b, __m128 c);

引数

a

演算に使用する float32 ベクトル

b

演算に使用する float32 ベクトル

c

演算に使用する float32 ベクトル

説明

3 つのソースベクトル/オペランド ab、および c の下位 32 ビットのスカラー単精度浮動小数点値の SIMD 乗算-減算を行います。2 つのオペランド ab の float32 値を乗算し、無限の精度の中間結果を取得します。そして、その中間結果から 3 つ目のオペランド c の float32 値を引きます。最終結果は、最も近い float32 値に丸められます。

コンパイラーは、デフォルトで VFMSUB213SS 命令を使用し、低レベルの最適化で有効または必要と判断された場合のみほかの形式 (VFMSUB132SS または VFMSUB231SS) を使用します。例えば、レジスターの使用を抑えたり、移動を排除できる場合、コンパイラーはほかの形式を使用します。

戻り値

乗算-減算の結果。