[clang] [X86] Allow AVX512 rotate intrinsics to be used in constexpr (PR #157652)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 9 04:52:39 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions c,h -- clang/lib/Headers/avx512fintrin.h clang/lib/Headers/avx512vlintrin.h clang/test/CodeGen/X86/avx512f-builtins.c clang/test/CodeGen/X86/avx512vl-builtins.c
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h
index 6aeb1c6ee..b425a638e 100644
--- a/clang/lib/Headers/avx512fintrin.h
+++ b/clang/lib/Headers/avx512fintrin.h
@@ -4732,51 +4732,43 @@ _mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_rorv_epi32 (__m512i __A, __m512i __B)
-{
+_mm512_rorv_epi32(__m512i __A, __m512i __B) {
return (__m512i)__builtin_elementwise_fshr((__v16su)__A,(__v16su)__A, (__v16su)__B);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
-{
+_mm512_mask_rorv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectd_512(__U,
(__v16si)_mm512_rorv_epi32(__A, __B),
(__v16si)__W);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
-{
+_mm512_maskz_rorv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectd_512(__U,
(__v16si)_mm512_rorv_epi32(__A, __B),
(__v16si)_mm512_setzero_si512());
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_rorv_epi64 (__m512i __A, __m512i __B)
-{
+_mm512_rorv_epi64(__m512i __A, __m512i __B) {
return (__m512i)__builtin_elementwise_fshr((__v8du)__A, (__v8du)__A, (__v8du)__B);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
-{
+_mm512_mask_rorv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectq_512(__U,
(__v8di)_mm512_rorv_epi64(__A, __B),
(__v8di)__W);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
-{
+_mm512_maskz_rorv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectq_512(__U,
(__v8di)_mm512_rorv_epi64(__A, __B),
(__v8di)_mm512_setzero_si512());
}
-
-
#define _mm512_cmp_epi32_mask(a, b, p) \
((__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \
(__v16si)(__m512i)(b), (int)(p), \
@@ -4844,44 +4836,38 @@ _mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
(__v8di)_mm512_setzero_si512()))
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_rolv_epi32 (__m512i __A, __m512i __B)
-{
+_mm512_rolv_epi32(__m512i __A, __m512i __B) {
return (__m512i)__builtin_elementwise_fshl((__v16su)__A, (__v16su)__A, (__v16su)__B);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
-{
+_mm512_mask_rolv_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectd_512(__U,
(__v16si)_mm512_rolv_epi32(__A, __B),
(__v16si)__W);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
-{
+_mm512_maskz_rolv_epi32(__mmask16 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectd_512(__U,
(__v16si)_mm512_rolv_epi32(__A, __B),
(__v16si)_mm512_setzero_si512());
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_rolv_epi64 (__m512i __A, __m512i __B)
-{
+_mm512_rolv_epi64(__m512i __A, __m512i __B) {
return (__m512i)__builtin_elementwise_fshl((__v8du)__A, (__v8du)__A, (__v8du)__B);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
-{
+_mm512_mask_rolv_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectq_512(__U,
(__v8di)_mm512_rolv_epi64(__A, __B),
(__v8di)__W);
}
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
-_mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
-{
+_mm512_maskz_rolv_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
return (__m512i)__builtin_ia32_selectq_512(__U,
(__v8di)_mm512_rolv_epi64(__A, __B),
(__v8di)_mm512_setzero_si512());
diff --git a/clang/lib/Headers/avx512vlintrin.h b/clang/lib/Headers/avx512vlintrin.h
index d4f7dfe00..4d12dc9d1 100644
--- a/clang/lib/Headers/avx512vlintrin.h
+++ b/clang/lib/Headers/avx512vlintrin.h
@@ -4180,93 +4180,79 @@ _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
(__v4di)_mm256_rol_epi64((a), (b)), \
(__v4di)_mm256_setzero_si256()))
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_rolv_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_elementwise_fshl((__v4su)__A, (__v4su)__A, (__v4su)__B);
-}
+ static __inline__ __m128i
+ __DEFAULT_FN_ATTRS128_CONSTEXPR _mm_rolv_epi32(__m128i __A, __m128i __B) {
+ return (__m128i)__builtin_elementwise_fshl((__v4su)__A, (__v4su)__A,
+ (__v4su)__B);
+ }
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_selectd_128(__U,
- (__v4si)_mm_rolv_epi32(__A, __B),
- (__v4si)__W);
-}
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
+ _mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ return (__m128i)__builtin_ia32_selectd_128(
+ __U, (__v4si)_mm_rolv_epi32(__A, __B), (__v4si)__W);
+ }
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_selectd_128(__U,
- (__v4si)_mm_rolv_epi32(__A, __B),
- (__v4si)_mm_setzero_si128());
-}
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
+ _mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
+ return (__m128i)__builtin_ia32_selectd_128(
+ __U, (__v4si)_mm_rolv_epi32(__A, __B), (__v4si)_mm_setzero_si128());
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_rolv_epi32 (__m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_elementwise_fshl((__v8su)__A, (__v8su)__A, (__v8su)__B);
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_rolv_epi32(__m256i __A, __m256i __B) {
+ return (__m256i)__builtin_elementwise_fshl((__v8su)__A, (__v8su)__A,
+ (__v8su)__B);
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_ia32_selectd_256(__U,
- (__v8si)_mm256_rolv_epi32(__A, __B),
- (__v8si)__W);
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
+ return (__m256i)__builtin_ia32_selectd_256(
+ __U, (__v8si)_mm256_rolv_epi32(__A, __B), (__v8si)__W);
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_ia32_selectd_256(__U,
- (__v8si)_mm256_rolv_epi32(__A, __B),
- (__v8si)_mm256_setzero_si256());
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
+ return (__m256i)__builtin_ia32_selectd_256(
+ __U, (__v8si)_mm256_rolv_epi32(__A, __B),
+ (__v8si)_mm256_setzero_si256());
+ }
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_rolv_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_elementwise_fshl((__v2du)__A, (__v2du)__A, (__v2du)__B);
-}
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
+ _mm_rolv_epi64(__m128i __A, __m128i __B) {
+ return (__m128i)__builtin_elementwise_fshl((__v2du)__A, (__v2du)__A,
+ (__v2du)__B);
+ }
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_selectq_128(__U,
- (__v2di)_mm_rolv_epi64(__A, __B),
- (__v2di)__W);
-}
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
+ _mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ return (__m128i)__builtin_ia32_selectq_128(
+ __U, (__v2di)_mm_rolv_epi64(__A, __B), (__v2di)__W);
+ }
-static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_selectq_128(__U,
- (__v2di)_mm_rolv_epi64(__A, __B),
- (__v2di)_mm_setzero_si128());
-}
+ static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
+ _mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
+ return (__m128i)__builtin_ia32_selectq_128(
+ __U, (__v2di)_mm_rolv_epi64(__A, __B), (__v2di)_mm_setzero_si128());
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_rolv_epi64 (__m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_elementwise_fshl((__v4du)__A, (__v4du)__A, (__v4du)__B);
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_rolv_epi64(__m256i __A, __m256i __B) {
+ return (__m256i)__builtin_elementwise_fshl((__v4du)__A, (__v4du)__A,
+ (__v4du)__B);
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_ia32_selectq_256(__U,
- (__v4di)_mm256_rolv_epi64(__A, __B),
- (__v4di)__W);
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
+ return (__m256i)__builtin_ia32_selectq_256(
+ __U, (__v4di)_mm256_rolv_epi64(__A, __B), (__v4di)__W);
+ }
-static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
-{
- return (__m256i)__builtin_ia32_selectq_256(__U,
- (__v4di)_mm256_rolv_epi64(__A, __B),
- (__v4di)_mm256_setzero_si256());
-}
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
+ _mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
+ return (__m256i)__builtin_ia32_selectq_256(
+ __U, (__v4di)_mm256_rolv_epi64(__A, __B),
+ (__v4di)_mm256_setzero_si256());
+ }
#define _mm_ror_epi32(a, b) \
((__m128i)__builtin_ia32_prord128((__v4si)(__m128i)(a), (int)(b)))
@@ -4447,88 +4433,76 @@ _mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, unsigned int __B) {
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_rorv_epi32 (__m128i __A, __m128i __B)
-{
+_mm_rorv_epi32(__m128i __A, __m128i __B) {
return (__m128i)__builtin_elementwise_fshr((__v4su)__A, (__v4su)__A, (__v4su)__B);
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
-{
+_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
return (__m128i)__builtin_ia32_selectd_128(__U,
(__v4si)_mm_rorv_epi32(__A, __B),
(__v4si)__W);
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
-{
+_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) {
return (__m128i)__builtin_ia32_selectd_128(__U,
(__v4si)_mm_rorv_epi32(__A, __B),
(__v4si)_mm_setzero_si128());
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_rorv_epi32 (__m256i __A, __m256i __B)
-{
+_mm256_rorv_epi32(__m256i __A, __m256i __B) {
return (__m256i)__builtin_elementwise_fshr((__v8su)__A, (__v8su)__A, (__v8su)__B);
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
-{
+_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
return (__m256i)__builtin_ia32_selectd_256(__U,
(__v8si)_mm256_rorv_epi32(__A, __B),
(__v8si)__W);
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
-{
+_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) {
return (__m256i)__builtin_ia32_selectd_256(__U,
(__v8si)_mm256_rorv_epi32(__A, __B),
(__v8si)_mm256_setzero_si256());
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_rorv_epi64 (__m128i __A, __m128i __B)
-{
+_mm_rorv_epi64(__m128i __A, __m128i __B) {
return (__m128i)__builtin_elementwise_fshr((__v2du)__A, (__v2du)__A, (__v2du)__B);
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
-{
+_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
return (__m128i)__builtin_ia32_selectq_128(__U,
(__v2di)_mm_rorv_epi64(__A, __B),
(__v2di)__W);
}
static __inline__ __m128i __DEFAULT_FN_ATTRS128_CONSTEXPR
-_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
-{
+_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) {
return (__m128i)__builtin_ia32_selectq_128(__U,
(__v2di)_mm_rorv_epi64(__A, __B),
(__v2di)_mm_setzero_si128());
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_rorv_epi64 (__m256i __A, __m256i __B)
-{
+_mm256_rorv_epi64(__m256i __A, __m256i __B) {
return (__m256i)__builtin_elementwise_fshr((__v4du)__A, (__v4du)__A, (__v4du)__B);
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
-{
+_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
return (__m256i)__builtin_ia32_selectq_256(__U,
(__v4di)_mm256_rorv_epi64(__A, __B),
(__v4di)__W);
}
static __inline__ __m256i __DEFAULT_FN_ATTRS256_CONSTEXPR
-_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
-{
+_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) {
return (__m256i)__builtin_ia32_selectq_256(__U,
(__v4di)_mm256_rorv_epi64(__A, __B),
(__v4di)_mm256_setzero_si256());
``````````
</details>
https://github.com/llvm/llvm-project/pull/157652
More information about the cfe-commits
mailing list