182899Sjake/* { dg-do compile } */
282899Sjake/* { dg-options "-mavx512vl -O2" } */
380708Sjake/* { dg-final { scan-assembler-times "vpmovsxbq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
480708Sjake/* { dg-final { scan-assembler-times "vpmovsxbq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
582899Sjake/* { dg-final { scan-assembler-times "vpmovsxbq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
682899Sjake/* { dg-final { scan-assembler-times "vpmovsxbq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
782899Sjake
882899Sjake#include <immintrin.h>
980708Sjake
1080708Sjakevolatile __m128i s, res2;
1180708Sjakevolatile __m256i res1;
1280708Sjakevolatile __mmask8 m;
1380708Sjake
1480708Sjakevoid extern
1580708Sjakeavx512vl_test (void)
1680708Sjake{
1782899Sjake  res1 = _mm256_mask_cvtepi8_epi64 (res1, m, s);
1882899Sjake  res2 = _mm_mask_cvtepi8_epi64 (res2, m, s);
1982899Sjake
2082899Sjake  res1 = _mm256_maskz_cvtepi8_epi64 (m, s);
2182899Sjake  res2 = _mm_maskz_cvtepi8_epi64 (m, s);
2282899Sjake}
2382899Sjake