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.