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 19*5f2cf3a2SEgor Zhdan // RUN: %clang_cc1 -E -dM -triple=x86_64-apple-macos13.0 -ffast-math \ 20*5f2cf3a2SEgor Zhdan // RUN: %s -o - | FileCheck %s -check-prefix=CHECK-MINUS-ONE -strict-whitespace 21*5f2cf3a2SEgor 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 41*5f2cf3a2SEgor Zhdan #if __GLIBC_FLT_EVAL_METHOD == -1 42*5f2cf3a2SEgor Zhdan #define Name "MinusOne" 43*5f2cf3a2SEgor 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" 67*5f2cf3a2SEgor Zhdan // CHECK-MINUS-ONE: #define Name "MinusOne" 681592d88aSZahira Ammarguellat // EXT: #define Name "Three" 691592d88aSZahira Ammarguellat return Name; 701592d88aSZahira Ammarguellat } 711592d88aSZahira Ammarguellat 721592d88aSZahira Ammarguellat #pragma fp eval_method(double) 731592d88aSZahira Ammarguellat 741592d88aSZahira Ammarguellat #if __FLT_EVAL_METHOD__ == 3 751592d88aSZahira Ammarguellat #define Val "Unset" 761592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 0 771592d88aSZahira Ammarguellat #define Val "val0" 781592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 1 791592d88aSZahira Ammarguellat #define Val "val1" 801592d88aSZahira Ammarguellat #elif __FLT_EVAL_METHOD__ == 2 811592d88aSZahira Ammarguellat #define Val "val2" 821592d88aSZahira Ammarguellat #endif 831592d88aSZahira Ammarguellat goo()841592d88aSZahira Ammarguellatint goo() { 851592d88aSZahira Ammarguellat // CHECK: #define Val "val0" 861592d88aSZahira Ammarguellat // EXT: #define Val "val2" 871592d88aSZahira Ammarguellat return Val; 881592d88aSZahira Ammarguellat } 89