[clang] [X86] avx512fp16intrin.h - allow _mm512_set1_pch to be used in constexpr (PR #162245)
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 7 02:04:07 PDT 2025
https://github.com/RKSimon created https://github.com/llvm/llvm-project/pull/162245
This was missed in the earlier fp16 constexpr patches for _mm_set1_pch/_mm256_set1_pch
>From d3da3a55f8b196e509d465dbb98ca2a4c5059417 Mon Sep 17 00:00:00 2001
From: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: Tue, 7 Oct 2025 10:03:35 +0100
Subject: [PATCH] [X86] avx512fp16intrin.h - allow _mm512_set1_pch to be used
in constexpr
This was missed in the earlier fp16 constexpr patches for _mm_set1_pch/_mm256_set1_pch
---
clang/lib/Headers/avx512fp16intrin.h | 2 +-
clang/test/CodeGen/X86/avx512fp16-builtins.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Headers/avx512fp16intrin.h b/clang/lib/Headers/avx512fp16intrin.h
index d951ba0f05bcd..bd47ea6a783b2 100644
--- a/clang/lib/Headers/avx512fp16intrin.h
+++ b/clang/lib/Headers/avx512fp16intrin.h
@@ -112,7 +112,7 @@ static __inline__ __m512h __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_setr_ph(
e9, e8, e7, e6, e5, e4, e3, e2, e1, e0);
}
-static __inline __m512h __DEFAULT_FN_ATTRS512
+static __inline __m512h __DEFAULT_FN_ATTRS512_CONSTEXPR
_mm512_set1_pch(_Float16 _Complex __h) {
return (__m512h)_mm512_set1_ps(__builtin_bit_cast(float, __h));
}
diff --git a/clang/test/CodeGen/X86/avx512fp16-builtins.c b/clang/test/CodeGen/X86/avx512fp16-builtins.c
index dbf89b38e262b..820104db08e30 100644
--- a/clang/test/CodeGen/X86/avx512fp16-builtins.c
+++ b/clang/test/CodeGen/X86/avx512fp16-builtins.c
@@ -117,6 +117,7 @@ __m512h test_mm512_set1_pch(_Float16 _Complex h) {
// CHECK: bitcast <16 x float>{{.*}} to <32 x half>
return _mm512_set1_pch(h);
}
+TEST_CONSTEXPR(match_m512h(_mm512_set1_pch(1.0), 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0));
__m512h test_mm512_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, _Float16 __h4,
_Float16 __h5, _Float16 __h6, _Float16 __h7, _Float16 __h8,
More information about the cfe-commits
mailing list