1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mavx512vl -mno-avx512bw" } */
4 typedef char V1
__attribute__((vector_size (16)));
5 typedef short V2
__attribute__((vector_size (16)));
6 typedef char V5
__attribute__((vector_size (32)));
7 typedef short V6
__attribute__((vector_size (32)));
8 typedef int V7
__attribute__((vector_size (32)));
13 register V1 a
__asm ("xmm16");
15 asm volatile ("" : "+v" (a
));
16 a
= __builtin_shuffle (a
, (V1
) { 0 });
17 asm volatile ("" : "+v" (a
));
20 /* { dg-final { scan-assembler-not "vpbroadcastb\[^\n\r]*xmm16" } } */
25 register V2 a
__asm ("xmm16");
27 asm volatile ("" : "+v" (a
));
28 a
= __builtin_shuffle (a
, (V2
) { 0 });
29 asm volatile ("" : "+v" (a
));
32 /* { dg-final { scan-assembler-not "vpbroadcastw\[^\n\r]*xmm16" } } */
37 register V5 a
__asm ("xmm16");
39 asm volatile ("" : "+v" (a
));
40 a
= __builtin_shuffle (a
, (V5
) { 0 });
41 asm volatile ("" : "+v" (a
));
44 /* { dg-final { scan-assembler-not "vpbroadcastb\[^\n\r]*\[xy]mm16" } } */
49 register V6 a
__asm ("xmm16");
51 asm volatile ("" : "+v" (a
));
52 a
= __builtin_shuffle (a
, (V6
) { 0 });
53 asm volatile ("" : "+v" (a
));
56 /* { dg-final { scan-assembler-not "vpbroadcastw\[^\n\r]*\[xy]mm16" } } */
61 register V7 a
__asm ("xmm16");
63 asm volatile ("" : "+v" (a
));
64 a
= __builtin_shuffle (a
, (V7
) { 0 });
65 asm volatile ("" : "+v" (a
));
68 /* { dg-final { scan-assembler "vpbroadcastd\[^\n\r]*(xmm16\[^\n\r]*ymm16|ymm16\[^\n\r]*xmm16)" } } */