1169689Skan/* { dg-do run } */
2169689Skan/* { dg-require-effective-target avx } */
3169689Skan/* { dg-options "-O2 -mavx" } */
4169689Skan
5169689Skan#include "avx-check.h"
6169689Skan
7169689Skan#ifndef CTRL
8169689Skan#define CTRL 1
9169689Skan#endif
10169689Skan
11169689Skanvoid static
12169689Skanavx_test ()
13169689Skan{
14169689Skan    union128d u, src;
15169689Skan    double s[2] = {9674.67456, 13543.9788};
16169689Skan    double e[2];
17169689Skan
18169689Skan    src.x=_mm_loadu_pd(s);
19169689Skan    u.x=_mm_permute_pd(src.x, CTRL);
20169689Skan
21169689Skan    e[0] = s[ (CTRL & 0x01)];
22169689Skan    e[1] = s[((CTRL & 0x02) >> 1)];
23169689Skan
24169689Skan    if (check_union128d (u, e))
25169689Skan      abort ();
26169689Skan}
27169689Skan
28169689Skan