From 353e462df7eea26f1df8343d8b8f92dfe97757dc Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 27 Aug 2015 23:26:39 +0930 Subject: [PATCH] [RS6000] Correct constraints for ior_mask ior_mask always splits to rtl matching rotl3_insert. The latter requires one of its input operands match the output, so let reload/lra know the equivalent operand match must also occur for ior_mask. PR target/67356 * config/rs6000/rs6000.md (ior_mask): Use constraint "0" for operand 1. From-SVN: r227260 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0934bff..367a289 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-08-27 Alan Modra + + PR target/67356 + * config/rs6000/rs6000.md (ior_mask): Use constraint "0" + for operand 1. + 2015-08-27 Richard Biener * passes.c (rest_of_decl_compilation): Guard early_global_decl diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 48abc26..cfdb286 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -3683,7 +3683,7 @@ ; an insert instruction, in many cases. (define_insn_and_split "*ior_mask" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") - (ior:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") + (ior:GPR (match_operand:GPR 1 "gpc_reg_operand" "0") (match_operand:GPR 2 "const_int_operand" "n"))) (clobber (match_scratch:GPR 3 "=r"))] "!logical_const_operand (operands[2], mode) -- 2.7.4