[(set_attr "type" "icmp")
(set_attr "mode" "<MODE>")])
-(define_insn "*cmpqi_ext_1"
+(define_insn "*cmpqi_ext<mode>_1"
[(set (reg FLAGS_REG)
(compare
(match_operand:QI 0 "nonimmediate_operand" "QBc,m")
(subreg:QI
- (zero_extract:SI
- (match_operand 1 "ext_register_operand" "Q,Q")
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q,Q")
(const_int 8)
(const_int 8)) 0)))]
"ix86_match_ccmode (insn, CCmode)"
(set_attr "type" "icmp")
(set_attr "mode" "QI")])
-(define_insn "*cmpqi_ext_2"
+(define_insn "*cmpqi_ext<mode>_2"
[(set (reg FLAGS_REG)
(compare
(subreg:QI
- (zero_extract:SI
- (match_operand 0 "ext_register_operand" "Q")
+ (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "Q")
(const_int 8)
(const_int 8)) 0)
(match_operand:QI 1 "const0_operand")))]
[(set (reg:CC FLAGS_REG)
(compare:CC
(subreg:QI
- (zero_extract:SI
- (match_operand 0 "ext_register_operand")
+ (zero_extract:HI
+ (match_operand:HI 0 "register_operand")
(const_int 8)
(const_int 8)) 0)
(match_operand:QI 1 "const_int_operand")))])
-(define_insn "*cmpqi_ext_3"
+(define_insn "*cmpqi_ext<mode>_3"
[(set (reg FLAGS_REG)
(compare
(subreg:QI
- (zero_extract:SI
- (match_operand 0 "ext_register_operand" "Q,Q")
+ (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "Q,Q")
(const_int 8)
(const_int 8)) 0)
(match_operand:QI 1 "general_operand" "QnBc,m")))]
(set_attr "type" "icmp")
(set_attr "mode" "QI")])
-(define_insn "*cmpqi_ext_4"
+(define_insn "*cmpqi_ext<mode>_4"
[(set (reg FLAGS_REG)
(compare
(subreg:QI
- (zero_extract:SI
- (match_operand 0 "ext_register_operand" "Q")
+ (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "Q")
(const_int 8)
(const_int 8)) 0)
(subreg:QI
- (zero_extract:SI
- (match_operand 1 "ext_register_operand" "Q")
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q")
(const_int 8)
(const_int 8)) 0)))]
"ix86_match_ccmode (insn, CCmode)"
(define_insn "*extv<mode>"
[(set (match_operand:SWI24 0 "register_operand" "=R")
- (sign_extract:SWI24 (match_operand 1 "ext_register_operand" "Q")
+ (sign_extract:SWI24 (match_operand:SWI24 1 "register_operand" "Q")
(const_int 8)
(const_int 8)))]
""
(define_insn "*extzvqi_mem_rex64"
[(set (match_operand:QI 0 "norex_memory_operand" "=Bn")
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0))]
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0))]
"TARGET_64BIT && reload_completed"
"mov{b}\t{%h1, %0|%0, %h1}"
[(set_attr "type" "imov")
(define_insn "*extzv<mode>"
[(set (match_operand:SWI248 0 "register_operand" "=R")
- (zero_extract:SWI248 (match_operand 1 "ext_register_operand" "Q")
+ (zero_extract:SWI248 (match_operand:SWI248 1 "register_operand" "Q")
(const_int 8)
(const_int 8)))]
""
(define_insn "*extzvqi"
[(set (match_operand:QI 0 "nonimmediate_operand" "=QBc,?R,m")
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "Q,Q,Q")
- (const_int 8)
- (const_int 8)) 0))]
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q,Q,Q")
+ (const_int 8)
+ (const_int 8)) 0))]
""
{
switch (get_attr_type (insn))
(define_peephole2
[(set (match_operand:QI 0 "register_operand")
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand")
- (const_int 8)
- (const_int 8)) 0))
+ (zero_extract:SWI248 (match_operand:SWI248 1 "register_operand")
+ (const_int 8)
+ (const_int 8)) 0))
(set (match_operand:QI 2 "norex_memory_operand") (match_dup 0))]
"TARGET_64BIT
&& peep2_reg_dead_p (2, operands[0])"
[(set (match_dup 2)
(subreg:QI
- (zero_extract:SI (match_dup 1)
- (const_int 8)
- (const_int 8)) 0))])
+ (zero_extract:SWI248 (match_dup 1)
+ (const_int 8)
+ (const_int 8)) 0))])
(define_expand "insv<mode>"
[(set (zero_extract:SWI248 (match_operand:SWI248 0 "register_operand")
else
dst = operands[0];
- emit_insn (gen_insv<mode>_1 (dst, operands[3]));
+ emit_insn (gen_insv_1 (<MODE>mode, dst, operands[3]));
/* Fix up the destination if needed. */
if (dst != operands[0])
})
(define_insn "*insvqi_1_mem_rex64"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(match_operand:QI 1 "norex_memory_operand" "Bn") 0))]
"TARGET_64BIT && reload_completed"
"mov{b}\t{%1, %h0|%h0, %1}"
[(set_attr "type" "imov")
(set_attr "mode" "QI")])
-(define_insn "insv<mode>_1"
- [(set (zero_extract:SWI248 (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
+(define_insn "@insv<mode>_1"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
(match_operand:SWI248 1 "general_operand" "QnBc,m"))]
""
{
(set_attr "mode" "QI")])
(define_insn "*insvqi_1"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(match_operand:QI 1 "general_operand" "QnBc,m") 0))]
""
"mov{b}\t{%1, %h0|%h0, %1}"
(define_peephole2
[(set (match_operand:QI 0 "register_operand")
(match_operand:QI 1 "norex_memory_operand"))
- (set (zero_extract:SI (match_operand 2 "ext_register_operand")
- (const_int 8)
- (const_int 8))
- (subreg:SI (match_dup 0) 0))]
+ (set (zero_extract:SWI248 (match_operand:SWI248 2 "register_operand")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248 (match_dup 0) 0))]
"TARGET_64BIT
&& peep2_reg_dead_p (2, operands[0])"
- [(set (zero_extract:SI (match_dup 2)
- (const_int 8)
- (const_int 8))
- (subreg:SI (match_dup 1) 0))])
+ [(set (zero_extract:SWI248 (match_dup 2)
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248 (match_dup 1) 0))])
(define_code_iterator any_extract [sign_extract zero_extract])
(define_insn "*insvqi_2"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (any_extract:SI (match_operand 1 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)))]
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (any_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)))]
""
"mov{b}\t{%h1, %h0|%h0, %h1}"
[(set_attr "type" "imov")
(set_attr "mode" "QI")])
(define_insn "*insvqi_3"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (any_shiftrt:SI (match_operand:SI 1 "register_operand" "Q")
- (const_int 8)))]
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (any_shiftrt:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q")
+ (const_int 8)))]
""
"mov{b}\t{%h1, %h0|%h0, %h1}"
[(set_attr "type" "imov")
(const_string "*")))
(set_attr "mode" "<MODE>")])
-(define_insn "addqi_ext_1"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_expand "addqi_ext_1"
+ [(parallel
+ [(set (zero_extract:HI (match_operand:HI 0 "register_operand")
+ (const_int 8)
+ (const_int 8))
+ (subreg:HI
+ (plus:QI
+ (subreg:QI
+ (zero_extract:HI (match_operand:HI 1 "register_operand")
+ (const_int 8)
+ (const_int 8)) 0)
+ (match_operand:QI 2 "const_int_operand")) 0))
+ (clobber (reg:CC FLAGS_REG))])])
+
+(define_insn "*addqi_ext<mode>_1"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(plus:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "0,0")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 2 "general_operand" "QnBc,m")) 0))
(clobber (reg:CC FLAGS_REG))]
"/* FIXME: without this LRA can't reload this pattern, see PR82524. */
(const_string "alu")))
(set_attr "mode" "QI")])
-(define_insn "*addqi_ext_2"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_insn "*addqi_ext<mode>_2"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(plus:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "%0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "%0")
+ (const_int 8)
+ (const_int 8)) 0)
(subreg:QI
- (zero_extract:SI (match_operand 2 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0)) 0))
+ (zero_extract:SWI248
+ (match_operand:SWI248 2 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0)) 0))
(clobber (reg:CC FLAGS_REG))]
"/* FIXME: without this LRA can't reload this pattern, see PR82524. */
rtx_equal_p (operands[0], operands[1])
emit_insn (gen_divmodhiqi3 (tmp0, tmp1, operands[2]));
/* Extract remainder from AH. */
- tmp1 = gen_rtx_ZERO_EXTRACT (SImode, tmp0, GEN_INT (8), GEN_INT (8));
- tmp1 = lowpart_subreg (QImode, tmp1, SImode);
+ tmp1 = gen_rtx_ZERO_EXTRACT (HImode, tmp0, GEN_INT (8), GEN_INT (8));
+ tmp1 = lowpart_subreg (QImode, tmp1, HImode);
rtx_insn *insn = emit_move_insn (operands[3], tmp1);
mod = gen_rtx_MOD (QImode, operands[1], operands[2]);
emit_insn (gen_udivmodhiqi3 (tmp0, tmp1, operands[2]));
/* Extract remainder from AH. */
- tmp1 = gen_rtx_ZERO_EXTRACT (SImode, tmp0, GEN_INT (8), GEN_INT (8));
- tmp1 = lowpart_subreg (QImode, tmp1, SImode);
+ tmp1 = gen_rtx_ZERO_EXTRACT (HImode, tmp0, GEN_INT (8), GEN_INT (8));
+ tmp1 = lowpart_subreg (QImode, tmp1, HImode);
rtx_insn *insn = emit_move_insn (operands[3], tmp1);
mod = gen_rtx_UMOD (QImode, operands[1], operands[2]);
(compare:CCNO
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 0 "ext_register_operand")
- (const_int 8)
- (const_int 8)) 0)
- (match_operand 1 "const_int_operand"))
+ (zero_extract:HI
+ (match_operand:HI 0 "register_operand")
+ (const_int 8)
+ (const_int 8)) 0)
+ (match_operand:QI 1 "const_int_operand"))
(const_int 0)))])
-(define_insn "*testqi_ext_1"
+(define_insn "*testqi_ext<mode>_1"
[(set (reg FLAGS_REG)
(compare
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 0 "ext_register_operand" "Q,Q")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "Q,Q")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 1 "general_operand" "QnBc,m"))
(const_int 0)))]
"ix86_match_ccmode (insn, CCNOmode)"
(set_attr "type" "test")
(set_attr "mode" "QI")])
-(define_insn "*testqi_ext_2"
+(define_insn "*testqi_ext<mode>_2"
[(set (reg FLAGS_REG)
(compare
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 0 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0)
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0))
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0))
(const_int 0)))]
"ix86_match_ccmode (insn, CCNOmode)"
"test{b}\t{%h1, %h0|%h0, %h1}"
[(set_attr "type" "alu")
(set_attr "mode" "<MODE>")])
-(define_insn "andqi_ext_1"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_expand "andqi_ext_1"
+ [(parallel
+ [(set (zero_extract:HI (match_operand:HI 0 "register_operand")
+ (const_int 8)
+ (const_int 8))
+ (subreg:HI
+ (and:QI
+ (subreg:QI
+ (zero_extract:HI (match_operand:HI 1 "register_operand")
+ (const_int 8)
+ (const_int 8)) 0)
+ (match_operand:QI 2 "const_int_operand")) 0))
+ (clobber (reg:CC FLAGS_REG))])])
+
+(define_insn "*andqi_ext<mode>_1"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "0,0")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 2 "general_operand" "QnBc,m")) 0))
(clobber (reg:CC FLAGS_REG))]
"/* FIXME: without this LRA can't reload this pattern, see PR82524. */
;; Generated by peephole translating test to and. This shows up
;; often in fp comparisons.
-(define_insn "*andqi_ext_1_cc"
+(define_insn "*andqi_ext<mode>_1_cc"
[(set (reg FLAGS_REG)
(compare
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "0,0")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 2 "general_operand" "QnBc,m"))
(const_int 0)))
- (set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+ (set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(and:QI
(subreg:QI
- (zero_extract:SI (match_dup 1)
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_dup 1)
+ (const_int 8)
+ (const_int 8)) 0)
(match_dup 2)) 0))]
"ix86_match_ccmode (insn, CCNOmode)
/* FIXME: without this LRA can't reload this pattern, see PR82524. */
(set_attr "type" "alu")
(set_attr "mode" "QI")])
-(define_insn "*andqi_ext_2"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_insn "*andqi_ext<mode>_2"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "%0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "%0")
+ (const_int 8)
+ (const_int 8)) 0)
(subreg:QI
- (zero_extract:SI (match_operand 2 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0)) 0))
+ (zero_extract:SWI248
+ (match_operand:SWI248 2 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0)) 0))
(clobber (reg:CC FLAGS_REG))]
"/* FIXME: without this LRA can't reload this pattern, see PR82524. */
rtx_equal_p (operands[0], operands[1])
[(set_attr "type" "alu")
(set_attr "mode" "<MODE>")])
-(define_insn "*<code>qi_ext_1"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_insn "*<code>qi_ext<mode>_1"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(any_or:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "0,0")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 2 "general_operand" "QnBc,m")) 0))
(clobber (reg:CC FLAGS_REG))]
"(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
(set_attr "type" "alu")
(set_attr "mode" "QI")])
-(define_insn "*<code>qi_ext_2"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+(define_insn "*<code>qi_ext<mode>_2"
+ [(set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(any_or:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "%0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "%0")
+ (const_int 8)
+ (const_int 8)) 0)
(subreg:QI
- (zero_extract:SI (match_operand 2 "ext_register_operand" "Q")
- (const_int 8)
- (const_int 8)) 0)) 0))
+ (zero_extract:SWI248
+ (match_operand:SWI248 2 "register_operand" "Q")
+ (const_int 8)
+ (const_int 8)) 0)) 0))
(clobber (reg:CC FLAGS_REG))]
"(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
/* FIXME: without this LRA can't reload this pattern, see PR82524. */
})
(define_expand "xorqi_ext_1_cc"
- [(parallel [
- (set (reg:CCNO FLAGS_REG)
- (compare:CCNO
- (xor:QI
- (subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand")
- (const_int 8)
- (const_int 8)) 0)
- (match_operand 2 "const_int_operand"))
- (const_int 0)))
- (set (zero_extract:SI (match_operand 0 "ext_register_operand")
- (const_int 8)
- (const_int 8))
- (subreg:SI
- (xor:QI
- (subreg:QI
- (zero_extract:SI (match_dup 1)
- (const_int 8)
- (const_int 8)) 0)
- (match_dup 2)) 0))])])
-
-(define_insn "*xorqi_ext_1_cc"
+ [(parallel
+ [(set (reg:CCNO FLAGS_REG)
+ (compare:CCNO
+ (xor:QI
+ (subreg:QI
+ (zero_extract:HI (match_operand:HI 1 "register_operand")
+ (const_int 8)
+ (const_int 8)) 0)
+ (match_operand:QI 2 "const_int_operand"))
+ (const_int 0)))
+ (set (zero_extract:HI (match_operand:HI 0 "register_operand")
+ (const_int 8)
+ (const_int 8))
+ (subreg:HI
+ (xor:QI
+ (subreg:QI
+ (zero_extract:HI (match_dup 1)
+ (const_int 8)
+ (const_int 8)) 0)
+ (match_dup 2)) 0))])])
+
+(define_insn "*xorqi_ext<mode>_1_cc"
[(set (reg FLAGS_REG)
(compare
(xor:QI
(subreg:QI
- (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_operand:SWI248 1 "register_operand" "0,0")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand:QI 2 "general_operand" "QnBc,m"))
(const_int 0)))
- (set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q,Q")
- (const_int 8)
- (const_int 8))
- (subreg:SI
+ (set (zero_extract:SWI248
+ (match_operand:SWI248 0 "register_operand" "+Q,Q")
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(xor:QI
(subreg:QI
- (zero_extract:SI (match_dup 1)
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248
+ (match_dup 1)
+ (const_int 8)
+ (const_int 8)) 0)
(match_dup 2)) 0))]
"ix86_match_ccmode (insn, CCNOmode)
/* FIXME: without this LRA can't reload this pattern, see PR82524. */
(match_operator 1 "compare_operator"
[(and:QI
(subreg:QI
- (zero_extract:SI (match_operand 2 "QIreg_operand")
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248 (match_operand:SWI248 2 "QIreg_operand")
+ (const_int 8)
+ (const_int 8)) 0)
(match_operand 3 "const_int_operand"))
(const_int 0)]))]
"! TARGET_PARTIAL_REG_STALL
(match_op_dup 1
[(and:QI
(subreg:QI
- (zero_extract:SI (match_dup 2)
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248 (match_dup 2)
+ (const_int 8)
+ (const_int 8)) 0)
(match_dup 3))
(const_int 0)]))
- (set (zero_extract:SI (match_dup 2)
- (const_int 8)
- (const_int 8))
- (subreg:SI
+ (set (zero_extract:SWI248 (match_dup 2)
+ (const_int 8)
+ (const_int 8))
+ (subreg:SWI248
(and:QI
(subreg:QI
- (zero_extract:SI (match_dup 2)
- (const_int 8)
- (const_int 8)) 0)
+ (zero_extract:SWI248 (match_dup 2)
+ (const_int 8)
+ (const_int 8)) 0)
(match_dup 3)) 0))])])
;; Don't do logical operations with memory inputs.