xref: /openbsd/regress/misc/sse2/foo/foo.c (revision 73471bf0)
1 #include <emmintrin.h>
2 #include <pthread.h>
3 
4 void foo_init(void) __attribute__((constructor));
5 void foo_fini(void) __attribute__((destructor));
6 
7 void *
8 foo(void *arg)
9 {
10 	__m128i xmm_alpha;
11 
12 	if ((((unsigned long)&xmm_alpha) & 15) != 0)
13 		exit(1);
14 }
15 
16 void
17 foo_init(void)
18 {
19 	foo(NULL);
20 }
21 
22 void
23 foo_fini(void)
24 {
25 	foo(NULL);
26 }
27 
28 int
29 main(void)
30 {
31 	pthread_t thread;
32 
33 	foo(NULL);
34 	pthread_create(&thread, NULL, foo, NULL);
35 	return 0;
36 }
37