initial commit
[glibc.git] / sysdeps / x86_64 / tst-ssemod.c
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
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 }