[RS6000] Correct constraints for ior<mode>_mask
authorAlan Modra <amodra@gmail.com>
Thu, 27 Aug 2015 13:56:39 +0000 (23:26 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Thu, 27 Aug 2015 13:56:39 +0000 (23:26 +0930)
ior<mode>_mask always splits to rtl matching rotl<mode>3_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<mode>_mask.

PR target/67356
* config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
for operand 1.

From-SVN: r227260

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 0934bff54359ca1be4e1067f13bcff7f9bffdc90..367a289b68a91a8c53e310703eb08efb116dffb9 100644 (file)
@@ -1,3 +1,9 @@
+2015-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR target/67356
+       * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
+       for operand 1.
+
 2015-08-27  Richard Biener  <rguenther@suse.de>
 
        * passes.c (rest_of_decl_compilation): Guard early_global_decl
index 48abc26634956655e9eacbf7c0152a99d6ae9550..cfdb286a2cba528229436525e39eec24a386dd88 100644 (file)
 ; an insert instruction, in many cases.
 (define_insn_and_split "*ior<mode>_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>mode)