1 /* { dg-do run } */
2 /* { dg-options "-O2 -msse" } */
3 /* { dg-require-effective-target sse } */
4 
5 #ifndef CHECK_H
6 #define CHECK_H "sse-check.h"
7 #endif
8 
9 #ifndef TEST
10 #define TEST sse_test
11 #endif
12 
13 #include CHECK_H
14 
15 #include <xmmintrin.h>
16 
17 static void
18 __attribute__((noinline, unused))
test(__m64 * p,__m128 a)19 test (__m64 *p, __m128 a)
20 {
21   return _mm_storeh_pi (p, a);
22 }
23 
24 static void
TEST(void)25 TEST (void)
26 {
27   union128 s1;
28   float e[2];
29   float d[2];
30 
31   s1.x = _mm_set_ps (5.13, 6.12, 7.11, 8.9);
32 
33   test ((__m64 *)d, s1.x);
34 
35   e[0] = s1.a[2];
36   e[1] = s1.a[3];
37 
38   if (checkVf (d, e, 2))
39     abort ();
40 }
41