https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111697
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
We have quite some code doing vector CTOR stuff in tree-ssa-forwprop.cc and
this should be optimized to
v_2 = { x_6(D), x_6(D), x_6(D), x_6(D) };
note SLP vectorization can do this but it fails because it doesn't handle
a default def insert - it handles a group of BIT_INSERT_EXPRs as
vector CTOR and SLP discovery doesn't know how to start from external defs
(it needs actual definition stmts).
A more general approach would be to try to track vector construction through
symbolic execution like we form bswap in the bswap pass.