diff options
author | Richard Biener <rguenther@suse.de> | 2018-12-04 13:23:13 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-12-04 13:23:13 +0000 |
commit | fa29266c1da984345e0637b7479bbcc4b34cafde (patch) | |
tree | 3666d5bac499db31677cad9ef1520c68e619cdbd | |
parent | 0f7bbec7298894608d6ccf1585b6a541d79ae609 (diff) | |
download | gcc-fa29266c1da984345e0637b7479bbcc4b34cafde.zip gcc-fa29266c1da984345e0637b7479bbcc4b34cafde.tar.gz gcc-fa29266c1da984345e0637b7479bbcc4b34cafde.tar.bz2 |
tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations for epilogue vectorization.
2018-12-04 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations
for epilogue vectorization.
From-SVN: r266777
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-vect-loop.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4bb7187..a4d0c7c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2018-12-04 Richard Biener <rguenther@suse.de> + * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations + for epilogue vectorization. + +2018-12-04 Richard Biener <rguenther@suse.de> + PR tree-optimization/88301 * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion issues in last commit. diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index fa926f4..8934d0e 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -8501,13 +8501,13 @@ vect_transform_loop (loop_vec_info loop_vinfo) targetm.vectorize.autovectorize_vector_sizes (&vector_sizes); unsigned int next_size = 0; + /* Note LOOP_VINFO_NITERS_KNOWN_P and LOOP_VINFO_INT_NITERS work + on niters already ajusted for the iterations of the prologue. */ if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) - && LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) >= 0 && known_eq (vf, lowest_vf)) { - unsigned int eiters + unsigned HOST_WIDE_INT eiters = (LOOP_VINFO_INT_NITERS (loop_vinfo) - - LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) - LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo)); eiters = eiters % lowest_vf + LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo); |