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
9void static
10avx_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}
30