[clang] fddd1b6 - [X86] avx512fp16intrin.h - allow _mm512_set1_pch to be used in constexpr (#162245)

via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 7 02:25:01 PDT 2025


Author: Simon Pilgrim
Date: 2025-10-07T09:24:56Z
New Revision: fddd1b60fdf0451a42ba916e63423406d1e76798

URL: https://github.com/llvm/llvm-project/commit/fddd1b60fdf0451a42ba916e63423406d1e76798
DIFF: https://github.com/llvm/llvm-project/commit/fddd1b60fdf0451a42ba916e63423406d1e76798.diff

LOG: [X86] avx512fp16intrin.h - allow _mm512_set1_pch to be used in constexpr (#162245)

This was missed in the earlier fp16 constexpr patches for _mm_set1_pch/_mm256_set1_pch

Added: 
    

Modified: 
    clang/lib/Headers/avx512fp16intrin.h
    clang/test/CodeGen/X86/avx512fp16-builtins.c

Removed: 
    


################################################################################
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