1 // Check handling -mhard-float / -msoft-float / -mfloat-abi options 2 // when build for MIPS platforms. 3 // 4 // Default 5 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 6 // RUN: -target mips-linux-gnu \ 7 // RUN: | FileCheck --check-prefix=CHECK-DEF %s 8 // CHECK-DEF: "-mfloat-abi" "hard" 9 // 10 // -mhard-float 11 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 12 // RUN: -target mips-linux-gnu -mhard-float \ 13 // RUN: | FileCheck --check-prefix=CHECK-HARD %s 14 // CHECK-HARD: "-mfloat-abi" "hard" 15 // 16 // -msoft-float 17 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 18 // RUN: -target mips-linux-gnu -msoft-float \ 19 // RUN: | FileCheck --check-prefix=CHECK-SOFT %s 20 // CHECK-SOFT: "-target-feature" "+soft-float" 21 // CHECK-SOFT: "-msoft-float" 22 // CHECK-SOFT: "-mfloat-abi" "soft" 23 // 24 // -mfloat-abi=hard 25 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 26 // RUN: -target mips-linux-gnu -mfloat-abi=hard \ 27 // RUN: | FileCheck --check-prefix=CHECK-ABI-HARD %s 28 // CHECK-ABI-HARD: "-mfloat-abi" "hard" 29 // 30 // -mfloat-abi=soft 31 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 32 // RUN: -target mips-linux-gnu -mfloat-abi=soft \ 33 // RUN: | FileCheck --check-prefix=CHECK-ABI-SOFT %s 34 // CHECK-ABI-SOFT: "-target-feature" "+soft-float" 35 // CHECK-ABI-SOFT: "-msoft-float" 36 // CHECK-ABI-SOFT: "-mfloat-abi" "soft" 37 // 38 // -mdouble-float 39 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 40 // RUN: -target mips-linux-gnu -msingle-float -mdouble-float \ 41 // RUN: | FileCheck --check-prefix=CHECK-ABI-DOUBLE %s 42 // CHECK-ABI-DOUBLE: "-mfloat-abi" "hard" 43 // CHECK-ABI-DOUBLE-NOT: "+single-float" 44 // 45 // -msingle-float 46 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 47 // RUN: -target mips-linux-gnu -mdouble-float -msingle-float \ 48 // RUN: | FileCheck --check-prefix=CHECK-ABI-SINGLE %s 49 // CHECK-ABI-SINGLE: "-target-feature" "+single-float" 50 // CHECK-ABI-SINGLE: "-mfloat-abi" "hard" 51 // 52 // -msoft-float -msingle-float 53 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 54 // RUN: -target mips-linux-gnu -msoft-float -msingle-float \ 55 // RUN: | FileCheck --check-prefix=CHECK-ABI-SOFT-SINGLE %s 56 // CHECK-ABI-SOFT-SINGLE: "-target-feature" "+single-float" 57 // CHECK-ABI-SOFT-SINGLE: "-mfloat-abi" "soft" 58 // 59 // Default -mips16 60 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 61 // RUN: -target mips-linux-gnu -mips16 \ 62 // RUN: | FileCheck --check-prefix=CHECK-DEF-MIPS16 %s 63 // CHECK-DEF-MIPS16: "-target-feature" "+mips16" 64 // CHECK-DEF-MIPS16: "-mfloat-abi" "hard" 65 // 66 // -mhard-float -mips16 67 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 68 // RUN: -target mips-linux-gnu -mhard-float -mips16 \ 69 // RUN: | FileCheck --check-prefix=CHECK-HARD-MIPS16 %s 70 // CHECK-HARD-MIPS16: "-target-feature" "+mips16" 71 // CHECK-HARD-MIPS16: "-mfloat-abi" "hard" 72 // 73 // -msoft-float -mips16 74 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 75 // RUN: -target mips-linux-gnu -msoft-float -mips16 \ 76 // RUN: | FileCheck --check-prefix=CHECK-SOFT-MIPS16 %s 77 // CHECK-SOFT-MIPS16: "-target-feature" "+soft-float" 78 // CHECK-SOFT-MIPS16: "-target-feature" "+mips16" 79 // CHECK-SOFT-MIPS16: "-msoft-float" 80 // CHECK-SOFT-MIPS16: "-mfloat-abi" "soft" 81 // 82 // -mfloat-abi=hard -mips16 83 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 84 // RUN: -target mips-linux-gnu -mfloat-abi=hard -mips16 \ 85 // RUN: | FileCheck --check-prefix=CHECK-ABI-HARD-MIPS16 %s 86 // CHECK-ABI-HARD-MIPS16: "-target-feature" "+mips16" 87 // CHECK-ABI-HARD-MIPS16: "-mfloat-abi" "hard" 88 // 89 // -mfloat-abi=soft -mips16 90 // RUN: %clang -c %s -### -o %t.o 2>&1 \ 91 // RUN: -target mips-linux-gnu -mfloat-abi=soft -mips16 \ 92 // RUN: | FileCheck --check-prefix=CHECK-ABI-SOFT-MIPS16 %s 93 // CHECK-ABI-SOFT-MIPS16: "-target-feature" "+soft-float" 94 // CHECK-ABI-SOFT-MIPS16: "-target-feature" "+mips16" 95 // CHECK-ABI-SOFT-MIPS16: "-msoft-float" 96 // CHECK-ABI-SOFT-MIPS16: "-mfloat-abi" "soft" 97