Hello,
The attach patch replaces the use of the 'addc1' pattern with 'addc' and
the use of the 'subc1' pattern with 'subc'.
Tested with
make -k check RUNTESTFLAGS="--target_board=sh-sim
\{-m2/-ml,-m2/-mb,-m2a/-mb,-m2a-single/-mb,-m4/-ml,-m4/-mb,-m4-single/-ml,
-m4-single/-mb,-m4a-single/-ml,-m4a-single/-mb}"
and no new failures. CSiBE result-size also doesn't show any change for
'-O2 -m4-single -ml -mpretend-cmove'.
OK?
Cheers,
Oleg
ChangeLog:
* config/sh/sh.md (addc1, subc1): Delete.
(adddi3_compact): Use addc instead of addc1.
(subdi3_compact): Use subc instead of subc1.
Index: gcc/config/sh/sh.md
===================================================================
--- gcc/config/sh/sh.md (revision 189747)
+++ gcc/config/sh/sh.md (working copy)
@@ -1447,7 +1447,7 @@
emit_insn (gen_clrt ());
emit_insn (gen_addc (low0, low0, gen_lowpart (SImode, operands[2])));
- emit_insn (gen_addc1 (high0, high0, high2));
+ emit_insn (gen_addc (high0, high0, high2));
DONE;
})
@@ -1462,16 +1462,6 @@
"addc %2,%0"
[(set_attr "type" "arith")])
-(define_insn "addc1"
- [(set (match_operand:SI 0 "arith_reg_dest" "=r")
- (plus:SI (plus:SI (match_operand:SI 1 "arith_reg_operand" "0")
- (match_operand:SI 2 "arith_reg_operand" "r"))
- (reg:SI T_REG)))
- (clobber (reg:SI T_REG))]
- "TARGET_SH1"
- "addc %2,%0"
- [(set_attr "type" "arith")])
-
(define_expand "addsi3"
[(set (match_operand:SI 0 "arith_reg_operand" "")
(plus:SI (match_operand:SI 1 "arith_operand" "")
@@ -1565,7 +1555,7 @@
emit_insn (gen_clrt ());
emit_insn (gen_subc (low0, low0, gen_lowpart (SImode, operands[2])));
- emit_insn (gen_subc1 (high0, high0, high2));
+ emit_insn (gen_subc (high0, high0, high2));
DONE;
})
@@ -1582,16 +1572,6 @@
"subc %2,%0"
[(set_attr "type" "arith")])
-(define_insn "subc1"
- [(set (match_operand:SI 0 "arith_reg_dest" "=r")
- (minus:SI (minus:SI (match_operand:SI 1 "arith_reg_operand" "0")
- (match_operand:SI 2 "arith_reg_operand" "r"))
- (reg:SI T_REG)))
- (clobber (reg:SI T_REG))]
- "TARGET_SH1"
- "subc %2,%0"
- [(set_attr "type" "arith")])
-
;; life_analysis thinks rn is live before subc rn,rn, so make a special
;; pattern for this case. This helps multimedia applications that compute
;; the sum of absolute differences.