[clang] [X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX/AVX512 IFMA madd52 intrinsics to be used in constexpr (PR #161056)
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 2 02:21:48 PDT 2025
================
@@ -19,52 +19,55 @@
__attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), \
__min_vector_width__(512)))
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_madd52hi_epu64 (__m512i __X, __m512i __Y, __m512i __Z)
-{
- return (__m512i)__builtin_ia32_vpmadd52huq512((__v8di) __X, (__v8di) __Y,
- (__v8di) __Z);
+#if defined(__cplusplus) && (__cplusplus >= 201103L)
+#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
+#else
+#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
+#endif
----------------
RKSimon wrote:
No need for __DEFAULT_FN_ATTRS_CONSTEXPR - all of the functions in this header (and the others) are now constexpr - so we can just define __DEFAULT_FN_ATTRS as constexpr for c++11 or later - see avx512vpopcntdqintrin.h for examples
https://github.com/llvm/llvm-project/pull/161056
More information about the cfe-commits
mailing list