* config/c4x/c4x.md: Delete parallel instruction peepholes.

From-SVN: r29581
This commit is contained in:
Michael Hayes 1999-09-22 08:26:38 +00:00 committed by Michael Hayes
parent 7ae0297fa4
commit ae95939774
2 changed files with 4 additions and 583 deletions

View File

@ -1,3 +1,7 @@
Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md: Delete parallel instruction peepholes.
Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.

View File

@ -6675,45 +6675,6 @@
return \"br%#\\t%C1\";"
[(set_attr "type" "jump")])
;
; Peepholes for parallel instructions
;
(define_peephole
[(set (match_operand:QI 0 "ext_low_reg_operand" "")
(match_operand:QI 1 "par_ind_operand" ""))
(set (match_operand:QI 2 "ext_low_reg_operand" "")
(match_operand:QI 3 "par_ind_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[1], operands[3], 0, 0)"
"ldi1\\t%1,%0\\n||\\tldi2\\t%3,%2")
; load occurs before store if 1 and 2 point to same address
(define_peephole
[(set (match_operand:QI 0 "ext_low_reg_operand" "")
(match_operand:QI 1 "par_ind_operand" ""))
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))
&& ! c4x_address_conflict (operands[1], operands[2], 0, 1)"
"ldi\\t%1,%0\\n||\\tsti\\t%3,%2")
; load occurs before store if 0 and 3 point to same address
(define_peephole
[(set (match_operand:QI 0 "par_ind_operand" "")
(match_operand:QI 1 "ext_low_reg_operand" ""))
(set (match_operand:QI 2 "ext_low_reg_operand" "")
(match_operand:QI 3 "par_ind_operand" ""))]
"(REGNO (operands[1]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[0], operands[3], 1, 0)"
"ldi\\t%3,%2\\n||\\tsti\\t%1,%0")
(define_peephole
[(set (match_operand:QI 0 "par_ind_operand" "")
(match_operand:QI 1 "ext_low_reg_operand" ""))
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"! c4x_address_conflict (operands[0], operands[2], 1, 1)"
"sti\\t%1,%0\\n||\\tsti\\t%3,%2")
; This peephole should be unnecessary with my patches to flow.c
; for better autoincrement detection
@ -6727,15 +6688,6 @@
""
"ldf\\t*%1++,%0\\n\\tldf\\t*%1++,%2")
(define_peephole
[(set (match_operand:QF 0 "ext_low_reg_operand" "")
(match_operand:QF 1 "par_ind_operand" ""))
(set (match_operand:QF 2 "ext_low_reg_operand" "")
(match_operand:QF 3 "par_ind_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[1], operands[3], 0, 1)"
"ldf1\\t%1,%0\\n||\\tldf2\\t%3,%2")
; This peephole should be unnecessary with my patches to flow.c
; for better autoincrement detection
(define_peephole
@ -6748,541 +6700,6 @@
""
"stf\\t%1,*%0++\\n\\tstf\\t%2,*%0++")
(define_peephole
[(set (match_operand:QF 0 "ext_low_reg_operand" "")
(match_operand:QF 1 "par_ind_operand" ""))
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"ldf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(set (match_operand:QF 0 "par_ind_operand" "")
(match_operand:QF 1 "ext_low_reg_operand" ""))
(set (match_operand:QF 2 "ext_low_reg_operand" "")
(match_operand:QF 3 "par_ind_operand" ""))]
"! c4x_address_conflict (operands[0], operands[3], 1, 1)"
"ldf\\t%3,%2\\n||\\tstf\\t%1,%0")
(define_peephole
[(set (match_operand:QF 0 "par_ind_operand" "")
(match_operand:QF 1 "ext_low_reg_operand" ""))
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"! c4x_address_conflict (operands[0], operands[2], 1, 1)"
"stf1\\t%1,%0\\n||\\tstf2\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (abs:QF (match_operand:QF 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(abs:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"absf\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(abs:QF (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (abs:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(abs:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(abs:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (and:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (and:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ashift:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"ash3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ashiftrt:QI (match_operand:QI 1 "par_ind_operand" "")
(neg:QI (match_operand:QI 2 "ext_low_reg_operand" ""))))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"ash3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (fix:QI (match_operand:QF 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(fix:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"fix\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(fix:QI (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"fix\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (float:QF (match_operand:QI 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(float:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"float\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(float:QF (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"float\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (neg:QF (match_operand:QF 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(neg:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"negf\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(neg:QF (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (neg:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(neg:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(neg:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (not:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(not:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"not\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(not:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"not\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (ior:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (ior:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (minus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(minus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(minus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (minus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(minus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"subf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(minus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (xor:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (xor:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
; The following two peepholes remove an unecessary load
; often found at the end of a function. These peepholes