The setting is likely a typo and was meant to affect the scalar version but even there LOOP_C_INFINITE is at most an optimization to the niter analysis. Clearly setting it on the vectorized loop which we just versioned to be _not_ infinite is bogus so the following change removes this.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. Richard. 2021-07-05 Richard Biener <rguent...@suse.de> * tree-vect-loop-manip.c (vect_loop_versioning): Do not set LOOP_C_INFINITE on the vectorized loop. --- gcc/tree-vect-loop-manip.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index 012f48bd487..2909e8a0fc3 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -3597,8 +3597,6 @@ vect_loop_versioning (loop_vec_info loop_vinfo, niter information which is copied from the original loop. */ gcc_assert (loop_constraint_set_p (loop, LOOP_C_FINITE)); vect_free_loop_info_assumptions (nloop); - /* And set constraint LOOP_C_INFINITE for niter analyzer. */ - loop_constraint_set (loop, LOOP_C_INFINITE); } if (LOCATION_LOCUS (vect_location.get_location_t ()) != UNKNOWN_LOCATION -- 2.26.2