aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-10-11 10:42:25 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2005-10-11 10:42:25 +0200
commiteef909625744e3552e10e958349f105175281a50 (patch)
treedee967ed641d951f07d1277c39fe4a56af98fc88 /gcc
parent4bff36d30616df91fbfb4d9c427721d52c0a1527 (diff)
downloadgcc-eef909625744e3552e10e958349f105175281a50.zip
gcc-eef909625744e3552e10e958349f105175281a50.tar.gz
gcc-eef909625744e3552e10e958349f105175281a50.tar.bz2
i386.md (movsi_1, [...]): Use mmxadd type for setting MMX register to 0 rather than mmx.
* config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type for setting MMX register to 0 rather than mmx. * g++.dg/opt/mmx2.C: New test. From-SVN: r105230
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.md4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/opt/mmx2.C23
4 files changed, 34 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1880fc..6b1f9c5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-11 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
+ for setting MMX register to 0 rather than mmx.
+
2005-10-10 Steve Ellcey <sje@cup.hp.com>
PR target/12098
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index f8059ad..849920e 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1193,7 +1193,7 @@
}
[(set (attr "type")
(cond [(eq_attr "alternative" "2")
- (const_string "mmx")
+ (const_string "mmxadd")
(eq_attr "alternative" "3,4,5")
(const_string "mmxmov")
(eq_attr "alternative" "6")
@@ -2007,7 +2007,7 @@
}
[(set (attr "type")
(cond [(eq_attr "alternative" "5")
- (const_string "mmx")
+ (const_string "mmxadd")
(eq_attr "alternative" "6,7,8")
(const_string "mmxmov")
(eq_attr "alternative" "9")
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dd19af6..8ebe56e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-11 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/opt/mmx2.C: New test.
+
2005-10-10 Mark Mitchell <mark@codesourcery.com>
PR c++/24277
diff --git a/gcc/testsuite/g++.dg/opt/mmx2.C b/gcc/testsuite/g++.dg/opt/mmx2.C
new file mode 100644
index 0000000..21dcdda
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/mmx2.C
@@ -0,0 +1,23 @@
+// { dg-do link { target i?86-*-* x86_64-*-* } }
+// { dg-options "-O2 -mmmx" }
+
+#include <mmintrin.h>
+
+static union u { __m64 m; long long l; } u;
+extern "C" void abort (void);
+
+__attribute__((noinline))
+void bar (__m64 x)
+{
+ u.m = x;
+}
+
+int
+main ()
+{
+ bar (_mm_set_pi32 (0x000000FF,0xFFFF00FF));
+ _mm_empty ();
+ if (u.l != 0xffffff00ffLL)
+ abort ();
+ return 0;
+}