http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61098
Bug ID: 61098 Summary: Poor code setting count register for large loops Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: amodra at gmail dot com Seen on a for (i = 0; i < 100000000; i++) loop 100003bc: 3d 20 05 f5 lis r9,1525 100003c0: 7d 29 03 a6 mtctr r9 100003c4: 7d 3e 1a 14 add r9,r30,r3 100003c8: 7d 49 02 a6 mfctr r10 100003cc: 61 4a e1 00 ori r10,r10,57600 100003d0: 7d 49 03 a6 mtctr r10 Note the horrible mtctr, mfctr, mtctr