re PR target/54236 ([SH] Improve addc and subc insn utilization)

gcc/
	PR target/54236
	* config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
	operands[1] are the same.

gcc/testsuite/
	PR target/54236
	* gcc.target/sh/pr54236-2.c: Fix typo in comment.

From-SVN: r223479
This commit is contained in:
Oleg Endo 2015-05-21 12:36:35 +00:00
parent cad9733944
commit 0daff5e0c8
4 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54236
* config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
operands[1] are the same.
2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
PR middle-end/66221

View File

@ -2011,7 +2011,8 @@
(and:SI (plus:SI (match_operand:SI 1 "arith_reg_operand")
(const_int 1))
(const_int -2)))]
"TARGET_SH1 && !TARGET_SH2A && can_create_pseudo_p ()"
"TARGET_SH1 && !TARGET_SH2A && can_create_pseudo_p ()
&& !reg_overlap_mentioned_p (operands[0], operands[1])"
"#"
"&& 1"
[(set (match_dup 0) (const_int -2))

View File

@ -1,3 +1,8 @@
2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54236
* gcc.target/sh/pr54236-2.c: Fix typo in comment.
2015-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/65937

View File

@ -133,7 +133,7 @@ int
test_016 (int a, int b, int c, int d)
{
// non-SH2A: 1x add #1, 1x mov #-2, 1x and
// SH2A: 1x add #1, 1x blcr #0
// SH2A: 1x add #1, 1x bclr #0
return a + (a & 1);
}