145699Sdes/* { dg-do compile } */
2228991Suqs/* { dg-options "-mavx512bw -mavx512vl -O2" } */
345699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%xmm\[0-7\]+\[^\n\]*k\[1-7\](?:\n|\[ \\t\]+#)" 1 } } */
445699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%ymm\[0-7\]+\[^\n\]*k\[1-7\](?:\n|\[ \\t\]+#)" 1 } } */
545699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%zmm\[0-7\]+\[^\n\]*k\[1-7\](?:\n|\[ \\t\]+#)" 1 } } */
645699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%xmm\[0-7\]+\[^\n\]*k\[1-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
745699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%ymm\[0-7\]+\[^\n\]*k\[1-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
845699Sdes/* { dg-final { scan-assembler-times "vptestnmw\[ \\t\]+\[^\{\n\]*%zmm\[0-7\]+\[^\n\]*k\[1-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
945699Sdes
1045699Sdes#include <immintrin.h>
1145699Sdes
1245699Sdesvolatile __m128i x128;
1345699Sdesvolatile __m256i x256;
1445699Sdesvolatile __m512i x512;
1545699Sdesvolatile __mmask8 m8;
1645699Sdesvolatile __mmask16 m16;
1745699Sdesvolatile __mmask32 m32;
1845699Sdes
1945699Sdesvoid extern
2045699Sdesavx512bw_test (void)
2145699Sdes{
2245699Sdes  m8 = _mm_testn_epi16_mask (x128, x128);
2345699Sdes  m16 = _mm256_testn_epi16_mask (x256, x256);
2445699Sdes  m32 = _mm512_testn_epi16_mask (x512, x512);
2545699Sdes  m8 = _mm_mask_testn_epi16_mask (3, x128, x128);
2645699Sdes  m16 = _mm256_mask_testn_epi16_mask (3, x256, x256);
2745699Sdes  m32 = _mm512_mask_testn_epi16_mask (3, x512, x512);
2850477Speter}
2945699Sdes