1 #include <stdlib.h>
2 #include "cpuid.h"
3 #include "m512-check.h"
4 #include "avx512f-os-support.h"
5 
6 static void avx512ifma_test (void);
7 
do_test(void)8 static void __attribute__ ((noinline)) do_test (void)
9 {
10   avx512ifma_test ();
11 }
12 
13 int
main()14 main ()
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