diff options
author | Stuart Hastings <stuart@apple.com> | 2006-08-23 21:41:35 +0000 |
---|---|---|
committer | Stuart Hastings <stuart@gcc.gnu.org> | 2006-08-23 21:41:35 +0000 |
commit | 12b3553fe4111b2f095d2397acbddf4d9b019eac (patch) | |
tree | ae71c5d28b287a2b2467e57585892d58e00a64a4 | |
parent | b2742484fc283c53ae31a2c227212f963a36124e (diff) | |
download | gcc-12b3553fe4111b2f095d2397acbddf4d9b019eac.zip gcc-12b3553fe4111b2f095d2397acbddf4d9b019eac.tar.gz gcc-12b3553fe4111b2f095d2397acbddf4d9b019eac.tar.bz2 |
re PR target/28825 (return (vector float) { a, a, b, b } generates unwanted MMX insns)
PR 28825
* gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
* gcc.target/i386/20060821-1.c: New.
From-SVN: r116356
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/20060821-1.c | 9 |
4 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 195c92b..a15af37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-23 Stuart Hastings <stuart@apple.com> + + PR 28825 + * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate, + ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test. + 2006-08-21 Geoffrey Keating <geoffk@apple.com> PR debug/28692 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 5161dda..a7f3c0d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -17928,7 +17928,7 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, enum machine_mode mode, { case V2SImode: case V2SFmode: - if (!mmx_ok && !TARGET_SSE) + if (!mmx_ok) return false; /* FALLTHRU */ @@ -18067,7 +18067,7 @@ ix86_expand_vector_init_one_nonzero (bool mmx_ok, enum machine_mode mode, { case V2SFmode: case V2SImode: - if (!mmx_ok && !TARGET_SSE) + if (!mmx_ok) return false; /* FALLTHRU */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7c1cb94..45cf402 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-08-23 Stuart Hastings <stuart@apple.com> + + PR 28825 + * gcc.target/i386/20060821-1.c: New. + 2006-08-23 Danny Smith <dannysmith@users.sourceforge.net> gcc.dg/attr-invalid.c: Insert an " |directive" substitution into diff --git a/gcc/testsuite/gcc.target/i386/20060821-1.c b/gcc/testsuite/gcc.target/i386/20060821-1.c new file mode 100644 index 0000000..56e980f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/20060821-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse3 -S" } */ +/* { dg-final { scan-assembler-not "%mm" } } */ +/* PR 28825 */ +#include <pmmintrin.h> +__m128 ggg(float* m) +{ + return (__m128) {m[0], m[5], m[10], m[10]}; +} |