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 #ifndef __SHA__ 88 #define __SHA__ 89 #endif 90 #ifndef __ADX__ 91 #define __ADX__ 92 #endif 93 #ifndef __TBM__ 94 #define __TBM__ 95 #endif 96 #ifndef __RTM__ 97 #define __RTM__ 98 #endif 99 #ifndef __PCLMUL__ 100 #define __PCLMUL__ 101 #endif 102 #ifndef __FSGSBASE__ 103 #define __FSGSBASE__ 104 #endif 105 #ifndef __AVX512F__ 106 #define __AVX512F__ 107 #endif 108 #ifndef __AVX512VL__ 109 #define __AVX512VL__ 110 #endif 111 #ifndef __AVX512BW__ 112 #define __AVX512BW__ 113 #endif 114 #ifndef __AVX512ER__ 115 #define __AVX512ER__ 116 #endif 117 #ifndef __AVX512PF__ 118 #define __AVX512PF__ 119 #endif 120 #ifndef __AVX512DQ__ 121 #define __AVX512DQ__ 122 #endif 123 #ifndef __AVX512CD__ 124 #define __AVX512CD__ 125 #endif 126 127 // Now include the metaheader that includes all x86 intrinsic headers. 128 #include <x86intrin.h> 129 130 #endif 131