@@ -49,6 +49,12 @@ typedef char __v16qi __attribute__((__vector_size__(16)));
4949 __min_vector_width__(128 )))
5050#endif
5151
52+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
53+ #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr
54+ #else
55+ #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2
56+ #endif
57+
5258#define __trunc64 (x ) \
5359 (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0 )
5460#define __anyext128 (x ) \
@@ -1332,10 +1338,9 @@ _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
13321338// / This intrinsic corresponds to the <c> PXOR </c> instruction.
13331339// /
13341340// / \returns An initialized 64-bit integer vector with all elements set to zero.
1335- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1336- _mm_setzero_si64 (void )
1337- {
1338- return __extension__ (__m64 ){ 0LL };
1341+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1342+ _mm_setzero_si64 (void ) {
1343+ return __extension__ (__m64){0LL };
13391344}
13401345
13411346// / Constructs a 64-bit integer vector initialized with the specified
@@ -1353,10 +1358,9 @@ _mm_setzero_si64(void)
13531358// / A 32-bit integer value used to initialize the lower 32 bits of the
13541359// / result.
13551360// / \returns An initialized 64-bit integer vector.
1356- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1357- _mm_set_pi32 (int __i1 , int __i0 )
1358- {
1359- return __extension__ (__m64 )(__v2si ){__i0 , __i1 };
1361+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1362+ _mm_set_pi32 (int __i1, int __i0) {
1363+ return __extension__ (__m64)(__v2si){__i0, __i1};
13601364}
13611365
13621366// / Constructs a 64-bit integer vector initialized with the specified
@@ -1376,10 +1380,9 @@ _mm_set_pi32(int __i1, int __i0)
13761380// / \param __s0
13771381// / A 16-bit integer value used to initialize bits [15:0] of the result.
13781382// / \returns An initialized 64-bit integer vector.
1379- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1380- _mm_set_pi16 (short __s3 , short __s2 , short __s1 , short __s0 )
1381- {
1382- return __extension__ (__m64 )(__v4hi ){__s0 , __s1 , __s2 , __s3 };
1383+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1384+ _mm_set_pi16 (short __s3, short __s2, short __s1, short __s0) {
1385+ return __extension__ (__m64)(__v4hi){__s0, __s1, __s2, __s3};
13831386}
13841387
13851388// / Constructs a 64-bit integer vector initialized with the specified
@@ -1407,12 +1410,11 @@ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
14071410// / \param __b0
14081411// / An 8-bit integer value used to initialize bits [7:0] of the result.
14091412// / \returns An initialized 64-bit integer vector.
1410- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1413+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
14111414_mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
1412- char __b1 , char __b0 )
1413- {
1414- return __extension__ (__m64 )(__v8qi ){__b0 , __b1 , __b2 , __b3 ,
1415- __b4 , __b5 , __b6 , __b7 };
1415+ char __b1, char __b0) {
1416+ return __extension__ (__m64)(__v8qi){__b0, __b1, __b2, __b3,
1417+ __b4, __b5, __b6, __b7};
14161418}
14171419
14181420// / Constructs a 64-bit integer vector of [2 x i32], with each of the
@@ -1428,10 +1430,9 @@ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
14281430// / A 32-bit integer value used to initialize each vector element of the
14291431// / result.
14301432// / \returns An initialized 64-bit integer vector of [2 x i32].
1431- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1432- _mm_set1_pi32 (int __i )
1433- {
1434- return _mm_set_pi32 (__i , __i );
1433+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1434+ _mm_set1_pi32 (int __i) {
1435+ return _mm_set_pi32 (__i, __i);
14351436}
14361437
14371438// / Constructs a 64-bit integer vector of [4 x i16], with each of the
@@ -1447,10 +1448,9 @@ _mm_set1_pi32(int __i)
14471448// / A 16-bit integer value used to initialize each vector element of the
14481449// / result.
14491450// / \returns An initialized 64-bit integer vector of [4 x i16].
1450- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1451- _mm_set1_pi16 (short __w )
1452- {
1453- return _mm_set_pi16 (__w , __w , __w , __w );
1451+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1452+ _mm_set1_pi16 (short __w) {
1453+ return _mm_set_pi16 (__w, __w, __w, __w);
14541454}
14551455
14561456// / Constructs a 64-bit integer vector of [8 x i8], with each of the
@@ -1465,10 +1465,9 @@ _mm_set1_pi16(short __w)
14651465// / An 8-bit integer value used to initialize each vector element of the
14661466// / result.
14671467// / \returns An initialized 64-bit integer vector of [8 x i8].
1468- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1469- _mm_set1_pi8 (char __b )
1470- {
1471- return _mm_set_pi8 (__b , __b , __b , __b , __b , __b , __b , __b );
1468+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1469+ _mm_set1_pi8 (char __b) {
1470+ return _mm_set_pi8 (__b, __b, __b, __b, __b, __b, __b, __b);
14721471}
14731472
14741473// / Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1486,10 +1485,9 @@ _mm_set1_pi8(char __b)
14861485// / A 32-bit integer value used to initialize the upper 32 bits of the
14871486// / result.
14881487// / \returns An initialized 64-bit integer vector.
1489- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1490- _mm_setr_pi32 (int __i0 , int __i1 )
1491- {
1492- return _mm_set_pi32 (__i1 , __i0 );
1488+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1489+ _mm_setr_pi32 (int __i0, int __i1) {
1490+ return _mm_set_pi32 (__i1, __i0);
14931491}
14941492
14951493// / Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1509,10 +1507,9 @@ _mm_setr_pi32(int __i0, int __i1)
15091507// / \param __w3
15101508// / A 16-bit integer value used to initialize bits [63:48] of the result.
15111509// / \returns An initialized 64-bit integer vector.
1512- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1513- _mm_setr_pi16 (short __w0 , short __w1 , short __w2 , short __w3 )
1514- {
1515- return _mm_set_pi16 (__w3 , __w2 , __w1 , __w0 );
1510+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1511+ _mm_setr_pi16 (short __w0, short __w1, short __w2, short __w3) {
1512+ return _mm_set_pi16 (__w3, __w2, __w1, __w0);
15161513}
15171514
15181515// / Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1540,11 +1537,10 @@ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
15401537// / \param __b7
15411538// / An 8-bit integer value used to initialize bits [63:56] of the result.
15421539// / \returns An initialized 64-bit integer vector.
1543- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1540+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
15441541_mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
1545- char __b6 , char __b7 )
1546- {
1547- return _mm_set_pi8 (__b7 , __b6 , __b5 , __b4 , __b3 , __b2 , __b1 , __b0 );
1542+ char __b6, char __b7) {
1543+ return _mm_set_pi8 (__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
15481544}
15491545
15501546#undef __anyext128
0 commit comments