https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70721
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- IMHO vec_merge should go (it doesn't scale to arbitrary large vector modes, it already uses all bits of the CONST_INT for AVX512 V64QImode). vec_merge would need to change to a CONST_{DOUBLE,WIDE} to accomodate larger vectors. OTOH the other canonical form with (vec_select (vec_concat ...)) requires larger vector modes. What we lack is sth similar to VEC_PERM_EXPR here, unifying the vec_merge and the (vec_select (vec_concat ...)) cases.