Home | History | Annotate | Download | only in Preprocessor
      1 // Begin X86/GCC/Linux tests ----------------
      2 //
      3 // RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
      4 // RUN:     -target i386-unknown-linux \
      5 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M32
      6 // CHECK_I386_M32: #define __i386 1
      7 // CHECK_I386_M32: #define __i386__ 1
      8 // CHECK_I386_M32: #define __tune_i386__ 1
      9 // CHECK_I386_M32: #define i386 1
     10 // RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
     11 // RUN:     -target i386-unknown-linux \
     12 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M64
     13 // CHECK_I386_M64: error:
     14 //
     15 // RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
     16 // RUN:     -target i386-unknown-linux \
     17 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M32
     18 // CHECK_I486_M32: #define __i386 1
     19 // CHECK_I486_M32: #define __i386__ 1
     20 // CHECK_I486_M32: #define __i486 1
     21 // CHECK_I486_M32: #define __i486__ 1
     22 // CHECK_I486_M32: #define __tune_i486__ 1
     23 // CHECK_I486_M32: #define i386 1
     24 // RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
     25 // RUN:     -target i386-unknown-linux \
     26 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M64
     27 // CHECK_I486_M64: error:
     28 //
     29 // RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
     30 // RUN:     -target i386-unknown-linux \
     31 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M32
     32 // CHECK_I586_M32: #define __i386 1
     33 // CHECK_I586_M32: #define __i386__ 1
     34 // CHECK_I586_M32: #define __i586 1
     35 // CHECK_I586_M32: #define __i586__ 1
     36 // CHECK_I586_M32: #define __pentium 1
     37 // CHECK_I586_M32: #define __pentium__ 1
     38 // CHECK_I586_M32: #define __tune_i586__ 1
     39 // CHECK_I586_M32: #define __tune_pentium__ 1
     40 // CHECK_I586_M32: #define i386 1
     41 // RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
     42 // RUN:     -target i386-unknown-linux \
     43 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M64
     44 // CHECK_I586_M64: error:
     45 //
     46 // RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
     47 // RUN:     -target i386-unknown-linux \
     48 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M32
     49 // CHECK_PENTIUM_M32: #define __i386 1
     50 // CHECK_PENTIUM_M32: #define __i386__ 1
     51 // CHECK_PENTIUM_M32: #define __i586 1
     52 // CHECK_PENTIUM_M32: #define __i586__ 1
     53 // CHECK_PENTIUM_M32: #define __pentium 1
     54 // CHECK_PENTIUM_M32: #define __pentium__ 1
     55 // CHECK_PENTIUM_M32: #define __tune_i586__ 1
     56 // CHECK_PENTIUM_M32: #define __tune_pentium__ 1
     57 // CHECK_PENTIUM_M32: #define i386 1
     58 // RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
     59 // RUN:     -target i386-unknown-linux \
     60 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
     61 // CHECK_PENTIUM_M64: error:
     62 //
     63 // RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
     64 // RUN:     -target i386-unknown-linux \
     65 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
     66 // CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
     67 // CHECK_PENTIUM_MMX_M32: #define __i386 1
     68 // CHECK_PENTIUM_MMX_M32: #define __i386__ 1
     69 // CHECK_PENTIUM_MMX_M32: #define __i586 1
     70 // CHECK_PENTIUM_MMX_M32: #define __i586__ 1
     71 // CHECK_PENTIUM_MMX_M32: #define __pentium 1
     72 // CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
     73 // CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
     74 // CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
     75 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
     76 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
     77 // CHECK_PENTIUM_MMX_M32: #define i386 1
     78 // RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
     79 // RUN:     -target i386-unknown-linux \
     80 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
     81 // CHECK_PENTIUM_MMX_M64: error:
     82 //
     83 // RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
     84 // RUN:     -target i386-unknown-linux \
     85 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
     86 // CHECK_WINCHIP_C6_M32: #define __MMX__ 1
     87 // CHECK_WINCHIP_C6_M32: #define __i386 1
     88 // CHECK_WINCHIP_C6_M32: #define __i386__ 1
     89 // CHECK_WINCHIP_C6_M32: #define __i486 1
     90 // CHECK_WINCHIP_C6_M32: #define __i486__ 1
     91 // CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
     92 // CHECK_WINCHIP_C6_M32: #define i386 1
     93 // RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
     94 // RUN:     -target i386-unknown-linux \
     95 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
     96 // CHECK_WINCHIP_C6_M64: error:
     97 //
     98 // RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
     99 // RUN:     -target i386-unknown-linux \
    100 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
    101 // CHECK_WINCHIP2_M32: #define __3dNOW__ 1
    102 // CHECK_WINCHIP2_M32: #define __MMX__ 1
    103 // CHECK_WINCHIP2_M32: #define __i386 1
    104 // CHECK_WINCHIP2_M32: #define __i386__ 1
    105 // CHECK_WINCHIP2_M32: #define __i486 1
    106 // CHECK_WINCHIP2_M32: #define __i486__ 1
    107 // CHECK_WINCHIP2_M32: #define __tune_i486__ 1
    108 // CHECK_WINCHIP2_M32: #define i386 1
    109 // RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
    110 // RUN:     -target i386-unknown-linux \
    111 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
    112 // CHECK_WINCHIP2_M64: error:
    113 //
    114 // RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
    115 // RUN:     -target i386-unknown-linux \
    116 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M32
    117 // CHECK_C3_M32: #define __3dNOW__ 1
    118 // CHECK_C3_M32: #define __MMX__ 1
    119 // CHECK_C3_M32: #define __i386 1
    120 // CHECK_C3_M32: #define __i386__ 1
    121 // CHECK_C3_M32: #define __i486 1
    122 // CHECK_C3_M32: #define __i486__ 1
    123 // CHECK_C3_M32: #define __tune_i486__ 1
    124 // CHECK_C3_M32: #define i386 1
    125 // RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
    126 // RUN:     -target i386-unknown-linux \
    127 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M64
    128 // CHECK_C3_M64: error:
    129 //
    130 // RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
    131 // RUN:     -target i386-unknown-linux \
    132 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M32
    133 // CHECK_C3_2_M32: #define __MMX__ 1
    134 // CHECK_C3_2_M32: #define __SSE__ 1
    135 // CHECK_C3_2_M32: #define __i386 1
    136 // CHECK_C3_2_M32: #define __i386__ 1
    137 // CHECK_C3_2_M32: #define __i686 1
    138 // CHECK_C3_2_M32: #define __i686__ 1
    139 // CHECK_C3_2_M32: #define __pentiumpro 1
    140 // CHECK_C3_2_M32: #define __pentiumpro__ 1
    141 // CHECK_C3_2_M32: #define __tune_i686__ 1
    142 // CHECK_C3_2_M32: #define __tune_pentium2__ 1
    143 // CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
    144 // CHECK_C3_2_M32: #define i386 1
    145 // RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
    146 // RUN:     -target i386-unknown-linux \
    147 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M64
    148 // CHECK_C3_2_M64: error:
    149 //
    150 // RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
    151 // RUN:     -target i386-unknown-linux \
    152 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M32
    153 // CHECK_I686_M32: #define __i386 1
    154 // CHECK_I686_M32: #define __i386__ 1
    155 // CHECK_I686_M32: #define __i686 1
    156 // CHECK_I686_M32: #define __i686__ 1
    157 // CHECK_I686_M32: #define __pentiumpro 1
    158 // CHECK_I686_M32: #define __pentiumpro__ 1
    159 // CHECK_I686_M32: #define i386 1
    160 // RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
    161 // RUN:     -target i386-unknown-linux \
    162 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M64
    163 // CHECK_I686_M64: error:
    164 //
    165 // RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
    166 // RUN:     -target i386-unknown-linux \
    167 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
    168 // CHECK_PENTIUMPRO_M32: #define __i386 1
    169 // CHECK_PENTIUMPRO_M32: #define __i386__ 1
    170 // CHECK_PENTIUMPRO_M32: #define __i686 1
    171 // CHECK_PENTIUMPRO_M32: #define __i686__ 1
    172 // CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
    173 // CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
    174 // CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
    175 // CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
    176 // CHECK_PENTIUMPRO_M32: #define i386 1
    177 // RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
    178 // RUN:     -target i386-unknown-linux \
    179 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
    180 // CHECK_PENTIUMPRO_M64: error:
    181 //
    182 // RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
    183 // RUN:     -target i386-unknown-linux \
    184 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
    185 // CHECK_PENTIUM2_M32: #define __MMX__ 1
    186 // CHECK_PENTIUM2_M32: #define __i386 1
    187 // CHECK_PENTIUM2_M32: #define __i386__ 1
    188 // CHECK_PENTIUM2_M32: #define __i686 1
    189 // CHECK_PENTIUM2_M32: #define __i686__ 1
    190 // CHECK_PENTIUM2_M32: #define __pentiumpro 1
    191 // CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
    192 // CHECK_PENTIUM2_M32: #define __tune_i686__ 1
    193 // CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
    194 // CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
    195 // CHECK_PENTIUM2_M32: #define i386 1
    196 // RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
    197 // RUN:     -target i386-unknown-linux \
    198 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
    199 // CHECK_PENTIUM2_M64: error:
    200 //
    201 // RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
    202 // RUN:     -target i386-unknown-linux \
    203 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
    204 // CHECK_PENTIUM3_M32: #define __MMX__ 1
    205 // CHECK_PENTIUM3_M32: #define __SSE__ 1
    206 // CHECK_PENTIUM3_M32: #define __i386 1
    207 // CHECK_PENTIUM3_M32: #define __i386__ 1
    208 // CHECK_PENTIUM3_M32: #define __i686 1
    209 // CHECK_PENTIUM3_M32: #define __i686__ 1
    210 // CHECK_PENTIUM3_M32: #define __pentiumpro 1
    211 // CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
    212 // CHECK_PENTIUM3_M32: #define __tune_i686__ 1
    213 // CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
    214 // CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
    215 // CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
    216 // CHECK_PENTIUM3_M32: #define i386 1
    217 // RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
    218 // RUN:     -target i386-unknown-linux \
    219 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
    220 // CHECK_PENTIUM3_M64: error:
    221 //
    222 // RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
    223 // RUN:     -target i386-unknown-linux \
    224 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
    225 // CHECK_PENTIUM3M_M32: #define __MMX__ 1
    226 // CHECK_PENTIUM3M_M32: #define __SSE__ 1
    227 // CHECK_PENTIUM3M_M32: #define __i386 1
    228 // CHECK_PENTIUM3M_M32: #define __i386__ 1
    229 // CHECK_PENTIUM3M_M32: #define __i686 1
    230 // CHECK_PENTIUM3M_M32: #define __i686__ 1
    231 // CHECK_PENTIUM3M_M32: #define __pentiumpro 1
    232 // CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
    233 // CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
    234 // CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
    235 // CHECK_PENTIUM3M_M32: #define i386 1
    236 // RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
    237 // RUN:     -target i386-unknown-linux \
    238 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
    239 // CHECK_PENTIUM3M_M64: error:
    240 //
    241 // RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
    242 // RUN:     -target i386-unknown-linux \
    243 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
    244 // CHECK_PENTIUM_M_M32: #define __MMX__ 1
    245 // CHECK_PENTIUM_M_M32: #define __SSE2__ 1
    246 // CHECK_PENTIUM_M_M32: #define __SSE__ 1
    247 // CHECK_PENTIUM_M_M32: #define __i386 1
    248 // CHECK_PENTIUM_M_M32: #define __i386__ 1
    249 // CHECK_PENTIUM_M_M32: #define __i686 1
    250 // CHECK_PENTIUM_M_M32: #define __i686__ 1
    251 // CHECK_PENTIUM_M_M32: #define __pentiumpro 1
    252 // CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
    253 // CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
    254 // CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
    255 // CHECK_PENTIUM_M_M32: #define i386 1
    256 // RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
    257 // RUN:     -target i386-unknown-linux \
    258 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
    259 // CHECK_PENTIUM_M_M64: error:
    260 //
    261 // RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
    262 // RUN:     -target i386-unknown-linux \
    263 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
    264 // CHECK_PENTIUM4_M32: #define __MMX__ 1
    265 // CHECK_PENTIUM4_M32: #define __SSE2__ 1
    266 // CHECK_PENTIUM4_M32: #define __SSE__ 1
    267 // CHECK_PENTIUM4_M32: #define __i386 1
    268 // CHECK_PENTIUM4_M32: #define __i386__ 1
    269 // CHECK_PENTIUM4_M32: #define __pentium4 1
    270 // CHECK_PENTIUM4_M32: #define __pentium4__ 1
    271 // CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
    272 // CHECK_PENTIUM4_M32: #define i386 1
    273 // RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
    274 // RUN:     -target i386-unknown-linux \
    275 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
    276 // CHECK_PENTIUM4_M64: error:
    277 //
    278 // RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
    279 // RUN:     -target i386-unknown-linux \
    280 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
    281 // CHECK_PENTIUM4M_M32: #define __MMX__ 1
    282 // CHECK_PENTIUM4M_M32: #define __SSE2__ 1
    283 // CHECK_PENTIUM4M_M32: #define __SSE__ 1
    284 // CHECK_PENTIUM4M_M32: #define __i386 1
    285 // CHECK_PENTIUM4M_M32: #define __i386__ 1
    286 // CHECK_PENTIUM4M_M32: #define __pentium4 1
    287 // CHECK_PENTIUM4M_M32: #define __pentium4__ 1
    288 // CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
    289 // CHECK_PENTIUM4M_M32: #define i386 1
    290 // RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
    291 // RUN:     -target i386-unknown-linux \
    292 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
    293 // CHECK_PENTIUM4M_M64: error:
    294 //
    295 // RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
    296 // RUN:     -target i386-unknown-linux \
    297 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
    298 // CHECK_PRESCOTT_M32: #define __MMX__ 1
    299 // CHECK_PRESCOTT_M32: #define __SSE2__ 1
    300 // CHECK_PRESCOTT_M32: #define __SSE3__ 1
    301 // CHECK_PRESCOTT_M32: #define __SSE__ 1
    302 // CHECK_PRESCOTT_M32: #define __i386 1
    303 // CHECK_PRESCOTT_M32: #define __i386__ 1
    304 // CHECK_PRESCOTT_M32: #define __nocona 1
    305 // CHECK_PRESCOTT_M32: #define __nocona__ 1
    306 // CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
    307 // CHECK_PRESCOTT_M32: #define i386 1
    308 // RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
    309 // RUN:     -target i386-unknown-linux \
    310 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
    311 // CHECK_PRESCOTT_M64: error:
    312 //
    313 // RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
    314 // RUN:     -target i386-unknown-linux \
    315 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M32
    316 // CHECK_NOCONA_M32: #define __MMX__ 1
    317 // CHECK_NOCONA_M32: #define __SSE2__ 1
    318 // CHECK_NOCONA_M32: #define __SSE3__ 1
    319 // CHECK_NOCONA_M32: #define __SSE__ 1
    320 // CHECK_NOCONA_M32: #define __i386 1
    321 // CHECK_NOCONA_M32: #define __i386__ 1
    322 // CHECK_NOCONA_M32: #define __nocona 1
    323 // CHECK_NOCONA_M32: #define __nocona__ 1
    324 // CHECK_NOCONA_M32: #define __tune_nocona__ 1
    325 // CHECK_NOCONA_M32: #define i386 1
    326 // RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
    327 // RUN:     -target i386-unknown-linux \
    328 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M64
    329 // CHECK_NOCONA_M64: #define __MMX__ 1
    330 // CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
    331 // CHECK_NOCONA_M64: #define __SSE2__ 1
    332 // CHECK_NOCONA_M64: #define __SSE3__ 1
    333 // CHECK_NOCONA_M64: #define __SSE_MATH__ 1
    334 // CHECK_NOCONA_M64: #define __SSE__ 1
    335 // CHECK_NOCONA_M64: #define __amd64 1
    336 // CHECK_NOCONA_M64: #define __amd64__ 1
    337 // CHECK_NOCONA_M64: #define __nocona 1
    338 // CHECK_NOCONA_M64: #define __nocona__ 1
    339 // CHECK_NOCONA_M64: #define __tune_nocona__ 1
    340 // CHECK_NOCONA_M64: #define __x86_64 1
    341 // CHECK_NOCONA_M64: #define __x86_64__ 1
    342 //
    343 // RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
    344 // RUN:     -target i386-unknown-linux \
    345 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M32
    346 // CHECK_CORE2_M32: #define __MMX__ 1
    347 // CHECK_CORE2_M32: #define __SSE2__ 1
    348 // CHECK_CORE2_M32: #define __SSE3__ 1
    349 // CHECK_CORE2_M32: #define __SSE__ 1
    350 // CHECK_CORE2_M32: #define __SSSE3__ 1
    351 // CHECK_CORE2_M32: #define __core2 1
    352 // CHECK_CORE2_M32: #define __core2__ 1
    353 // CHECK_CORE2_M32: #define __i386 1
    354 // CHECK_CORE2_M32: #define __i386__ 1
    355 // CHECK_CORE2_M32: #define __tune_core2__ 1
    356 // CHECK_CORE2_M32: #define i386 1
    357 // RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
    358 // RUN:     -target i386-unknown-linux \
    359 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M64
    360 // CHECK_CORE2_M64: #define __MMX__ 1
    361 // CHECK_CORE2_M64: #define __SSE2_MATH__ 1
    362 // CHECK_CORE2_M64: #define __SSE2__ 1
    363 // CHECK_CORE2_M64: #define __SSE3__ 1
    364 // CHECK_CORE2_M64: #define __SSE_MATH__ 1
    365 // CHECK_CORE2_M64: #define __SSE__ 1
    366 // CHECK_CORE2_M64: #define __SSSE3__ 1
    367 // CHECK_CORE2_M64: #define __amd64 1
    368 // CHECK_CORE2_M64: #define __amd64__ 1
    369 // CHECK_CORE2_M64: #define __core2 1
    370 // CHECK_CORE2_M64: #define __core2__ 1
    371 // CHECK_CORE2_M64: #define __tune_core2__ 1
    372 // CHECK_CORE2_M64: #define __x86_64 1
    373 // CHECK_CORE2_M64: #define __x86_64__ 1
    374 //
    375 // RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
    376 // RUN:     -target i386-unknown-linux \
    377 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M32
    378 // CHECK_COREI7_M32: #define __MMX__ 1
    379 // CHECK_COREI7_M32: #define __POPCNT__ 1
    380 // CHECK_COREI7_M32: #define __SSE2__ 1
    381 // CHECK_COREI7_M32: #define __SSE3__ 1
    382 // CHECK_COREI7_M32: #define __SSE4_1__ 1
    383 // CHECK_COREI7_M32: #define __SSE4_2__ 1
    384 // CHECK_COREI7_M32: #define __SSE__ 1
    385 // CHECK_COREI7_M32: #define __SSSE3__ 1
    386 // CHECK_COREI7_M32: #define __corei7 1
    387 // CHECK_COREI7_M32: #define __corei7__ 1
    388 // CHECK_COREI7_M32: #define __i386 1
    389 // CHECK_COREI7_M32: #define __i386__ 1
    390 // CHECK_COREI7_M32: #define __tune_corei7__ 1
    391 // CHECK_COREI7_M32: #define i386 1
    392 // RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
    393 // RUN:     -target i386-unknown-linux \
    394 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M64
    395 // CHECK_COREI7_M64: #define __MMX__ 1
    396 // CHECK_COREI7_M64: #define __POPCNT__ 1
    397 // CHECK_COREI7_M64: #define __SSE2_MATH__ 1
    398 // CHECK_COREI7_M64: #define __SSE2__ 1
    399 // CHECK_COREI7_M64: #define __SSE3__ 1
    400 // CHECK_COREI7_M64: #define __SSE4_1__ 1
    401 // CHECK_COREI7_M64: #define __SSE4_2__ 1
    402 // CHECK_COREI7_M64: #define __SSE_MATH__ 1
    403 // CHECK_COREI7_M64: #define __SSE__ 1
    404 // CHECK_COREI7_M64: #define __SSSE3__ 1
    405 // CHECK_COREI7_M64: #define __amd64 1
    406 // CHECK_COREI7_M64: #define __amd64__ 1
    407 // CHECK_COREI7_M64: #define __corei7 1
    408 // CHECK_COREI7_M64: #define __corei7__ 1
    409 // CHECK_COREI7_M64: #define __tune_corei7__ 1
    410 // CHECK_COREI7_M64: #define __x86_64 1
    411 // CHECK_COREI7_M64: #define __x86_64__ 1
    412 //
    413 // RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
    414 // RUN:     -target i386-unknown-linux \
    415 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
    416 // CHECK_COREI7_AVX_M32: #define __AES__ 1
    417 // CHECK_COREI7_AVX_M32: #define __AVX__ 1
    418 // CHECK_COREI7_AVX_M32: #define __MMX__ 1
    419 // CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1
    420 // CHECK_COREI7_AVX_M32-NOT: __RDRND__
    421 // CHECK_COREI7_AVX_M32: #define __POPCNT__ 1
    422 // CHECK_COREI7_AVX_M32: #define __SSE2__ 1
    423 // CHECK_COREI7_AVX_M32: #define __SSE3__ 1
    424 // CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
    425 // CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
    426 // CHECK_COREI7_AVX_M32: #define __SSE__ 1
    427 // CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
    428 // CHECK_COREI7_AVX_M32: #define __corei7 1
    429 // CHECK_COREI7_AVX_M32: #define __corei7__ 1
    430 // CHECK_COREI7_AVX_M32: #define __i386 1
    431 // CHECK_COREI7_AVX_M32: #define __i386__ 1
    432 // CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
    433 // CHECK_COREI7_AVX_M32: #define i386 1
    434 // RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
    435 // RUN:     -target i386-unknown-linux \
    436 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
    437 // CHECK_COREI7_AVX_M64: #define __AES__ 1
    438 // CHECK_COREI7_AVX_M64: #define __AVX__ 1
    439 // CHECK_COREI7_AVX_M64: #define __MMX__ 1
    440 // CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1
    441 // CHECK_COREI7_AVX_M64-NOT: __RDRND__
    442 // CHECK_COREI7_AVX_M64: #define __POPCNT__ 1
    443 // CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
    444 // CHECK_COREI7_AVX_M64: #define __SSE2__ 1
    445 // CHECK_COREI7_AVX_M64: #define __SSE3__ 1
    446 // CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
    447 // CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
    448 // CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
    449 // CHECK_COREI7_AVX_M64: #define __SSE__ 1
    450 // CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
    451 // CHECK_COREI7_AVX_M64: #define __amd64 1
    452 // CHECK_COREI7_AVX_M64: #define __amd64__ 1
    453 // CHECK_COREI7_AVX_M64: #define __corei7 1
    454 // CHECK_COREI7_AVX_M64: #define __corei7__ 1
    455 // CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
    456 // CHECK_COREI7_AVX_M64: #define __x86_64 1
    457 // CHECK_COREI7_AVX_M64: #define __x86_64__ 1
    458 //
    459 // RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
    460 // RUN:     -target i386-unknown-linux \
    461 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
    462 // CHECK_CORE_AVX_I_M32: #define __AES__ 1
    463 // CHECK_CORE_AVX_I_M32: #define __AVX__ 1
    464 // CHECK_CORE_AVX_I_M32: #define __F16C__ 1
    465 // CHECK_CORE_AVX_I_M32: #define __MMX__ 1
    466 // CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
    467 // CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
    468 // CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
    469 // CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
    470 // CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
    471 // CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
    472 // CHECK_CORE_AVX_I_M32: #define __SSE__ 1
    473 // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
    474 // CHECK_CORE_AVX_I_M32: #define __corei7 1
    475 // CHECK_CORE_AVX_I_M32: #define __corei7__ 1
    476 // CHECK_CORE_AVX_I_M32: #define __i386 1
    477 // CHECK_CORE_AVX_I_M32: #define __i386__ 1
    478 // CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
    479 // CHECK_CORE_AVX_I_M32: #define i386 1
    480 // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
    481 // RUN:     -target i386-unknown-linux \
    482 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
    483 // CHECK_CORE_AVX_I_M64: #define __AES__ 1
    484 // CHECK_CORE_AVX_I_M64: #define __AVX__ 1
    485 // CHECK_CORE_AVX_I_M64: #define __F16C__ 1
    486 // CHECK_CORE_AVX_I_M64: #define __MMX__ 1
    487 // CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
    488 // CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
    489 // CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
    490 // CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
    491 // CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
    492 // CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
    493 // CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
    494 // CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
    495 // CHECK_CORE_AVX_I_M64: #define __SSE__ 1
    496 // CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
    497 // CHECK_CORE_AVX_I_M64: #define __amd64 1
    498 // CHECK_CORE_AVX_I_M64: #define __amd64__ 1
    499 // CHECK_CORE_AVX_I_M64: #define __corei7 1
    500 // CHECK_CORE_AVX_I_M64: #define __corei7__ 1
    501 // CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
    502 // CHECK_CORE_AVX_I_M64: #define __x86_64 1
    503 // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
    504 //
    505 // RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
    506 // RUN:     -target i386-unknown-linux \
    507 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M32
    508 // CHECK_CORE_AVX2_M32: #define __AES__ 1
    509 // CHECK_CORE_AVX2_M32: #define __AVX2__ 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 __F16C__ 1
    514 // CHECK_CORE_AVX2_M32: #define __FMA__ 1
    515 // CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
    516 // CHECK_CORE_AVX2_M32: #define __MMX__ 1
    517 // CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
    518 // CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
    519 // CHECK_CORE_AVX2_M32: #define __RDRND__ 1
    520 // CHECK_CORE_AVX2_M32: #define __RTM__ 1
    521 // CHECK_CORE_AVX2_M32: #define __SSE2__ 1
    522 // CHECK_CORE_AVX2_M32: #define __SSE3__ 1
    523 // CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
    524 // CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
    525 // CHECK_CORE_AVX2_M32: #define __SSE__ 1
    526 // CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
    527 // CHECK_CORE_AVX2_M32: #define __corei7 1
    528 // CHECK_CORE_AVX2_M32: #define __corei7__ 1
    529 // CHECK_CORE_AVX2_M32: #define __i386 1
    530 // CHECK_CORE_AVX2_M32: #define __i386__ 1
    531 // CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
    532 // CHECK_CORE_AVX2_M32: #define i386 1
    533 // RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
    534 // RUN:     -target i386-unknown-linux \
    535 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M64
    536 // CHECK_CORE_AVX2_M64: #define __AES__ 1
    537 // CHECK_CORE_AVX2_M64: #define __AVX2__ 1
    538 // CHECK_CORE_AVX2_M64: #define __AVX__ 1
    539 // CHECK_CORE_AVX2_M64: #define __BMI2__ 1
    540 // CHECK_CORE_AVX2_M64: #define __BMI__ 1
    541 // CHECK_CORE_AVX2_M64: #define __F16C__ 1
    542 // CHECK_CORE_AVX2_M64: #define __FMA__ 1
    543 // CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
    544 // CHECK_CORE_AVX2_M64: #define __MMX__ 1
    545 // CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
    546 // CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
    547 // CHECK_CORE_AVX2_M64: #define __RDRND__ 1
    548 // CHECK_CORE_AVX2_M64: #define __RTM__ 1
    549 // CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
    550 // CHECK_CORE_AVX2_M64: #define __SSE2__ 1
    551 // CHECK_CORE_AVX2_M64: #define __SSE3__ 1
    552 // CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
    553 // CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
    554 // CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
    555 // CHECK_CORE_AVX2_M64: #define __SSE__ 1
    556 // CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
    557 // CHECK_CORE_AVX2_M64: #define __amd64 1
    558 // CHECK_CORE_AVX2_M64: #define __amd64__ 1
    559 // CHECK_CORE_AVX2_M64: #define __corei7 1
    560 // CHECK_CORE_AVX2_M64: #define __corei7__ 1
    561 // CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
    562 // CHECK_CORE_AVX2_M64: #define __x86_64 1
    563 // CHECK_CORE_AVX2_M64: #define __x86_64__ 1
    564 //
    565 // RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \
    566 // RUN:     -target i386-unknown-linux \
    567 // RUN:   | FileCheck %s -check-prefix=CHECK_KNL_M32
    568 // CHECK_KNL_M32: #define __AES__ 1
    569 // CHECK_KNL_M32: #define __AVX2__ 1
    570 // CHECK_KNL_M32: #define __AVX512CD__ 1
    571 // CHECK_KNL_M32: #define __AVX512ER__ 1
    572 // CHECK_KNL_M32: #define __AVX512F__ 1
    573 // CHECK_KNL_M32: #define __AVX512PF__ 1
    574 // CHECK_KNL_M32: #define __AVX__ 1
    575 // CHECK_KNL_M32: #define __BMI2__ 1
    576 // CHECK_KNL_M32: #define __BMI__ 1
    577 // CHECK_KNL_M32: #define __F16C__ 1
    578 // CHECK_KNL_M32: #define __FMA__ 1
    579 // CHECK_KNL_M32: #define __LZCNT__ 1
    580 // CHECK_KNL_M32: #define __MMX__ 1
    581 // CHECK_KNL_M32: #define __PCLMUL__ 1
    582 // CHECK_KNL_M32: #define __POPCNT__ 1
    583 // CHECK_KNL_M32: #define __RDRND__ 1
    584 // CHECK_KNL_M32: #define __RTM__ 1
    585 // CHECK_KNL_M32: #define __SSE2__ 1
    586 // CHECK_KNL_M32: #define __SSE3__ 1
    587 // CHECK_KNL_M32: #define __SSE4_1__ 1
    588 // CHECK_KNL_M32: #define __SSE4_2__ 1
    589 // CHECK_KNL_M32: #define __SSE__ 1
    590 // CHECK_KNL_M32: #define __SSSE3__ 1
    591 // CHECK_KNL_M32: #define __i386 1
    592 // CHECK_KNL_M32: #define __i386__ 1
    593 // CHECK_KNL_M32: #define __knl 1
    594 // CHECK_KNL_M32: #define __knl__ 1
    595 // CHECK_KNL_M32: #define __tune_knl__ 1
    596 // CHECK_KNL_M32: #define i386 1
    597 // RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \
    598 // RUN:     -target i386-unknown-linux \
    599 // RUN:   | FileCheck %s -check-prefix=CHECK_KNL_M64
    600 // CHECK_KNL_M64: #define __AES__ 1
    601 // CHECK_KNL_M64: #define __AVX2__ 1
    602 // CHECK_KNL_M64: #define __AVX512CD__ 1
    603 // CHECK_KNL_M64: #define __AVX512ER__ 1
    604 // CHECK_KNL_M64: #define __AVX512F__ 1
    605 // CHECK_KNL_M64: #define __AVX512PF__ 1
    606 // CHECK_KNL_M64: #define __AVX__ 1
    607 // CHECK_KNL_M64: #define __BMI2__ 1
    608 // CHECK_KNL_M64: #define __BMI__ 1
    609 // CHECK_KNL_M64: #define __F16C__ 1
    610 // CHECK_KNL_M64: #define __FMA__ 1
    611 // CHECK_KNL_M64: #define __LZCNT__ 1
    612 // CHECK_KNL_M64: #define __MMX__ 1
    613 // CHECK_KNL_M64: #define __PCLMUL__ 1
    614 // CHECK_KNL_M64: #define __POPCNT__ 1
    615 // CHECK_KNL_M64: #define __RDRND__ 1
    616 // CHECK_KNL_M64: #define __RTM__ 1
    617 // CHECK_KNL_M64: #define __SSE2_MATH__ 1
    618 // CHECK_KNL_M64: #define __SSE2__ 1
    619 // CHECK_KNL_M64: #define __SSE3__ 1
    620 // CHECK_KNL_M64: #define __SSE4_1__ 1
    621 // CHECK_KNL_M64: #define __SSE4_2__ 1
    622 // CHECK_KNL_M64: #define __SSE_MATH__ 1
    623 // CHECK_KNL_M64: #define __SSE__ 1
    624 // CHECK_KNL_M64: #define __SSSE3__ 1
    625 // CHECK_KNL_M64: #define __amd64 1
    626 // CHECK_KNL_M64: #define __amd64__ 1
    627 // CHECK_KNL_M64: #define __knl 1
    628 // CHECK_KNL_M64: #define __knl__ 1
    629 // CHECK_KNL_M64: #define __tune_knl__ 1
    630 // CHECK_KNL_M64: #define __x86_64 1
    631 // CHECK_KNL_M64: #define __x86_64__ 1
    632 //
    633 // RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
    634 // RUN:     -target i386-unknown-linux \
    635 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M32
    636 // CHECK_ATOM_M32: #define __MMX__ 1
    637 // CHECK_ATOM_M32: #define __SSE2__ 1
    638 // CHECK_ATOM_M32: #define __SSE3__ 1
    639 // CHECK_ATOM_M32: #define __SSE__ 1
    640 // CHECK_ATOM_M32: #define __SSSE3__ 1
    641 // CHECK_ATOM_M32: #define __atom 1
    642 // CHECK_ATOM_M32: #define __atom__ 1
    643 // CHECK_ATOM_M32: #define __i386 1
    644 // CHECK_ATOM_M32: #define __i386__ 1
    645 // CHECK_ATOM_M32: #define __tune_atom__ 1
    646 // CHECK_ATOM_M32: #define i386 1
    647 // RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
    648 // RUN:     -target i386-unknown-linux \
    649 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M64
    650 // CHECK_ATOM_M64: #define __MMX__ 1
    651 // CHECK_ATOM_M64: #define __SSE2_MATH__ 1
    652 // CHECK_ATOM_M64: #define __SSE2__ 1
    653 // CHECK_ATOM_M64: #define __SSE3__ 1
    654 // CHECK_ATOM_M64: #define __SSE_MATH__ 1
    655 // CHECK_ATOM_M64: #define __SSE__ 1
    656 // CHECK_ATOM_M64: #define __SSSE3__ 1
    657 // CHECK_ATOM_M64: #define __amd64 1
    658 // CHECK_ATOM_M64: #define __amd64__ 1
    659 // CHECK_ATOM_M64: #define __atom 1
    660 // CHECK_ATOM_M64: #define __atom__ 1
    661 // CHECK_ATOM_M64: #define __tune_atom__ 1
    662 // CHECK_ATOM_M64: #define __x86_64 1
    663 // CHECK_ATOM_M64: #define __x86_64__ 1
    664 //
    665 // RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \
    666 // RUN:     -target i386-unknown-linux \
    667 // RUN:   | FileCheck %s -check-prefix=CHECK_SLM_M32
    668 // CHECK_SLM_M32: #define __MMX__ 1
    669 // CHECK_SLM_M32: #define __SSE2__ 1
    670 // CHECK_SLM_M32: #define __SSE3__ 1
    671 // CHECK_SLM_M32: #define __SSE4_1__ 1
    672 // CHECK_SLM_M32: #define __SSE4_2__ 1
    673 // CHECK_SLM_M32: #define __SSE__ 1
    674 // CHECK_SLM_M32: #define __SSSE3__ 1
    675 // CHECK_SLM_M32: #define __i386 1
    676 // CHECK_SLM_M32: #define __i386__ 1
    677 // CHECK_SLM_M32: #define __slm 1
    678 // CHECK_SLM_M32: #define __slm__ 1
    679 // CHECK_SLM_M32: #define __tune_slm__ 1
    680 // CHECK_SLM_M32: #define i386 1
    681 // RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \
    682 // RUN:     -target i386-unknown-linux \
    683 // RUN:   | FileCheck %s -check-prefix=CHECK_SLM_M64
    684 // CHECK_SLM_M64: #define __MMX__ 1
    685 // CHECK_SLM_M64: #define __SSE2_MATH__ 1
    686 // CHECK_SLM_M64: #define __SSE2__ 1
    687 // CHECK_SLM_M64: #define __SSE3__ 1
    688 // CHECK_SLM_M64: #define __SSE4_1__ 1
    689 // CHECK_SLM_M64: #define __SSE4_2__ 1
    690 // CHECK_SLM_M64: #define __SSE_MATH__ 1
    691 // CHECK_SLM_M64: #define __SSE__ 1
    692 // CHECK_SLM_M64: #define __SSSE3__ 1
    693 // CHECK_SLM_M64: #define __amd64 1
    694 // CHECK_SLM_M64: #define __amd64__ 1
    695 // CHECK_SLM_M64: #define __slm 1
    696 // CHECK_SLM_M64: #define __slm__ 1
    697 // CHECK_SLM_M64: #define __tune_slm__ 1
    698 // CHECK_SLM_M64: #define __x86_64 1
    699 // CHECK_SLM_M64: #define __x86_64__ 1
    700 //
    701 // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
    702 // RUN:     -target i386-unknown-linux \
    703 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M32
    704 // CHECK_GEODE_M32: #define __3dNOW_A__ 1
    705 // CHECK_GEODE_M32: #define __3dNOW__ 1
    706 // CHECK_GEODE_M32: #define __MMX__ 1
    707 // CHECK_GEODE_M32: #define __geode 1
    708 // CHECK_GEODE_M32: #define __geode__ 1
    709 // CHECK_GEODE_M32: #define __i386 1
    710 // CHECK_GEODE_M32: #define __i386__ 1
    711 // CHECK_GEODE_M32: #define __tune_geode__ 1
    712 // CHECK_GEODE_M32: #define i386 1
    713 // RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
    714 // RUN:     -target i386-unknown-linux \
    715 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M64
    716 // CHECK_GEODE_M64: error:
    717 //
    718 // RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
    719 // RUN:     -target i386-unknown-linux \
    720 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M32
    721 // CHECK_K6_M32: #define __MMX__ 1
    722 // CHECK_K6_M32: #define __i386 1
    723 // CHECK_K6_M32: #define __i386__ 1
    724 // CHECK_K6_M32: #define __k6 1
    725 // CHECK_K6_M32: #define __k6__ 1
    726 // CHECK_K6_M32: #define __tune_k6__ 1
    727 // CHECK_K6_M32: #define i386 1
    728 // RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
    729 // RUN:     -target i386-unknown-linux \
    730 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M64
    731 // CHECK_K6_M64: error:
    732 //
    733 // RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
    734 // RUN:     -target i386-unknown-linux \
    735 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M32
    736 // CHECK_K6_2_M32: #define __3dNOW__ 1
    737 // CHECK_K6_2_M32: #define __MMX__ 1
    738 // CHECK_K6_2_M32: #define __i386 1
    739 // CHECK_K6_2_M32: #define __i386__ 1
    740 // CHECK_K6_2_M32: #define __k6 1
    741 // CHECK_K6_2_M32: #define __k6_2__ 1
    742 // CHECK_K6_2_M32: #define __k6__ 1
    743 // CHECK_K6_2_M32: #define __tune_k6_2__ 1
    744 // CHECK_K6_2_M32: #define __tune_k6__ 1
    745 // CHECK_K6_2_M32: #define i386 1
    746 // RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
    747 // RUN:     -target i386-unknown-linux \
    748 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M64
    749 // CHECK_K6_2_M64: error:
    750 //
    751 // RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
    752 // RUN:     -target i386-unknown-linux \
    753 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M32
    754 // CHECK_K6_3_M32: #define __3dNOW__ 1
    755 // CHECK_K6_3_M32: #define __MMX__ 1
    756 // CHECK_K6_3_M32: #define __i386 1
    757 // CHECK_K6_3_M32: #define __i386__ 1
    758 // CHECK_K6_3_M32: #define __k6 1
    759 // CHECK_K6_3_M32: #define __k6_3__ 1
    760 // CHECK_K6_3_M32: #define __k6__ 1
    761 // CHECK_K6_3_M32: #define __tune_k6_3__ 1
    762 // CHECK_K6_3_M32: #define __tune_k6__ 1
    763 // CHECK_K6_3_M32: #define i386 1
    764 // RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
    765 // RUN:     -target i386-unknown-linux \
    766 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M64
    767 // CHECK_K6_3_M64: error:
    768 //
    769 // RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
    770 // RUN:     -target i386-unknown-linux \
    771 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M32
    772 // CHECK_ATHLON_M32: #define __3dNOW_A__ 1
    773 // CHECK_ATHLON_M32: #define __3dNOW__ 1
    774 // CHECK_ATHLON_M32: #define __MMX__ 1
    775 // CHECK_ATHLON_M32: #define __athlon 1
    776 // CHECK_ATHLON_M32: #define __athlon__ 1
    777 // CHECK_ATHLON_M32: #define __i386 1
    778 // CHECK_ATHLON_M32: #define __i386__ 1
    779 // CHECK_ATHLON_M32: #define __tune_athlon__ 1
    780 // CHECK_ATHLON_M32: #define i386 1
    781 // RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
    782 // RUN:     -target i386-unknown-linux \
    783 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M64
    784 // CHECK_ATHLON_M64: error:
    785 //
    786 // RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
    787 // RUN:     -target i386-unknown-linux \
    788 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
    789 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
    790 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
    791 // CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
    792 // CHECK_ATHLON_TBIRD_M32: #define __athlon 1
    793 // CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
    794 // CHECK_ATHLON_TBIRD_M32: #define __i386 1
    795 // CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
    796 // CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
    797 // CHECK_ATHLON_TBIRD_M32: #define i386 1
    798 // RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
    799 // RUN:     -target i386-unknown-linux \
    800 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
    801 // CHECK_ATHLON_TBIRD_M64: error:
    802 //
    803 // RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
    804 // RUN:     -target i386-unknown-linux \
    805 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
    806 // CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
    807 // CHECK_ATHLON_4_M32: #define __3dNOW__ 1
    808 // CHECK_ATHLON_4_M32: #define __MMX__ 1
    809 // CHECK_ATHLON_4_M32: #define __SSE__ 1
    810 // CHECK_ATHLON_4_M32: #define __athlon 1
    811 // CHECK_ATHLON_4_M32: #define __athlon__ 1
    812 // CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
    813 // CHECK_ATHLON_4_M32: #define __i386 1
    814 // CHECK_ATHLON_4_M32: #define __i386__ 1
    815 // CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
    816 // CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
    817 // CHECK_ATHLON_4_M32: #define i386 1
    818 // RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
    819 // RUN:     -target i386-unknown-linux \
    820 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
    821 // CHECK_ATHLON_4_M64: error:
    822 //
    823 // RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
    824 // RUN:     -target i386-unknown-linux \
    825 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
    826 // CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
    827 // CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
    828 // CHECK_ATHLON_XP_M32: #define __MMX__ 1
    829 // CHECK_ATHLON_XP_M32: #define __SSE__ 1
    830 // CHECK_ATHLON_XP_M32: #define __athlon 1
    831 // CHECK_ATHLON_XP_M32: #define __athlon__ 1
    832 // CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
    833 // CHECK_ATHLON_XP_M32: #define __i386 1
    834 // CHECK_ATHLON_XP_M32: #define __i386__ 1
    835 // CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
    836 // CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
    837 // CHECK_ATHLON_XP_M32: #define i386 1
    838 // RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
    839 // RUN:     -target i386-unknown-linux \
    840 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
    841 // CHECK_ATHLON_XP_M64: error:
    842 //
    843 // RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
    844 // RUN:     -target i386-unknown-linux \
    845 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
    846 // CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
    847 // CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
    848 // CHECK_ATHLON_MP_M32: #define __MMX__ 1
    849 // CHECK_ATHLON_MP_M32: #define __SSE__ 1
    850 // CHECK_ATHLON_MP_M32: #define __athlon 1
    851 // CHECK_ATHLON_MP_M32: #define __athlon__ 1
    852 // CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
    853 // CHECK_ATHLON_MP_M32: #define __i386 1
    854 // CHECK_ATHLON_MP_M32: #define __i386__ 1
    855 // CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
    856 // CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
    857 // CHECK_ATHLON_MP_M32: #define i386 1
    858 // RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
    859 // RUN:     -target i386-unknown-linux \
    860 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
    861 // CHECK_ATHLON_MP_M64: error:
    862 //
    863 // RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
    864 // RUN:     -target i386-unknown-linux \
    865 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M32
    866 // CHECK_X86_64_M32: #define __MMX__ 1
    867 // CHECK_X86_64_M32: #define __SSE2__ 1
    868 // CHECK_X86_64_M32: #define __SSE__ 1
    869 // CHECK_X86_64_M32: #define __i386 1
    870 // CHECK_X86_64_M32: #define __i386__ 1
    871 // CHECK_X86_64_M32: #define __k8 1
    872 // CHECK_X86_64_M32: #define __k8__ 1
    873 // CHECK_X86_64_M32: #define i386 1
    874 // RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
    875 // RUN:     -target i386-unknown-linux \
    876 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M64
    877 // CHECK_X86_64_M64: #define __MMX__ 1
    878 // CHECK_X86_64_M64: #define __SSE2_MATH__ 1
    879 // CHECK_X86_64_M64: #define __SSE2__ 1
    880 // CHECK_X86_64_M64: #define __SSE_MATH__ 1
    881 // CHECK_X86_64_M64: #define __SSE__ 1
    882 // CHECK_X86_64_M64: #define __amd64 1
    883 // CHECK_X86_64_M64: #define __amd64__ 1
    884 // CHECK_X86_64_M64: #define __k8 1
    885 // CHECK_X86_64_M64: #define __k8__ 1
    886 // CHECK_X86_64_M64: #define __x86_64 1
    887 // CHECK_X86_64_M64: #define __x86_64__ 1
    888 //
    889 // RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
    890 // RUN:     -target i386-unknown-linux \
    891 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M32
    892 // CHECK_K8_M32: #define __3dNOW_A__ 1
    893 // CHECK_K8_M32: #define __3dNOW__ 1
    894 // CHECK_K8_M32: #define __MMX__ 1
    895 // CHECK_K8_M32: #define __SSE2__ 1
    896 // CHECK_K8_M32: #define __SSE__ 1
    897 // CHECK_K8_M32: #define __i386 1
    898 // CHECK_K8_M32: #define __i386__ 1
    899 // CHECK_K8_M32: #define __k8 1
    900 // CHECK_K8_M32: #define __k8__ 1
    901 // CHECK_K8_M32: #define __tune_k8__ 1
    902 // CHECK_K8_M32: #define i386 1
    903 // RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
    904 // RUN:     -target i386-unknown-linux \
    905 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M64
    906 // CHECK_K8_M64: #define __3dNOW_A__ 1
    907 // CHECK_K8_M64: #define __3dNOW__ 1
    908 // CHECK_K8_M64: #define __MMX__ 1
    909 // CHECK_K8_M64: #define __SSE2_MATH__ 1
    910 // CHECK_K8_M64: #define __SSE2__ 1
    911 // CHECK_K8_M64: #define __SSE_MATH__ 1
    912 // CHECK_K8_M64: #define __SSE__ 1
    913 // CHECK_K8_M64: #define __amd64 1
    914 // CHECK_K8_M64: #define __amd64__ 1
    915 // CHECK_K8_M64: #define __k8 1
    916 // CHECK_K8_M64: #define __k8__ 1
    917 // CHECK_K8_M64: #define __tune_k8__ 1
    918 // CHECK_K8_M64: #define __x86_64 1
    919 // CHECK_K8_M64: #define __x86_64__ 1
    920 //
    921 // RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
    922 // RUN:     -target i386-unknown-linux \
    923 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
    924 // CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
    925 // CHECK_K8_SSE3_M32: #define __3dNOW__ 1
    926 // CHECK_K8_SSE3_M32: #define __MMX__ 1
    927 // CHECK_K8_SSE3_M32: #define __SSE2__ 1
    928 // CHECK_K8_SSE3_M32: #define __SSE3__ 1
    929 // CHECK_K8_SSE3_M32: #define __SSE__ 1
    930 // CHECK_K8_SSE3_M32: #define __i386 1
    931 // CHECK_K8_SSE3_M32: #define __i386__ 1
    932 // CHECK_K8_SSE3_M32: #define __k8 1
    933 // CHECK_K8_SSE3_M32: #define __k8__ 1
    934 // CHECK_K8_SSE3_M32: #define __tune_k8__ 1
    935 // CHECK_K8_SSE3_M32: #define i386 1
    936 // RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
    937 // RUN:     -target i386-unknown-linux \
    938 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
    939 // CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
    940 // CHECK_K8_SSE3_M64: #define __3dNOW__ 1
    941 // CHECK_K8_SSE3_M64: #define __MMX__ 1
    942 // CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
    943 // CHECK_K8_SSE3_M64: #define __SSE2__ 1
    944 // CHECK_K8_SSE3_M64: #define __SSE3__ 1
    945 // CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
    946 // CHECK_K8_SSE3_M64: #define __SSE__ 1
    947 // CHECK_K8_SSE3_M64: #define __amd64 1
    948 // CHECK_K8_SSE3_M64: #define __amd64__ 1
    949 // CHECK_K8_SSE3_M64: #define __k8 1
    950 // CHECK_K8_SSE3_M64: #define __k8__ 1
    951 // CHECK_K8_SSE3_M64: #define __tune_k8__ 1
    952 // CHECK_K8_SSE3_M64: #define __x86_64 1
    953 // CHECK_K8_SSE3_M64: #define __x86_64__ 1
    954 //
    955 // RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
    956 // RUN:     -target i386-unknown-linux \
    957 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M32
    958 // CHECK_OPTERON_M32: #define __3dNOW_A__ 1
    959 // CHECK_OPTERON_M32: #define __3dNOW__ 1
    960 // CHECK_OPTERON_M32: #define __MMX__ 1
    961 // CHECK_OPTERON_M32: #define __SSE2__ 1
    962 // CHECK_OPTERON_M32: #define __SSE__ 1
    963 // CHECK_OPTERON_M32: #define __i386 1
    964 // CHECK_OPTERON_M32: #define __i386__ 1
    965 // CHECK_OPTERON_M32: #define __k8 1
    966 // CHECK_OPTERON_M32: #define __k8__ 1
    967 // CHECK_OPTERON_M32: #define __tune_k8__ 1
    968 // CHECK_OPTERON_M32: #define i386 1
    969 // RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
    970 // RUN:     -target i386-unknown-linux \
    971 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M64
    972 // CHECK_OPTERON_M64: #define __3dNOW_A__ 1
    973 // CHECK_OPTERON_M64: #define __3dNOW__ 1
    974 // CHECK_OPTERON_M64: #define __MMX__ 1
    975 // CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
    976 // CHECK_OPTERON_M64: #define __SSE2__ 1
    977 // CHECK_OPTERON_M64: #define __SSE_MATH__ 1
    978 // CHECK_OPTERON_M64: #define __SSE__ 1
    979 // CHECK_OPTERON_M64: #define __amd64 1
    980 // CHECK_OPTERON_M64: #define __amd64__ 1
    981 // CHECK_OPTERON_M64: #define __k8 1
    982 // CHECK_OPTERON_M64: #define __k8__ 1
    983 // CHECK_OPTERON_M64: #define __tune_k8__ 1
    984 // CHECK_OPTERON_M64: #define __x86_64 1
    985 // CHECK_OPTERON_M64: #define __x86_64__ 1
    986 //
    987 // RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
    988 // RUN:     -target i386-unknown-linux \
    989 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
    990 // CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
    991 // CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
    992 // CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
    993 // CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
    994 // CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
    995 // CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
    996 // CHECK_OPTERON_SSE3_M32: #define __i386 1
    997 // CHECK_OPTERON_SSE3_M32: #define __i386__ 1
    998 // CHECK_OPTERON_SSE3_M32: #define __k8 1
    999 // CHECK_OPTERON_SSE3_M32: #define __k8__ 1
   1000 // CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
   1001 // CHECK_OPTERON_SSE3_M32: #define i386 1
   1002 // RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
   1003 // RUN:     -target i386-unknown-linux \
   1004 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
   1005 // CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
   1006 // CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
   1007 // CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
   1008 // CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
   1009 // CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
   1010 // CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
   1011 // CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
   1012 // CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
   1013 // CHECK_OPTERON_SSE3_M64: #define __amd64 1
   1014 // CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
   1015 // CHECK_OPTERON_SSE3_M64: #define __k8 1
   1016 // CHECK_OPTERON_SSE3_M64: #define __k8__ 1
   1017 // CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
   1018 // CHECK_OPTERON_SSE3_M64: #define __x86_64 1
   1019 // CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
   1020 //
   1021 // RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
   1022 // RUN:     -target i386-unknown-linux \
   1023 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
   1024 // CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
   1025 // CHECK_ATHLON64_M32: #define __3dNOW__ 1
   1026 // CHECK_ATHLON64_M32: #define __MMX__ 1
   1027 // CHECK_ATHLON64_M32: #define __SSE2__ 1
   1028 // CHECK_ATHLON64_M32: #define __SSE__ 1
   1029 // CHECK_ATHLON64_M32: #define __i386 1
   1030 // CHECK_ATHLON64_M32: #define __i386__ 1
   1031 // CHECK_ATHLON64_M32: #define __k8 1
   1032 // CHECK_ATHLON64_M32: #define __k8__ 1
   1033 // CHECK_ATHLON64_M32: #define __tune_k8__ 1
   1034 // CHECK_ATHLON64_M32: #define i386 1
   1035 // RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
   1036 // RUN:     -target i386-unknown-linux \
   1037 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
   1038 // CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
   1039 // CHECK_ATHLON64_M64: #define __3dNOW__ 1
   1040 // CHECK_ATHLON64_M64: #define __MMX__ 1
   1041 // CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
   1042 // CHECK_ATHLON64_M64: #define __SSE2__ 1
   1043 // CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
   1044 // CHECK_ATHLON64_M64: #define __SSE__ 1
   1045 // CHECK_ATHLON64_M64: #define __amd64 1
   1046 // CHECK_ATHLON64_M64: #define __amd64__ 1
   1047 // CHECK_ATHLON64_M64: #define __k8 1
   1048 // CHECK_ATHLON64_M64: #define __k8__ 1
   1049 // CHECK_ATHLON64_M64: #define __tune_k8__ 1
   1050 // CHECK_ATHLON64_M64: #define __x86_64 1
   1051 // CHECK_ATHLON64_M64: #define __x86_64__ 1
   1052 //
   1053 // RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
   1054 // RUN:     -target i386-unknown-linux \
   1055 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
   1056 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
   1057 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
   1058 // CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
   1059 // CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
   1060 // CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
   1061 // CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
   1062 // CHECK_ATHLON64_SSE3_M32: #define __i386 1
   1063 // CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
   1064 // CHECK_ATHLON64_SSE3_M32: #define __k8 1
   1065 // CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
   1066 // CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
   1067 // CHECK_ATHLON64_SSE3_M32: #define i386 1
   1068 // RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
   1069 // RUN:     -target i386-unknown-linux \
   1070 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
   1071 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
   1072 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
   1073 // CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
   1074 // CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
   1075 // CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
   1076 // CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
   1077 // CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
   1078 // CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
   1079 // CHECK_ATHLON64_SSE3_M64: #define __amd64 1
   1080 // CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
   1081 // CHECK_ATHLON64_SSE3_M64: #define __k8 1
   1082 // CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
   1083 // CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
   1084 // CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
   1085 // CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
   1086 //
   1087 // RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
   1088 // RUN:     -target i386-unknown-linux \
   1089 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
   1090 // CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
   1091 // CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
   1092 // CHECK_ATHLON_FX_M32: #define __MMX__ 1
   1093 // CHECK_ATHLON_FX_M32: #define __SSE2__ 1
   1094 // CHECK_ATHLON_FX_M32: #define __SSE__ 1
   1095 // CHECK_ATHLON_FX_M32: #define __i386 1
   1096 // CHECK_ATHLON_FX_M32: #define __i386__ 1
   1097 // CHECK_ATHLON_FX_M32: #define __k8 1
   1098 // CHECK_ATHLON_FX_M32: #define __k8__ 1
   1099 // CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
   1100 // CHECK_ATHLON_FX_M32: #define i386 1
   1101 // RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
   1102 // RUN:     -target i386-unknown-linux \
   1103 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
   1104 // CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
   1105 // CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
   1106 // CHECK_ATHLON_FX_M64: #define __MMX__ 1
   1107 // CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
   1108 // CHECK_ATHLON_FX_M64: #define __SSE2__ 1
   1109 // CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
   1110 // CHECK_ATHLON_FX_M64: #define __SSE__ 1
   1111 // CHECK_ATHLON_FX_M64: #define __amd64 1
   1112 // CHECK_ATHLON_FX_M64: #define __amd64__ 1
   1113 // CHECK_ATHLON_FX_M64: #define __k8 1
   1114 // CHECK_ATHLON_FX_M64: #define __k8__ 1
   1115 // CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
   1116 // CHECK_ATHLON_FX_M64: #define __x86_64 1
   1117 // CHECK_ATHLON_FX_M64: #define __x86_64__ 1
   1118 // RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \
   1119 // RUN:     -target i386-unknown-linux \
   1120 // RUN:   | FileCheck %s -check-prefix=CHECK_AMDFAM10_M32
   1121 // CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1
   1122 // CHECK_AMDFAM10_M32: #define __3dNOW__ 1
   1123 // CHECK_AMDFAM10_M32: #define __LZCNT__ 1
   1124 // CHECK_AMDFAM10_M32: #define __MMX__ 1
   1125 // CHECK_AMDFAM10_M32: #define __POPCNT__ 1
   1126 // CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1
   1127 // CHECK_AMDFAM10_M32: #define __SSE2__ 1
   1128 // CHECK_AMDFAM10_M32: #define __SSE3__ 1
   1129 // CHECK_AMDFAM10_M32: #define __SSE4A__ 1
   1130 // CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1
   1131 // CHECK_AMDFAM10_M32: #define __SSE__ 1
   1132 // CHECK_AMDFAM10_M32: #define __amdfam10 1
   1133 // CHECK_AMDFAM10_M32: #define __amdfam10__ 1
   1134 // CHECK_AMDFAM10_M32: #define __i386 1
   1135 // CHECK_AMDFAM10_M32: #define __i386__ 1
   1136 // CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1
   1137 // RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
   1138 // RUN:     -target i386-unknown-linux \
   1139 // RUN:   | FileCheck %s -check-prefix=CHECK_AMDFAM10_M64
   1140 // CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
   1141 // CHECK_AMDFAM10_M64: #define __3dNOW__ 1
   1142 // CHECK_AMDFAM10_M64: #define __LZCNT__ 1
   1143 // CHECK_AMDFAM10_M64: #define __MMX__ 1
   1144 // CHECK_AMDFAM10_M64: #define __POPCNT__ 1
   1145 // CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
   1146 // CHECK_AMDFAM10_M64: #define __SSE2__ 1
   1147 // CHECK_AMDFAM10_M64: #define __SSE3__ 1
   1148 // CHECK_AMDFAM10_M64: #define __SSE4A__ 1
   1149 // CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
   1150 // CHECK_AMDFAM10_M64: #define __SSE__ 1
   1151 // CHECK_AMDFAM10_M64: #define __amd64 1
   1152 // CHECK_AMDFAM10_M64: #define __amd64__ 1
   1153 // CHECK_AMDFAM10_M64: #define __amdfam10 1
   1154 // CHECK_AMDFAM10_M64: #define __amdfam10__ 1
   1155 // CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
   1156 // CHECK_AMDFAM10_M64: #define __x86_64 1
   1157 // CHECK_AMDFAM10_M64: #define __x86_64__ 1
   1158 // RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \
   1159 // RUN:     -target i386-unknown-linux \
   1160 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER1_M32
   1161 // CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1
   1162 // CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1
   1163 // CHECK_BTVER1_M32: #define __LZCNT__ 1
   1164 // CHECK_BTVER1_M32: #define __MMX__ 1
   1165 // CHECK_BTVER1_M32: #define __POPCNT__ 1
   1166 // CHECK_BTVER1_M32: #define __PRFCHW__ 1
   1167 // CHECK_BTVER1_M32: #define __SSE2_MATH__ 1
   1168 // CHECK_BTVER1_M32: #define __SSE2__ 1
   1169 // CHECK_BTVER1_M32: #define __SSE3__ 1
   1170 // CHECK_BTVER1_M32: #define __SSE4A__ 1
   1171 // CHECK_BTVER1_M32: #define __SSE_MATH__ 1
   1172 // CHECK_BTVER1_M32: #define __SSE__ 1
   1173 // CHECK_BTVER1_M32: #define __SSSE3__ 1
   1174 // CHECK_BTVER1_M32: #define __btver1 1
   1175 // CHECK_BTVER1_M32: #define __btver1__ 1
   1176 // CHECK_BTVER1_M32: #define __i386 1
   1177 // CHECK_BTVER1_M32: #define __i386__ 1
   1178 // CHECK_BTVER1_M32: #define __tune_btver1__ 1
   1179 // RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \
   1180 // RUN:     -target i386-unknown-linux \
   1181 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER1_M64
   1182 // CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1
   1183 // CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1
   1184 // CHECK_BTVER1_M64: #define __LZCNT__ 1
   1185 // CHECK_BTVER1_M64: #define __MMX__ 1
   1186 // CHECK_BTVER1_M64: #define __POPCNT__ 1
   1187 // CHECK_BTVER1_M64: #define __PRFCHW__ 1
   1188 // CHECK_BTVER1_M64: #define __SSE2_MATH__ 1
   1189 // CHECK_BTVER1_M64: #define __SSE2__ 1
   1190 // CHECK_BTVER1_M64: #define __SSE3__ 1
   1191 // CHECK_BTVER1_M64: #define __SSE4A__ 1
   1192 // CHECK_BTVER1_M64: #define __SSE_MATH__ 1
   1193 // CHECK_BTVER1_M64: #define __SSE__ 1
   1194 // CHECK_BTVER1_M64: #define __SSSE3__ 1
   1195 // CHECK_BTVER1_M64: #define __amd64 1
   1196 // CHECK_BTVER1_M64: #define __amd64__ 1
   1197 // CHECK_BTVER1_M64: #define __btver1 1
   1198 // CHECK_BTVER1_M64: #define __btver1__ 1
   1199 // CHECK_BTVER1_M64: #define __tune_btver1__ 1
   1200 // CHECK_BTVER1_M64: #define __x86_64 1
   1201 // CHECK_BTVER1_M64: #define __x86_64__ 1
   1202 // RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \
   1203 // RUN:     -target i386-unknown-linux \
   1204 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER2_M32
   1205 // CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1
   1206 // CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1
   1207 // CHECK_BTVER2_M32: #define __AES__ 1
   1208 // CHECK_BTVER2_M32: #define __AVX__ 1
   1209 // CHECK_BTVER2_M32: #define __LZCNT__ 1
   1210 // CHECK_BTVER2_M32: #define __MMX__ 1
   1211 // CHECK_BTVER2_M32: #define __POPCNT__ 1
   1212 // CHECK_BTVER2_M32: #define __PRFCHW__ 1
   1213 // CHECK_BTVER2_M32: #define __SSE2_MATH__ 1
   1214 // CHECK_BTVER2_M32: #define __SSE2__ 1
   1215 // CHECK_BTVER2_M32: #define __SSE3__ 1
   1216 // CHECK_BTVER2_M32: #define __SSE4A__ 1
   1217 // CHECK_BTVER2_M32: #define __SSE_MATH__ 1
   1218 // CHECK_BTVER2_M32: #define __SSE__ 1
   1219 // CHECK_BTVER2_M32: #define __SSSE3__ 1
   1220 // CHECK_BTVER2_M32: #define __btver2 1
   1221 // CHECK_BTVER2_M32: #define __btver2__ 1
   1222 // CHECK_BTVER2_M32: #define __i386 1
   1223 // CHECK_BTVER2_M32: #define __i386__ 1
   1224 // CHECK_BTVER2_M32: #define __tune_btver2__ 1
   1225 // RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \
   1226 // RUN:     -target i386-unknown-linux \
   1227 // RUN:   | FileCheck %s -check-prefix=CHECK_BTVER2_M64
   1228 // CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1
   1229 // CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1
   1230 // CHECK_BTVER2_M64: #define __AES__ 1
   1231 // CHECK_BTVER2_M64: #define __AVX__ 1
   1232 // CHECK_BTVER2_M64: #define __LZCNT__ 1
   1233 // CHECK_BTVER2_M64: #define __MMX__ 1
   1234 // CHECK_BTVER2_M64: #define __POPCNT__ 1
   1235 // CHECK_BTVER2_M64: #define __PRFCHW__ 1
   1236 // CHECK_BTVER2_M64: #define __SSE2_MATH__ 1
   1237 // CHECK_BTVER2_M64: #define __SSE2__ 1
   1238 // CHECK_BTVER2_M64: #define __SSE3__ 1
   1239 // CHECK_BTVER2_M64: #define __SSE4A__ 1
   1240 // CHECK_BTVER2_M64: #define __SSE_MATH__ 1
   1241 // CHECK_BTVER2_M64: #define __SSE__ 1
   1242 // CHECK_BTVER2_M64: #define __SSSE3__ 1
   1243 // CHECK_BTVER2_M64: #define __amd64 1
   1244 // CHECK_BTVER2_M64: #define __amd64__ 1
   1245 // CHECK_BTVER2_M64: #define __btver2 1
   1246 // CHECK_BTVER2_M64: #define __btver2__ 1
   1247 // CHECK_BTVER2_M64: #define __tune_btver2__ 1
   1248 // CHECK_BTVER2_M64: #define __x86_64 1
   1249 // CHECK_BTVER2_M64: #define __x86_64__ 1
   1250 // RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
   1251 // RUN:     -target i386-unknown-linux \
   1252 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER1_M32
   1253 // CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
   1254 // CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
   1255 // CHECK_BDVER1_M32: #define __AES__ 1
   1256 // CHECK_BDVER1_M32: #define __AVX__ 1
   1257 // CHECK_BDVER1_M32: #define __FMA4__ 1
   1258 // CHECK_BDVER1_M32: #define __LZCNT__ 1
   1259 // CHECK_BDVER1_M32: #define __MMX__ 1
   1260 // CHECK_BDVER1_M32: #define __PCLMUL__ 1
   1261 // CHECK_BDVER1_M32: #define __POPCNT__ 1
   1262 // CHECK_BDVER1_M32: #define __PRFCHW__ 1
   1263 // CHECK_BDVER1_M32: #define __SSE2_MATH__ 1
   1264 // CHECK_BDVER1_M32: #define __SSE2__ 1
   1265 // CHECK_BDVER1_M32: #define __SSE3__ 1
   1266 // CHECK_BDVER1_M32: #define __SSE4A__ 1
   1267 // CHECK_BDVER1_M32: #define __SSE4_1__ 1
   1268 // CHECK_BDVER1_M32: #define __SSE4_2__ 1
   1269 // CHECK_BDVER1_M32: #define __SSE_MATH__ 1
   1270 // CHECK_BDVER1_M32: #define __SSE__ 1
   1271 // CHECK_BDVER1_M32: #define __SSSE3__ 1
   1272 // CHECK_BDVER1_M32: #define __XOP__ 1
   1273 // CHECK_BDVER1_M32: #define __bdver1 1
   1274 // CHECK_BDVER1_M32: #define __bdver1__ 1
   1275 // CHECK_BDVER1_M32: #define __i386 1
   1276 // CHECK_BDVER1_M32: #define __i386__ 1
   1277 // CHECK_BDVER1_M32: #define __tune_bdver1__ 1
   1278 // RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
   1279 // RUN:     -target i386-unknown-linux \
   1280 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER1_M64
   1281 // CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
   1282 // CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
   1283 // CHECK_BDVER1_M64: #define __AES__ 1
   1284 // CHECK_BDVER1_M64: #define __AVX__ 1
   1285 // CHECK_BDVER1_M64: #define __FMA4__ 1
   1286 // CHECK_BDVER1_M64: #define __LZCNT__ 1
   1287 // CHECK_BDVER1_M64: #define __MMX__ 1
   1288 // CHECK_BDVER1_M64: #define __PCLMUL__ 1
   1289 // CHECK_BDVER1_M64: #define __POPCNT__ 1
   1290 // CHECK_BDVER1_M64: #define __PRFCHW__ 1
   1291 // CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
   1292 // CHECK_BDVER1_M64: #define __SSE2__ 1
   1293 // CHECK_BDVER1_M64: #define __SSE3__ 1
   1294 // CHECK_BDVER1_M64: #define __SSE4A__ 1
   1295 // CHECK_BDVER1_M64: #define __SSE4_1__ 1
   1296 // CHECK_BDVER1_M64: #define __SSE4_2__ 1
   1297 // CHECK_BDVER1_M64: #define __SSE_MATH__ 1
   1298 // CHECK_BDVER1_M64: #define __SSE__ 1
   1299 // CHECK_BDVER1_M64: #define __SSSE3__ 1
   1300 // CHECK_BDVER1_M64: #define __XOP__ 1
   1301 // CHECK_BDVER1_M64: #define __amd64 1
   1302 // CHECK_BDVER1_M64: #define __amd64__ 1
   1303 // CHECK_BDVER1_M64: #define __bdver1 1
   1304 // CHECK_BDVER1_M64: #define __bdver1__ 1
   1305 // CHECK_BDVER1_M64: #define __tune_bdver1__ 1
   1306 // CHECK_BDVER1_M64: #define __x86_64 1
   1307 // CHECK_BDVER1_M64: #define __x86_64__ 1
   1308 // RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \
   1309 // RUN:     -target i386-unknown-linux \
   1310 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER2_M32
   1311 // CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1
   1312 // CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1
   1313 // CHECK_BDVER2_M32: #define __AES__ 1
   1314 // CHECK_BDVER2_M32: #define __AVX__ 1
   1315 // CHECK_BDVER2_M32: #define __BMI__ 1
   1316 // CHECK_BDVER2_M32: #define __F16C__ 1
   1317 // CHECK_BDVER2_M32: #define __FMA4__ 1
   1318 // CHECK_BDVER2_M32: #define __FMA__ 1
   1319 // CHECK_BDVER2_M32: #define __LZCNT__ 1
   1320 // CHECK_BDVER2_M32: #define __MMX__ 1
   1321 // CHECK_BDVER2_M32: #define __PCLMUL__ 1
   1322 // CHECK_BDVER2_M32: #define __POPCNT__ 1
   1323 // CHECK_BDVER2_M32: #define __PRFCHW__ 1
   1324 // CHECK_BDVER2_M32: #define __SSE2_MATH__ 1
   1325 // CHECK_BDVER2_M32: #define __SSE2__ 1
   1326 // CHECK_BDVER2_M32: #define __SSE3__ 1
   1327 // CHECK_BDVER2_M32: #define __SSE4A__ 1
   1328 // CHECK_BDVER2_M32: #define __SSE4_1__ 1
   1329 // CHECK_BDVER2_M32: #define __SSE4_2__ 1
   1330 // CHECK_BDVER2_M32: #define __SSE_MATH__ 1
   1331 // CHECK_BDVER2_M32: #define __SSE__ 1
   1332 // CHECK_BDVER2_M32: #define __SSSE3__ 1
   1333 // CHECK_BDVER2_M32: #define __TBM__ 1
   1334 // CHECK_BDVER2_M32: #define __XOP__ 1
   1335 // CHECK_BDVER2_M32: #define __bdver2 1
   1336 // CHECK_BDVER2_M32: #define __bdver2__ 1
   1337 // CHECK_BDVER2_M32: #define __i386 1
   1338 // CHECK_BDVER2_M32: #define __i386__ 1
   1339 // CHECK_BDVER2_M32: #define __tune_bdver2__ 1
   1340 // RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \
   1341 // RUN:     -target i386-unknown-linux \
   1342 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER2_M64
   1343 // CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1
   1344 // CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1
   1345 // CHECK_BDVER2_M64: #define __AES__ 1
   1346 // CHECK_BDVER2_M64: #define __AVX__ 1
   1347 // CHECK_BDVER2_M64: #define __BMI__ 1
   1348 // CHECK_BDVER2_M64: #define __F16C__ 1
   1349 // CHECK_BDVER2_M64: #define __FMA4__ 1
   1350 // CHECK_BDVER2_M64: #define __FMA__ 1
   1351 // CHECK_BDVER2_M64: #define __LZCNT__ 1
   1352 // CHECK_BDVER2_M64: #define __MMX__ 1
   1353 // CHECK_BDVER2_M64: #define __PCLMUL__ 1
   1354 // CHECK_BDVER2_M64: #define __POPCNT__ 1
   1355 // CHECK_BDVER2_M64: #define __PRFCHW__ 1
   1356 // CHECK_BDVER2_M64: #define __SSE2_MATH__ 1
   1357 // CHECK_BDVER2_M64: #define __SSE2__ 1
   1358 // CHECK_BDVER2_M64: #define __SSE3__ 1
   1359 // CHECK_BDVER2_M64: #define __SSE4A__ 1
   1360 // CHECK_BDVER2_M64: #define __SSE4_1__ 1
   1361 // CHECK_BDVER2_M64: #define __SSE4_2__ 1
   1362 // CHECK_BDVER2_M64: #define __SSE_MATH__ 1
   1363 // CHECK_BDVER2_M64: #define __SSE__ 1
   1364 // CHECK_BDVER2_M64: #define __SSSE3__ 1
   1365 // CHECK_BDVER2_M64: #define __TBM__ 1
   1366 // CHECK_BDVER2_M64: #define __XOP__ 1
   1367 // CHECK_BDVER2_M64: #define __amd64 1
   1368 // CHECK_BDVER2_M64: #define __amd64__ 1
   1369 // CHECK_BDVER2_M64: #define __bdver2 1
   1370 // CHECK_BDVER2_M64: #define __bdver2__ 1
   1371 // CHECK_BDVER2_M64: #define __tune_bdver2__ 1
   1372 // CHECK_BDVER2_M64: #define __x86_64 1
   1373 // CHECK_BDVER2_M64: #define __x86_64__ 1
   1374 // RUN: %clang -march=bdver3 -m32 -E -dM %s -o - 2>&1 \
   1375 // RUN:     -target i386-unknown-linux \
   1376 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER3_M32
   1377 // CHECK_BDVER3_M32-NOT: #define __3dNOW_A__ 1
   1378 // CHECK_BDVER3_M32-NOT: #define __3dNOW__ 1
   1379 // CHECK_BDVER3_M32: #define __AES__ 1
   1380 // CHECK_BDVER3_M32: #define __AVX__ 1
   1381 // CHECK_BDVER3_M32: #define __BMI__ 1
   1382 // CHECK_BDVER3_M32: #define __F16C__ 1
   1383 // CHECK_BDVER3_M32: #define __FMA4__ 1
   1384 // CHECK_BDVER3_M32: #define __FMA__ 1
   1385 // CHECK_BDVER3_M32: #define __LZCNT__ 1
   1386 // CHECK_BDVER3_M32: #define __MMX__ 1
   1387 // CHECK_BDVER3_M32: #define __PCLMUL__ 1
   1388 // CHECK_BDVER3_M32: #define __POPCNT__ 1
   1389 // CHECK_BDVER3_M32: #define __PRFCHW__ 1
   1390 // CHECK_BDVER3_M32: #define __SSE2_MATH__ 1
   1391 // CHECK_BDVER3_M32: #define __SSE2__ 1
   1392 // CHECK_BDVER3_M32: #define __SSE3__ 1
   1393 // CHECK_BDVER3_M32: #define __SSE4A__ 1
   1394 // CHECK_BDVER3_M32: #define __SSE4_1__ 1
   1395 // CHECK_BDVER3_M32: #define __SSE4_2__ 1
   1396 // CHECK_BDVER3_M32: #define __SSE_MATH__ 1
   1397 // CHECK_BDVER3_M32: #define __SSE__ 1
   1398 // CHECK_BDVER3_M32: #define __SSSE3__ 1
   1399 // CHECK_BDVER3_M32: #define __TBM__ 1
   1400 // CHECK_BDVER3_M32: #define __XOP__ 1
   1401 // CHECK_BDVER3_M32: #define __bdver3 1
   1402 // CHECK_BDVER3_M32: #define __bdver3__ 1
   1403 // CHECK_BDVER3_M32: #define __i386 1
   1404 // CHECK_BDVER3_M32: #define __i386__ 1
   1405 // CHECK_BDVER3_M32: #define __tune_bdver3__ 1
   1406 // RUN: %clang -march=bdver3 -m64 -E -dM %s -o - 2>&1 \
   1407 // RUN:     -target i386-unknown-linux \
   1408 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER3_M64
   1409 // CHECK_BDVER3_M64-NOT: #define __3dNOW_A__ 1
   1410 // CHECK_BDVER3_M64-NOT: #define __3dNOW__ 1
   1411 // CHECK_BDVER3_M64: #define __AES__ 1
   1412 // CHECK_BDVER3_M64: #define __AVX__ 1
   1413 // CHECK_BDVER3_M64: #define __BMI__ 1
   1414 // CHECK_BDVER3_M64: #define __F16C__ 1
   1415 // CHECK_BDVER3_M64: #define __FMA4__ 1
   1416 // CHECK_BDVER3_M64: #define __FMA__ 1
   1417 // CHECK_BDVER3_M64: #define __LZCNT__ 1
   1418 // CHECK_BDVER3_M64: #define __MMX__ 1
   1419 // CHECK_BDVER3_M64: #define __PCLMUL__ 1
   1420 // CHECK_BDVER3_M64: #define __POPCNT__ 1
   1421 // CHECK_BDVER3_M64: #define __PRFCHW__ 1
   1422 // CHECK_BDVER3_M64: #define __SSE2_MATH__ 1
   1423 // CHECK_BDVER3_M64: #define __SSE2__ 1
   1424 // CHECK_BDVER3_M64: #define __SSE3__ 1
   1425 // CHECK_BDVER3_M64: #define __SSE4A__ 1
   1426 // CHECK_BDVER3_M64: #define __SSE4_1__ 1
   1427 // CHECK_BDVER3_M64: #define __SSE4_2__ 1
   1428 // CHECK_BDVER3_M64: #define __SSE_MATH__ 1
   1429 // CHECK_BDVER3_M64: #define __SSE__ 1
   1430 // CHECK_BDVER3_M64: #define __SSSE3__ 1
   1431 // CHECK_BDVER3_M64: #define __TBM__ 1
   1432 // CHECK_BDVER3_M64: #define __XOP__ 1
   1433 // CHECK_BDVER3_M64: #define __amd64 1
   1434 // CHECK_BDVER3_M64: #define __amd64__ 1
   1435 // CHECK_BDVER3_M64: #define __bdver3 1
   1436 // CHECK_BDVER3_M64: #define __bdver3__ 1
   1437 // CHECK_BDVER3_M64: #define __tune_bdver3__ 1
   1438 // CHECK_BDVER3_M64: #define __x86_64 1
   1439 // CHECK_BDVER3_M64: #define __x86_64__ 1
   1440 // RUN: %clang -march=bdver4 -m32 -E -dM %s -o - 2>&1 \
   1441 // RUN:     -target i386-unknown-linux \
   1442 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER4_M32
   1443 // CHECK_BDVER4_M32-NOT: #define __3dNOW_A__ 1
   1444 // CHECK_BDVER4_M32-NOT: #define __3dNOW__ 1
   1445 // CHECK_BDVER4_M32: #define __AES__ 1
   1446 // CHECK_BDVER4_M32: #define __AVX2__ 1
   1447 // CHECK_BDVER4_M32: #define __AVX__ 1
   1448 // CHECK_BDVER4_M32: #define __BMI2__ 1
   1449 // CHECK_BDVER4_M32: #define __BMI__ 1
   1450 // CHECK_BDVER4_M32: #define __F16C__ 1
   1451 // CHECK_BDVER4_M32: #define __FMA4__ 1
   1452 // CHECK_BDVER4_M32: #define __FMA__ 1
   1453 // CHECK_BDVER4_M32: #define __LZCNT__ 1
   1454 // CHECK_BDVER4_M32: #define __MMX__ 1
   1455 // CHECK_BDVER4_M32: #define __PCLMUL__ 1
   1456 // CHECK_BDVER4_M32: #define __POPCNT__ 1
   1457 // CHECK_BDVER4_M32: #define __PRFCHW__ 1
   1458 // CHECK_BDVER4_M32: #define __SSE2_MATH__ 1
   1459 // CHECK_BDVER4_M32: #define __SSE2__ 1
   1460 // CHECK_BDVER4_M32: #define __SSE3__ 1
   1461 // CHECK_BDVER4_M32: #define __SSE4A__ 1
   1462 // CHECK_BDVER4_M32: #define __SSE4_1__ 1
   1463 // CHECK_BDVER4_M32: #define __SSE4_2__ 1
   1464 // CHECK_BDVER4_M32: #define __SSE_MATH__ 1
   1465 // CHECK_BDVER4_M32: #define __SSE__ 1
   1466 // CHECK_BDVER4_M32: #define __SSSE3__ 1
   1467 // CHECK_BDVER4_M32: #define __TBM__ 1
   1468 // CHECK_BDVER4_M32: #define __XOP__ 1
   1469 // CHECK_BDVER4_M32: #define __bdver4 1
   1470 // CHECK_BDVER4_M32: #define __bdver4__ 1
   1471 // CHECK_BDVER4_M32: #define __i386 1
   1472 // CHECK_BDVER4_M32: #define __i386__ 1
   1473 // CHECK_BDVER4_M32: #define __tune_bdver4__ 1
   1474 // RUN: %clang -march=bdver4 -m64 -E -dM %s -o - 2>&1 \
   1475 // RUN:     -target i386-unknown-linux \
   1476 // RUN:   | FileCheck %s -check-prefix=CHECK_BDVER4_M64
   1477 // CHECK_BDVER4_M64-NOT: #define __3dNOW_A__ 1
   1478 // CHECK_BDVER4_M64-NOT: #define __3dNOW__ 1
   1479 // CHECK_BDVER4_M64: #define __AES__ 1
   1480 // CHECK_BDVER4_M64: #define __AVX2__ 1
   1481 // CHECK_BDVER4_M64: #define __AVX__ 1
   1482 // CHECK_BDVER4_M64: #define __BMI2__ 1
   1483 // CHECK_BDVER4_M64: #define __BMI__ 1
   1484 // CHECK_BDVER4_M64: #define __F16C__ 1
   1485 // CHECK_BDVER4_M64: #define __FMA4__ 1
   1486 // CHECK_BDVER4_M64: #define __FMA__ 1
   1487 // CHECK_BDVER4_M64: #define __LZCNT__ 1
   1488 // CHECK_BDVER4_M64: #define __MMX__ 1
   1489 // CHECK_BDVER4_M64: #define __PCLMUL__ 1
   1490 // CHECK_BDVER4_M64: #define __POPCNT__ 1
   1491 // CHECK_BDVER4_M64: #define __PRFCHW__ 1
   1492 // CHECK_BDVER4_M64: #define __SSE2_MATH__ 1
   1493 // CHECK_BDVER4_M64: #define __SSE2__ 1
   1494 // CHECK_BDVER4_M64: #define __SSE3__ 1
   1495 // CHECK_BDVER4_M64: #define __SSE4A__ 1
   1496 // CHECK_BDVER4_M64: #define __SSE4_1__ 1
   1497 // CHECK_BDVER4_M64: #define __SSE4_2__ 1
   1498 // CHECK_BDVER4_M64: #define __SSE_MATH__ 1
   1499 // CHECK_BDVER4_M64: #define __SSE__ 1
   1500 // CHECK_BDVER4_M64: #define __SSSE3__ 1
   1501 // CHECK_BDVER4_M64: #define __TBM__ 1
   1502 // CHECK_BDVER4_M64: #define __XOP__ 1
   1503 // CHECK_BDVER4_M64: #define __amd64 1
   1504 // CHECK_BDVER4_M64: #define __amd64__ 1
   1505 // CHECK_BDVER4_M64: #define __bdver4 1
   1506 // CHECK_BDVER4_M64: #define __bdver4__ 1
   1507 // CHECK_BDVER4_M64: #define __tune_bdver4__ 1
   1508 // CHECK_BDVER4_M64: #define __x86_64 1
   1509 // CHECK_BDVER4_M64: #define __x86_64__ 1
   1510 //
   1511 // End X86/GCC/Linux tests ------------------
   1512 
   1513 // Begin PPC/GCC/Linux tests ----------------
   1514 // RUN: %clang -mvsx -E -dM %s -o - 2>&1 \
   1515 // RUN:     -target powerpc64-unknown-linux \
   1516 // RUN:   | FileCheck %s -check-prefix=CHECK_PPC_VSX_M64
   1517 //
   1518 // CHECK_PPC_VSX_M64: #define __VSX__
   1519