18d203d50Skettenis #include <emmintrin.h> 28d203d50Skettenis #include <pthread.h> 38d203d50Skettenis 4*b790c7afSkettenis void foo_init(void) __attribute__((constructor)); 5*b790c7afSkettenis void foo_fini(void) __attribute__((destructor)); 68d203d50Skettenis 78d203d50Skettenis void * foo(void * arg)88d203d50Skettenisfoo(void *arg) 98d203d50Skettenis { 108d203d50Skettenis __m128i xmm_alpha; 118d203d50Skettenis 128d203d50Skettenis if ((((unsigned long)&xmm_alpha) & 15) != 0) 138d203d50Skettenis exit(1); 148d203d50Skettenis } 158d203d50Skettenis 168d203d50Skettenis void foo_init(void)17*b790c7afSkettenisfoo_init(void) 18*b790c7afSkettenis { 19*b790c7afSkettenis foo(NULL); 20*b790c7afSkettenis } 21*b790c7afSkettenis 22*b790c7afSkettenis void foo_fini(void)23*b790c7afSkettenisfoo_fini(void) 248d203d50Skettenis { 258d203d50Skettenis foo(NULL); 268d203d50Skettenis } 278d203d50Skettenis 288d203d50Skettenis int main(void)298d203d50Skettenismain(void) 308d203d50Skettenis { 318d203d50Skettenis pthread_t thread; 328d203d50Skettenis 338d203d50Skettenis foo(NULL); 348d203d50Skettenis pthread_create(&thread, NULL, foo, NULL); 358d203d50Skettenis return 0; 368d203d50Skettenis } 37