From: Segher Boessenkool Date: Wed, 29 Nov 2017 22:30:24 +0000 (+0100) Subject: rs6000: Add second variant of adde X-Git-Tag: basepoints/gcc-9~2977 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18b776e936e15310907e014e4e460d45d148bbf6;p=thirdparty%2Fgcc.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 8bc4a063697a..62ca3dca4215 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 c9b35c9104a1..12d5564d2637 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")