@@ -85,7 +85,7 @@ _mm_empty(void) {
8585// / A 32-bit integer value.
8686// / \returns A 64-bit integer vector. The lower 32 bits contain the value of the
8787// / parameter. The upper 32 bits are set to 0.
88- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
88+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
8989_mm_cvtsi32_si64 (int __i)
9090{
9191 return __extension__ (__m64)(__v2si){__i, 0 };
@@ -102,7 +102,7 @@ _mm_cvtsi32_si64(int __i)
102102// / A 64-bit integer vector.
103103// / \returns A 32-bit signed integer value containing the lower 32 bits of the
104104// / parameter.
105- static __inline__ int __DEFAULT_FN_ATTRS_SSE2
105+ static __inline__ int __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
106106_mm_cvtsi64_si32 (__m64 __m)
107107{
108108 return ((__v2si)__m)[0 ];
@@ -118,10 +118,10 @@ _mm_cvtsi64_si32(__m64 __m)
118118// / A 64-bit signed integer.
119119// / \returns A 64-bit integer vector containing the same bitwise pattern as the
120120// / parameter.
121- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
121+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
122122_mm_cvtsi64_m64 (long long __i)
123123{
124- return (__m64)__i;
124+ return __extension__ (__m64)(__v1di){ __i} ;
125125}
126126
127127// / Casts a 64-bit integer vector into a 64-bit signed integer value.
@@ -134,10 +134,10 @@ _mm_cvtsi64_m64(long long __i)
134134// / A 64-bit integer vector.
135135// / \returns A 64-bit signed integer containing the same bitwise pattern as the
136136// / parameter.
137- static __inline__ long long __DEFAULT_FN_ATTRS_SSE2
137+ static __inline__ long long __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
138138_mm_cvtm64_si64 (__m64 __m)
139139{
140- return (long long )__m;
140+ return ((__v1di )__m)[ 0 ] ;
141141}
142142
143143// / Converts, with saturation, 16-bit signed integers from both 64-bit integer
@@ -379,7 +379,7 @@ _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
379379// / A 64-bit integer vector of [8 x i8].
380380// / \returns A 64-bit integer vector of [8 x i8] containing the sums of both
381381// / parameters.
382- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
382+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
383383_mm_add_pi8 (__m64 __m1, __m64 __m2)
384384{
385385 return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2));
@@ -400,7 +400,7 @@ _mm_add_pi8(__m64 __m1, __m64 __m2)
400400// / A 64-bit integer vector of [4 x i16].
401401// / \returns A 64-bit integer vector of [4 x i16] containing the sums of both
402402// / parameters.
403- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
403+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
404404_mm_add_pi16 (__m64 __m1, __m64 __m2)
405405{
406406 return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2));
@@ -421,7 +421,7 @@ _mm_add_pi16(__m64 __m1, __m64 __m2)
421421// / A 64-bit integer vector of [2 x i32].
422422// / \returns A 64-bit integer vector of [2 x i32] containing the sums of both
423423// / parameters.
424- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
424+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
425425_mm_add_pi32 (__m64 __m1, __m64 __m2)
426426{
427427 return (__m64)(((__v2su)__m1) + ((__v2su)__m2));
@@ -536,7 +536,7 @@ _mm_adds_pu16(__m64 __m1, __m64 __m2)
536536// / A 64-bit integer vector of [8 x i8] containing the subtrahends.
537537// / \returns A 64-bit integer vector of [8 x i8] containing the differences of
538538// / both parameters.
539- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
539+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
540540_mm_sub_pi8 (__m64 __m1, __m64 __m2)
541541{
542542 return (__m64)(((__v8qu)__m1) - ((__v8qu)__m2));
@@ -557,7 +557,7 @@ _mm_sub_pi8(__m64 __m1, __m64 __m2)
557557// / A 64-bit integer vector of [4 x i16] containing the subtrahends.
558558// / \returns A 64-bit integer vector of [4 x i16] containing the differences of
559559// / both parameters.
560- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
560+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
561561_mm_sub_pi16 (__m64 __m1, __m64 __m2)
562562{
563563 return (__m64)(((__v4hu)__m1) - ((__v4hu)__m2));
@@ -578,7 +578,7 @@ _mm_sub_pi16(__m64 __m1, __m64 __m2)
578578// / A 64-bit integer vector of [2 x i32] containing the subtrahends.
579579// / \returns A 64-bit integer vector of [2 x i32] containing the differences of
580580// / both parameters.
581- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
581+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
582582_mm_sub_pi32 (__m64 __m1, __m64 __m2)
583583{
584584 return (__m64)(((__v2su)__m1) - ((__v2su)__m2));
@@ -745,7 +745,7 @@ _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
745745// / A 64-bit integer vector of [4 x i16].
746746// / \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits
747747// / of the products of both parameters.
748- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
748+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
749749_mm_mullo_pi16 (__m64 __m1, __m64 __m2)
750750{
751751 return (__m64)(((__v4hu)__m1) * ((__v4hu)__m2));
@@ -1134,7 +1134,7 @@ _mm_srli_si64(__m64 __m, int __count)
11341134// / A 64-bit integer vector.
11351135// / \returns A 64-bit integer vector containing the bitwise AND of both
11361136// / parameters.
1137- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1137+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
11381138_mm_and_si64 (__m64 __m1, __m64 __m2)
11391139{
11401140 return (__m64)(((__v1du)__m1) & ((__v1du)__m2));
@@ -1155,7 +1155,7 @@ _mm_and_si64(__m64 __m1, __m64 __m2)
11551155// / A 64-bit integer vector.
11561156// / \returns A 64-bit integer vector containing the bitwise AND of the second
11571157// / parameter and the one's complement of the first parameter.
1158- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1158+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
11591159_mm_andnot_si64 (__m64 __m1, __m64 __m2)
11601160{
11611161 return (__m64)(~((__v1du)__m1) & ((__v1du)__m2));
@@ -1173,7 +1173,7 @@ _mm_andnot_si64(__m64 __m1, __m64 __m2)
11731173// / A 64-bit integer vector.
11741174// / \returns A 64-bit integer vector containing the bitwise OR of both
11751175// / parameters.
1176- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1176+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
11771177_mm_or_si64 (__m64 __m1, __m64 __m2)
11781178{
11791179 return (__m64)(((__v1du)__m1) | ((__v1du)__m2));
@@ -1191,7 +1191,7 @@ _mm_or_si64(__m64 __m1, __m64 __m2)
11911191// / A 64-bit integer vector.
11921192// / \returns A 64-bit integer vector containing the bitwise exclusive OR of both
11931193// / parameters.
1194- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1194+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
11951195_mm_xor_si64 (__m64 __m1, __m64 __m2)
11961196{
11971197 return (__m64)(((__v1du)__m1) ^ ((__v1du)__m2));
@@ -1213,7 +1213,7 @@ _mm_xor_si64(__m64 __m1, __m64 __m2)
12131213// / A 64-bit integer vector of [8 x i8].
12141214// / \returns A 64-bit integer vector of [8 x i8] containing the comparison
12151215// / results.
1216- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1216+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
12171217_mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
12181218{
12191219 return (__m64)(((__v8qi)__m1) == ((__v8qi)__m2));
@@ -1235,7 +1235,7 @@ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
12351235// / A 64-bit integer vector of [4 x i16].
12361236// / \returns A 64-bit integer vector of [4 x i16] containing the comparison
12371237// / results.
1238- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1238+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
12391239_mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
12401240{
12411241 return (__m64)(((__v4hi)__m1) == ((__v4hi)__m2));
@@ -1257,7 +1257,7 @@ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
12571257// / A 64-bit integer vector of [2 x i32].
12581258// / \returns A 64-bit integer vector of [2 x i32] containing the comparison
12591259// / results.
1260- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1260+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
12611261_mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
12621262{
12631263 return (__m64)(((__v2si)__m1) == ((__v2si)__m2));
@@ -1279,7 +1279,7 @@ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
12791279// / A 64-bit integer vector of [8 x i8].
12801280// / \returns A 64-bit integer vector of [8 x i8] containing the comparison
12811281// / results.
1282- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1282+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
12831283_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
12841284{
12851285 /* This function always performs a signed comparison, but __v8qi is a char
@@ -1303,7 +1303,7 @@ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
13031303// / A 64-bit integer vector of [4 x i16].
13041304// / \returns A 64-bit integer vector of [4 x i16] containing the comparison
13051305// / results.
1306- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1306+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
13071307_mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
13081308{
13091309 return (__m64)((__v4hi)__m1 > (__v4hi)__m2);
@@ -1325,7 +1325,7 @@ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
13251325// / A 64-bit integer vector of [2 x i32].
13261326// / \returns A 64-bit integer vector of [2 x i32] containing the comparison
13271327// / results.
1328- static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1328+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
13291329_mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
13301330{
13311331 return (__m64)((__v2si)__m1 > (__v2si)__m2);
0 commit comments