1 | // Check handling MIPS specific features options. |
2 | // |
3 | // -mabicalls |
4 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mabicalls 2>&1 \ |
5 | // RUN: | FileCheck --check-prefix=CHECK-MABICALLS %s |
6 | // CHECK-MABICALLS: "-target-feature" "-noabicalls" |
7 | // |
8 | // -mno-abicalls |
9 | // RUN: %clang -target mips-linux-gnu -### -c %s -mabicalls -mno-abicalls 2>&1 \ |
10 | // RUN: | FileCheck --check-prefix=CHECK-MNOABICALLS %s |
11 | // CHECK-MNOABICALLS: "-target-feature" "+noabicalls" |
12 | // |
13 | // -mno-abicalls non-PIC N64 |
14 | // RUN: %clang -target mips64-linux-gnu -### -c -fno-PIC -mno-abicalls %s 2>&1 \ |
15 | // RUN: | FileCheck --check-prefix=CHECK-MNOABICALLS-N64NPIC %s |
16 | // CHECK-MNOABICALLS-N64NPIC: "-target-feature" "+noabicalls" |
17 | // |
18 | // -mgpopt |
19 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-gpopt -mgpopt -Wno-unsupported-gpopt 2>&1 \ |
20 | // RUN: | FileCheck --check-prefix=CHECK-MGPOPT-DEF-ABICALLS %s |
21 | // CHECK-MGPOPT-DEF-ABICALLS-NOT: "-mllvm" "-mgpopt" |
22 | // |
23 | // -mabicalls -mgpopt |
24 | // RUN: %clang -target mips-linux-gnu -### -c %s -mabicalls -mno-gpopt -mgpopt -Wno-unsupported-gpopt 2>&1 \ |
25 | // RUN: | FileCheck --check-prefix=CHECK-MGPOPT-EXPLICIT-ABICALLS %s |
26 | // CHECK-MGPOPT-EXPLICIT-ABICALLS-NOT: "-mllvm" "-mgpopt" |
27 | // |
28 | // -mno-abicalls -mgpopt |
29 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mno-gpopt -mgpopt 2>&1 \ |
30 | // RUN: | FileCheck --check-prefix=CHECK-MGPOPT %s |
31 | // CHECK-MGPOPT: "-mllvm" "-mgpopt" |
32 | // |
33 | // -mno-abicalls -mno-gpopt |
34 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -mno-gpopt 2>&1 \ |
35 | // RUN: | FileCheck --check-prefix=CHECK-MNOGPOPT %s |
36 | // CHECK-MNOGPOPT-NOT: "-mllvm" "-mgpopt" |
37 | // |
38 | // -mno-abicalls |
39 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls 2>&1 \ |
40 | // RUN: | FileCheck --check-prefix=CHECK-MGPOPTDEF %s |
41 | // CHECK-MGPOPTDEF: "-mllvm" "-mgpopt" |
42 | // |
43 | // -mgpopt -mno-abicalls -mlocal-sdata |
44 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mno-gpopt -mgpopt -mno-local-sdata -mlocal-sdata 2>&1 \ |
45 | // RUN: | FileCheck --check-prefix=CHECK-MLOCALSDATA %s |
46 | // CHECK-MLOCALSDATA: "-mllvm" "-mlocal-sdata=1" |
47 | // |
48 | // -mgpopt -mno-abicalls -mno-local-sdata |
49 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mno-gpopt -mgpopt -mlocal-sdata -mno-local-sdata 2>&1 \ |
50 | // RUN: | FileCheck --check-prefix=CHECK-MNOLOCALSDATA %s |
51 | // CHECK-MNOLOCALSDATA: "-mllvm" "-mlocal-sdata=0" |
52 | // |
53 | // -mgpopt -mno-abicalls |
54 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt 2>&1 \ |
55 | // RUN: | FileCheck --check-prefix=CHECK-MLOCALSDATADEF %s |
56 | // CHECK-MLOCALSDATADEF-NOT: "-mllvm" "-mlocal-sdata" |
57 | // |
58 | // -mno-abicalls -mgpopt -mextern-sdata |
59 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -mno-extern-sdata -mextern-sdata 2>&1 \ |
60 | // RUN: | FileCheck --check-prefix=CHECK-MEXTERNSDATA %s |
61 | // CHECK-MEXTERNSDATA: "-mllvm" "-mextern-sdata=1" |
62 | // |
63 | // -mno-abicalls -mgpopt -mno-extern-sdata |
64 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -mextern-sdata -mno-extern-sdata 2>&1 \ |
65 | // RUN: | FileCheck --check-prefix=CHECK-MNOEXTERNSDATA %s |
66 | // CHECK-MNOEXTERNSDATA: "-mllvm" "-mextern-sdata=0" |
67 | // |
68 | // -mno-abicalls -mgpopt |
69 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt 2>&1 \ |
70 | // RUN: | FileCheck --check-prefix=CHECK-MEXTERNSDATADEF %s |
71 | // CHECK-MEXTERNSDATADEF-NOT: "-mllvm" "-mextern-sdata" |
72 | // |
73 | // -mno-abicalls -mgpopt -membedded-data |
74 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -mno-embedded-data -membedded-data 2>&1 \ |
75 | // RUN: | FileCheck --check-prefix=CHECK-MEMBEDDEDDATA %s |
76 | // CHECK-MEMBEDDEDDATA: "-mllvm" "-membedded-data=1" |
77 | // |
78 | // -mno-abicalls -mgpopt -mno-embedded-data |
79 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -membedded-data -mno-embedded-data 2>&1 \ |
80 | // RUN: | FileCheck --check-prefix=CHECK-MNOEMBEDDEDDATA %s |
81 | // CHECK-MNOEMBEDDEDDATA: "-mllvm" "-membedded-data=0" |
82 | // |
83 | // -mno-abicalls -mgpopt |
84 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt 2>&1 \ |
85 | // RUN: | FileCheck --check-prefix=CHECK-MEMBEDDEDDATADEF %s |
86 | // CHECK-MEMBEDDEDDATADEF-NOT: "-mllvm" "-membedded-data" |
87 | // |
88 | // MIPS64 + N64: -fno-pic -> -mno-abicalls -mgpopt |
89 | // RUN: %clang -target mips64-mti-elf -mabi=64 -### -c %s -fno-pic -mno-abicalls 2>&1 \ |
90 | // RUN: | FileCheck --check-prefix=CHECK-N64-GPOPT %s |
91 | // CHECK-N64-GPOPT: "-target-feature" "+noabicalls" |
92 | // CHECK-N64-GPOPT: "-mllvm" "-mgpopt" |
93 | // |
94 | // MIPS64 + N64: -fno-pic -mno-gpopt |
95 | // RUN: %clang -target mips64-mti-elf -mabi=64 -### -c %s -fno-pic -mno-abicalls -mno-gpopt 2>&1 \ |
96 | // RUN: | FileCheck --check-prefix=CHECK-N64-MNO-GPOPT %s |
97 | // CHECK-N64-MNO-GPOPT: "-target-feature" "+noabicalls" |
98 | // CHECK-N64-MNO-GPOPT-NOT: "-mllvm" "-mgpopt" |
99 | // |
100 | // MIPS64 + N64: -mgpopt (-fpic is implicit) |
101 | // RUN: %clang -target mips64-mti-linux-gnu -mabi=64 -### -c %s -mgpopt 2>&1 \ |
102 | // RUN: | FileCheck --check-prefix=CHECK-N64-PIC-GPOPT %s |
103 | // CHECK-N64-PIC-GPOPT-NOT: "-mllvm" "-mgpopt" |
104 | // CHECK-N64-PIC-GPOPT: ignoring '-mgpopt' option as it cannot be used with the implicit usage of -mabicalls |
105 | // |
106 | // -mips16 |
107 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
108 | // RUN: -mno-mips16 -mips16 2>&1 \ |
109 | // RUN: | FileCheck --check-prefix=CHECK-MIPS16 %s |
110 | // CHECK-MIPS16: "-target-feature" "+mips16" |
111 | // |
112 | // -mno-mips16 |
113 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
114 | // RUN: -mips16 -mno-mips16 2>&1 \ |
115 | // RUN: | FileCheck --check-prefix=CHECK-NOMIPS16 %s |
116 | // CHECK-NOMIPS16: "-target-feature" "-mips16" |
117 | // |
118 | // -mmicromips |
119 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
120 | // RUN: -mno-micromips -mmicromips 2>&1 \ |
121 | // RUN: | FileCheck --check-prefix=CHECK-MICROMIPS %s |
122 | // CHECK-MICROMIPS: "-target-feature" "+micromips" |
123 | // |
124 | // -mno-micromips |
125 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
126 | // RUN: -mmicromips -mno-micromips 2>&1 \ |
127 | // RUN: | FileCheck --check-prefix=CHECK-NOMICROMIPS %s |
128 | // CHECK-NOMICROMIPS: "-target-feature" "-micromips" |
129 | // |
130 | // -mdsp |
131 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
132 | // RUN: -mno-dsp -mdsp 2>&1 \ |
133 | // RUN: | FileCheck --check-prefix=CHECK-MDSP %s |
134 | // CHECK-MDSP: "-target-feature" "+dsp" |
135 | // |
136 | // -mno-dsp |
137 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
138 | // RUN: -mdsp -mno-dsp 2>&1 \ |
139 | // RUN: | FileCheck --check-prefix=CHECK-NOMDSP %s |
140 | // CHECK-NOMDSP: "-target-feature" "-dsp" |
141 | // |
142 | // -mdspr2 |
143 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
144 | // RUN: -mno-dspr2 -mdspr2 2>&1 \ |
145 | // RUN: | FileCheck --check-prefix=CHECK-MDSPR2 %s |
146 | // CHECK-MDSPR2: "-target-feature" "+dspr2" |
147 | // |
148 | // -mno-dspr2 |
149 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
150 | // RUN: -mdspr2 -mno-dspr2 2>&1 \ |
151 | // RUN: | FileCheck --check-prefix=CHECK-NOMDSPR2 %s |
152 | // CHECK-NOMDSPR2: "-target-feature" "-dspr2" |
153 | // |
154 | // -mmsa |
155 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
156 | // RUN: -mno-msa -mmsa 2>&1 \ |
157 | // RUN: | FileCheck --check-prefix=CHECK-MMSA %s |
158 | // CHECK-MMSA: "-target-feature" "+msa" |
159 | // |
160 | // -mno-msa |
161 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
162 | // RUN: -mmsa -mno-msa 2>&1 \ |
163 | // RUN: | FileCheck --check-prefix=CHECK-NOMMSA %s |
164 | // CHECK-NOMMSA: "-target-feature" "-msa" |
165 | // |
166 | // -mmt |
167 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
168 | // RUN: -mno-mt -mmt 2>&1 \ |
169 | // RUN: | FileCheck --check-prefix=CHECK-MMT %s |
170 | // CHECK-MMT: "-target-feature" "+mt" |
171 | // |
172 | // -mno-mt |
173 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
174 | // RUN: -mmt -mno-mt 2>&1 \ |
175 | // RUN: | FileCheck --check-prefix=CHECK-NOMMT %s |
176 | // CHECK-NOMMT: "-target-feature" "-mt" |
177 | // |
178 | // -modd-spreg |
179 | // RUN: %clang -target mips-linux-gnu -### -c %s -mno-odd-spreg -modd-spreg 2>&1 \ |
180 | // RUN: | FileCheck --check-prefix=CHECK-MODDSPREG %s |
181 | // CHECK-MODDSPREG: "-target-feature" "-nooddspreg" |
182 | // |
183 | // -mno-odd-spreg |
184 | // RUN: %clang -target mips-linux-gnu -### -c %s -modd-spreg -mno-odd-spreg 2>&1 \ |
185 | // RUN: | FileCheck --check-prefix=CHECK-NOMODDSPREG %s |
186 | // CHECK-NOMODDSPREG: "-target-feature" "+nooddspreg" |
187 | // |
188 | // -mfpxx |
189 | // RUN: %clang -target mips-linux-gnu -### -c %s -mfpxx 2>&1 \ |
190 | // RUN: | FileCheck --check-prefix=CHECK-MFPXX %s |
191 | // CHECK-MFPXX: "-target-feature" "+fpxx" |
192 | // CHECK-MFPXX: "-target-feature" "+nooddspreg" |
193 | // |
194 | // -mfpxx -modd-spreg |
195 | // RUN: %clang -target mips-linux-gnu -### -c %s -mfpxx -modd-spreg 2>&1 \ |
196 | // RUN: | FileCheck --check-prefix=CHECK-MFPXX-ODDSPREG %s |
197 | // CHECK-MFPXX-ODDSPREG: "-target-feature" "+fpxx" |
198 | // CHECK-MFPXX-ODDSPREG: "-target-feature" "-nooddspreg" |
199 | // |
200 | // -mfp64 |
201 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
202 | // RUN: -mfp32 -mfp64 2>&1 \ |
203 | // RUN: | FileCheck --check-prefix=CHECK-MFP64 %s |
204 | // CHECK-MFP64: "-target-feature" "+fp64" |
205 | // |
206 | // -mfp32 |
207 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
208 | // RUN: -mfp64 -mfp32 2>&1 \ |
209 | // RUN: | FileCheck --check-prefix=CHECK-NOMFP64 %s |
210 | // CHECK-NOMFP64: "-target-feature" "-fp64" |
211 | // |
212 | // -mnan=2008 |
213 | // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ |
214 | // RUN: -mnan=legacy -mnan=2008 2>&1 \ |
215 | // RUN: | FileCheck --check-prefix=CHECK-NAN2008 %s |
216 | // CHECK-NAN2008: "-target-feature" "+nan2008" |
217 | // |
218 | // -mnan=legacy |
219 | // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ |
220 | // RUN: -mnan=2008 -mnan=legacy 2>&1 \ |
221 | // RUN: | FileCheck --check-prefix=CHECK-NANLEGACY %s |
222 | // CHECK-NANLEGACY: "-target-feature" "-nan2008" |
223 | // |
224 | // -mabs=2008 on pre R2 |
225 | // RUN: %clang -target mips-linux-gnu -march=mips32 -### -c %s \ |
226 | // RUN: -mabs=2008 2>&1 \ |
227 | // RUN: | FileCheck --check-prefix=CHECK-ABSLEGACY %s |
228 | // |
229 | // -mabs=2008 |
230 | // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ |
231 | // RUN: -mabs=2008 2>&1 \ |
232 | // RUN: | FileCheck --check-prefix=CHECK-ABS2008 %s |
233 | // |
234 | // -mabs=legacy |
235 | // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ |
236 | // RUN: -mabs=legacy 2>&1 \ |
237 | // RUN: | FileCheck --check-prefix=CHECK-ABSLEGACY %s |
238 | // |
239 | // -mabs=legacy on R6 |
240 | // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ |
241 | // RUN: -mabs=legacy 2>&1 \ |
242 | // RUN: | FileCheck --check-prefix=CHECK-ABS2008 %s |
243 | // |
244 | // CHECK-ABSLEGACY: "-target-feature" "-abs2008" |
245 | // CHECK-ABSLEGACY-NOT: "-target-feature" "+abs2008" |
246 | // CHECK-ABS2008: "-target-feature" "+abs2008" |
247 | // CHECK-ABS2008-NOT: "-target-feature" "-abs2008" |
248 | // |
249 | // -mcompact-branches=never |
250 | // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ |
251 | // RUN: -mcompact-branches=never 2>&1 \ |
252 | // RUN: | FileCheck --check-prefix=CHECK-CBNEVER %s |
253 | // CHECK-CBNEVER: "-mllvm" "-mips-compact-branches=never" |
254 | // |
255 | // -mcompact-branches=optimal |
256 | // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ |
257 | // RUN: -mcompact-branches=optimal 2>&1 \ |
258 | // RUN: | FileCheck --check-prefix=CHECK-CBOPTIMAL %s |
259 | // CHECK-CBOPTIMAL: "-mllvm" "-mips-compact-branches=optimal" |
260 | // |
261 | // -mcompact-branches=always |
262 | // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ |
263 | // RUN: -mcompact-branches=always 2>&1 \ |
264 | // RUN: | FileCheck --check-prefix=CHECK-CBALWAYS %s |
265 | // CHECK-CBALWAYS: "-mllvm" "-mips-compact-branches=always" |
266 | // |
267 | // -mxgot |
268 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
269 | // RUN: -mno-xgot -mxgot 2>&1 \ |
270 | // RUN: | FileCheck --check-prefix=CHECK-XGOT %s |
271 | // CHECK-XGOT: "-mllvm" "-mxgot" |
272 | // |
273 | // -mno-xgot |
274 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
275 | // RUN: -mxgot -mno-xgot 2>&1 \ |
276 | // RUN: | FileCheck --check-prefix=CHECK-NOXGOT %s |
277 | // CHECK-NOXGOT-NOT: "-mllvm" "-mxgot" |
278 | // |
279 | // -mldc1-sdc1 |
280 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
281 | // RUN: -mno-ldc1-sdc1 -mldc1-sdc1 2>&1 \ |
282 | // RUN: | FileCheck --check-prefix=CHECK-LDC1SDC1 %s |
283 | // CHECK-LDC1SDC1-NOT: "-mllvm" "-mno-ldc1-sdc1" |
284 | // |
285 | // -mno-ldc1-sdc1 |
286 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
287 | // RUN: -mldc1-sdc1 -mno-ldc1-sdc1 2>&1 \ |
288 | // RUN: | FileCheck --check-prefix=CHECK-NOLDC1SDC1 %s |
289 | // CHECK-NOLDC1SDC1: "-mllvm" "-mno-ldc1-sdc1" |
290 | // |
291 | // -mcheck-zero-division |
292 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
293 | // RUN: -mno-check-zero-division -mcheck-zero-division 2>&1 \ |
294 | // RUN: | FileCheck --check-prefix=CHECK-ZERODIV %s |
295 | // CHECK-ZERODIV-NOT: "-mllvm" "-mno-check-zero-division" |
296 | // |
297 | // -mno-check-zero-division |
298 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
299 | // RUN: -mcheck-zero-division -mno-check-zero-division 2>&1 \ |
300 | // RUN: | FileCheck --check-prefix=CHECK-NOZERODIV %s |
301 | // CHECK-NOZERODIV: "-mllvm" "-mno-check-zero-division" |
302 | // |
303 | // -G |
304 | // RUN: %clang -target mips-linux-gnu -### -c %s \ |
305 | // RUN: -G 16 2>&1 \ |
306 | // RUN: | FileCheck --check-prefix=CHECK-MIPS-G %s |
307 | // CHECK-MIPS-G: "-mllvm" "-mips-ssection-threshold=16" |
308 | // |
309 | // -msoft-float (unknown vendor) |
310 | // RUN: %clang -target mips-linux-gnu -### -c %s -msoft-float 2>&1 \ |
311 | // RUN: | FileCheck --check-prefix=CHECK-SOFTFLOAT %s |
312 | // CHECK-SOFTFLOAT: "-target-feature" "+soft-float" |
313 | // CHECK-SOFTFLOAT-NOT: "-target-feature" "+fpxx" |
314 | // |
315 | // -msoft-float -mfpxx (unknown vendor) |
316 | // RUN: %clang -target mips-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ |
317 | // RUN: | FileCheck --check-prefix=CHECK-SOFTFLOAT-FPXX %s |
318 | // CHECK-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" |
319 | // CHECK-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" |
320 | // |
321 | // -msoft-float (MTI) |
322 | // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msoft-float 2>&1 \ |
323 | // RUN: | FileCheck --check-prefix=CHECK-MTI-SOFTFLOAT %s |
324 | // CHECK-MTI-SOFTFLOAT: "-target-feature" "+soft-float" |
325 | // CHECK-MTI-SOFTFLOAT-NOT: "-target-feature" "+fpxx" |
326 | // |
327 | // -msoft-float -mfpxx (MTI) |
328 | // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ |
329 | // RUN: | FileCheck --check-prefix=CHECK-MTI-SOFTFLOAT-FPXX %s |
330 | // CHECK-MTI-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" |
331 | // CHECK-MTI-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" |
332 | // |
333 | // -msoft-float (IMG) |
334 | // RUN: %clang -target mips-img-linux-gnu -### -c %s -msoft-float 2>&1 \ |
335 | // RUN: | FileCheck --check-prefix=CHECK-IMG-SOFTFLOAT %s |
336 | // CHECK-IMG-SOFTFLOAT: "-target-feature" "+soft-float" |
337 | // CHECK-IMG-SOFTFLOAT-NOT: "-target-feature" "+fpxx" |
338 | // |
339 | // -msoft-float -mfpxx (IMG) |
340 | // RUN: %clang -target mips-img-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ |
341 | // RUN: | FileCheck --check-prefix=CHECK-IMG-SOFTFLOAT-FPXX %s |
342 | // CHECK-IMG-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" |
343 | // CHECK-IMG-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" |
344 | // |
345 | // -msingle-float (unknown vendor) |
346 | // RUN: %clang -target mips-linux-gnu -### -c %s -msingle-float 2>&1 \ |
347 | // RUN: | FileCheck --check-prefix=CHECK-SINGLEFLOAT %s |
348 | // CHECK-SINGLEFLOAT: "-target-feature" "+single-float" |
349 | // CHECK-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" |
350 | // |
351 | // -msingle-float -mfpxx (unknown vendor) |
352 | // RUN: %clang -target mips-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ |
353 | // RUN: | FileCheck --check-prefix=CHECK-SINGLEFLOAT-FPXX %s |
354 | // CHECK-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" |
355 | // CHECK-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" |
356 | // |
357 | // -msingle-float (MTI) |
358 | // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msingle-float 2>&1 \ |
359 | // RUN: | FileCheck --check-prefix=CHECK-MTI-SINGLEFLOAT %s |
360 | // CHECK-MTI-SINGLEFLOAT: "-target-feature" "+single-float" |
361 | // CHECK-MTI-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" |
362 | // |
363 | // -msingle-float -mfpxx (MTI) |
364 | // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ |
365 | // RUN: | FileCheck --check-prefix=CHECK-MTI-SINGLEFLOAT-FPXX %s |
366 | // CHECK-MTI-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" |
367 | // CHECK-MTI-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" |
368 | // |
369 | // -msingle-float (IMG) |
370 | // RUN: %clang -target mips-img-linux-gnu -### -c %s -msingle-float 2>&1 \ |
371 | // RUN: | FileCheck --check-prefix=CHECK-IMG-SINGLEFLOAT %s |
372 | // CHECK-IMG-SINGLEFLOAT: "-target-feature" "+single-float" |
373 | // CHECK-IMG-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" |
374 | // |
375 | // -msingle-float -mfpxx (IMG) |
376 | // RUN: %clang -target mips-img-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ |
377 | // RUN: | FileCheck --check-prefix=CHECK-IMG-SINGLEFLOAT-FPXX %s |
378 | // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" |
379 | // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" |
380 | |
381 | // -mlong-call |
382 | // RUN: %clang -target mips-img-linux-gnu -### -c %s \ |
383 | // RUN: -mno-abicalls -mlong-calls 2>&1 \ |
384 | // RUN: | FileCheck --check-prefix=LONG-CALLS-ON %s |
385 | // RUN: %clang -target mips-img-linux-gnu -### -c %s \ |
386 | // RUN: -mno-abicalls -mno-long-calls 2>&1 \ |
387 | // RUN: | FileCheck --check-prefix=LONG-CALLS-OFF %s |
388 | // RUN: %clang -target mips-img-linux-gnu -### -c %s 2>&1 \ |
389 | // RUN: | FileCheck --check-prefix=LONG-CALLS-DEF %s |
390 | // RUN: %clang -target mips-img-linux-gnu -### -c %s -mlong-calls 2>&1 \ |
391 | // RUN: | FileCheck --check-prefix=LONG-CALLS-DEF %s |
392 | // LONG-CALLS-ON: "-target-feature" "+long-calls" |
393 | // LONG-CALLS-OFF: "-target-feature" "-long-calls" |
394 | // LONG-CALLS-DEF-NOT: "long-calls" |
395 | // |
396 | // -mbranch-likely |
397 | // RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mbranch-likely 2>&1 \ |
398 | // RUN: | FileCheck --check-prefix=BRANCH-LIKELY %s |
399 | // BRANCH-LIKELY: argument unused during compilation: '-mbranch-likely' |
400 | // |
401 | // -mno-branch-likely |
402 | // RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mno-branch-likely 2>&1 \ |
403 | // RUN: | FileCheck --check-prefix=NO-BRANCH-LIKELY %s |
404 | // NO-BRANCH-LIKELY: argument unused during compilation: '-mno-branch-likely' |
405 | |
406 | // -mindirect-jump=hazard |
407 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
408 | // RUN: -mindirect-jump=hazard 2>&1 \ |
409 | // RUN: | FileCheck --check-prefix=INDIRECT-BH %s |
410 | // INDIRECT-BH: "-target-feature" "+use-indirect-jump-hazard" |
411 | // |
412 | // -mcrc |
413 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
414 | // RUN: -mno-crc -mcrc 2>&1 \ |
415 | // RUN: | FileCheck --check-prefix=CHECK-CRC %s |
416 | // CHECK-CRC: "-target-feature" "+crc" |
417 | // |
418 | // -mno-crc |
419 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
420 | // RUN: -mcrc -mno-crc 2>&1 \ |
421 | // RUN: | FileCheck --check-prefix=CHECK-NO-CRC %s |
422 | // CHECK-NO-CRC: "-target-feature" "-crc" |
423 | // |
424 | // -mvirt |
425 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
426 | // RUN: -mno-virt -mvirt 2>&1 \ |
427 | // RUN: | FileCheck --check-prefix=CHECK-VIRT %s |
428 | // CHECK-VIRT: "-target-feature" "+virt" |
429 | // |
430 | // -mno-virt |
431 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
432 | // RUN: -mvirt -mno-virt 2>&1 \ |
433 | // RUN: | FileCheck --check-prefix=CHECK-NO-VIRT %s |
434 | // CHECK-NO-VIRT: "-target-feature" "-virt" |
435 | // |
436 | // -mginv |
437 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
438 | // RUN: -mno-ginv -mginv 2>&1 \ |
439 | // RUN: | FileCheck --check-prefix=CHECK-GINV %s |
440 | // CHECK-GINV: "-target-feature" "+ginv" |
441 | // |
442 | // -mno-ginv |
443 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
444 | // RUN: -mginv -mno-ginv 2>&1 \ |
445 | // RUN: | FileCheck --check-prefix=CHECK-NO-GINV %s |
446 | // CHECK-NO-GINV: "-target-feature" "-ginv" |
447 | // |
448 | // -mrelax-pic-calls |
449 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
450 | // RUN: -mno-relax-pic-calls -mrelax-pic-calls 2>&1 \ |
451 | // RUN: | FileCheck --check-prefix=CHECK-RELAX-PIC-CALLS %s |
452 | // CHECK-RELAX-PIC-CALLS-NOT: "-mllvm" "-mips-jalr-reloc=0" |
453 | // |
454 | // -mno-relax-pic-calls |
455 | // RUN: %clang -target mips-unknown-linux-gnu -### -c %s \ |
456 | // RUN: -mrelax-pic-calls -mno-relax-pic-calls 2>&1 \ |
457 | // RUN: | FileCheck --check-prefix=CHECK-NO-RELAX-PIC-CALLS %s |
458 | // CHECK-NO-RELAX-PIC-CALLS: "-mllvm" "-mips-jalr-reloc=0" |
459 | |