(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512fp16-vmovw-4b.c
       1  /* { dg-do run { target avx512fp16 } } */
       2  /* { dg-options "-O2 -mavx512fp16" } */
       3  
       4  #include <string.h>
       5  
       6  static void do_test (void);
       7  
       8  #define DO_TEST do_test
       9  #define AVX512FP16
      10  #include "avx512-check.h"
      11  #include "avx512fp16-vmovw-4a.c"
      12  
      13  __m512i
      14  __attribute__ ((noinline,noclone))
      15  foo3 (__m512i x)
      16  {
      17    return foo1 (((__v32hi) x)[0]);
      18  }
      19  
      20  static void
      21  do_test (void)
      22  {
      23    short x = 25;
      24    union512i_w u = { -1, -1, -1, -1, -1, -1, -1, -1 };
      25    union512i_w exp = { 0, 0, 0, 0, 0, 0, 0, 0 };
      26  
      27    __m512i v;
      28    union512i_w a;
      29    exp.a[0] = x;
      30    memset (&v, -1, sizeof (v));
      31    v = foo1 (x);
      32    a.x = v;
      33    if (check_union512i_w (a, exp.a))
      34      abort ();
      35  
      36    x = 55;
      37    exp.a[0] = x;
      38    memset (&v, -1, sizeof (v));
      39    v = foo2 (&x);
      40    a.x = v;
      41    if (check_union512i_w (a, exp.a))
      42      abort ();
      43  
      44    x = 33;
      45    u.a[0] = x;
      46    exp.a[0] = x;
      47    memset (&v, -1, sizeof (v));
      48    v = foo3 (u.x);
      49    a.x = v;
      50    if (check_union512i_w (a, exp.a))
      51      abort ();
      52  }