xref: /aosp_15_r20/external/clang/test/Driver/mips-float.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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