Index: config/i386/i386.c =================================================================== --- config/i386/i386.c (revision 203770) +++ config/i386/i386.c (working copy) @@ -16897,8 +16897,10 @@ ix86_fixup_binary_operands (enum rtx_code code, en src2 = force_reg (mode, src2); src1 = src2; } + else if (rtx_equal_p (dst, src1)) + src2 = force_reg (mode, src2); else - src2 = force_reg (mode, src2); + src1 = force_reg (mode, src1); } /* If the destination is memory, and we do not have matching source