diff options
author | Jakub Jelinek <jakub@redhat.com> | 2005-10-11 10:42:25 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2005-10-11 10:42:25 +0200 |
commit | eef909625744e3552e10e958349f105175281a50 (patch) | |
tree | dee967ed641d951f07d1277c39fe4a56af98fc88 /gcc | |
parent | 4bff36d30616df91fbfb4d9c427721d52c0a1527 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/mmx2.C | 23 |
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; +} |