(compare:CCNO
(and:SWI48
(match_operand:SWI48 0 "nonimmediate_operand")
- (match_operand:SWI48 1 "<nonmemory_szext_operand>"))
+ (match_operand:SWI48 1 "<general_szext_operand>"))
(const_int 0)))])
(define_expand "testqi_ccz_1"
(compare:CCZ
(and:QI
(match_operand:QI 0 "nonimmediate_operand")
- (match_operand:QI 1 "nonmemory_operand"))
+ (match_operand:QI 1 "general_operand"))
(const_int 0)))])
(define_insn "*testdi_1"
(compare
(and:DI
(match_operand:DI 0 "nonimmediate_operand" "%r,rm")
- (match_operand:DI 1 "x86_64_szext_nonmemory_operand" "Z,re"))
+ (match_operand:DI 1 "x86_64_szext_general_operand" "Z,re"))
(const_int 0)))]
"TARGET_64BIT
&& ix86_match_ccmode
(satisfies_constraint_Z (operands[1])
&& (!CONST_INT_P (operands[1])
|| val_signbit_known_set_p (SImode, INTVAL (operands[1]))))
- ? CCZmode : CCNOmode)"
+ ? CCZmode : CCNOmode)
+ && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
"@
test{l}\t{%k1, %k0|%k0, %k1}
test{q}\t{%1, %0|%0, %1}"
[(set (reg FLAGS_REG)
(compare
(and:QI
- (match_operand:QI 0 "nonimmediate_operand" "%qm,qm,r")
- (match_operand:QI 1 "nonmemory_operand" "q,n,n"))
+ (match_operand:QI 0 "nonimmediate_operand" "%qm,*a,qm,r")
+ (match_operand:QI 1 "general_operand" "q,n,n,n"))
(const_int 0)))]
"ix86_match_ccmode (insn,
CONST_INT_P (operands[1])
- && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)"
+ && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)
+ && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
{
if (get_attr_mode (insn) == MODE_SI)
{
}
[(set_attr "type" "test")
(set (attr "mode")
- (cond [(eq_attr "alternative" "2")
+ (cond [(eq_attr "alternative" "3")
(const_string "SI")
(and (match_test "optimize_insn_for_size_p ()")
(and (match_operand 0 "ext_QIreg_operand")
(const_string "SI")
]
(const_string "QI")))
- (set_attr "pent_pair" "uv,np,np")])
+ (set_attr "pent_pair" "uv,uv,np,np")])
(define_insn "*test<mode>_1"
[(set (reg FLAGS_REG)
(compare
(and:SWI124
(match_operand:SWI124 0 "nonimmediate_operand" "%<r>m,*a,<r>m")
- (match_operand:SWI124 1 "<nonmemory_szext_operand>" "<r>,<i>,<i>"))
- (const_int 0)))]
- "ix86_match_ccmode (insn, CCNOmode)"
+ (match_operand:SWI124 1 "<general_operand>" "<r>,<i>,<i>"))
+ (const_int 0)))]
+ "ix86_match_ccmode (insn, CCNOmode)
+ && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
"test{<imodesuffix>}\t{%1, %0|%0, %1}"
[(set_attr "type" "test")
(set_attr "mode" "<MODE>")