diff options
author | Uros Bizjak <uros@kss-loka.si> | 2004-11-23 17:20:51 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2004-11-23 17:20:51 +0100 |
commit | 27b28c6dcd69a1aaa04001f396140323688df013 (patch) | |
tree | a026e9834ff08313a758c881dc80acf50849776b /gcc | |
parent | 6d861604ae18688f5d64289db876df2414a806da (diff) | |
download | gcc-27b28c6dcd69a1aaa04001f396140323688df013.zip gcc-27b28c6dcd69a1aaa04001f396140323688df013.tar.gz gcc-27b28c6dcd69a1aaa04001f396140323688df013.tar.bz2 |
simplify-rtx.c (simplify_binary_operation): Do not simplify inner elements of constant arguments of VEC_CONCAT insn.
rtl-optimization/18614
* simplify-rtx.c (simplify_binary_operation): Do not
simplify inner elements of constant arguments of
VEC_CONCAT insn.
testsuite:
* gcc.dg/pr18614-1.c: New test.
From-SVN: r91094
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr18614-1.c | 15 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e5b3a6..3342ad1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-11-23 Uros Bizjak <uros@kss-loka.si> + + PR rtl-optimization/18614 + * simplify-rtx.c (simplify_binary_operation): Do not + simplify inner elements of constant arguments of + VEC_CONCAT insn. + 2004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr> * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index a9d4ba3..ac896ab 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -1185,6 +1185,7 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode, trueop1 = avoid_constant_pool_reference (op1); if (VECTOR_MODE_P (mode) + && code != VEC_CONCAT && GET_CODE (trueop0) == CONST_VECTOR && GET_CODE (trueop1) == CONST_VECTOR) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 605cad3..91a04a8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-11-23 Uros Bizjak <uros@kss-loka.si> + + * gcc.dg/pr18614-1.c: New test. + 2004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr> * gcc.dg/setjmp-2.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr18614-1.c b/gcc/testsuite/gcc.dg/pr18614-1.c new file mode 100644 index 0000000..db1870c --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr18614-1.c @@ -0,0 +1,15 @@ +/* PR rtl-optimization/18614 */ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -msse2" } */ + +typedef double v2df __attribute__ ((vector_size (16))); + +v2df foo (void) +{ + v2df yd = { 1.0, 4.0 }; + v2df xd; + + xd = __builtin_ia32_cvtps2pd (__builtin_ia32_rsqrtps + (__builtin_ia32_cvtpd2ps (yd))); + return xd; +} |