===================================================================
@@ -7134,43 +7134,26 @@
[(set_attr "type" "test")
(set_attr "mode" "QI")])
-(define_insn "*testqi_ext_3_rex64"
- [(set (reg FLAGS_REG)
- (compare (zero_extract:DI
- (match_operand 0 "nonimmediate_operand" "rm")
- (match_operand:DI 1 "const_int_operand")
- (match_operand:DI 2 "const_int_operand"))
- (const_int 0)))]
- "TARGET_64BIT
- && ix86_match_ccmode (insn, CCNOmode)
- && INTVAL (operands[1]) > 0
- && INTVAL (operands[2]) >= 0
- /* Ensure that resulting mask is zero or sign extended operand. */
- && (INTVAL (operands[1]) + INTVAL (operands[2]) <= 32
- || (INTVAL (operands[1]) + INTVAL (operands[2]) == 64
- && INTVAL (operands[1]) > 32))
- && (GET_MODE (operands[0]) == SImode
- || GET_MODE (operands[0]) == DImode
- || GET_MODE (operands[0]) == HImode
- || GET_MODE (operands[0]) == QImode)"
- "#")
-
;; Combine likes to form bit extractions for some tests. Humor it.
(define_insn "*testqi_ext_3"
[(set (reg FLAGS_REG)
- (compare (zero_extract:SI
+ (compare (zero_extract:SWI48
(match_operand 0 "nonimmediate_operand" "rm")
- (match_operand:SI 1 "const_int_operand")
- (match_operand:SI 2 "const_int_operand"))
+ (match_operand:SWI48 1 "const_int_operand")
+ (match_operand:SWI48 2 "const_int_operand"))
(const_int 0)))]
"ix86_match_ccmode (insn, CCNOmode)
- && INTVAL (operands[1]) > 0
- && INTVAL (operands[2]) >= 0
- && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32
- && (GET_MODE (operands[0]) == SImode
- || (TARGET_64BIT && GET_MODE (operands[0]) == DImode)
+ && ((TARGET_64BIT && GET_MODE (operands[0]) == DImode)
+ || GET_MODE (operands[0]) == SImode
|| GET_MODE (operands[0]) == HImode
- || GET_MODE (operands[0]) == QImode)"
+ || GET_MODE (operands[0]) == QImode)
+ /* Ensure that resulting mask is zero or sign extended operand. */
+ && INTVAL (operands[2]) >= 0
+ && ((INTVAL (operands[1]) > 0
+ && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)
+ || (<MODE>mode == DImode
+ && INTVAL (operands[1]) > 32
+ && INTVAL (operands[1]) + INTVAL (operands[2]) == 64))"
"#")
(define_split