re PR target/54236 ([SH] Improve addc and subc insn utilization)
authorOleg Endo <olegendo@gcc.gnu.org>
Sun, 17 May 2015 21:01:29 +0000 (21:01 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Sun, 17 May 2015 21:01:29 +0000 (21:01 +0000)
gcc/
PR target/54236
* config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.

From-SVN: r223274

gcc/ChangeLog
gcc/config/sh/sh.md

index a19c15863c5258edfbbd0ff9b93c8b025c84959e..d58a616f2bc853be7e852b1e0bbd23a8c0fdd670 100644 (file)
@@ -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
index d3d7dee286337cc3b6dd172cc954a92be184ac4c..eb6983aec973a2cdf73be14661a7aaf25a19adb6 100644 (file)
 (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 ()"
   "#"
 
 (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 ()"