Skip to content

Commit b3c0c47

Browse files
committed
[Headers][X86] Allow AVX512 reduction intrinsics to be used in constexpr
This PR adds `constexpr` support for the following AVX512 integer reduction intrinsics: - `_mm512_reduce_add_epi32` - `_mm512_reduce_add_epi64` - `_mm512_reduce_mul_epi32` - `_mm512_reduce_mul_epi64` - `_mm512_reduce_and_epi32` - `_mm512_reduce_and_epi64` - `_mm512_reduce_or_epi32` - `_mm512_reduce_or_epi64` - `_mm512_reduce_max_epi32` - `_mm512_reduce_max_epi64` - `_mm512_reduce_min_epi32` - `_mm512_reduce_min_epi64` - `_mm512_reduce_max_epu32` - `_mm512_reduce_max_epu64` - `_mm512_reduce_min_epu32` - `_mm512_reduce_min_epu64`
1 parent 266a1a8 commit b3c0c47

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

clang/lib/Headers/avx512fintrin.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9337,19 +9337,19 @@ _mm512_mask_abs_pd(__m512d __W, __mmask8 __K, __m512d __A)
93379337
* This takes log2(n) steps where n is the number of elements in the vector.
93389338
*/
93399339

9340-
static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_add_epi64(__m512i __W) {
9340+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_reduce_add_epi64(__m512i __W) {
93419341
return __builtin_reduce_add((__v8di)__W);
93429342
}
93439343

9344-
static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_mul_epi64(__m512i __W) {
9344+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_reduce_mul_epi64(__m512i __W) {
93459345
return __builtin_reduce_mul((__v8di)__W);
93469346
}
93479347

9348-
static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_and_epi64(__m512i __W) {
9348+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_reduce_and_epi64(__m512i __W) {
93499349
return __builtin_reduce_and((__v8di)__W);
93509350
}
93519351

9352-
static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_or_epi64(__m512i __W) {
9352+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_reduce_or_epi64(__m512i __W) {
93539353
return __builtin_reduce_or((__v8di)__W);
93549354
}
93559355

@@ -9400,22 +9400,22 @@ _mm512_mask_reduce_mul_pd(__mmask8 __M, __m512d __W) {
94009400
return __builtin_ia32_reduce_fmul_pd512(1.0, __W);
94019401
}
94029402

9403-
static __inline__ int __DEFAULT_FN_ATTRS512
9403+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
94049404
_mm512_reduce_add_epi32(__m512i __W) {
94059405
return __builtin_reduce_add((__v16si)__W);
94069406
}
94079407

9408-
static __inline__ int __DEFAULT_FN_ATTRS512
9408+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
94099409
_mm512_reduce_mul_epi32(__m512i __W) {
94109410
return __builtin_reduce_mul((__v16si)__W);
94119411
}
94129412

9413-
static __inline__ int __DEFAULT_FN_ATTRS512
9413+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
94149414
_mm512_reduce_and_epi32(__m512i __W) {
94159415
return __builtin_reduce_and((__v16si)__W);
94169416
}
94179417

9418-
static __inline__ int __DEFAULT_FN_ATTRS512
9418+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
94199419
_mm512_reduce_or_epi32(__m512i __W) {
94209420
return __builtin_reduce_or((__v16si)__W);
94219421
}
@@ -9466,22 +9466,22 @@ _mm512_mask_reduce_mul_ps(__mmask16 __M, __m512 __W) {
94669466
return __builtin_ia32_reduce_fmul_ps512(1.0f, __W);
94679467
}
94689468

9469-
static __inline__ long long __DEFAULT_FN_ATTRS512
9469+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR
94709470
_mm512_reduce_max_epi64(__m512i __V) {
94719471
return __builtin_reduce_max((__v8di)__V);
94729472
}
94739473

9474-
static __inline__ unsigned long long __DEFAULT_FN_ATTRS512
9474+
static __inline__ unsigned long long __DEFAULT_FN_ATTRS512_CONSTEXPR
94759475
_mm512_reduce_max_epu64(__m512i __V) {
94769476
return __builtin_reduce_max((__v8du)__V);
94779477
}
94789478

9479-
static __inline__ long long __DEFAULT_FN_ATTRS512
9479+
static __inline__ long long __DEFAULT_FN_ATTRS512_CONSTEXPR
94809480
_mm512_reduce_min_epi64(__m512i __V) {
94819481
return __builtin_reduce_min((__v8di)__V);
94829482
}
94839483

9484-
static __inline__ unsigned long long __DEFAULT_FN_ATTRS512
9484+
static __inline__ unsigned long long __DEFAULT_FN_ATTRS512_CONSTEXPR
94859485
_mm512_reduce_min_epu64(__m512i __V) {
94869486
return __builtin_reduce_min((__v8du)__V);
94879487
}
@@ -9509,22 +9509,22 @@ _mm512_mask_reduce_min_epu64(__mmask8 __M, __m512i __V) {
95099509
__V = _mm512_mask_mov_epi64(_mm512_set1_epi64(-1LL), __M, __V);
95109510
return __builtin_reduce_min((__v8du)__V);
95119511
}
9512-
static __inline__ int __DEFAULT_FN_ATTRS512
9512+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
95139513
_mm512_reduce_max_epi32(__m512i __V) {
95149514
return __builtin_reduce_max((__v16si)__V);
95159515
}
95169516

9517-
static __inline__ unsigned int __DEFAULT_FN_ATTRS512
9517+
static __inline__ unsigned int __DEFAULT_FN_ATTRS512_CONSTEXPR
95189518
_mm512_reduce_max_epu32(__m512i __V) {
95199519
return __builtin_reduce_max((__v16su)__V);
95209520
}
95219521

9522-
static __inline__ int __DEFAULT_FN_ATTRS512
9522+
static __inline__ int __DEFAULT_FN_ATTRS512_CONSTEXPR
95239523
_mm512_reduce_min_epi32(__m512i __V) {
95249524
return __builtin_reduce_min((__v16si)__V);
95259525
}
95269526

9527-
static __inline__ unsigned int __DEFAULT_FN_ATTRS512
9527+
static __inline__ unsigned int __DEFAULT_FN_ATTRS512_CONSTEXPR
95289528
_mm512_reduce_min_epu32(__m512i __V) {
95299529
return __builtin_reduce_min((__v16su)__V);
95309530
}

0 commit comments

Comments
 (0)