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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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: not %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 __F16C__ 1
    468 // CHECK_CORE_AVX_I_M32: #define __MMX__ 1
    469 // CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
    470 // CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
    471 // CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
    472 // CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
    473 // CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
    474 // CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
    475 // CHECK_CORE_AVX_I_M32: #define __SSE__ 1
    476 // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
    477 // CHECK_CORE_AVX_I_M32: #define __corei7 1
    478 // CHECK_CORE_AVX_I_M32: #define __corei7__ 1
    479 // CHECK_CORE_AVX_I_M32: #define __i386 1
    480 // CHECK_CORE_AVX_I_M32: #define __i386__ 1
    481 // CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
    482 // CHECK_CORE_AVX_I_M32: #define i386 1
    483 // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
    484 // RUN:     -target i386-unknown-linux \
    485 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
    486 // CHECK_CORE_AVX_I_M64: #define __AES__ 1
    487 // CHECK_CORE_AVX_I_M64: #define __AVX__ 1
    488 // CHECK_CORE_AVX_I_M64: #define __F16C__ 1
    489 // CHECK_CORE_AVX_I_M64: #define __MMX__ 1
    490 // CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
    491 // CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
    492 // CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
    493 // CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
    494 // CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
    495 // CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
    496 // CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
    497 // CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
    498 // CHECK_CORE_AVX_I_M64: #define __SSE__ 1
    499 // CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
    500 // CHECK_CORE_AVX_I_M64: #define __amd64 1
    501 // CHECK_CORE_AVX_I_M64: #define __amd64__ 1
    502 // CHECK_CORE_AVX_I_M64: #define __corei7 1
    503 // CHECK_CORE_AVX_I_M64: #define __corei7__ 1
    504 // CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
    505 // CHECK_CORE_AVX_I_M64: #define __x86_64 1
    506 // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
    507 //
    508 // RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
    509 // RUN:     -target i386-unknown-linux \
    510 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M32
    511 // CHECK_CORE_AVX2_M32: #define __AES__ 1
    512 // CHECK_CORE_AVX2_M32: #define __AVX__ 1
    513 // CHECK_CORE_AVX2_M32: #define __BMI2__ 1
    514 // CHECK_CORE_AVX2_M32: #define __BMI__ 1
    515 // CHECK_CORE_AVX2_M32: #define __F16C__ 1
    516 // CHECK_CORE_AVX2_M32: #define __FMA__ 1
    517 // CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
    518 // CHECK_CORE_AVX2_M32: #define __MMX__ 1
    519 // CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
    520 // CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
    521 // CHECK_CORE_AVX2_M32: #define __RDRND__ 1
    522 // CHECK_CORE_AVX2_M32: #define __RTM__ 1
    523 // CHECK_CORE_AVX2_M32: #define __SSE2__ 1
    524 // CHECK_CORE_AVX2_M32: #define __SSE3__ 1
    525 // CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
    526 // CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
    527 // CHECK_CORE_AVX2_M32: #define __SSE__ 1
    528 // CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
    529 // CHECK_CORE_AVX2_M32: #define __corei7 1
    530 // CHECK_CORE_AVX2_M32: #define __corei7__ 1
    531 // CHECK_CORE_AVX2_M32: #define __i386 1
    532 // CHECK_CORE_AVX2_M32: #define __i386__ 1
    533 // CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
    534 // CHECK_CORE_AVX2_M32: #define i386 1
    535 // RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
    536 // RUN:     -target i386-unknown-linux \
    537 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M64
    538 // CHECK_CORE_AVX2_M64: #define __AES__ 1
    539 // CHECK_CORE_AVX2_M64: #define __AVX__ 1
    540 // CHECK_CORE_AVX2_M64: #define __BMI2__ 1
    541 // CHECK_CORE_AVX2_M64: #define __BMI__ 1
    542 // CHECK_CORE_AVX2_M64: #define __F16C__ 1
    543 // CHECK_CORE_AVX2_M64: #define __FMA__ 1
    544 // CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
    545 // CHECK_CORE_AVX2_M64: #define __MMX__ 1
    546 // CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
    547 // CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
    548 // CHECK_CORE_AVX2_M64: #define __RDRND__ 1
    549 // CHECK_CORE_AVX2_M64: #define __RTM__ 1
    550 // CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
    551 // CHECK_CORE_AVX2_M64: #define __SSE2__ 1
    552 // CHECK_CORE_AVX2_M64: #define __SSE3__ 1
    553 // CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
    554 // CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
    555 // CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
    556 // CHECK_CORE_AVX2_M64: #define __SSE__ 1
    557 // CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
    558 // CHECK_CORE_AVX2_M64: #define __amd64 1
    559 // CHECK_CORE_AVX2_M64: #define __amd64__ 1
    560 // CHECK_CORE_AVX2_M64: #define __corei7 1
    561 // CHECK_CORE_AVX2_M64: #define __corei7__ 1
    562 // CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
    563 // CHECK_CORE_AVX2_M64: #define __x86_64 1
    564 // CHECK_CORE_AVX2_M64: #define __x86_64__ 1
    565 //
    566 // RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
    567 // RUN:     -target i386-unknown-linux \
    568 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M32
    569 // CHECK_ATOM_M32: #define __MMX__ 1
    570 // CHECK_ATOM_M32: #define __SSE2__ 1
    571 // CHECK_ATOM_M32: #define __SSE3__ 1
    572 // CHECK_ATOM_M32: #define __SSE__ 1
    573 // CHECK_ATOM_M32: #define __SSSE3__ 1
    574 // CHECK_ATOM_M32: #define __atom 1
    575 // CHECK_ATOM_M32: #define __atom__ 1
    576 // CHECK_ATOM_M32: #define __i386 1
    577 // CHECK_ATOM_M32: #define __i386__ 1
    578 // CHECK_ATOM_M32: #define __tune_atom__ 1
    579 // CHECK_ATOM_M32: #define i386 1
    580 // RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
    581 // RUN:     -target i386-unknown-linux \
    582 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M64
    583 // CHECK_ATOM_M64: #define __MMX__ 1
    584 // CHECK_ATOM_M64: #define __SSE2_MATH__ 1
    585 // CHECK_ATOM_M64: #define __SSE2__ 1
    586 // CHECK_ATOM_M64: #define __SSE3__ 1
    587 // CHECK_ATOM_M64: #define __SSE_MATH__ 1
    588 // CHECK_ATOM_M64: #define __SSE__ 1
    589 // CHECK_ATOM_M64: #define __SSSE3__ 1
    590 // CHECK_ATOM_M64: #define __amd64 1
    591 // CHECK_ATOM_M64: #define __amd64__ 1
    592 // CHECK_ATOM_M64: #define __atom 1
    593 // CHECK_ATOM_M64: #define __atom__ 1
    594 // CHECK_ATOM_M64: #define __tune_atom__ 1
    595 // CHECK_ATOM_M64: #define __x86_64 1
    596 // CHECK_ATOM_M64: #define __x86_64__ 1
    597 //
    598 // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
    599 // RUN:     -target i386-unknown-linux \
    600 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M32
    601 // CHECK_GEODE_M32: #define __3dNOW_A__ 1
    602 // CHECK_GEODE_M32: #define __3dNOW__ 1
    603 // CHECK_GEODE_M32: #define __MMX__ 1
    604 // CHECK_GEODE_M32: #define __geode 1
    605 // CHECK_GEODE_M32: #define __geode__ 1
    606 // CHECK_GEODE_M32: #define __i386 1
    607 // CHECK_GEODE_M32: #define __i386__ 1
    608 // CHECK_GEODE_M32: #define __tune_geode__ 1
    609 // CHECK_GEODE_M32: #define i386 1
    610 // RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
    611 // RUN:     -target i386-unknown-linux \
    612 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M64
    613 // CHECK_GEODE_M64: error:
    614 //
    615 // RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
    616 // RUN:     -target i386-unknown-linux \
    617 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M32
    618 // CHECK_K6_M32: #define __MMX__ 1
    619 // CHECK_K6_M32: #define __i386 1
    620 // CHECK_K6_M32: #define __i386__ 1
    621 // CHECK_K6_M32: #define __k6 1
    622 // CHECK_K6_M32: #define __k6__ 1
    623 // CHECK_K6_M32: #define __tune_k6__ 1
    624 // CHECK_K6_M32: #define i386 1
    625 // RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
    626 // RUN:     -target i386-unknown-linux \
    627 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M64
    628 // CHECK_K6_M64: error:
    629 //
    630 // RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
    631 // RUN:     -target i386-unknown-linux \
    632 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M32
    633 // CHECK_K6_2_M32: #define __3dNOW__ 1
    634 // CHECK_K6_2_M32: #define __MMX__ 1
    635 // CHECK_K6_2_M32: #define __i386 1
    636 // CHECK_K6_2_M32: #define __i386__ 1
    637 // CHECK_K6_2_M32: #define __k6 1
    638 // CHECK_K6_2_M32: #define __k6_2__ 1
    639 // CHECK_K6_2_M32: #define __k6__ 1
    640 // CHECK_K6_2_M32: #define __tune_k6_2__ 1
    641 // CHECK_K6_2_M32: #define __tune_k6__ 1
    642 // CHECK_K6_2_M32: #define i386 1
    643 // RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
    644 // RUN:     -target i386-unknown-linux \
    645 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M64
    646 // CHECK_K6_2_M64: error:
    647 //
    648 // RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
    649 // RUN:     -target i386-unknown-linux \
    650 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M32
    651 // CHECK_K6_3_M32: #define __3dNOW__ 1
    652 // CHECK_K6_3_M32: #define __MMX__ 1
    653 // CHECK_K6_3_M32: #define __i386 1
    654 // CHECK_K6_3_M32: #define __i386__ 1
    655 // CHECK_K6_3_M32: #define __k6 1
    656 // CHECK_K6_3_M32: #define __k6_3__ 1
    657 // CHECK_K6_3_M32: #define __k6__ 1
    658 // CHECK_K6_3_M32: #define __tune_k6_3__ 1
    659 // CHECK_K6_3_M32: #define __tune_k6__ 1
    660 // CHECK_K6_3_M32: #define i386 1
    661 // RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
    662 // RUN:     -target i386-unknown-linux \
    663 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M64
    664 // CHECK_K6_3_M64: error:
    665 //
    666 // RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
    667 // RUN:     -target i386-unknown-linux \
    668 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M32
    669 // CHECK_ATHLON_M32: #define __3dNOW_A__ 1
    670 // CHECK_ATHLON_M32: #define __3dNOW__ 1
    671 // CHECK_ATHLON_M32: #define __MMX__ 1
    672 // CHECK_ATHLON_M32: #define __athlon 1
    673 // CHECK_ATHLON_M32: #define __athlon__ 1
    674 // CHECK_ATHLON_M32: #define __i386 1
    675 // CHECK_ATHLON_M32: #define __i386__ 1
    676 // CHECK_ATHLON_M32: #define __tune_athlon__ 1
    677 // CHECK_ATHLON_M32: #define i386 1
    678 // RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
    679 // RUN:     -target i386-unknown-linux \
    680 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M64
    681 // CHECK_ATHLON_M64: error:
    682 //
    683 // RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
    684 // RUN:     -target i386-unknown-linux \
    685 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
    686 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
    687 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
    688 // CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
    689 // CHECK_ATHLON_TBIRD_M32: #define __athlon 1
    690 // CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
    691 // CHECK_ATHLON_TBIRD_M32: #define __i386 1
    692 // CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
    693 // CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
    694 // CHECK_ATHLON_TBIRD_M32: #define i386 1
    695 // RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
    696 // RUN:     -target i386-unknown-linux \
    697 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
    698 // CHECK_ATHLON_TBIRD_M64: error:
    699 //
    700 // RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
    701 // RUN:     -target i386-unknown-linux \
    702 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
    703 // CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
    704 // CHECK_ATHLON_4_M32: #define __3dNOW__ 1
    705 // CHECK_ATHLON_4_M32: #define __MMX__ 1
    706 // CHECK_ATHLON_4_M32: #define __SSE__ 1
    707 // CHECK_ATHLON_4_M32: #define __athlon 1
    708 // CHECK_ATHLON_4_M32: #define __athlon__ 1
    709 // CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
    710 // CHECK_ATHLON_4_M32: #define __i386 1
    711 // CHECK_ATHLON_4_M32: #define __i386__ 1
    712 // CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
    713 // CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
    714 // CHECK_ATHLON_4_M32: #define i386 1
    715 // RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
    716 // RUN:     -target i386-unknown-linux \
    717 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
    718 // CHECK_ATHLON_4_M64: error:
    719 //
    720 // RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
    721 // RUN:     -target i386-unknown-linux \
    722 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
    723 // CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
    724 // CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
    725 // CHECK_ATHLON_XP_M32: #define __MMX__ 1
    726 // CHECK_ATHLON_XP_M32: #define __SSE__ 1
    727 // CHECK_ATHLON_XP_M32: #define __athlon 1
    728 // CHECK_ATHLON_XP_M32: #define __athlon__ 1
    729 // CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
    730 // CHECK_ATHLON_XP_M32: #define __i386 1
    731 // CHECK_ATHLON_XP_M32: #define __i386__ 1
    732 // CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
    733 // CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
    734 // CHECK_ATHLON_XP_M32: #define i386 1
    735 // RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
    736 // RUN:     -target i386-unknown-linux \
    737 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
    738 // CHECK_ATHLON_XP_M64: error:
    739 //
    740 // RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
    741 // RUN:     -target i386-unknown-linux \
    742 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
    743 // CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
    744 // CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
    745 // CHECK_ATHLON_MP_M32: #define __MMX__ 1
    746 // CHECK_ATHLON_MP_M32: #define __SSE__ 1
    747 // CHECK_ATHLON_MP_M32: #define __athlon 1
    748 // CHECK_ATHLON_MP_M32: #define __athlon__ 1
    749 // CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
    750 // CHECK_ATHLON_MP_M32: #define __i386 1
    751 // CHECK_ATHLON_MP_M32: #define __i386__ 1
    752 // CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
    753 // CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
    754 // CHECK_ATHLON_MP_M32: #define i386 1
    755 // RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
    756 // RUN:     -target i386-unknown-linux \
    757 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
    758 // CHECK_ATHLON_MP_M64: error:
    759 //
    760 // RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
    761 // RUN:     -target i386-unknown-linux \
    762 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M32
    763 // CHECK_X86_64_M32: #define __MMX__ 1
    764 // CHECK_X86_64_M32: #define __SSE2__ 1
    765 // CHECK_X86_64_M32: #define __SSE__ 1
    766 // CHECK_X86_64_M32: #define __i386 1
    767 // CHECK_X86_64_M32: #define __i386__ 1
    768 // CHECK_X86_64_M32: #define __k8 1
    769 // CHECK_X86_64_M32: #define __k8__ 1
    770 // CHECK_X86_64_M32: #define i386 1
    771 // RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
    772 // RUN:     -target i386-unknown-linux \
    773 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M64
    774 // CHECK_X86_64_M64: #define __MMX__ 1
    775 // CHECK_X86_64_M64: #define __SSE2_MATH__ 1
    776 // CHECK_X86_64_M64: #define __SSE2__ 1
    777 // CHECK_X86_64_M64: #define __SSE_MATH__ 1
    778 // CHECK_X86_64_M64: #define __SSE__ 1
    779 // CHECK_X86_64_M64: #define __amd64 1
    780 // CHECK_X86_64_M64: #define __amd64__ 1
    781 // CHECK_X86_64_M64: #define __k8 1
    782 // CHECK_X86_64_M64: #define __k8__ 1
    783 // CHECK_X86_64_M64: #define __x86_64 1
    784 // CHECK_X86_64_M64: #define __x86_64__ 1
    785 //
    786 // RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
    787 // RUN:     -target i386-unknown-linux \
    788 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M32
    789 // CHECK_K8_M32: #define __3dNOW_A__ 1
    790 // CHECK_K8_M32: #define __3dNOW__ 1
    791 // CHECK_K8_M32: #define __MMX__ 1
    792 // CHECK_K8_M32: #define __SSE2__ 1
    793 // CHECK_K8_M32: #define __SSE__ 1
    794 // CHECK_K8_M32: #define __i386 1
    795 // CHECK_K8_M32: #define __i386__ 1
    796 // CHECK_K8_M32: #define __k8 1
    797 // CHECK_K8_M32: #define __k8__ 1
    798 // CHECK_K8_M32: #define __tune_k8__ 1
    799 // CHECK_K8_M32: #define i386 1
    800 // RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
    801 // RUN:     -target i386-unknown-linux \
    802 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M64
    803 // CHECK_K8_M64: #define __3dNOW_A__ 1
    804 // CHECK_K8_M64: #define __3dNOW__ 1
    805 // CHECK_K8_M64: #define __MMX__ 1
    806 // CHECK_K8_M64: #define __SSE2_MATH__ 1
    807 // CHECK_K8_M64: #define __SSE2__ 1
    808 // CHECK_K8_M64: #define __SSE_MATH__ 1
    809 // CHECK_K8_M64: #define __SSE__ 1
    810 // CHECK_K8_M64: #define __amd64 1
    811 // CHECK_K8_M64: #define __amd64__ 1
    812 // CHECK_K8_M64: #define __k8 1
    813 // CHECK_K8_M64: #define __k8__ 1
    814 // CHECK_K8_M64: #define __tune_k8__ 1
    815 // CHECK_K8_M64: #define __x86_64 1
    816 // CHECK_K8_M64: #define __x86_64__ 1
    817 //
    818 // RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
    819 // RUN:     -target i386-unknown-linux \
    820 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
    821 // CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
    822 // CHECK_K8_SSE3_M32: #define __3dNOW__ 1
    823 // CHECK_K8_SSE3_M32: #define __MMX__ 1
    824 // CHECK_K8_SSE3_M32: #define __SSE2__ 1
    825 // CHECK_K8_SSE3_M32: #define __SSE3__ 1
    826 // CHECK_K8_SSE3_M32: #define __SSE__ 1
    827 // CHECK_K8_SSE3_M32: #define __i386 1
    828 // CHECK_K8_SSE3_M32: #define __i386__ 1
    829 // CHECK_K8_SSE3_M32: #define __k8 1
    830 // CHECK_K8_SSE3_M32: #define __k8__ 1
    831 // CHECK_K8_SSE3_M32: #define __tune_k8__ 1
    832 // CHECK_K8_SSE3_M32: #define i386 1
    833 // RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
    834 // RUN:     -target i386-unknown-linux \
    835 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
    836 // CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
    837 // CHECK_K8_SSE3_M64: #define __3dNOW__ 1
    838 // CHECK_K8_SSE3_M64: #define __MMX__ 1
    839 // CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
    840 // CHECK_K8_SSE3_M64: #define __SSE2__ 1
    841 // CHECK_K8_SSE3_M64: #define __SSE3__ 1
    842 // CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
    843 // CHECK_K8_SSE3_M64: #define __SSE__ 1
    844 // CHECK_K8_SSE3_M64: #define __amd64 1
    845 // CHECK_K8_SSE3_M64: #define __amd64__ 1
    846 // CHECK_K8_SSE3_M64: #define __k8 1
    847 // CHECK_K8_SSE3_M64: #define __k8__ 1
    848 // CHECK_K8_SSE3_M64: #define __tune_k8__ 1
    849 // CHECK_K8_SSE3_M64: #define __x86_64 1
    850 // CHECK_K8_SSE3_M64: #define __x86_64__ 1
    851 //
    852 // RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
    853 // RUN:     -target i386-unknown-linux \
    854 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M32
    855 // CHECK_OPTERON_M32: #define __3dNOW_A__ 1
    856 // CHECK_OPTERON_M32: #define __3dNOW__ 1
    857 // CHECK_OPTERON_M32: #define __MMX__ 1
    858 // CHECK_OPTERON_M32: #define __SSE2__ 1
    859 // CHECK_OPTERON_M32: #define __SSE__ 1
    860 // CHECK_OPTERON_M32: #define __i386 1
    861 // CHECK_OPTERON_M32: #define __i386__ 1
    862 // CHECK_OPTERON_M32: #define __k8 1
    863 // CHECK_OPTERON_M32: #define __k8__ 1
    864 // CHECK_OPTERON_M32: #define __tune_k8__ 1
    865 // CHECK_OPTERON_M32: #define i386 1
    866 // RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
    867 // RUN:     -target i386-unknown-linux \
    868 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M64
    869 // CHECK_OPTERON_M64: #define __3dNOW_A__ 1
    870 // CHECK_OPTERON_M64: #define __3dNOW__ 1
    871 // CHECK_OPTERON_M64: #define __MMX__ 1
    872 // CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
    873 // CHECK_OPTERON_M64: #define __SSE2__ 1
    874 // CHECK_OPTERON_M64: #define __SSE_MATH__ 1
    875 // CHECK_OPTERON_M64: #define __SSE__ 1
    876 // CHECK_OPTERON_M64: #define __amd64 1
    877 // CHECK_OPTERON_M64: #define __amd64__ 1
    878 // CHECK_OPTERON_M64: #define __k8 1
    879 // CHECK_OPTERON_M64: #define __k8__ 1
    880 // CHECK_OPTERON_M64: #define __tune_k8__ 1
    881 // CHECK_OPTERON_M64: #define __x86_64 1
    882 // CHECK_OPTERON_M64: #define __x86_64__ 1
    883 //
    884 // RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
    885 // RUN:     -target i386-unknown-linux \
    886 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
    887 // CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
    888 // CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
    889 // CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
    890 // CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
    891 // CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
    892 // CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
    893 // CHECK_OPTERON_SSE3_M32: #define __i386 1
    894 // CHECK_OPTERON_SSE3_M32: #define __i386__ 1
    895 // CHECK_OPTERON_SSE3_M32: #define __k8 1
    896 // CHECK_OPTERON_SSE3_M32: #define __k8__ 1
    897 // CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
    898 // CHECK_OPTERON_SSE3_M32: #define i386 1
    899 // RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
    900 // RUN:     -target i386-unknown-linux \
    901 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
    902 // CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
    903 // CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
    904 // CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
    905 // CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
    906 // CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
    907 // CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
    908 // CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
    909 // CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
    910 // CHECK_OPTERON_SSE3_M64: #define __amd64 1
    911 // CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
    912 // CHECK_OPTERON_SSE3_M64: #define __k8 1
    913 // CHECK_OPTERON_SSE3_M64: #define __k8__ 1
    914 // CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
    915 // CHECK_OPTERON_SSE3_M64: #define __x86_64 1
    916 // CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
    917 //
    918 // RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
    919 // RUN:     -target i386-unknown-linux \
    920 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
    921 // CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
    922 // CHECK_ATHLON64_M32: #define __3dNOW__ 1
    923 // CHECK_ATHLON64_M32: #define __MMX__ 1
    924 // CHECK_ATHLON64_M32: #define __SSE2__ 1
    925 // CHECK_ATHLON64_M32: #define __SSE__ 1
    926 // CHECK_ATHLON64_M32: #define __i386 1
    927 // CHECK_ATHLON64_M32: #define __i386__ 1
    928 // CHECK_ATHLON64_M32: #define __k8 1
    929 // CHECK_ATHLON64_M32: #define __k8__ 1
    930 // CHECK_ATHLON64_M32: #define __tune_k8__ 1
    931 // CHECK_ATHLON64_M32: #define i386 1
    932 // RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
    933 // RUN:     -target i386-unknown-linux \
    934 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
    935 // CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
    936 // CHECK_ATHLON64_M64: #define __3dNOW__ 1
    937 // CHECK_ATHLON64_M64: #define __MMX__ 1
    938 // CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
    939 // CHECK_ATHLON64_M64: #define __SSE2__ 1
    940 // CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
    941 // CHECK_ATHLON64_M64: #define __SSE__ 1
    942 // CHECK_ATHLON64_M64: #define __amd64 1
    943 // CHECK_ATHLON64_M64: #define __amd64__ 1
    944 // CHECK_ATHLON64_M64: #define __k8 1
    945 // CHECK_ATHLON64_M64: #define __k8__ 1
    946 // CHECK_ATHLON64_M64: #define __tune_k8__ 1
    947 // CHECK_ATHLON64_M64: #define __x86_64 1
    948 // CHECK_ATHLON64_M64: #define __x86_64__ 1
    949 //
    950 // RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
    951 // RUN:     -target i386-unknown-linux \
    952 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
    953 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
    954 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
    955 // CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
    956 // CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
    957 // CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
    958 // CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
    959 // CHECK_ATHLON64_SSE3_M32: #define __i386 1
    960 // CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
    961 // CHECK_ATHLON64_SSE3_M32: #define __k8 1
    962 // CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
    963 // CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
    964 // CHECK_ATHLON64_SSE3_M32: #define i386 1
    965 // RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
    966 // RUN:     -target i386-unknown-linux \
    967 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
    968 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
    969 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
    970 // CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
    971 // CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
    972 // CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
    973 // CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
    974 // CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
    975 // CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
    976 // CHECK_ATHLON64_SSE3_M64: #define __amd64 1
    977 // CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
    978 // CHECK_ATHLON64_SSE3_M64: #define __k8 1
    979 // CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
    980 // CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
    981 // CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
    982 // CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
    983 //
    984 // RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
    985 // RUN:     -target i386-unknown-linux \
    986 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
    987 // CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
    988 // CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
    989 // CHECK_ATHLON_FX_M32: #define __MMX__ 1
    990 // CHECK_ATHLON_FX_M32: #define __SSE2__ 1
    991 // CHECK_ATHLON_FX_M32: #define __SSE__ 1
    992 // CHECK_ATHLON_FX_M32: #define __i386 1
    993 // CHECK_ATHLON_FX_M32: #define __i386__ 1
    994 // CHECK_ATHLON_FX_M32: #define __k8 1
    995 // CHECK_ATHLON_FX_M32: #define __k8__ 1
    996 // CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
    997 // CHECK_ATHLON_FX_M32: #define i386 1
    998 // RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
    999 // RUN:     -target i386-unknown-linux \
   1000 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
   1001 // CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
   1002 // CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
   1003 // CHECK_ATHLON_FX_M64: #define __MMX__ 1
   1004 // CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
   1005 // CHECK_ATHLON_FX_M64: #define __SSE2__ 1
   1006 // CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
   1007 // CHECK_ATHLON_FX_M64: #define __SSE__ 1
   1008 // CHECK_ATHLON_FX_M64: #define __amd64 1
   1009 // CHECK_ATHLON_FX_M64: #define __amd64__ 1
   1010 // CHECK_ATHLON_FX_M64: #define __k8 1
   1011 // CHECK_ATHLON_FX_M64: #define __k8__ 1
   1012 // CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
   1013 // CHECK_ATHLON_FX_M64: #define __x86_64 1
   1014 // CHECK_ATHLON_FX_M64: #define __x86_64__ 1
   1015 // RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \
   1016 // RUN:     -target i386-unknown-linux \
   1017 // RUN:   | FileCheck %s -check-prefix=CHECK_AMDFAM10_M32
   1018 // CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1
   1019 // CHECK_AMDFAM10_M32: #define __3dNOW__ 1
   1020 // CHECK_AMDFAM10_M32: #define __LZCNT__ 1
   1021 // CHECK_AMDFAM10_M32: #define __MMX__ 1
   1022 // CHECK_AMDFAM10_M32: #define __POPCNT__ 1
   1023 // CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1
   1024 // CHECK_AMDFAM10_M32: #define __SSE2__ 1
   1025 // CHECK_AMDFAM10_M32: #define __SSE3__ 1
   1026 // CHECK_AMDFAM10_M32: #define __SSE4A__ 1
   1027 // CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1
   1028 // CHECK_AMDFAM10_M32: #define __SSE__ 1
   1029 // CHECK_AMDFAM10_M32: #define __amdfam10 1
   1030 // CHECK_AMDFAM10_M32: #define __amdfam10__ 1
   1031 // CHECK_AMDFAM10_M32: #define __i386 1
   1032 // CHECK_AMDFAM10_M32: #define __i386__ 1
   1033 // CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1
   1034 // RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
   1035 // RUN:     -target i386-unknown-linux \
   1036 // RUN:   | FileCheck %s -check-prefix=CHECK_AMDFAM10_M64
   1037 // CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
   1038 // CHECK_AMDFAM10_M64: #define __3dNOW__ 1
   1039 // CHECK_AMDFAM10_M64: #define __LZCNT__ 1
   1040 // CHECK_AMDFAM10_M64: #define __MMX__ 1
   1041 // CHECK_AMDFAM10_M64: #define __POPCNT__ 1
   1042 // CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
   1043 // CHECK_AMDFAM10_M64: #define __SSE2__ 1
   1044 // CHECK_AMDFAM10_M64: #define __SSE3__ 1
   1045 // CHECK_AMDFAM10_M64: #define __SSE4A__ 1
   1046 // CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
   1047 // CHECK_AMDFAM10_M64: #define __SSE__ 1
   1048 // CHECK_AMDFAM10_M64: #define __amd64 1
   1049 // CHECK_AMDFAM10_M64: #define __amd64__ 1
   1050 // CHECK_AMDFAM10_M64: #define __amdfam10 1
   1051 // CHECK_AMDFAM10_M64: #define __amdfam10__ 1
   1052 // CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
   1053 // CHECK_AMDFAM10_M64: #define __x86_64 1
   1054 // CHECK_AMDFAM10_M64: #define __x86_64__ 1
   1055 // RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \
   1056 // RUN:     -target i386-unknown-linux \
   1057 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER1_M32
   1058 // CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1
   1059 // CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1
   1060 // CHECK_BTVER1_M32: #define __LZCNT__ 1
   1061 // CHECK_BTVER1_M32: #define __MMX__ 1
   1062 // CHECK_BTVER1_M32: #define __POPCNT__ 1
   1063 // CHECK_BTVER1_M32: #define __SSE2_MATH__ 1
   1064 // CHECK_BTVER1_M32: #define __SSE2__ 1
   1065 // CHECK_BTVER1_M32: #define __SSE3__ 1
   1066 // CHECK_BTVER1_M32: #define __SSE4A__ 1
   1067 // CHECK_BTVER1_M32: #define __SSE_MATH__ 1
   1068 // CHECK_BTVER1_M32: #define __SSE__ 1
   1069 // CHECK_BTVER1_M32: #define __SSSE3__ 1
   1070 // CHECK_BTVER1_M32: #define __btver1 1
   1071 // CHECK_BTVER1_M32: #define __btver1__ 1
   1072 // CHECK_BTVER1_M32: #define __i386 1
   1073 // CHECK_BTVER1_M32: #define __i386__ 1
   1074 // CHECK_BTVER1_M32: #define __tune_btver1__ 1
   1075 // RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \
   1076 // RUN:     -target i386-unknown-linux \
   1077 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER1_M64
   1078 // CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1
   1079 // CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1
   1080 // CHECK_BTVER1_M64: #define __LZCNT__ 1
   1081 // CHECK_BTVER1_M64: #define __MMX__ 1
   1082 // CHECK_BTVER1_M64: #define __POPCNT__ 1
   1083 // CHECK_BTVER1_M64: #define __SSE2_MATH__ 1
   1084 // CHECK_BTVER1_M64: #define __SSE2__ 1
   1085 // CHECK_BTVER1_M64: #define __SSE3__ 1
   1086 // CHECK_BTVER1_M64: #define __SSE4A__ 1
   1087 // CHECK_BTVER1_M64: #define __SSE_MATH__ 1
   1088 // CHECK_BTVER1_M64: #define __SSE__ 1
   1089 // CHECK_BTVER1_M64: #define __SSSE3__ 1
   1090 // CHECK_BTVER1_M64: #define __amd64 1
   1091 // CHECK_BTVER1_M64: #define __amd64__ 1
   1092 // CHECK_BTVER1_M64: #define __btver1 1
   1093 // CHECK_BTVER1_M64: #define __btver1__ 1
   1094 // CHECK_BTVER1_M64: #define __tune_btver1__ 1
   1095 // CHECK_BTVER1_M64: #define __x86_64 1
   1096 // CHECK_BTVER1_M64: #define __x86_64__ 1
   1097 // RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \
   1098 // RUN:     -target i386-unknown-linux \
   1099 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER2_M32
   1100 // CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1
   1101 // CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1
   1102 // CHECK_BTVER2_M32: #define __AES__ 1
   1103 // CHECK_BTVER2_M32: #define __AVX__ 1
   1104 // CHECK_BTVER2_M32: #define __LZCNT__ 1
   1105 // CHECK_BTVER2_M32: #define __MMX__ 1
   1106 // CHECK_BTVER2_M32: #define __POPCNT__ 1
   1107 // CHECK_BTVER2_M32: #define __SSE2_MATH__ 1
   1108 // CHECK_BTVER2_M32: #define __SSE2__ 1
   1109 // CHECK_BTVER2_M32: #define __SSE3__ 1
   1110 // CHECK_BTVER2_M32: #define __SSE4A__ 1
   1111 // CHECK_BTVER2_M32: #define __SSE_MATH__ 1
   1112 // CHECK_BTVER2_M32: #define __SSE__ 1
   1113 // CHECK_BTVER2_M32: #define __SSSE3__ 1
   1114 // CHECK_BTVER2_M32: #define __btver2 1
   1115 // CHECK_BTVER2_M32: #define __btver2__ 1
   1116 // CHECK_BTVER2_M32: #define __i386 1
   1117 // CHECK_BTVER2_M32: #define __i386__ 1
   1118 // CHECK_BTVER2_M32: #define __tune_btver2__ 1
   1119 // RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \
   1120 // RUN:     -target i386-unknown-linux \
   1121 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER2_M64
   1122 // CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1
   1123 // CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1
   1124 // CHECK_BTVER2_M64: #define __AES__ 1
   1125 // CHECK_BTVER2_M64: #define __AVX__ 1
   1126 // CHECK_BTVER2_M64: #define __LZCNT__ 1
   1127 // CHECK_BTVER2_M64: #define __MMX__ 1
   1128 // CHECK_BTVER2_M64: #define __POPCNT__ 1
   1129 // CHECK_BTVER2_M64: #define __SSE2_MATH__ 1
   1130 // CHECK_BTVER2_M64: #define __SSE2__ 1
   1131 // CHECK_BTVER2_M64: #define __SSE3__ 1
   1132 // CHECK_BTVER2_M64: #define __SSE4A__ 1
   1133 // CHECK_BTVER2_M64: #define __SSE_MATH__ 1
   1134 // CHECK_BTVER2_M64: #define __SSE__ 1
   1135 // CHECK_BTVER2_M64: #define __SSSE3__ 1
   1136 // CHECK_BTVER2_M64: #define __amd64 1
   1137 // CHECK_BTVER2_M64: #define __amd64__ 1
   1138 // CHECK_BTVER2_M64: #define __btver2 1
   1139 // CHECK_BTVER2_M64: #define __btver2__ 1
   1140 // CHECK_BTVER2_M64: #define __tune_btver2__ 1
   1141 // CHECK_BTVER2_M64: #define __x86_64 1
   1142 // CHECK_BTVER2_M64: #define __x86_64__ 1
   1143 // RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
   1144 // RUN:     -target i386-unknown-linux \
   1145 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER1_M32
   1146 // CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
   1147 // CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
   1148 // CHECK_BDVER1_M32: #define __AES__ 1
   1149 // CHECK_BDVER1_M32: #define __AVX__ 1
   1150 // CHECK_BDVER1_M32: #define __FMA4__ 1
   1151 // CHECK_BDVER1_M32: #define __LZCNT__ 1
   1152 // CHECK_BDVER1_M32: #define __MMX__ 1
   1153 // CHECK_BDVER1_M32: #define __PCLMUL__ 1
   1154 // CHECK_BDVER1_M32: #define __POPCNT__ 1
   1155 // CHECK_BDVER1_M32: #define __SSE2_MATH__ 1
   1156 // CHECK_BDVER1_M32: #define __SSE2__ 1
   1157 // CHECK_BDVER1_M32: #define __SSE3__ 1
   1158 // CHECK_BDVER1_M32: #define __SSE4A__ 1
   1159 // CHECK_BDVER1_M32: #define __SSE4_1__ 1
   1160 // CHECK_BDVER1_M32: #define __SSE4_2__ 1
   1161 // CHECK_BDVER1_M32: #define __SSE_MATH__ 1
   1162 // CHECK_BDVER1_M32: #define __SSE__ 1
   1163 // CHECK_BDVER1_M32: #define __SSSE3__ 1
   1164 // CHECK_BDVER1_M32: #define __XOP__ 1
   1165 // CHECK_BDVER1_M32: #define __bdver1 1
   1166 // CHECK_BDVER1_M32: #define __bdver1__ 1
   1167 // CHECK_BDVER1_M32: #define __i386 1
   1168 // CHECK_BDVER1_M32: #define __i386__ 1
   1169 // CHECK_BDVER1_M32: #define __tune_bdver1__ 1
   1170 // RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
   1171 // RUN:     -target i386-unknown-linux \
   1172 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER1_M64
   1173 // CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
   1174 // CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
   1175 // CHECK_BDVER1_M64: #define __AES__ 1
   1176 // CHECK_BDVER1_M64: #define __AVX__ 1
   1177 // CHECK_BDVER1_M64: #define __FMA4__ 1
   1178 // CHECK_BDVER1_M64: #define __LZCNT__ 1
   1179 // CHECK_BDVER1_M64: #define __MMX__ 1
   1180 // CHECK_BDVER1_M64: #define __PCLMUL__ 1
   1181 // CHECK_BDVER1_M64: #define __POPCNT__ 1
   1182 // CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
   1183 // CHECK_BDVER1_M64: #define __SSE2__ 1
   1184 // CHECK_BDVER1_M64: #define __SSE3__ 1
   1185 // CHECK_BDVER1_M64: #define __SSE4A__ 1
   1186 // CHECK_BDVER1_M64: #define __SSE4_1__ 1
   1187 // CHECK_BDVER1_M64: #define __SSE4_2__ 1
   1188 // CHECK_BDVER1_M64: #define __SSE_MATH__ 1
   1189 // CHECK_BDVER1_M64: #define __SSE__ 1
   1190 // CHECK_BDVER1_M64: #define __SSSE3__ 1
   1191 // CHECK_BDVER1_M64: #define __XOP__ 1
   1192 // CHECK_BDVER1_M64: #define __amd64 1
   1193 // CHECK_BDVER1_M64: #define __amd64__ 1
   1194 // CHECK_BDVER1_M64: #define __bdver1 1
   1195 // CHECK_BDVER1_M64: #define __bdver1__ 1
   1196 // CHECK_BDVER1_M64: #define __tune_bdver1__ 1
   1197 // CHECK_BDVER1_M64: #define __x86_64 1
   1198 // CHECK_BDVER1_M64: #define __x86_64__ 1
   1199 // RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \
   1200 // RUN:     -target i386-unknown-linux \
   1201 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER2_M32
   1202 // CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1
   1203 // CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1
   1204 // CHECK_BDVER2_M32: #define __AES__ 1
   1205 // CHECK_BDVER2_M32: #define __AVX__ 1
   1206 // CHECK_BDVER2_M32: #define __BMI__ 1
   1207 // CHECK_BDVER2_M32: #define __F16C__ 1
   1208 // CHECK_BDVER2_M32: #define __FMA4__ 1
   1209 // CHECK_BDVER2_M32: #define __FMA__ 1
   1210 // CHECK_BDVER2_M32: #define __LZCNT__ 1
   1211 // CHECK_BDVER2_M32: #define __MMX__ 1
   1212 // CHECK_BDVER2_M32: #define __PCLMUL__ 1
   1213 // CHECK_BDVER2_M32: #define __POPCNT__ 1
   1214 // CHECK_BDVER2_M32: #define __SSE2_MATH__ 1
   1215 // CHECK_BDVER2_M32: #define __SSE2__ 1
   1216 // CHECK_BDVER2_M32: #define __SSE3__ 1
   1217 // CHECK_BDVER2_M32: #define __SSE4A__ 1
   1218 // CHECK_BDVER2_M32: #define __SSE4_1__ 1
   1219 // CHECK_BDVER2_M32: #define __SSE4_2__ 1
   1220 // CHECK_BDVER2_M32: #define __SSE_MATH__ 1
   1221 // CHECK_BDVER2_M32: #define __SSE__ 1
   1222 // CHECK_BDVER2_M32: #define __SSSE3__ 1
   1223 // CHECK_BDVER2_M32: #define __XOP__ 1
   1224 // CHECK_BDVER2_M32: #define __bdver2 1
   1225 // CHECK_BDVER2_M32: #define __bdver2__ 1
   1226 // CHECK_BDVER2_M32: #define __i386 1
   1227 // CHECK_BDVER2_M32: #define __i386__ 1
   1228 // CHECK_BDVER2_M32: #define __tune_bdver2__ 1
   1229 // RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \
   1230 // RUN:     -target i386-unknown-linux \
   1231 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER2_M64
   1232 // CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1
   1233 // CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1
   1234 // CHECK_BDVER2_M64: #define __AES__ 1
   1235 // CHECK_BDVER2_M64: #define __AVX__ 1
   1236 // CHECK_BDVER2_M64: #define __BMI__ 1
   1237 // CHECK_BDVER2_M64: #define __F16C__ 1
   1238 // CHECK_BDVER2_M64: #define __FMA4__ 1
   1239 // CHECK_BDVER2_M64: #define __FMA__ 1
   1240 // CHECK_BDVER2_M64: #define __LZCNT__ 1
   1241 // CHECK_BDVER2_M64: #define __MMX__ 1
   1242 // CHECK_BDVER2_M64: #define __PCLMUL__ 1
   1243 // CHECK_BDVER2_M64: #define __POPCNT__ 1
   1244 // CHECK_BDVER2_M64: #define __SSE2_MATH__ 1
   1245 // CHECK_BDVER2_M64: #define __SSE2__ 1
   1246 // CHECK_BDVER2_M64: #define __SSE3__ 1
   1247 // CHECK_BDVER2_M64: #define __SSE4A__ 1
   1248 // CHECK_BDVER2_M64: #define __SSE4_1__ 1
   1249 // CHECK_BDVER2_M64: #define __SSE4_2__ 1
   1250 // CHECK_BDVER2_M64: #define __SSE_MATH__ 1
   1251 // CHECK_BDVER2_M64: #define __SSE__ 1
   1252 // CHECK_BDVER2_M64: #define __SSSE3__ 1
   1253 // CHECK_BDVER2_M64: #define __XOP__ 1
   1254 // CHECK_BDVER2_M64: #define __amd64 1
   1255 // CHECK_BDVER2_M64: #define __amd64__ 1
   1256 // CHECK_BDVER2_M64: #define __bdver2 1
   1257 // CHECK_BDVER2_M64: #define __bdver2__ 1
   1258 // CHECK_BDVER2_M64: #define __tune_bdver2__ 1
   1259 // CHECK_BDVER2_M64: #define __x86_64 1
   1260 // CHECK_BDVER2_M64: #define __x86_64__ 1
   1261 //
   1262 // End X86/GCC/Linux tests ------------------
   1263