• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Check passing options to the assembler for MIPS targets.
2 //
3 // RUN: %clang -target mips-linux-gnu -### \
4 // RUN:   -no-integrated-as -c %s 2>&1 \
5 // RUN:   | FileCheck -check-prefix=MIPS32R2-EB-AS %s
6 // MIPS32R2-EB-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB"
7 // MIPS32R2-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
8 //
9 // RUN: %clang -target mips-linux-gnu -### \
10 // RUN:   -no-integrated-as -fPIC -c %s 2>&1 \
11 // RUN:   | FileCheck -check-prefix=MIPS32R2-EB-PIC %s
12 // MIPS32R2-EB-PIC: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB"
13 // MIPS32R2-EB-PIC: "-KPIC"
14 //
15 // RUN: %clang -target mipsel-linux-gnu -### \
16 // RUN:   -no-integrated-as -c %s 2>&1 \
17 // RUN:   | FileCheck -check-prefix=MIPS32R2-DEF-EL-AS %s
18 // MIPS32R2-DEF-EL-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EL"
19 //
20 // RUN: %clang -target mips64-linux-gnu -### \
21 // RUN:   -no-integrated-as -c %s 2>&1 \
22 // RUN:   | FileCheck -check-prefix=MIPS64R2-EB-AS %s
23 // MIPS64R2-EB-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EB"
24 //
25 // RUN: %clang -target mips64el-linux-gnu -### \
26 // RUN:   -no-integrated-as -c %s 2>&1 \
27 // RUN:   | FileCheck -check-prefix=MIPS64R2-DEF-EL-AS %s
28 // MIPS64R2-DEF-EL-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EL"
29 //
30 // RUN: %clang -target mips-linux-gnu -mabi=eabi -### \
31 // RUN:   -no-integrated-as -c %s 2>&1 \
32 // RUN:   | FileCheck -check-prefix=MIPS-EABI %s
33 // MIPS-EABI: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "eabi" "-EB"
34 //
35 // RUN: %clang -target mips64-linux-gnu -mabi=n32 -### \
36 // RUN:   -no-integrated-as -c %s 2>&1 \
37 // RUN:   | FileCheck -check-prefix=MIPS-N32 %s
38 // MIPS-N32: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "n32" "-EB"
39 //
40 // RUN: %clang -target mipsel-linux-gnu -mabi=32 -### \
41 // RUN:   -no-integrated-as -c %s 2>&1 \
42 // RUN:   | FileCheck -check-prefix=MIPS32R2-EL-AS %s
43 // MIPS32R2-EL-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EL"
44 //
45 // RUN: %clang -target mips64el-linux-gnu -mabi=64 -### \
46 // RUN:   -no-integrated-as -c %s 2>&1 \
47 // RUN:   | FileCheck -check-prefix=MIPS64R2-EL-AS %s
48 // MIPS64R2-EL-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EL"
49 //
50 // RUN: %clang -target mips-linux-gnu -march=mips32r2 -### \
51 // RUN:   -no-integrated-as -c %s 2>&1 \
52 // RUN:   | FileCheck -check-prefix=MIPS-32R2 %s
53 // MIPS-32R2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB"
54 //
55 // RUN: %clang -target mips64-linux-gnu -march=octeon -### \
56 // RUN:   -no-integrated-as -c %s 2>&1 \
57 // RUN:   | FileCheck -check-prefix=MIPS-OCTEON %s
58 // MIPS-OCTEON: as{{(.exe)?}}" "-march" "octeon" "-mabi" "64" "-EB"
59 //
60 // RUN: %clang -target mips-linux-gnu -mips1 -### \
61 // RUN:   -no-integrated-as -c %s 2>&1 \
62 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-1 %s
63 // MIPS-ALIAS-1: as{{(.exe)?}}" "-march" "mips1" "-mabi" "32" "-EB"
64 //
65 // RUN: %clang -target mips-linux-gnu -mips2 -### \
66 // RUN:   -no-integrated-as -c %s 2>&1 \
67 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-2 %s
68 // MIPS-ALIAS-2: as{{(.exe)?}}" "-march" "mips2" "-mabi" "32" "-EB"
69 //
70 // RUN: %clang -target mips-linux-gnu -mips3 -### \
71 // RUN:   -no-integrated-as -c %s 2>&1 \
72 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-3 %s
73 // MIPS-ALIAS-3: as{{(.exe)?}}" "-march" "mips3" "-mabi" "32" "-EB"
74 //
75 // RUN: %clang -target mips-linux-gnu -mips4 -### \
76 // RUN:   -no-integrated-as -c %s 2>&1 \
77 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-4 %s
78 // MIPS-ALIAS-4: as{{(.exe)?}}" "-march" "mips4" "-mabi" "32" "-EB"
79 //
80 // RUN: %clang -target mips-linux-gnu -mips5 -### \
81 // RUN:   -no-integrated-as -c %s 2>&1 \
82 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-5 %s
83 // MIPS-ALIAS-5: as{{(.exe)?}}" "-march" "mips5" "-mabi" "32" "-EB"
84 //
85 // RUN: %clang -target mips-linux-gnu -mips32 -### \
86 // RUN:   -no-integrated-as -c %s 2>&1 \
87 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-32 %s
88 // MIPS-ALIAS-32: as{{(.exe)?}}" "-march" "mips32" "-mabi" "32" "-EB"
89 //
90 // RUN: %clang -target mips-linux-gnu -mips32r2 -### \
91 // RUN:   -no-integrated-as -c %s 2>&1 \
92 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-32R2 %s
93 // MIPS-ALIAS-32R2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB"
94 //
95 // RUN: %clang -target mips-linux-gnu -mips32r6 -### \
96 // RUN:   -no-integrated-as -c %s 2>&1 \
97 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-32R6 %s
98 // MIPS-ALIAS-32R6: as{{(.exe)?}}" "-march" "mips32r6" "-mabi" "32" "-EB"
99 //
100 // RUN: %clang -target mips64-linux-gnu -mips64 -### \
101 // RUN:   -no-integrated-as -c %s 2>&1 \
102 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-64 %s
103 // MIPS-ALIAS-64: as{{(.exe)?}}" "-march" "mips64" "-mabi" "64" "-EB"
104 //
105 // RUN: %clang -target mips64-linux-gnu -mips64r2 -### \
106 // RUN:   -no-integrated-as -c %s 2>&1 \
107 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-64R2 %s
108 // MIPS-ALIAS-64R2: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EB"
109 //
110 // RUN: %clang -target mips64-linux-gnu -mips64r6 -### \
111 // RUN:   -no-integrated-as -c %s 2>&1 \
112 // RUN:   | FileCheck -check-prefix=MIPS-ALIAS-64R6 %s
113 // MIPS-ALIAS-64R6: as{{(.exe)?}}" "-march" "mips64r6" "-mabi" "64" "-EB"
114 //
115 // RUN: %clang -target mips-linux-gnu -mno-mips16 -mips16 -### \
116 // RUN:   -no-integrated-as -c %s 2>&1 \
117 // RUN:   | FileCheck -check-prefix=MIPS-16 %s
118 // MIPS-16: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mips16"
119 //
120 // RUN: %clang -target mips-linux-gnu -mips16 -mno-mips16 -### \
121 // RUN:   -no-integrated-as -c %s 2>&1 \
122 // RUN:   | FileCheck -check-prefix=MIPS-N16 %s
123 // MIPS-N16: as{{(.exe)?}}"
124 // MIPS-N16-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mips16"
125 //
126 // RUN: %clang -target mips-linux-gnu -mno-micromips -mmicromips -### \
127 // RUN:   -no-integrated-as -c %s 2>&1 \
128 // RUN:   | FileCheck -check-prefix=MIPS-MICRO %s
129 // MIPS-MICRO: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mmicromips"
130 //
131 // RUN: %clang -target mips-linux-gnu -mmicromips -mno-micromips -### \
132 // RUN:   -no-integrated-as -c %s 2>&1 \
133 // RUN:   | FileCheck -check-prefix=MIPS-NMICRO %s
134 // MIPS-NMICRO: as{{(.exe)?}}"
135 // MIPS-NMICRO-NOT: {{[A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mmicromips"
136 //
137 // RUN: %clang -target mips-linux-gnu -mno-dsp -mdsp -### \
138 // RUN:   -no-integrated-as -c %s 2>&1 \
139 // RUN:   | FileCheck -check-prefix=MIPS-DSP %s
140 // MIPS-DSP: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mdsp"
141 //
142 // RUN: %clang -target mips-linux-gnu -mdsp -mno-dsp -### \
143 // RUN:   -no-integrated-as -c %s 2>&1 \
144 // RUN:   | FileCheck -check-prefix=MIPS-NDSP %s
145 // MIPS-NDSP: as{{(.exe)?}}"
146 // MIPS-NDSP-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mdsp"
147 //
148 // RUN: %clang -target mips-linux-gnu -mno-dspr2 -mdspr2 -### \
149 // RUN:   -no-integrated-as -c %s 2>&1 \
150 // RUN:   | FileCheck -check-prefix=MIPS-DSPR2 %s
151 // MIPS-DSPR2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mdspr2"
152 //
153 // RUN: %clang -target mips-linux-gnu -mdspr2 -mno-dspr2 -### \
154 // RUN:   -no-integrated-as -c %s 2>&1 \
155 // RUN:   | FileCheck -check-prefix=MIPS-NDSPR2 %s
156 // MIPS-NDSPR2: as{{(.exe)?}}"
157 // MIPS-NDSPR2-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mdspr2"
158 //
159 // RUN: %clang -target mips-linux-gnu -mnan=legacy -mnan=2008 -### \
160 // RUN:   -no-integrated-as -c %s 2>&1 \
161 // RUN:   | FileCheck -check-prefix=MIPS-NAN2008 %s
162 // MIPS-NAN2008: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mnan=2008"
163 //
164 // RUN: %clang -target mips-linux-gnu -mnan=2008 -mnan=legacy -### \
165 // RUN:   -no-integrated-as -c %s 2>&1 \
166 // RUN:   | FileCheck -check-prefix=MIPS-NAN-LEGACY %s
167 // MIPS-NAN-LEGACY: as{{(.exe)?}}"
168 // MIPS-NAN-LEGACY-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mnan={{.*}}"
169 //
170 // RUN: %clang -target mips-linux-gnu -mfp64 -mfp32 -### \
171 // RUN:   -no-integrated-as -c %s 2>&1 \
172 // RUN:   | FileCheck -check-prefix=MIPS-MFP32 %s
173 // MIPS-MFP32: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mfp32"
174 //
175 // RUN: %clang -target mips-linux-gnu -mfp32 -mfp64 -### \
176 // RUN:   -no-integrated-as -c %s 2>&1 \
177 // RUN:   | FileCheck -check-prefix=MIPS-MFP64 %s
178 // MIPS-MFP64: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mfp64"
179 //
180 // RUN: %clang -target mips-linux-gnu -mno-msa -mmsa -### \
181 // RUN:   -no-integrated-as -c %s 2>&1 \
182 // RUN:   | FileCheck -check-prefix=MIPS-MSA %s
183 // MIPS-MSA: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mmsa"
184 //
185 // RUN: %clang -target mips-linux-gnu -mmsa -mno-msa -### \
186 // RUN:   -no-integrated-as -c %s 2>&1 \
187 // RUN:   | FileCheck -check-prefix=MIPS-NMSA %s
188 // MIPS-NMSA: as{{(.exe)?}}"
189 // MIPS-NMSA-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mmsa"
190 //
191 // We've already tested MIPS32r2 and MIPS64r2 thoroughly. Do minimal tests on
192 // the remaining CPU's since it was possible to pass on a -mabi with no value
193 // when the CPU name is absent from a StringSwitch in getMipsCPUAndABI()
194 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips1 \
195 // RUN:   2>&1 | FileCheck -check-prefix=MIPS1-EB-AS %s
196 // MIPS1-EB-AS: as{{(.exe)?}}" "-march" "mips1" "-mabi" "32" "-EB"
197 // MIPS1-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
198 //
199 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips2 \
200 // RUN:   2>&1 | FileCheck -check-prefix=MIPS2-EB-AS %s
201 // MIPS2-EB-AS: as{{(.exe)?}}" "-march" "mips2" "-mabi" "32" "-EB"
202 // MIPS2-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
203 //
204 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips3 \
205 // RUN:   2>&1 | FileCheck -check-prefix=MIPS3-EB-AS %s
206 // MIPS3-EB-AS: as{{(.exe)?}}" "-march" "mips3" "-mabi" "64" "-EB"
207 // MIPS3-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
208 //
209 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips4 \
210 // RUN:   2>&1 | FileCheck -check-prefix=MIPS4-EB-AS %s
211 // MIPS4-EB-AS: as{{(.exe)?}}" "-march" "mips4" "-mabi" "64" "-EB"
212 // MIPS4-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
213 //
214 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips5 \
215 // RUN:   2>&1 | FileCheck -check-prefix=MIPS5-EB-AS %s
216 // MIPS5-EB-AS: as{{(.exe)?}}" "-march" "mips5" "-mabi" "64" "-EB"
217 // MIPS5-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
218 //
219 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips32 \
220 // RUN:   2>&1 | FileCheck -check-prefix=MIPS32-EB-AS %s
221 // MIPS32-EB-AS: as{{(.exe)?}}" "-march" "mips32" "-mabi" "32" "-EB"
222 // MIPS32-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
223 //
224 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips32r6 \
225 // RUN:   2>&1 | FileCheck -check-prefix=MIPS32R6-EB-AS %s
226 // MIPS32R6-EB-AS: as{{(.exe)?}}" "-march" "mips32r6" "-mabi" "32" "-EB"
227 // MIPS32R6-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
228 //
229 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips64 \
230 // RUN:   2>&1 | FileCheck -check-prefix=MIPS64-EB-AS %s
231 // MIPS64-EB-AS: as{{(.exe)?}}" "-march" "mips64" "-mabi" "64" "-EB"
232 // MIPS64-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
233 //
234 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips64r6 \
235 // RUN:   2>&1 | FileCheck -check-prefix=MIPS64R6-EB-AS %s
236 // MIPS64R6-EB-AS: as{{(.exe)?}}" "-march" "mips64r6" "-mabi" "64" "-EB"
237 // MIPS64R6-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC"
238