1  /* { dg-do run } */
       2  /* { dg-require-effective-target avx } */
       3  /* { dg-options "-O2 -mavx" } */
       4  
       5  #include "avx-check.h"
       6  
       7  #define iRoundMode 0x7
       8  
       9  void static
      10  avx_test (void)
      11  {
      12    union256d u, s1;
      13    double source [4] = {2134.3343,1234.635654,453.345635,54646.464356};
      14    double e[4] = {0.0};
      15    int i;
      16  
      17    s1.x = _mm256_loadu_pd (source);
      18    u.x = _mm256_round_pd (s1.x, iRoundMode);
      19  
      20    for (i = 0; i < 4; i++)
      21      {
      22        __m128d tmp = _mm_load_sd (&s1.a[i]);
      23        tmp = _mm_round_sd (tmp, tmp, iRoundMode);
      24        _mm_store_sd (&e[i], tmp);
      25      }
      26  
      27    if (check_union256d (u, e))
      28      abort ();
      29  }