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

Reply via email to