------- Comment #6 from bernds at gcc dot gnu dot org 2010-06-30 22:08 ------- Ok, thanks for investigating. I think we may need something like this:
@@ -17574,6 +17574,7 @@ (define_peephole2 || GET_MODE (operands[0]) == HImode)) || GET_MODE (operands[0]) == SImode || (TARGET_64BIT && GET_MODE (operands[0]) == DImode)) + && peep2_reg_dead_p (2, operands[0]) /* We reorder load and the shift. */ && !reg_overlap_mentioned_p (operands[0], operands[4])" [(set (match_dup 5) (match_dup 4)) Testing now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44727