diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2015-05-17 21:01:29 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2015-05-17 21:01:29 +0000 |
commit | f5a64dbf01a2f588cfe0b372c45d6258dfe873b8 (patch) | |
tree | 3892d30b12def49ee27cb88ebd6150ed771a8d23 /gcc | |
parent | e55b80f5f41b471d59b8f2c9e04c09bc22771541 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 8 |
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 ()" |