aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-02-10 08:36:03 +0000
committerRichard Biener <rguenther@suse.de>2016-02-10 08:36:03 +0000
commit22960192853a31cad421ab99a1798a1cd65889b8 (patch)
tree24c5511795245617829acd68b908716e537922d5
parent41747e4af1634b19b8b1474789e6d08e83e988e7 (diff)
2016-02-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/69719 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Adjust previous fix by ensuring that dr_a1 is left of dr_a2. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@233262 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vect-data-refs.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fed32beda35..3f3f734afe8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-10 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/69719
+ * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
+ Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
+
2016-02-09 Andrew Pinski <apinski@cavium.com>
PR tree-opt/69282
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 49e871b1411..5d830280add 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -3081,9 +3081,12 @@ vect_prune_runtime_alias_test_list (loop_vec_info loop_vinfo)
|| !tree_fits_shwi_p (dr_a2->offset))
continue;
+ /* Make sure dr_a1 starts left of dr_a2. */
+ if (tree_int_cst_lt (dr_a2->offset, dr_a1->offset))
+ std::swap (*dr_a1, *dr_a2);
+
unsigned HOST_WIDE_INT diff
- = absu_hwi (tree_to_shwi (dr_a2->offset)
- - tree_to_shwi (dr_a1->offset));
+ = tree_to_shwi (dr_a2->offset) - tree_to_shwi (dr_a1->offset);
/* Now we check if the following condition is satisfied: