summaryrefslogtreecommitdiff
path: root/gcc/config/i386/mmintrin.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-20 18:34:12 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-20 18:34:12 +0000
commit8631d44fd66c10b4c9e64562a0f82bd7321ba97d (patch)
treef906d30dbcfda9c9c13794fc3198a1e3b6eee5fa /gcc/config/i386/mmintrin.h
parente58fd8b5b5fcb2802b629f68b5c84336bb982357 (diff)
downloadgcc-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.h6
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