27
27
__min_vector_width__(128 )))
28
28
#endif
29
29
30
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
31
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
32
+ #else
33
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
34
+ #endif
35
+
30
36
// / Loads data from an unaligned memory location to elements in a 128-bit
31
37
// / vector.
32
38
// /
@@ -128,7 +134,7 @@ _mm_hsub_ps(__m128 __a, __m128 __b)
128
134
// / destination.
129
135
// / \returns A 128-bit vector of [4 x float] containing the moved and duplicated
130
136
// / values.
131
- static __inline__ __m128 __DEFAULT_FN_ATTRS
137
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
132
138
_mm_movehdup_ps (__m128 __a)
133
139
{
134
140
return __builtin_shufflevector ((__v4sf)__a, (__v4sf)__a, 1 , 1 , 3 , 3 );
@@ -149,7 +155,7 @@ _mm_movehdup_ps(__m128 __a)
149
155
// / destination.
150
156
// / \returns A 128-bit vector of [4 x float] containing the moved and duplicated
151
157
// / values.
152
- static __inline__ __m128 __DEFAULT_FN_ATTRS
158
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
153
159
_mm_moveldup_ps (__m128 __a)
154
160
{
155
161
return __builtin_shufflevector ((__v4sf)__a, (__v4sf)__a, 0 , 0 , 2 , 2 );
@@ -250,7 +256,7 @@ _mm_hsub_pd(__m128d __a, __m128d __b)
250
256
// / [127:64] and [63:0] of the destination.
251
257
// / \returns A 128-bit vector of [2 x double] containing the moved and
252
258
// / duplicated values.
253
- static __inline__ __m128d __DEFAULT_FN_ATTRS
259
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
254
260
_mm_movedup_pd (__m128d __a)
255
261
{
256
262
return __builtin_shufflevector ((__v2df)__a, (__v2df)__a, 0 , 0 );
@@ -303,5 +309,6 @@ _mm_mwait(unsigned __extensions, unsigned __hints)
303
309
}
304
310
305
311
#undef __DEFAULT_FN_ATTRS
312
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
306
313
307
314
#endif /* __PMMINTRIN_H */
0 commit comments