Initial support for AVX-512{VL,BW,DQ}
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / avx512bw-vpmovm2w-2.c
blob24b0737bf3d6151790a376c4588f82ad5d7e7f88
1 /* { dg-do run } */
2 /* { dg-options "-O2 -mavx512bw -DAVX512BW" } */
3 /* { dg-require-effective-target avx512bw } */
5 #include "avx512f-helper.h"
7 #define SIZE (AVX512F_LEN / 16)
8 #include "avx512f-mask-type.h"
10 CALC (short *r, MASK_TYPE s)
12 int i;
13 short all_ones = 0xffff;
15 for (i = 0; i < SIZE; i++)
16 r[i] = ((s >> i) & 1) ? all_ones : 0;
19 void
20 TEST (void)
22 int i;
23 UNION_TYPE (AVX512F_LEN, i_w) res, res_ref;
24 MASK_TYPE src = (MASK_TYPE) 0x1111abc2;
26 res.x = INTRINSIC (_movm_epi16) (src);
28 CALC (res_ref.a, src);
30 if (UNION_CHECK (AVX512F_LEN, i_w) (res, res_ref.a))
31 abort ();