diff --git a/include/xsimd/arch/xsimd_scalar.hpp b/include/xsimd/arch/xsimd_scalar.hpp index 4802cb4eb..f3e3692c0 100644 --- a/include/xsimd/arch/xsimd_scalar.hpp +++ b/include/xsimd/arch/xsimd_scalar.hpp @@ -954,11 +954,17 @@ namespace xsimd } template - XSIMD_INLINE std::enable_if_t, T> fms(const T& a, const T& b, const T& c) noexcept + XSIMD_INLINE std::enable_if_t, T> fms(const T& a, const T& b, const T& c) noexcept { return a * b - c; } + template + XSIMD_INLINE std::enable_if_t, T> fms(const T& a, const T& b, const T& c) noexcept + { + return std::fma(a, b, -c); + } + namespace detail { template