diff options
author | Alan Lawrence <alan.lawrence@arm.com> | 2015-11-02 12:39:31 +0000 |
---|---|---|
committer | Alan Lawrence <alalaw01@gcc.gnu.org> | 2015-11-02 12:39:31 +0000 |
commit | 35e2be9fc91767188cad3448f8a1434e8461e199 (patch) | |
tree | 85a69d806b80a8d611381bc98bddc6367780a53c | |
parent | f4155d214e283f70e7a397577473443e2968f4a7 (diff) | |
download | gcc-35e2be9fc91767188cad3448f8a1434e8461e199.zip gcc-35e2be9fc91767188cad3448f8a1434e8461e199.tar.gz gcc-35e2be9fc91767188cad3448f8a1434e8461e199.tar.bz2 |
Revert: tree-scalar-evolution.c: Handle LSHIFT by constant
gcc/:
tree-scalar-evolution.c (interpret_rhs_expr): Handle some
LSHIFT_EXPRs as equivalent MULT_EXPRs.
gcc/testsuite/:
gcc.dg/vect/vect-strided-shift.c: New.
From-SVN: r229660
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c | 33 | ||||
-rw-r--r-- | gcc/tree-scalar-evolution.c | 14 |
4 files changed, 16 insertions, 47 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 966a7f9..e293ad2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-11-02 Alan Lawrence <alan.lawrence@arm.com> + + Revert: + 2015-10-27 Alan Lawrence <alan.lawrence@arm.com> + + PR tree-optimization/65963 + * tree-scalar-evolution.c (interpret_rhs_expr): Handle some LSHIFT_EXPRs + as equivalent MULT_EXPRs. + 2015-11-02 Thomas Schwinge <thomas@codesourcery.com> PR middle-end/68166 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 471b02d5..a86920a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2015-11-02 Alan Lawrence <alan.lawrence@arm.com> + + Revert: + 2015-10-27 Alan Lawrence <alan.lawrence@arm.com> + + * gcc.dg/vect/vect-strided-shift-1.c: New. + 2015-11-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR target/67929 diff --git a/gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c b/gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c deleted file mode 100644 index b1ce2ec..0000000 --- a/gcc/testsuite/gcc.dg/vect/vect-strided-shift-1.c +++ /dev/null @@ -1,33 +0,0 @@ -/* PR tree-optimization/65963. */ -#include "tree-vect.h" - -#define N 512 - -int in[2*N], out[N]; - -__attribute__ ((noinline)) void -loop (void) -{ - for (int i = 0; i < N; i++) - out[i] = in[i << 1] + 7; -} - -int -main (int argc, char **argv) -{ - check_vect (); - for (int i = 0; i < 2*N; i++) - { - in[i] = i; - __asm__ volatile ("" : : : "memory"); - } - loop (); - __asm__ volatile ("" : : : "memory"); - for (int i = 0; i < N; i++) - { - if (out[i] != i*2 + 7) - abort (); - } - return 0; -} -/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 1 "vect" { target { vect_strided2 } } } } */ diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index 3045c05..bb27b07 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -1827,20 +1827,6 @@ interpret_rhs_expr (struct loop *loop, gimple *at_stmt, res = chrec_fold_multiply (type, chrec1, chrec2); break; - case LSHIFT_EXPR: - /* Handle A<<B as A * (1<<B). */ - chrec1 = analyze_scalar_evolution (loop, rhs1); - chrec2 = analyze_scalar_evolution (loop, rhs2); - chrec1 = chrec_convert (type, chrec1, at_stmt); - chrec1 = instantiate_parameters (loop, chrec1); - chrec2 = instantiate_parameters (loop, chrec2); - - chrec2 = fold_build2 (LSHIFT_EXPR, type, - build_int_cst (TREE_TYPE (rhs1), 1), - chrec2); - res = chrec_fold_multiply (type, chrec1, chrec2); - break; - CASE_CONVERT: /* In case we have a truncation of a widened operation that in the truncated type has undefined overflow behavior analyze |