11592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=x86_64-none-none %s -o - \ 21592d88aSZahira Ammarguellat // RUN: | FileCheck %s -strict-whitespace 31592d88aSZahira Ammarguellat 41592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=x86_64-none-none -target-feature -sse \ 51592d88aSZahira Ammarguellat // RUN: %s -o - | FileCheck %s -check-prefix=EXT -strict-whitespace 61592d88aSZahira Ammarguellat 71592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=arm64e-apple-ios -target-feature -sse \ 81592d88aSZahira Ammarguellat // RUN: %s -o - | FileCheck %s -strict-whitespace 91592d88aSZahira Ammarguellat 101592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=arm64e-apple-ios -target-feature +sse \ 111592d88aSZahira Ammarguellat // RUN: %s -o - | FileCheck %s -strict-whitespace 121592d88aSZahira Ammarguellat 131592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=arm64_32-apple-ios %s -o - \ 141592d88aSZahira Ammarguellat // RUN: | FileCheck %s -strict-whitespace 151592d88aSZahira Ammarguellat 161592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple=arm64_32-apple-ios -target-feature -sse \ 171592d88aSZahira Ammarguellat // RUN: %s -o - | FileCheck %s -strict-whitespace 181592d88aSZahira Ammarguellat 195f2cf3a2SEgor Zhdan // RUN: %clang_cc1 -E -dM -triple=x86_64-apple-macos13.0 -ffast-math \ 20*2f126426SZahira Ammarguellat // RUN: %s -o - | FileCheck %s -check-prefix=CHECK -strict-whitespace 215f2cf3a2SEgor Zhdan 221592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple i386-pc-windows -target-cpu pentium4 %s -o - \ 231592d88aSZahira Ammarguellat // RUN: | FileCheck %s -strict-whitespace 241592d88aSZahira Ammarguellat 251592d88aSZahira Ammarguellat // RUN: %clang_cc1 -E -dM -triple i386-pc-windows -target-cpu pentium4 \ 261592d88aSZahira Ammarguellat // RUN: -target-feature -sse %s -o - | FileCheck -check-prefix=EXT %s \ 271592d88aSZahira Ammarguellat // RUN: -strict-whitespace 281592d88aSZahira Ammarguellat 291592d88aSZahira Ammarguellat #ifdef __FLT_EVAL_METHOD__ 301592d88aSZahira Ammarguellat #if __FLT_EVAL_METHOD__ == 3 311592d88aSZahira Ammarguellat #define __GLIBC_FLT_EVAL_METHOD 2 321592d88aSZahira Ammarguellat #else 331592d88aSZahira Ammarguellat #define __GLIBC_FLT_EVAL_METHOD __FLT_EVAL_METHOD__ 341592d88aSZahira Ammarguellat #endif 351592d88aSZahira Ammarguellat #elif defined __x86_64__ 361592d88aSZahira Ammarguellat #define __GLIBC_FLT_EVAL_METHOD 0 371592d88aSZahira Ammarguellat #else 381592d88aSZahira Ammarguellat #define __GLIBC_FLT_EVAL_METHOD 2 391592d88aSZahira Ammarguellat #endif 401592d88aSZahira Ammarguellat 415f2cf3a2SEgor Zhdan #if __GLIBC_FLT_EVAL_METHOD == -1 425f2cf3a2SEgor Zhdan #define Name "MinusOne" 435f2cf3a2SEgor Zhdan #elif __GLIBC_FLT_EVAL_METHOD == 0 || __GLIBC_FLT_EVAL_METHOD == 16 441592d88aSZahira Ammarguellat #define Name "One" 451592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 1 461592d88aSZahira Ammarguellat #define Name "Two" 471592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 2 481592d88aSZahira Ammarguellat #define Name "Three" 491592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 32 501592d88aSZahira Ammarguellat #define Name "Four" 511592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 33 521592d88aSZahira Ammarguellat #define Name "Five" 531592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 64 541592d88aSZahira Ammarguellat #define Name "Six" 551592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 65 561592d88aSZahira Ammarguellat #define Name "Seven" 571592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 128 581592d88aSZahira Ammarguellat #define Name "Eight" 591592d88aSZahira Ammarguellat #elif __GLIBC_FLT_EVAL_METHOD == 129 601592d88aSZahira Ammarguellat #define Name "Nine" 611592d88aSZahira Ammarguellat #else 621592d88aSZahira Ammarguellat #error "Unknown __GLIBC_FLT_EVAL_METHOD" 631592d88aSZahira Ammarguellat #endif 641592d88aSZahira Ammarguellat foo()651592d88aSZahira Ammarguellatint foo() { 661592d88aSZahira Ammarguellat // CHECK: #define Name "One" 671592d88aSZahira Ammarguellat // EXT: #define Name "Three" 681592d88aSZahira Ammarguellat return Name; 691592d88aSZahira Ammarguellat } 701592d88aSZahira Ammarguellat 711592d88aSZahira Ammarguellat #pragma fp eval_method(double) 721592d88aSZahira Ammarguellat 731592d88aSZahira Ammarguellat #if __FLT_EVAL_METHOD__ == 3 741592d88aSZahira Ammarguellat #define Val "Unset" 751592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 0 761592d88aSZahira Ammarguellat #define Val "val0" 771592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 1 781592d88aSZahira Ammarguellat #define Val "val1" 791592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 2 801592d88aSZahira Ammarguellat #define Val "val2" 811592d88aSZahira Ammarguellat #endif 821592d88aSZahira Ammarguellat goo()831592d88aSZahira Ammarguellatint goo() { 841592d88aSZahira Ammarguellat // CHECK: #define Val "val0" 851592d88aSZahira Ammarguellat // EXT: #define Val "val2" 861592d88aSZahira Ammarguellat return Val; 871592d88aSZahira Ammarguellat } 88