1254721Semaste/* { dg-do compile } */
2254721Semaste/* { dg-options "-mavx512f -O2" } */
3254721Semaste/* { dg-final { scan-assembler-times "vcompresspd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
4254721Semaste/* { dg-final { scan-assembler-times "vcompresspd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
5254721Semaste/* { dg-final { scan-assembler-times "vcompresspd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
6254721Semaste
7254721Semaste#include <immintrin.h>
8254721Semaste
9254721Semastedouble *p;
10254721Semastevolatile __m512d x;
11254721Semastevolatile __mmask8 m;
12254721Semaste
13254721Semastevoid extern
14254721Semasteavx512f_test (void)
15254721Semaste{
16254721Semaste  x = _mm512_mask_compress_pd (x, m, x);
17254721Semaste  x = _mm512_maskz_compress_pd (m, x);
18254721Semaste
19254721Semaste  _mm512_mask_compressstoreu_pd (p, m, x);
20254721Semaste}
21254721Semaste