From 3d18567ad9c02c9d1ebe934d46f1692d5df4ff41 Mon Sep 17 00:00:00 2001 From: Marco Barbone Date: Fri, 31 Jul 2026 15:02:02 -0400 Subject: [PATCH] fix: make scalar fms fused (std::fma(a, b, -c)) --- include/xsimd/arch/xsimd_scalar.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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