1 #include <stdio.h> 2 #include <stdlib.h> 3 #include "cpuid.h" 4 5 static void bmi2_test (void); 6 7 static void 8 __attribute__ ((noinline)) do_test(void)9do_test (void) 10 { 11 bmi2_test (); 12 } 13 14 int main()15main () 16 { 17 unsigned int eax, ebx, ecx, edx; 18 19 if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx)) 20 return 0; 21 22 /* Run BMI2 test only if host has BMI2 support. */ 23 if (ebx & bit_BMI2) 24 { 25 do_test (); 26 #ifdef DEBUG 27 printf ("PASSED\n"); 28 #endif 29 return 0; 30 } 31 32 #ifdef DEBUG 33 printf ("SKIPPED\n"); 34 #endif 35 return 0; 36 } 37