re PR target/63195 (stage3 build/gengtype miscompiled)
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 9 Sep 2014 18:49:08 +0000 (20:49 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 9 Sep 2014 18:49:08 +0000 (20:49 +0200)
2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>

PR target/63195
* config/rs6000/rs6000.md (*bool<mode>3): Allow only register
operands.  Split off the constant operand alternative to ...
(*bool<mode>3_imm): New.

From-SVN: r215091

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

index 8c1b755b8aa7369780ded751587fc6aa21709df3..a967334bc202cb647dc00a621eacf6b18f566d83 100644 (file)
@@ -1,3 +1,10 @@
+2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/63195
+       * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
+       operands.  Split off the constant operand alternative to ...
+       (*bool<mode>3_imm): New.
+
 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
 
        * rtl.h (single_set_2): Strengthen first param from const_rtx to
index 2df8e4193fd8f33f1253b950a693a155cb8c753b..b5aeaed16aa0f0c69d4d3e949936cc3647cce127 100644 (file)
 })
 
 (define_insn "*bool<mode>3"
-  [(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 "*bool<mode>3_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 "*bool<mode>3_dot"