Commit 494c4921 by Richard Earnshaw Committed by Richard Earnshaw

[arm] fix constraints on addsi3_carryin_alt2

addsi3_carryin_alt2 has a more strict constraint than the predicate
when adding a constant.  This leads to sub-optimal code in some
circumstances.

	* config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
	operand 2.

From-SVN: r277168
parent 717e1281
2019-10-18 Richard Earnshaw <rearnsha@arm.com> 2019-10-18 Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
operand 2.
2019-10-18 Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
to match canonical form. to match canonical form.
......
...@@ -893,7 +893,7 @@ ...@@ -893,7 +893,7 @@
[(set (match_operand:SI 0 "s_register_operand" "=l,r,r") [(set (match_operand:SI 0 "s_register_operand" "=l,r,r")
(plus:SI (plus:SI (LTUGEU:SI (reg:<cnb> CC_REGNUM) (const_int 0)) (plus:SI (plus:SI (LTUGEU:SI (reg:<cnb> CC_REGNUM) (const_int 0))
(match_operand:SI 1 "s_register_operand" "%l,r,r")) (match_operand:SI 1 "s_register_operand" "%l,r,r"))
(match_operand:SI 2 "arm_rhs_operand" "l,rI,K")))] (match_operand:SI 2 "arm_not_operand" "l,rI,K")))]
"TARGET_32BIT" "TARGET_32BIT"
"@ "@
adc%?\\t%0, %1, %2 adc%?\\t%0, %1, %2
......
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