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