[AMDGPU] Add commute for some VOP3 inst (#121326)
[llvm-project.git] / llvm / test / MC / AArch64 / no-fp-errors.s
blob9fe3cba83e25513783c59e32c2007dc6cebf2714
1 // RUN: not llvm-mc -triple aarch64-none-eabi -mattr=-fp-armv8 < %s 2>&1 | FileCheck %s --implicit-check-not error
3 ldr s0, [x0]
4 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
5 str q0, [x0]
6 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
8 fmov d0, xzr
9 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
11 ldnp s0, s1, [x0, #16]
12 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
13 ldnp d0, d1, [x0, #16]
14 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
15 ldnp q0, q1, [x0, #16]
16 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
18 ldp s0, s1, [x0, #16]
19 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
20 ldp d0, d1, [x0, #16]
21 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
22 ldp q0, q1, [x0, #16]
23 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
25 ldp s0, s1, [x0], #16
26 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
27 ldp d0, d1, [x0], #16
28 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
29 ldp q0, q1, [x0], #16
30 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
32 ldp s0, s1, [x0, #16]!
33 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
34 ldp d0, d1, [x0, #16]!
35 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
36 ldp q0, q1, [x0, #16]!
37 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
40 ldr b0, [x0], #16
41 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
42 ldr h0, [x0], #16
43 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
44 ldr s0, [x0], #16
45 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
46 ldr d0, [x0], #16
47 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
48 ldr q0, [x0], #16
49 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
51 ldr b0, [x0, #16]!
52 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
53 ldr h0, [x0, #16]!
54 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
55 ldr s0, [x0, #16]!
56 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
57 ldr d0, [x0, #16]!
58 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
59 ldr q0, [x0, #16]!
60 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
62 ldr b0, [x0, x1]
63 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
64 ldr h0, [x0, x1]
65 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
66 ldr s0, [x0, x1]
67 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
68 ldr d0, [x0, x1]
69 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
70 ldr q0, [x0, x1]
71 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
73 ldr b0, [x0, w1, sxtw]
74 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
75 ldr h0, [x0, w1, sxtw]
76 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
77 ldr s0, [x0, w1, sxtw]
78 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
79 ldr d0, [x0, w1, sxtw]
80 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
81 ldr q0, [x0, w1, sxtw]
82 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
84 ldr b0, [x0, #16]
85 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
86 ldr h0, [x0, #16]
87 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
88 ldr s0, [x0, #16]
89 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
90 ldr d0, [x0, #16]
91 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
92 ldr q0, [x0, #16]
93 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
95 label:
96 ldr s0, label
97 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
98 ldr d0, label
99 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
100 ldr q0, label
101 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
103 stnp s0, s1, [x0, #16]
104 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
105 stnp d0, d1, [x0, #16]
106 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
107 stnp q0, q1, [x0, #16]
108 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
110 stp s0, s1, [x0, #16]
111 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
112 stp d0, d1, [x0, #16]
113 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
114 stp q0, q1, [x0, #16]
115 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
117 stp s0, s1, [x0], #16
118 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
119 stp d0, d1, [x0], #16
120 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
121 stp q0, q1, [x0], #16
122 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
124 stp s0, s1, [x0, #16]!
125 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
126 stp d0, d1, [x0, #16]!
127 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
128 stp q0, q1, [x0, #16]!
129 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
131 str b0, [x0], #16
132 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
133 str h0, [x0], #16
134 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
135 str s0, [x0], #16
136 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
137 str d0, [x0], #16
138 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
139 str q0, [x0], #16
140 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
142 str b0, [x0, #16]!
143 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
144 str h0, [x0, #16]!
145 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
146 str s0, [x0, #16]!
147 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
148 str d0, [x0, #16]!
149 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
150 str q0, [x0, #16]!
151 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
153 str b0, [x0, #16]
154 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
155 str h0, [x0, #16]
156 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
157 str s0, [x0, #16]
158 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
159 str d0, [x0, #16]
160 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
161 str q0, [x0, #16]
162 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
164 str b0, [x0, x1]
165 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
166 str h0, [x0, x1]
167 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
168 str s0, [x0, x1]
169 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
170 str d0, [x0, x1]
171 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
172 str q0, [x0, x1]
173 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
175 str b0, [x0, w1, sxtw]
176 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
177 str h0, [x0, w1, sxtw]
178 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
179 str s0, [x0, w1, sxtw]
180 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
181 str d0, [x0, w1, sxtw]
182 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
183 str q0, [x0, w1, sxtw]
184 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
186 mrs x0, FPCR
187 // CHECK: [[@LINE-1]]:11: error: expected readable system register
188 mrs x0, FPSR
189 // CHECK: [[@LINE-1]]:11: error: expected readable system register
190 msr FPCR, x0
191 // CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate
192 msr FPSR, x0
193 // CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate
195 ldr s0, [x0, #1]
196 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
197 str q0, [x0, #1]
198 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
200 fmov s0, #0.0
201 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
202 fmov d0, #0.0
203 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
205 mvn v0.8b, v1.8b
206 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
207 mvn v0.16b, v1.16b
208 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
210 mov v0.16b, v1.16b
211 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
212 mov v0.8h, v1.8h
213 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
214 mov v0.4s, v1.4s
215 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
216 mov v0.2d, v1.2d
217 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
219 mov v0.8b, v1.8b
220 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
221 mov v0.4h, v1.4h
222 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
223 mov v0.2s, v1.2s
224 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
225 mov v0.1d, v1.1d
226 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
228 faclt v0.4h, v1.4h, v2.4h
229 // CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon
230 faclt v0.8h, v1.8h, v2.8h
231 // CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon
232 faclt v0.2s, v1.2s, v2.2s
233 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
234 faclt v0.4s, v1.4s, v2.4s
235 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
236 faclt v0.2d, v1.2d, v2.2d
237 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
239 cmls d0, d1, d2
240 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
241 cmle d0, d1, d2
242 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
243 cmlo d0, d1, d2
244 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
245 cmlt d0, d1, d2
246 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
248 fcmle s0, s1, s2
249 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
250 fcmle d0, d1, d2
251 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
252 fcmlt s0, s1, s2
253 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
254 fcmlt d0, d1, d2
255 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
256 facle s0, s1, s2
257 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
258 facle d0, d1, d2
259 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
260 faclt s0, s1, s2
261 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
262 faclt d0, d1, d2
263 // CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
265 bic v0.4h, #42
266 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
267 bic v0.8h, #42
268 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
269 bic v0.2s, #42
270 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
271 bic v0.4s, #42
272 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
274 bic.4h v0, #42
275 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
276 bic.8h v0, #42
277 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
278 bic.2s v0, #42
279 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
280 bic.4s v0, #42
281 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
283 orr v0.4h, #42
284 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
285 orr v0.8h, #42
286 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
287 orr v0.2s, #42
288 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
289 orr v0.4s, #42
290 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
292 orr.4h v0, #42
293 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
294 orr.8h v0, #42
295 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
296 orr.2s v0, #42
297 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
298 orr.4s v0, #42
299 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
301 movi v0.4h, #42
302 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
303 movi v0.8h, #42
304 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
305 movi v0.2s, #42
306 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
307 movi v0.4s, #42
308 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
310 movi.4h v0, #42
311 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
312 movi.8h v0, #42
313 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
314 movi.2s v0, #42
315 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
316 movi.4s v0, #42
317 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
319 mvni v0.4h, #42
320 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
321 mvni v0.8h, #42
322 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
323 mvni v0.2s, #42
324 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
325 mvni v0.4s, #42
326 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
328 mvni.4h v0, #42
329 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
330 mvni.8h v0, #42
331 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
332 mvni.2s v0, #42
333 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
334 mvni.4s v0, #42
335 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
337 sxtl.8h v0, v1
338 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
339 sxtl.4s v0, v1
340 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
341 sxtl.2d v0, v1
342 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
344 sxtl2.8h v0, v1
345 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
346 sxtl2.4s v0, v1
347 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
348 sxtl2.2d v0, v1
349 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
351 uxtl.8h v0, v1
352 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
353 uxtl.4s v0, v1
354 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
355 uxtl.2d v0, v1
356 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
358 uxtl2.8h v0, v1
359 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
360 uxtl2.4s v0, v1
361 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon
362 uxtl2.2d v0, v1
363 // CHECK: [[@LINE-1]]:3: error: instruction requires: neon