The optimization checks when replacing st->ld with a shift sequence, whether the seuqence's costs are cost > COSTS_N_INSNS (1), and then *keeps* the st->ld otherwise. See dse.c:1864 (GCC 4.8.1 release). Isn't COSTS_N_INSN(1) a little low? Also, wouldn't it be better to check for cost > cost_of_store instead of the 'fixed' cost==1? Regard, Thanks, Hendrik Greving