aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-chrec.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2010-11-19 20:56:27 +0000
committerMichael Matz <matz@suse.de>2010-11-19 20:56:27 +0000
commit8968dde4f148da91b0a614f0b0caffad1dc8b55e (patch)
treefcc4ee581e8607a84c3348cb57868886d14503f1 /gcc/tree-chrec.c
parent47a95af9ee50f3ab15cde9d3cd6f85480d8326a3 (diff)
PR tree-optimization/46077
* tree-chrec.c (eq_evolutions_p): Accept some expressions. testsuite/ PR tree-optimization/46077 * gcc.dg/vect/O3-pr46077.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@166958 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-chrec.c')
-rw-r--r--gcc/tree-chrec.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c
index 72955108c7b..0c13c21bfe8 100644
--- a/gcc/tree-chrec.c
+++ b/gcc/tree-chrec.c
@@ -1433,6 +1433,16 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1)
return (CHREC_VARIABLE (chrec0) == CHREC_VARIABLE (chrec1)
&& eq_evolutions_p (CHREC_LEFT (chrec0), CHREC_LEFT (chrec1))
&& eq_evolutions_p (CHREC_RIGHT (chrec0), CHREC_RIGHT (chrec1)));
+
+ case PLUS_EXPR:
+ case MULT_EXPR:
+ case MINUS_EXPR:
+ case POINTER_PLUS_EXPR:
+ return eq_evolutions_p (TREE_OPERAND (chrec0, 0),
+ TREE_OPERAND (chrec1, 0))
+ && eq_evolutions_p (TREE_OPERAND (chrec0, 1),
+ TREE_OPERAND (chrec1, 1));
+
default:
return false;
}