------- Comment #12 from steven at gcc dot gnu dot org 2009-01-04 21:07 ------- This fixes it for me. However, I'm no RTL expert, and especially combine I know nothing about :-)
I'll test/post this and see how the RTL guru's judge it. * combine.c (try_combine): Adjust INSN_CODE after making a valid replacement of an insn's PATTERN. Index: combine.c =================================================================== --- combine.c (revision 143052) +++ combine.c (working copy) @@ -2900,6 +2900,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_dire change to the destination of I3. This requires us to do a few adjustments. */ + INSN_CODE (i3) = insn_code_number; PATTERN (i3) = newpat; adjust_for_new_dest (i3); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38722