1#include <stdlib.h> 2#include "cpuid.h" 3#include "m512-check.h" 4#include "avx512f-os-support.h" 5 6static void avx512f_test (void); 7 8static void __attribute__ ((noinline)) do_test (void) 9{ 10 avx512f_test (); 11} 12 13int 14main () 15{ 16 unsigned int eax, ebx, ecx, edx; 17 18 if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) 19 return 0; 20 21 /* Run AVX512F test only if host has AVX512F support. */ 22 if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE)) 23 { 24 if (__get_cpuid_max (0, NULL) < 7) 25 return 0; 26 27 __cpuid_count (7, 0, eax, ebx, ecx, edx); 28 29 if ((avx512f_os_support ()) && ((ebx & bit_AVX512F) == bit_AVX512F)) 30 { 31 do_test (); 32#ifdef DEBUG 33 printf ("PASSED\n"); 34#endif 35 return 0; 36 } 37#ifdef DEBUG 38 printf ("SKIPPED\n"); 39#endif 40 } 41#ifdef DEBUG 42 else 43 printf ("SKIPPED\n"); 44#endif 45 46 return 0; 47} 48