aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-12-03 13:24:08 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-12-03 13:24:08 +0000
commitbcda485bdf8b8e7c645648e124e787f78846b2c6 (patch)
tree6cd2efcbbf7417a2a7a43c06cc9f2d36ad749e5d /gcc/tree-vect-loop.c
parent3eec96ce31a76aff7d78f1b51840382f2c28632c (diff)
downloadgcc-bcda485bdf8b8e7c645648e124e787f78846b2c6.zip
gcc-bcda485bdf8b8e7c645648e124e787f78846b2c6.tar.gz
gcc-bcda485bdf8b8e7c645648e124e787f78846b2c6.tar.bz2
tree-vect-loop.c (vect_transform_loop): Properly compute upper bound for the epilogue when doing epilogue vectorization.
2018-12-03 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_transform_loop): Properly compute upper bound for the epilogue when doing epilogue vectorization. From-SVN: r266737
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 9589a8e..633c315 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -8548,9 +8548,12 @@ vect_transform_loop (loop_vec_info loop_vinfo)
{
unsigned int eiters
= (LOOP_VINFO_INT_NITERS (loop_vinfo)
- - LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo));
- eiters = eiters % lowest_vf;
+ - 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);
epilogue->nb_iterations_upper_bound = eiters - 1;
+ epilogue->any_upper_bound = true;
unsigned int ratio;
while (next_size < vector_sizes.length ()