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