https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89588
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- There is: 401 /* However we cannot unroll completely at the RTL level a loop with 402 constant number of iterations; it should have been peeled instead. */ 403 if ((unsigned) loop->unroll - 1 > desc->niter - 2) 404 { 405 if (dump_file) 406 fprintf (dump_file, ";; Loop should have been peeled\n"); 407 } As desc->niter is uint64_t 1, desc->niter - 2 is 0xffffffffffffffffULL. Shouldn't we punt also for desc->niter == 1 , so desc->niter == 1 || (unsigned) ... ?