| /* { dg-do compile } */ |
| /* { dg-options "-O2 -march=skylake-avx512 -mprefer-vector-width=512" } */ |
| |
| typedef int v16si __attribute__((vector_size (64))); |
| typedef long long v8di __attribute__((vector_size (64))); |
| |
| void |
| bar_s32_s64 (v8di * dst, v16si src) |
| { |
| long long tem[8]; |
| tem[0] = src[0]; |
| tem[1] = src[1]; |
| tem[2] = src[2]; |
| tem[3] = src[3]; |
| tem[4] = src[4]; |
| tem[5] = src[5]; |
| tem[6] = src[6]; |
| tem[7] = src[7]; |
| dst[0] = *(v8di *) tem; |
| } |
| |
| /* We want to generate |
| vpmovsxdq %ymm0, %zmm0 |
| vmovdqa64 %zmm0, (%rdi) |
| ret |
| */ |
| /* { dg-final { scan-assembler "vpmovsxdq" } } */ |