From 6d53221778e61d2c43f39b44c79f01d161ed7f67 Mon Sep 17 00:00:00 2001 From: segher Date: Tue, 9 Sep 2014 18:49:08 +0000 Subject: [PATCH] 2014-09-09 Segher Boessenkool PR target/63195 * config/rs6000/rs6000.md (*bool3): Allow only register operands. Split off the constant operand alternative to ... (*bool3_imm): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215091 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.md | 19 +++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c1b755b8aa..a967334bc20 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-09-09 Segher Boessenkool + + PR target/63195 + * config/rs6000/rs6000.md (*bool3): Allow only register + operands. Split off the constant operand alternative to ... + (*bool3_imm): New. + 2014-09-09 David Malcolm * rtl.h (single_set_2): Strengthen first param from const_rtx to diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 2df8e4193fd..b5aeaed16aa 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -2996,14 +2996,21 @@ }) (define_insn "*bool3" - [(set (match_operand:GPR 0 "gpc_reg_operand" "=r,r") + [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (match_operator:GPR 3 "boolean_or_operator" - [(match_operand:GPR 1 "gpc_reg_operand" "%r,r") - (match_operand:GPR 2 "logical_operand" "r,n")]))] + [(match_operand:GPR 1 "gpc_reg_operand" "r") + (match_operand:GPR 2 "gpc_reg_operand" "r")]))] "" - "@ - %q3 %0,%1,%2 - %q3i%e2 %0,%1,%u2" + "%q3 %0,%1,%2" + [(set_attr "type" "logical")]) + +(define_insn "*bool3_imm" + [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") + (match_operator:GPR 3 "boolean_or_operator" + [(match_operand:GPR 1 "gpc_reg_operand" "%r") + (match_operand:GPR 2 "logical_const_operand" "n")]))] + "" + "%q3i%e2 %0,%1,%u2" [(set_attr "type" "logical")]) (define_insn_and_split "*bool3_dot" -- 2.11.4.GIT