1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mavx512vl -mno-avx512bw" } */
9 register __m128i a
__asm ("xmm16");
11 asm volatile ("" : "+v" (a
));
12 a
= _mm_broadcastb_epi8 (a
);
13 asm volatile ("" : "+v" (a
));
16 /* { dg-final { scan-assembler-not "vpbroadcastb\[^\n\r]*xmm16" } } */
21 register __m128i a
__asm ("xmm16");
23 asm volatile ("" : "+v" (a
));
24 a
= _mm_broadcastw_epi16 (a
);
25 asm volatile ("" : "+v" (a
));
28 /* { dg-final { scan-assembler-not "vpbroadcastw\[^\n\r]*xmm16" } } */
33 register __m128i a
__asm ("xmm16");
35 asm volatile ("" : "+v" (a
));
36 a
= _mm_broadcastd_epi32 (a
);
37 asm volatile ("" : "+v" (a
));
40 /* { dg-final { scan-assembler "vpbroadcastd\[^\n\r]*xmm16\[^\n\r]*xmm16" } } */
45 register __m128i a
__asm ("xmm16");
47 asm volatile ("" : "+v" (a
));
48 a
= _mm_broadcastq_epi64 (a
);
49 asm volatile ("" : "+v" (a
));
52 /* { dg-final { scan-assembler "vpbroadcastq\[^\n\r]*xmm16\[^\n\r]*xmm16" } } */
57 register __m128i a
__asm ("xmm16");
58 register __m256i b
__asm ("xmm17");
60 asm volatile ("" : "+v" (a
));
61 b
= _mm256_broadcastb_epi8 (a
);
62 asm volatile ("" : "+v" (b
));
65 /* { dg-final { scan-assembler-not "vpbroadcastb\[^\n\r]*\[xy]mm1\[67]" } } */
70 register __m128i a
__asm ("xmm16");
71 register __m256i b
__asm ("xmm17");
73 asm volatile ("" : "+v" (a
));
74 b
= _mm256_broadcastw_epi16 (a
);
75 asm volatile ("" : "+v" (b
));
78 /* { dg-final { scan-assembler-not "vpbroadcastw\[^\n\r]*\[xy]mm1\[67]" } } */
83 register __m128i a
__asm ("xmm16");
84 register __m256i b
__asm ("xmm17");
86 asm volatile ("" : "+v" (a
));
87 b
= _mm256_broadcastd_epi32 (a
);
88 asm volatile ("" : "+v" (b
));
91 /* { dg-final { scan-assembler "vpbroadcastd\[^\n\r]*(xmm1\[67]\[^\n\r]*ymm1\[67]|ymm1\[67]\[^\n\r]*xmm1\[67])" } } */
96 register __m128i a
__asm ("xmm16");
97 register __m256i b
__asm ("xmm17");
99 asm volatile ("" : "+v" (a
));
100 b
= _mm256_broadcastq_epi64 (a
);
101 asm volatile ("" : "+v" (b
));
104 /* { dg-final { scan-assembler "vpbroadcastq\[^\n\r]*(xmm1\[67]\[^\n\r]*ymm1\[67]|ymm1\[67]\[^\n\r]*xmm1\[67])" } } */