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.