xref: /aosp_15_r20/external/clang/test/Driver/sparc-float.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Check handling -mhard-float / -msoft-float options
2*67e74705SXin Li // when build for SPARC platforms.
3*67e74705SXin Li //
4*67e74705SXin Li // Default sparc
5*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
6*67e74705SXin Li // RUN:     -target sparc-linux-gnu \
7*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEF %s
8*67e74705SXin Li // CHECK-DEF-NOT: "-target-feature" "+soft-float"
9*67e74705SXin Li // CHECK-DEF-NOT: "-msoft-float"
10*67e74705SXin Li //
11*67e74705SXin Li // -mhard-float
12*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
13*67e74705SXin Li // RUN:     -target sparc-linux-gnu -mhard-float \
14*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-HARD %s
15*67e74705SXin Li // CHECK-HARD-NOT: "-msoft-float"
16*67e74705SXin Li //
17*67e74705SXin Li // -msoft-float
18*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
19*67e74705SXin Li // RUN:     -target sparc-linux-gnu -msoft-float \
20*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-SOFT %s
21*67e74705SXin Li // CHECK-SOFT: "-target-feature" "+soft-float"
22*67e74705SXin Li //
23*67e74705SXin Li // -mfloat-abi=soft
24*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
25*67e74705SXin Li // RUN:     -target sparc-linux-gnu -mfloat-abi=soft \
26*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-FLOATABISOFT %s
27*67e74705SXin Li // CHECK-FLOATABISOFT: "-target-feature" "+soft-float"
28*67e74705SXin Li //
29*67e74705SXin Li // -mfloat-abi=hard
30*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
31*67e74705SXin Li // RUN:     -target sparc-linux-gnu -mfloat-abi=hard \
32*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-FLOATABIHARD %s
33*67e74705SXin Li // CHECK-FLOATABIHARD-NOT: "-target-feature" "+soft-float"
34*67e74705SXin Li //
35*67e74705SXin Li // check invalid -mfloat-abi
36*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
37*67e74705SXin Li // RUN:     -target sparc-linux-gnu -mfloat-abi=x \
38*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-ERRMSG %s
39*67e74705SXin Li // CHECK-ERRMSG: error: invalid float ABI '-mfloat-abi=x'
40*67e74705SXin Li //
41*67e74705SXin Li // Default sparc64
42*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
43*67e74705SXin Li // RUN:     -target sparc64-linux-gnu \
44*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-DEF-SPARC64 %s
45*67e74705SXin Li // CHECK-DEF-SPARC64-NOT: "-target-feature" "+soft-float"
46*67e74705SXin Li // CHECK-DEF-SPARC64-NOT: "-msoft-float"
47*67e74705SXin Li //
48*67e74705SXin Li // -mhard-float
49*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
50*67e74705SXin Li // RUN:     -target sparc64-linux-gnu -mhard-float \
51*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-HARD-SPARC64 %s
52*67e74705SXin Li // CHECK-HARD-SPARC64-NOT: "-msoft-float"
53*67e74705SXin Li //
54*67e74705SXin Li // -msoft-float
55*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
56*67e74705SXin Li // RUN:     -target sparc64-linux-gnu -msoft-float \
57*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-SOFT-SPARC64 %s
58*67e74705SXin Li // CHECK-SOFT-SPARC64: "-target-feature" "+soft-float"
59*67e74705SXin Li //
60*67e74705SXin Li // -mfloat-abi=soft
61*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
62*67e74705SXin Li // RUN:     -target sparc64-linux-gnu -mfloat-abi=soft \
63*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-FLOATABISOFT64 %s
64*67e74705SXin Li // CHECK-FLOATABISOFT64: "-target-feature" "+soft-float"
65*67e74705SXin Li //
66*67e74705SXin Li // -mfloat-abi=hard
67*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
68*67e74705SXin Li // RUN:     -target sparc64-linux-gnu -mfloat-abi=hard \
69*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-FLOATABIHARD64 %s
70*67e74705SXin Li // CHECK-FLOATABIHARD64-NOT: "-target-feature" "+soft-float"
71*67e74705SXin Li //
72*67e74705SXin Li // check invalid -mfloat-abi
73*67e74705SXin Li // RUN: %clang -c %s -### -o %t.o 2>&1 \
74*67e74705SXin Li // RUN:     -target sparc64-linux-gnu -mfloat-abi=x \
75*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-ERRMSG64 %s
76*67e74705SXin Li // CHECK-ERRMSG64: error: invalid float ABI '-mfloat-abi=x'
77