diff options
Diffstat (limited to 'clang/lib/Headers/emmintrin.h')
| -rw-r--r-- | clang/lib/Headers/emmintrin.h | 158 |
1 files changed, 79 insertions, 79 deletions
diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h index aba2438ca0a..637948df8ad 100644 --- a/clang/lib/Headers/emmintrin.h +++ b/clang/lib/Headers/emmintrin.h @@ -54,7 +54,7 @@ _mm_add_sd(__m128d __a, __m128d __b) static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_pd(__m128d __a, __m128d __b) { - return __a + __b; + return (__m128d)((__v2df)__a + (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -67,7 +67,7 @@ _mm_sub_sd(__m128d __a, __m128d __b) static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_pd(__m128d __a, __m128d __b) { - return __a - __b; + return (__m128d)((__v2df)__a - (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -80,7 +80,7 @@ _mm_mul_sd(__m128d __a, __m128d __b) static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_pd(__m128d __a, __m128d __b) { - return __a * __b; + return (__m128d)((__v2df)__a * (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -93,44 +93,44 @@ _mm_div_sd(__m128d __a, __m128d __b) static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_pd(__m128d __a, __m128d __b) { - return __a / __b; + return (__m128d)((__v2df)__a / (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_sd(__m128d __a, __m128d __b) { - __m128d __c = __builtin_ia32_sqrtsd(__b); + __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b); return (__m128d) { __c[0], __a[1] }; } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_pd(__m128d __a) { - return __builtin_ia32_sqrtpd(__a); + return __builtin_ia32_sqrtpd((__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_minsd(__a, __b); + return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_pd(__m128d __a, __m128d __b) { - return __builtin_ia32_minpd(__a, __b); + return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_maxsd(__a, __b); + return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_pd(__m128d __a, __m128d __b) { - return __builtin_ia32_maxpd(__a, __b); + return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -160,233 +160,233 @@ _mm_xor_pd(__m128d __a, __m128d __b) static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpeq_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpeqpd(__a, __b); + return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmplt_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpltpd(__a, __b); + return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmple_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmplepd(__a, __b); + return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpgt_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpltpd(__b, __a); + return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpge_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmplepd(__b, __a); + return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpord_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpordpd(__a, __b); + return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpunord_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpunordpd(__a, __b); + return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpneq_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpneqpd(__a, __b); + return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnlt_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnltpd(__a, __b); + return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnle_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnlepd(__a, __b); + return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpngt_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnltpd(__b, __a); + return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_pd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnlepd(__b, __a); + return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpeq_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpeqsd(__a, __b); + return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmplt_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpltsd(__a, __b); + return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmple_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmplesd(__a, __b); + return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpgt_sd(__m128d __a, __m128d __b) { - __m128d __c = __builtin_ia32_cmpltsd(__b, __a); + __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a); return (__m128d) { __c[0], __a[1] }; } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpge_sd(__m128d __a, __m128d __b) { - __m128d __c = __builtin_ia32_cmplesd(__b, __a); + __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a); return (__m128d) { __c[0], __a[1] }; } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpord_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpordsd(__a, __b); + return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpunord_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpunordsd(__a, __b); + return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpneq_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpneqsd(__a, __b); + return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnlt_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnltsd(__a, __b); + return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnle_sd(__m128d __a, __m128d __b) { - return (__m128d)__builtin_ia32_cmpnlesd(__a, __b); + return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpngt_sd(__m128d __a, __m128d __b) { - __m128d __c = __builtin_ia32_cmpnltsd(__b, __a); + __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a); return (__m128d) { __c[0], __a[1] }; } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_sd(__m128d __a, __m128d __b) { - __m128d __c = __builtin_ia32_cmpnlesd(__b, __a); + __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a); return (__m128d) { __c[0], __a[1] }; } static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdeq(__a, __b); + return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdlt(__a, __b); + return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdle(__a, __b); + return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdgt(__a, __b); + return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdge(__a, __b); + return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_comisdneq(__a, __b); + return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdeq(__a, __b); + return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdlt(__a, __b); + return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdle(__a, __b); + return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdgt(__a, __b); + return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdge(__a, __b); + return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b); } static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_sd(__m128d __a, __m128d __b) { - return __builtin_ia32_ucomisdneq(__a, __b); + return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b); } static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpd_ps(__m128d __a) { - return __builtin_ia32_cvtpd2ps(__a); + return __builtin_ia32_cvtpd2ps((__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtps_pd(__m128 __a) { - return __builtin_ia32_cvtps2pd(__a); + return __builtin_ia32_cvtps2pd((__v4sf)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -398,13 +398,13 @@ _mm_cvtepi32_pd(__m128i __a) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtpd_epi32(__m128d __a) { - return __builtin_ia32_cvtpd2dq(__a); + return __builtin_ia32_cvtpd2dq((__v2df)__a); } static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsd_si32(__m128d __a) { - return __builtin_ia32_cvtsd2si(__a); + return __builtin_ia32_cvtsd2si((__v2df)__a); } static __inline__ __m128 __DEFAULT_FN_ATTRS @@ -431,7 +431,7 @@ _mm_cvtss_sd(__m128d __a, __m128 __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvttpd_epi32(__m128d __a) { - return (__m128i)__builtin_ia32_cvttpd2dq(__a); + return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a); } static __inline__ int __DEFAULT_FN_ATTRS @@ -443,13 +443,13 @@ _mm_cvttsd_si32(__m128d __a) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtpd_pi32(__m128d __a) { - return (__m64)__builtin_ia32_cvtpd2pi(__a); + return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a); } static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttpd_pi32(__m128d __a) { - return (__m64)__builtin_ia32_cvttpd2pi(__a); + return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -486,7 +486,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadr_pd(double const *__dp) { __m128d __u = *(__m128d*)__dp; - return __builtin_shufflevector(__u, __u, 1, 0); + return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); } static __inline__ __m128d __DEFAULT_FN_ATTRS @@ -598,13 +598,13 @@ _mm_store_pd(double *__dp, __m128d __a) static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_pd(double *__dp, __m128d __a) { - __builtin_ia32_storeupd(__dp, __a); + __builtin_ia32_storeupd(__dp, (__v2df)__a); } static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_pd(double *__dp, __m128d __a) { - __a = __builtin_shufflevector(__a, __a, 1, 0); + __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0); *(__m128d *)__dp = __a; } @@ -647,13 +647,13 @@ _mm_add_epi32(__m128i __a, __m128i __b) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_add_si64(__m64 __a, __m64 __b) { - return (__m64)__builtin_ia32_paddq(__a, __b); + return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi64(__m128i __a, __m128i __b) { - return __a + __b; + return (__m128i)((__v2di)__a + (__v2di)__b); } static __inline__ __m128i __DEFAULT_FN_ATTRS @@ -883,7 +883,7 @@ _mm_sub_epi32(__m128i __a, __m128i __b) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sub_si64(__m64 __a, __m64 __b) { - return (__m64)__builtin_ia32_psubq(__a, __b); + return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b); } /// \brief Subtracts the corresponding elements of two [2 x i64] vectors. @@ -901,7 +901,7 @@ _mm_sub_si64(__m64 __a, __m64 __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi64(__m128i __a, __m128i __b) { - return __a - __b; + return (__m128i)((__v2di)__a - (__v2di)__b); } /// \brief Subtracts corresponding 8-bit signed integer values in the input and @@ -1001,7 +1001,7 @@ _mm_subs_epu16(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_and_si128(__m128i __a, __m128i __b) { - return __a & __b; + return (__m128i)((__v2di)__a & (__v2di)__b); } /// \brief Performs a bitwise AND of two 128-bit integer vectors, using the @@ -1021,7 +1021,7 @@ _mm_and_si128(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_andnot_si128(__m128i __a, __m128i __b) { - return ~__a & __b; + return (__m128i)(~(__v2di)__a & (__v2di)__b); } /// \brief Performs a bitwise OR of two 128-bit integer vectors. /// @@ -1038,7 +1038,7 @@ _mm_andnot_si128(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_or_si128(__m128i __a, __m128i __b) { - return __a | __b; + return (__m128i)((__v2di)__a | (__v2di)__b); } /// \brief Performs a bitwise exclusive OR of two 128-bit integer vectors. @@ -1056,7 +1056,7 @@ _mm_or_si128(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_xor_si128(__m128i __a, __m128i __b) { - return __a ^ __b; + return (__m128i)((__v2di)__a ^ (__v2di)__b); } /// \brief Left-shifts the 128-bit integer vector operand by the specified @@ -1191,7 +1191,7 @@ _mm_sll_epi32(__m128i __a, __m128i __count) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi64(__m128i __a, int __count) { - return __builtin_ia32_psllqi128(__a, __count); + return __builtin_ia32_psllqi128((__v2di)__a, __count); } /// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand @@ -1210,7 +1210,7 @@ _mm_slli_epi64(__m128i __a, int __count) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi64(__m128i __a, __m128i __count) { - return __builtin_ia32_psllq128(__a, __count); + return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count); } /// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand @@ -1425,7 +1425,7 @@ _mm_srl_epi32(__m128i __a, __m128i __count) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi64(__m128i __a, int __count) { - return __builtin_ia32_psrlqi128(__a, __count); + return __builtin_ia32_psrlqi128((__v2di)__a, __count); } /// \brief Right-shifts each of 64-bit values in the 128-bit integer vector @@ -1444,7 +1444,7 @@ _mm_srli_epi64(__m128i __a, int __count) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi64(__m128i __a, __m128i __count) { - return __builtin_ia32_psrlq128(__a, __count); + return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count); } /// \brief Compares each of the corresponding 8-bit values of the 128-bit @@ -1665,7 +1665,7 @@ _mm_cvtsi64_sd(__m128d __a, long long __b) static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtsd_si64(__m128d __a) { - return __builtin_ia32_cvtsd2si64(__a); + return __builtin_ia32_cvtsd2si64((__v2df)__a); } /// \brief Converts the first (lower) element of a vector of [2 x double] into a @@ -1714,7 +1714,7 @@ _mm_cvtepi32_ps(__m128i __a) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtps_epi32(__m128 __a) { - return (__m128i)__builtin_ia32_cvtps2dq(__a); + return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a); } /// \brief Converts a vector of [4 x float] into a vector of [4 x i32], @@ -1730,7 +1730,7 @@ _mm_cvtps_epi32(__m128 __a) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvttps_epi32(__m128 __a) { - return (__m128i)__builtin_ia32_cvttps2dq(__a); + return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a); } /// \brief Returns a vector of [4 x i32] where the lowest element is the input @@ -2190,13 +2190,13 @@ _mm_storel_epi64(__m128i *__p, __m128i __a) static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(double *__p, __m128d __a) { - __builtin_ia32_movntpd(__p, __a); + __builtin_ia32_movntpd(__p, (__v2df)__a); } static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(__m128i *__p, __m128i __a) { - __builtin_ia32_movntdq(__p, __a); + __builtin_ia32_movntdq(__p, (__v2di)__a); } static __inline__ void __DEFAULT_FN_ATTRS @@ -2313,7 +2313,7 @@ _mm_unpackhi_epi32(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi64(__m128i __a, __m128i __b) { - return (__m128i)__builtin_shufflevector(__a, __b, 1, 2+1); + return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1); } static __inline__ __m128i __DEFAULT_FN_ATTRS @@ -2337,7 +2337,7 @@ _mm_unpacklo_epi32(__m128i __a, __m128i __b) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi64(__m128i __a, __m128i __b) { - return (__m128i)__builtin_shufflevector(__a, __b, 0, 2+0); + return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0); } static __inline__ __m64 __DEFAULT_FN_ATTRS @@ -2355,25 +2355,25 @@ _mm_movpi64_epi64(__m64 __a) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_move_epi64(__m128i __a) { - return __builtin_shufflevector(__a, (__m128i){ 0 }, 0, 2); + return __builtin_shufflevector((__v2di)__a, (__m128i){ 0 }, 0, 2); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpackhi_pd(__m128d __a, __m128d __b) { - return __builtin_shufflevector(__a, __b, 1, 2+1); + return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1); } static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpacklo_pd(__m128d __a, __m128d __b) { - return __builtin_shufflevector(__a, __b, 0, 2+0); + return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0); } static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pd(__m128d __a) { - return __builtin_ia32_movmskpd(__a); + return __builtin_ia32_movmskpd((__v2df)__a); } #define _mm_shuffle_pd(a, b, i) __extension__ ({ \ |

