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]);")

Reply via email to