diff options
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 4a277ae..a97d413 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; } } |