From 9ea4e88f177aec6d897055efc954b4de05766017 Mon Sep 17 00:00:00 2001 From: Oleg Endo Date: Wed, 23 Sep 2015 11:55:45 +0000 Subject: [PATCH] re PR target/67391 ([SH] Convert clrt addc to normal add insn) 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 | 6 ++++++ gcc/config/sh/sh.md | 10 +--------- 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 + + 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 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 #" -- 2.30.2