;; ----------------------------------------------------------------- ;; COMBINE PATTERNS ;; ----------------------------------------------------------------- ;; insv:SI (define_insn_and_split "*insv_si_1_n" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (match_operand:SI 2 "register_operand" "r"))] "INTVAL (operands[1]) < 16" "#" "&& reload_completed" [(parallel [(set (zero_extract:SI (match_dup 0) (const_int 1) (match_dup 1)) (match_dup 2)) (clobber (reg:CC CC_REG))])]) (define_insn "*insv_si_1_n_clobber_flags" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (match_operand:SI 2 "register_operand" "r")) (clobber (reg:CC CC_REG))] "INTVAL (operands[1]) < 16" "bld\\t#0,%w2\;bst\\t%Z1,%Y0" [(set_attr "length" "4")]) (define_insn_and_split "*insv_si_1_n_lshiftrt" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (match_operand:SI 3 "const_int_operand" "n")))] "INTVAL (operands[1]) < 16 && INTVAL (operands[3]) < 16" "#" "&& reload_completed" [(parallel [(set (zero_extract:SI (match_dup 0) (const_int 1) (match_dup 1)) (lshiftrt:SI (match_dup 2) (match_dup 3))) (clobber (reg:CC CC_REG))])]) (define_insn "*insv_si_1_n_lshiftrt_clobber_flags" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (match_operand:SI 3 "const_int_operand" "n"))) (clobber (reg:CC CC_REG))] "INTVAL (operands[1]) < 16 && INTVAL (operands[3]) < 16" "bld\\t%Z3,%Y2\;bst\\t%Z1,%Y0" [(set_attr "length" "4")]) (define_insn_and_split "*insv_si_1_n_lshiftrt_16" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)))] "INTVAL (operands[1]) < 16" "#" "&& reload_completed" [(parallel [(set (zero_extract:SI (match_dup 0) (const_int 1) (match_dup 1)) (lshiftrt:SI (match_dup 2) (const_int 16))) (clobber (reg:CC CC_REG))])]) (define_insn "*insv_si_1_n_lshiftrt_16_clobber_flags" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 1) (match_operand:SI 1 "const_int_operand" "n")) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16))) (clobber (reg:CC CC_REG))] "INTVAL (operands[1]) < 16" "rotr.w\\t%e2\;rotl.w\\t%e2\;bst\\t%Z1,%Y0" [(set_attr "length" "6")]) (define_insn_and_split "*insv_si_8_8" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 8) (const_int 8)) (match_operand:SI 1 "register_operand" "r"))] "" "#" "&& reload_completed" [(parallel [(set (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8)) (match_dup 1)) (clobber (reg:CC CC_REG))])]) (define_insn "*insv_si_8_8_clobber_flags" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 8) (const_int 8)) (match_operand:SI 1 "register_operand" "r")) (clobber (reg:CC CC_REG))] "" "mov.b\\t%w1,%x0" [(set_attr "length" "2")]) (define_insn_and_split "*insv_si_8_8_lshiftrt_8" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 8) (const_int 8)) (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 8)))] "" "#" "&& reload_completed" [(parallel [(set (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8)) (lshiftrt:SI (match_dup 1) (const_int 8))) (clobber (reg:CC CC_REG))])]) (define_insn "*insv_si_8_8_lshiftrt_8_clobber_flags" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") (const_int 8) (const_int 8)) (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 8))) (clobber (reg:CC CC_REG))] "" "mov.b\\t%x1,%x0" [(set_attr "length" "2")]) ;; extzv:SI (define_insn_and_split "*extzv_8_8" [(set (match_operand:SI 0 "register_operand" "=r,r") (zero_extract:SI (match_operand:SI 1 "register_operand" "?0,r") (const_int 8) (const_int 8)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (zero_extract:SI (match_dup 1) (const_int 8) (const_int 8))) (clobber (reg:CC CC_REG))])]) (define_insn "*extzv_8_8_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r,r") (zero_extract:SI (match_operand:SI 1 "register_operand" "?0,r") (const_int 8) (const_int 8))) (clobber (reg:CC CC_REG))] "" "@ mov.b\\t%x1,%w0\;extu.w\\t%f0\;extu.l\\t%S0 sub.l\\t%S0,%S0\;mov.b\\t%x1,%w0" [(set_attr "length" "6,4")]) (define_insn_and_split "*extzv_8_16" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 8) (const_int 16)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (zero_extract:SI (match_dup 1) (const_int 8) (const_int 16))) (clobber (reg:CC CC_REG))])]) (define_insn "*extzv_8_16_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 8) (const_int 16))) (clobber (reg:CC CC_REG))] "" "mov.w\\t%e1,%f0\;extu.w\\t%f0\;extu.l\\t%S0" [(set_attr "length" "6")]) (define_insn_and_split "*extzv_16_8" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 16) (const_int 8))) (clobber (match_scratch:SI 2 "=&r"))] "TARGET_H8300H" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (zero_extract:SI (match_dup 1) (const_int 16) (const_int 8))) (clobber (reg:CC CC_REG))])]) (define_insn "*extzv_16_8_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 16) (const_int 8))) (clobber (match_scratch:SI 2 "=&r")) (clobber (reg:CC CC_REG))] "TARGET_H8300H" "mov.w\\t%e1,%f2\;mov.b\\t%x1,%w0\;mov.b\\t%w2,%x0\;extu.l\\t%S0" [(set_attr "length" "8")]) ;; Extract the exponent of a float. (define_insn_and_split "*extzv_8_23" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "0") (const_int 8) (const_int 23)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (const_int 1))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 24))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])]) ;; and:SI ;; ((SImode) HImode) << 15 (define_insn_and_split "*twoshifts_l16_r1" [(set (match_operand:SI 0 "register_operand" "=r") (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0") (const_int 15)) (const_int 2147450880)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (const_int 16))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 1))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])]) ;; Transform (SImode << B) & 0xffff into (SImode) (HImode << B). (define_insn_and_split "*andsi3_ashift_n_lower" [(set (match_operand:SI 0 "register_operand" "=r,r") (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0,0") (match_operand:QI 2 "const_int_operand" "S,n")) (match_operand:SI 3 "const_int_operand" "n,n"))) (clobber (match_scratch:QI 4 "=X,&r"))] "INTVAL (operands[2]) <= 15 && UINTVAL (operands[3]) == ((HOST_WIDE_INT_M1U << INTVAL (operands[2])) & 0xffff)" "#" "&& reload_completed" [(parallel [(set (match_dup 5) (ashift:HI (match_dup 5) (match_dup 2))) (clobber (match_dup 4)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (zero_extend:SI (match_dup 5))) (clobber (reg:CC CC_REG))])] { operands[5] = gen_rtx_REG (HImode, REGNO (operands[0])); }) ;; Accept (A >> 30) & 2 and the like. (define_insn_and_split "*andsi3_lshiftrt_n_sb" [(set (match_operand:SI 0 "register_operand" "=r") (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n")))] "exact_log2 (INTVAL (operands[3])) < 16 && INTVAL (operands[2]) + exact_log2 (INTVAL (operands[3])) == 31" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (and:SI (lshiftrt:SI (match_dup 1) (match_dup 2)) (match_dup 3))) (clobber (reg:CC CC_REG))])]) (define_insn "*andsi3_lshiftrt_n_sb" [(set (match_operand:SI 0 "register_operand" "=r") (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n"))) (clobber (reg:CC CC_REG))] "exact_log2 (INTVAL (operands[3])) < 16 && INTVAL (operands[2]) + exact_log2 (INTVAL (operands[3])) == 31" { operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3]))); return "shll.l\\t%S0\;xor.l\\t%S0,%S0\;bst\\t%Z3,%Y0"; } [(set_attr "length" "8")]) (define_insn_and_split "*andsi3_lshiftrt_9_sb" [(set (match_operand:SI 0 "register_operand" "=r") (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") (const_int 9)) (const_int 4194304)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (and:SI (lshiftrt:SI (match_dup 0) (const_int 25)) (const_int 64))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (const_int 16))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])]) ;; plus:SI (define_insn_and_split "*addsi3_upper" [(set (match_operand:SI 0 "register_operand" "=r") (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r") (const_int 65536)) (match_operand:SI 2 "register_operand" "0")))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (plus:SI (mult:SI (match_dup 1) (const_int 65536)) (match_dup 2))) (clobber (reg:CC CC_REG))])]) (define_insn "*addsi3_upper_clobber_regs" [(set (match_operand:SI 0 "register_operand" "=r") (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r") (const_int 65536)) (match_operand:SI 2 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "" "add.w\\t%f1,%e0" [(set_attr "length" "2")]) (define_insn_and_split "*addsi3_lshiftrt_16_zexthi" [(set (match_operand:SI 0 "register_operand" "=r") (plus:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 16)) (zero_extend:SI (match_operand:HI 2 "register_operand" "0"))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (plus:SI (lshiftrt:SI (match_dup 1) (const_int 16)) (zero_extend:SI (match_dup 2)))) (clobber (reg:CC CC_REG))])]) (define_insn "*addsi3_lshiftrt_16_zexthi_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (plus:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 16)) (zero_extend:SI (match_operand:HI 2 "register_operand" "0")))) (clobber (reg:CC CC_REG))] "" "add.w\\t%e1,%f0\;xor.w\\t%e0,%e0\;rotxl.w\\t%e0" [(set_attr "length" "6")]) ;;(define_insn_and_split "*addsi3_and_r_1" ;; [(set (match_operand:SI 0 "register_operand" "=r") ;; (plus:SI (and:SI (match_operand:SI 1 "register_operand" "r") ;; (const_int 1)) ;; (match_operand:SI 2 "register_operand" "0")))] ;; "" ;; "#" ;; "&& reload_completed" ;; [(set (cc0) (compare (zero_extract:SI (match_dup 1) ;; (const_int 1) ;; (const_int 0)) ;; (const_int 0))) ;; (set (pc) ;; (if_then_else (eq (cc0) ;; (const_int 0)) ;; (label_ref (match_dup 3)) ;; (pc))) ;; (set (match_dup 2) ;; (plus:SI (match_dup 2) ;; (const_int 1))) ;; (match_dup 3)] ;; { ;; operands[3] = gen_label_rtx (); ;; }) ;;(define_insn_and_split "*addsi3_and_not_r_1" ;; [(set (match_operand:SI 0 "register_operand" "=r") ;; (plus:SI (and:SI (not:SI (match_operand:SI 1 "register_operand" "r")) ;; (const_int 1)) ;; (match_operand:SI 2 "register_operand" "0")))] ;; "" ;; "#" ;; "&& reload_completed" ;; [(set (cc0) (compare (zero_extract:SI (match_dup 1) ;; (const_int 1) ;; (const_int 0)) ;; (const_int 0))) ;; (set (pc) ;; (if_then_else (ne (cc0) ;; (const_int 0)) ;; (label_ref (match_dup 3)) ;; (pc))) ;; (set (match_dup 2) ;; (plus:SI (match_dup 2) ;; (const_int 1))) ;; (match_dup 3)] ;; { ;; operands[3] = gen_label_rtx (); ;; }) ;; [ix]or:HI (define_insn_and_split "*ixorhi3_zext" [(set (match_operand:HI 0 "register_operand" "=r") (match_operator:HI 1 "iorxor_operator" [(zero_extend:HI (match_operand:QI 2 "register_operand" "r")) (match_operand:HI 3 "register_operand" "0")]))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (match_op_dup 1 [(zero_extend:HI (match_dup 2)) (match_dup 3)])) (clobber (reg:CC CC_REG))])]) (define_insn "*ixorhi3_zext_clobber_flags" [(set (match_operand:HI 0 "register_operand" "=r") (match_operator:HI 1 "iorxor_operator" [(zero_extend:HI (match_operand:QI 2 "register_operand" "r")) (match_operand:HI 3 "register_operand" "0")])) (clobber (reg:CC CC_REG))] "" "%c1.b\\t%X2,%s0" [(set_attr "length" "2")]) ;; [ix]or:SI (define_insn_and_split "*ixorsi3_zext_qi" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(zero_extend:SI (match_operand:QI 2 "register_operand" "r")) (match_operand:SI 3 "register_operand" "0")]))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (match_op_dup 1 [(zero_extend:SI (match_dup 2)) (match_dup 3)])) (clobber (reg:CC CC_REG))])]) (define_insn "*ixorsi3_zext_qi_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(zero_extend:SI (match_operand:QI 2 "register_operand" "r")) (match_operand:SI 3 "register_operand" "0")])) (clobber (reg:CC CC_REG))] "" "%c1.b\\t%X2,%w0" [(set_attr "length" "2")]) (define_insn_and_split "*ixorsi3_zext_hi" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(zero_extend:SI (match_operand:HI 2 "register_operand" "r")) (match_operand:SI 3 "register_operand" "0")]))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (match_op_dup 1 [(zero_extend:SI (match_dup 2)) (match_dup 3)])) (clobber (reg:CC CC_REG))])]) (define_insn "*ixorsi3_zext_hi_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(zero_extend:SI (match_operand:HI 2 "register_operand" "r")) (match_operand:SI 3 "register_operand" "0")])) (clobber (reg:CC CC_REG))] "" "%c1.w\\t%T2,%f0" [(set_attr "length" "2")]) (define_insn_and_split "*ixorsi3_ashift_16" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(ashift:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)) (match_operand:SI 3 "register_operand" "0")]))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (match_op_dup 1 [(ashift:SI (match_dup 2) (const_int 16)) (match_dup 3)])) (clobber (reg:CC CC_REG))])]) (define_insn "*ixorsi3_ashift_16_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(ashift:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)) (match_operand:SI 3 "register_operand" "0")])) (clobber (reg:CC CC_REG))] "" "%c1.w\\t%f2,%e0" [(set_attr "length" "2")]) (define_insn_and_split "*ixorsi3_lshiftrt_16" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)) (match_operand:SI 3 "register_operand" "0")]))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (match_op_dup 1 [(lshiftrt:SI (match_dup 2) (const_int 16)) (match_dup 3)])) (clobber (reg:CC CC_REG))])]) (define_insn "*ixorsi3_lshiftrt_16_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 1 "iorxor_operator" [(lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)) (match_operand:SI 3 "register_operand" "0")])) (clobber (reg:CC CC_REG))] "" "%c1.w\\t%e2,%f0" [(set_attr "length" "2")]) ;; ior:HI (define_insn_and_split "*iorhi3_ashift_8" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (ashift:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) (match_operand:HI 2 "register_operand" "0")))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:HI (ashift:HI (match_dup 1) (const_int 8)) (match_dup 2))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorhi3_ashift_8_clobber_flags" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (ashift:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) (match_operand:HI 2 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "" "or.b\\t%s1,%t0" [(set_attr "length" "2")]) (define_insn_and_split "*iorhi3_lshiftrt_8" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) (match_operand:HI 2 "register_operand" "0")))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:HI (lshiftrt:HI (match_dup 1) (const_int 8)) (match_dup 2))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorhi3_lshiftrt_8_clobber_flags" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) (match_operand:HI 2 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "" "or.b\\t%t1,%s0" [(set_attr "length" "2")]) (define_insn_and_split "*iorhi3_two_qi" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "0")) (ashift:HI (match_operand:HI 2 "register_operand" "r") (const_int 8))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:HI (zero_extend:HI (match_dup 1)) (ashift:HI (match_dup 2) (const_int 8)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorhi3_two_qi_clobber_flags" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "0")) (ashift:HI (match_operand:HI 2 "register_operand" "r") (const_int 8)))) (clobber (reg:CC CC_REG))] "" "mov.b\\t%s2,%t0" [(set_attr "length" "2")]) (define_insn_and_split "*iorhi3_two_qi_mem" [(set (match_operand:HI 0 "register_operand" "=&r") (ior:HI (zero_extend:HI (match_operand:QI 1 "memory_operand" "m")) (ashift:HI (subreg:HI (match_operand:QI 2 "memory_operand" "m") 0) (const_int 8))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:HI (zero_extend:HI (match_dup 1)) (ashift:HI (subreg:HI (match_dup 2) 0) (const_int 8)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorhi3_two_qi_mem_clobber_flags" [(set (match_operand:HI 0 "register_operand" "=&r") (ior:HI (zero_extend:HI (match_operand:QI 1 "memory_operand" "m")) (ashift:HI (subreg:HI (match_operand:QI 2 "memory_operand" "m") 0) (const_int 8)))) (clobber (reg:CC CC_REG))] "" "mov.b\\t%X2,%t0\;mov.b\\t%X1,%s0" [(set_attr "length" "16")]) (define_split [(set (match_operand:HI 0 "register_operand" "") (ior:HI (zero_extend:HI (match_operand:QI 1 "memory_operand" "")) (ashift:HI (subreg:HI (match_operand:QI 2 "memory_operand" "") 0) (const_int 8))))] "reload_completed && byte_accesses_mergeable_p (XEXP (operands[2], 0), XEXP (operands[1], 0))" [(parallel [(set (match_dup 0) (match_dup 3)) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_MEM (HImode, XEXP (operands[2], 0)); }) ;; ior:SI (define_insn_and_split "*iorsi3_two_hi" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "0")) (ashift:SI (match_operand:SI 2 "register_operand" "r") (const_int 16))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (zero_extend:SI (match_dup 1)) (ashift:SI (match_dup 2) (const_int 16)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_two_hi_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "0")) (ashift:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)))) (clobber (reg:CC CC_REG))] "" "mov.w\\t%f2,%e0" [(set_attr "length" "2")]) (define_insn_and_split "*iorsi3_two_qi_zext" [(set (match_operand:SI 0 "register_operand" "=&r") (ior:SI (zero_extend:SI (match_operand:QI 1 "memory_operand" "m")) (and:SI (ashift:SI (subreg:SI (match_operand:QI 2 "memory_operand" "m") 0) (const_int 8)) (const_int 65280))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 3) (ior:HI (zero_extend:HI (match_dup 1)) (ashift:HI (subreg:HI (match_dup 2) 0) (const_int 8)))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (zero_extend:SI (match_dup 3))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[0])); }) (define_insn_and_split "*iorsi3_e2f" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0") (const_int -65536)) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (match_dup 1) (const_int -65536)) (lshiftrt:SI (match_dup 2) (const_int 16)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_e2f_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0") (const_int -65536)) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (const_int 16)))) (clobber (reg:CC CC_REG))] "" "mov.w\\t%e2,%f0" [(set_attr "length" "2")]) (define_insn_and_split "*iorsi3_two_qi_sext" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extend:SI (match_operand:QI 1 "register_operand" "0")) (ashift:SI (sign_extend:SI (match_operand:QI 2 "register_operand" "r")) (const_int 8))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 3) (ior:HI (zero_extend:HI (match_dup 1)) (ashift:HI (match_dup 4) (const_int 8)))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (sign_extend:SI (match_dup 3))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[0])); operands[4] = gen_rtx_REG (HImode, REGNO (operands[2])); }) (define_insn_and_split "*iorsi3_w" [(set (match_operand:SI 0 "register_operand" "=r,&r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0,0") (const_int -256)) (zero_extend:SI (match_operand:QI 2 "general_operand_src" "r,g>"))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (match_dup 1) (const_int -256)) (zero_extend:SI (match_dup 2)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_w_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r,&r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0,0") (const_int -256)) (zero_extend:SI (match_operand:QI 2 "general_operand_src" "r,g>")))) (clobber (reg:CC CC_REG))] "" "mov.b\\t%X2,%w0" [(set_attr "length" "2,8")]) (define_insn_and_split "*iorsi3_ashift_31" [(set (match_operand:SI 0 "register_operand" "=&r") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") (const_int 31)) (match_operand:SI 2 "register_operand" "0")))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (ashift:SI (match_dup 1) (const_int 31)) (match_dup 2))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_ashift_31_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=&r") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") (const_int 31)) (match_operand:SI 2 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "" "rotxl.l\\t%S0\;bor\\t#0,%w1\;rotxr.l\\t%S0" [(set_attr "length" "6")]) (define_insn_and_split "*iorsi3_and_ashift" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n")) (match_operand:SI 4 "register_operand" "0")))] "(INTVAL (operands[3]) & ~0xffff) == 0" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (ashift:SI (match_dup 1) (match_dup 2)) (match_dup 3)) (match_dup 4))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_and_ashift_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n")) (match_operand:SI 4 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "(INTVAL (operands[3]) & ~0xffff) == 0" { rtx srcpos = GEN_INT (exact_log2 (INTVAL (operands[3])) - INTVAL (operands[2])); rtx dstpos = GEN_INT (exact_log2 (INTVAL (operands[3]))); operands[2] = srcpos; operands[3] = dstpos; return "bld\\t%Z2,%Y1\;bor\\t%Z3,%Y0\;bst\\t%Z3,%Y0"; } [(set_attr "length" "6")]) (define_insn_and_split "*iorsi3_and_lshiftrt" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n")) (match_operand:SI 4 "register_operand" "0")))] "((INTVAL (operands[3]) << INTVAL (operands[2])) & ~0xffff) == 0" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (lshiftrt:SI (match_dup 1) (match_dup 2)) (match_dup 3)) (match_dup 4))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_and_lshiftrt_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "single_one_operand" "n")) (match_operand:SI 4 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "((INTVAL (operands[3]) << INTVAL (operands[2])) & ~0xffff) == 0" { rtx srcpos = GEN_INT (exact_log2 (INTVAL (operands[3])) + INTVAL (operands[2])); rtx dstpos = GEN_INT (exact_log2 (INTVAL (operands[3]))); operands[2] = srcpos; operands[3] = dstpos; return "bld\\t%Z2,%Y1\;bor\\t%Z3,%Y0\;bst\\t%Z3,%Y0"; } [(set_attr "length" "6")]) (define_insn_and_split "*iorsi3_zero_extract" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 1) (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "register_operand" "0")))] "INTVAL (operands[2]) < 16" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (zero_extract:SI (match_dup 1) (const_int 1) (match_dup 2)) (match_dup 3))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_zero_extract_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extract:SI (match_operand:SI 1 "register_operand" "r") (const_int 1) (match_operand:SI 2 "const_int_operand" "n")) (match_operand:SI 3 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "INTVAL (operands[2]) < 16" "bld\\t%Z2,%Y1\;bor\\t#0,%w0\;bst\\t#0,%w0" [(set_attr "length" "6")]) (define_insn_and_split "*iorsi3_and_lshiftrt_n_sb" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 30)) (const_int 2)) (match_operand:SI 2 "register_operand" "0")))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (lshiftrt:SI (match_dup 1) (const_int 30)) (const_int 2)) (match_dup 2))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_and_lshiftrt_n_sb_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 30)) (const_int 2)) (match_operand:SI 2 "register_operand" "0"))) (clobber (reg:CC CC_REG))] "" "rotl.l\\t%S1\;rotr.l\\t%S1\;bor\\t#1,%w0\;bst\\t#1,%w0" [(set_attr "length" "8")]) (define_insn_and_split "*iorsi3_and_lshiftrt_9_sb" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 9)) (const_int 4194304)) (match_operand:SI 2 "register_operand" "0"))) (clobber (match_scratch:HI 3 "=&r"))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (lshiftrt:SI (match_dup 1) (const_int 9)) (const_int 4194304)) (match_dup 2))) (clobber (match_dup 3)) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi3_and_lshiftrt_9_sb_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 9)) (const_int 4194304)) (match_operand:SI 2 "register_operand" "0"))) (clobber (match_scratch:HI 3 "=&r")) (clobber (reg:CC CC_REG))] "" { if (find_regno_note (insn, REG_DEAD, REGNO (operands[1]))) return "shll.l\\t%S1\;xor.w\\t%T3,%T3\;bst\\t#6,%s3\;or.w\\t%T3,%e0"; else return "rotl.l\\t%S1\;rotr.l\\t%S1\;xor.w\\t%T3,%T3\;bst\\t#6,%s3\;or.w\\t%T3,%e0"; } [(set_attr "length" "10")]) ;; Used to OR the exponent of a float. (define_insn "*iorsi3_shift" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") (const_int 23)) (match_operand:SI 2 "register_operand" "0"))) (clobber (match_scratch:SI 3 "=&r"))] "" "#") (define_split [(set (match_operand:SI 0 "register_operand" "") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "") (const_int 23)) (match_dup 0))) (clobber (match_operand:SI 2 "register_operand" ""))] "epilogue_completed && find_regno_note (insn, REG_DEAD, REGNO (operands[1])) && REGNO (operands[0]) != REGNO (operands[1])" [(parallel [(set (match_dup 3) (ashift:HI (match_dup 3) (const_int 7))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ior:SI (ashift:SI (match_dup 1) (const_int 16)) (match_dup 0))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[1])); }) (define_split [(set (match_operand:SI 0 "register_operand" "") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "") (const_int 23)) (match_dup 0))) (clobber (match_operand:SI 2 "register_operand" ""))] "epilogue_completed && !(find_regno_note (insn, REG_DEAD, REGNO (operands[1])) && REGNO (operands[0]) != REGNO (operands[1]))" [(parallel [(set (match_dup 2) (match_dup 1)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 3) (ashift:HI (match_dup 3) (const_int 7))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ior:SI (ashift:SI (match_dup 2) (const_int 16)) (match_dup 0))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[2])); }) (define_insn_and_split "*iorsi2_and_1_lshiftrt_1" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0") (const_int 1)) (lshiftrt:SI (match_dup 1) (const_int 1))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (ior:SI (and:SI (match_dup 1) (const_int 1)) (lshiftrt:SI (match_dup 1) (const_int 1)))) (clobber (reg:CC CC_REG))])]) (define_insn "*iorsi2_and_1_lshiftrt_1_clobber_flags" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0") (const_int 1)) (lshiftrt:SI (match_dup 1) (const_int 1)))) (clobber (reg:CC CC_REG))] "" "shlr.l\\t%S0\;bor\\t#0,%w0\;bst\\t#0,%w0" [(set_attr "length" "6")]) (define_insn_and_split "*iorsi3_ashift_16_ashift_24" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "0") (const_int 16)) (ashift:SI (match_operand:SI 2 "register_operand" "r") (const_int 24))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 3) (ior:HI (ashift:HI (match_dup 4) (const_int 8)) (match_dup 3))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (const_int 16))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[0])); operands[4] = gen_rtx_REG (HImode, REGNO (operands[2])); }) (define_insn_and_split "*iorsi3_ashift_16_ashift_24_mem" [(set (match_operand:SI 0 "register_operand" "=&r") (ior:SI (and:SI (ashift:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0) (const_int 16)) (const_int 16711680)) (ashift:SI (subreg:SI (match_operand:QI 2 "memory_operand" "m") 0) (const_int 24))))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 3) (ior:HI (zero_extend:HI (match_dup 1)) (ashift:HI (subreg:HI (match_dup 2) 0) (const_int 8)))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (const_int 16))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[0])); }) ;; Used to add the exponent of a float. (define_insn "*addsi3_shift" [(set (match_operand:SI 0 "register_operand" "=r") (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r") (const_int 8388608)) (match_operand:SI 2 "register_operand" "0"))) (clobber (match_scratch:SI 3 "=&r"))] "" "#") (define_split [(set (match_operand:SI 0 "register_operand" "") (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "") (const_int 8388608)) (match_dup 0))) (clobber (match_operand:SI 2 "register_operand" ""))] "epilogue_completed && find_regno_note (insn, REG_DEAD, REGNO (operands[1])) && REGNO (operands[0]) != REGNO (operands[1])" [(parallel [(set (match_dup 3) (ashift:HI (match_dup 3) (const_int 7))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (plus:SI (mult:SI (match_dup 1) (const_int 65536)) (match_dup 0))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[1])); }) (define_split [(set (match_operand:SI 0 "register_operand" "") (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "") (const_int 8388608)) (match_dup 0))) (clobber (match_operand:SI 2 "register_operand" ""))] "epilogue_completed && !(find_regno_note (insn, REG_DEAD, REGNO (operands[1])) && REGNO (operands[0]) != REGNO (operands[1]))" [(parallel [(set (match_dup 2) (match_dup 1)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 3) (ashift:HI (match_dup 3) (const_int 7))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (plus:SI (mult:SI (match_dup 2) (const_int 65536)) (match_dup 0))) (clobber (reg:CC CC_REG))])] { operands[3] = gen_rtx_REG (HImode, REGNO (operands[2])); }) ;; ashift:SI (define_insn_and_split "*ashiftsi_sextqi_7" [(set (match_operand:SI 0 "register_operand" "=r") (ashift:SI (sign_extend:SI (match_operand:QI 1 "register_operand" "0")) (const_int 7)))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 2) (ashift:HI (match_dup 2) (const_int 8))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (sign_extend:SI (match_dup 2))) (clobber (reg:CC CC_REG))]) (parallel [(set (match_dup 0) (ashiftrt:SI (match_dup 0) (const_int 1))) (clobber (scratch:QI)) (clobber (reg:CC CC_REG))])] { operands[2] = gen_rtx_REG (HImode, REGNO (operands[0])); }) ;; Storing a part of HImode to QImode. (define_insn_and_split "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) 1))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (subreg:QI (lshiftrt:HI (match_dup 1) (const_int 8)) 1)) (clobber (reg:CC CC_REG))])]) (define_insn "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") (const_int 8)) 1)) (clobber (reg:CC CC_REG))] "" "mov.b\\t%t1,%R0" [(set_attr "length" "8")]) ;; Storing a part of SImode to QImode. (define_insn_and_split "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 8)) 3))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (subreg:QI (lshiftrt:SI (match_dup 1) (const_int 8)) 3)) (clobber (reg:CC CC_REG))])]) (define_insn "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 8)) 3)) (clobber (reg:CC CC_REG))] "" "mov.b\\t%x1,%R0" [(set_attr "length" "8")]) (define_insn_and_split "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 16)) 3)) (clobber (match_scratch:SI 2 "=&r"))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (subreg:QI (lshiftrt:SI (match_dup 1) (const_int 16)) 3)) (clobber (match_dup 2)) (clobber (reg:CC CC_REG))])]) (define_insn "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 16)) 3)) (clobber (match_scratch:SI 2 "=&r")) (clobber (reg:CC CC_REG))] "" "mov.w\\t%e1,%f2\;mov.b\\t%w2,%R0" [(set_attr "length" "10")]) (define_insn_and_split "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 24)) 3)) (clobber (match_scratch:SI 2 "=&r"))] "" "#" "&& reload_completed" [(parallel [(set (match_dup 0) (subreg:QI (lshiftrt:SI (match_dup 1) (const_int 24)) 3)) (clobber (match_dup 2)) (clobber (reg:CC CC_REG))])]) (define_insn "" [(set (match_operand:QI 0 "general_operand_dst" "=rm<") (subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") (const_int 24)) 3)) (clobber (match_scratch:SI 2 "=&r")) (clobber (reg:CC CC_REG))] "" "mov.w\\t%e1,%f2\;mov.b\\t%x2,%R0" [(set_attr "length" "10")]) ;;(define_insn_and_split "" ;; [(set (pc) ;; (if_then_else (eq (zero_extract:SI (subreg:SI (match_operand:QI 0 "register_operand" "") 0) ;; (const_int 1) ;; (const_int 7)) ;; (const_int 0)) ;; (label_ref (match_operand 1 "" "")) ;; (pc)))] ;; "" ;; "#" ;; "" ;; [(set (cc0) (compare (match_dup 0) ;; (const_int 0))) ;; (set (pc) ;; (if_then_else (ge (cc0) ;; (const_int 0)) ;; (label_ref (match_dup 1)) ;; (pc)))] ;; "") ;; ;; (define_insn_and_split "" ;; [(set (pc) ;; (if_then_else (ne (zero_extract:SI (subreg:SI (match_operand:QI 0 "register_operand" "") 0) ;; (const_int 1) ;; (const_int 7)) ;; (const_int 0)) ;; (label_ref (match_operand 1 "" "")) ;; (pc)))] ;; "" ;; "#" ;; "" ;; [(set (cc0) (compare (match_dup 0) ;; (const_int 0))) ;; (set (pc) ;; (if_then_else (lt (cc0) ;; (const_int 0)) ;; (label_ref (match_dup 1)) ;; (pc)))] ;; "")