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