From 12b3553fe4111b2f095d2397acbddf4d9b019eac Mon Sep 17 00:00:00 2001 From: Stuart Hastings Date: Wed, 23 Aug 2006 21:41:35 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/20060821-1.c | 9 +++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/20060821-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 195c92b9929..a15af37cb51 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-23 Stuart Hastings + + 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 PR debug/28692 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 5161ddaa693..a7f3c0d8078 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 7c1cb9419e9..45cf402e21b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-08-23 Stuart Hastings + + PR 28825 + * gcc.target/i386/20060821-1.c: New. + 2006-08-23 Danny Smith 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 00000000000..56e980fddfb --- /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 +__m128 ggg(float* m) +{ + return (__m128) {m[0], m[5], m[10], m[10]}; +} -- 2.30.2