blob: 29c5e1e4920f1c4e97a084d2f751972637553a0c [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -msse -mno-sse2" } */
/* { dg-require-effective-target sse } */
#include "sse-check.h"
typedef double V __attribute__ ((__vector_size__ (16), __may_alias__));
typedef union
{
V x;
double a[2];
} u;
#define EMM_FLT8(a) ((double *)&(a))
void __attribute__ ((noinline))
test (V s1, V s2)
{
if (EMM_FLT8(s1)[0] != EMM_FLT8(s2)[0]
|| EMM_FLT8(s1)[1] != EMM_FLT8(s2)[1])
abort ();
}
static void
sse_test (void)
{
u s1;
s1.a[0] = 1.0;
s1.a[1] = 2.0;
test (s1.x, s1.x);
}