1 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
2 | // RUN: FileCheck -check-prefix=ABI-O32 %s |
3 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mabi=32 2>&1 | \ |
4 | // RUN: FileCheck -check-prefix=ABI-O32 %s |
5 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mabi=o32 2>&1 | \ |
6 | // RUN: FileCheck -check-prefix=ABI-O32 %s |
7 | // ABI-O32: -cc1as |
8 | // ABI-O32: "-target-abi" "o32" |
9 | |
10 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mabi=eabi 2>&1 | \ |
11 | // RUN: FileCheck -check-prefix=ABI-EABI32 %s |
12 | // ABI-EABI32: -cc1as |
13 | // ABI-EABI32: "-target-abi" "eabi" |
14 | |
15 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips64 -mabi=n32 2>&1 | \ |
16 | // RUN: FileCheck -check-prefix=ABI-N32 %s |
17 | // RUN: %clang -target mips64-linux-gnu -### -fintegrated-as -c %s -mabi=n32 2>&1 | \ |
18 | // RUN: FileCheck -check-prefix=ABI-N32 %s |
19 | // ABI-N32: -cc1as |
20 | // ABI-N32: "-target-abi" "n32" |
21 | |
22 | // FIXME: We should also test '-target mips-linux-gnu -mips64' defaults to the |
23 | // default 64-bit ABI (N64 but GCC uses N32). It currently selects O32 |
24 | // because of the triple. |
25 | // RUN: %clang -target mips64-linux-gnu -### -fintegrated-as -c %s -mips64 2>&1 | \ |
26 | // RUN: FileCheck -check-prefix=ABI-N64 %s |
27 | // |
28 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips64 -mabi=64 2>&1 | \ |
29 | // RUN: FileCheck -check-prefix=ABI-N64 %s |
30 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips64 -mabi=n64 2>&1 | \ |
31 | // RUN: FileCheck -check-prefix=ABI-N64 %s |
32 | // RUN: %clang -target mips64-linux-gnu -### -fintegrated-as -c %s -mips64 -mabi=64 2>&1 | \ |
33 | // RUN: FileCheck -check-prefix=ABI-N64 %s |
34 | // RUN: %clang -target mips64-linux-gnu -### -fintegrated-as -c %s -mips64 -mabi=n64 2>&1 | \ |
35 | // RUN: FileCheck -check-prefix=ABI-N64 %s |
36 | // ABI-N64: -cc1as |
37 | // ABI-N64: "-target-abi" "n64" |
38 | |
39 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -msoft-float 2>&1 | \ |
40 | // RUN: FileCheck -check-prefix=SOFTFLOAT %s |
41 | // SOFTFLOAT: -cc1as |
42 | // SOFTFLOAT: "-target-feature" "+soft-float" |
43 | |
44 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
45 | // RUN: FileCheck -check-prefix=HARDFLOAT %s |
46 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mhard-float 2>&1 | \ |
47 | // RUN: FileCheck -check-prefix=HARDFLOAT %s |
48 | // HARDFLOAT: -cc1as |
49 | // HARDFLOAT-NOT: "-target-feature" "+soft-float" |
50 | |
51 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
52 | // RUN: FileCheck -check-prefix=NAN-DEFAULT %s |
53 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips32r6 2>&1 | \ |
54 | // RUN: FileCheck -check-prefix=NAN-DEFAULT %s |
55 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips64r6 2>&1 | \ |
56 | // RUN: FileCheck -check-prefix=NAN-DEFAULT %s |
57 | // NAN-DEFAULT: -cc1as |
58 | // NAN-DEFAULT-NOT: "-target-feature" "{{[-+]}}nan2008" |
59 | |
60 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mnan=legacy 2>&1 | \ |
61 | // RUN: FileCheck -check-prefix=NAN-LEGACY %s |
62 | // NAN-LEGACY: -cc1as |
63 | // NAN-LEGACY: "-target-feature" "-nan2008" |
64 | |
65 | // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -fintegrated-as -c %s -mnan=2008 2>&1 | \ |
66 | // RUN: FileCheck -check-prefix=NAN-2008 %s |
67 | // NAN-2008: -cc1as |
68 | // NAN-2008: "-target-feature" "+nan2008" |
69 | |
70 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
71 | // RUN: FileCheck -check-prefix=DEFAULT-FLOAT %s |
72 | // DEFAULT-FLOAT: -cc1as |
73 | // DEFAULT-FLOAT-NOT: "-target-feature" "{{[+-]}}single-float" |
74 | |
75 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -msingle-float 2>&1 | \ |
76 | // RUN: FileCheck -check-prefix=SINGLE-FLOAT %s |
77 | // SINGLE-FLOAT: -cc1as |
78 | // SINGLE-FLOAT: "-target-feature" "+single-float" |
79 | |
80 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mdouble-float 2>&1 | \ |
81 | // RUN: FileCheck -check-prefix=DOUBLE-FLOAT %s |
82 | // DOUBLE-FLOAT: -cc1as |
83 | // DOUBLE-FLOAT: "-target-feature" "-single-float" |
84 | |
85 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
86 | // RUN: FileCheck -check-prefix=MIPS16-DEFAULT %s |
87 | // MIPS16-DEFAULT: -cc1as |
88 | // MIPS16-DEFAULT-NOT: "-target-feature" "{{[+-]}}mips16" |
89 | |
90 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mips16 2>&1 | \ |
91 | // RUN: FileCheck -check-prefix=MIPS16-ON %s |
92 | // MIPS16-ON: -cc1as |
93 | // MIPS16-ON: "-target-feature" "+mips16" |
94 | |
95 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-mips16 2>&1 | \ |
96 | // RUN: FileCheck -check-prefix=MIPS16-OFF %s |
97 | // MIPS16-OFF: -cc1as |
98 | // MIPS16-OFF: "-target-feature" "-mips16" |
99 | |
100 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
101 | // RUN: FileCheck -check-prefix=MICROMIPS-DEFAULT %s |
102 | // MICROMIPS-DEFAULT: -cc1as |
103 | // MICROMIPS-DEFAULT-NOT: "-target-feature" "{{[+-]}}micromips" |
104 | |
105 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mmicromips 2>&1 | \ |
106 | // RUN: FileCheck -check-prefix=MICROMIPS-ON %s |
107 | // MICROMIPS-ON: -cc1as |
108 | // MICROMIPS-ON: "-target-feature" "+micromips" |
109 | |
110 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-micromips 2>&1 | \ |
111 | // RUN: FileCheck -check-prefix=MICROMIPS-OFF %s |
112 | // MICROMIPS-OFF: -cc1as |
113 | // MICROMIPS-OFF: "-target-feature" "-micromips" |
114 | |
115 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
116 | // RUN: FileCheck -check-prefix=DSP-DEFAULT %s |
117 | // DSP-DEFAULT: -cc1as |
118 | // DSP-DEFAULT-NOT: "-target-feature" "{{[+-]}}dsp" |
119 | |
120 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mdsp 2>&1 | \ |
121 | // RUN: FileCheck -check-prefix=DSP-ON %s |
122 | // DSP-ON: -cc1as |
123 | // DSP-ON: "-target-feature" "+dsp" |
124 | |
125 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-dsp 2>&1 | \ |
126 | // RUN: FileCheck -check-prefix=DSP-OFF %s |
127 | // DSP-OFF: -cc1as |
128 | // DSP-OFF: "-target-feature" "-dsp" |
129 | |
130 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
131 | // RUN: FileCheck -check-prefix=DSPR2-DEFAULT %s |
132 | // DSPR2-DEFAULT: -cc1as |
133 | // DSPR2-DEFAULT-NOT: "-target-feature" "{{[+-]}}dspr2" |
134 | |
135 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mdspr2 2>&1 | \ |
136 | // RUN: FileCheck -check-prefix=DSPR2-ON %s |
137 | // DSPR2-ON: -cc1as |
138 | // DSPR2-ON: "-target-feature" "+dspr2" |
139 | |
140 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-dspr2 2>&1 | \ |
141 | // RUN: FileCheck -check-prefix=DSPR2-OFF %s |
142 | // DSPR2-OFF: -cc1as |
143 | // DSPR2-OFF: "-target-feature" "-dspr2" |
144 | |
145 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
146 | // RUN: FileCheck -check-prefix=MSA-DEFAULT %s |
147 | // MSA-DEFAULT: -cc1as |
148 | // MSA-DEFAULT-NOT: "-target-feature" "{{[+-]}}msa" |
149 | |
150 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mmsa 2>&1 | \ |
151 | // RUN: FileCheck -check-prefix=MSA-ON %s |
152 | // MSA-ON: -cc1as |
153 | // MSA-ON: "-target-feature" "+msa" |
154 | |
155 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-msa 2>&1 | \ |
156 | // RUN: FileCheck -check-prefix=MSA-OFF %s |
157 | // MSA-OFF: -cc1as |
158 | // MSA-OFF: "-target-feature" "-msa" |
159 | |
160 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
161 | // RUN: FileCheck -check-prefix=FPXX-DEFAULT %s |
162 | // FPXX-DEFAULT: -cc1as |
163 | // FPXX-DEFAULT-NOT: "-target-feature" "+fpxx" |
164 | // FPXX-DEFAULT-NOT: "-target-feature" "+nooddspreg" |
165 | |
166 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mfp32 2>&1 | \ |
167 | // RUN: FileCheck -check-prefix=FP32 %s |
168 | // FP32: -cc1as |
169 | // FP32: "-target-feature" "-fp64" |
170 | |
171 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mfpxx 2>&1 | \ |
172 | // RUN: FileCheck -check-prefix=FPXX %s |
173 | // FPXX: -cc1as |
174 | // FPXX: "-target-feature" "+fpxx" |
175 | // FPXX: "-target-feature" "+nooddspreg" |
176 | |
177 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mfp64 2>&1 | \ |
178 | // RUN: FileCheck -check-prefix=FP64 %s |
179 | // FP64: -cc1as |
180 | // FP64: "-target-feature" "+fp64" |
181 | |
182 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ |
183 | // RUN: FileCheck -check-prefix=ODDSPREG-DEFAULT %s |
184 | // ODDSPREG-DEFAULT: -cc1as |
185 | // ODDSPREG-DEFAULT-NOT: "-target-feature" "{{[+-]}}nooddspreg" |
186 | |
187 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -modd-spreg 2>&1 | \ |
188 | // RUN: FileCheck -check-prefix=ODDSPREG-ON %s |
189 | // ODDSPREG-ON: -cc1as |
190 | // ODDSPREG-ON: "-target-feature" "-nooddspreg" |
191 | |
192 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-odd-spreg 2>&1 | \ |
193 | // RUN: FileCheck -check-prefix=ODDSPREG-OFF %s |
194 | // ODDSPREG-OFF: -cc1as |
195 | // ODDSPREG-OFF: "-target-feature" "+nooddspreg" |
196 | |
197 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mfpxx -modd-spreg 2>&1 | \ |
198 | // RUN: FileCheck -check-prefix=FPXX-ODDSPREG %s |
199 | // FPXX-ODDSPREG: -cc1as |
200 | // FPXX-ODDSPREG: "-target-feature" "+fpxx" |
201 | // FPXX-ODDSPREG: "-target-feature" "-nooddspreg" |
202 | |
203 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mabicalls 2>&1 | \ |
204 | // RUN: FileCheck -check-prefix=ABICALLS-ON %s |
205 | // ABICALLS-ON: -cc1as |
206 | // ABICALLS-ON: "-target-feature" "-noabicalls" |
207 | |
208 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -mno-abicalls 2>&1 | \ |
209 | // RUN: FileCheck -check-prefix=ABICALLS-OFF %s |
210 | // ABICALLS-OFF: -cc1as |
211 | // ABICALLS-OFF: "-target-feature" "+noabicalls" |
212 | |
213 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -msoft-float -c %s 2>&1 | \ |
214 | // RUN: FileCheck -check-prefix=SOFTFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
215 | // SOFTFLOAT-IMPLICIT-FPXX: -cc1as |
216 | // SOFTFLOAT-IMPLICIT-FPXX: "-target-feature" "+soft-float" |
217 | // SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
218 | // SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
219 | |
220 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -msoft-float -mfpxx -c %s 2>&1 | \ |
221 | // RUN: FileCheck -check-prefix=SOFTFLOAT-EXPLICIT-FPXX %s |
222 | // SOFTFLOAT-EXPLICIT-FPXX: -cc1as |
223 | // SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+soft-float" |
224 | // SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
225 | // SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
226 | |
227 | // RUN: %clang -target mips-mti-linux-gnu -### -fintegrated-as -msoft-float -c %s 2>&1 | \ |
228 | // RUN: FileCheck -check-prefix=MTI-SOFTFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
229 | // MTI-SOFTFLOAT-IMPLICIT-FPXX: -cc1as |
230 | // MTI-SOFTFLOAT-IMPLICIT-FPXX: "-target-feature" "+soft-float" |
231 | // MTI-SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
232 | // MTI-SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
233 | |
234 | // RUN: %clang -target mips-mti-linux-gnu -### -fintegrated-as -msoft-float -mfpxx -c %s 2>&1 | \ |
235 | // RUN: FileCheck -check-prefix=MTI-SOFTFLOAT-EXPLICIT-FPXX %s |
236 | // MTI-SOFTFLOAT-EXPLICIT-FPXX: -cc1as |
237 | // MTI-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+soft-float" |
238 | // MTI-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
239 | // MTI-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
240 | |
241 | // RUN: %clang -target mips-img-linux-gnu -### -fintegrated-as -msoft-float -c %s 2>&1 | \ |
242 | // RUN: FileCheck -check-prefix=IMG-SOFTFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
243 | // IMG-SOFTFLOAT-IMPLICIT-FPXX: -cc1as |
244 | // IMG-SOFTFLOAT-IMPLICIT-FPXX: "-target-feature" "+soft-float" |
245 | // IMG-SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
246 | // IMG-SOFTFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
247 | |
248 | // RUN: %clang -target mips-img-linux-gnu -### -fintegrated-as -msoft-float -mfpxx -c %s 2>&1 | \ |
249 | // RUN: FileCheck -check-prefix=IMG-SOFTFLOAT-EXPLICIT-FPXX %s |
250 | // IMG-SOFTFLOAT-EXPLICIT-FPXX: -cc1as |
251 | // IMG-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+soft-float" |
252 | // IMG-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
253 | // IMG-SOFTFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
254 | |
255 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -msingle-float -c %s 2>&1 | \ |
256 | // RUN: FileCheck -check-prefix=SINGLEFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
257 | // SINGLEFLOAT-IMPLICIT-FPXX: -cc1as |
258 | // SINGLEFLOAT-IMPLICIT-FPXX: "-target-feature" "+single-float" |
259 | // SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
260 | // SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
261 | |
262 | // RUN: %clang -target mips-linux-gnu -### -fintegrated-as -msingle-float -mfpxx -c %s 2>&1 | \ |
263 | // RUN: FileCheck -check-prefix=SINGLEFLOAT-EXPLICIT-FPXX %s |
264 | // SINGLEFLOAT-EXPLICIT-FPXX: -cc1as |
265 | // SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+single-float" |
266 | // SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
267 | // SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
268 | |
269 | // RUN: %clang -target mips-mti-linux-gnu -### -fintegrated-as -msingle-float -c %s 2>&1 | \ |
270 | // RUN: FileCheck -check-prefix=MTI-SINGLEFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
271 | // MTI-SINGLEFLOAT-IMPLICIT-FPXX: -cc1as |
272 | // MTI-SINGLEFLOAT-IMPLICIT-FPXX: "-target-feature" "+single-float" |
273 | // MTI-SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
274 | // MTI-SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
275 | |
276 | // RUN: %clang -target mips-mti-linux-gnu -### -fintegrated-as -msingle-float -mfpxx -c %s 2>&1 | \ |
277 | // RUN: FileCheck -check-prefix=MTI-SINGLEFLOAT-EXPLICIT-FPXX %s |
278 | // MTI-SINGLEFLOAT-EXPLICIT-FPXX: -cc1as |
279 | // MTI-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+single-float" |
280 | // MTI-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
281 | // MTI-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
282 | |
283 | // RUN: %clang -target mips-img-linux-gnu -### -fintegrated-as -msingle-float -c %s 2>&1 | \ |
284 | // RUN: FileCheck -check-prefix=IMG-SINGLEFLOAT-IMPLICIT-FPXX --implicit-check-not=-mfpxx %s |
285 | // IMG-SINGLEFLOAT-IMPLICIT-FPXX: -cc1as |
286 | // IMG-SINGLEFLOAT-IMPLICIT-FPXX: "-target-feature" "+single-float" |
287 | // IMG-SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+fpxx" |
288 | // IMG-SINGLEFLOAT-IMPLICIT-FPXX-NOT: "-target-feature" "+nooddspreg" |
289 | |
290 | // RUN: %clang -target mips-img-linux-gnu -### -fintegrated-as -msingle-float -mfpxx -c %s 2>&1 | \ |
291 | // RUN: FileCheck -check-prefix=IMG-SINGLEFLOAT-EXPLICIT-FPXX %s |
292 | // IMG-SINGLEFLOAT-EXPLICIT-FPXX: -cc1as |
293 | // IMG-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+single-float" |
294 | // IMG-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+fpxx" |
295 | // IMG-SINGLEFLOAT-EXPLICIT-FPXX: "-target-feature" "+nooddspreg" |
296 | |