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