1#include <stdlib.h> 2#include "cpuid.h" 3#include "m512-check.h" 4#include "avx512f-os-support.h" 5 6static void avx512ifma_test (void); 7 8static void __attribute__ ((noinline)) do_test (void) 9{ 10 avx512ifma_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 if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE)) 22 { 23 if (__get_cpuid_max (0, NULL) < 7) 24 return 0; 25 26 __cpuid_count (7, 0, eax, ebx, ecx, edx); 27 28 if ((avx512f_os_support ()) && ((ebx & bit_AVX512IFMA) == bit_AVX512IFMA)) 29 { 30 do_test (); 31#ifdef DEBUG 32 printf ("PASSED\n"); 33#endif 34 return 0; 35 } 36#ifdef DEBUG 37 printf ("SKIPPED\n"); 38#endif 39 } 40#ifdef DEBUG 41 else 42 printf ("SKIPPED\n"); 43#endif 44 45 return 0; 46} 47