unsigned long long div16(unsigned long long n) { return n / 16; } Without -mpowerpc64: _div16: slwi r0,r3,28 srwi r4,r4,4 or r4,r0,r4 srwi r3,r3,4 blr
With: _div16: li r0,0 rldimi r0,r3,32,0 rldimi r0,r4,0,32 srdi r4,r0,4 srdi r3,r0,36 blr -- Summary: -mpowerpc64 can cause worse code than without it Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: powerpc-darwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17959