1 /* { dg-do compile } */ 2 /* { dg-options "-mavx512f -O2" } */ 3 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ 4 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ 5 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 2 } } */ 6 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+%(?:e|r\[0-9\]+d)\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ 7 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+%(?:e|r\[0-9\]+d)\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ 8 /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+%(?:e|r\[0-9\]+d)\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ 9 10 #include <immintrin.h> 11 12 volatile __m512i x; 13 volatile __m128i y; 14 volatile int z; 15 volatile __mmask16 m; 16 17 void extern avx512f_test(void)18avx512f_test (void) 19 { 20 x = _mm512_broadcastd_epi32 (y); 21 x = _mm512_mask_broadcastd_epi32 (x, m, y); 22 x = _mm512_maskz_broadcastd_epi32 (m, y); 23 24 x = _mm512_set1_epi32 (z); 25 x = _mm512_mask_set1_epi32 (x, m, z); 26 x = _mm512_maskz_set1_epi32 (m, z); 27 } 28