https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91775
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Oh, the special accounting triggers for candidate 6, not for candidate 3. Candidate 6: Incr POS: orig biv IV struct: Type: unsigned int Base: 1024 Step: 4294967295 Biv: N Overflowness wrto loop niter: Overflow there's also Candidate 5: Var befor: ivtmp.8 Var after: ivtmp.8 Incr POS: before exit test IV struct: Type: unsigned int Base: 1024 Step: 4294967295 Biv: N Overflowness wrto loop niter: Overflow so lots of "same" candidates. Btw, we miss a candidate based on 4096 which would allow to elide the multiplication which probably means complex addressing mode. In the end we choose Candidate 11: Var befor: ivtmp.12_5 Var after: ivtmp.12_4 Incr POS: before exit test IV struct: Type: sizetype Base: 0 Step: 4 Biv: N Overflowness wrto loop niter: No-overflow probably also a missed-optimization for the new doloop stuff?