OSDN Git Service

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