1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -mavx512vl" } */ 3 /* { dg-final { scan-assembler-times "vcvtph2ps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ 4 /* { dg-final { scan-assembler-times "vcvtph2ps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ 5 /* { dg-final { scan-assembler-times "vcvtph2ps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ 6 /* { dg-final { scan-assembler-times "vcvtph2ps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ 7 8 #include <immintrin.h> 9 10 volatile __m128i x; 11 volatile __m256 y; 12 volatile __m128i xx; 13 volatile __m128 yy; 14 15 void extern avx512bw_test(void)16avx512bw_test (void) 17 { 18 y = _mm256_mask_cvtph_ps (y, 4, x); 19 y = _mm256_maskz_cvtph_ps (6, x); 20 yy = _mm_mask_cvtph_ps (yy, 4, xx); 21 yy = _mm_maskz_cvtph_ps (6, xx); 22 } 23