From: olegendo Date: Wed, 23 Sep 2015 11:55:45 +0000 (+0000) Subject: gcc/ X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6afb59537babffae22e8a0ff98a61626f5b2d8c6;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27e527dc97a7..2ec3abeb6015 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-09-23 Oleg Endo + + 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 * config/aarch64/aarch64-simd.md diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index f3f68c6b45dd..3dcb1cd6ce46 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 #"