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