xref: /openbsd-src/regress/misc/sse2/foo/foo.c (revision b790c7af8c7301fb2d28918afd9b8d252b6f2ec0)
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 *
foo(void * arg)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
foo_init(void)17 foo_init(void)
18 {
19 	foo(NULL);
20 }
21 
22 void
foo_fini(void)23 foo_fini(void)
24 {
25 	foo(NULL);
26 }
27 
28 int
main(void)29 main(void)
30 {
31 	pthread_t thread;
32 
33 	foo(NULL);
34 	pthread_create(&thread, NULL, foo, NULL);
35 	return 0;
36 }
37