Home | History | Annotate | Download | only in Preprocessor
      1 // These tests are generated by running utils/generate_arch_predefine_tests.sh
      2 // to observe GCC's behavior (or some other system compiler's behavior).
      3 //
      4 // Begin X86/GCC/Linux tests ----------------
      5 //
      6 // RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
      7 // RUN:     -target i386-unknown-linux \
      8 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M32
      9 // CHECK_I386_M32: #define __i386 1
     10 // CHECK_I386_M32: #define __i386__ 1
     11 // CHECK_I386_M32: #define __tune_i386__ 1
     12 // CHECK_I386_M32: #define i386 1
     13 // RUN: %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
     14 // RUN:     -target i386-unknown-linux \
     15 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M64
     16 // CHECK_I386_M64: error:
     17 //
     18 // RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
     19 // RUN:     -target i386-unknown-linux \
     20 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M32
     21 // CHECK_I486_M32: #define __i386 1
     22 // CHECK_I486_M32: #define __i386__ 1
     23 // CHECK_I486_M32: #define __i486 1
     24 // CHECK_I486_M32: #define __i486__ 1
     25 // CHECK_I486_M32: #define __tune_i486__ 1
     26 // CHECK_I486_M32: #define i386 1
     27 // RUN: %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
     28 // RUN:     -target i386-unknown-linux \
     29 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M64
     30 // CHECK_I486_M64: error:
     31 //
     32 // RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
     33 // RUN:     -target i386-unknown-linux \
     34 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M32
     35 // CHECK_I586_M32: #define __i386 1
     36 // CHECK_I586_M32: #define __i386__ 1
     37 // CHECK_I586_M32: #define __i586 1
     38 // CHECK_I586_M32: #define __i586__ 1
     39 // CHECK_I586_M32: #define __pentium 1
     40 // CHECK_I586_M32: #define __pentium__ 1
     41 // CHECK_I586_M32: #define __tune_i586__ 1
     42 // CHECK_I586_M32: #define __tune_pentium__ 1
     43 // CHECK_I586_M32: #define i386 1
     44 // RUN: %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
     45 // RUN:     -target i386-unknown-linux \
     46 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M64
     47 // CHECK_I586_M64: error:
     48 //
     49 // RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
     50 // RUN:     -target i386-unknown-linux \
     51 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M32
     52 // CHECK_PENTIUM_M32: #define __i386 1
     53 // CHECK_PENTIUM_M32: #define __i386__ 1
     54 // CHECK_PENTIUM_M32: #define __i586 1
     55 // CHECK_PENTIUM_M32: #define __i586__ 1
     56 // CHECK_PENTIUM_M32: #define __pentium 1
     57 // CHECK_PENTIUM_M32: #define __pentium__ 1
     58 // CHECK_PENTIUM_M32: #define __tune_i586__ 1
     59 // CHECK_PENTIUM_M32: #define __tune_pentium__ 1
     60 // CHECK_PENTIUM_M32: #define i386 1
     61 // RUN: %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
     62 // RUN:     -target i386-unknown-linux \
     63 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
     64 // CHECK_PENTIUM_M64: error:
     65 //
     66 // RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
     67 // RUN:     -target i386-unknown-linux \
     68 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
     69 // CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
     70 // CHECK_PENTIUM_MMX_M32: #define __i386 1
     71 // CHECK_PENTIUM_MMX_M32: #define __i386__ 1
     72 // CHECK_PENTIUM_MMX_M32: #define __i586 1
     73 // CHECK_PENTIUM_MMX_M32: #define __i586__ 1
     74 // CHECK_PENTIUM_MMX_M32: #define __pentium 1
     75 // CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
     76 // CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
     77 // CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
     78 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
     79 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
     80 // CHECK_PENTIUM_MMX_M32: #define i386 1
     81 // RUN: %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
     82 // RUN:     -target i386-unknown-linux \
     83 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
     84 // CHECK_PENTIUM_MMX_M64: error:
     85 //
     86 // RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
     87 // RUN:     -target i386-unknown-linux \
     88 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
     89 // CHECK_WINCHIP_C6_M32: #define __MMX__ 1
     90 // CHECK_WINCHIP_C6_M32: #define __i386 1
     91 // CHECK_WINCHIP_C6_M32: #define __i386__ 1
     92 // CHECK_WINCHIP_C6_M32: #define __i486 1
     93 // CHECK_WINCHIP_C6_M32: #define __i486__ 1
     94 // CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
     95 // CHECK_WINCHIP_C6_M32: #define i386 1
     96 // RUN: %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
     97 // RUN:     -target i386-unknown-linux \
     98 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
     99 // CHECK_WINCHIP_C6_M64: error:
    100 //
    101 // RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
    102 // RUN:     -target i386-unknown-linux \
    103 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
    104 // CHECK_WINCHIP2_M32: #define __3dNOW__ 1
    105 // CHECK_WINCHIP2_M32: #define __MMX__ 1
    106 // CHECK_WINCHIP2_M32: #define __i386 1
    107 // CHECK_WINCHIP2_M32: #define __i386__ 1
    108 // CHECK_WINCHIP2_M32: #define __i486 1
    109 // CHECK_WINCHIP2_M32: #define __i486__ 1
    110 // CHECK_WINCHIP2_M32: #define __tune_i486__ 1
    111 // CHECK_WINCHIP2_M32: #define i386 1
    112 // RUN: %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
    113 // RUN:     -target i386-unknown-linux \
    114 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
    115 // CHECK_WINCHIP2_M64: error:
    116 //
    117 // RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
    118 // RUN:     -target i386-unknown-linux \
    119 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M32
    120 // CHECK_C3_M32: #define __3dNOW__ 1
    121 // CHECK_C3_M32: #define __MMX__ 1
    122 // CHECK_C3_M32: #define __i386 1
    123 // CHECK_C3_M32: #define __i386__ 1
    124 // CHECK_C3_M32: #define __i486 1
    125 // CHECK_C3_M32: #define __i486__ 1
    126 // CHECK_C3_M32: #define __tune_i486__ 1
    127 // CHECK_C3_M32: #define i386 1
    128 // RUN: %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
    129 // RUN:     -target i386-unknown-linux \
    130 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M64
    131 // CHECK_C3_M64: error:
    132 //
    133 // RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
    134 // RUN:     -target i386-unknown-linux \
    135 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M32
    136 // CHECK_C3_2_M32: #define __MMX__ 1
    137 // CHECK_C3_2_M32: #define __SSE__ 1
    138 // CHECK_C3_2_M32: #define __i386 1
    139 // CHECK_C3_2_M32: #define __i386__ 1
    140 // CHECK_C3_2_M32: #define __i686 1
    141 // CHECK_C3_2_M32: #define __i686__ 1
    142 // CHECK_C3_2_M32: #define __pentiumpro 1
    143 // CHECK_C3_2_M32: #define __pentiumpro__ 1
    144 // CHECK_C3_2_M32: #define __tune_i686__ 1
    145 // CHECK_C3_2_M32: #define __tune_pentium2__ 1
    146 // CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
    147 // CHECK_C3_2_M32: #define i386 1
    148 // RUN: %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
    149 // RUN:     -target i386-unknown-linux \
    150 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M64
    151 // CHECK_C3_2_M64: error:
    152 //
    153 // RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
    154 // RUN:     -target i386-unknown-linux \
    155 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M32
    156 // CHECK_I686_M32: #define __i386 1
    157 // CHECK_I686_M32: #define __i386__ 1
    158 // CHECK_I686_M32: #define __i686 1
    159 // CHECK_I686_M32: #define __i686__ 1
    160 // CHECK_I686_M32: #define __pentiumpro 1
    161 // CHECK_I686_M32: #define __pentiumpro__ 1
    162 // CHECK_I686_M32: #define i386 1
    163 // RUN: %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
    164 // RUN:     -target i386-unknown-linux \
    165 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M64
    166 // CHECK_I686_M64: error:
    167 //
    168 // RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
    169 // RUN:     -target i386-unknown-linux \
    170 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
    171 // CHECK_PENTIUMPRO_M32: #define __i386 1
    172 // CHECK_PENTIUMPRO_M32: #define __i386__ 1
    173 // CHECK_PENTIUMPRO_M32: #define __i686 1
    174 // CHECK_PENTIUMPRO_M32: #define __i686__ 1
    175 // CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
    176 // CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
    177 // CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
    178 // CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
    179 // CHECK_PENTIUMPRO_M32: #define i386 1
    180 // RUN: %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
    181 // RUN:     -target i386-unknown-linux \
    182 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
    183 // CHECK_PENTIUMPRO_M64: error:
    184 //
    185 // RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
    186 // RUN:     -target i386-unknown-linux \
    187 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
    188 // CHECK_PENTIUM2_M32: #define __MMX__ 1
    189 // CHECK_PENTIUM2_M32: #define __i386 1
    190 // CHECK_PENTIUM2_M32: #define __i386__ 1
    191 // CHECK_PENTIUM2_M32: #define __i686 1
    192 // CHECK_PENTIUM2_M32: #define __i686__ 1
    193 // CHECK_PENTIUM2_M32: #define __pentiumpro 1
    194 // CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
    195 // CHECK_PENTIUM2_M32: #define __tune_i686__ 1
    196 // CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
    197 // CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
    198 // CHECK_PENTIUM2_M32: #define i386 1
    199 // RUN: %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
    200 // RUN:     -target i386-unknown-linux \
    201 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
    202 // CHECK_PENTIUM2_M64: error:
    203 //
    204 // RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
    205 // RUN:     -target i386-unknown-linux \
    206 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
    207 // CHECK_PENTIUM3_M32: #define __MMX__ 1
    208 // CHECK_PENTIUM3_M32: #define __SSE__ 1
    209 // CHECK_PENTIUM3_M32: #define __i386 1
    210 // CHECK_PENTIUM3_M32: #define __i386__ 1
    211 // CHECK_PENTIUM3_M32: #define __i686 1
    212 // CHECK_PENTIUM3_M32: #define __i686__ 1
    213 // CHECK_PENTIUM3_M32: #define __pentiumpro 1
    214 // CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
    215 // CHECK_PENTIUM3_M32: #define __tune_i686__ 1
    216 // CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
    217 // CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
    218 // CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
    219 // CHECK_PENTIUM3_M32: #define i386 1
    220 // RUN: %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
    221 // RUN:     -target i386-unknown-linux \
    222 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
    223 // CHECK_PENTIUM3_M64: error:
    224 //
    225 // RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
    226 // RUN:     -target i386-unknown-linux \
    227 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
    228 // CHECK_PENTIUM3M_M32: #define __MMX__ 1
    229 // CHECK_PENTIUM3M_M32: #define __SSE__ 1
    230 // CHECK_PENTIUM3M_M32: #define __i386 1
    231 // CHECK_PENTIUM3M_M32: #define __i386__ 1
    232 // CHECK_PENTIUM3M_M32: #define __i686 1
    233 // CHECK_PENTIUM3M_M32: #define __i686__ 1
    234 // CHECK_PENTIUM3M_M32: #define __pentiumpro 1
    235 // CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
    236 // CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
    237 // CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
    238 // CHECK_PENTIUM3M_M32: #define i386 1
    239 // RUN: %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
    240 // RUN:     -target i386-unknown-linux \
    241 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
    242 // CHECK_PENTIUM3M_M64: error:
    243 //
    244 // RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
    245 // RUN:     -target i386-unknown-linux \
    246 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
    247 // CHECK_PENTIUM_M_M32: #define __MMX__ 1
    248 // CHECK_PENTIUM_M_M32: #define __SSE2__ 1
    249 // CHECK_PENTIUM_M_M32: #define __SSE__ 1
    250 // CHECK_PENTIUM_M_M32: #define __i386 1
    251 // CHECK_PENTIUM_M_M32: #define __i386__ 1
    252 // CHECK_PENTIUM_M_M32: #define __i686 1
    253 // CHECK_PENTIUM_M_M32: #define __i686__ 1
    254 // CHECK_PENTIUM_M_M32: #define __pentiumpro 1
    255 // CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
    256 // CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
    257 // CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
    258 // CHECK_PENTIUM_M_M32: #define i386 1
    259 // RUN: %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
    260 // RUN:     -target i386-unknown-linux \
    261 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
    262 // CHECK_PENTIUM_M_M64: error:
    263 //
    264 // RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
    265 // RUN:     -target i386-unknown-linux \
    266 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
    267 // CHECK_PENTIUM4_M32: #define __MMX__ 1
    268 // CHECK_PENTIUM4_M32: #define __SSE2__ 1
    269 // CHECK_PENTIUM4_M32: #define __SSE__ 1
    270 // CHECK_PENTIUM4_M32: #define __i386 1
    271 // CHECK_PENTIUM4_M32: #define __i386__ 1
    272 // CHECK_PENTIUM4_M32: #define __pentium4 1
    273 // CHECK_PENTIUM4_M32: #define __pentium4__ 1
    274 // CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
    275 // CHECK_PENTIUM4_M32: #define i386 1
    276 // RUN: %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
    277 // RUN:     -target i386-unknown-linux \
    278 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
    279 // CHECK_PENTIUM4_M64: error:
    280 //
    281 // RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
    282 // RUN:     -target i386-unknown-linux \
    283 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
    284 // CHECK_PENTIUM4M_M32: #define __MMX__ 1
    285 // CHECK_PENTIUM4M_M32: #define __SSE2__ 1
    286 // CHECK_PENTIUM4M_M32: #define __SSE__ 1
    287 // CHECK_PENTIUM4M_M32: #define __i386 1
    288 // CHECK_PENTIUM4M_M32: #define __i386__ 1
    289 // CHECK_PENTIUM4M_M32: #define __pentium4 1
    290 // CHECK_PENTIUM4M_M32: #define __pentium4__ 1
    291 // CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
    292 // CHECK_PENTIUM4M_M32: #define i386 1
    293 // RUN: %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
    294 // RUN:     -target i386-unknown-linux \
    295 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
    296 // CHECK_PENTIUM4M_M64: error:
    297 //
    298 // RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
    299 // RUN:     -target i386-unknown-linux \
    300 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
    301 // CHECK_PRESCOTT_M32: #define __MMX__ 1
    302 // CHECK_PRESCOTT_M32: #define __SSE2__ 1
    303 // CHECK_PRESCOTT_M32: #define __SSE3__ 1
    304 // CHECK_PRESCOTT_M32: #define __SSE__ 1
    305 // CHECK_PRESCOTT_M32: #define __i386 1
    306 // CHECK_PRESCOTT_M32: #define __i386__ 1
    307 // CHECK_PRESCOTT_M32: #define __nocona 1
    308 // CHECK_PRESCOTT_M32: #define __nocona__ 1
    309 // CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
    310 // CHECK_PRESCOTT_M32: #define i386 1
    311 // RUN: %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
    312 // RUN:     -target i386-unknown-linux \
    313 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
    314 // CHECK_PRESCOTT_M64: error:
    315 //
    316 // RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
    317 // RUN:     -target i386-unknown-linux \
    318 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M32
    319 // CHECK_NOCONA_M32: #define __MMX__ 1
    320 // CHECK_NOCONA_M32: #define __SSE2__ 1
    321 // CHECK_NOCONA_M32: #define __SSE3__ 1
    322 // CHECK_NOCONA_M32: #define __SSE__ 1
    323 // CHECK_NOCONA_M32: #define __i386 1
    324 // CHECK_NOCONA_M32: #define __i386__ 1
    325 // CHECK_NOCONA_M32: #define __nocona 1
    326 // CHECK_NOCONA_M32: #define __nocona__ 1
    327 // CHECK_NOCONA_M32: #define __tune_nocona__ 1
    328 // CHECK_NOCONA_M32: #define i386 1
    329 // RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
    330 // RUN:     -target i386-unknown-linux \
    331 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M64
    332 // CHECK_NOCONA_M64: #define __MMX__ 1
    333 // CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
    334 // CHECK_NOCONA_M64: #define __SSE2__ 1
    335 // CHECK_NOCONA_M64: #define __SSE3__ 1
    336 // CHECK_NOCONA_M64: #define __SSE_MATH__ 1
    337 // CHECK_NOCONA_M64: #define __SSE__ 1
    338 // CHECK_NOCONA_M64: #define __amd64 1
    339 // CHECK_NOCONA_M64: #define __amd64__ 1
    340 // CHECK_NOCONA_M64: #define __nocona 1
    341 // CHECK_NOCONA_M64: #define __nocona__ 1
    342 // CHECK_NOCONA_M64: #define __tune_nocona__ 1
    343 // CHECK_NOCONA_M64: #define __x86_64 1
    344 // CHECK_NOCONA_M64: #define __x86_64__ 1
    345 //
    346 // RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
    347 // RUN:     -target i386-unknown-linux \
    348 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M32
    349 // CHECK_CORE2_M32: #define __MMX__ 1
    350 // CHECK_CORE2_M32: #define __SSE2__ 1
    351 // CHECK_CORE2_M32: #define __SSE3__ 1
    352 // CHECK_CORE2_M32: #define __SSE__ 1
    353 // CHECK_CORE2_M32: #define __SSSE3__ 1
    354 // CHECK_CORE2_M32: #define __core2 1
    355 // CHECK_CORE2_M32: #define __core2__ 1
    356 // CHECK_CORE2_M32: #define __i386 1
    357 // CHECK_CORE2_M32: #define __i386__ 1
    358 // CHECK_CORE2_M32: #define __tune_core2__ 1
    359 // CHECK_CORE2_M32: #define i386 1
    360 // RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
    361 // RUN:     -target i386-unknown-linux \
    362 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M64
    363 // CHECK_CORE2_M64: #define __MMX__ 1
    364 // CHECK_CORE2_M64: #define __SSE2_MATH__ 1
    365 // CHECK_CORE2_M64: #define __SSE2__ 1
    366 // CHECK_CORE2_M64: #define __SSE3__ 1
    367 // CHECK_CORE2_M64: #define __SSE_MATH__ 1
    368 // CHECK_CORE2_M64: #define __SSE__ 1
    369 // CHECK_CORE2_M64: #define __SSSE3__ 1
    370 // CHECK_CORE2_M64: #define __amd64 1
    371 // CHECK_CORE2_M64: #define __amd64__ 1
    372 // CHECK_CORE2_M64: #define __core2 1
    373 // CHECK_CORE2_M64: #define __core2__ 1
    374 // CHECK_CORE2_M64: #define __tune_core2__ 1
    375 // CHECK_CORE2_M64: #define __x86_64 1
    376 // CHECK_CORE2_M64: #define __x86_64__ 1
    377 //
    378 // RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
    379 // RUN:     -target i386-unknown-linux \
    380 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M32
    381 // CHECK_COREI7_M32: #define __MMX__ 1
    382 // CHECK_COREI7_M32: #define __POPCNT__ 1
    383 // CHECK_COREI7_M32: #define __SSE2__ 1
    384 // CHECK_COREI7_M32: #define __SSE3__ 1
    385 // CHECK_COREI7_M32: #define __SSE4_1__ 1
    386 // CHECK_COREI7_M32: #define __SSE4_2__ 1
    387 // CHECK_COREI7_M32: #define __SSE__ 1
    388 // CHECK_COREI7_M32: #define __SSSE3__ 1
    389 // CHECK_COREI7_M32: #define __corei7 1
    390 // CHECK_COREI7_M32: #define __corei7__ 1
    391 // CHECK_COREI7_M32: #define __i386 1
    392 // CHECK_COREI7_M32: #define __i386__ 1
    393 // CHECK_COREI7_M32: #define __tune_corei7__ 1
    394 // CHECK_COREI7_M32: #define i386 1
    395 // RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
    396 // RUN:     -target i386-unknown-linux \
    397 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M64
    398 // CHECK_COREI7_M64: #define __MMX__ 1
    399 // CHECK_COREI7_M64: #define __POPCNT__ 1
    400 // CHECK_COREI7_M64: #define __SSE2_MATH__ 1
    401 // CHECK_COREI7_M64: #define __SSE2__ 1
    402 // CHECK_COREI7_M64: #define __SSE3__ 1
    403 // CHECK_COREI7_M64: #define __SSE4_1__ 1
    404 // CHECK_COREI7_M64: #define __SSE4_2__ 1
    405 // CHECK_COREI7_M64: #define __SSE_MATH__ 1
    406 // CHECK_COREI7_M64: #define __SSE__ 1
    407 // CHECK_COREI7_M64: #define __SSSE3__ 1
    408 // CHECK_COREI7_M64: #define __amd64 1
    409 // CHECK_COREI7_M64: #define __amd64__ 1
    410 // CHECK_COREI7_M64: #define __corei7 1
    411 // CHECK_COREI7_M64: #define __corei7__ 1
    412 // CHECK_COREI7_M64: #define __tune_corei7__ 1
    413 // CHECK_COREI7_M64: #define __x86_64 1
    414 // CHECK_COREI7_M64: #define __x86_64__ 1
    415 //
    416 // RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
    417 // RUN:     -target i386-unknown-linux \
    418 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
    419 // CHECK_COREI7_AVX_M32: #define __AES__ 1
    420 // CHECK_COREI7_AVX_M32: #define __AVX__ 1
    421 // CHECK_COREI7_AVX_M32: #define __MMX__ 1
    422 // CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1
    423 // CHECK_COREI7_AVX_M32-NOT: __RDRND__
    424 // CHECK_COREI7_AVX_M32: #define __POPCNT__ 1
    425 // CHECK_COREI7_AVX_M32: #define __SSE2__ 1
    426 // CHECK_COREI7_AVX_M32: #define __SSE3__ 1
    427 // CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
    428 // CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
    429 // CHECK_COREI7_AVX_M32: #define __SSE__ 1
    430 // CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
    431 // CHECK_COREI7_AVX_M32: #define __corei7 1
    432 // CHECK_COREI7_AVX_M32: #define __corei7__ 1
    433 // CHECK_COREI7_AVX_M32: #define __i386 1
    434 // CHECK_COREI7_AVX_M32: #define __i386__ 1
    435 // CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
    436 // CHECK_COREI7_AVX_M32: #define i386 1
    437 // RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
    438 // RUN:     -target i386-unknown-linux \
    439 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
    440 // CHECK_COREI7_AVX_M64: #define __AES__ 1
    441 // CHECK_COREI7_AVX_M64: #define __AVX__ 1
    442 // CHECK_COREI7_AVX_M64: #define __MMX__ 1
    443 // CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1
    444 // CHECK_COREI7_AVX_M64-NOT: __RDRND__
    445 // CHECK_COREI7_AVX_M64: #define __POPCNT__ 1
    446 // CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
    447 // CHECK_COREI7_AVX_M64: #define __SSE2__ 1
    448 // CHECK_COREI7_AVX_M64: #define __SSE3__ 1
    449 // CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
    450 // CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
    451 // CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
    452 // CHECK_COREI7_AVX_M64: #define __SSE__ 1
    453 // CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
    454 // CHECK_COREI7_AVX_M64: #define __amd64 1
    455 // CHECK_COREI7_AVX_M64: #define __amd64__ 1
    456 // CHECK_COREI7_AVX_M64: #define __corei7 1
    457 // CHECK_COREI7_AVX_M64: #define __corei7__ 1
    458 // CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
    459 // CHECK_COREI7_AVX_M64: #define __x86_64 1
    460 // CHECK_COREI7_AVX_M64: #define __x86_64__ 1
    461 //
    462 // RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
    463 // RUN:     -target i386-unknown-linux \
    464 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
    465 // CHECK_CORE_AVX_I_M32: #define __AES__ 1
    466 // CHECK_CORE_AVX_I_M32: #define __AVX__ 1
    467 // CHECK_CORE_AVX_I_M32: #define __MMX__ 1
    468 // CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
    469 // CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
    470 // CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
    471 // CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
    472 // CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
    473 // CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
    474 // CHECK_CORE_AVX_I_M32: #define __SSE__ 1
    475 // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
    476 // CHECK_CORE_AVX_I_M32: #define __corei7 1
    477 // CHECK_CORE_AVX_I_M32: #define __corei7__ 1
    478 // CHECK_CORE_AVX_I_M32: #define __i386 1
    479 // CHECK_CORE_AVX_I_M32: #define __i386__ 1
    480 // CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
    481 // CHECK_CORE_AVX_I_M32: #define i386 1
    482 // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
    483 // RUN:     -target i386-unknown-linux \
    484 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
    485 // CHECK_CORE_AVX_I_M64: #define __AES__ 1
    486 // CHECK_CORE_AVX_I_M64: #define __AVX__ 1
    487 // CHECK_CORE_AVX_I_M64: #define __MMX__ 1
    488 // CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
    489 // CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
    490 // CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
    491 // CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
    492 // CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
    493 // CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
    494 // CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
    495 // CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
    496 // CHECK_CORE_AVX_I_M64: #define __SSE__ 1
    497 // CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
    498 // CHECK_CORE_AVX_I_M64: #define __amd64 1
    499 // CHECK_CORE_AVX_I_M64: #define __amd64__ 1
    500 // CHECK_CORE_AVX_I_M64: #define __corei7 1
    501 // CHECK_CORE_AVX_I_M64: #define __corei7__ 1
    502 // CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
    503 // CHECK_CORE_AVX_I_M64: #define __x86_64 1
    504 // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
    505 //
    506 // RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
    507 // RUN:     -target i386-unknown-linux \
    508 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M32
    509 // CHECK_CORE_AVX2_M32: #define __AES__ 1
    510 // CHECK_CORE_AVX2_M32: #define __AVX__ 1
    511 // CHECK_CORE_AVX2_M32: #define __BMI2__ 1
    512 // CHECK_CORE_AVX2_M32: #define __BMI__ 1
    513 // CHECK_CORE_AVX2_M32: #define __FMA__ 1
    514 // CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
    515 // CHECK_CORE_AVX2_M32: #define __MMX__ 1
    516 // CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
    517 // CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
    518 // CHECK_CORE_AVX2_M32: #define __RDRND__ 1
    519 // CHECK_CORE_AVX2_M32: #define __SSE2__ 1
    520 // CHECK_CORE_AVX2_M32: #define __SSE3__ 1
    521 // CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
    522 // CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
    523 // CHECK_CORE_AVX2_M32: #define __SSE__ 1
    524 // CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
    525 // CHECK_CORE_AVX2_M32: #define __corei7 1
    526 // CHECK_CORE_AVX2_M32: #define __corei7__ 1
    527 // CHECK_CORE_AVX2_M32: #define __i386 1
    528 // CHECK_CORE_AVX2_M32: #define __i386__ 1
    529 // CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
    530 // CHECK_CORE_AVX2_M32: #define i386 1
    531 // RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
    532 // RUN:     -target i386-unknown-linux \
    533 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M64
    534 // CHECK_CORE_AVX2_M64: #define __AES__ 1
    535 // CHECK_CORE_AVX2_M64: #define __AVX__ 1
    536 // CHECK_CORE_AVX2_M64: #define __BMI2__ 1
    537 // CHECK_CORE_AVX2_M64: #define __BMI__ 1
    538 // CHECK_CORE_AVX2_M64: #define __FMA__ 1
    539 // CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
    540 // CHECK_CORE_AVX2_M64: #define __MMX__ 1
    541 // CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
    542 // CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
    543 // CHECK_CORE_AVX2_M64: #define __RDRND__ 1
    544 // CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
    545 // CHECK_CORE_AVX2_M64: #define __SSE2__ 1
    546 // CHECK_CORE_AVX2_M64: #define __SSE3__ 1
    547 // CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
    548 // CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
    549 // CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
    550 // CHECK_CORE_AVX2_M64: #define __SSE__ 1
    551 // CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
    552 // CHECK_CORE_AVX2_M64: #define __amd64 1
    553 // CHECK_CORE_AVX2_M64: #define __amd64__ 1
    554 // CHECK_CORE_AVX2_M64: #define __corei7 1
    555 // CHECK_CORE_AVX2_M64: #define __corei7__ 1
    556 // CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
    557 // CHECK_CORE_AVX2_M64: #define __x86_64 1
    558 // CHECK_CORE_AVX2_M64: #define __x86_64__ 1
    559 //
    560 // RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
    561 // RUN:     -target i386-unknown-linux \
    562 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M32
    563 // CHECK_ATOM_M32: #define __MMX__ 1
    564 // CHECK_ATOM_M32: #define __SSE2__ 1
    565 // CHECK_ATOM_M32: #define __SSE3__ 1
    566 // CHECK_ATOM_M32: #define __SSE__ 1
    567 // CHECK_ATOM_M32: #define __SSSE3__ 1
    568 // CHECK_ATOM_M32: #define __atom 1
    569 // CHECK_ATOM_M32: #define __atom__ 1
    570 // CHECK_ATOM_M32: #define __i386 1
    571 // CHECK_ATOM_M32: #define __i386__ 1
    572 // CHECK_ATOM_M32: #define __tune_atom__ 1
    573 // CHECK_ATOM_M32: #define i386 1
    574 // RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
    575 // RUN:     -target i386-unknown-linux \
    576 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M64
    577 // CHECK_ATOM_M64: #define __MMX__ 1
    578 // CHECK_ATOM_M64: #define __SSE2_MATH__ 1
    579 // CHECK_ATOM_M64: #define __SSE2__ 1
    580 // CHECK_ATOM_M64: #define __SSE3__ 1
    581 // CHECK_ATOM_M64: #define __SSE_MATH__ 1
    582 // CHECK_ATOM_M64: #define __SSE__ 1
    583 // CHECK_ATOM_M64: #define __SSSE3__ 1
    584 // CHECK_ATOM_M64: #define __amd64 1
    585 // CHECK_ATOM_M64: #define __amd64__ 1
    586 // CHECK_ATOM_M64: #define __atom 1
    587 // CHECK_ATOM_M64: #define __atom__ 1
    588 // CHECK_ATOM_M64: #define __tune_atom__ 1
    589 // CHECK_ATOM_M64: #define __x86_64 1
    590 // CHECK_ATOM_M64: #define __x86_64__ 1
    591 //
    592 // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
    593 // RUN:     -target i386-unknown-linux \
    594 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M32
    595 // CHECK_GEODE_M32: #define __3dNOW_A__ 1
    596 // CHECK_GEODE_M32: #define __3dNOW__ 1
    597 // CHECK_GEODE_M32: #define __MMX__ 1
    598 // CHECK_GEODE_M32: #define __geode 1
    599 // CHECK_GEODE_M32: #define __geode__ 1
    600 // CHECK_GEODE_M32: #define __i386 1
    601 // CHECK_GEODE_M32: #define __i386__ 1
    602 // CHECK_GEODE_M32: #define __tune_geode__ 1
    603 // CHECK_GEODE_M32: #define i386 1
    604 // RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
    605 // RUN:     -target i386-unknown-linux \
    606 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M64
    607 // CHECK_GEODE_M64: error:
    608 //
    609 // RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
    610 // RUN:     -target i386-unknown-linux \
    611 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M32
    612 // CHECK_K6_M32: #define __MMX__ 1
    613 // CHECK_K6_M32: #define __i386 1
    614 // CHECK_K6_M32: #define __i386__ 1
    615 // CHECK_K6_M32: #define __k6 1
    616 // CHECK_K6_M32: #define __k6__ 1
    617 // CHECK_K6_M32: #define __tune_k6__ 1
    618 // CHECK_K6_M32: #define i386 1
    619 // RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
    620 // RUN:     -target i386-unknown-linux \
    621 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M64
    622 // CHECK_K6_M64: error:
    623 //
    624 // RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
    625 // RUN:     -target i386-unknown-linux \
    626 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M32
    627 // CHECK_K6_2_M32: #define __3dNOW__ 1
    628 // CHECK_K6_2_M32: #define __MMX__ 1
    629 // CHECK_K6_2_M32: #define __i386 1
    630 // CHECK_K6_2_M32: #define __i386__ 1
    631 // CHECK_K6_2_M32: #define __k6 1
    632 // CHECK_K6_2_M32: #define __k6_2__ 1
    633 // CHECK_K6_2_M32: #define __k6__ 1
    634 // CHECK_K6_2_M32: #define __tune_k6_2__ 1
    635 // CHECK_K6_2_M32: #define __tune_k6__ 1
    636 // CHECK_K6_2_M32: #define i386 1
    637 // RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
    638 // RUN:     -target i386-unknown-linux \
    639 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M64
    640 // CHECK_K6_2_M64: error:
    641 //
    642 // RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
    643 // RUN:     -target i386-unknown-linux \
    644 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M32
    645 // CHECK_K6_3_M32: #define __3dNOW__ 1
    646 // CHECK_K6_3_M32: #define __MMX__ 1
    647 // CHECK_K6_3_M32: #define __i386 1
    648 // CHECK_K6_3_M32: #define __i386__ 1
    649 // CHECK_K6_3_M32: #define __k6 1
    650 // CHECK_K6_3_M32: #define __k6_3__ 1
    651 // CHECK_K6_3_M32: #define __k6__ 1
    652 // CHECK_K6_3_M32: #define __tune_k6_3__ 1
    653 // CHECK_K6_3_M32: #define __tune_k6__ 1
    654 // CHECK_K6_3_M32: #define i386 1
    655 // RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
    656 // RUN:     -target i386-unknown-linux \
    657 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M64
    658 // CHECK_K6_3_M64: error:
    659 //
    660 // RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
    661 // RUN:     -target i386-unknown-linux \
    662 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M32
    663 // CHECK_ATHLON_M32: #define __3dNOW_A__ 1
    664 // CHECK_ATHLON_M32: #define __3dNOW__ 1
    665 // CHECK_ATHLON_M32: #define __MMX__ 1
    666 // CHECK_ATHLON_M32: #define __athlon 1
    667 // CHECK_ATHLON_M32: #define __athlon__ 1
    668 // CHECK_ATHLON_M32: #define __i386 1
    669 // CHECK_ATHLON_M32: #define __i386__ 1
    670 // CHECK_ATHLON_M32: #define __tune_athlon__ 1
    671 // CHECK_ATHLON_M32: #define i386 1
    672 // RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
    673 // RUN:     -target i386-unknown-linux \
    674 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M64
    675 // CHECK_ATHLON_M64: error:
    676 //
    677 // RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
    678 // RUN:     -target i386-unknown-linux \
    679 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
    680 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
    681 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
    682 // CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
    683 // CHECK_ATHLON_TBIRD_M32: #define __athlon 1
    684 // CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
    685 // CHECK_ATHLON_TBIRD_M32: #define __i386 1
    686 // CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
    687 // CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
    688 // CHECK_ATHLON_TBIRD_M32: #define i386 1
    689 // RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
    690 // RUN:     -target i386-unknown-linux \
    691 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
    692 // CHECK_ATHLON_TBIRD_M64: error:
    693 //
    694 // RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
    695 // RUN:     -target i386-unknown-linux \
    696 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
    697 // CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
    698 // CHECK_ATHLON_4_M32: #define __3dNOW__ 1
    699 // CHECK_ATHLON_4_M32: #define __MMX__ 1
    700 // CHECK_ATHLON_4_M32: #define __SSE__ 1
    701 // CHECK_ATHLON_4_M32: #define __athlon 1
    702 // CHECK_ATHLON_4_M32: #define __athlon__ 1
    703 // CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
    704 // CHECK_ATHLON_4_M32: #define __i386 1
    705 // CHECK_ATHLON_4_M32: #define __i386__ 1
    706 // CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
    707 // CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
    708 // CHECK_ATHLON_4_M32: #define i386 1
    709 // RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
    710 // RUN:     -target i386-unknown-linux \
    711 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
    712 // CHECK_ATHLON_4_M64: error:
    713 //
    714 // RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
    715 // RUN:     -target i386-unknown-linux \
    716 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
    717 // CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
    718 // CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
    719 // CHECK_ATHLON_XP_M32: #define __MMX__ 1
    720 // CHECK_ATHLON_XP_M32: #define __SSE__ 1
    721 // CHECK_ATHLON_XP_M32: #define __athlon 1
    722 // CHECK_ATHLON_XP_M32: #define __athlon__ 1
    723 // CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
    724 // CHECK_ATHLON_XP_M32: #define __i386 1
    725 // CHECK_ATHLON_XP_M32: #define __i386__ 1
    726 // CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
    727 // CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
    728 // CHECK_ATHLON_XP_M32: #define i386 1
    729 // RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
    730 // RUN:     -target i386-unknown-linux \
    731 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
    732 // CHECK_ATHLON_XP_M64: error:
    733 //
    734 // RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
    735 // RUN:     -target i386-unknown-linux \
    736 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
    737 // CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
    738 // CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
    739 // CHECK_ATHLON_MP_M32: #define __MMX__ 1
    740 // CHECK_ATHLON_MP_M32: #define __SSE__ 1
    741 // CHECK_ATHLON_MP_M32: #define __athlon 1
    742 // CHECK_ATHLON_MP_M32: #define __athlon__ 1
    743 // CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
    744 // CHECK_ATHLON_MP_M32: #define __i386 1
    745 // CHECK_ATHLON_MP_M32: #define __i386__ 1
    746 // CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
    747 // CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
    748 // CHECK_ATHLON_MP_M32: #define i386 1
    749 // RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
    750 // RUN:     -target i386-unknown-linux \
    751 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
    752 // CHECK_ATHLON_MP_M64: error:
    753 //
    754 // RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
    755 // RUN:     -target i386-unknown-linux \
    756 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M32
    757 // CHECK_X86_64_M32: #define __MMX__ 1
    758 // CHECK_X86_64_M32: #define __SSE2__ 1
    759 // CHECK_X86_64_M32: #define __SSE__ 1
    760 // CHECK_X86_64_M32: #define __i386 1
    761 // CHECK_X86_64_M32: #define __i386__ 1
    762 // CHECK_X86_64_M32: #define __k8 1
    763 // CHECK_X86_64_M32: #define __k8__ 1
    764 // CHECK_X86_64_M32: #define i386 1
    765 // RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
    766 // RUN:     -target i386-unknown-linux \
    767 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M64
    768 // CHECK_X86_64_M64: #define __MMX__ 1
    769 // CHECK_X86_64_M64: #define __SSE2_MATH__ 1
    770 // CHECK_X86_64_M64: #define __SSE2__ 1
    771 // CHECK_X86_64_M64: #define __SSE_MATH__ 1
    772 // CHECK_X86_64_M64: #define __SSE__ 1
    773 // CHECK_X86_64_M64: #define __amd64 1
    774 // CHECK_X86_64_M64: #define __amd64__ 1
    775 // CHECK_X86_64_M64: #define __k8 1
    776 // CHECK_X86_64_M64: #define __k8__ 1
    777 // CHECK_X86_64_M64: #define __x86_64 1
    778 // CHECK_X86_64_M64: #define __x86_64__ 1
    779 //
    780 // RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
    781 // RUN:     -target i386-unknown-linux \
    782 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M32
    783 // CHECK_K8_M32: #define __3dNOW_A__ 1
    784 // CHECK_K8_M32: #define __3dNOW__ 1
    785 // CHECK_K8_M32: #define __MMX__ 1
    786 // CHECK_K8_M32: #define __SSE2__ 1
    787 // CHECK_K8_M32: #define __SSE__ 1
    788 // CHECK_K8_M32: #define __i386 1
    789 // CHECK_K8_M32: #define __i386__ 1
    790 // CHECK_K8_M32: #define __k8 1
    791 // CHECK_K8_M32: #define __k8__ 1
    792 // CHECK_K8_M32: #define __tune_k8__ 1
    793 // CHECK_K8_M32: #define i386 1
    794 // RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
    795 // RUN:     -target i386-unknown-linux \
    796 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M64
    797 // CHECK_K8_M64: #define __3dNOW_A__ 1
    798 // CHECK_K8_M64: #define __3dNOW__ 1
    799 // CHECK_K8_M64: #define __MMX__ 1
    800 // CHECK_K8_M64: #define __SSE2_MATH__ 1
    801 // CHECK_K8_M64: #define __SSE2__ 1
    802 // CHECK_K8_M64: #define __SSE_MATH__ 1
    803 // CHECK_K8_M64: #define __SSE__ 1
    804 // CHECK_K8_M64: #define __amd64 1
    805 // CHECK_K8_M64: #define __amd64__ 1
    806 // CHECK_K8_M64: #define __k8 1
    807 // CHECK_K8_M64: #define __k8__ 1
    808 // CHECK_K8_M64: #define __tune_k8__ 1
    809 // CHECK_K8_M64: #define __x86_64 1
    810 // CHECK_K8_M64: #define __x86_64__ 1
    811 //
    812 // RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
    813 // RUN:     -target i386-unknown-linux \
    814 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
    815 // CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
    816 // CHECK_K8_SSE3_M32: #define __3dNOW__ 1
    817 // CHECK_K8_SSE3_M32: #define __MMX__ 1
    818 // CHECK_K8_SSE3_M32: #define __SSE2__ 1
    819 // CHECK_K8_SSE3_M32: #define __SSE3__ 1
    820 // CHECK_K8_SSE3_M32: #define __SSE__ 1
    821 // CHECK_K8_SSE3_M32: #define __i386 1
    822 // CHECK_K8_SSE3_M32: #define __i386__ 1
    823 // CHECK_K8_SSE3_M32: #define __k8 1
    824 // CHECK_K8_SSE3_M32: #define __k8__ 1
    825 // CHECK_K8_SSE3_M32: #define __tune_k8__ 1
    826 // CHECK_K8_SSE3_M32: #define i386 1
    827 // RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
    828 // RUN:     -target i386-unknown-linux \
    829 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
    830 // CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
    831 // CHECK_K8_SSE3_M64: #define __3dNOW__ 1
    832 // CHECK_K8_SSE3_M64: #define __MMX__ 1
    833 // CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
    834 // CHECK_K8_SSE3_M64: #define __SSE2__ 1
    835 // CHECK_K8_SSE3_M64: #define __SSE3__ 1
    836 // CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
    837 // CHECK_K8_SSE3_M64: #define __SSE__ 1
    838 // CHECK_K8_SSE3_M64: #define __amd64 1
    839 // CHECK_K8_SSE3_M64: #define __amd64__ 1
    840 // CHECK_K8_SSE3_M64: #define __k8 1
    841 // CHECK_K8_SSE3_M64: #define __k8__ 1
    842 // CHECK_K8_SSE3_M64: #define __tune_k8__ 1
    843 // CHECK_K8_SSE3_M64: #define __x86_64 1
    844 // CHECK_K8_SSE3_M64: #define __x86_64__ 1
    845 //
    846 // RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
    847 // RUN:     -target i386-unknown-linux \
    848 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M32
    849 // CHECK_OPTERON_M32: #define __3dNOW_A__ 1
    850 // CHECK_OPTERON_M32: #define __3dNOW__ 1
    851 // CHECK_OPTERON_M32: #define __MMX__ 1
    852 // CHECK_OPTERON_M32: #define __SSE2__ 1
    853 // CHECK_OPTERON_M32: #define __SSE__ 1
    854 // CHECK_OPTERON_M32: #define __i386 1
    855 // CHECK_OPTERON_M32: #define __i386__ 1
    856 // CHECK_OPTERON_M32: #define __k8 1
    857 // CHECK_OPTERON_M32: #define __k8__ 1
    858 // CHECK_OPTERON_M32: #define __tune_k8__ 1
    859 // CHECK_OPTERON_M32: #define i386 1
    860 // RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
    861 // RUN:     -target i386-unknown-linux \
    862 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M64
    863 // CHECK_OPTERON_M64: #define __3dNOW_A__ 1
    864 // CHECK_OPTERON_M64: #define __3dNOW__ 1
    865 // CHECK_OPTERON_M64: #define __MMX__ 1
    866 // CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
    867 // CHECK_OPTERON_M64: #define __SSE2__ 1
    868 // CHECK_OPTERON_M64: #define __SSE_MATH__ 1
    869 // CHECK_OPTERON_M64: #define __SSE__ 1
    870 // CHECK_OPTERON_M64: #define __amd64 1
    871 // CHECK_OPTERON_M64: #define __amd64__ 1
    872 // CHECK_OPTERON_M64: #define __k8 1
    873 // CHECK_OPTERON_M64: #define __k8__ 1
    874 // CHECK_OPTERON_M64: #define __tune_k8__ 1
    875 // CHECK_OPTERON_M64: #define __x86_64 1
    876 // CHECK_OPTERON_M64: #define __x86_64__ 1
    877 //
    878 // RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
    879 // RUN:     -target i386-unknown-linux \
    880 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
    881 // CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
    882 // CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
    883 // CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
    884 // CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
    885 // CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
    886 // CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
    887 // CHECK_OPTERON_SSE3_M32: #define __i386 1
    888 // CHECK_OPTERON_SSE3_M32: #define __i386__ 1
    889 // CHECK_OPTERON_SSE3_M32: #define __k8 1
    890 // CHECK_OPTERON_SSE3_M32: #define __k8__ 1
    891 // CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
    892 // CHECK_OPTERON_SSE3_M32: #define i386 1
    893 // RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
    894 // RUN:     -target i386-unknown-linux \
    895 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
    896 // CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
    897 // CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
    898 // CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
    899 // CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
    900 // CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
    901 // CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
    902 // CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
    903 // CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
    904 // CHECK_OPTERON_SSE3_M64: #define __amd64 1
    905 // CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
    906 // CHECK_OPTERON_SSE3_M64: #define __k8 1
    907 // CHECK_OPTERON_SSE3_M64: #define __k8__ 1
    908 // CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
    909 // CHECK_OPTERON_SSE3_M64: #define __x86_64 1
    910 // CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
    911 //
    912 // RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
    913 // RUN:     -target i386-unknown-linux \
    914 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
    915 // CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
    916 // CHECK_ATHLON64_M32: #define __3dNOW__ 1
    917 // CHECK_ATHLON64_M32: #define __MMX__ 1
    918 // CHECK_ATHLON64_M32: #define __SSE2__ 1
    919 // CHECK_ATHLON64_M32: #define __SSE__ 1
    920 // CHECK_ATHLON64_M32: #define __i386 1
    921 // CHECK_ATHLON64_M32: #define __i386__ 1
    922 // CHECK_ATHLON64_M32: #define __k8 1
    923 // CHECK_ATHLON64_M32: #define __k8__ 1
    924 // CHECK_ATHLON64_M32: #define __tune_k8__ 1
    925 // CHECK_ATHLON64_M32: #define i386 1
    926 // RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
    927 // RUN:     -target i386-unknown-linux \
    928 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
    929 // CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
    930 // CHECK_ATHLON64_M64: #define __3dNOW__ 1
    931 // CHECK_ATHLON64_M64: #define __MMX__ 1
    932 // CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
    933 // CHECK_ATHLON64_M64: #define __SSE2__ 1
    934 // CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
    935 // CHECK_ATHLON64_M64: #define __SSE__ 1
    936 // CHECK_ATHLON64_M64: #define __amd64 1
    937 // CHECK_ATHLON64_M64: #define __amd64__ 1
    938 // CHECK_ATHLON64_M64: #define __k8 1
    939 // CHECK_ATHLON64_M64: #define __k8__ 1
    940 // CHECK_ATHLON64_M64: #define __tune_k8__ 1
    941 // CHECK_ATHLON64_M64: #define __x86_64 1
    942 // CHECK_ATHLON64_M64: #define __x86_64__ 1
    943 //
    944 // RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
    945 // RUN:     -target i386-unknown-linux \
    946 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
    947 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
    948 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
    949 // CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
    950 // CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
    951 // CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
    952 // CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
    953 // CHECK_ATHLON64_SSE3_M32: #define __i386 1
    954 // CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
    955 // CHECK_ATHLON64_SSE3_M32: #define __k8 1
    956 // CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
    957 // CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
    958 // CHECK_ATHLON64_SSE3_M32: #define i386 1
    959 // RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
    960 // RUN:     -target i386-unknown-linux \
    961 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
    962 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
    963 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
    964 // CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
    965 // CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
    966 // CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
    967 // CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
    968 // CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
    969 // CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
    970 // CHECK_ATHLON64_SSE3_M64: #define __amd64 1
    971 // CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
    972 // CHECK_ATHLON64_SSE3_M64: #define __k8 1
    973 // CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
    974 // CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
    975 // CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
    976 // CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
    977 //
    978 // RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
    979 // RUN:     -target i386-unknown-linux \
    980 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
    981 // CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
    982 // CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
    983 // CHECK_ATHLON_FX_M32: #define __MMX__ 1
    984 // CHECK_ATHLON_FX_M32: #define __SSE2__ 1
    985 // CHECK_ATHLON_FX_M32: #define __SSE__ 1
    986 // CHECK_ATHLON_FX_M32: #define __i386 1
    987 // CHECK_ATHLON_FX_M32: #define __i386__ 1
    988 // CHECK_ATHLON_FX_M32: #define __k8 1
    989 // CHECK_ATHLON_FX_M32: #define __k8__ 1
    990 // CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
    991 // CHECK_ATHLON_FX_M32: #define i386 1
    992 // RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
    993 // RUN:     -target i386-unknown-linux \
    994 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
    995 // CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
    996 // CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
    997 // CHECK_ATHLON_FX_M64: #define __MMX__ 1
    998 // CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
    999 // CHECK_ATHLON_FX_M64: #define __SSE2__ 1
   1000 // CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
   1001 // CHECK_ATHLON_FX_M64: #define __SSE__ 1
   1002 // CHECK_ATHLON_FX_M64: #define __amd64 1
   1003 // CHECK_ATHLON_FX_M64: #define __amd64__ 1
   1004 // CHECK_ATHLON_FX_M64: #define __k8 1
   1005 // CHECK_ATHLON_FX_M64: #define __k8__ 1
   1006 // CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
   1007 // CHECK_ATHLON_FX_M64: #define __x86_64 1
   1008 // CHECK_ATHLON_FX_M64: #define __x86_64__ 1
   1009 // RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
   1010 // RUN:     -target i386-unknown-linux \
   1011 // RUN:   | FileCheck %s -check-prefix=CHECK_AMDFAM10_M64
   1012 // CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
   1013 // CHECK_AMDFAM10_M64: #define __3dNOW__ 1
   1014 // CHECK_AMDFAM10_M64: #define __MMX__ 1
   1015 // CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
   1016 // CHECK_AMDFAM10_M64: #define __SSE2__ 1
   1017 // CHECK_AMDFAM10_M64: #define __SSE3__ 1
   1018 // CHECK_AMDFAM10_M64: #define __SSE4A__ 1
   1019 // CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
   1020 // CHECK_AMDFAM10_M64: #define __SSE__ 1
   1021 // CHECK_AMDFAM10_M64: #define __amd64 1
   1022 // CHECK_AMDFAM10_M64: #define __amd64__ 1
   1023 // CHECK_AMDFAM10_M64: #define __amdfam10 1
   1024 // CHECK_AMDFAM10_M64: #define __amdfam10__ 1
   1025 // CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
   1026 // CHECK_AMDFAM10_M64: #define __x86_64 1
   1027 // CHECK_AMDFAM10_M64: #define __x86_64__ 1
   1028 // RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
   1029 // RUN:     -target i386-unknown-linux \
   1030 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER1_M64
   1031 // CHECK_BDVER1_M64: #define __AVX__ 1
   1032 // CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
   1033 // CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
   1034 // CHECK_BDVER1_M64: #define __FMA4__ 1
   1035 // CHECK_BDVER1_M64: #define __MMX__ 1
   1036 // CHECK_BDVER1_M64: #define __PCLMUL__ 1
   1037 // CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
   1038 // CHECK_BDVER1_M64: #define __SSE2__ 1
   1039 // CHECK_BDVER1_M64: #define __SSE3__ 1
   1040 // CHECK_BDVER1_M64: #define __SSE4A__ 1
   1041 // CHECK_BDVER1_M64: #define __SSE4_1__ 1
   1042 // CHECK_BDVER1_M64: #define __SSE4_2__ 1
   1043 // CHECK_BDVER1_M64: #define __SSE_MATH__ 1
   1044 // CHECK_BDVER1_M64: #define __SSE__ 1
   1045 // CHECK_BDVER1_M64: #define __SSSE3__ 1
   1046 // CHECK_BDVER1_M64: #define __XOP__ 1
   1047 // CHECK_BDVER1_M64: #define __amd64 1
   1048 // CHECK_BDVER1_M64: #define __amd64__ 1
   1049 // CHECK_BDVER1_M64: #define __bdver1 1
   1050 // CHECK_BDVER1_M64: #define __bdver1__ 1
   1051 // CHECK_BDVER1_M64: #define __tune_bdver1__ 1
   1052 // CHECK_BDVER1_M64: #define __x86_64 1
   1053 // CHECK_BDVER1_M64: #define __x86_64__ 1
   1054 //
   1055 // End X86/GCC/Linux tests ------------------
   1056