diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 18:34:12 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 18:34:12 +0000 |
commit | 8631d44fd66c10b4c9e64562a0f82bd7321ba97d (patch) | |
tree | f906d30dbcfda9c9c13794fc3198a1e3b6eee5fa /gcc/config/i386/mmintrin.h | |
parent | e58fd8b5b5fcb2802b629f68b5c84336bb982357 (diff) | |
download | gcc-8631d44fd66c10b4c9e64562a0f82bd7321ba97d.tar.gz |
PR target/19530
* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
__builtin_ia32_vec_init_v2si.
(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
(ix86_init_mmx_sse_builtins): Create it.
(ix86_expand_builtin): Expand it.
(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
(vec_extractv2si_0, vec_extractv2si_1): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93972 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/mmintrin.h')
-rw-r--r-- | gcc/config/i386/mmintrin.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/config/i386/mmintrin.h b/gcc/config/i386/mmintrin.h index 4f2af6de15a..68c8313f9ae 100644 --- a/gcc/config/i386/mmintrin.h +++ b/gcc/config/i386/mmintrin.h @@ -58,8 +58,7 @@ _m_empty (void) static __inline __m64 _mm_cvtsi32_si64 (int __i) { - long long __tmp = (unsigned int)__i; - return (__m64) __tmp; + return (__m64) __builtin_ia32_vec_init_v2si (__i, 0); } static __inline __m64 @@ -88,8 +87,7 @@ _mm_set_pi64x (long long __i) static __inline int _mm_cvtsi64_si32 (__m64 __i) { - long long __tmp = (long long)__i; - return __tmp; + return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0); } static __inline int |