1 /* Test case for x86-64 preserved SSE registers in dynamic linker.  */
2 
3 #include <stdlib.h>
4 #include <string.h>
5 #include <immintrin.h>
6 
7 __m128i
sse_test(__m128i x0,__m128i x1,__m128i x2,__m128i x3,__m128i x4,__m128i x5,__m128i x6,__m128i x7)8 sse_test (__m128i x0, __m128i x1, __m128i x2, __m128i x3,
9 	  __m128i x4, __m128i x5, __m128i x6, __m128i x7)
10 {
11   __m128i xmm;
12 
13   xmm = _mm_set1_epi32 (0);
14   if (memcmp (&xmm, &x0, sizeof (xmm)))
15     abort ();
16 
17   xmm = _mm_set1_epi32 (1);
18   if (memcmp (&xmm, &x1, sizeof (xmm)))
19     abort ();
20 
21   xmm = _mm_set1_epi32 (2);
22   if (memcmp (&xmm, &x2, sizeof (xmm)))
23     abort ();
24 
25   xmm = _mm_set1_epi32 (3);
26   if (memcmp (&xmm, &x3, sizeof (xmm)))
27     abort ();
28 
29   xmm = _mm_set1_epi32 (4);
30   if (memcmp (&xmm, &x4, sizeof (xmm)))
31     abort ();
32 
33   xmm = _mm_set1_epi32 (5);
34   if (memcmp (&xmm, &x5, sizeof (xmm)))
35     abort ();
36 
37   xmm = _mm_set1_epi32 (6);
38   if (memcmp (&xmm, &x6, sizeof (xmm)))
39     abort ();
40 
41   xmm = _mm_set1_epi32 (7);
42   if (memcmp (&xmm, &x7, sizeof (xmm)))
43     abort ();
44 
45   return _mm_set1_epi32 (0x12349876);
46 }
47