@@ -175,12 +175,21 @@ typedef enum
175175 __attribute__ ((__always_inline__, __nodebug__, \
176176 __target__ (" avx512f,no-evex512" )))
177177
178+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
179+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
180+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
181+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
182+ #else
183+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS128
184+ #define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
185+ #define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS
186+ #endif
187+
178188/* Create vectors with repeated elements */
179189
180- static __inline __m512i __DEFAULT_FN_ATTRS512
181- _mm512_setzero_si512 (void )
182- {
183- return __extension__ (__m512i )(__v8di ){ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
190+ static __inline __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
191+ _mm512_setzero_si512 (void ) {
192+ return __extension__ (__m512i)(__v8di){0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
184193}
185194
186195#define _mm512_setzero_epi32 _mm512_setzero_si512
@@ -256,20 +265,16 @@ _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
256265 (__v8di) _mm512_setzero_si512 ());
257266}
258267
259-
260- static __inline __m512 __DEFAULT_FN_ATTRS512
261- _mm512_setzero_ps (void )
262- {
263- return __extension__ (__m512 ){ 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f ,
264- 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f };
268+ static __inline __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR _mm512_setzero_ps (void ) {
269+ return __extension__ (__m512){0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f ,
270+ 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f , 0 .0f };
265271}
266272
267273#define _mm512_setzero _mm512_setzero_ps
268274
269- static __inline __m512d __DEFAULT_FN_ATTRS512
270- _mm512_setzero_pd (void )
271- {
272- return __extension__ (__m512d ){ 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 };
275+ static __inline __m512d __DEFAULT_FN_ATTRS512_CONSTEXPR
276+ _mm512_setzero_pd (void ) {
277+ return __extension__ (__m512d){0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 };
273278}
274279
275280static __inline __m512 __DEFAULT_FN_ATTRS512
@@ -9775,5 +9780,8 @@ _mm512_cvtsi512_si32(__m512i __A) {
97759780#undef __DEFAULT_FN_ATTRS512
97769781#undef __DEFAULT_FN_ATTRS128
97779782#undef __DEFAULT_FN_ATTRS
9783+ #undef __DEFAULT_FN_ATTRS512_CONSTEXPR
9784+ #undef __DEFAULT_FN_ATTRS128_CONSTEXPR
9785+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
97789786
97799787#endif /* __AVX512FINTRIN_H */
0 commit comments