summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 15:00:10 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 15:00:10 +0000
commitf3d6d99e7b0120ebedc4934983c464053af3c917 (patch)
tree5b3c0ad04fec2e6b97a7b70107dd6744aa6ee116 /gcc/tree-vect-loop.c
parent3388d323ccf77c3f4318f67d2efa38264ceb607c (diff)
downloadgcc-f3d6d99e7b0120ebedc4934983c464053af3c917.tar.gz
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/59164 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Uncomment assert. * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check whether we can create an epilogue loop to reflect the cases where we create one. * gcc.dg/torture/pr59164.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 4a277ae419a..a97d413f5cd 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -1588,24 +1588,19 @@ vect_analyze_loop_operations (loop_vec_info loop_vinfo, bool slp)
return false;
}
- if (LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo)
+ if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo)
|| ((int) tree_ctz (LOOP_VINFO_NITERS (loop_vinfo))
< exact_log2 (vectorization_factor)))
{
if (dump_enabled_p ())
- dump_printf_loc (MSG_NOTE, vect_location, "epilog loop required.\n");
- if (!vect_can_advance_ivs_p (loop_vinfo))
- {
- if (dump_enabled_p ())
- dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- "not vectorized: can't create epilog loop 1.\n");
- return false;
- }
- if (!slpeel_can_duplicate_loop_p (loop, single_exit (loop)))
+ dump_printf_loc (MSG_NOTE, vect_location, "epilog loop required\n");
+ if (!vect_can_advance_ivs_p (loop_vinfo)
+ || !slpeel_can_duplicate_loop_p (loop, single_exit (loop)))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- "not vectorized: can't create epilog loop 2.\n");
+ "not vectorized: can't create required "
+ "epilog loop\n");
return false;
}
}