aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-12-04 13:23:13 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-12-04 13:23:13 +0000
commitfa29266c1da984345e0637b7479bbcc4b34cafde (patch)
tree3666d5bac499db31677cad9ef1520c68e619cdbd /gcc
parent0f7bbec7298894608d6ccf1585b6a541d79ae609 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-vect-loop.c6
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);