diff options
author | Richard Biener <rguenther@suse.de> | 2016-02-10 08:36:03 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-02-10 08:36:03 +0000 |
commit | 6cd8854e3d9739a7069e9c56b67630611cfbe598 (patch) | |
tree | 24c5511795245617829acd68b908716e537922d5 | |
parent | 0d99886f66d99a75e8f61435d819484676196861 (diff) | |
download | gcc-6cd8854e3d9739a7069e9c56b67630611cfbe598.zip gcc-6cd8854e3d9739a7069e9c56b67630611cfbe598.tar.gz gcc-6cd8854e3d9739a7069e9c56b67630611cfbe598.tar.bz2 |
re PR tree-optimization/69719 (wrong code at -O3 on x86_64-linux-gnu)
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.
From-SVN: r233262
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-vect-data-refs.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fed32be..3f3f734 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 49e871b..5d83028 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: |