https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79745
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Testcase: typedef __int128 V __attribute__ ((vector_size (32))); V foo (__int128 *p) { return (V) { p[0], p[2] }; } produces with -O2 -mavx vmovdqa (%rsi), %xmm1 vmovdqa 32(%rsi), %xmm2 vmovaps %xmm1, -48(%rbp) vmovaps %xmm2, -32(%rbp) vmovdqa -48(%rbp), %ymm3 with fixed expander it ICEs (eh, looks like we do not handle V2TImode...): t.c: In function ‘foo’: t.c:5:10: internal compiler error: in ix86_expand_vector_init_general, at config/i386/i386.c:43390 return (V) { p[0], p[2] }; ^ 0x136163d ix86_expand_vector_init_general /space/rguenther/src/svn/gcc-7-branch/gcc/config/i386/i386.c:43390 0x1361bac ix86_expand_vector_init(bool, rtx_def*, rtx_def*) /space/rguenther/src/svn/gcc-7-branch/gcc/config/i386/i386.c:43504 0x16905e4 gen_vec_initv2ti(rtx_def*, rtx_def*) /space/rguenther/src/svn/gcc-7-branch/gcc/config/i386/sse.md:18614