http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54089
--- Comment #12 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-08-11 20:25:45 UTC --- (In reply to comment #9) > (In reply to comment #8) > > #define SH_DYNAMIC_SHIFT_COST (TARGET_DYNSHIFT ? 1 : 20) > > Sounds reasonable. Perhaps some historical reason for the original > one, though I don't know why. Could you run SCiBE tests with it? I've checked result-size for -m2a-single -mb -O2 ... In total there's a decrease of 1728 bytes, with a few cases where there are increases. I've briefly checked out why code gets bigger in those cases. As far as I can see at the moment, one reason is because right shifts are dynamicalized (converted to dynamic shift insns) although it's not really beneficial. I think I'll try to brush up the right shifts patterns first, then try again.