https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126994
--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
tree assumptions; /* The boolean expression. If this expression
evaluates
to false, then the other fields in this structure
should not be used; there is no guarantee that they
will be correct. */
tree may_be_zero; /* The boolean expression. If it evaluates to true,
the loop will exit in the first iteration (i.e.
its latch will not be executed), even if the niter
field says otherwise. */
tree niter; /* The expression giving the number of iterations of
a loop (provided that assumptions == true and
may_be_zero == false), more precisely the number
of executions of the latch of the loop. */
I think there is a missing check for may_be_zero.