1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mavx512vl -masm=att" } */
4 typedef char V1
__attribute__((vector_size (32)));
5 typedef short V2
__attribute__((vector_size (32)));
10 register V1 a
__asm ("xmm16");
12 asm volatile ("" : "+v" (a
));
14 asm volatile ("" : "+v" (a
));
20 register V1 a
__asm ("xmm16");
22 asm volatile ("" : "+v" (a
));
24 asm volatile ("" : "+v" (a
));
30 register V2 a
__asm ("xmm16");
32 asm volatile ("" : "+v" (a
));
34 asm volatile ("" : "+v" (a
));
40 register V2 a
__asm ("xmm16");
42 asm volatile ("" : "+v" (a
));
44 asm volatile ("" : "+v" (a
));
47 /* { dg-final { scan-assembler-times "vinserti32x4\[^\n\r]*0x0\[^\n\r]*%ymm16" 2 } } */
48 /* { dg-final { scan-assembler-times "vinserti32x4\[^\n\r]*0x1\[^\n\r]*%ymm16" 2 } } */
49 /* { dg-final { scan-assembler-times "vextracti32x4\[^\n\r]*0x1\[^\n\r]*%\[yz]mm16" 2 } } */