http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48308
--- Comment #17 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-01-06 16:02:49 UTC --- I think it would be better to just generate a single insn early on and then to split it once the loop optimizers have had a chance to run. Then the optimizers should be able to throw the whole expression away if it's not needed and hoist it as a whole if it's inside a loop. Splitting it before sched1 would be ideal, but the split could be delayed until after reload if necessary.