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