-
- Downloads
tree-optimization/113026 - avoid vector epilog in more cases
The following avoids creating a niter peeling epilog more consistently, matching what peeling later uses for the skip_vector condition, in particular when versioning is required which then also ensures the vector loop is entered unless the epilog is vectorized. This should ideally match LOOP_VINFO_VERSIONING_THRESHOLD which is only computed later, some refactoring could make that better matching. The patch also makes sure to adjust the upper bound of the epilogues when we do not have a skip edge around the vector loop. PR tree-optimization/113026 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p): Avoid an epilog in more cases. * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the epilogues niter upper bounds and estimates. * gcc.dg/torture/pr113026-1.c: New testcase. * gcc.dg/torture/pr113026-2.c: Likewise.
Showing
- gcc/testsuite/gcc.dg/torture/pr113026-1.c 11 additions, 0 deletionsgcc/testsuite/gcc.dg/torture/pr113026-1.c
- gcc/testsuite/gcc.dg/torture/pr113026-2.c 18 additions, 0 deletionsgcc/testsuite/gcc.dg/torture/pr113026-2.c
- gcc/tree-vect-loop-manip.cc 32 additions, 0 deletionsgcc/tree-vect-loop-manip.cc
- gcc/tree-vect-loop.cc 5 additions, 1 deletiongcc/tree-vect-loop.cc
Loading
Please register or sign in to comment