[Bug target/79745] vec_init<> expander misses V2TImode with AVX and V2OImode and V2TImode with AVX512

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 28 11:45:00 GMT 2017


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


More information about the Gcc-bugs mailing list