https://github.com/SadiinsoSnowfall updated 
https://github.com/llvm/llvm-project/pull/156819

>From 3dfae1b19565e217671c9f24ea28e085b4cb0a0c Mon Sep 17 00:00:00 2001
From: SadiinsoSnowfall <sadii...@gmail.com>
Date: Thu, 4 Sep 2025 09:28:09 +0200
Subject: [PATCH] made the AVX512 _set macros into functions

---
 clang/lib/Headers/avx512fintrin.h      | 58 +++++++++++++++++---------
 clang/lib/Headers/avx512fp16intrin.h   | 21 ++++++----
 clang/lib/Headers/avx512vlfp16intrin.h | 19 ++++++---
 3 files changed, 66 insertions(+), 32 deletions(-)

diff --git a/clang/lib/Headers/avx512fintrin.h 
b/clang/lib/Headers/avx512fintrin.h
index 9c0fa9719fb62..e845ec196e74b 100644
--- a/clang/lib/Headers/avx512fintrin.h
+++ b/clang/lib/Headers/avx512fintrin.h
@@ -374,17 +374,25 @@ _mm512_set4_ps(float __A, float __B, float __C, float 
__D) {
      __D, __C, __B, __A, __D, __C, __B, __A };
 }
 
-#define _mm512_setr4_epi32(e0,e1,e2,e3)               \
-  _mm512_set4_epi32((e3),(e2),(e1),(e0))
+static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr4_epi32(int e0, int e1, int e2, int e3) {
+  return _mm512_set4_epi32(e3, e2, e1, e0);
+}
 
-#define _mm512_setr4_epi64(e0,e1,e2,e3)               \
-  _mm512_set4_epi64((e3),(e2),(e1),(e0))
+static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr4_epi64(long long e0, long long e1, long long e2, long long e3) {
+  return _mm512_set4_epi64(e3, e2, e1, e0);
+}
 
-#define _mm512_setr4_pd(e0,e1,e2,e3)                \
-  _mm512_set4_pd((e3),(e2),(e1),(e0))
+static __inline __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr4_pd(double e0, double e1, double e2, double e3) {
+  return _mm512_set4_pd(e3, e2, e1, e0);
+}
 
-#define _mm512_setr4_ps(e0,e1,e2,e3)                \
-  _mm512_set4_ps((e3),(e2),(e1),(e0))
+static __inline __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr4_ps(float e0, float e1, float e2, float e3) {
+  return _mm512_set4_ps(e3, e2, e1, e0);
+}
 
 static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
 _mm512_broadcastsd_pd(__m128d __A) {
@@ -9006,10 +9014,12 @@ static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR 
_mm512_set_epi32(
     __H, __G, __F, __E, __D, __C, __B, __A };
 }
 
-#define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7,           \
-       e8,e9,e10,e11,e12,e13,e14,e15)          \
-  _mm512_set_epi32((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6), \
-                   (e5),(e4),(e3),(e2),(e1),(e0))
+static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr_epi32(int e0, int e1, int e2, int e3, int e4, int e5, int e6, int 
e7,
+                  int e8, int e9, int e10, int e11, int e12, int e13, int e14, 
int e15) {
+  return _mm512_set_epi32(e15, e14, e13, e12, e11, e10, e9, e8,
+                          e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
 _mm512_set_epi64(long long __A, long long __B, long long __C, long long __D,
@@ -9018,8 +9028,11 @@ _mm512_set_epi64(long long __A, long long __B, long long 
__C, long long __D,
   { __H, __G, __F, __E, __D, __C, __B, __A };
 }
 
-#define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7)           \
-  _mm512_set_epi64((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))
+static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr_epi64(long long e0, long long e1, long long e2, long long e3,
+                  long long e4, long long e5, long long e6, long long e7) {
+  return _mm512_set_epi64(e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
 _mm512_set_pd(double __A, double __B, double __C, double __D, double __E,
@@ -9028,8 +9041,11 @@ _mm512_set_pd(double __A, double __B, double __C, double 
__D, double __E,
   { __H, __G, __F, __E, __D, __C, __B, __A };
 }
 
-#define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7)              \
-  _mm512_set_pd((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0))
+static __inline__ __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr_pd(double e0, double e1, double e2, double e3, double e4,
+               double e5, double e6, double e7) {
+  return _mm512_set_pd(e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
 _mm512_set_ps(float __A, float __B, float __C, float __D, float __E, float __F,
@@ -9040,9 +9056,13 @@ _mm512_set_ps(float __A, float __B, float __C, float 
__D, float __E, float __F,
     __H, __G, __F, __E, __D, __C, __B, __A };
 }
 
-#define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
-  _mm512_set_ps((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6),(e5), \
-                (e4),(e3),(e2),(e1),(e0))
+static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr_ps(float e0, float e1, float e2, float e3, float e4, float e5,
+               float e6, float e7, float e8, float e9, float e10, float e11,
+               float e12, float e13, float e14, float e15) {
+  return _mm512_set_ps(e15, e14, e13, e12, e11, e10, e9, e8,
+                       e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
 _mm512_abs_ps(__m512 __A) {
diff --git a/clang/lib/Headers/avx512fp16intrin.h 
b/clang/lib/Headers/avx512fp16intrin.h
index 25f65aee7ff11..8318d6753e074 100644
--- a/clang/lib/Headers/avx512fp16intrin.h
+++ b/clang/lib/Headers/avx512fp16intrin.h
@@ -100,13 +100,20 @@ _mm512_set_ph(_Float16 __h1, _Float16 __h2, _Float16 
__h3, _Float16 __h4,
                             __h4,  __h3,  __h2,  __h1};
 }
 
-#define _mm512_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11, h12, h13, 
\
-                       h14, h15, h16, h17, h18, h19, h20, h21, h22, h23, h24,  
\
-                       h25, h26, h27, h28, h29, h30, h31, h32)                 
\
-  _mm512_set_ph((h32), (h31), (h30), (h29), (h28), (h27), (h26), (h25), (h24), 
\
-                (h23), (h22), (h21), (h20), (h19), (h18), (h17), (h16), (h15), 
\
-                (h14), (h13), (h12), (h11), (h10), (h9), (h8), (h7), (h6),     
\
-                (h5), (h4), (h3), (h2), (h1))
+static __inline__ __m512h __DEFAULT_FN_ATTRS512_CONSTEXPR
+_mm512_setr_ph(_Float16 e0, _Float16 e1, _Float16 e2, _Float16 e3,
+               _Float16 e4, _Float16 e5, _Float16 e6, _Float16 e7,
+               _Float16 e8, _Float16 e9, _Float16 e10, _Float16 e11,
+               _Float16 e12, _Float16 e13, _Float16 e14, _Float16 e15,
+               _Float16 e16, _Float16 e17, _Float16 e18, _Float16 e19,
+               _Float16 e20, _Float16 e21, _Float16 e22, _Float16 e23,
+               _Float16 e24, _Float16 e25, _Float16 e26, _Float16 e27,
+               _Float16 e28, _Float16 e29, _Float16 e30, _Float16 e31) {
+  return _mm512_set_ph(e31, e30, e29, e28, e27, e26, e25, e24,
+                       e23, e22, e21, e20, e19, e18, e17, e16,
+                       e15, e14, e13, e12, e11, e10, e9, e8,
+                       e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline __m512h __DEFAULT_FN_ATTRS512
 _mm512_set1_pch(_Float16 _Complex __h) {
diff --git a/clang/lib/Headers/avx512vlfp16intrin.h 
b/clang/lib/Headers/avx512vlfp16intrin.h
index 98ad9b54eef39..0e6ec1589e20a 100644
--- a/clang/lib/Headers/avx512vlfp16intrin.h
+++ b/clang/lib/Headers/avx512vlfp16intrin.h
@@ -81,13 +81,20 @@ _mm256_set_ph(_Float16 __h1, _Float16 __h2, _Float16 __h3, 
_Float16 __h4,
                             __h4,  __h3,  __h2,  __h1};
 }
 
-#define _mm_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8)                            
\
-  _mm_set_ph((h8), (h7), (h6), (h5), (h4), (h3), (h2), (h1))
+static __inline__ __m128h __DEFAULT_FN_ATTRS128
+_mm_setr_ph(_Float16 e0, _Float16 e1, _Float16 e2, _Float16 e3,
+            _Float16 e4, _Float16 e5, _Float16 e6, _Float16 e7) {
+  return _mm_set_ph(e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
-#define _mm256_setr_ph(h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11, h12, h13, 
\
-                       h14, h15, h16)                                          
\
-  _mm256_set_ph((h16), (h15), (h14), (h13), (h12), (h11), (h10), (h9), (h8),   
\
-                (h7), (h6), (h5), (h4), (h3), (h2), (h1))
+static __inline__ __m256h __DEFAULT_FN_ATTRS256
+_mm256_setr_ph(_Float16 e0, _Float16 e1, _Float16 e2, _Float16 e3,
+               _Float16 e4, _Float16 e5, _Float16 e6, _Float16 e7,
+               _Float16 e8, _Float16 e9, _Float16 e10, _Float16 e11,
+               _Float16 e12, _Float16 e13, _Float16 e14, _Float16 e15) {
+  return _mm256_set_ph(e15, e14, e13, e12, e11, e10, e9, e8,
+                       e7, e6, e5, e4, e3, e2, e1, e0);
+}
 
 static __inline__ __m256h __DEFAULT_FN_ATTRS256 _mm256_add_ph(__m256h __A,
                                                               __m256h __B) {

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to