arm.md (smaxsi3): Make aware of smax_m1.

* arm.md (smaxsi3): Make aware of smax_m1.
	(smax_m1): New.

From-SVN: r110443
This commit is contained in:
Nicolas Pitre 2006-01-31 17:05:03 +00:00 committed by Nicolas Pitre
parent aa2192f89e
commit 0cb381f042
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2006-01-31 Nicolas Pitre <nico@cam.org>
* arm.md (smaxsi3): Make aware of smax_m1.
(smax_m1): New.
2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
* gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.

View File

@ -2481,7 +2481,7 @@
(clobber (reg:CC CC_REGNUM))])]
"TARGET_ARM"
"
if (operands[2] == const0_rtx)
if (operands[2] == const0_rtx || operands[2] == constm1_rtx)
{
/* No need for a clobber of the condition code register here. */
emit_insn (gen_rtx_SET (VOIDmode, operands[0],
@ -2500,6 +2500,15 @@
[(set_attr "predicable" "yes")]
)
(define_insn "*smax_m1"
[(set (match_operand:SI 0 "s_register_operand" "=r")
(smax:SI (match_operand:SI 1 "s_register_operand" "r")
(const_int -1)))]
"TARGET_ARM"
"orr%?\\t%0, %1, %1, asr #31"
[(set_attr "predicable" "yes")]
)
(define_insn "*smax_insn"
[(set (match_operand:SI 0 "s_register_operand" "=r,r")
(smax:SI (match_operand:SI 1 "s_register_operand" "%0,?r")