[clang] [Headers][X86] Update FMA3/FMA4 scalar intrinsics to use __builtin_elementwise_fma and support constexpr (PR #154731)

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 25 20:29:45 PDT 2025


================
@@ -40,16 +40,16 @@ _mm_macc_pd(__m128d __A, __m128d __B, __m128d __C) {
                                             (__v2df)__C);
 }
 
-static __inline__ __m128 __DEFAULT_FN_ATTRS128
+static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
 _mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
 {
-  return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
+  return _mm_set_ss(__builtin_elementwise_fma(__A[0], __B[0], __C[0]));
----------------
phoebewang wrote:

Why don't we use `__builtin_fmaf` here?

https://github.com/llvm/llvm-project/pull/154731


More information about the cfe-commits mailing list