summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-20 19:06:28 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-20 19:06:28 +0000
commitaf87506b46fd83146d9ffdbdf9cb5467191e3ad5 (patch)
treeab4361f711f33f178610eb60a140e3318a53a2ea
parent89a35caf6e4694df8baa51805e5decde463cb1ee (diff)
downloadppe42-gcc-af87506b46fd83146d9ffdbdf9cb5467191e3ad5.tar.gz
ppe42-gcc-af87506b46fd83146d9ffdbdf9cb5467191e3ad5.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93974 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/emmintrin.h38
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b030e76e2c6..437f416edd0 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 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 */
OpenPOWER on IntegriCloud