From edd5b7dab56b5a991a4dca4392cb07fbfd429dba Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 20 Jan 2005 11:06:28 -0800 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/i386/emmintrin.h | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b030e76e2c6..437f416edd0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-01-20 Richard Henderson + + 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 PR target/19530 diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h index d550aa8fc6a..3bf5fd81ff1 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 */ -- 2.30.2