From: Segher Boessenkool Date: Wed, 29 Nov 2017 22:30:24 +0000 (+0100) Subject: rs6000: Add second variant of adde X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=18b776e936e15310907e014e4e460d45d148bbf6;p=gcc.git rs6000: Add second variant of adde This adds a second variant of the adde insn pattern, this one with the CA register as the second operand. The existing pattern has it as the third operand. It would be ideal if RTL was always canonicalised like that, but it isn't (and that is not trivial), and this is a simple and harmless patch. * config/rs6000/rs6000.md (*add3_carry_in_internal2): New. From-SVN: r255259 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8bc4a063697..62ca3dca421 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-11-29 Segher Boessenkool + + * config/rs6000/rs6000.md (*add3_carry_in_internal2): New. + 2017-11-29 Vladimir Makarov PR rtl-optimization/80818 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c9b35c9104a..12d5564d263 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1915,6 +1915,16 @@ "adde %0,%1,%2" [(set_attr "type" "add")]) +(define_insn "*add3_carry_in_internal2" + [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") + (plus:GPR (plus:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") + (reg:GPR CA_REGNO)) + (match_operand:GPR 2 "gpc_reg_operand" "r"))) + (clobber (reg:GPR CA_REGNO))] + "" + "adde %0,%1,%2" + [(set_attr "type" "add")]) + (define_insn "add3_carry_in_0" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (plus:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")