+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
})
(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"