https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101846
--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> --- For foo, vmovdqa is avx_vec_concatv16si/2, and we can add define_insn_and_split to combine avx_vec_concatv16si/2 and avx512f_zero_extendv16hiv16si2_1, similar for other modes in pmovzx{bw,wd,dq}. For bar, we need to match pmov{wb,dw,qd} in ix86_vectorize_vec_perm_const when only one operand is used and selector are truncate index, just like we did for pmovzx. I'll take this.