https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81496

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Strangely I've just today tried icc on
typedef int V __attribute__((vector_size (32)));

V
f1 (int a, int b, int c, int d, int e, int f, int g, int h)
{
  return (V) { a, b, c, d, e, f, g, h };
}
with -O3 -march=core-avx2 and got:
        movl      16(%rbp), %eax
        movl      24(%rbp), %r10d
        movl      %edi, -32(%rsp)
        movl      %esi, -28(%rsp)
        movl      %edx, -24(%rsp)
        movl      %ecx, -20(%rsp)
        movl      %r8d, -16(%rsp)
        movl      %r9d, -12(%rsp)
        movl      %eax, -8(%rsp)
        movl      %r10d, -4(%rsp)
        vmovdqu   -32(%rsp), %ymm0
ICC 17.0.4 20170411.
Similarly for
typedef long long V __attribute__((vector_size (64)));

V
f1 (long long a, long long b, long long c, long long d, long long e, long long
f, long long g, long long h)
{
  return (V) { a, b, c, d, e, f, g, h };
}
and -O3 -xCORE-AVX512.

Reply via email to