1 // RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify
2 // RUN: %clang_cc1 -fsyntax-only -ffreestanding -fno-lax-vector-conversions %s -verify
3 // RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify
4 // expected-no-diagnostics
5 
6 #if defined(i386) || defined(__x86_64__)
7 
8 // Pretend to enable all features.
9 #ifndef __3dNOW__
10 #define __3dNOW__
11 #endif
12 #ifndef __BMI__
13 #define __BMI__
14 #endif
15 #ifndef __BMI2__
16 #define __BMI2__
17 #endif
18 #ifndef __LZCNT__
19 #define __LZCNT__
20 #endif
21 #ifndef __POPCNT__
22 #define __POPCNT__
23 #endif
24 #ifndef __RDSEED__
25 #define __RDSEED__
26 #endif
27 #ifndef __PRFCHW__
28 #define __PRFCHW__
29 #endif
30 #ifndef __SSE4A__
31 #define __SSE4A__
32 #endif
33 #ifndef __FMA4__
34 #define __FMA4__
35 #endif
36 #ifndef __XOP__
37 #define __XOP__
38 #endif
39 #ifndef __F16C__
40 #define __F16C__
41 #endif
42 #ifndef __MMX__
43 #define __MMX__
44 #endif
45 #ifndef __SSE__
46 #define __SSE__
47 #endif
48 #ifndef __SSE2__
49 #define __SSE2__
50 #endif
51 #ifndef __SSE3__
52 #define __SSE3__
53 #endif
54 #ifndef __SSSE3__
55 #define __SSSE3__
56 #endif
57 #ifndef __SSE4_1__
58 #define __SSE4_1__
59 #endif
60 #ifndef __SSE4_2__
61 #define __SSE4_2__
62 #endif
63 #ifndef __AES__
64 #define __AES__
65 #endif
66 #ifndef __AVX__
67 #define __AVX__
68 #endif
69 #ifndef __AVX2__
70 #define __AVX2__
71 #endif
72 #ifndef __BMI__
73 #define __BMI__
74 #endif
75 #ifndef __BMI2__
76 #define __BMI2__
77 #endif
78 #ifndef __LZCNT__
79 #define __LZCNT__
80 #endif
81 #ifndef __FMA__
82 #define __FMA__
83 #endif
84 #ifndef __RDRND__
85 #define __RDRND__
86 #endif
87 
88 // Now include the metaheader that includes all x86 intrinsic headers.
89 #include <x86intrin.h>
90 
91 #endif
92