diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 4e916bf..f3799ac 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -18946,6 +18946,16 @@ operands[2] = gen_rtx_REG (GET_MODE (operands[0]), FLAGS_REG); ix86_expand_clear (operands[1]); }) + +;; Reload dislikes loading constants directly into class_likely_spilled +;; hard registers. Try to tidy things up here. +(define_peephole2 + [(set (match_operand:SWI 0 "general_reg_operand") + (match_operand:SWI 1 "x86_64_general_operand")) + (set (match_operand:SWI 2 "general_reg_operand") + (match_dup 0))] + "peep2_reg_dead_p (2, operands[0])" + [(set (match_dup 2) (match_dup 1))]) ;; Misc patterns (?)