1 // Check passing options to the assembler for various linux targets.
2 //
3 // RUN: %clang -target arm-linux -### \
4 // RUN:   -no-integrated-as -c %s 2>&1 \
5 // RUN:   | FileCheck -check-prefix=CHECK-ARM %s
6 // CHECK-ARM: as{{(.exe)?}}" "-mfloat-abi=soft"
7 //
8 // RUN: %clang -target arm-linux -mcpu=cortex-a8 -### \
9 // RUN:   -no-integrated-as -c %s 2>&1 \
10 // RUN:   | FileCheck -check-prefix=CHECK-ARM-MCPU %s
11 // CHECK-ARM-MCPU: as{{(.exe)?}}" "-mfloat-abi=soft" "-mcpu=cortex-a8"
12 //
13 // RUN: %clang -target arm-linux -mfpu=neon -### \
14 // RUN:   -no-integrated-as -c %s 2>&1 \
15 // RUN:   | FileCheck -check-prefix=CHECK-ARM-MFPU %s
16 // CHECK-ARM-MFPU: as{{(.exe)?}}" "-mfloat-abi=soft" "-mfpu=neon"
17 //
18 // RUN: %clang -target arm-linux -march=armv7-a -### \
19 // RUN:   -no-integrated-as -c %s 2>&1 \
20 // RUN:   | FileCheck -check-prefix=CHECK-ARM-MARCH %s
21 // CHECK-ARM-MARCH: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=armv7-a"
22 //
23 // RUN: %clang -target arm-linux -mcpu=cortex-a8 -mfpu=neon -march=armv7-a -### \
24 // RUN:   -no-integrated-as -c %s 2>&1 \
25 // RUN:   | FileCheck -check-prefix=CHECK-ARM-ALL %s
26 // CHECK-ARM-ALL: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=armv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
27 //
28 // RUN: %clang -target arm-linux -mcpu=cortex-a8 -mfpu=neon -march=armebv7-a -### \
29 // RUN:   -no-integrated-as -c %s 2>&1 \
30 // RUN:   | FileCheck -check-prefix=CHECK-ARMEB-ALL %s
31 // CHECK-ARMEB-ALL: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=armebv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
32 //
33 // RUN: %clang -target thumb-linux -mcpu=cortex-a8 -mfpu=neon -march=thumbv7-a -### \
34 // RUN:   -no-integrated-as -c %s 2>&1 \
35 // RUN:   | FileCheck -check-prefix=CHECK-THUMB-ALL %s
36 // CHECK-THUMB-ALL: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=thumbv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
37 //
38 // RUN: %clang -target thumb-linux -mcpu=cortex-a8 -mfpu=neon -march=thumbebv7-a -### \
39 // RUN:   -no-integrated-as -c %s 2>&1 \
40 // RUN:   | FileCheck -check-prefix=CHECK-THUMBEB-ALL %s
41 // CHECK-THUMBEB-ALL: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=thumbebv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
42 //
43 // RUN: %clang -target armv7-linux -mcpu=cortex-a8 -### \
44 // RUN:   -no-integrated-as -c %s 2>&1 \
45 // RUN:   | FileCheck -check-prefix=CHECK-ARM-TARGET %s
46 // CHECK-ARM-TARGET: as{{(.exe)?}}" "-mfpu=neon" "-mfloat-abi=soft" "-mcpu=cortex-a8"
47 //
48 // RUN: %clang -target armebv7-linux -mcpu=cortex-a8 -### \
49 // RUN:   -no-integrated-as -c %s 2>&1 \
50 // RUN:   | FileCheck -check-prefix=CHECK-ARMEB-TARGET %s
51 // CHECK-ARMEB-TARGET: as{{(.exe)?}}" "-mfpu=neon" "-mfloat-abi=soft" "-mcpu=cortex-a8"
52 //
53 // RUN: %clang -target thumbv7-linux -mcpu=cortex-a8 -### \
54 // RUN:   -no-integrated-as -c %s 2>&1 \
55 // RUN:   | FileCheck -check-prefix=CHECK-THUMB-TARGET %s
56 // CHECK-THUMB-TARGET: as{{(.exe)?}}" "-mfpu=neon" "-mfloat-abi=soft" "-mcpu=cortex-a8"
57 //
58 // RUN: %clang -target thumbebv7-linux -mcpu=cortex-a8 -### \
59 // RUN:   -no-integrated-as -c %s 2>&1 \
60 // RUN:   | FileCheck -check-prefix=CHECK-THUMBEB-TARGET %s
61 // CHECK-THUMBEB-TARGET: as{{(.exe)?}}" "-mfpu=neon" "-mfloat-abi=soft" "-mcpu=cortex-a8"
62 //
63 // RUN: %clang -target armv8-linux -mcpu=cortex-a53 -### \
64 // RUN:   -no-integrated-as -c %s 2>&1 \
65 // RUN:   | FileCheck -check-prefix=CHECK-ARM-TARGET-V8 %s
66 // CHECK-ARM-TARGET-V8: as{{(.exe)?}}" "-mfpu=crypto-neon-fp-armv8" "-mfloat-abi=soft" "-mcpu=cortex-a53"
67 //
68 // RUN: %clang -target armebv8-linux -mcpu=cortex-a53 -### \
69 // RUN:   -no-integrated-as -c %s 2>&1 \
70 // RUN:   | FileCheck -check-prefix=CHECK-ARMEB-TARGET-V8 %s
71 // CHECK-ARMEB-TARGET-V8: as{{(.exe)?}}" "-mfpu=crypto-neon-fp-armv8" "-mfloat-abi=soft" "-mcpu=cortex-a53"
72 //
73 // RUN: %clang -target thumbv8-linux -mcpu=cortex-a53 -### \
74 // RUN:   -no-integrated-as -c %s 2>&1 \
75 // RUN:   | FileCheck -check-prefix=CHECK-THUMB-TARGET-V8 %s
76 // CHECK-THUMB-TARGET-V8: as{{(.exe)?}}" "-mfpu=crypto-neon-fp-armv8" "-mfloat-abi=soft" "-mcpu=cortex-a53"
77 //
78 // RUN: %clang -target thumbebv8-linux -mcpu=cortex-a53 -### \
79 // RUN:   -no-integrated-as -c %s 2>&1 \
80 // RUN:   | FileCheck -check-prefix=CHECK-THUMBEB-TARGET-V8 %s
81 // CHECK-THUMBEB-TARGET-V8: as{{(.exe)?}}" "-mfpu=crypto-neon-fp-armv8" "-mfloat-abi=soft" "-mcpu=cortex-a53"
82 //
83 // RUN: %clang -target arm-linux -mfloat-abi=hard -### \
84 // RUN:   -no-integrated-as -c %s 2>&1 \
85 // RUN:   | FileCheck -check-prefix=CHECK-ARM-MFLOAT-ABI %s
86 // CHECK-ARM-MFLOAT-ABI: as{{(.exe)?}}" "-mfloat-abi=hard"
87 //
88 // RUN: %clang -target arm-linux-androideabi -### \
89 // RUN:   -no-integrated-as -c %s 2>&1 \
90 // RUN:   | FileCheck -check-prefix=CHECK-ARM-ANDROID %s
91 // CHECK-ARM-ANDROID: as{{(.exe)?}}" "-mfloat-abi=soft"
92 //
93 // RUN: %clang -target arm-linux-androideabi -march=armv7-a -### \
94 // RUN:   -no-integrated-as -c %s 2>&1 \
95 // RUN:   | FileCheck -check-prefix=CHECK-ARM-ANDROID-SOFTFP %s
96 // CHECK-ARM-ANDROID-SOFTFP: as{{(.exe)?}}" "-mfloat-abi=softfp" "-march=armv7-a"
97 //
98 // RUN: %clang -target arm-linux-eabi -mhard-float -### \
99 // RUN:   -no-integrated-as -c %s 2>&1 \
100 // RUN:   | FileCheck -check-prefix=CHECK-ARM-HARDFP %s
101 // CHECK-ARM-HARDFP: as{{(.exe)?}}" "-mfloat-abi=hard"
102 //
103 // RUN: %clang -target ppc-linux -mcpu=invalid-cpu -### \
104 // RUN:   -no-integrated-as -c %s 2>&1 \
105 // RUN:   | FileCheck -check-prefix=CHECK-PPC-NO-MCPU %s
106 // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
107 //
108 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
109 // RUN:   -no-integrated-as -c %s 2>&1 \
110 // RUN:   | FileCheck -check-prefix=CHECK-SPARCV9 %s
111 // CHECK-SPARCV9: as
112 // CHECK-SPARCV9: -64
113 // CHECK-SPARCV9: -Av9a
114 // CHECK-SPARCV9-NOT: -KPIC
115 // CHECK-SPARCV9: -o
116 //
117 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
118 // RUN:   -no-integrated-as -fpic -c %s 2>&1 \
119 // RUN:   | FileCheck -check-prefix=CHECK-SPARCV9PIC %s
120 // CHECK-SPARCV9PIC: as
121 // CHECK-SPARCV9PIC: -64
122 // CHECK-SPARCV9PIC: -Av9a
123 // CHECK-SPARCV9PIC: -KPIC
124 // CHECK-SPARCV9PIC: -o
125 //
126 // RUN: %clang -target sparc-linux -mcpu=invalid-cpu -### \
127 // RUN:   -no-integrated-as -c %s 2>&1 \
128 // RUN:   | FileCheck -check-prefix=CHECK-SPARCV8 %s
129 // CHECK-SPARCV8: as
130 // CHECK-SPARCV8: -32
131 // CHECK-SPARCV8: -Av8plusa
132 // CHECK-SPARCV8: -o
133 //
134 // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \
135 // RUN:   | FileCheck -check-prefix=CHECK-Z-DEFAULT-ARCH %s
136 // CHECK-Z-DEFAULT-ARCH: as{{.*}} "-march=z10"
137 //
138 // RUN: %clang -target s390x-linux -march=z196 -### \
139 // RUN:   -no-integrated-as -c %s 2>&1 \
140 // RUN:   | FileCheck -check-prefix=CHECK-Z-ARCH-Z196 %s
141 // CHECK-Z-ARCH-Z196: as{{.*}} "-march=z196"
142