aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2015-05-17 21:01:29 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2015-05-17 21:01:29 +0000
commitf5a64dbf01a2f588cfe0b372c45d6258dfe873b8 (patch)
tree3892d30b12def49ee27cb88ebd6150ed771a8d23 /gcc
parente55b80f5f41b471d59b8f2c9e04c09bc22771541 (diff)
downloadgcc-f5a64dbf01a2f588cfe0b372c45d6258dfe873b8.zip
gcc-f5a64dbf01a2f588cfe0b372c45d6258dfe873b8.tar.gz
gcc-f5a64dbf01a2f588cfe0b372c45d6258dfe873b8.tar.bz2
re PR target/54236 ([SH] Improve addc and subc insn utilization)
gcc/ PR target/54236 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult. From-SVN: r223274
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a19c158..d58a616 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54236
+ * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
+
2015-05-17 Uros Bizjak <ubizjak@gmail.com>
PR target/66174
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index d3d7dee..eb6983a 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -2040,8 +2040,8 @@
(define_insn_and_split "*addc_2r_t"
[(set (match_operand:SI 0 "arith_reg_dest")
(plus:SI (match_operand 1 "treg_set_expr")
- (mult:SI (match_operand:SI 2 "arith_reg_operand")
- (const_int 2))))
+ (ashift:SI (match_operand:SI 2 "arith_reg_operand")
+ (const_int 1))))
(clobber (reg:SI T_REG))]
"TARGET_SH1 && can_create_pseudo_p ()"
"#"
@@ -2052,8 +2052,8 @@
(define_insn_and_split "*addc_2r_t"
[(set (match_operand:SI 0 "arith_reg_dest")
- (plus:SI (mult:SI (match_operand:SI 1 "arith_reg_operand")
- (const_int 2))
+ (plus:SI (ashift:SI (match_operand:SI 1 "arith_reg_operand")
+ (const_int 1))
(match_operand 2 "treg_set_expr")))
(clobber (reg:SI T_REG))]
"TARGET_SH1 && can_create_pseudo_p ()"