http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21485
--- Comment #54 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-15 14:40:39 UTC --- (In reply to comment #48) > I noticed PR 32120 is also involved. > > D.1716_7 = k_4 * 8; > D.1717_9 = array_8(D) + D.1716_7; > D.1718_10 = *D.1717_9; > k_11 = k_4 + 1; > D.1720_12 = k_11 * 8; > > > The D.1720_12 should be converted to D.1716_7 + 8. For this the straight-line strenght-reduction pass now does <bb 5>: _8 = i_6 * 8; _10 = array_9(D) + _8; _11 = *_10; i_12 = i_6 + 1; _13 = _8 + 8; _14 = array_9(D) + _13; _15 = *_14; replacing i_12 * 8 with _8 + 8. The association / CSE opportunity is undetected (maybe it makes sense to schedule pass_strength_reduction before the 2nd pass_reassoc?).