re PR target/67391 ([SH] Convert clrt addc to normal add insn)
authorOleg Endo <olegendo@gcc.gnu.org>
Wed, 23 Sep 2015 11:55:45 +0000 (11:55 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Wed, 23 Sep 2015 11:55:45 +0000 (11:55 +0000)
gcc/
PR target/67391
* config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping
regs when matching the pattern.

From-SVN: r228046

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

index 27e527dc97a7f42a1ba87c38e1d53e2d4acff27b..2ec3abeb60157f67f601cc191f3536c233203582 100644 (file)
@@ -1,3 +1,9 @@
+2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/67391
+       * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping
+       regs when matching the pattern.
+
 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/aarch64/aarch64-simd.md
index f3f68c6b45ddd37125e46b568c33b8c8d049acb9..3dcb1cd6ce46b885cadd56a97146dcc767b49b7a 100644 (file)
 {
   if (TARGET_SHMEDIA)
     operands[1] = force_reg (SImode, operands[1]);
-  else if (! arith_operand (operands[2], SImode))
-    {
-      if (reg_overlap_mentioned_p (operands[0], operands[1]))
-       FAIL;
-    }
 })
 
 (define_insn "addsi3_media"
   [(set (match_operand:SI 0 "arith_reg_dest" "=r,&u")
        (plus:SI (match_operand:SI 1 "arith_operand" "%0,r")
                 (match_operand:SI 2 "arith_or_int_operand" "rI08,rn")))]
-  "TARGET_SH1
-   && ((rtx_equal_p (operands[0], operands[1])
-        && arith_operand (operands[2], SImode))
-       || ! reg_overlap_mentioned_p (operands[0], operands[1]))"
+  "TARGET_SH1"
   "@
        add     %2,%0
        #"