[clang] [Headers][X86] Allow FMA intrinsics to be used in constexpr (PR #156385)
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 3 05:46:37 PDT 2025
================
@@ -2501,125 +2501,104 @@ _mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
-(__v8df)(__m512d)(C), \
(__mmask8)(U), (int)(R)))
+static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
+ return (__m512d)__builtin_elementwise_fma((__v8df)__A, (__v8df)__B,
+ (__v8df)__C);
+}
-static __inline__ __m512d __DEFAULT_FN_ATTRS512
-_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C)
-{
- return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
- (__v8df) __B,
- (__v8df) __C,
- (__mmask8) -1,
- _MM_FROUND_CUR_DIRECTION);
+static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
+ return (__m512d)__builtin_ia32_selectpd_512(
+ (__mmask8)__U, _mm512_fmadd_pd(__A, __B, __C), (__v8df)__A);
----------------
RKSimon wrote:
for type safety this needs to be `(__v8df)_mm512_fmadd_pd(__A, __B, __C)` etc. - sorry I missed that in an earlier comment
https://github.com/llvm/llvm-project/pull/156385
More information about the cfe-commits
mailing list