(define_split
[(set (match_operand:SWI248 0 "register_operand")
(if_then_else:SWI248
- (ne
- (zero_extract:SWI48
- (match_operand:SWI48 1 "register_operand")
- (const_int 1)
- (zero_extend:SI (match_operand:QI 2 "register_operand")))
- (const_int 0))
+ (match_operator 5 "bt_comparison_operator"
+ [(zero_extract:SWI48
+ (match_operand:SWI48 1 "register_operand")
+ (const_int 1)
+ (zero_extend:SI (match_operand:QI 2 "register_operand")))
+ (const_int 0)])
(match_operand:SWI248 3 "nonimmediate_operand")
(match_operand:SWI248 4 "nonimmediate_operand")))]
"TARGET_USE_BT && TARGET_CMOVE
(match_dup 3)
(match_dup 4)))]
{
+ if (GET_CODE (operands[5]) == EQ)
+ std::swap (operands[3], operands[4]);
operands[2] = lowpart_subreg (SImode, operands[2], QImode);
})