summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-23 11:55:45 +0000
committerolegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-23 11:55:45 +0000
commit6afb59537babffae22e8a0ff98a61626f5b2d8c6 (patch)
tree29d4bdb8f348701f058ecaaf7567f18d84734027
parent6e3d7d46687194f7e6e563d310d9a20c3f51bf8c (diff)
downloadgcc-6afb59537babffae22e8a0ff98a61626f5b2d8c6.tar.gz
gcc/
PR target/67391 * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping regs when matching the pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228046 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sh/sh.md10
2 files changed, 7 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27e527dc97a..2ec3abeb601 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index f3f68c6b45d..3dcb1cd6ce4 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -2129,11 +2129,6 @@
{
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"
@@ -2172,10 +2167,7 @@
[(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
#"