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