https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127883
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(define_insn_and_split "*extzvdi_shr"
[(set (match_operand:DI 0 "register_operand")
(zero_extract:DI (match_operand 1 "int248_register_operand")
(match_operand:QI 2 "const_int_operand")
(match_operand:QI 3 "const_int_operand")))
(clobber (reg:CC FLAGS_REG))]
"TARGET_64BIT
&& UINTVAL (operands[2]) + UINTVAL (operands[3]) == 32
&& ix86_pre_reload_split ()"
"#"
"&& 1"
[(parallel
[(set (match_dup 0)
(zero_extend:DI
(lshiftrt:SI (match_dup 1) (match_dup 3))))
(clobber (reg:CC FLAGS_REG))])]
"operands[1] = gen_lowpart (SImode, operands[1]);")