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