https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85945
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Is missing :) Here it is: typedef float b; typedef b __attribute__((vector_size(16))) c; typedef union { c d; b a[4]; } e; int f; b g[4]; void h() { c d; e i; i.d = d; f = 0; for (; f < 4; f++) g[f] = i.a[f]; }