diff options
author | Richard Henderson <rth@redhat.com> | 2005-01-20 11:06:28 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-01-20 11:06:28 -0800 |
commit | edd5b7dab56b5a991a4dca4392cb07fbfd429dba (patch) | |
tree | ab4361f711f33f178610eb60a140e3318a53a2ea /gcc | |
parent | 58b03a2dd205cf0cdda5b7bed4ec941fb695ed46 (diff) | |
download | gcc-edd5b7dab56b5a991a4dca4392cb07fbfd429dba.zip gcc-edd5b7dab56b5a991a4dca4392cb07fbfd429dba.tar.gz gcc-edd5b7dab56b5a991a4dca4392cb07fbfd429dba.tar.bz2 |
re PR target/19418 (_mm_cast*, icc8.1 new intrinsics)
PR target/19418
* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
(_mm_castps_pd, _mm_castps_si128): New.
(_mm_castsi128_ps, _mm_castsi128_pd): New.
From-SVN: r93974
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/emmintrin.h | 38 |
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b030e76..437f416 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2005-01-20 Richard Henderson <rth@redhat.com> + PR target/19418 + * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New. + (_mm_castps_pd, _mm_castps_si128): New. + (_mm_castsi128_ps, _mm_castsi128_pd): New. + +2005-01-20 Richard Henderson <rth@redhat.com> + PR target/19530 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use __builtin_ia32_vec_init_v2si. diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h index d550aa8..3bf5fd8 100644 --- a/gcc/config/i386/emmintrin.h +++ b/gcc/config/i386/emmintrin.h @@ -1385,6 +1385,44 @@ _mm_cvtsi64x_si128 (long long __A) } #endif +/* Casts between various SP, DP, INT vector types. Note that these do no + conversion of values, they just change the type. */ +static inline __m128 +_mm_castpd_ps(__m128d __A) +{ + return (__m128) __A; +} + +static inline __m128i +_mm_castpd_si128(__m128d __A) +{ + return (__m128i) __A; +} + +static inline __m128d +_mm_castps_pd(__m128 __A) +{ + return (__m128d) __A; +} + +static inline __m128i +_mm_castps_si128(__m128 __A) +{ + return (__m128i) __A; +} + +static inline __m128 +_mm_castsi128_ps(__m128i __A) +{ + return (__m128) __A; +} + +static inline __m128d +_mm_castsi128_pd(__m128i __A) +{ + return (__m128d) __A; +} + #endif /* __SSE2__ */ #endif /* _EMMINTRIN_H_INCLUDED */ |