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
This commit is contained in:
parent
561c58b4d9
commit
18b776e936
@ -1,3 +1,7 @@
|
|||||||
|
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>
|
2017-11-29 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
PR rtl-optimization/80818
|
PR rtl-optimization/80818
|
||||||
|
@ -1915,6 +1915,16 @@
|
|||||||
"adde %0,%1,%2"
|
"adde %0,%1,%2"
|
||||||
[(set_attr "type" "add")])
|
[(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"
|
(define_insn "add<mode>3_carry_in_0"
|
||||||
[(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
|
[(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
|
||||||
(plus:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
|
(plus:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
|
||||||
|
Loading…
Reference in New Issue
Block a user