(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512f-set-v8df-2.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -mavx512f" } */
       3  /* { dg-require-effective-target avx512f } */
       4  
       5  #include "avx512f-check.h"
       6  
       7  static __m512d
       8  __attribute__ ((noinline))
       9  foo (double x1, double x2, double x3, double x4,
      10       double x5, double x6, double x7, double x8)
      11  {
      12    return _mm512_set_pd (x1, x2, x3, x4, x5, x6, x7, x8);
      13  }
      14  
      15  static __m512d
      16  __attribute__ ((noinline))
      17  foo_r (double x1, double x2, double x3, double x4,
      18         double x5, double x6, double x7, double x8)
      19  {
      20    return _mm512_setr_pd (x8, x7, x6, x5, x4, x3, x2, x1);
      21  }
      22  
      23  static void
      24  avx512f_test (void)
      25  {
      26    double v[8] = { -3.3, 2.6, 1.48, 9.104, -23.9, -173.37, -13.48, 69.78 };
      27    union512d res;
      28  
      29    res.x = foo (v[7], v[6], v[5], v[4], v[3], v[2], v[1], v[0]);
      30  
      31    if (check_union512d (res, v))
      32      abort ();
      33  
      34    res.x = _mm512_setzero_pd ();
      35  
      36    res.x = foo_r (v[7], v[6], v[5], v[4], v[3], v[2], v[1], v[0]);
      37  
      38    if (check_union512d (res, v))
      39      abort ();
      40  }