1*67e74705SXin Li // Begin X86/GCC/Linux tests ---------------- 2*67e74705SXin Li // 3*67e74705SXin Li // RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \ 4*67e74705SXin Li // RUN: -target i386-unknown-linux \ 5*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M32 6*67e74705SXin Li // CHECK_I386_M32: #define __i386 1 7*67e74705SXin Li // CHECK_I386_M32: #define __i386__ 1 8*67e74705SXin Li // CHECK_I386_M32: #define __tune_i386__ 1 9*67e74705SXin Li // CHECK_I386_M32: #define i386 1 10*67e74705SXin Li // RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \ 11*67e74705SXin Li // RUN: -target i386-unknown-linux \ 12*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M64 13*67e74705SXin Li // CHECK_I386_M64: error: {{.*}} 14*67e74705SXin Li // 15*67e74705SXin Li // RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \ 16*67e74705SXin Li // RUN: -target i386-unknown-linux \ 17*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M32 18*67e74705SXin Li // CHECK_I486_M32: #define __i386 1 19*67e74705SXin Li // CHECK_I486_M32: #define __i386__ 1 20*67e74705SXin Li // CHECK_I486_M32: #define __i486 1 21*67e74705SXin Li // CHECK_I486_M32: #define __i486__ 1 22*67e74705SXin Li // CHECK_I486_M32: #define __tune_i486__ 1 23*67e74705SXin Li // CHECK_I486_M32: #define i386 1 24*67e74705SXin Li // RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \ 25*67e74705SXin Li // RUN: -target i386-unknown-linux \ 26*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M64 27*67e74705SXin Li // CHECK_I486_M64: error: {{.*}} 28*67e74705SXin Li // 29*67e74705SXin Li // RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \ 30*67e74705SXin Li // RUN: -target i386-unknown-linux \ 31*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M32 32*67e74705SXin Li // CHECK_I586_M32: #define __i386 1 33*67e74705SXin Li // CHECK_I586_M32: #define __i386__ 1 34*67e74705SXin Li // CHECK_I586_M32: #define __i586 1 35*67e74705SXin Li // CHECK_I586_M32: #define __i586__ 1 36*67e74705SXin Li // CHECK_I586_M32: #define __pentium 1 37*67e74705SXin Li // CHECK_I586_M32: #define __pentium__ 1 38*67e74705SXin Li // CHECK_I586_M32: #define __tune_i586__ 1 39*67e74705SXin Li // CHECK_I586_M32: #define __tune_pentium__ 1 40*67e74705SXin Li // CHECK_I586_M32: #define i386 1 41*67e74705SXin Li // RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \ 42*67e74705SXin Li // RUN: -target i386-unknown-linux \ 43*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M64 44*67e74705SXin Li // CHECK_I586_M64: error: {{.*}} 45*67e74705SXin Li // 46*67e74705SXin Li // RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \ 47*67e74705SXin Li // RUN: -target i386-unknown-linux \ 48*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M32 49*67e74705SXin Li // CHECK_PENTIUM_M32: #define __i386 1 50*67e74705SXin Li // CHECK_PENTIUM_M32: #define __i386__ 1 51*67e74705SXin Li // CHECK_PENTIUM_M32: #define __i586 1 52*67e74705SXin Li // CHECK_PENTIUM_M32: #define __i586__ 1 53*67e74705SXin Li // CHECK_PENTIUM_M32: #define __pentium 1 54*67e74705SXin Li // CHECK_PENTIUM_M32: #define __pentium__ 1 55*67e74705SXin Li // CHECK_PENTIUM_M32: #define __tune_i586__ 1 56*67e74705SXin Li // CHECK_PENTIUM_M32: #define __tune_pentium__ 1 57*67e74705SXin Li // CHECK_PENTIUM_M32: #define i386 1 58*67e74705SXin Li // RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \ 59*67e74705SXin Li // RUN: -target i386-unknown-linux \ 60*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M64 61*67e74705SXin Li // CHECK_PENTIUM_M64: error: {{.*}} 62*67e74705SXin Li // 63*67e74705SXin Li // RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \ 64*67e74705SXin Li // RUN: -target i386-unknown-linux \ 65*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M32 66*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __MMX__ 1 67*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __i386 1 68*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __i386__ 1 69*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __i586 1 70*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __i586__ 1 71*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __pentium 1 72*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __pentium__ 1 73*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1 74*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1 75*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1 76*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1 77*67e74705SXin Li // CHECK_PENTIUM_MMX_M32: #define i386 1 78*67e74705SXin Li // RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \ 79*67e74705SXin Li // RUN: -target i386-unknown-linux \ 80*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M64 81*67e74705SXin Li // CHECK_PENTIUM_MMX_M64: error: {{.*}} 82*67e74705SXin Li // 83*67e74705SXin Li // RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \ 84*67e74705SXin Li // RUN: -target i386-unknown-linux \ 85*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M32 86*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __MMX__ 1 87*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __i386 1 88*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __i386__ 1 89*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __i486 1 90*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __i486__ 1 91*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1 92*67e74705SXin Li // CHECK_WINCHIP_C6_M32: #define i386 1 93*67e74705SXin Li // RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \ 94*67e74705SXin Li // RUN: -target i386-unknown-linux \ 95*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M64 96*67e74705SXin Li // CHECK_WINCHIP_C6_M64: error: {{.*}} 97*67e74705SXin Li // 98*67e74705SXin Li // RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \ 99*67e74705SXin Li // RUN: -target i386-unknown-linux \ 100*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M32 101*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __3dNOW__ 1 102*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __MMX__ 1 103*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __i386 1 104*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __i386__ 1 105*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __i486 1 106*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __i486__ 1 107*67e74705SXin Li // CHECK_WINCHIP2_M32: #define __tune_i486__ 1 108*67e74705SXin Li // CHECK_WINCHIP2_M32: #define i386 1 109*67e74705SXin Li // RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \ 110*67e74705SXin Li // RUN: -target i386-unknown-linux \ 111*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M64 112*67e74705SXin Li // CHECK_WINCHIP2_M64: error: {{.*}} 113*67e74705SXin Li // 114*67e74705SXin Li // RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \ 115*67e74705SXin Li // RUN: -target i386-unknown-linux \ 116*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M32 117*67e74705SXin Li // CHECK_C3_M32: #define __3dNOW__ 1 118*67e74705SXin Li // CHECK_C3_M32: #define __MMX__ 1 119*67e74705SXin Li // CHECK_C3_M32: #define __i386 1 120*67e74705SXin Li // CHECK_C3_M32: #define __i386__ 1 121*67e74705SXin Li // CHECK_C3_M32: #define __i486 1 122*67e74705SXin Li // CHECK_C3_M32: #define __i486__ 1 123*67e74705SXin Li // CHECK_C3_M32: #define __tune_i486__ 1 124*67e74705SXin Li // CHECK_C3_M32: #define i386 1 125*67e74705SXin Li // RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \ 126*67e74705SXin Li // RUN: -target i386-unknown-linux \ 127*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M64 128*67e74705SXin Li // CHECK_C3_M64: error: {{.*}} 129*67e74705SXin Li // 130*67e74705SXin Li // RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \ 131*67e74705SXin Li // RUN: -target i386-unknown-linux \ 132*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M32 133*67e74705SXin Li // CHECK_C3_2_M32: #define __MMX__ 1 134*67e74705SXin Li // CHECK_C3_2_M32: #define __SSE__ 1 135*67e74705SXin Li // CHECK_C3_2_M32: #define __i386 1 136*67e74705SXin Li // CHECK_C3_2_M32: #define __i386__ 1 137*67e74705SXin Li // CHECK_C3_2_M32: #define __i686 1 138*67e74705SXin Li // CHECK_C3_2_M32: #define __i686__ 1 139*67e74705SXin Li // CHECK_C3_2_M32: #define __pentiumpro 1 140*67e74705SXin Li // CHECK_C3_2_M32: #define __pentiumpro__ 1 141*67e74705SXin Li // CHECK_C3_2_M32: #define __tune_i686__ 1 142*67e74705SXin Li // CHECK_C3_2_M32: #define __tune_pentium2__ 1 143*67e74705SXin Li // CHECK_C3_2_M32: #define __tune_pentiumpro__ 1 144*67e74705SXin Li // CHECK_C3_2_M32: #define i386 1 145*67e74705SXin Li // RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \ 146*67e74705SXin Li // RUN: -target i386-unknown-linux \ 147*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M64 148*67e74705SXin Li // CHECK_C3_2_M64: error: {{.*}} 149*67e74705SXin Li // 150*67e74705SXin Li // RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \ 151*67e74705SXin Li // RUN: -target i386-unknown-linux \ 152*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M32 153*67e74705SXin Li // CHECK_I686_M32: #define __i386 1 154*67e74705SXin Li // CHECK_I686_M32: #define __i386__ 1 155*67e74705SXin Li // CHECK_I686_M32: #define __i686 1 156*67e74705SXin Li // CHECK_I686_M32: #define __i686__ 1 157*67e74705SXin Li // CHECK_I686_M32: #define __pentiumpro 1 158*67e74705SXin Li // CHECK_I686_M32: #define __pentiumpro__ 1 159*67e74705SXin Li // CHECK_I686_M32: #define i386 1 160*67e74705SXin Li // RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \ 161*67e74705SXin Li // RUN: -target i386-unknown-linux \ 162*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M64 163*67e74705SXin Li // CHECK_I686_M64: error: {{.*}} 164*67e74705SXin Li // 165*67e74705SXin Li // RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \ 166*67e74705SXin Li // RUN: -target i386-unknown-linux \ 167*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M32 168*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __i386 1 169*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __i386__ 1 170*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __i686 1 171*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __i686__ 1 172*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __pentiumpro 1 173*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1 174*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1 175*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1 176*67e74705SXin Li // CHECK_PENTIUMPRO_M32: #define i386 1 177*67e74705SXin Li // RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \ 178*67e74705SXin Li // RUN: -target i386-unknown-linux \ 179*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M64 180*67e74705SXin Li // CHECK_PENTIUMPRO_M64: error: {{.*}} 181*67e74705SXin Li // 182*67e74705SXin Li // RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \ 183*67e74705SXin Li // RUN: -target i386-unknown-linux \ 184*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M32 185*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __MMX__ 1 186*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __i386 1 187*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __i386__ 1 188*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __i686 1 189*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __i686__ 1 190*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __pentiumpro 1 191*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __pentiumpro__ 1 192*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __tune_i686__ 1 193*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1 194*67e74705SXin Li // CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1 195*67e74705SXin Li // CHECK_PENTIUM2_M32: #define i386 1 196*67e74705SXin Li // RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \ 197*67e74705SXin Li // RUN: -target i386-unknown-linux \ 198*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M64 199*67e74705SXin Li // CHECK_PENTIUM2_M64: error: {{.*}} 200*67e74705SXin Li // 201*67e74705SXin Li // RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \ 202*67e74705SXin Li // RUN: -target i386-unknown-linux \ 203*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M32 204*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __MMX__ 1 205*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __SSE__ 1 206*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __i386 1 207*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __i386__ 1 208*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __i686 1 209*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __i686__ 1 210*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __pentiumpro 1 211*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __pentiumpro__ 1 212*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __tune_i686__ 1 213*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1 214*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1 215*67e74705SXin Li // CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1 216*67e74705SXin Li // CHECK_PENTIUM3_M32: #define i386 1 217*67e74705SXin Li // RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \ 218*67e74705SXin Li // RUN: -target i386-unknown-linux \ 219*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M64 220*67e74705SXin Li // CHECK_PENTIUM3_M64: error: {{.*}} 221*67e74705SXin Li // 222*67e74705SXin Li // RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \ 223*67e74705SXin Li // RUN: -target i386-unknown-linux \ 224*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M32 225*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __MMX__ 1 226*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __SSE__ 1 227*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __i386 1 228*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __i386__ 1 229*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __i686 1 230*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __i686__ 1 231*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __pentiumpro 1 232*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1 233*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __tune_i686__ 1 234*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1 235*67e74705SXin Li // CHECK_PENTIUM3M_M32: #define i386 1 236*67e74705SXin Li // RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \ 237*67e74705SXin Li // RUN: -target i386-unknown-linux \ 238*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M64 239*67e74705SXin Li // CHECK_PENTIUM3M_M64: error: {{.*}} 240*67e74705SXin Li // 241*67e74705SXin Li // RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \ 242*67e74705SXin Li // RUN: -target i386-unknown-linux \ 243*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M32 244*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __MMX__ 1 245*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __SSE2__ 1 246*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __SSE__ 1 247*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __i386 1 248*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __i386__ 1 249*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __i686 1 250*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __i686__ 1 251*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __pentiumpro 1 252*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1 253*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __tune_i686__ 1 254*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1 255*67e74705SXin Li // CHECK_PENTIUM_M_M32: #define i386 1 256*67e74705SXin Li // RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \ 257*67e74705SXin Li // RUN: -target i386-unknown-linux \ 258*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M64 259*67e74705SXin Li // CHECK_PENTIUM_M_M64: error: {{.*}} 260*67e74705SXin Li // 261*67e74705SXin Li // RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \ 262*67e74705SXin Li // RUN: -target i386-unknown-linux \ 263*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M32 264*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __MMX__ 1 265*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __SSE2__ 1 266*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __SSE__ 1 267*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __i386 1 268*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __i386__ 1 269*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __pentium4 1 270*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __pentium4__ 1 271*67e74705SXin Li // CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1 272*67e74705SXin Li // CHECK_PENTIUM4_M32: #define i386 1 273*67e74705SXin Li // RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \ 274*67e74705SXin Li // RUN: -target i386-unknown-linux \ 275*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M64 276*67e74705SXin Li // CHECK_PENTIUM4_M64: error: {{.*}} 277*67e74705SXin Li // 278*67e74705SXin Li // RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \ 279*67e74705SXin Li // RUN: -target i386-unknown-linux \ 280*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M32 281*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __MMX__ 1 282*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __SSE2__ 1 283*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __SSE__ 1 284*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __i386 1 285*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __i386__ 1 286*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __pentium4 1 287*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __pentium4__ 1 288*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1 289*67e74705SXin Li // CHECK_PENTIUM4M_M32: #define i386 1 290*67e74705SXin Li // RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \ 291*67e74705SXin Li // RUN: -target i386-unknown-linux \ 292*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M64 293*67e74705SXin Li // CHECK_PENTIUM4M_M64: error: {{.*}} 294*67e74705SXin Li // 295*67e74705SXin Li // RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \ 296*67e74705SXin Li // RUN: -target i386-unknown-linux \ 297*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M32 298*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __MMX__ 1 299*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __SSE2__ 1 300*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __SSE3__ 1 301*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __SSE__ 1 302*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __i386 1 303*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __i386__ 1 304*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __nocona 1 305*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __nocona__ 1 306*67e74705SXin Li // CHECK_PRESCOTT_M32: #define __tune_nocona__ 1 307*67e74705SXin Li // CHECK_PRESCOTT_M32: #define i386 1 308*67e74705SXin Li // RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \ 309*67e74705SXin Li // RUN: -target i386-unknown-linux \ 310*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M64 311*67e74705SXin Li // CHECK_PRESCOTT_M64: error: {{.*}} 312*67e74705SXin Li // 313*67e74705SXin Li // RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \ 314*67e74705SXin Li // RUN: -target i386-unknown-linux \ 315*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M32 316*67e74705SXin Li // CHECK_NOCONA_M32: #define __MMX__ 1 317*67e74705SXin Li // CHECK_NOCONA_M32: #define __SSE2__ 1 318*67e74705SXin Li // CHECK_NOCONA_M32: #define __SSE3__ 1 319*67e74705SXin Li // CHECK_NOCONA_M32: #define __SSE__ 1 320*67e74705SXin Li // CHECK_NOCONA_M32: #define __i386 1 321*67e74705SXin Li // CHECK_NOCONA_M32: #define __i386__ 1 322*67e74705SXin Li // CHECK_NOCONA_M32: #define __nocona 1 323*67e74705SXin Li // CHECK_NOCONA_M32: #define __nocona__ 1 324*67e74705SXin Li // CHECK_NOCONA_M32: #define __tune_nocona__ 1 325*67e74705SXin Li // CHECK_NOCONA_M32: #define i386 1 326*67e74705SXin Li // RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \ 327*67e74705SXin Li // RUN: -target i386-unknown-linux \ 328*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M64 329*67e74705SXin Li // CHECK_NOCONA_M64: #define __MMX__ 1 330*67e74705SXin Li // CHECK_NOCONA_M64: #define __SSE2_MATH__ 1 331*67e74705SXin Li // CHECK_NOCONA_M64: #define __SSE2__ 1 332*67e74705SXin Li // CHECK_NOCONA_M64: #define __SSE3__ 1 333*67e74705SXin Li // CHECK_NOCONA_M64: #define __SSE_MATH__ 1 334*67e74705SXin Li // CHECK_NOCONA_M64: #define __SSE__ 1 335*67e74705SXin Li // CHECK_NOCONA_M64: #define __amd64 1 336*67e74705SXin Li // CHECK_NOCONA_M64: #define __amd64__ 1 337*67e74705SXin Li // CHECK_NOCONA_M64: #define __nocona 1 338*67e74705SXin Li // CHECK_NOCONA_M64: #define __nocona__ 1 339*67e74705SXin Li // CHECK_NOCONA_M64: #define __tune_nocona__ 1 340*67e74705SXin Li // CHECK_NOCONA_M64: #define __x86_64 1 341*67e74705SXin Li // CHECK_NOCONA_M64: #define __x86_64__ 1 342*67e74705SXin Li // 343*67e74705SXin Li // RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \ 344*67e74705SXin Li // RUN: -target i386-unknown-linux \ 345*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M32 346*67e74705SXin Li // CHECK_CORE2_M32: #define __MMX__ 1 347*67e74705SXin Li // CHECK_CORE2_M32: #define __SSE2__ 1 348*67e74705SXin Li // CHECK_CORE2_M32: #define __SSE3__ 1 349*67e74705SXin Li // CHECK_CORE2_M32: #define __SSE__ 1 350*67e74705SXin Li // CHECK_CORE2_M32: #define __SSSE3__ 1 351*67e74705SXin Li // CHECK_CORE2_M32: #define __core2 1 352*67e74705SXin Li // CHECK_CORE2_M32: #define __core2__ 1 353*67e74705SXin Li // CHECK_CORE2_M32: #define __i386 1 354*67e74705SXin Li // CHECK_CORE2_M32: #define __i386__ 1 355*67e74705SXin Li // CHECK_CORE2_M32: #define __tune_core2__ 1 356*67e74705SXin Li // CHECK_CORE2_M32: #define i386 1 357*67e74705SXin Li // RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \ 358*67e74705SXin Li // RUN: -target i386-unknown-linux \ 359*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M64 360*67e74705SXin Li // CHECK_CORE2_M64: #define __MMX__ 1 361*67e74705SXin Li // CHECK_CORE2_M64: #define __SSE2_MATH__ 1 362*67e74705SXin Li // CHECK_CORE2_M64: #define __SSE2__ 1 363*67e74705SXin Li // CHECK_CORE2_M64: #define __SSE3__ 1 364*67e74705SXin Li // CHECK_CORE2_M64: #define __SSE_MATH__ 1 365*67e74705SXin Li // CHECK_CORE2_M64: #define __SSE__ 1 366*67e74705SXin Li // CHECK_CORE2_M64: #define __SSSE3__ 1 367*67e74705SXin Li // CHECK_CORE2_M64: #define __amd64 1 368*67e74705SXin Li // CHECK_CORE2_M64: #define __amd64__ 1 369*67e74705SXin Li // CHECK_CORE2_M64: #define __core2 1 370*67e74705SXin Li // CHECK_CORE2_M64: #define __core2__ 1 371*67e74705SXin Li // CHECK_CORE2_M64: #define __tune_core2__ 1 372*67e74705SXin Li // CHECK_CORE2_M64: #define __x86_64 1 373*67e74705SXin Li // CHECK_CORE2_M64: #define __x86_64__ 1 374*67e74705SXin Li // 375*67e74705SXin Li // RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \ 376*67e74705SXin Li // RUN: -target i386-unknown-linux \ 377*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M32 378*67e74705SXin Li // CHECK_COREI7_M32: #define __MMX__ 1 379*67e74705SXin Li // CHECK_COREI7_M32: #define __POPCNT__ 1 380*67e74705SXin Li // CHECK_COREI7_M32: #define __SSE2__ 1 381*67e74705SXin Li // CHECK_COREI7_M32: #define __SSE3__ 1 382*67e74705SXin Li // CHECK_COREI7_M32: #define __SSE4_1__ 1 383*67e74705SXin Li // CHECK_COREI7_M32: #define __SSE4_2__ 1 384*67e74705SXin Li // CHECK_COREI7_M32: #define __SSE__ 1 385*67e74705SXin Li // CHECK_COREI7_M32: #define __SSSE3__ 1 386*67e74705SXin Li // CHECK_COREI7_M32: #define __corei7 1 387*67e74705SXin Li // CHECK_COREI7_M32: #define __corei7__ 1 388*67e74705SXin Li // CHECK_COREI7_M32: #define __i386 1 389*67e74705SXin Li // CHECK_COREI7_M32: #define __i386__ 1 390*67e74705SXin Li // CHECK_COREI7_M32: #define __tune_corei7__ 1 391*67e74705SXin Li // CHECK_COREI7_M32: #define i386 1 392*67e74705SXin Li // RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \ 393*67e74705SXin Li // RUN: -target i386-unknown-linux \ 394*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M64 395*67e74705SXin Li // CHECK_COREI7_M64: #define __MMX__ 1 396*67e74705SXin Li // CHECK_COREI7_M64: #define __POPCNT__ 1 397*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE2_MATH__ 1 398*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE2__ 1 399*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE3__ 1 400*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE4_1__ 1 401*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE4_2__ 1 402*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE_MATH__ 1 403*67e74705SXin Li // CHECK_COREI7_M64: #define __SSE__ 1 404*67e74705SXin Li // CHECK_COREI7_M64: #define __SSSE3__ 1 405*67e74705SXin Li // CHECK_COREI7_M64: #define __amd64 1 406*67e74705SXin Li // CHECK_COREI7_M64: #define __amd64__ 1 407*67e74705SXin Li // CHECK_COREI7_M64: #define __corei7 1 408*67e74705SXin Li // CHECK_COREI7_M64: #define __corei7__ 1 409*67e74705SXin Li // CHECK_COREI7_M64: #define __tune_corei7__ 1 410*67e74705SXin Li // CHECK_COREI7_M64: #define __x86_64 1 411*67e74705SXin Li // CHECK_COREI7_M64: #define __x86_64__ 1 412*67e74705SXin Li // 413*67e74705SXin Li // RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \ 414*67e74705SXin Li // RUN: -target i386-unknown-linux \ 415*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M32 416*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __AES__ 1 417*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __AVX__ 1 418*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __MMX__ 1 419*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1 420*67e74705SXin Li // CHECK_COREI7_AVX_M32-NOT: __RDRND__ 421*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __POPCNT__ 1 422*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSE2__ 1 423*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSE3__ 1 424*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1 425*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1 426*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSE__ 1 427*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __SSSE3__ 1 428*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __XSAVEOPT__ 1 429*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __XSAVE__ 1 430*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __corei7 1 431*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __corei7__ 1 432*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __i386 1 433*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __i386__ 1 434*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1 435*67e74705SXin Li // CHECK_COREI7_AVX_M32: #define i386 1 436*67e74705SXin Li // RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \ 437*67e74705SXin Li // RUN: -target i386-unknown-linux \ 438*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M64 439*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __AES__ 1 440*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __AVX__ 1 441*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __MMX__ 1 442*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1 443*67e74705SXin Li // CHECK_COREI7_AVX_M64-NOT: __RDRND__ 444*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __POPCNT__ 1 445*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1 446*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE2__ 1 447*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE3__ 1 448*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1 449*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1 450*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1 451*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSE__ 1 452*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __SSSE3__ 1 453*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __XSAVEOPT__ 1 454*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __XSAVE__ 1 455*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __amd64 1 456*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __amd64__ 1 457*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __corei7 1 458*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __corei7__ 1 459*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1 460*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __x86_64 1 461*67e74705SXin Li // CHECK_COREI7_AVX_M64: #define __x86_64__ 1 462*67e74705SXin Li // 463*67e74705SXin Li // RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \ 464*67e74705SXin Li // RUN: -target i386-unknown-linux \ 465*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M32 466*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __AES__ 1 467*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __AVX__ 1 468*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __F16C__ 1 469*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __MMX__ 1 470*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1 471*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __RDRND__ 1 472*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSE2__ 1 473*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSE3__ 1 474*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1 475*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1 476*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSE__ 1 477*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1 478*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __XSAVEOPT__ 1 479*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __XSAVE__ 1 480*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __corei7 1 481*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __corei7__ 1 482*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __i386 1 483*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __i386__ 1 484*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1 485*67e74705SXin Li // CHECK_CORE_AVX_I_M32: #define i386 1 486*67e74705SXin Li // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \ 487*67e74705SXin Li // RUN: -target i386-unknown-linux \ 488*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M64 489*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __AES__ 1 490*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __AVX__ 1 491*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __F16C__ 1 492*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __MMX__ 1 493*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1 494*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __RDRND__ 1 495*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1 496*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE2__ 1 497*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE3__ 1 498*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1 499*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1 500*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1 501*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSE__ 1 502*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1 503*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __XSAVEOPT__ 1 504*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __XSAVE__ 1 505*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __amd64 1 506*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __amd64__ 1 507*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __corei7 1 508*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __corei7__ 1 509*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1 510*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __x86_64 1 511*67e74705SXin Li // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1 512*67e74705SXin Li // 513*67e74705SXin Li // RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \ 514*67e74705SXin Li // RUN: -target i386-unknown-linux \ 515*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M32 516*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __AES__ 1 517*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __AVX2__ 1 518*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __AVX__ 1 519*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __BMI2__ 1 520*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __BMI__ 1 521*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __F16C__ 1 522*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __FMA__ 1 523*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __LZCNT__ 1 524*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __MMX__ 1 525*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1 526*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __POPCNT__ 1 527*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __RDRND__ 1 528*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __RTM__ 1 529*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSE2__ 1 530*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSE3__ 1 531*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1 532*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1 533*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSE__ 1 534*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __SSSE3__ 1 535*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __XSAVEOPT__ 1 536*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __XSAVE__ 1 537*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __corei7 1 538*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __corei7__ 1 539*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __i386 1 540*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __i386__ 1 541*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1 542*67e74705SXin Li // CHECK_CORE_AVX2_M32: #define i386 1 543*67e74705SXin Li // RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \ 544*67e74705SXin Li // RUN: -target i386-unknown-linux \ 545*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M64 546*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __AES__ 1 547*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __AVX2__ 1 548*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __AVX__ 1 549*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __BMI2__ 1 550*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __BMI__ 1 551*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __F16C__ 1 552*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __FMA__ 1 553*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __LZCNT__ 1 554*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __MMX__ 1 555*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1 556*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __POPCNT__ 1 557*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __RDRND__ 1 558*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __RTM__ 1 559*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1 560*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE2__ 1 561*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE3__ 1 562*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1 563*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1 564*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1 565*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSE__ 1 566*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __SSSE3__ 1 567*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __XSAVEOPT__ 1 568*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __XSAVE__ 1 569*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __amd64 1 570*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __amd64__ 1 571*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __corei7 1 572*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __corei7__ 1 573*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1 574*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __x86_64 1 575*67e74705SXin Li // CHECK_CORE_AVX2_M64: #define __x86_64__ 1 576*67e74705SXin Li // 577*67e74705SXin Li // RUN: %clang -march=broadwell -m32 -E -dM %s -o - 2>&1 \ 578*67e74705SXin Li // RUN: -target i386-unknown-linux \ 579*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M32 580*67e74705SXin Li // CHECK_BROADWELL_M32: #define __ADX__ 1 581*67e74705SXin Li // CHECK_BROADWELL_M32: #define __AES__ 1 582*67e74705SXin Li // CHECK_BROADWELL_M32: #define __AVX2__ 1 583*67e74705SXin Li // CHECK_BROADWELL_M32: #define __AVX__ 1 584*67e74705SXin Li // CHECK_BROADWELL_M32: #define __BMI2__ 1 585*67e74705SXin Li // CHECK_BROADWELL_M32: #define __BMI__ 1 586*67e74705SXin Li // CHECK_BROADWELL_M32: #define __F16C__ 1 587*67e74705SXin Li // CHECK_BROADWELL_M32: #define __FMA__ 1 588*67e74705SXin Li // CHECK_BROADWELL_M32: #define __LZCNT__ 1 589*67e74705SXin Li // CHECK_BROADWELL_M32: #define __MMX__ 1 590*67e74705SXin Li // CHECK_BROADWELL_M32: #define __PCLMUL__ 1 591*67e74705SXin Li // CHECK_BROADWELL_M32: #define __POPCNT__ 1 592*67e74705SXin Li // CHECK_BROADWELL_M32: #define __RDRND__ 1 593*67e74705SXin Li // CHECK_BROADWELL_M32: #define __RDSEED__ 1 594*67e74705SXin Li // CHECK_BROADWELL_M32: #define __RTM__ 1 595*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSE2__ 1 596*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSE3__ 1 597*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSE4_1__ 1 598*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSE4_2__ 1 599*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSE__ 1 600*67e74705SXin Li // CHECK_BROADWELL_M32: #define __SSSE3__ 1 601*67e74705SXin Li // CHECK_BROADWELL_M32: #define __XSAVEOPT__ 1 602*67e74705SXin Li // CHECK_BROADWELL_M32: #define __XSAVE__ 1 603*67e74705SXin Li // CHECK_BROADWELL_M32: #define __corei7 1 604*67e74705SXin Li // CHECK_BROADWELL_M32: #define __corei7__ 1 605*67e74705SXin Li // CHECK_BROADWELL_M32: #define __i386 1 606*67e74705SXin Li // CHECK_BROADWELL_M32: #define __i386__ 1 607*67e74705SXin Li // CHECK_BROADWELL_M32: #define __tune_corei7__ 1 608*67e74705SXin Li // CHECK_BROADWELL_M32: #define i386 1 609*67e74705SXin Li // RUN: %clang -march=broadwell -m64 -E -dM %s -o - 2>&1 \ 610*67e74705SXin Li // RUN: -target i386-unknown-linux \ 611*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M64 612*67e74705SXin Li // CHECK_BROADWELL_M64: #define __ADX__ 1 613*67e74705SXin Li // CHECK_BROADWELL_M64: #define __AES__ 1 614*67e74705SXin Li // CHECK_BROADWELL_M64: #define __AVX2__ 1 615*67e74705SXin Li // CHECK_BROADWELL_M64: #define __AVX__ 1 616*67e74705SXin Li // CHECK_BROADWELL_M64: #define __BMI2__ 1 617*67e74705SXin Li // CHECK_BROADWELL_M64: #define __BMI__ 1 618*67e74705SXin Li // CHECK_BROADWELL_M64: #define __F16C__ 1 619*67e74705SXin Li // CHECK_BROADWELL_M64: #define __FMA__ 1 620*67e74705SXin Li // CHECK_BROADWELL_M64: #define __LZCNT__ 1 621*67e74705SXin Li // CHECK_BROADWELL_M64: #define __MMX__ 1 622*67e74705SXin Li // CHECK_BROADWELL_M64: #define __PCLMUL__ 1 623*67e74705SXin Li // CHECK_BROADWELL_M64: #define __POPCNT__ 1 624*67e74705SXin Li // CHECK_BROADWELL_M64: #define __RDRND__ 1 625*67e74705SXin Li // CHECK_BROADWELL_M64: #define __RDSEED__ 1 626*67e74705SXin Li // CHECK_BROADWELL_M64: #define __RTM__ 1 627*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE2_MATH__ 1 628*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE2__ 1 629*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE3__ 1 630*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE4_1__ 1 631*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE4_2__ 1 632*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE_MATH__ 1 633*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSE__ 1 634*67e74705SXin Li // CHECK_BROADWELL_M64: #define __SSSE3__ 1 635*67e74705SXin Li // CHECK_BROADWELL_M64: #define __XSAVEOPT__ 1 636*67e74705SXin Li // CHECK_BROADWELL_M64: #define __XSAVE__ 1 637*67e74705SXin Li // CHECK_BROADWELL_M64: #define __amd64 1 638*67e74705SXin Li // CHECK_BROADWELL_M64: #define __amd64__ 1 639*67e74705SXin Li // CHECK_BROADWELL_M64: #define __corei7 1 640*67e74705SXin Li // CHECK_BROADWELL_M64: #define __corei7__ 1 641*67e74705SXin Li // CHECK_BROADWELL_M64: #define __tune_corei7__ 1 642*67e74705SXin Li // CHECK_BROADWELL_M64: #define __x86_64 1 643*67e74705SXin Li // CHECK_BROADWELL_M64: #define __x86_64__ 1 644*67e74705SXin Li // 645*67e74705SXin Li // RUN: %clang -march=skylake -m32 -E -dM %s -o - 2>&1 \ 646*67e74705SXin Li // RUN: -target i386-unknown-linux \ 647*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M32 648*67e74705SXin Li // CHECK_SKL_M32: #define __ADX__ 1 649*67e74705SXin Li // CHECK_SKL_M32: #define __AES__ 1 650*67e74705SXin Li // CHECK_SKL_M32: #define __AVX2__ 1 651*67e74705SXin Li // CHECK_SKL_M32: #define __AVX__ 1 652*67e74705SXin Li // CHECK_SKL_M32: #define __BMI2__ 1 653*67e74705SXin Li // CHECK_SKL_M32: #define __BMI__ 1 654*67e74705SXin Li // CHECK_SKL_M32: #define __F16C__ 1 655*67e74705SXin Li // CHECK_SKL_M32: #define __FMA__ 1 656*67e74705SXin Li // CHECK_SKL_M32: #define __LZCNT__ 1 657*67e74705SXin Li // CHECK_SKL_M32: #define __MMX__ 1 658*67e74705SXin Li // CHECK_SKL_M32: #define __PCLMUL__ 1 659*67e74705SXin Li // CHECK_SKL_M32: #define __POPCNT__ 1 660*67e74705SXin Li // CHECK_SKL_M32: #define __RDRND__ 1 661*67e74705SXin Li // CHECK_SKL_M32: #define __RDSEED__ 1 662*67e74705SXin Li // CHECK_SKL_M32: #define __RTM__ 1 663*67e74705SXin Li // CHECK_SKL_M32: #define __SSE2__ 1 664*67e74705SXin Li // CHECK_SKL_M32: #define __SSE3__ 1 665*67e74705SXin Li // CHECK_SKL_M32: #define __SSE4_1__ 1 666*67e74705SXin Li // CHECK_SKL_M32: #define __SSE4_2__ 1 667*67e74705SXin Li // CHECK_SKL_M32: #define __SSE__ 1 668*67e74705SXin Li // CHECK_SKL_M32: #define __SSSE3__ 1 669*67e74705SXin Li // CHECK_SKL_M32: #define __XSAVEC__ 1 670*67e74705SXin Li // CHECK_SKL_M32: #define __XSAVEOPT__ 1 671*67e74705SXin Li // CHECK_SKL_M32: #define __XSAVES__ 1 672*67e74705SXin Li // CHECK_SKL_M32: #define __XSAVE__ 1 673*67e74705SXin Li // CHECK_SKL_M32: #define i386 1 674*67e74705SXin Li 675*67e74705SXin Li // RUN: %clang -march=skylake -m64 -E -dM %s -o - 2>&1 \ 676*67e74705SXin Li // RUN: -target i386-unknown-linux \ 677*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M64 678*67e74705SXin Li // CHECK_SKL_M64: #define __ADX__ 1 679*67e74705SXin Li // CHECK_SKL_M64: #define __AES__ 1 680*67e74705SXin Li // CHECK_SKL_M64: #define __AVX2__ 1 681*67e74705SXin Li // CHECK_SKL_M64: #define __AVX__ 1 682*67e74705SXin Li // CHECK_SKL_M64: #define __BMI2__ 1 683*67e74705SXin Li // CHECK_SKL_M64: #define __BMI__ 1 684*67e74705SXin Li // CHECK_SKL_M64: #define __F16C__ 1 685*67e74705SXin Li // CHECK_SKL_M64: #define __FMA__ 1 686*67e74705SXin Li // CHECK_SKL_M64: #define __LZCNT__ 1 687*67e74705SXin Li // CHECK_SKL_M64: #define __MMX__ 1 688*67e74705SXin Li // CHECK_SKL_M64: #define __PCLMUL__ 1 689*67e74705SXin Li // CHECK_SKL_M64: #define __POPCNT__ 1 690*67e74705SXin Li // CHECK_SKL_M64: #define __RDRND__ 1 691*67e74705SXin Li // CHECK_SKL_M64: #define __RDSEED__ 1 692*67e74705SXin Li // CHECK_SKL_M64: #define __RTM__ 1 693*67e74705SXin Li // CHECK_SKL_M64: #define __SSE2_MATH__ 1 694*67e74705SXin Li // CHECK_SKL_M64: #define __SSE2__ 1 695*67e74705SXin Li // CHECK_SKL_M64: #define __SSE3__ 1 696*67e74705SXin Li // CHECK_SKL_M64: #define __SSE4_1__ 1 697*67e74705SXin Li // CHECK_SKL_M64: #define __SSE4_2__ 1 698*67e74705SXin Li // CHECK_SKL_M64: #define __SSE_MATH__ 1 699*67e74705SXin Li // CHECK_SKL_M64: #define __SSE__ 1 700*67e74705SXin Li // CHECK_SKL_M64: #define __SSSE3__ 1 701*67e74705SXin Li // CHECK_SKL_M64: #define __XSAVEC__ 1 702*67e74705SXin Li // CHECK_SKL_M64: #define __XSAVEOPT__ 1 703*67e74705SXin Li // CHECK_SKL_M64: #define __XSAVES__ 1 704*67e74705SXin Li // CHECK_SKL_M64: #define __XSAVE__ 1 705*67e74705SXin Li // CHECK_SKL_M64: #define __amd64 1 706*67e74705SXin Li // CHECK_SKL_M64: #define __amd64__ 1 707*67e74705SXin Li // CHECK_SKL_M64: #define __x86_64 1 708*67e74705SXin Li // CHECK_SKL_M64: #define __x86_64__ 1 709*67e74705SXin Li 710*67e74705SXin Li // RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \ 711*67e74705SXin Li // RUN: -target i386-unknown-linux \ 712*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M32 713*67e74705SXin Li // CHECK_KNL_M32: #define __AES__ 1 714*67e74705SXin Li // CHECK_KNL_M32: #define __AVX2__ 1 715*67e74705SXin Li // CHECK_KNL_M32: #define __AVX512CD__ 1 716*67e74705SXin Li // CHECK_KNL_M32: #define __AVX512ER__ 1 717*67e74705SXin Li // CHECK_KNL_M32: #define __AVX512F__ 1 718*67e74705SXin Li // CHECK_KNL_M32: #define __AVX512PF__ 1 719*67e74705SXin Li // CHECK_KNL_M32: #define __AVX__ 1 720*67e74705SXin Li // CHECK_KNL_M32: #define __BMI2__ 1 721*67e74705SXin Li // CHECK_KNL_M32: #define __BMI__ 1 722*67e74705SXin Li // CHECK_KNL_M32: #define __F16C__ 1 723*67e74705SXin Li // CHECK_KNL_M32: #define __FMA__ 1 724*67e74705SXin Li // CHECK_KNL_M32: #define __LZCNT__ 1 725*67e74705SXin Li // CHECK_KNL_M32: #define __MMX__ 1 726*67e74705SXin Li // CHECK_KNL_M32: #define __PCLMUL__ 1 727*67e74705SXin Li // CHECK_KNL_M32: #define __POPCNT__ 1 728*67e74705SXin Li // CHECK_KNL_M32: #define __RDRND__ 1 729*67e74705SXin Li // CHECK_KNL_M32: #define __RTM__ 1 730*67e74705SXin Li // CHECK_KNL_M32: #define __SSE2__ 1 731*67e74705SXin Li // CHECK_KNL_M32: #define __SSE3__ 1 732*67e74705SXin Li // CHECK_KNL_M32: #define __SSE4_1__ 1 733*67e74705SXin Li // CHECK_KNL_M32: #define __SSE4_2__ 1 734*67e74705SXin Li // CHECK_KNL_M32: #define __SSE__ 1 735*67e74705SXin Li // CHECK_KNL_M32: #define __SSSE3__ 1 736*67e74705SXin Li // CHECK_KNL_M32: #define __XSAVEOPT__ 1 737*67e74705SXin Li // CHECK_KNL_M32: #define __XSAVE__ 1 738*67e74705SXin Li // CHECK_KNL_M32: #define __i386 1 739*67e74705SXin Li // CHECK_KNL_M32: #define __i386__ 1 740*67e74705SXin Li // CHECK_KNL_M32: #define __knl 1 741*67e74705SXin Li // CHECK_KNL_M32: #define __knl__ 1 742*67e74705SXin Li // CHECK_KNL_M32: #define __tune_knl__ 1 743*67e74705SXin Li // CHECK_KNL_M32: #define i386 1 744*67e74705SXin Li 745*67e74705SXin Li // RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \ 746*67e74705SXin Li // RUN: -target i386-unknown-linux \ 747*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M64 748*67e74705SXin Li // CHECK_KNL_M64: #define __AES__ 1 749*67e74705SXin Li // CHECK_KNL_M64: #define __AVX2__ 1 750*67e74705SXin Li // CHECK_KNL_M64: #define __AVX512CD__ 1 751*67e74705SXin Li // CHECK_KNL_M64: #define __AVX512ER__ 1 752*67e74705SXin Li // CHECK_KNL_M64: #define __AVX512F__ 1 753*67e74705SXin Li // CHECK_KNL_M64: #define __AVX512PF__ 1 754*67e74705SXin Li // CHECK_KNL_M64: #define __AVX__ 1 755*67e74705SXin Li // CHECK_KNL_M64: #define __BMI2__ 1 756*67e74705SXin Li // CHECK_KNL_M64: #define __BMI__ 1 757*67e74705SXin Li // CHECK_KNL_M64: #define __F16C__ 1 758*67e74705SXin Li // CHECK_KNL_M64: #define __FMA__ 1 759*67e74705SXin Li // CHECK_KNL_M64: #define __LZCNT__ 1 760*67e74705SXin Li // CHECK_KNL_M64: #define __MMX__ 1 761*67e74705SXin Li // CHECK_KNL_M64: #define __PCLMUL__ 1 762*67e74705SXin Li // CHECK_KNL_M64: #define __POPCNT__ 1 763*67e74705SXin Li // CHECK_KNL_M64: #define __RDRND__ 1 764*67e74705SXin Li // CHECK_KNL_M64: #define __RTM__ 1 765*67e74705SXin Li // CHECK_KNL_M64: #define __SSE2_MATH__ 1 766*67e74705SXin Li // CHECK_KNL_M64: #define __SSE2__ 1 767*67e74705SXin Li // CHECK_KNL_M64: #define __SSE3__ 1 768*67e74705SXin Li // CHECK_KNL_M64: #define __SSE4_1__ 1 769*67e74705SXin Li // CHECK_KNL_M64: #define __SSE4_2__ 1 770*67e74705SXin Li // CHECK_KNL_M64: #define __SSE_MATH__ 1 771*67e74705SXin Li // CHECK_KNL_M64: #define __SSE__ 1 772*67e74705SXin Li // CHECK_KNL_M64: #define __SSSE3__ 1 773*67e74705SXin Li // CHECK_KNL_M64: #define __XSAVEOPT__ 1 774*67e74705SXin Li // CHECK_KNL_M64: #define __XSAVE__ 1 775*67e74705SXin Li // CHECK_KNL_M64: #define __amd64 1 776*67e74705SXin Li // CHECK_KNL_M64: #define __amd64__ 1 777*67e74705SXin Li // CHECK_KNL_M64: #define __knl 1 778*67e74705SXin Li // CHECK_KNL_M64: #define __knl__ 1 779*67e74705SXin Li // CHECK_KNL_M64: #define __tune_knl__ 1 780*67e74705SXin Li // CHECK_KNL_M64: #define __x86_64 1 781*67e74705SXin Li // CHECK_KNL_M64: #define __x86_64__ 1 782*67e74705SXin Li // 783*67e74705SXin Li // RUN: %clang -march=skylake-avx512 -m32 -E -dM %s -o - 2>&1 \ 784*67e74705SXin Li // RUN: -target i386-unknown-linux \ 785*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M32 786*67e74705SXin Li // CHECK_SKX_M32: #define __AES__ 1 787*67e74705SXin Li // CHECK_SKX_M32: #define __AVX2__ 1 788*67e74705SXin Li // CHECK_SKX_M32: #define __AVX512BW__ 1 789*67e74705SXin Li // CHECK_SKX_M32: #define __AVX512CD__ 1 790*67e74705SXin Li // CHECK_SKX_M32: #define __AVX512DQ__ 1 791*67e74705SXin Li // CHECK_SKX_M32: #define __AVX512F__ 1 792*67e74705SXin Li // CHECK_SKX_M32: #define __AVX512VL__ 1 793*67e74705SXin Li // CHECK_SKX_M32: #define __AVX__ 1 794*67e74705SXin Li // CHECK_SKX_M32: #define __BMI2__ 1 795*67e74705SXin Li // CHECK_SKX_M32: #define __BMI__ 1 796*67e74705SXin Li // CHECK_SKX_M32: #define __F16C__ 1 797*67e74705SXin Li // CHECK_SKX_M32: #define __FMA__ 1 798*67e74705SXin Li // CHECK_SKX_M32: #define __LZCNT__ 1 799*67e74705SXin Li // CHECK_SKX_M32: #define __MMX__ 1 800*67e74705SXin Li // CHECK_SKX_M32: #define __PCLMUL__ 1 801*67e74705SXin Li // CHECK_SKX_M32: #define __POPCNT__ 1 802*67e74705SXin Li // CHECK_SKX_M32: #define __RDRND__ 1 803*67e74705SXin Li // CHECK_SKX_M32: #define __RTM__ 1 804*67e74705SXin Li // CHECK_SKX_M32: #define __SSE2__ 1 805*67e74705SXin Li // CHECK_SKX_M32: #define __SSE3__ 1 806*67e74705SXin Li // CHECK_SKX_M32: #define __SSE4_1__ 1 807*67e74705SXin Li // CHECK_SKX_M32: #define __SSE4_2__ 1 808*67e74705SXin Li // CHECK_SKX_M32: #define __SSE__ 1 809*67e74705SXin Li // CHECK_SKX_M32: #define __SSSE3__ 1 810*67e74705SXin Li // CHECK_SKX_M32: #define __XSAVEC__ 1 811*67e74705SXin Li // CHECK_SKX_M32: #define __XSAVEOPT__ 1 812*67e74705SXin Li // CHECK_SKX_M32: #define __XSAVES__ 1 813*67e74705SXin Li // CHECK_SKX_M32: #define __XSAVE__ 1 814*67e74705SXin Li // CHECK_SKX_M32: #define __i386 1 815*67e74705SXin Li // CHECK_SKX_M32: #define __i386__ 1 816*67e74705SXin Li // CHECK_SKX_M32: #define __skx 1 817*67e74705SXin Li // CHECK_SKX_M32: #define __skx__ 1 818*67e74705SXin Li // CHECK_SKX_M32: #define __tune_skx__ 1 819*67e74705SXin Li // CHECK_SKX_M32: #define i386 1 820*67e74705SXin Li 821*67e74705SXin Li // RUN: %clang -march=skylake-avx512 -m64 -E -dM %s -o - 2>&1 \ 822*67e74705SXin Li // RUN: -target i386-unknown-linux \ 823*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M64 824*67e74705SXin Li // CHECK_SKX_M64: #define __AES__ 1 825*67e74705SXin Li // CHECK_SKX_M64: #define __AVX2__ 1 826*67e74705SXin Li // CHECK_SKX_M64: #define __AVX512BW__ 1 827*67e74705SXin Li // CHECK_SKX_M64: #define __AVX512CD__ 1 828*67e74705SXin Li // CHECK_SKX_M64: #define __AVX512DQ__ 1 829*67e74705SXin Li // CHECK_SKX_M64: #define __AVX512F__ 1 830*67e74705SXin Li // CHECK_SKX_M64: #define __AVX512VL__ 1 831*67e74705SXin Li // CHECK_SKX_M64: #define __AVX__ 1 832*67e74705SXin Li // CHECK_SKX_M64: #define __BMI2__ 1 833*67e74705SXin Li // CHECK_SKX_M64: #define __BMI__ 1 834*67e74705SXin Li // CHECK_SKX_M64: #define __F16C__ 1 835*67e74705SXin Li // CHECK_SKX_M64: #define __FMA__ 1 836*67e74705SXin Li // CHECK_SKX_M64: #define __LZCNT__ 1 837*67e74705SXin Li // CHECK_SKX_M64: #define __MMX__ 1 838*67e74705SXin Li // CHECK_SKX_M64: #define __PCLMUL__ 1 839*67e74705SXin Li // CHECK_SKX_M64: #define __POPCNT__ 1 840*67e74705SXin Li // CHECK_SKX_M64: #define __RDRND__ 1 841*67e74705SXin Li // CHECK_SKX_M64: #define __RTM__ 1 842*67e74705SXin Li // CHECK_SKX_M64: #define __SSE2_MATH__ 1 843*67e74705SXin Li // CHECK_SKX_M64: #define __SSE2__ 1 844*67e74705SXin Li // CHECK_SKX_M64: #define __SSE3__ 1 845*67e74705SXin Li // CHECK_SKX_M64: #define __SSE4_1__ 1 846*67e74705SXin Li // CHECK_SKX_M64: #define __SSE4_2__ 1 847*67e74705SXin Li // CHECK_SKX_M64: #define __SSE_MATH__ 1 848*67e74705SXin Li // CHECK_SKX_M64: #define __SSE__ 1 849*67e74705SXin Li // CHECK_SKX_M64: #define __SSSE3__ 1 850*67e74705SXin Li // CHECK_SKX_M64: #define __XSAVEC__ 1 851*67e74705SXin Li // CHECK_SKX_M64: #define __XSAVEOPT__ 1 852*67e74705SXin Li // CHECK_SKX_M64: #define __XSAVES__ 1 853*67e74705SXin Li // CHECK_SKX_M64: #define __XSAVE__ 1 854*67e74705SXin Li // CHECK_SKX_M64: #define __amd64 1 855*67e74705SXin Li // CHECK_SKX_M64: #define __amd64__ 1 856*67e74705SXin Li // CHECK_SKX_M64: #define __skx 1 857*67e74705SXin Li // CHECK_SKX_M64: #define __skx__ 1 858*67e74705SXin Li // CHECK_SKX_M64: #define __tune_skx__ 1 859*67e74705SXin Li // CHECK_SKX_M64: #define __x86_64 1 860*67e74705SXin Li // CHECK_SKX_M64: #define __x86_64__ 1 861*67e74705SXin Li // 862*67e74705SXin Li // RUN: %clang -march=cannonlake -m32 -E -dM %s -o - 2>&1 \ 863*67e74705SXin Li // RUN: -target i386-unknown-linux \ 864*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M32 865*67e74705SXin Li // CHECK_CNL_M32: #define __AES__ 1 866*67e74705SXin Li // CHECK_CNL_M32: #define __AVX2__ 1 867*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512BW__ 1 868*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512CD__ 1 869*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512DQ__ 1 870*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512F__ 1 871*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512IFMA__ 1 872*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512VBMI__ 1 873*67e74705SXin Li // CHECK_CNL_M32: #define __AVX512VL__ 1 874*67e74705SXin Li // CHECK_CNL_M32: #define __AVX__ 1 875*67e74705SXin Li // CHECK_CNL_M32: #define __BMI2__ 1 876*67e74705SXin Li // CHECK_CNL_M32: #define __BMI__ 1 877*67e74705SXin Li // CHECK_CNL_M32: #define __F16C__ 1 878*67e74705SXin Li // CHECK_CNL_M32: #define __FMA__ 1 879*67e74705SXin Li // CHECK_CNL_M32: #define __LZCNT__ 1 880*67e74705SXin Li // CHECK_CNL_M32: #define __MMX__ 1 881*67e74705SXin Li // CHECK_CNL_M32: #define __PCLMUL__ 1 882*67e74705SXin Li // CHECK_CNL_M32: #define __POPCNT__ 1 883*67e74705SXin Li // CHECK_CNL_M32: #define __RDRND__ 1 884*67e74705SXin Li // CHECK_CNL_M32: #define __RTM__ 1 885*67e74705SXin Li // CHECK_CNL_M32: #define __SHA__ 1 886*67e74705SXin Li // CHECK_CNL_M32: #define __SSE2__ 1 887*67e74705SXin Li // CHECK_CNL_M32: #define __SSE3__ 1 888*67e74705SXin Li // CHECK_CNL_M32: #define __SSE4_1__ 1 889*67e74705SXin Li // CHECK_CNL_M32: #define __SSE4_2__ 1 890*67e74705SXin Li // CHECK_CNL_M32: #define __SSE__ 1 891*67e74705SXin Li // CHECK_CNL_M32: #define __SSSE3__ 1 892*67e74705SXin Li // CHECK_CNL_M32: #define __XSAVEC__ 1 893*67e74705SXin Li // CHECK_CNL_M32: #define __XSAVEOPT__ 1 894*67e74705SXin Li // CHECK_CNL_M32: #define __XSAVES__ 1 895*67e74705SXin Li // CHECK_CNL_M32: #define __XSAVE__ 1 896*67e74705SXin Li // CHECK_CNL_M32: #define __i386 1 897*67e74705SXin Li // CHECK_CNL_M32: #define __i386__ 1 898*67e74705SXin Li // CHECK_CNL_M32: #define i386 1 899*67e74705SXin Li // 900*67e74705SXin Li // RUN: %clang -march=cannonlake -m64 -E -dM %s -o - 2>&1 \ 901*67e74705SXin Li // RUN: -target i386-unknown-linux \ 902*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M64 903*67e74705SXin Li // CHECK_CNL_M64: #define __AES__ 1 904*67e74705SXin Li // CHECK_CNL_M64: #define __AVX2__ 1 905*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512BW__ 1 906*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512CD__ 1 907*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512DQ__ 1 908*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512F__ 1 909*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512IFMA__ 1 910*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512VBMI__ 1 911*67e74705SXin Li // CHECK_CNL_M64: #define __AVX512VL__ 1 912*67e74705SXin Li // CHECK_CNL_M64: #define __AVX__ 1 913*67e74705SXin Li // CHECK_CNL_M64: #define __BMI2__ 1 914*67e74705SXin Li // CHECK_CNL_M64: #define __BMI__ 1 915*67e74705SXin Li // CHECK_CNL_M64: #define __F16C__ 1 916*67e74705SXin Li // CHECK_CNL_M64: #define __FMA__ 1 917*67e74705SXin Li // CHECK_CNL_M64: #define __LZCNT__ 1 918*67e74705SXin Li // CHECK_CNL_M64: #define __MMX__ 1 919*67e74705SXin Li // CHECK_CNL_M64: #define __PCLMUL__ 1 920*67e74705SXin Li // CHECK_CNL_M64: #define __POPCNT__ 1 921*67e74705SXin Li // CHECK_CNL_M64: #define __RDRND__ 1 922*67e74705SXin Li // CHECK_CNL_M64: #define __RTM__ 1 923*67e74705SXin Li // CHECK_CNL_M64: #define __SHA__ 1 924*67e74705SXin Li // CHECK_CNL_M64: #define __SSE2__ 1 925*67e74705SXin Li // CHECK_CNL_M64: #define __SSE3__ 1 926*67e74705SXin Li // CHECK_CNL_M64: #define __SSE4_1__ 1 927*67e74705SXin Li // CHECK_CNL_M64: #define __SSE4_2__ 1 928*67e74705SXin Li // CHECK_CNL_M64: #define __SSE__ 1 929*67e74705SXin Li // CHECK_CNL_M64: #define __SSSE3__ 1 930*67e74705SXin Li // CHECK_CNL_M64: #define __XSAVEC__ 1 931*67e74705SXin Li // CHECK_CNL_M64: #define __XSAVEOPT__ 1 932*67e74705SXin Li // CHECK_CNL_M64: #define __XSAVES__ 1 933*67e74705SXin Li // CHECK_CNL_M64: #define __XSAVE__ 1 934*67e74705SXin Li // CHECK_CNL_M64: #define __amd64 1 935*67e74705SXin Li // CHECK_CNL_M64: #define __amd64__ 1 936*67e74705SXin Li // CHECK_CNL_M64: #define __x86_64 1 937*67e74705SXin Li // CHECK_CNL_M64: #define __x86_64__ 1 938*67e74705SXin Li 939*67e74705SXin Li // RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \ 940*67e74705SXin Li // RUN: -target i386-unknown-linux \ 941*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M32 942*67e74705SXin Li // CHECK_ATOM_M32: #define __MMX__ 1 943*67e74705SXin Li // CHECK_ATOM_M32: #define __SSE2__ 1 944*67e74705SXin Li // CHECK_ATOM_M32: #define __SSE3__ 1 945*67e74705SXin Li // CHECK_ATOM_M32: #define __SSE__ 1 946*67e74705SXin Li // CHECK_ATOM_M32: #define __SSSE3__ 1 947*67e74705SXin Li // CHECK_ATOM_M32: #define __atom 1 948*67e74705SXin Li // CHECK_ATOM_M32: #define __atom__ 1 949*67e74705SXin Li // CHECK_ATOM_M32: #define __i386 1 950*67e74705SXin Li // CHECK_ATOM_M32: #define __i386__ 1 951*67e74705SXin Li // CHECK_ATOM_M32: #define __tune_atom__ 1 952*67e74705SXin Li // CHECK_ATOM_M32: #define i386 1 953*67e74705SXin Li // RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \ 954*67e74705SXin Li // RUN: -target i386-unknown-linux \ 955*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M64 956*67e74705SXin Li // CHECK_ATOM_M64: #define __MMX__ 1 957*67e74705SXin Li // CHECK_ATOM_M64: #define __SSE2_MATH__ 1 958*67e74705SXin Li // CHECK_ATOM_M64: #define __SSE2__ 1 959*67e74705SXin Li // CHECK_ATOM_M64: #define __SSE3__ 1 960*67e74705SXin Li // CHECK_ATOM_M64: #define __SSE_MATH__ 1 961*67e74705SXin Li // CHECK_ATOM_M64: #define __SSE__ 1 962*67e74705SXin Li // CHECK_ATOM_M64: #define __SSSE3__ 1 963*67e74705SXin Li // CHECK_ATOM_M64: #define __amd64 1 964*67e74705SXin Li // CHECK_ATOM_M64: #define __amd64__ 1 965*67e74705SXin Li // CHECK_ATOM_M64: #define __atom 1 966*67e74705SXin Li // CHECK_ATOM_M64: #define __atom__ 1 967*67e74705SXin Li // CHECK_ATOM_M64: #define __tune_atom__ 1 968*67e74705SXin Li // CHECK_ATOM_M64: #define __x86_64 1 969*67e74705SXin Li // CHECK_ATOM_M64: #define __x86_64__ 1 970*67e74705SXin Li // 971*67e74705SXin Li // RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \ 972*67e74705SXin Li // RUN: -target i386-unknown-linux \ 973*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M32 974*67e74705SXin Li // CHECK_SLM_M32: #define __MMX__ 1 975*67e74705SXin Li // CHECK_SLM_M32: #define __SSE2__ 1 976*67e74705SXin Li // CHECK_SLM_M32: #define __SSE3__ 1 977*67e74705SXin Li // CHECK_SLM_M32: #define __SSE4_1__ 1 978*67e74705SXin Li // CHECK_SLM_M32: #define __SSE4_2__ 1 979*67e74705SXin Li // CHECK_SLM_M32: #define __SSE__ 1 980*67e74705SXin Li // CHECK_SLM_M32: #define __SSSE3__ 1 981*67e74705SXin Li // CHECK_SLM_M32: #define __i386 1 982*67e74705SXin Li // CHECK_SLM_M32: #define __i386__ 1 983*67e74705SXin Li // CHECK_SLM_M32: #define __slm 1 984*67e74705SXin Li // CHECK_SLM_M32: #define __slm__ 1 985*67e74705SXin Li // CHECK_SLM_M32: #define __tune_slm__ 1 986*67e74705SXin Li // CHECK_SLM_M32: #define i386 1 987*67e74705SXin Li // RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \ 988*67e74705SXin Li // RUN: -target i386-unknown-linux \ 989*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M64 990*67e74705SXin Li // CHECK_SLM_M64: #define __MMX__ 1 991*67e74705SXin Li // CHECK_SLM_M64: #define __SSE2_MATH__ 1 992*67e74705SXin Li // CHECK_SLM_M64: #define __SSE2__ 1 993*67e74705SXin Li // CHECK_SLM_M64: #define __SSE3__ 1 994*67e74705SXin Li // CHECK_SLM_M64: #define __SSE4_1__ 1 995*67e74705SXin Li // CHECK_SLM_M64: #define __SSE4_2__ 1 996*67e74705SXin Li // CHECK_SLM_M64: #define __SSE_MATH__ 1 997*67e74705SXin Li // CHECK_SLM_M64: #define __SSE__ 1 998*67e74705SXin Li // CHECK_SLM_M64: #define __SSSE3__ 1 999*67e74705SXin Li // CHECK_SLM_M64: #define __amd64 1 1000*67e74705SXin Li // CHECK_SLM_M64: #define __amd64__ 1 1001*67e74705SXin Li // CHECK_SLM_M64: #define __slm 1 1002*67e74705SXin Li // CHECK_SLM_M64: #define __slm__ 1 1003*67e74705SXin Li // CHECK_SLM_M64: #define __tune_slm__ 1 1004*67e74705SXin Li // CHECK_SLM_M64: #define __x86_64 1 1005*67e74705SXin Li // CHECK_SLM_M64: #define __x86_64__ 1 1006*67e74705SXin Li // 1007*67e74705SXin Li // RUN: %clang -march=lakemont -m32 -E -dM %s -o - 2>&1 \ 1008*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1009*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CHECK_LMT_M32 1010*67e74705SXin Li // CHECK_LMT_M32: #define __i386 1 1011*67e74705SXin Li // CHECK_LMT_M32: #define __i386__ 1 1012*67e74705SXin Li // CHECK_LMT_M32: #define __tune_lakemont__ 1 1013*67e74705SXin Li // CHECK_LMT_M32: #define i386 1 1014*67e74705SXin Li // RUN: not %clang -march=lakemont -m64 -E -dM %s -o - 2>&1 \ 1015*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1016*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CHECK_LMT_M64 1017*67e74705SXin Li // CHECK_LMT_M64: error: 1018*67e74705SXin Li // 1019*67e74705SXin Li // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \ 1020*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1021*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M32 1022*67e74705SXin Li // CHECK_GEODE_M32: #define __3dNOW_A__ 1 1023*67e74705SXin Li // CHECK_GEODE_M32: #define __3dNOW__ 1 1024*67e74705SXin Li // CHECK_GEODE_M32: #define __MMX__ 1 1025*67e74705SXin Li // CHECK_GEODE_M32: #define __geode 1 1026*67e74705SXin Li // CHECK_GEODE_M32: #define __geode__ 1 1027*67e74705SXin Li // CHECK_GEODE_M32: #define __i386 1 1028*67e74705SXin Li // CHECK_GEODE_M32: #define __i386__ 1 1029*67e74705SXin Li // CHECK_GEODE_M32: #define __tune_geode__ 1 1030*67e74705SXin Li // CHECK_GEODE_M32: #define i386 1 1031*67e74705SXin Li // RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \ 1032*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1033*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M64 1034*67e74705SXin Li // CHECK_GEODE_M64: error: {{.*}} 1035*67e74705SXin Li // 1036*67e74705SXin Li // RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \ 1037*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1038*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M32 1039*67e74705SXin Li // CHECK_K6_M32: #define __MMX__ 1 1040*67e74705SXin Li // CHECK_K6_M32: #define __i386 1 1041*67e74705SXin Li // CHECK_K6_M32: #define __i386__ 1 1042*67e74705SXin Li // CHECK_K6_M32: #define __k6 1 1043*67e74705SXin Li // CHECK_K6_M32: #define __k6__ 1 1044*67e74705SXin Li // CHECK_K6_M32: #define __tune_k6__ 1 1045*67e74705SXin Li // CHECK_K6_M32: #define i386 1 1046*67e74705SXin Li // RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \ 1047*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1048*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M64 1049*67e74705SXin Li // CHECK_K6_M64: error: {{.*}} 1050*67e74705SXin Li // 1051*67e74705SXin Li // RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \ 1052*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1053*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M32 1054*67e74705SXin Li // CHECK_K6_2_M32: #define __3dNOW__ 1 1055*67e74705SXin Li // CHECK_K6_2_M32: #define __MMX__ 1 1056*67e74705SXin Li // CHECK_K6_2_M32: #define __i386 1 1057*67e74705SXin Li // CHECK_K6_2_M32: #define __i386__ 1 1058*67e74705SXin Li // CHECK_K6_2_M32: #define __k6 1 1059*67e74705SXin Li // CHECK_K6_2_M32: #define __k6_2__ 1 1060*67e74705SXin Li // CHECK_K6_2_M32: #define __k6__ 1 1061*67e74705SXin Li // CHECK_K6_2_M32: #define __tune_k6_2__ 1 1062*67e74705SXin Li // CHECK_K6_2_M32: #define __tune_k6__ 1 1063*67e74705SXin Li // CHECK_K6_2_M32: #define i386 1 1064*67e74705SXin Li // RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \ 1065*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1066*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M64 1067*67e74705SXin Li // CHECK_K6_2_M64: error: {{.*}} 1068*67e74705SXin Li // 1069*67e74705SXin Li // RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \ 1070*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1071*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M32 1072*67e74705SXin Li // CHECK_K6_3_M32: #define __3dNOW__ 1 1073*67e74705SXin Li // CHECK_K6_3_M32: #define __MMX__ 1 1074*67e74705SXin Li // CHECK_K6_3_M32: #define __i386 1 1075*67e74705SXin Li // CHECK_K6_3_M32: #define __i386__ 1 1076*67e74705SXin Li // CHECK_K6_3_M32: #define __k6 1 1077*67e74705SXin Li // CHECK_K6_3_M32: #define __k6_3__ 1 1078*67e74705SXin Li // CHECK_K6_3_M32: #define __k6__ 1 1079*67e74705SXin Li // CHECK_K6_3_M32: #define __tune_k6_3__ 1 1080*67e74705SXin Li // CHECK_K6_3_M32: #define __tune_k6__ 1 1081*67e74705SXin Li // CHECK_K6_3_M32: #define i386 1 1082*67e74705SXin Li // RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \ 1083*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1084*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M64 1085*67e74705SXin Li // CHECK_K6_3_M64: error: {{.*}} 1086*67e74705SXin Li // 1087*67e74705SXin Li // RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \ 1088*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1089*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M32 1090*67e74705SXin Li // CHECK_ATHLON_M32: #define __3dNOW_A__ 1 1091*67e74705SXin Li // CHECK_ATHLON_M32: #define __3dNOW__ 1 1092*67e74705SXin Li // CHECK_ATHLON_M32: #define __MMX__ 1 1093*67e74705SXin Li // CHECK_ATHLON_M32: #define __athlon 1 1094*67e74705SXin Li // CHECK_ATHLON_M32: #define __athlon__ 1 1095*67e74705SXin Li // CHECK_ATHLON_M32: #define __i386 1 1096*67e74705SXin Li // CHECK_ATHLON_M32: #define __i386__ 1 1097*67e74705SXin Li // CHECK_ATHLON_M32: #define __tune_athlon__ 1 1098*67e74705SXin Li // CHECK_ATHLON_M32: #define i386 1 1099*67e74705SXin Li // RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \ 1100*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1101*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M64 1102*67e74705SXin Li // CHECK_ATHLON_M64: error: {{.*}} 1103*67e74705SXin Li // 1104*67e74705SXin Li // RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \ 1105*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1106*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M32 1107*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1 1108*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1 1109*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1 1110*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __athlon 1 1111*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1 1112*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __i386 1 1113*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __i386__ 1 1114*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1 1115*67e74705SXin Li // CHECK_ATHLON_TBIRD_M32: #define i386 1 1116*67e74705SXin Li // RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \ 1117*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1118*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M64 1119*67e74705SXin Li // CHECK_ATHLON_TBIRD_M64: error: {{.*}} 1120*67e74705SXin Li // 1121*67e74705SXin Li // RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \ 1122*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1123*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M32 1124*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1 1125*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __3dNOW__ 1 1126*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __MMX__ 1 1127*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __SSE__ 1 1128*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __athlon 1 1129*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __athlon__ 1 1130*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __athlon_sse__ 1 1131*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __i386 1 1132*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __i386__ 1 1133*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __tune_athlon__ 1 1134*67e74705SXin Li // CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1 1135*67e74705SXin Li // CHECK_ATHLON_4_M32: #define i386 1 1136*67e74705SXin Li // RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \ 1137*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1138*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M64 1139*67e74705SXin Li // CHECK_ATHLON_4_M64: error: {{.*}} 1140*67e74705SXin Li // 1141*67e74705SXin Li // RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \ 1142*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1143*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M32 1144*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1 1145*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __3dNOW__ 1 1146*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __MMX__ 1 1147*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __SSE__ 1 1148*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __athlon 1 1149*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __athlon__ 1 1150*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1 1151*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __i386 1 1152*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __i386__ 1 1153*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1 1154*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1 1155*67e74705SXin Li // CHECK_ATHLON_XP_M32: #define i386 1 1156*67e74705SXin Li // RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \ 1157*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1158*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M64 1159*67e74705SXin Li // CHECK_ATHLON_XP_M64: error: {{.*}} 1160*67e74705SXin Li // 1161*67e74705SXin Li // RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \ 1162*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1163*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M32 1164*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1 1165*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __3dNOW__ 1 1166*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __MMX__ 1 1167*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __SSE__ 1 1168*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __athlon 1 1169*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __athlon__ 1 1170*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1 1171*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __i386 1 1172*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __i386__ 1 1173*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1 1174*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1 1175*67e74705SXin Li // CHECK_ATHLON_MP_M32: #define i386 1 1176*67e74705SXin Li // RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \ 1177*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1178*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M64 1179*67e74705SXin Li // CHECK_ATHLON_MP_M64: error: {{.*}} 1180*67e74705SXin Li // 1181*67e74705SXin Li // RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \ 1182*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1183*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_X86_64_M32 1184*67e74705SXin Li // CHECK_X86_64_M32: #define __MMX__ 1 1185*67e74705SXin Li // CHECK_X86_64_M32: #define __SSE2__ 1 1186*67e74705SXin Li // CHECK_X86_64_M32: #define __SSE__ 1 1187*67e74705SXin Li // CHECK_X86_64_M32: #define __i386 1 1188*67e74705SXin Li // CHECK_X86_64_M32: #define __i386__ 1 1189*67e74705SXin Li // CHECK_X86_64_M32: #define __k8 1 1190*67e74705SXin Li // CHECK_X86_64_M32: #define __k8__ 1 1191*67e74705SXin Li // CHECK_X86_64_M32: #define i386 1 1192*67e74705SXin Li // RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \ 1193*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1194*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_X86_64_M64 1195*67e74705SXin Li // CHECK_X86_64_M64: #define __MMX__ 1 1196*67e74705SXin Li // CHECK_X86_64_M64: #define __SSE2_MATH__ 1 1197*67e74705SXin Li // CHECK_X86_64_M64: #define __SSE2__ 1 1198*67e74705SXin Li // CHECK_X86_64_M64: #define __SSE_MATH__ 1 1199*67e74705SXin Li // CHECK_X86_64_M64: #define __SSE__ 1 1200*67e74705SXin Li // CHECK_X86_64_M64: #define __amd64 1 1201*67e74705SXin Li // CHECK_X86_64_M64: #define __amd64__ 1 1202*67e74705SXin Li // CHECK_X86_64_M64: #define __k8 1 1203*67e74705SXin Li // CHECK_X86_64_M64: #define __k8__ 1 1204*67e74705SXin Li // CHECK_X86_64_M64: #define __x86_64 1 1205*67e74705SXin Li // CHECK_X86_64_M64: #define __x86_64__ 1 1206*67e74705SXin Li // 1207*67e74705SXin Li // RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \ 1208*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1209*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M32 1210*67e74705SXin Li // CHECK_K8_M32: #define __3dNOW_A__ 1 1211*67e74705SXin Li // CHECK_K8_M32: #define __3dNOW__ 1 1212*67e74705SXin Li // CHECK_K8_M32: #define __MMX__ 1 1213*67e74705SXin Li // CHECK_K8_M32: #define __SSE2__ 1 1214*67e74705SXin Li // CHECK_K8_M32: #define __SSE__ 1 1215*67e74705SXin Li // CHECK_K8_M32: #define __i386 1 1216*67e74705SXin Li // CHECK_K8_M32: #define __i386__ 1 1217*67e74705SXin Li // CHECK_K8_M32: #define __k8 1 1218*67e74705SXin Li // CHECK_K8_M32: #define __k8__ 1 1219*67e74705SXin Li // CHECK_K8_M32: #define __tune_k8__ 1 1220*67e74705SXin Li // CHECK_K8_M32: #define i386 1 1221*67e74705SXin Li // RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \ 1222*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1223*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M64 1224*67e74705SXin Li // CHECK_K8_M64: #define __3dNOW_A__ 1 1225*67e74705SXin Li // CHECK_K8_M64: #define __3dNOW__ 1 1226*67e74705SXin Li // CHECK_K8_M64: #define __MMX__ 1 1227*67e74705SXin Li // CHECK_K8_M64: #define __SSE2_MATH__ 1 1228*67e74705SXin Li // CHECK_K8_M64: #define __SSE2__ 1 1229*67e74705SXin Li // CHECK_K8_M64: #define __SSE_MATH__ 1 1230*67e74705SXin Li // CHECK_K8_M64: #define __SSE__ 1 1231*67e74705SXin Li // CHECK_K8_M64: #define __amd64 1 1232*67e74705SXin Li // CHECK_K8_M64: #define __amd64__ 1 1233*67e74705SXin Li // CHECK_K8_M64: #define __k8 1 1234*67e74705SXin Li // CHECK_K8_M64: #define __k8__ 1 1235*67e74705SXin Li // CHECK_K8_M64: #define __tune_k8__ 1 1236*67e74705SXin Li // CHECK_K8_M64: #define __x86_64 1 1237*67e74705SXin Li // CHECK_K8_M64: #define __x86_64__ 1 1238*67e74705SXin Li // 1239*67e74705SXin Li // RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \ 1240*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1241*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M32 1242*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1 1243*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __3dNOW__ 1 1244*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __MMX__ 1 1245*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __SSE2__ 1 1246*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __SSE3__ 1 1247*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __SSE__ 1 1248*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __i386 1 1249*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __i386__ 1 1250*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __k8 1 1251*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __k8__ 1 1252*67e74705SXin Li // CHECK_K8_SSE3_M32: #define __tune_k8__ 1 1253*67e74705SXin Li // CHECK_K8_SSE3_M32: #define i386 1 1254*67e74705SXin Li // RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \ 1255*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1256*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M64 1257*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1 1258*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __3dNOW__ 1 1259*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __MMX__ 1 1260*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1 1261*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __SSE2__ 1 1262*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __SSE3__ 1 1263*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1 1264*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __SSE__ 1 1265*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __amd64 1 1266*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __amd64__ 1 1267*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __k8 1 1268*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __k8__ 1 1269*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __tune_k8__ 1 1270*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __x86_64 1 1271*67e74705SXin Li // CHECK_K8_SSE3_M64: #define __x86_64__ 1 1272*67e74705SXin Li // 1273*67e74705SXin Li // RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \ 1274*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1275*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M32 1276*67e74705SXin Li // CHECK_OPTERON_M32: #define __3dNOW_A__ 1 1277*67e74705SXin Li // CHECK_OPTERON_M32: #define __3dNOW__ 1 1278*67e74705SXin Li // CHECK_OPTERON_M32: #define __MMX__ 1 1279*67e74705SXin Li // CHECK_OPTERON_M32: #define __SSE2__ 1 1280*67e74705SXin Li // CHECK_OPTERON_M32: #define __SSE__ 1 1281*67e74705SXin Li // CHECK_OPTERON_M32: #define __i386 1 1282*67e74705SXin Li // CHECK_OPTERON_M32: #define __i386__ 1 1283*67e74705SXin Li // CHECK_OPTERON_M32: #define __k8 1 1284*67e74705SXin Li // CHECK_OPTERON_M32: #define __k8__ 1 1285*67e74705SXin Li // CHECK_OPTERON_M32: #define __tune_k8__ 1 1286*67e74705SXin Li // CHECK_OPTERON_M32: #define i386 1 1287*67e74705SXin Li // RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \ 1288*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1289*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M64 1290*67e74705SXin Li // CHECK_OPTERON_M64: #define __3dNOW_A__ 1 1291*67e74705SXin Li // CHECK_OPTERON_M64: #define __3dNOW__ 1 1292*67e74705SXin Li // CHECK_OPTERON_M64: #define __MMX__ 1 1293*67e74705SXin Li // CHECK_OPTERON_M64: #define __SSE2_MATH__ 1 1294*67e74705SXin Li // CHECK_OPTERON_M64: #define __SSE2__ 1 1295*67e74705SXin Li // CHECK_OPTERON_M64: #define __SSE_MATH__ 1 1296*67e74705SXin Li // CHECK_OPTERON_M64: #define __SSE__ 1 1297*67e74705SXin Li // CHECK_OPTERON_M64: #define __amd64 1 1298*67e74705SXin Li // CHECK_OPTERON_M64: #define __amd64__ 1 1299*67e74705SXin Li // CHECK_OPTERON_M64: #define __k8 1 1300*67e74705SXin Li // CHECK_OPTERON_M64: #define __k8__ 1 1301*67e74705SXin Li // CHECK_OPTERON_M64: #define __tune_k8__ 1 1302*67e74705SXin Li // CHECK_OPTERON_M64: #define __x86_64 1 1303*67e74705SXin Li // CHECK_OPTERON_M64: #define __x86_64__ 1 1304*67e74705SXin Li // 1305*67e74705SXin Li // RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \ 1306*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1307*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M32 1308*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1 1309*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1 1310*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __MMX__ 1 1311*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1 1312*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1 1313*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __SSE__ 1 1314*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __i386 1 1315*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __i386__ 1 1316*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __k8 1 1317*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __k8__ 1 1318*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1 1319*67e74705SXin Li // CHECK_OPTERON_SSE3_M32: #define i386 1 1320*67e74705SXin Li // RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \ 1321*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1322*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M64 1323*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1 1324*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1 1325*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __MMX__ 1 1326*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1 1327*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1 1328*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1 1329*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1 1330*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __SSE__ 1 1331*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __amd64 1 1332*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __amd64__ 1 1333*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __k8 1 1334*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __k8__ 1 1335*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1 1336*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __x86_64 1 1337*67e74705SXin Li // CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1 1338*67e74705SXin Li // 1339*67e74705SXin Li // RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \ 1340*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1341*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M32 1342*67e74705SXin Li // CHECK_ATHLON64_M32: #define __3dNOW_A__ 1 1343*67e74705SXin Li // CHECK_ATHLON64_M32: #define __3dNOW__ 1 1344*67e74705SXin Li // CHECK_ATHLON64_M32: #define __MMX__ 1 1345*67e74705SXin Li // CHECK_ATHLON64_M32: #define __SSE2__ 1 1346*67e74705SXin Li // CHECK_ATHLON64_M32: #define __SSE__ 1 1347*67e74705SXin Li // CHECK_ATHLON64_M32: #define __i386 1 1348*67e74705SXin Li // CHECK_ATHLON64_M32: #define __i386__ 1 1349*67e74705SXin Li // CHECK_ATHLON64_M32: #define __k8 1 1350*67e74705SXin Li // CHECK_ATHLON64_M32: #define __k8__ 1 1351*67e74705SXin Li // CHECK_ATHLON64_M32: #define __tune_k8__ 1 1352*67e74705SXin Li // CHECK_ATHLON64_M32: #define i386 1 1353*67e74705SXin Li // RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \ 1354*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1355*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M64 1356*67e74705SXin Li // CHECK_ATHLON64_M64: #define __3dNOW_A__ 1 1357*67e74705SXin Li // CHECK_ATHLON64_M64: #define __3dNOW__ 1 1358*67e74705SXin Li // CHECK_ATHLON64_M64: #define __MMX__ 1 1359*67e74705SXin Li // CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1 1360*67e74705SXin Li // CHECK_ATHLON64_M64: #define __SSE2__ 1 1361*67e74705SXin Li // CHECK_ATHLON64_M64: #define __SSE_MATH__ 1 1362*67e74705SXin Li // CHECK_ATHLON64_M64: #define __SSE__ 1 1363*67e74705SXin Li // CHECK_ATHLON64_M64: #define __amd64 1 1364*67e74705SXin Li // CHECK_ATHLON64_M64: #define __amd64__ 1 1365*67e74705SXin Li // CHECK_ATHLON64_M64: #define __k8 1 1366*67e74705SXin Li // CHECK_ATHLON64_M64: #define __k8__ 1 1367*67e74705SXin Li // CHECK_ATHLON64_M64: #define __tune_k8__ 1 1368*67e74705SXin Li // CHECK_ATHLON64_M64: #define __x86_64 1 1369*67e74705SXin Li // CHECK_ATHLON64_M64: #define __x86_64__ 1 1370*67e74705SXin Li // 1371*67e74705SXin Li // RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \ 1372*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1373*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M32 1374*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1 1375*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1 1376*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1 1377*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1 1378*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1 1379*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1 1380*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __i386 1 1381*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __i386__ 1 1382*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __k8 1 1383*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __k8__ 1 1384*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1 1385*67e74705SXin Li // CHECK_ATHLON64_SSE3_M32: #define i386 1 1386*67e74705SXin Li // RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \ 1387*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1388*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M64 1389*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1 1390*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1 1391*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1 1392*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1 1393*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1 1394*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1 1395*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1 1396*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1 1397*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __amd64 1 1398*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1 1399*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __k8 1 1400*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __k8__ 1 1401*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1 1402*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __x86_64 1 1403*67e74705SXin Li // CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1 1404*67e74705SXin Li // 1405*67e74705SXin Li // RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \ 1406*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1407*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M32 1408*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1 1409*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __3dNOW__ 1 1410*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __MMX__ 1 1411*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __SSE2__ 1 1412*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __SSE__ 1 1413*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __i386 1 1414*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __i386__ 1 1415*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __k8 1 1416*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __k8__ 1 1417*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define __tune_k8__ 1 1418*67e74705SXin Li // CHECK_ATHLON_FX_M32: #define i386 1 1419*67e74705SXin Li // RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \ 1420*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1421*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M64 1422*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1 1423*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __3dNOW__ 1 1424*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __MMX__ 1 1425*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1 1426*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __SSE2__ 1 1427*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1 1428*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __SSE__ 1 1429*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __amd64 1 1430*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __amd64__ 1 1431*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __k8 1 1432*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __k8__ 1 1433*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __tune_k8__ 1 1434*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __x86_64 1 1435*67e74705SXin Li // CHECK_ATHLON_FX_M64: #define __x86_64__ 1 1436*67e74705SXin Li // RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \ 1437*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1438*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M32 1439*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1 1440*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __3dNOW__ 1 1441*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __LZCNT__ 1 1442*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __MMX__ 1 1443*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __POPCNT__ 1 1444*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1 1445*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE2__ 1 1446*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE3__ 1 1447*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE4A__ 1 1448*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1 1449*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __SSE__ 1 1450*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __amdfam10 1 1451*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __amdfam10__ 1 1452*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __i386 1 1453*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __i386__ 1 1454*67e74705SXin Li // CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1 1455*67e74705SXin Li // RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \ 1456*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1457*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M64 1458*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1 1459*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __3dNOW__ 1 1460*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __LZCNT__ 1 1461*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __MMX__ 1 1462*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __POPCNT__ 1 1463*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1 1464*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE2__ 1 1465*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE3__ 1 1466*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE4A__ 1 1467*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1 1468*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __SSE__ 1 1469*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __amd64 1 1470*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __amd64__ 1 1471*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __amdfam10 1 1472*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __amdfam10__ 1 1473*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1 1474*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __x86_64 1 1475*67e74705SXin Li // CHECK_AMDFAM10_M64: #define __x86_64__ 1 1476*67e74705SXin Li // RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \ 1477*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1478*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M32 1479*67e74705SXin Li // CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1 1480*67e74705SXin Li // CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1 1481*67e74705SXin Li // CHECK_BTVER1_M32: #define __LZCNT__ 1 1482*67e74705SXin Li // CHECK_BTVER1_M32: #define __MMX__ 1 1483*67e74705SXin Li // CHECK_BTVER1_M32: #define __POPCNT__ 1 1484*67e74705SXin Li // CHECK_BTVER1_M32: #define __PRFCHW__ 1 1485*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE2_MATH__ 1 1486*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE2__ 1 1487*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE3__ 1 1488*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE4A__ 1 1489*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE_MATH__ 1 1490*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSE__ 1 1491*67e74705SXin Li // CHECK_BTVER1_M32: #define __SSSE3__ 1 1492*67e74705SXin Li // CHECK_BTVER1_M32: #define __btver1 1 1493*67e74705SXin Li // CHECK_BTVER1_M32: #define __btver1__ 1 1494*67e74705SXin Li // CHECK_BTVER1_M32: #define __i386 1 1495*67e74705SXin Li // CHECK_BTVER1_M32: #define __i386__ 1 1496*67e74705SXin Li // CHECK_BTVER1_M32: #define __tune_btver1__ 1 1497*67e74705SXin Li // RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \ 1498*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1499*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M64 1500*67e74705SXin Li // CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1 1501*67e74705SXin Li // CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1 1502*67e74705SXin Li // CHECK_BTVER1_M64: #define __LZCNT__ 1 1503*67e74705SXin Li // CHECK_BTVER1_M64: #define __MMX__ 1 1504*67e74705SXin Li // CHECK_BTVER1_M64: #define __POPCNT__ 1 1505*67e74705SXin Li // CHECK_BTVER1_M64: #define __PRFCHW__ 1 1506*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE2_MATH__ 1 1507*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE2__ 1 1508*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE3__ 1 1509*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE4A__ 1 1510*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE_MATH__ 1 1511*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSE__ 1 1512*67e74705SXin Li // CHECK_BTVER1_M64: #define __SSSE3__ 1 1513*67e74705SXin Li // CHECK_BTVER1_M64: #define __amd64 1 1514*67e74705SXin Li // CHECK_BTVER1_M64: #define __amd64__ 1 1515*67e74705SXin Li // CHECK_BTVER1_M64: #define __btver1 1 1516*67e74705SXin Li // CHECK_BTVER1_M64: #define __btver1__ 1 1517*67e74705SXin Li // CHECK_BTVER1_M64: #define __tune_btver1__ 1 1518*67e74705SXin Li // CHECK_BTVER1_M64: #define __x86_64 1 1519*67e74705SXin Li // CHECK_BTVER1_M64: #define __x86_64__ 1 1520*67e74705SXin Li // RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \ 1521*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1522*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M32 1523*67e74705SXin Li // CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1 1524*67e74705SXin Li // CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1 1525*67e74705SXin Li // CHECK_BTVER2_M32: #define __AES__ 1 1526*67e74705SXin Li // CHECK_BTVER2_M32: #define __AVX__ 1 1527*67e74705SXin Li // CHECK_BTVER2_M32: #define __BMI__ 1 1528*67e74705SXin Li // CHECK_BTVER2_M32: #define __F16C__ 1 1529*67e74705SXin Li // CHECK_BTVER2_M32: #define __LZCNT__ 1 1530*67e74705SXin Li // CHECK_BTVER2_M32: #define __MMX__ 1 1531*67e74705SXin Li // CHECK_BTVER2_M32: #define __PCLMUL__ 1 1532*67e74705SXin Li // CHECK_BTVER2_M32: #define __POPCNT__ 1 1533*67e74705SXin Li // CHECK_BTVER2_M32: #define __PRFCHW__ 1 1534*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE2_MATH__ 1 1535*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE2__ 1 1536*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE3__ 1 1537*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE4A__ 1 1538*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE_MATH__ 1 1539*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSE__ 1 1540*67e74705SXin Li // CHECK_BTVER2_M32: #define __SSSE3__ 1 1541*67e74705SXin Li // CHECK_BTVER2_M32: #define __XSAVEOPT__ 1 1542*67e74705SXin Li // CHECK_BTVER2_M32: #define __XSAVE__ 1 1543*67e74705SXin Li // CHECK_BTVER2_M32: #define __btver2 1 1544*67e74705SXin Li // CHECK_BTVER2_M32: #define __btver2__ 1 1545*67e74705SXin Li // CHECK_BTVER2_M32: #define __i386 1 1546*67e74705SXin Li // CHECK_BTVER2_M32: #define __i386__ 1 1547*67e74705SXin Li // CHECK_BTVER2_M32: #define __tune_btver2__ 1 1548*67e74705SXin Li // RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \ 1549*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1550*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M64 1551*67e74705SXin Li // CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1 1552*67e74705SXin Li // CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1 1553*67e74705SXin Li // CHECK_BTVER2_M64: #define __AES__ 1 1554*67e74705SXin Li // CHECK_BTVER2_M64: #define __AVX__ 1 1555*67e74705SXin Li // CHECK_BTVER2_M64: #define __BMI__ 1 1556*67e74705SXin Li // CHECK_BTVER2_M64: #define __F16C__ 1 1557*67e74705SXin Li // CHECK_BTVER2_M64: #define __LZCNT__ 1 1558*67e74705SXin Li // CHECK_BTVER2_M64: #define __MMX__ 1 1559*67e74705SXin Li // CHECK_BTVER2_M64: #define __PCLMUL__ 1 1560*67e74705SXin Li // CHECK_BTVER2_M64: #define __POPCNT__ 1 1561*67e74705SXin Li // CHECK_BTVER2_M64: #define __PRFCHW__ 1 1562*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE2_MATH__ 1 1563*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE2__ 1 1564*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE3__ 1 1565*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE4A__ 1 1566*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE_MATH__ 1 1567*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSE__ 1 1568*67e74705SXin Li // CHECK_BTVER2_M64: #define __SSSE3__ 1 1569*67e74705SXin Li // CHECK_BTVER2_M64: #define __XSAVEOPT__ 1 1570*67e74705SXin Li // CHECK_BTVER2_M64: #define __XSAVE__ 1 1571*67e74705SXin Li // CHECK_BTVER2_M64: #define __amd64 1 1572*67e74705SXin Li // CHECK_BTVER2_M64: #define __amd64__ 1 1573*67e74705SXin Li // CHECK_BTVER2_M64: #define __btver2 1 1574*67e74705SXin Li // CHECK_BTVER2_M64: #define __btver2__ 1 1575*67e74705SXin Li // CHECK_BTVER2_M64: #define __tune_btver2__ 1 1576*67e74705SXin Li // CHECK_BTVER2_M64: #define __x86_64 1 1577*67e74705SXin Li // CHECK_BTVER2_M64: #define __x86_64__ 1 1578*67e74705SXin Li // RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \ 1579*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1580*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M32 1581*67e74705SXin Li // CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1 1582*67e74705SXin Li // CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1 1583*67e74705SXin Li // CHECK_BDVER1_M32: #define __AES__ 1 1584*67e74705SXin Li // CHECK_BDVER1_M32: #define __AVX__ 1 1585*67e74705SXin Li // CHECK_BDVER1_M32: #define __FMA4__ 1 1586*67e74705SXin Li // CHECK_BDVER1_M32: #define __LZCNT__ 1 1587*67e74705SXin Li // CHECK_BDVER1_M32: #define __MMX__ 1 1588*67e74705SXin Li // CHECK_BDVER1_M32: #define __PCLMUL__ 1 1589*67e74705SXin Li // CHECK_BDVER1_M32: #define __POPCNT__ 1 1590*67e74705SXin Li // CHECK_BDVER1_M32: #define __PRFCHW__ 1 1591*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE2_MATH__ 1 1592*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE2__ 1 1593*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE3__ 1 1594*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE4A__ 1 1595*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE4_1__ 1 1596*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE4_2__ 1 1597*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE_MATH__ 1 1598*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSE__ 1 1599*67e74705SXin Li // CHECK_BDVER1_M32: #define __SSSE3__ 1 1600*67e74705SXin Li // CHECK_BDVER1_M32: #define __XOP__ 1 1601*67e74705SXin Li // CHECK_BDVER1_M32: #define __XSAVE__ 1 1602*67e74705SXin Li // CHECK_BDVER1_M32: #define __bdver1 1 1603*67e74705SXin Li // CHECK_BDVER1_M32: #define __bdver1__ 1 1604*67e74705SXin Li // CHECK_BDVER1_M32: #define __i386 1 1605*67e74705SXin Li // CHECK_BDVER1_M32: #define __i386__ 1 1606*67e74705SXin Li // CHECK_BDVER1_M32: #define __tune_bdver1__ 1 1607*67e74705SXin Li // RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \ 1608*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1609*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M64 1610*67e74705SXin Li // CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1 1611*67e74705SXin Li // CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1 1612*67e74705SXin Li // CHECK_BDVER1_M64: #define __AES__ 1 1613*67e74705SXin Li // CHECK_BDVER1_M64: #define __AVX__ 1 1614*67e74705SXin Li // CHECK_BDVER1_M64: #define __FMA4__ 1 1615*67e74705SXin Li // CHECK_BDVER1_M64: #define __LZCNT__ 1 1616*67e74705SXin Li // CHECK_BDVER1_M64: #define __MMX__ 1 1617*67e74705SXin Li // CHECK_BDVER1_M64: #define __PCLMUL__ 1 1618*67e74705SXin Li // CHECK_BDVER1_M64: #define __POPCNT__ 1 1619*67e74705SXin Li // CHECK_BDVER1_M64: #define __PRFCHW__ 1 1620*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE2_MATH__ 1 1621*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE2__ 1 1622*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE3__ 1 1623*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE4A__ 1 1624*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE4_1__ 1 1625*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE4_2__ 1 1626*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE_MATH__ 1 1627*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSE__ 1 1628*67e74705SXin Li // CHECK_BDVER1_M64: #define __SSSE3__ 1 1629*67e74705SXin Li // CHECK_BDVER1_M64: #define __XOP__ 1 1630*67e74705SXin Li // CHECK_BDVER1_M64: #define __XSAVE__ 1 1631*67e74705SXin Li // CHECK_BDVER1_M64: #define __amd64 1 1632*67e74705SXin Li // CHECK_BDVER1_M64: #define __amd64__ 1 1633*67e74705SXin Li // CHECK_BDVER1_M64: #define __bdver1 1 1634*67e74705SXin Li // CHECK_BDVER1_M64: #define __bdver1__ 1 1635*67e74705SXin Li // CHECK_BDVER1_M64: #define __tune_bdver1__ 1 1636*67e74705SXin Li // CHECK_BDVER1_M64: #define __x86_64 1 1637*67e74705SXin Li // CHECK_BDVER1_M64: #define __x86_64__ 1 1638*67e74705SXin Li // RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \ 1639*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1640*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M32 1641*67e74705SXin Li // CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1 1642*67e74705SXin Li // CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1 1643*67e74705SXin Li // CHECK_BDVER2_M32: #define __AES__ 1 1644*67e74705SXin Li // CHECK_BDVER2_M32: #define __AVX__ 1 1645*67e74705SXin Li // CHECK_BDVER2_M32: #define __BMI__ 1 1646*67e74705SXin Li // CHECK_BDVER2_M32: #define __F16C__ 1 1647*67e74705SXin Li // CHECK_BDVER2_M32: #define __FMA4__ 1 1648*67e74705SXin Li // CHECK_BDVER2_M32: #define __FMA__ 1 1649*67e74705SXin Li // CHECK_BDVER2_M32: #define __LZCNT__ 1 1650*67e74705SXin Li // CHECK_BDVER2_M32: #define __MMX__ 1 1651*67e74705SXin Li // CHECK_BDVER2_M32: #define __PCLMUL__ 1 1652*67e74705SXin Li // CHECK_BDVER2_M32: #define __POPCNT__ 1 1653*67e74705SXin Li // CHECK_BDVER2_M32: #define __PRFCHW__ 1 1654*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE2_MATH__ 1 1655*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE2__ 1 1656*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE3__ 1 1657*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE4A__ 1 1658*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE4_1__ 1 1659*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE4_2__ 1 1660*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE_MATH__ 1 1661*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSE__ 1 1662*67e74705SXin Li // CHECK_BDVER2_M32: #define __SSSE3__ 1 1663*67e74705SXin Li // CHECK_BDVER2_M32: #define __TBM__ 1 1664*67e74705SXin Li // CHECK_BDVER2_M32: #define __XOP__ 1 1665*67e74705SXin Li // CHECK_BDVER2_M32: #define __XSAVE__ 1 1666*67e74705SXin Li // CHECK_BDVER2_M32: #define __bdver2 1 1667*67e74705SXin Li // CHECK_BDVER2_M32: #define __bdver2__ 1 1668*67e74705SXin Li // CHECK_BDVER2_M32: #define __i386 1 1669*67e74705SXin Li // CHECK_BDVER2_M32: #define __i386__ 1 1670*67e74705SXin Li // CHECK_BDVER2_M32: #define __tune_bdver2__ 1 1671*67e74705SXin Li // RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \ 1672*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1673*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M64 1674*67e74705SXin Li // CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1 1675*67e74705SXin Li // CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1 1676*67e74705SXin Li // CHECK_BDVER2_M64: #define __AES__ 1 1677*67e74705SXin Li // CHECK_BDVER2_M64: #define __AVX__ 1 1678*67e74705SXin Li // CHECK_BDVER2_M64: #define __BMI__ 1 1679*67e74705SXin Li // CHECK_BDVER2_M64: #define __F16C__ 1 1680*67e74705SXin Li // CHECK_BDVER2_M64: #define __FMA4__ 1 1681*67e74705SXin Li // CHECK_BDVER2_M64: #define __FMA__ 1 1682*67e74705SXin Li // CHECK_BDVER2_M64: #define __LZCNT__ 1 1683*67e74705SXin Li // CHECK_BDVER2_M64: #define __MMX__ 1 1684*67e74705SXin Li // CHECK_BDVER2_M64: #define __PCLMUL__ 1 1685*67e74705SXin Li // CHECK_BDVER2_M64: #define __POPCNT__ 1 1686*67e74705SXin Li // CHECK_BDVER2_M64: #define __PRFCHW__ 1 1687*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE2_MATH__ 1 1688*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE2__ 1 1689*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE3__ 1 1690*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE4A__ 1 1691*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE4_1__ 1 1692*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE4_2__ 1 1693*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE_MATH__ 1 1694*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSE__ 1 1695*67e74705SXin Li // CHECK_BDVER2_M64: #define __SSSE3__ 1 1696*67e74705SXin Li // CHECK_BDVER2_M64: #define __TBM__ 1 1697*67e74705SXin Li // CHECK_BDVER2_M64: #define __XOP__ 1 1698*67e74705SXin Li // CHECK_BDVER2_M64: #define __XSAVE__ 1 1699*67e74705SXin Li // CHECK_BDVER2_M64: #define __amd64 1 1700*67e74705SXin Li // CHECK_BDVER2_M64: #define __amd64__ 1 1701*67e74705SXin Li // CHECK_BDVER2_M64: #define __bdver2 1 1702*67e74705SXin Li // CHECK_BDVER2_M64: #define __bdver2__ 1 1703*67e74705SXin Li // CHECK_BDVER2_M64: #define __tune_bdver2__ 1 1704*67e74705SXin Li // CHECK_BDVER2_M64: #define __x86_64 1 1705*67e74705SXin Li // CHECK_BDVER2_M64: #define __x86_64__ 1 1706*67e74705SXin Li // RUN: %clang -march=bdver3 -m32 -E -dM %s -o - 2>&1 \ 1707*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1708*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M32 1709*67e74705SXin Li // CHECK_BDVER3_M32-NOT: #define __3dNOW_A__ 1 1710*67e74705SXin Li // CHECK_BDVER3_M32-NOT: #define __3dNOW__ 1 1711*67e74705SXin Li // CHECK_BDVER3_M32: #define __AES__ 1 1712*67e74705SXin Li // CHECK_BDVER3_M32: #define __AVX__ 1 1713*67e74705SXin Li // CHECK_BDVER3_M32: #define __BMI__ 1 1714*67e74705SXin Li // CHECK_BDVER3_M32: #define __F16C__ 1 1715*67e74705SXin Li // CHECK_BDVER3_M32: #define __FMA4__ 1 1716*67e74705SXin Li // CHECK_BDVER3_M32: #define __FMA__ 1 1717*67e74705SXin Li // CHECK_BDVER3_M32: #define __FSGSBASE__ 1 1718*67e74705SXin Li // CHECK_BDVER3_M32: #define __LZCNT__ 1 1719*67e74705SXin Li // CHECK_BDVER3_M32: #define __MMX__ 1 1720*67e74705SXin Li // CHECK_BDVER3_M32: #define __PCLMUL__ 1 1721*67e74705SXin Li // CHECK_BDVER3_M32: #define __POPCNT__ 1 1722*67e74705SXin Li // CHECK_BDVER3_M32: #define __PRFCHW__ 1 1723*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE2_MATH__ 1 1724*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE2__ 1 1725*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE3__ 1 1726*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE4A__ 1 1727*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE4_1__ 1 1728*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE4_2__ 1 1729*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE_MATH__ 1 1730*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSE__ 1 1731*67e74705SXin Li // CHECK_BDVER3_M32: #define __SSSE3__ 1 1732*67e74705SXin Li // CHECK_BDVER3_M32: #define __TBM__ 1 1733*67e74705SXin Li // CHECK_BDVER3_M32: #define __XOP__ 1 1734*67e74705SXin Li // CHECK_BDVER3_M32: #define __XSAVEOPT__ 1 1735*67e74705SXin Li // CHECK_BDVER3_M32: #define __XSAVE__ 1 1736*67e74705SXin Li // CHECK_BDVER3_M32: #define __bdver3 1 1737*67e74705SXin Li // CHECK_BDVER3_M32: #define __bdver3__ 1 1738*67e74705SXin Li // CHECK_BDVER3_M32: #define __i386 1 1739*67e74705SXin Li // CHECK_BDVER3_M32: #define __i386__ 1 1740*67e74705SXin Li // CHECK_BDVER3_M32: #define __tune_bdver3__ 1 1741*67e74705SXin Li // RUN: %clang -march=bdver3 -m64 -E -dM %s -o - 2>&1 \ 1742*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1743*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M64 1744*67e74705SXin Li // CHECK_BDVER3_M64-NOT: #define __3dNOW_A__ 1 1745*67e74705SXin Li // CHECK_BDVER3_M64-NOT: #define __3dNOW__ 1 1746*67e74705SXin Li // CHECK_BDVER3_M64: #define __AES__ 1 1747*67e74705SXin Li // CHECK_BDVER3_M64: #define __AVX__ 1 1748*67e74705SXin Li // CHECK_BDVER3_M64: #define __BMI__ 1 1749*67e74705SXin Li // CHECK_BDVER3_M64: #define __F16C__ 1 1750*67e74705SXin Li // CHECK_BDVER3_M64: #define __FMA4__ 1 1751*67e74705SXin Li // CHECK_BDVER3_M64: #define __FMA__ 1 1752*67e74705SXin Li // CHECK_BDVER3_M64: #define __FSGSBASE__ 1 1753*67e74705SXin Li // CHECK_BDVER3_M64: #define __LZCNT__ 1 1754*67e74705SXin Li // CHECK_BDVER3_M64: #define __MMX__ 1 1755*67e74705SXin Li // CHECK_BDVER3_M64: #define __PCLMUL__ 1 1756*67e74705SXin Li // CHECK_BDVER3_M64: #define __POPCNT__ 1 1757*67e74705SXin Li // CHECK_BDVER3_M64: #define __PRFCHW__ 1 1758*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE2_MATH__ 1 1759*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE2__ 1 1760*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE3__ 1 1761*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE4A__ 1 1762*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE4_1__ 1 1763*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE4_2__ 1 1764*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE_MATH__ 1 1765*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSE__ 1 1766*67e74705SXin Li // CHECK_BDVER3_M64: #define __SSSE3__ 1 1767*67e74705SXin Li // CHECK_BDVER3_M64: #define __TBM__ 1 1768*67e74705SXin Li // CHECK_BDVER3_M64: #define __XOP__ 1 1769*67e74705SXin Li // CHECK_BDVER3_M64: #define __XSAVEOPT__ 1 1770*67e74705SXin Li // CHECK_BDVER3_M64: #define __XSAVE__ 1 1771*67e74705SXin Li // CHECK_BDVER3_M64: #define __amd64 1 1772*67e74705SXin Li // CHECK_BDVER3_M64: #define __amd64__ 1 1773*67e74705SXin Li // CHECK_BDVER3_M64: #define __bdver3 1 1774*67e74705SXin Li // CHECK_BDVER3_M64: #define __bdver3__ 1 1775*67e74705SXin Li // CHECK_BDVER3_M64: #define __tune_bdver3__ 1 1776*67e74705SXin Li // CHECK_BDVER3_M64: #define __x86_64 1 1777*67e74705SXin Li // CHECK_BDVER3_M64: #define __x86_64__ 1 1778*67e74705SXin Li // RUN: %clang -march=bdver4 -m32 -E -dM %s -o - 2>&1 \ 1779*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1780*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M32 1781*67e74705SXin Li // CHECK_BDVER4_M32-NOT: #define __3dNOW_A__ 1 1782*67e74705SXin Li // CHECK_BDVER4_M32-NOT: #define __3dNOW__ 1 1783*67e74705SXin Li // CHECK_BDVER4_M32: #define __AES__ 1 1784*67e74705SXin Li // CHECK_BDVER4_M32: #define __AVX2__ 1 1785*67e74705SXin Li // CHECK_BDVER4_M32: #define __AVX__ 1 1786*67e74705SXin Li // CHECK_BDVER4_M32: #define __BMI2__ 1 1787*67e74705SXin Li // CHECK_BDVER4_M32: #define __BMI__ 1 1788*67e74705SXin Li // CHECK_BDVER4_M32: #define __F16C__ 1 1789*67e74705SXin Li // CHECK_BDVER4_M32: #define __FMA4__ 1 1790*67e74705SXin Li // CHECK_BDVER4_M32: #define __FMA__ 1 1791*67e74705SXin Li // CHECK_BDVER4_M32: #define __FSGSBASE__ 1 1792*67e74705SXin Li // CHECK_BDVER4_M32: #define __LZCNT__ 1 1793*67e74705SXin Li // CHECK_BDVER4_M32: #define __MMX__ 1 1794*67e74705SXin Li // CHECK_BDVER4_M32: #define __PCLMUL__ 1 1795*67e74705SXin Li // CHECK_BDVER4_M32: #define __POPCNT__ 1 1796*67e74705SXin Li // CHECK_BDVER4_M32: #define __PRFCHW__ 1 1797*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE2_MATH__ 1 1798*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE2__ 1 1799*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE3__ 1 1800*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE4A__ 1 1801*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE4_1__ 1 1802*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE4_2__ 1 1803*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE_MATH__ 1 1804*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSE__ 1 1805*67e74705SXin Li // CHECK_BDVER4_M32: #define __SSSE3__ 1 1806*67e74705SXin Li // CHECK_BDVER4_M32: #define __TBM__ 1 1807*67e74705SXin Li // CHECK_BDVER4_M32: #define __XOP__ 1 1808*67e74705SXin Li // CHECK_BDVER4_M32: #define __XSAVE__ 1 1809*67e74705SXin Li // CHECK_BDVER4_M32: #define __bdver4 1 1810*67e74705SXin Li // CHECK_BDVER4_M32: #define __bdver4__ 1 1811*67e74705SXin Li // CHECK_BDVER4_M32: #define __i386 1 1812*67e74705SXin Li // CHECK_BDVER4_M32: #define __i386__ 1 1813*67e74705SXin Li // CHECK_BDVER4_M32: #define __tune_bdver4__ 1 1814*67e74705SXin Li // RUN: %clang -march=bdver4 -m64 -E -dM %s -o - 2>&1 \ 1815*67e74705SXin Li // RUN: -target i386-unknown-linux \ 1816*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M64 1817*67e74705SXin Li // CHECK_BDVER4_M64-NOT: #define __3dNOW_A__ 1 1818*67e74705SXin Li // CHECK_BDVER4_M64-NOT: #define __3dNOW__ 1 1819*67e74705SXin Li // CHECK_BDVER4_M64: #define __AES__ 1 1820*67e74705SXin Li // CHECK_BDVER4_M64: #define __AVX2__ 1 1821*67e74705SXin Li // CHECK_BDVER4_M64: #define __AVX__ 1 1822*67e74705SXin Li // CHECK_BDVER4_M64: #define __BMI2__ 1 1823*67e74705SXin Li // CHECK_BDVER4_M64: #define __BMI__ 1 1824*67e74705SXin Li // CHECK_BDVER4_M64: #define __F16C__ 1 1825*67e74705SXin Li // CHECK_BDVER4_M64: #define __FMA4__ 1 1826*67e74705SXin Li // CHECK_BDVER4_M64: #define __FMA__ 1 1827*67e74705SXin Li // CHECK_BDVER4_M64: #define __FSGSBASE__ 1 1828*67e74705SXin Li // CHECK_BDVER4_M64: #define __LZCNT__ 1 1829*67e74705SXin Li // CHECK_BDVER4_M64: #define __MMX__ 1 1830*67e74705SXin Li // CHECK_BDVER4_M64: #define __PCLMUL__ 1 1831*67e74705SXin Li // CHECK_BDVER4_M64: #define __POPCNT__ 1 1832*67e74705SXin Li // CHECK_BDVER4_M64: #define __PRFCHW__ 1 1833*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE2_MATH__ 1 1834*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE2__ 1 1835*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE3__ 1 1836*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE4A__ 1 1837*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE4_1__ 1 1838*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE4_2__ 1 1839*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE_MATH__ 1 1840*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSE__ 1 1841*67e74705SXin Li // CHECK_BDVER4_M64: #define __SSSE3__ 1 1842*67e74705SXin Li // CHECK_BDVER4_M64: #define __TBM__ 1 1843*67e74705SXin Li // CHECK_BDVER4_M64: #define __XOP__ 1 1844*67e74705SXin Li // CHECK_BDVER4_M64: #define __XSAVE__ 1 1845*67e74705SXin Li // CHECK_BDVER4_M64: #define __amd64 1 1846*67e74705SXin Li // CHECK_BDVER4_M64: #define __amd64__ 1 1847*67e74705SXin Li // CHECK_BDVER4_M64: #define __bdver4 1 1848*67e74705SXin Li // CHECK_BDVER4_M64: #define __bdver4__ 1 1849*67e74705SXin Li // CHECK_BDVER4_M64: #define __tune_bdver4__ 1 1850*67e74705SXin Li // CHECK_BDVER4_M64: #define __x86_64 1 1851*67e74705SXin Li // CHECK_BDVER4_M64: #define __x86_64__ 1 1852*67e74705SXin Li // 1853*67e74705SXin Li // End X86/GCC/Linux tests ------------------ 1854*67e74705SXin Li 1855*67e74705SXin Li // Begin PPC/GCC/Linux tests ---------------- 1856*67e74705SXin Li // RUN: %clang -mvsx -E -dM %s -o - 2>&1 \ 1857*67e74705SXin Li // RUN: -target powerpc64-unknown-linux \ 1858*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M64 1859*67e74705SXin Li // 1860*67e74705SXin Li // CHECK_PPC_VSX_M64: #define __VSX__ 1 1861*67e74705SXin Li // 1862*67e74705SXin Li // RUN: %clang -mpower8-vector -E -dM %s -o - 2>&1 \ 1863*67e74705SXin Li // RUN: -target powerpc64-unknown-linux \ 1864*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_POWER8_VECTOR_M64 1865*67e74705SXin Li // 1866*67e74705SXin Li // CHECK_PPC_POWER8_VECTOR_M64: #define __POWER8_VECTOR__ 1 1867*67e74705SXin Li // 1868*67e74705SXin Li // RUN: %clang -mcrypto -E -dM %s -o - 2>&1 \ 1869*67e74705SXin Li // RUN: -target powerpc64-unknown-linux \ 1870*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_CRYPTO_M64 1871*67e74705SXin Li // 1872*67e74705SXin Li // CHECK_PPC_CRYPTO_M64: #define __CRYPTO__ 1 1873*67e74705SXin Li // 1874*67e74705SXin Li // RUN: %clang -mcpu=ppc64 -E -dM %s -o - 2>&1 \ 1875*67e74705SXin Li // RUN: -target powerpc64-unknown-unknown \ 1876*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS 1877*67e74705SXin Li // RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \ 1878*67e74705SXin Li // RUN: -target powerpc64-unknown-unknown \ 1879*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS 1880*67e74705SXin Li // RUN: %clang -E -dM %s -o - 2>&1 \ 1881*67e74705SXin Li // RUN: -target powerpc64le-unknown-linux \ 1882*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS 1883*67e74705SXin Li // 1884*67e74705SXin Li // CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 1885*67e74705SXin Li // CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 1886*67e74705SXin Li // CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 1887*67e74705SXin Li // CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 1888*67e74705SXin Li // 1889*67e74705SXin Li // End PPC/GCC/Linux tests ------------------ 1890*67e74705SXin Li 1891*67e74705SXin Li // Begin Sparc/GCC/Linux tests ---------------- 1892*67e74705SXin Li // 1893*67e74705SXin Li // RUN: %clang -E -dM %s -o - 2>&1 \ 1894*67e74705SXin Li // RUN: -target sparc-unknown-linux \ 1895*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC 1896*67e74705SXin Li // RUN: %clang -mcpu=v9 -E -dM %s -o - 2>&1 \ 1897*67e74705SXin Li // RUN: -target sparc-unknown-linux \ 1898*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC-V9 1899*67e74705SXin Li // 1900*67e74705SXin Li // CHECK_SPARC: #define __BIG_ENDIAN__ 1 1901*67e74705SXin Li // CHECK_SPARC: #define __sparc 1 1902*67e74705SXin Li // CHECK_SPARC: #define __sparc__ 1 1903*67e74705SXin Li // CHECK_SPARC-NOT: #define __sparcv9 1 1904*67e74705SXin Li // CHECK_SPARC-NOT: #define __sparcv9__ 1 1905*67e74705SXin Li // CHECK_SPARC: #define __sparcv8 1 1906*67e74705SXin Li // CHECK_SPARC-NOT: #define __sparcv9 1 1907*67e74705SXin Li // CHECK_SPARC-NOT: #define __sparcv9__ 1 1908*67e74705SXin Li 1909*67e74705SXin Li // CHECK_SPARC-V9-NOT: #define __sparcv8 1 1910*67e74705SXin Li // CHECK_SPARC-V9: #define __sparc_v9__ 1 1911*67e74705SXin Li // CHECK_SPARC-V9: #define __sparcv9 1 1912*67e74705SXin Li // CHECK_SPARC-V9-NOT: #define __sparcv8 1 1913*67e74705SXin Li 1914*67e74705SXin Li // 1915*67e74705SXin Li // RUN: %clang -E -dM %s -o - 2>&1 \ 1916*67e74705SXin Li // RUN: -target sparcel-unknown-linux \ 1917*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCEL 1918*67e74705SXin Li // RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2 2>&1 \ 1919*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-1 -check-prefix=CHECK_SPARCEL 1920*67e74705SXin Li // RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2.1 2>&1 \ 1921*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-1 -check-prefix=CHECK_SPARCEL 1922*67e74705SXin Li // RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2.2 2>&1 \ 1923*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 -check-prefix=CHECK_SPARCEL 1924*67e74705SXin Li // CHECK_SPARCEL: #define __LITTLE_ENDIAN__ 1 1925*67e74705SXin Li // CHECK_MYRIAD2-1: #define __myriad2 1 1926*67e74705SXin Li // CHECK_MYRIAD2-1: #define __myriad2__ 1 1927*67e74705SXin Li // CHECK_MYRIAD2-2: #define __myriad2 2 1928*67e74705SXin Li // CHECK_MYRIAD2-2: #define __myriad2__ 2 1929*67e74705SXin Li // CHECK_SPARCEL: #define __sparc 1 1930*67e74705SXin Li // CHECK_SPARCEL: #define __sparc__ 1 1931*67e74705SXin Li // CHECK_SPARCEL: #define __sparcv8 1 1932*67e74705SXin Li // 1933*67e74705SXin Li // RUN: %clang -E -dM %s -o - 2>&1 \ 1934*67e74705SXin Li // RUN: -target sparcv9-unknown-linux \ 1935*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9 1936*67e74705SXin Li // 1937*67e74705SXin Li // CHECK_SPARCV9: #define __BIG_ENDIAN__ 1 1938*67e74705SXin Li // CHECK_SPARCV9: #define __sparc 1 1939*67e74705SXin Li // CHECK_SPARCV9: #define __sparc64__ 1 1940*67e74705SXin Li // CHECK_SPARCV9: #define __sparc__ 1 1941*67e74705SXin Li // CHECK_SPARCV9: #define __sparc_v9__ 1 1942*67e74705SXin Li // CHECK_SPARCV9: #define __sparcv9 1 1943*67e74705SXin Li // CHECK_SPARCV9: #define __sparcv9__ 1 1944*67e74705SXin Li 1945*67e74705SXin Li // Begin SystemZ/GCC/Linux tests ---------------- 1946*67e74705SXin Li // 1947*67e74705SXin Li // RUN: %clang -march=z10 -E -dM %s -o - 2>&1 \ 1948*67e74705SXin Li // RUN: -target s390x-unknown-linux \ 1949*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_Z10 1950*67e74705SXin Li // 1951*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 1952*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 1953*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 1954*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 1955*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __LONG_DOUBLE_128__ 1 1956*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __s390__ 1 1957*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __s390x__ 1 1958*67e74705SXin Li // CHECK_SYSTEMZ_Z10: #define __zarch__ 1 1959*67e74705SXin Li // 1960*67e74705SXin Li // RUN: %clang -march=zEC12 -E -dM %s -o - 2>&1 \ 1961*67e74705SXin Li // RUN: -target s390x-unknown-linux \ 1962*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZEC12 1963*67e74705SXin Li // 1964*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 1965*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 1966*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 1967*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 1968*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __HTM__ 1 1969*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __LONG_DOUBLE_128__ 1 1970*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __s390__ 1 1971*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __s390x__ 1 1972*67e74705SXin Li // CHECK_SYSTEMZ_ZEC12: #define __zarch__ 1 1973*67e74705SXin Li // 1974*67e74705SXin Li // RUN: %clang -mhtm -E -dM %s -o - 2>&1 \ 1975*67e74705SXin Li // RUN: -target s390x-unknown-linux \ 1976*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_HTM 1977*67e74705SXin Li // 1978*67e74705SXin Li // CHECK_SYSTEMZ_HTM: #define __HTM__ 1 1979*67e74705SXin Li // 1980*67e74705SXin Li // RUN: %clang -fzvector -E -dM %s -o - 2>&1 \ 1981*67e74705SXin Li // RUN: -target s390x-unknown-linux \ 1982*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR 1983*67e74705SXin Li // RUN: %clang -mzvector -E -dM %s -o - 2>&1 \ 1984*67e74705SXin Li // RUN: -target s390x-unknown-linux \ 1985*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR 1986*67e74705SXin Li // 1987*67e74705SXin Li // CHECK_SYSTEMZ_ZVECTOR: #define __VEC__ 10301 1988*67e74705SXin Li 1989*67e74705SXin Li // Begin amdgcn tests ---------------- 1990*67e74705SXin Li // 1991*67e74705SXin Li // RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \ 1992*67e74705SXin Li // RUN: -target amdgcn-unknown-unknown \ 1993*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDGCN 1994*67e74705SXin Li // CHECK_AMDGCN: #define __AMDGCN__ 1 1995*67e74705SXin Li 1996*67e74705SXin Li // Begin r600 tests ---------------- 1997*67e74705SXin Li // 1998*67e74705SXin Li // RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \ 1999*67e74705SXin Li // RUN: -target r600-unknown-unknown \ 2000*67e74705SXin Li // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600 2001*67e74705SXin Li // CHECK_R600: #define __R600__ 1 2002