1 // RUN: %clang_cc1 -E -dM -triple=x86_64-none-none %s -o - \ 2 // RUN: | FileCheck %s -strict-whitespace 3 4 // RUN: %clang_cc1 -E -dM -triple=x86_64-none-none -target-feature -sse \ 5 // RUN: %s -o - | FileCheck %s -check-prefix=EXT -strict-whitespace 6 7 // RUN: %clang_cc1 -E -dM -triple=arm64e-apple-ios -target-feature -sse \ 8 // RUN: %s -o - | FileCheck %s -strict-whitespace 9 10 // RUN: %clang_cc1 -E -dM -triple=arm64e-apple-ios -target-feature +sse \ 11 // RUN: %s -o - | FileCheck %s -strict-whitespace 12 13 // RUN: %clang_cc1 -E -dM -triple=arm64_32-apple-ios %s -o - \ 14 // RUN: | FileCheck %s -strict-whitespace 15 16 // RUN: %clang_cc1 -E -dM -triple=arm64_32-apple-ios -target-feature -sse \ 17 // RUN: %s -o - | FileCheck %s -strict-whitespace 18 19 // RUN: %clang_cc1 -E -dM -triple i386-pc-windows -target-cpu pentium4 %s -o - \ 20 // RUN: | FileCheck %s -strict-whitespace 21 22 // RUN: %clang_cc1 -E -dM -triple i386-pc-windows -target-cpu pentium4 \ 23 // RUN: -target-feature -sse %s -o - | FileCheck -check-prefix=EXT %s \ 24 // RUN: -strict-whitespace 25 26 #ifdef __FLT_EVAL_METHOD__ 27 #if __FLT_EVAL_METHOD__ == 3 28 #define __GLIBC_FLT_EVAL_METHOD 2 29 #else 30 #define __GLIBC_FLT_EVAL_METHOD __FLT_EVAL_METHOD__ 31 #endif 32 #elif defined __x86_64__ 33 #define __GLIBC_FLT_EVAL_METHOD 0 34 #else 35 #define __GLIBC_FLT_EVAL_METHOD 2 36 #endif 37 38 #if __GLIBC_FLT_EVAL_METHOD == 0 || __GLIBC_FLT_EVAL_METHOD == 16 39 #define Name "One" 40 #elif __GLIBC_FLT_EVAL_METHOD == 1 41 #define Name "Two" 42 #elif __GLIBC_FLT_EVAL_METHOD == 2 43 #define Name "Three" 44 #elif __GLIBC_FLT_EVAL_METHOD == 32 45 #define Name "Four" 46 #elif __GLIBC_FLT_EVAL_METHOD == 33 47 #define Name "Five" 48 #elif __GLIBC_FLT_EVAL_METHOD == 64 49 #define Name "Six" 50 #elif __GLIBC_FLT_EVAL_METHOD == 65 51 #define Name "Seven" 52 #elif __GLIBC_FLT_EVAL_METHOD == 128 53 #define Name "Eight" 54 #elif __GLIBC_FLT_EVAL_METHOD == 129 55 #define Name "Nine" 56 #else 57 #error "Unknown __GLIBC_FLT_EVAL_METHOD" 58 #endif 59 60 int foo() { 61 // CHECK: #define Name "One" 62 // EXT: #define Name "Three" 63 return Name; 64 } 65 66 #pragma fp eval_method(double) 67 68 #if __FLT_EVAL_METHOD__ == 3 69 #define Val "Unset" 70 #elif __FLT_EVAL_METHOD__ == 0 71 #define Val "val0" 72 #elif __FLT_EVAL_METHOD__ == 1 73 #define Val "val1" 74 #elif __FLT_EVAL_METHOD__ == 2 75 #define Val "val2" 76 #endif 77 78 int goo() { 79 // CHECK: #define Val "val0" 80 // EXT: #define Val "val2" 81 return Val; 82 } 83