commit 7965f92e553ee915c6c8a2bd1b0c20473f732cbb Author: Kyrylo Tkachov Date: Wed Feb 7 15:46:48 2018 +0000 [i386] Remove mode check from zero_extracts within QImode subregs diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a4832bf..911a73b 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1333,7 +1333,7 @@ (define_insn "*cmpqi_ext_1" (compare (match_operand:QI 0 "nonimmediate_operand" "QBc,m") (subreg:QI - (zero_extract:SI + (zero_extract (match_operand 1 "ext_register_operand" "Q,Q") (const_int 8) (const_int 8)) 0)))] @@ -1347,7 +1347,7 @@ (define_insn "*cmpqi_ext_2" [(set (reg FLAGS_REG) (compare (subreg:QI - (zero_extract:SI + (zero_extract (match_operand 0 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0) @@ -1372,7 +1372,7 @@ (define_insn "*cmpqi_ext_3" [(set (reg FLAGS_REG) (compare (subreg:QI - (zero_extract:SI + (zero_extract (match_operand 0 "ext_register_operand" "Q,Q") (const_int 8) (const_int 8)) 0) @@ -1387,12 +1387,12 @@ (define_insn "*cmpqi_ext_4" [(set (reg FLAGS_REG) (compare (subreg:QI - (zero_extract:SI + (zero_extract (match_operand 0 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0) (subreg:QI - (zero_extract:SI + (zero_extract (match_operand 1 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0)))] @@ -2931,7 +2931,7 @@ (define_expand "extzv" (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") + (zero_extract (match_operand 1 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0))] "TARGET_64BIT && reload_completed" @@ -2952,7 +2952,7 @@ (define_insn "*extzv" (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") + (zero_extract (match_operand 1 "ext_register_operand" "Q,Q,Q") (const_int 8) (const_int 8)) 0))] "" @@ -2980,7 +2980,7 @@ (define_insn "*extzvqi" (define_peephole2 [(set (match_operand:QI 0 "register_operand") (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand") + (zero_extract (match_operand 1 "ext_register_operand") (const_int 8) (const_int 8)) 0)) (set (match_operand:QI 2 "norex_memory_operand") (match_dup 0))] @@ -6347,11 +6347,11 @@ (define_insn "*addqi_ext_2" (subreg:SI (plus:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "%0") + (zero_extract (match_operand 1 "ext_register_operand" "%0") (const_int 8) (const_int 8)) 0) (subreg:QI - (zero_extract:SI (match_operand 2 "ext_register_operand" "Q") + (zero_extract (match_operand 2 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0)) 0)) (clobber (reg:CC FLAGS_REG))] @@ -8601,7 +8601,7 @@ (define_insn "*testqi_ext_1" (compare (and:QI (subreg:QI - (zero_extract:SI (match_operand 0 "ext_register_operand" "Q,Q") + (zero_extract (match_operand 0 "ext_register_operand" "Q,Q") (const_int 8) (const_int 8)) 0) (match_operand:QI 1 "general_operand" "QnBc,m")) @@ -8617,11 +8617,11 @@ (define_insn "*testqi_ext_2" (compare (and:QI (subreg:QI - (zero_extract:SI (match_operand 0 "ext_register_operand" "Q") + (zero_extract (match_operand 0 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0) (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "Q") + (zero_extract (match_operand 1 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0)) (const_int 0)))] @@ -9152,7 +9152,7 @@ (define_insn "*andqi_ext_1_cc" (compare (and:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0") + (zero_extract (match_operand 1 "ext_register_operand" "0,0") (const_int 8) (const_int 8)) 0) (match_operand:QI 2 "general_operand" "QnBc,m")) @@ -9163,7 +9163,7 @@ (define_insn "*andqi_ext_1_cc" (subreg:SI (and:QI (subreg:QI - (zero_extract:SI (match_dup 1) + (zero_extract (match_dup 1) (const_int 8) (const_int 8)) 0) (match_dup 2)) 0))] @@ -9182,11 +9182,11 @@ (define_insn "*andqi_ext_2" (subreg:SI (and:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "%0") + (zero_extract (match_operand 1 "ext_register_operand" "%0") (const_int 8) (const_int 8)) 0) (subreg:QI - (zero_extract:SI (match_operand 2 "ext_register_operand" "Q") + (zero_extract (match_operand 2 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0)) 0)) (clobber (reg:CC FLAGS_REG))] @@ -9571,7 +9571,7 @@ (define_insn "*qi_ext_1" (subreg:SI (any_or:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0") + (zero_extract (match_operand 1 "ext_register_operand" "0,0") (const_int 8) (const_int 8)) 0) (match_operand:QI 2 "general_operand" "QnBc,m")) 0)) @@ -9591,11 +9591,11 @@ (define_insn "*qi_ext_2" (subreg:SI (any_or:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "%0") + (zero_extract (match_operand 1 "ext_register_operand" "%0") (const_int 8) (const_int 8)) 0) (subreg:QI - (zero_extract:SI (match_operand 2 "ext_register_operand" "Q") + (zero_extract (match_operand 2 "ext_register_operand" "Q") (const_int 8) (const_int 8)) 0)) 0)) (clobber (reg:CC FLAGS_REG))] @@ -9686,7 +9686,7 @@ (define_insn "*xorqi_ext_1_cc" (compare (xor:QI (subreg:QI - (zero_extract:SI (match_operand 1 "ext_register_operand" "0,0") + (zero_extract (match_operand 1 "ext_register_operand" "0,0") (const_int 8) (const_int 8)) 0) (match_operand:QI 2 "general_operand" "QnBc,m")) @@ -9697,7 +9697,7 @@ (define_insn "*xorqi_ext_1_cc" (subreg:SI (xor:QI (subreg:QI - (zero_extract:SI (match_dup 1) + (zero_extract (match_dup 1) (const_int 8) (const_int 8)) 0) (match_dup 2)) 0))] @@ -18800,7 +18800,7 @@ (define_peephole2 (match_operator 1 "compare_operator" [(and:QI (subreg:QI - (zero_extract:SI (match_operand 2 "QIreg_operand") + (zero_extract (match_operand 2 "QIreg_operand") (const_int 8) (const_int 8)) 0) (match_operand 3 "const_int_operand"))