Commit 18b776e9 by Segher Boessenkool Committed by Segher Boessenkool

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 (*add<mode>3_carry_in_internal2): New.

From-SVN: r255259
parent 561c58b4
2017-11-29 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
2017-11-29 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/80818
......@@ -1915,6 +1915,16 @@
"adde %0,%1,%2"
[(set_attr "type" "add")])
(define_insn "*add<mode>3_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 "add<mode>3_carry_in_0"
[(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
(plus:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment