Commit b3db92ac by Kazuhio Inaoka Committed by Nick Clifton

rx.md: Add peepholes to match a register move followed by a comparison of the moved...

	* config/rx/rx.md: Add peepholes to match a register move followed
	by a comparison of the moved register.  Replace these with an
	addition of zero that does both actions in one instruction.

Co-Authored-By: Nick Clifton <nickc@redhat.com>

From-SVN: r173819
parent f3450bc8
2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
Nick Clifton <nickc@redhat.com>
* config/rx/rx.md: Add peepholes to match a register move followed
by a comparison of the moved register. Replace these with an
addition of zero that does both actions in one instruction.
2011-05-17 Jakub Jelinek <jakub@redhat.com>
PR target/48986
......
......@@ -904,6 +904,39 @@
(set_attr "length" "3,4,5,6,7,6")]
)
;; Peepholes to match:
;; (set (reg A) (reg B))
;; (set (CC) (compare:CC (reg A/reg B) (const_int 0)))
;; and replace them with the addsi3_flags pattern, using an add
;; of zero to copy the register and set the condition code bits.
(define_peephole2
[(set (match_operand:SI 0 "register_operand")
(match_operand:SI 1 "register_operand"))
(set (reg:CC CC_REG)
(compare:CC (match_dup 0)
(const_int 0)))]
""
[(parallel [(set (match_dup 0)
(plus:SI (match_dup 1) (const_int 0)))
(set (reg:CC_ZSC CC_REG)
(compare:CC_ZSC (plus:SI (match_dup 1) (const_int 0))
(const_int 0)))])]
)
(define_peephole2
[(set (match_operand:SI 0 "register_operand")
(match_operand:SI 1 "register_operand"))
(set (reg:CC CC_REG)
(compare:CC (match_dup 1)
(const_int 0)))]
""
[(parallel [(set (match_dup 0)
(plus:SI (match_dup 1) (const_int 0)))
(set (reg:CC_ZSC CC_REG)
(compare:CC_ZSC (plus:SI (match_dup 1) (const_int 0))
(const_int 0)))])]
)
(define_expand "adddi3"
[(set (match_operand:DI 0 "register_operand")
(plus:DI (match_operand:DI 1 "register_operand")
......
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