https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108757
--- Comment #19 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note in the loop case we know it does not wrap because there is a check already: <bb 2> [local count: 118111600]: if (rows_8(D) > 3) goto <bb 5>; [89.00%] else goto <bb 4>; [11.00%] <bb 5> [local count: 105119324]: _13 = rows_8(D) + 18446744073709551612; _15 = _13 / 4; doloop.6_5 = _15 + 1;