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