https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98694
--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> ---
and rewritten pattern
(define_insn "*vec_dupv4hi"
[(set (match_operand:V4HI 0 "register_operand" "=y,xYw")
(vec_duplicate:V4HI
(truncate:HI
(match_operand:SI 1 "register_operand" "0,xYw"))))]
to
(define_insn "*vec_dupv4hi"
[(set (match_operand:V4HI 0 "register_operand" "=y,xYw")
(vec_duplicate:V4HI
(vecTselect:HI
(match_operand:V4HI 1 "register_operand" "0,xYw")
(parallel [(const_int 0)]))))]
could avoid this issue.