expand_divmod cannot optimize code such as long long div10(long long n) { return n / 10; }
when BITS_PER_WORD is 32. A call to __divdi3 gets generated. By contrast, when BITS_PER_WORD is 64, this is optimized to a multiply and a shift. I noticed this problem on powerpc32, but it ought to affect any 32-bit target. -- Summary: expand_divmod fails to optimize division of 64-bit quantity by small constant when BITS_PER_WORD is 32 Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P2 Component: rtl-optimization AssignedTo: roger at eyesopen dot com ReportedBy: zack at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: powerpc-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17958