1/* { dg-do run } */
2/* { dg-options "-O2 -msse -mno-sse2" } */
3/* { dg-require-effective-target sse } */
4
5#include "sse-check.h"
6
7typedef double V __attribute__ ((__vector_size__ (16), __may_alias__));
8typedef union
9{
10  V x;
11  double a[2];
12} u;
13
14#define EMM_FLT8(a) ((double *)&(a))
15
16void __attribute__ ((noinline))
17test (V s1, V s2)
18{
19  if (EMM_FLT8(s1)[0] != EMM_FLT8(s2)[0]
20      || EMM_FLT8(s1)[1] != EMM_FLT8(s2)[1])
21    abort ();
22}
23
24static void
25sse_test (void)
26{
27  u s1;
28
29  s1.a[0] = 1.0;
30  s1.a[1] = 2.0;
31
32  test (s1.x, s1.x);
33}
34