インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
3 つの float64 ベクトルを使用して、スカラー倍精度浮動小数点値の乗算-符号反転-減算を行います。対応する FMA 命令は VFNMSUB<XXX>SD で、XXX は 132、213、または 231 です。
extern __m128d _mm_fnmsub_sd(__m128d a, __m128d b, __m128d c); |
a |
演算に使用する float64 ベクトル |
b |
演算に使用する float64 ベクトル |
c |
演算に使用する float64 ベクトル |
3 つのソースベクトル/オペランド a、b、および c の下位 64 ビットのスカラー倍精度浮動小数点値の SIMD 乗算-符号反転-減算を行います。2 つのオペランド a と b の float64 値を乗算し、無限の精度の中間結果の符号を反転し、3 つ目のオペランド c の float64 値を引きます。最終結果は、最も近い float64 値に丸められます。
コンパイラーは、デフォルトで VFNMSUB213SD 命令を使用し、低レベルの最適化で有効または必要と判断された場合のみほかの形式 (VFNMSUB132SD または VFNMSUB231SD) を使用します。例えば、レジスターの使用を抑えたり、移動を排除できる場合、コンパイラーはほかの形式を使用します。
乗算-符号反転-減算の結果。