]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Vendor import of llvm trunk r302418:
[FreeBSD/FreeBSD.git] / test / MC / Disassembler / AArch64 / basic-a64-instructions.txt
1 # RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2 # RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
3 # RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8,+fullfp16 -disassemble < %s | FileCheck %s --check-prefix=CHECK --check-prefix=FP16
4
5 #------------------------------------------------------------------------------
6 # Add/sub (immediate)
7 #------------------------------------------------------------------------------
8 # CHECK: add      w4, w5, #0
9 # CHECK: add      w2, w3, #4095
10 # CHECK: add      w30, w29, #1, lsl #12
11 # CHECK: add      w13, w5, #4095, lsl #12
12 # CHECK: add      x5, x7, #1638
13 0xa4 0x0 0x0 0x11
14 0x62 0xfc 0x3f 0x11
15 0xbe 0x7 0x40 0x11
16 0xad 0xfc 0x7f 0x11
17 0xe5 0x98 0x19 0x91
18
19 # CHECK: add      w20, wsp, #801
20 # CHECK: add      wsp, wsp, #1104
21 # CHECK: add      wsp, w30, #4084
22 0xf4 0x87 0xc 0x11
23 0xff 0x43 0x11 0x11
24 0xdf 0xd3 0x3f 0x11
25
26 # CHECK: add      x0, x24, #291
27 # CHECK: add      x3, x24, #4095, lsl #12
28 # CHECK: add      x8, sp, #1074
29 # CHECK: add      sp, x29, #3816
30 0x0 0x8f 0x4 0x91
31 0x3 0xff 0x7f 0x91
32 0xe8 0xcb 0x10 0x91
33 0xbf 0xa3 0x3b 0x91
34
35 # CHECK: sub      w0, wsp, #4077
36 # CHECK: sub      w4, w20, #546, lsl #12
37 # CHECK: sub      sp, sp, #288
38 # CHECK: sub      wsp, w19, #16
39 0xe0 0xb7 0x3f 0x51
40 0x84 0x8a 0x48 0x51
41 0xff 0x83 0x4 0xd1
42 0x7f 0x42 0x0 0x51
43
44
45 # CHECK: adds     w13, w23, #291, lsl #12
46 # CHECK: cmn      w2, #4095
47 # CHECK: adds     w20, wsp, #0
48 # CHECK: cmn      x3, #1, lsl #12
49 0xed 0x8e 0x44 0x31
50 0x5f 0xfc 0x3f 0x31
51 0xf4 0x3 0x0 0x31
52 0x7f 0x4 0x40 0xb1
53
54 # CHECK: cmp      sp, #20, lsl #12
55 # CHECK: cmp      x30, #4095
56 # CHECK: subs     x4, sp, #3822
57 0xff 0x53 0x40 0xf1
58 0xdf 0xff 0x3f 0xf1
59 0xe4 0xbb 0x3b 0xf1
60
61 # These should really be CMN
62 # CHECK: cmn      w3, #291, lsl #12
63 # CHECK: cmn      wsp, #1365
64 # CHECK: cmn      sp, #1092, lsl #12
65 0x7f 0x8c 0x44 0x31
66 0xff 0x57 0x15 0x31
67 0xff 0x13 0x51 0xb1
68
69 # CHECK: mov      sp, x30
70 # CHECK: mov      wsp, w20
71 # CHECK: mov      x11, sp
72 # CHECK: mov      w24, wsp
73 0xdf 0x3 0x0 0x91
74 0x9f 0x2 0x0 0x11
75 0xeb 0x3 0x0 0x91
76 0xf8 0x3 0x0 0x11
77
78 #------------------------------------------------------------------------------
79 # Add-subtract (shifted register)
80 #------------------------------------------------------------------------------
81
82 # CHECK: add      w3, w5, w7
83 # CHECK: add      wzr, w3, w5
84 # CHECK: add      w20, wzr, w4
85 # CHECK: add      w4, w6, wzr
86 # CHECK: add      w11, w13, w15
87 # CHECK: add      w9, w3, wzr, lsl #10
88 # CHECK: add      w17, w29, w20, lsl #31
89 # CHECK: add      w21, w22, w23, lsr #0
90 # CHECK: add      w24, w25, w26, lsr #18
91 # CHECK: add      w27, w28, w29, lsr #31
92 # CHECK: add      w2, w3, w4, asr #0
93 # CHECK: add      w5, w6, w7, asr #21
94 # CHECK: add      w8, w9, w10, asr #31
95 0xa3 0x0 0x7 0xb
96 0x7f 0x0 0x5 0xb
97 0xf4 0x3 0x4 0xb
98 0xc4 0x0 0x1f 0xb
99 0xab 0x1 0xf 0xb
100 0x69 0x28 0x1f 0xb
101 0xb1 0x7f 0x14 0xb
102 0xd5 0x2 0x57 0xb
103 0x38 0x4b 0x5a 0xb
104 0x9b 0x7f 0x5d 0xb
105 0x62 0x0 0x84 0xb
106 0xc5 0x54 0x87 0xb
107 0x28 0x7d 0x8a 0xb
108
109 # CHECK: add      x3, x5, x7
110 # CHECK: add      xzr, x3, x5
111 # CHECK: add      x20, xzr, x4
112 # CHECK: add      x4, x6, xzr
113 # CHECK: add      x11, x13, x15
114 # CHECK: add      x9, x3, xzr, lsl #10
115 # CHECK: add      x17, x29, x20, lsl #63
116 # CHECK: add      x21, x22, x23, lsr #0
117 # CHECK: add      x24, x25, x26, lsr #18
118 # CHECK: add      x27, x28, x29, lsr #63
119 # CHECK: add      x2, x3, x4, asr #0
120 # CHECK: add      x5, x6, x7, asr #21
121 # CHECK: add      x8, x9, x10, asr #63
122 0xa3 0x0 0x7 0x8b
123 0x7f 0x0 0x5 0x8b
124 0xf4 0x3 0x4 0x8b
125 0xc4 0x0 0x1f 0x8b
126 0xab 0x1 0xf 0x8b
127 0x69 0x28 0x1f 0x8b
128 0xb1 0xff 0x14 0x8b
129 0xd5 0x2 0x57 0x8b
130 0x38 0x4b 0x5a 0x8b
131 0x9b 0xff 0x5d 0x8b
132 0x62 0x0 0x84 0x8b
133 0xc5 0x54 0x87 0x8b
134 0x28 0xfd 0x8a 0x8b
135
136 # CHECK: adds     w3, w5, w7
137 # CHECK: cmn      w3, w5
138 # CHECK: adds     w20, wzr, w4
139 # CHECK: adds     w4, w6, wzr
140 # CHECK: adds     w11, w13, w15
141 # CHECK: adds     w9, w3, wzr, lsl #10
142 # CHECK: adds     w17, w29, w20, lsl #31
143 # CHECK: adds     w21, w22, w23, lsr #0
144 # CHECK: adds     w24, w25, w26, lsr #18
145 # CHECK: adds     w27, w28, w29, lsr #31
146 # CHECK: adds     w2, w3, w4, asr #0
147 # CHECK: adds     w5, w6, w7, asr #21
148 # CHECK: adds     w8, w9, w10, asr #31
149 0xa3 0x0 0x7 0x2b
150 0x7f 0x0 0x5 0x2b
151 0xf4 0x3 0x4 0x2b
152 0xc4 0x0 0x1f 0x2b
153 0xab 0x1 0xf 0x2b
154 0x69 0x28 0x1f 0x2b
155 0xb1 0x7f 0x14 0x2b
156 0xd5 0x2 0x57 0x2b
157 0x38 0x4b 0x5a 0x2b
158 0x9b 0x7f 0x5d 0x2b
159 0x62 0x0 0x84 0x2b
160 0xc5 0x54 0x87 0x2b
161 0x28 0x7d 0x8a 0x2b
162
163 # CHECK: adds     x3, x5, x7
164 # CHECK: cmn      x3, x5
165 # CHECK: adds     x20, xzr, x4
166 # CHECK: adds     x4, x6, xzr
167 # CHECK: adds     x11, x13, x15
168 # CHECK: adds     x9, x3, xzr, lsl #10
169 # CHECK: adds     x17, x29, x20, lsl #63
170 # CHECK: adds     x21, x22, x23, lsr #0
171 # CHECK: adds     x24, x25, x26, lsr #18
172 # CHECK: adds     x27, x28, x29, lsr #63
173 # CHECK: adds     x2, x3, x4, asr #0
174 # CHECK: adds     x5, x6, x7, asr #21
175 # CHECK: adds     x8, x9, x10, asr #63
176 0xa3 0x0 0x7 0xab
177 0x7f 0x0 0x5 0xab
178 0xf4 0x3 0x4 0xab
179 0xc4 0x0 0x1f 0xab
180 0xab 0x1 0xf 0xab
181 0x69 0x28 0x1f 0xab
182 0xb1 0xff 0x14 0xab
183 0xd5 0x2 0x57 0xab
184 0x38 0x4b 0x5a 0xab
185 0x9b 0xff 0x5d 0xab
186 0x62 0x0 0x84 0xab
187 0xc5 0x54 0x87 0xab
188 0x28 0xfd 0x8a 0xab
189
190 # CHECK: sub      w3, w5, w7
191 # CHECK: sub      wzr, w3, w5
192 # CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
193 # CHECK: sub      w4, w6, wzr
194 # CHECK: sub      w11, w13, w15
195 # CHECK: sub      w9, w3, wzr, lsl #10
196 # CHECK: sub      w17, w29, w20, lsl #31
197 # CHECK: sub      w21, w22, w23, lsr #0
198 # CHECK: sub      w24, w25, w26, lsr #18
199 # CHECK: sub      w27, w28, w29, lsr #31
200 # CHECK: sub      w2, w3, w4, asr #0
201 # CHECK: sub      w5, w6, w7, asr #21
202 # CHECK: sub      w8, w9, w10, asr #31
203 0xa3 0x0 0x7 0x4b
204 0x7f 0x0 0x5 0x4b
205 0xf4 0x3 0x4 0x4b
206 0xc4 0x0 0x1f 0x4b
207 0xab 0x1 0xf 0x4b
208 0x69 0x28 0x1f 0x4b
209 0xb1 0x7f 0x14 0x4b
210 0xd5 0x2 0x57 0x4b
211 0x38 0x4b 0x5a 0x4b
212 0x9b 0x7f 0x5d 0x4b
213 0x62 0x0 0x84 0x4b
214 0xc5 0x54 0x87 0x4b
215 0x28 0x7d 0x8a 0x4b
216
217 # CHECK: sub      x3, x5, x7
218 # CHECK: sub      xzr, x3, x5
219 # CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
220 # CHECK: sub      x4, x6, xzr
221 # CHECK: sub      x11, x13, x15
222 # CHECK: sub      x9, x3, xzr, lsl #10
223 # CHECK: sub      x17, x29, x20, lsl #63
224 # CHECK: sub      x21, x22, x23, lsr #0
225 # CHECK: sub      x24, x25, x26, lsr #18
226 # CHECK: sub      x27, x28, x29, lsr #63
227 # CHECK: sub      x2, x3, x4, asr #0
228 # CHECK: sub      x5, x6, x7, asr #21
229 # CHECK: sub      x8, x9, x10, asr #63
230 0xa3 0x0 0x7 0xcb
231 0x7f 0x0 0x5 0xcb
232 0xf4 0x3 0x4 0xcb
233 0xc4 0x0 0x1f 0xcb
234 0xab 0x1 0xf 0xcb
235 0x69 0x28 0x1f 0xcb
236 0xb1 0xff 0x14 0xcb
237 0xd5 0x2 0x57 0xcb
238 0x38 0x4b 0x5a 0xcb
239 0x9b 0xff 0x5d 0xcb
240 0x62 0x0 0x84 0xcb
241 0xc5 0x54 0x87 0xcb
242 0x28 0xfd 0x8a 0xcb
243
244 # CHECK: subs     w3, w5, w7
245 # CHECK: cmp      w3, w5
246 # CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
247 # CHECK: subs     w4, w6, wzr
248 # CHECK: subs     w11, w13, w15
249 # CHECK: subs     w9, w3, wzr, lsl #10
250 # CHECK: subs     w17, w29, w20, lsl #31
251 # CHECK: subs     w21, w22, w23, lsr #0
252 # CHECK: subs     w24, w25, w26, lsr #18
253 # CHECK: subs     w27, w28, w29, lsr #31
254 # CHECK: subs     w2, w3, w4, asr #0
255 # CHECK: subs     w5, w6, w7, asr #21
256 # CHECK: subs     w8, w9, w10, asr #31
257 0xa3 0x0 0x7 0x6b
258 0x7f 0x0 0x5 0x6b
259 0xf4 0x3 0x4 0x6b
260 0xc4 0x0 0x1f 0x6b
261 0xab 0x1 0xf 0x6b
262 0x69 0x28 0x1f 0x6b
263 0xb1 0x7f 0x14 0x6b
264 0xd5 0x2 0x57 0x6b
265 0x38 0x4b 0x5a 0x6b
266 0x9b 0x7f 0x5d 0x6b
267 0x62 0x0 0x84 0x6b
268 0xc5 0x54 0x87 0x6b
269 0x28 0x7d 0x8a 0x6b
270
271 # CHECK: subs     x3, x5, x7
272 # CHECK: cmp      x3, x5
273 # CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
274 # CHECK: subs     x4, x6, xzr
275 # CHECK: subs     x11, x13, x15
276 # CHECK: subs     x9, x3, xzr, lsl #10
277 # CHECK: subs     x17, x29, x20, lsl #63
278 # CHECK: subs     x21, x22, x23, lsr #0
279 # CHECK: subs     x24, x25, x26, lsr #18
280 # CHECK: subs     x27, x28, x29, lsr #63
281 # CHECK: subs     x2, x3, x4, asr #0
282 # CHECK: subs     x5, x6, x7, asr #21
283 # CHECK: subs     x8, x9, x10, asr #63
284 0xa3 0x0 0x7 0xeb
285 0x7f 0x0 0x5 0xeb
286 0xf4 0x3 0x4 0xeb
287 0xc4 0x0 0x1f 0xeb
288 0xab 0x1 0xf 0xeb
289 0x69 0x28 0x1f 0xeb
290 0xb1 0xff 0x14 0xeb
291 0xd5 0x2 0x57 0xeb
292 0x38 0x4b 0x5a 0xeb
293 0x9b 0xff 0x5d 0xeb
294 0x62 0x0 0x84 0xeb
295 0xc5 0x54 0x87 0xeb
296 0x28 0xfd 0x8a 0xeb
297
298 # CHECK: cmn      w0, w3
299 # CHECK: cmn      wzr, w4
300 # CHECK: cmn      w5, wzr
301 # CHECK: cmn      w6, w7
302 # CHECK: cmn      w8, w9, lsl #15
303 # CHECK: cmn      w10, w11, lsl #31
304 # CHECK: cmn      w12, w13, lsr #0
305 # CHECK: cmn      w14, w15, lsr #21
306 # CHECK: cmn      w16, w17, lsr #31
307 # CHECK: cmn      w18, w19, asr #0
308 # CHECK: cmn      w20, w21, asr #22
309 # CHECK: cmn      w22, w23, asr #31
310 0x1f 0x0 0x3 0x2b
311 0xff 0x3 0x4 0x2b
312 0xbf 0x0 0x1f 0x2b
313 0xdf 0x0 0x7 0x2b
314 0x1f 0x3d 0x9 0x2b
315 0x5f 0x7d 0xb 0x2b
316 0x9f 0x1 0x4d 0x2b
317 0xdf 0x55 0x4f 0x2b
318 0x1f 0x7e 0x51 0x2b
319 0x5f 0x2 0x93 0x2b
320 0x9f 0x5a 0x95 0x2b
321 0xdf 0x7e 0x97 0x2b
322
323 # CHECK: cmn      x0, x3
324 # CHECK: cmn      xzr, x4
325 # CHECK: cmn      x5, xzr
326 # CHECK: cmn      x6, x7
327 # CHECK: cmn      x8, x9, lsl #15
328 # CHECK: cmn      x10, x11, lsl #63
329 # CHECK: cmn      x12, x13, lsr #0
330 # CHECK: cmn      x14, x15, lsr #41
331 # CHECK: cmn      x16, x17, lsr #63
332 # CHECK: cmn      x18, x19, asr #0
333 # CHECK: cmn      x20, x21, asr #55
334 # CHECK: cmn      x22, x23, asr #63
335 0x1f 0x0 0x3 0xab
336 0xff 0x3 0x4 0xab
337 0xbf 0x0 0x1f 0xab
338 0xdf 0x0 0x7 0xab
339 0x1f 0x3d 0x9 0xab
340 0x5f 0xfd 0xb 0xab
341 0x9f 0x1 0x4d 0xab
342 0xdf 0xa5 0x4f 0xab
343 0x1f 0xfe 0x51 0xab
344 0x5f 0x2 0x93 0xab
345 0x9f 0xde 0x95 0xab
346 0xdf 0xfe 0x97 0xab
347
348 # CHECK: cmp      w0, w3
349 # CHECK: cmp      wzr, w4
350 # CHECK: cmp      w5, wzr
351 # CHECK: cmp      w6, w7
352 # CHECK: cmp      w8, w9, lsl #15
353 # CHECK: cmp      w10, w11, lsl #31
354 # CHECK: cmp      w12, w13, lsr #0
355 # CHECK: cmp      w14, w15, lsr #21
356 # CHECK: cmp      w16, w17, lsr #31
357 # CHECK: cmp      w18, w19, asr #0
358 # CHECK: cmp      w20, w21, asr #22
359 # CHECK: cmp      w22, w23, asr #31
360 0x1f 0x0 0x3 0x6b
361 0xff 0x3 0x4 0x6b
362 0xbf 0x0 0x1f 0x6b
363 0xdf 0x0 0x7 0x6b
364 0x1f 0x3d 0x9 0x6b
365 0x5f 0x7d 0xb 0x6b
366 0x9f 0x1 0x4d 0x6b
367 0xdf 0x55 0x4f 0x6b
368 0x1f 0x7e 0x51 0x6b
369 0x5f 0x2 0x93 0x6b
370 0x9f 0x5a 0x95 0x6b
371 0xdf 0x7e 0x97 0x6b
372
373 # CHECK: cmp      x0, x3
374 # CHECK: cmp      xzr, x4
375 # CHECK: cmp      x5, xzr
376 # CHECK: cmp      x6, x7
377 # CHECK: cmp      x8, x9, lsl #15
378 # CHECK: cmp      x10, x11, lsl #63
379 # CHECK: cmp      x12, x13, lsr #0
380 # CHECK: cmp      x14, x15, lsr #41
381 # CHECK: cmp      x16, x17, lsr #63
382 # CHECK: cmp      x18, x19, asr #0
383 # CHECK: cmp      x20, x21, asr #55
384 # CHECK: cmp      x22, x23, asr #63
385 0x1f 0x0 0x3 0xeb
386 0xff 0x3 0x4 0xeb
387 0xbf 0x0 0x1f 0xeb
388 0xdf 0x0 0x7 0xeb
389 0x1f 0x3d 0x9 0xeb
390 0x5f 0xfd 0xb 0xeb
391 0x9f 0x1 0x4d 0xeb
392 0xdf 0xa5 0x4f 0xeb
393 0x1f 0xfe 0x51 0xeb
394 0x5f 0x2 0x93 0xeb
395 0x9f 0xde 0x95 0xeb
396 0xdf 0xfe 0x97 0xeb
397
398 # CHECK: {{sub      w29, wzr|neg w29}}, w30
399 # CHECK: {{sub      w30, wzr|neg w30}}, wzr
400 # CHECK: {{sub      wzr, wzr|neg wzr}}, w0
401 # CHECK: {{sub      w28, wzr|neg w28}}, w27
402 # CHECK: {{sub      w26, wzr|neg w26}}, w25, lsl #29
403 # CHECK: {{sub      w24, wzr|neg w24}}, w23, lsl #31
404 # CHECK: {{sub      w22, wzr|neg w22}}, w21, lsr #0
405 # CHECK: {{sub      w20, wzr|neg w20}}, w19, lsr #1
406 # CHECK: {{sub      w18, wzr|neg w18}}, w17, lsr #31
407 # CHECK: {{sub      w16, wzr|neg w16}}, w15, asr #0
408 # CHECK: {{sub      w14, wzr|neg w14}}, w13, asr #12
409 # CHECK: {{sub      w12, wzr|neg w12}}, w11, asr #31
410 0xfd 0x3 0x1e 0x4b
411 0xfe 0x3 0x1f 0x4b
412 0xff 0x3 0x0 0x4b
413 0xfc 0x3 0x1b 0x4b
414 0xfa 0x77 0x19 0x4b
415 0xf8 0x7f 0x17 0x4b
416 0xf6 0x3 0x55 0x4b
417 0xf4 0x7 0x53 0x4b
418 0xf2 0x7f 0x51 0x4b
419 0xf0 0x3 0x8f 0x4b
420 0xee 0x33 0x8d 0x4b
421 0xec 0x7f 0x8b 0x4b
422
423 # CHECK: {{sub      x29, xzr|neg x29}}, x30
424 # CHECK: {{sub      x30, xzr|neg x30}}, xzr
425 # CHECK: {{sub      xzr, xzr|neg xzr}}, x0
426 # CHECK: {{sub      x28, xzr|neg x28}}, x27
427 # CHECK: {{sub      x26, xzr|neg x26}}, x25, lsl #29
428 # CHECK: {{sub      x24, xzr|neg x24}}, x23, lsl #31
429 # CHECK: {{sub      x22, xzr|neg x22}}, x21, lsr #0
430 # CHECK: {{sub      x20, xzr|neg x20}}, x19, lsr #1
431 # CHECK: {{sub      x18, xzr|neg x18}}, x17, lsr #31
432 # CHECK: {{sub      x16, xzr|neg x16}}, x15, asr #0
433 # CHECK: {{sub      x14, xzr|neg x14}}, x13, asr #12
434 # CHECK: {{sub      x12, xzr|neg x12}}, x11, asr #31
435 0xfd 0x3 0x1e 0xcb
436 0xfe 0x3 0x1f 0xcb
437 0xff 0x3 0x0 0xcb
438 0xfc 0x3 0x1b 0xcb
439 0xfa 0x77 0x19 0xcb
440 0xf8 0x7f 0x17 0xcb
441 0xf6 0x3 0x55 0xcb
442 0xf4 0x7 0x53 0xcb
443 0xf2 0x7f 0x51 0xcb
444 0xf0 0x3 0x8f 0xcb
445 0xee 0x33 0x8d 0xcb
446 0xec 0x7f 0x8b 0xcb
447
448 # CHECK: {{subs     w29, wzr|negs w29}}, w30
449 # CHECK: {{subs     w30, wzr|negs w30}}, wzr
450 # CHECK: cmp      wzr, w0
451 # CHECK: {{subs     w28, wzr|negs w28}}, w27
452 # CHECK: {{subs     w26, wzr|negs w26}}, w25, lsl #29
453 # CHECK: {{subs     w24, wzr|negs w24}}, w23, lsl #31
454 # CHECK: {{subs     w22, wzr|negs w22}}, w21, lsr #0
455 # CHECK: {{subs     w20, wzr|negs w20}}, w19, lsr #1
456 # CHECK: {{subs     w18, wzr|negs w18}}, w17, lsr #31
457 # CHECK: {{subs     w16, wzr|negs w16}}, w15, asr #0
458 # CHECK: {{subs     w14, wzr|negs w14}}, w13, asr #12
459 # CHECK: {{subs     w12, wzr|negs w12}}, w11, asr #31
460 0xfd 0x3 0x1e 0x6b
461 0xfe 0x3 0x1f 0x6b
462 0xff 0x3 0x0 0x6b
463 0xfc 0x3 0x1b 0x6b
464 0xfa 0x77 0x19 0x6b
465 0xf8 0x7f 0x17 0x6b
466 0xf6 0x3 0x55 0x6b
467 0xf4 0x7 0x53 0x6b
468 0xf2 0x7f 0x51 0x6b
469 0xf0 0x3 0x8f 0x6b
470 0xee 0x33 0x8d 0x6b
471 0xec 0x7f 0x8b 0x6b
472
473 # CHECK: {{subs     x29, xzr|negs x29}}, x30
474 # CHECK: {{subs     x30, xzr|negs x30}}, xzr
475 # CHECK: cmp      xzr, x0
476 # CHECK: {{subs     x28, xzr|negs x28}}, x27
477 # CHECK: {{subs     x26, xzr|negs x26}}, x25, lsl #29
478 # CHECK: {{subs     x24, xzr|negs x24}}, x23, lsl #31
479 # CHECK: {{subs     x22, xzr|negs x22}}, x21, lsr #0
480 # CHECK: {{subs     x20, xzr|negs x20}}, x19, lsr #1
481 # CHECK: {{subs     x18, xzr|negs x18}}, x17, lsr #31
482 # CHECK: {{subs     x16, xzr|negs x16}}, x15, asr #0
483 # CHECK: {{subs     x14, xzr|negs x14}}, x13, asr #12
484 # CHECK: {{subs     x12, xzr|negs x12}}, x11, asr #31
485 0xfd 0x3 0x1e 0xeb
486 0xfe 0x3 0x1f 0xeb
487 0xff 0x3 0x0 0xeb
488 0xfc 0x3 0x1b 0xeb
489 0xfa 0x77 0x19 0xeb
490 0xf8 0x7f 0x17 0xeb
491 0xf6 0x3 0x55 0xeb
492 0xf4 0x7 0x53 0xeb
493 0xf2 0x7f 0x51 0xeb
494 0xf0 0x3 0x8f 0xeb
495 0xee 0x33 0x8d 0xeb
496 0xec 0x7f 0x8b 0xeb
497
498 #------------------------------------------------------------------------------
499 # Add-subtract (shifted register)
500 #------------------------------------------------------------------------------
501
502 # CHECK: adc      w29, w27, w25
503 # CHECK: adc      wzr, w3, w4
504 # CHECK: adc      w9, wzr, w10
505 # CHECK: adc      w20, w0, wzr
506 0x7d 0x3 0x19 0x1a
507 0x7f 0x0 0x4 0x1a
508 0xe9 0x3 0xa 0x1a
509 0x14 0x0 0x1f 0x1a
510
511 # CHECK: adc      x29, x27, x25
512 # CHECK: adc      xzr, x3, x4
513 # CHECK: adc      x9, xzr, x10
514 # CHECK: adc      x20, x0, xzr
515 0x7d 0x3 0x19 0x9a
516 0x7f 0x0 0x4 0x9a
517 0xe9 0x3 0xa 0x9a
518 0x14 0x0 0x1f 0x9a
519
520 # CHECK: adcs     w29, w27, w25
521 # CHECK: adcs     wzr, w3, w4
522 # CHECK: adcs     w9, wzr, w10
523 # CHECK: adcs     w20, w0, wzr
524 0x7d 0x3 0x19 0x3a
525 0x7f 0x0 0x4 0x3a
526 0xe9 0x3 0xa 0x3a
527 0x14 0x0 0x1f 0x3a
528
529 # CHECK: adcs     x29, x27, x25
530 # CHECK: adcs     xzr, x3, x4
531 # CHECK: adcs     x9, xzr, x10
532 # CHECK: adcs     x20, x0, xzr
533 0x7d 0x3 0x19 0xba
534 0x7f 0x0 0x4 0xba
535 0xe9 0x3 0xa 0xba
536 0x14 0x0 0x1f 0xba
537
538 # CHECK: sbc      w29, w27, w25
539 # CHECK: sbc      wzr, w3, w4
540 # CHECK: ngc      w9, w10
541 # CHECK: sbc      w20, w0, wzr
542 0x7d 0x3 0x19 0x5a
543 0x7f 0x0 0x4 0x5a
544 0xe9 0x3 0xa 0x5a
545 0x14 0x0 0x1f 0x5a
546
547 # CHECK: sbc      x29, x27, x25
548 # CHECK: sbc      xzr, x3, x4
549 # CHECK: ngc      x9, x10
550 # CHECK: sbc      x20, x0, xzr
551 0x7d 0x3 0x19 0xda
552 0x7f 0x0 0x4 0xda
553 0xe9 0x3 0xa 0xda
554 0x14 0x0 0x1f 0xda
555
556 # CHECK: sbcs     w29, w27, w25
557 # CHECK: sbcs     wzr, w3, w4
558 # CHECK: ngcs     w9, w10
559 # CHECK: sbcs     w20, w0, wzr
560 0x7d 0x3 0x19 0x7a
561 0x7f 0x0 0x4 0x7a
562 0xe9 0x3 0xa 0x7a
563 0x14 0x0 0x1f 0x7a
564
565 # CHECK: sbcs     x29, x27, x25
566 # CHECK: sbcs     xzr, x3, x4
567 # CHECK: ngcs     x9, x10
568 # CHECK: sbcs     x20, x0, xzr
569 0x7d 0x3 0x19 0xfa
570 0x7f 0x0 0x4 0xfa
571 0xe9 0x3 0xa 0xfa
572 0x14 0x0 0x1f 0xfa
573
574 # CHECK: ngc      w3, w12
575 # CHECK: ngc      wzr, w9
576 # CHECK: ngc      w23, wzr
577 0xe3 0x3 0xc 0x5a
578 0xff 0x3 0x9 0x5a
579 0xf7 0x3 0x1f 0x5a
580
581 # CHECK: ngc      x29, x30
582 # CHECK: ngc      xzr, x0
583 # CHECK: ngc      x0, xzr
584 0xfd 0x3 0x1e 0xda
585 0xff 0x3 0x0 0xda
586 0xe0 0x3 0x1f 0xda
587
588 # CHECK: ngcs     w3, w12
589 # CHECK: ngcs     wzr, w9
590 # CHECK: ngcs     w23, wzr
591 0xe3 0x3 0xc 0x7a
592 0xff 0x3 0x9 0x7a
593 0xf7 0x3 0x1f 0x7a
594
595 # CHECK: ngcs     x29, x30
596 # CHECK: ngcs     xzr, x0
597 # CHECK: ngcs     x0, xzr
598 0xfd 0x3 0x1e 0xfa
599 0xff 0x3 0x0 0xfa
600 0xe0 0x3 0x1f 0xfa
601
602 #------------------------------------------------------------------------------
603 # Compare and branch (immediate)
604 #------------------------------------------------------------------------------
605
606 # CHECK: sbfx     x1, x2, #3, #2
607 # CHECK: asr      x3, x4, #63
608 # CHECK: asr      wzr, wzr, #31
609 # CHECK: sbfx     w12, w9, #0, #1
610 0x41 0x10 0x43 0x93
611 0x83 0xfc 0x7f 0x93
612 0xff 0x7f 0x1f 0x13
613 0x2c 0x1 0x0 0x13
614
615 # CHECK: ubfiz    x4, x5, #52, #11
616 # CHECK: ubfx     xzr, x4, #0, #1
617 # CHECK: ubfiz    x4, xzr, #1, #6
618 # CHECK: lsr      x5, x6, #12
619 0xa4 0x28 0x4c 0xd3
620 0x9f 0x0 0x40 0xd3
621 0xe4 0x17 0x7f 0xd3
622 0xc5 0xfc 0x4c 0xd3
623
624 # CHECK: bfi      x4, x5, #52, #11
625 # CHECK: bfxil    xzr, x4, #0, #1
626 # CHECK: bfc      x4, #1, #6
627 # CHECK: bfxil    x5, x6, #12, #52
628 0xa4 0x28 0x4c 0xb3
629 0x9f 0x0 0x40 0xb3
630 0xe4 0x17 0x7f 0xb3
631 0xc5 0xfc 0x4c 0xb3
632
633 # CHECK: sxtb     w1, w2
634 # CHECK: sxtb     xzr, w3
635 # CHECK: sxth     w9, w10
636 # CHECK: sxth     x0, w1
637 # CHECK: sxtw     x3, w30
638 0x41 0x1c 0x0 0x13
639 0x7f 0x1c 0x40 0x93
640 0x49 0x3d 0x0 0x13
641 0x20 0x3c 0x40 0x93
642 0xc3 0x7f 0x40 0x93
643
644 # CHECK: uxtb     w1, w2
645 # CHECK: uxth     w9, w10
646 # CHECK: ubfx     x3, x30, #0, #32
647 0x41 0x1c 0x0 0x53
648 0x49 0x3d 0x0 0x53
649 0xc3 0x7f 0x40 0xd3
650
651 # CHECK: asr      w3, w2, #0
652 # CHECK: asr      w9, w10, #31
653 # CHECK: asr      x20, x21, #63
654 # CHECK: asr      w1, wzr, #3
655 0x43 0x7c 0x0 0x13
656 0x49 0x7d 0x1f 0x13
657 0xb4 0xfe 0x7f 0x93
658 0xe1 0x7f 0x3 0x13
659
660 # CHECK: lsr      w3, w2, #0
661 # CHECK: lsr      w9, w10, #31
662 # CHECK: lsr      x20, x21, #63
663 # CHECK: lsr      wzr, wzr, #3
664 0x43 0x7c 0x0 0x53
665 0x49 0x7d 0x1f 0x53
666 0xb4 0xfe 0x7f 0xd3
667 0xff 0x7f 0x3 0x53
668
669 # CHECK: lsr      w3, w2, #0
670 # CHECK: lsl      w9, w10, #31
671 # CHECK: lsl      x20, x21, #63
672 # CHECK: lsl      w1, wzr, #3
673 0x43 0x7c 0x0 0x53
674 0x49 0x1 0x1 0x53
675 0xb4 0x2 0x41 0xd3
676 0xe1 0x73 0x1d 0x53
677
678 # CHECK: sbfx     w9, w10, #0, #1
679 # CHECK: sbfiz    x2, x3, #63, #1
680 # CHECK: asr      x19, x20, #0
681 # CHECK: sbfiz    x9, x10, #5, #59
682 # CHECK: asr      w9, w10, #0
683 # CHECK: sbfiz    w11, w12, #31, #1
684 # CHECK: sbfiz    w13, w14, #29, #3
685 # CHECK: sbfiz    xzr, xzr, #10, #11
686 0x49 0x1 0x0 0x13
687 0x62 0x0 0x41 0x93
688 0x93 0xfe 0x40 0x93
689 0x49 0xe9 0x7b 0x93
690 0x49 0x7d 0x0 0x13
691 0x8b 0x1 0x1 0x13
692 0xcd 0x9 0x3 0x13
693 0xff 0x2b 0x76 0x93
694
695 # CHECK: sbfx     w9, w10, #0, #1
696 # CHECK: asr      x2, x3, #63
697 # CHECK: asr      x19, x20, #0
698 # CHECK: asr      x9, x10, #5
699 # CHECK: asr      w9, w10, #0
700 # CHECK: asr      w11, w12, #31
701 # CHECK: asr      w13, w14, #29
702 # CHECK: sbfx     xzr, xzr, #10, #11
703 0x49 0x1 0x0 0x13
704 0x62 0xfc 0x7f 0x93
705 0x93 0xfe 0x40 0x93
706 0x49 0xfd 0x45 0x93
707 0x49 0x7d 0x0 0x13
708 0x8b 0x7d 0x1f 0x13
709 0xcd 0x7d 0x1d 0x13
710 0xff 0x53 0x4a 0x93
711
712 # CHECK: bfxil    w9, w10, #0, #1
713 # CHECK: bfi      x2, x3, #63, #1
714 # CHECK: bfxil    x19, x20, #0, #64
715 # CHECK: bfi      x9, x10, #5, #59
716 # CHECK: bfxil    w9, w10, #0, #32
717 # CHECK: bfi      w11, w12, #31, #1
718 # CHECK: bfi      w13, w14, #29, #3
719 # CHECK: bfc      xzr, #10, #11
720 0x49 0x1 0x0 0x33
721 0x62 0x0 0x41 0xb3
722 0x93 0xfe 0x40 0xb3
723 0x49 0xe9 0x7b 0xb3
724 0x49 0x7d 0x0 0x33
725 0x8b 0x1 0x1 0x33
726 0xcd 0x9 0x3 0x33
727 0xff 0x2b 0x76 0xb3
728
729 # CHECK: bfxil    w9, w10, #0, #1
730 # CHECK: bfxil    x2, x3, #63, #1
731 # CHECK: bfxil    x19, x20, #0, #64
732 # CHECK: bfxil    x9, x10, #5, #59
733 # CHECK: bfxil    w9, w10, #0, #32
734 # CHECK: bfxil    w11, w12, #31, #1
735 # CHECK: bfxil    w13, w14, #29, #3
736 # CHECK: bfxil    xzr, xzr, #10, #11
737 0x49 0x1 0x0 0x33
738 0x62 0xfc 0x7f 0xb3
739 0x93 0xfe 0x40 0xb3
740 0x49 0xfd 0x45 0xb3
741 0x49 0x7d 0x0 0x33
742 0x8b 0x7d 0x1f 0x33
743 0xcd 0x7d 0x1d 0x33
744 0xff 0x53 0x4a 0xb3
745
746 # CHECK: ubfx     w9, w10, #0, #1
747 # CHECK: lsl      x2, x3, #63
748 # CHECK: lsr      x19, x20, #0
749 # CHECK: lsl      x9, x10, #5
750 # CHECK: lsr      w9, w10, #0
751 # CHECK: lsl      w11, w12, #31
752 # CHECK: lsl      w13, w14, #29
753 # CHECK: ubfiz    xzr, xzr, #10, #11
754 0x49 0x1 0x0 0x53
755 0x62 0x0 0x41 0xd3
756 0x93 0xfe 0x40 0xd3
757 0x49 0xe9 0x7b 0xd3
758 0x49 0x7d 0x0 0x53
759 0x8b 0x1 0x1 0x53
760 0xcd 0x9 0x3 0x53
761 0xff 0x2b 0x76 0xd3
762
763 # CHECK: ubfx     w9, w10, #0, #1
764 # CHECK: lsr      x2, x3, #63
765 # CHECK: lsr      x19, x20, #0
766 # CHECK: lsr      x9, x10, #5
767 # CHECK: lsr      w9, w10, #0
768 # CHECK: lsr      w11, w12, #31
769 # CHECK: lsr      w13, w14, #29
770 # CHECK: ubfx     xzr, xzr, #10, #11
771 0x49 0x1 0x0 0x53
772 0x62 0xfc 0x7f 0xd3
773 0x93 0xfe 0x40 0xd3
774 0x49 0xfd 0x45 0xd3
775 0x49 0x7d 0x0 0x53
776 0x8b 0x7d 0x1f 0x53
777 0xcd 0x7d 0x1d 0x53
778 0xff 0x53 0x4a 0xd3
779
780
781 #------------------------------------------------------------------------------
782 # Compare and branch (immediate)
783 #------------------------------------------------------------------------------
784
785 # CHECK: cbz      w5, #4
786 # CHECK: cbz      x5, #0
787 # CHECK: cbnz     x2, #-4
788 # CHECK: cbnz     x26, #1048572
789 0x25 0x0 0x0 0x34
790 0x05 0x0 0x0 0xb4
791 0xe2 0xff 0xff 0xb5
792 0xfa 0xff 0x7f 0xb5
793
794 # CHECK: cbz      wzr, #0
795 # CHECK: cbnz     xzr, #0
796 0x1f 0x0 0x0 0x34
797 0x1f 0x0 0x0 0xb5
798
799 #------------------------------------------------------------------------------
800 # Conditional branch (immediate)
801 #------------------------------------------------------------------------------
802
803 # CHECK: b.ne #4
804 # CHECK: b.ge #1048572
805 # CHECK: b.ge #-4
806 0x21 0x00 0x00 0x54
807 0xea 0xff 0x7f 0x54
808 0xea 0xff 0xff 0x54
809
810 #------------------------------------------------------------------------------
811 # Conditional compare (immediate)
812 #------------------------------------------------------------------------------
813
814 # CHECK: ccmp w1, #31, #0, eq
815 # CHECK: ccmp w3, #0, #15, hs
816 # CHECK: ccmp wzr, #15, #13, hs
817 0x20 0x08 0x5f 0x7a
818 0x6f 0x28 0x40 0x7a
819 0xed 0x2b 0x4f 0x7a
820
821 # CHECK: ccmp x9, #31, #0, le
822 # CHECK: ccmp x3, #0, #15, gt
823 # CHECK: ccmp xzr, #5, #7, ne
824 0x20 0xd9 0x5f 0xfa
825 0x6f 0xc8 0x40 0xfa
826 0xe7 0x1b 0x45 0xfa
827
828 # CHECK: ccmn w1, #31, #0, eq
829 # CHECK: ccmn w3, #0, #15, hs
830 # CHECK: ccmn wzr, #15, #13, hs
831 0x20 0x08 0x5f 0x3a
832 0x6f 0x28 0x40 0x3a
833 0xed 0x2b 0x4f 0x3a
834
835 # CHECK: ccmn x9, #31, #0, le
836 # CHECK: ccmn x3, #0, #15, gt
837 # CHECK: ccmn xzr, #5, #7, ne
838 0x20 0xd9 0x5f 0xba
839 0x6f 0xc8 0x40 0xba
840 0xe7 0x1b 0x45 0xba
841
842 #------------------------------------------------------------------------------
843 # Conditional compare (register)
844 #------------------------------------------------------------------------------
845
846 # CHECK: ccmp w1, wzr, #0, eq
847 # CHECK: ccmp w3, w0, #15, hs
848 # CHECK: ccmp wzr, w15, #13, hs
849 0x20 0x00 0x5f 0x7a
850 0x6f 0x20 0x40 0x7a
851 0xed 0x23 0x4f 0x7a
852
853 # CHECK: ccmp x9, xzr, #0, le
854 # CHECK: ccmp x3, x0, #15, gt
855 # CHECK: ccmp xzr, x5, #7, ne
856 0x20 0xd1 0x5f 0xfa
857 0x6f 0xc0 0x40 0xfa
858 0xe7 0x13 0x45 0xfa
859
860 # CHECK: ccmn w1, wzr, #0, eq
861 # CHECK: ccmn w3, w0, #15, hs
862 # CHECK: ccmn wzr, w15, #13, hs
863 0x20 0x00 0x5f 0x3a
864 0x6f 0x20 0x40 0x3a
865 0xed 0x23 0x4f 0x3a
866
867 # CHECK: ccmn x9, xzr, #0, le
868 # CHECK: ccmn x3, x0, #15, gt
869 # CHECK: ccmn xzr, x5, #7, ne
870 0x20 0xd1 0x5f 0xba
871 0x6f 0xc0 0x40 0xba
872 0xe7 0x13 0x45 0xba
873
874 #------------------------------------------------------------------------------
875 # Conditional branch (immediate)
876 #------------------------------------------------------------------------------
877 # CHECK: csel     w1, w0, w19, ne
878 # CHECK: csel     wzr, w5, w9, eq
879 # CHECK: csel     w9, wzr, w30, gt
880 # CHECK: csel     w1, w28, wzr, mi
881 # CHECK: csel     x19, x23, x29, lt
882 # CHECK: csel     xzr, x3, x4, ge
883 # CHECK: csel     x5, xzr, x6, hs
884 # CHECK: csel     x7, x8, xzr, lo
885 0x1 0x10 0x93 0x1a
886 0xbf 0x0 0x89 0x1a
887 0xe9 0xc3 0x9e 0x1a
888 0x81 0x43 0x9f 0x1a
889 0xf3 0xb2 0x9d 0x9a
890 0x7f 0xa0 0x84 0x9a
891 0xe5 0x23 0x86 0x9a
892 0x7 0x31 0x9f 0x9a
893
894 # CHECK: csinc    w1, w0, w19, ne
895 # CHECK: csinc    wzr, w5, w9, eq
896 # CHECK: csinc    w9, wzr, w30, gt
897 # CHECK: csinc    w1, w28, wzr, mi
898 # CHECK: csinc    x19, x23, x29, lt
899 # CHECK: csinc    xzr, x3, x4, ge
900 # CHECK: csinc    x5, xzr, x6, hs
901 # CHECK: csinc    x7, x8, xzr, lo
902 0x1 0x14 0x93 0x1a
903 0xbf 0x4 0x89 0x1a
904 0xe9 0xc7 0x9e 0x1a
905 0x81 0x47 0x9f 0x1a
906 0xf3 0xb6 0x9d 0x9a
907 0x7f 0xa4 0x84 0x9a
908 0xe5 0x27 0x86 0x9a
909 0x7 0x35 0x9f 0x9a
910
911 # CHECK: csinv    w1, w0, w19, ne
912 # CHECK: csinv    wzr, w5, w9, eq
913 # CHECK: csinv    w9, wzr, w30, gt
914 # CHECK: csinv    w1, w28, wzr, mi
915 # CHECK: csinv    x19, x23, x29, lt
916 # CHECK: csinv    xzr, x3, x4, ge
917 # CHECK: csinv    x5, xzr, x6, hs
918 # CHECK: csinv    x7, x8, xzr, lo
919 0x1 0x10 0x93 0x5a
920 0xbf 0x0 0x89 0x5a
921 0xe9 0xc3 0x9e 0x5a
922 0x81 0x43 0x9f 0x5a
923 0xf3 0xb2 0x9d 0xda
924 0x7f 0xa0 0x84 0xda
925 0xe5 0x23 0x86 0xda
926 0x7 0x31 0x9f 0xda
927
928 # CHECK: csneg    w1, w0, w19, ne
929 # CHECK: csneg    wzr, w5, w9, eq
930 # CHECK: csneg    w9, wzr, w30, gt
931 # CHECK: csneg    w1, w28, wzr, mi
932 # CHECK: csneg    x19, x23, x29, lt
933 # CHECK: csneg    xzr, x3, x4, ge
934 # CHECK: csneg    x5, xzr, x6, hs
935 # CHECK: csneg    x7, x8, xzr, lo
936 0x1 0x14 0x93 0x5a
937 0xbf 0x4 0x89 0x5a
938 0xe9 0xc7 0x9e 0x5a
939 0x81 0x47 0x9f 0x5a
940 0xf3 0xb6 0x9d 0xda
941 0x7f 0xa4 0x84 0xda
942 0xe5 0x27 0x86 0xda
943 0x7 0x35 0x9f 0xda
944
945 # CHECK: cset    w3, eq
946 # CHECK: cset    x9, pl
947 # CHECK: csetm    w20, ne
948 # CHECK: csetm    x30, ge
949 # "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
950 # CHECK: csinc    w2, wzr, wzr, al
951 # CHECK: csinv    x3, xzr, xzr, nv
952 0xe3 0x17 0x9f 0x1a
953 0xe9 0x47 0x9f 0x9a
954 0xf4 0x3 0x9f 0x5a
955 0xfe 0xb3 0x9f 0xda
956 0xe2,0xe7,0x9f,0x1a
957 0xe3,0xf3,0x9f,0xda
958
959 # CHECK: cinc    w3, w5, gt
960 # CHECK: cinc    wzr, w4, le
961 # CHECK: cset    w9, lt
962 # CHECK: cinc    x3, x5, gt
963 # CHECK: cinc    xzr, x4, le
964 # CHECK: cset    x9, lt
965 # "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
966 # CHECK: csinc   w5, w6, w6, nv
967 # CHECK: csinc   x1, x2, x2, al
968 0xa3 0xd4 0x85 0x1a
969 0x9f 0xc4 0x84 0x1a
970 0xe9 0xa7 0x9f 0x1a
971 0xa3 0xd4 0x85 0x9a
972 0x9f 0xc4 0x84 0x9a
973 0xe9 0xa7 0x9f 0x9a
974 0xc5,0xf4,0x86,0x1a
975 0x41,0xe4,0x82,0x9a
976
977 # CHECK: cinv    w3, w5, gt
978 # CHECK: cinv    wzr, w4, le
979 # CHECK: csetm   w9, lt
980 # CHECK: cinv    x3, x5, gt
981 # CHECK: cinv    xzr, x4, le
982 # CHECK: csetm   x9, lt
983 # "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
984 # CHECK: csinv   x1, x0, x0, al
985 # CHECK: csinv   w9, w8, w8, nv
986 0xa3 0xd0 0x85 0x5a
987 0x9f 0xc0 0x84 0x5a
988 0xe9 0xa3 0x9f 0x5a
989 0xa3 0xd0 0x85 0xda
990 0x9f 0xc0 0x84 0xda
991 0xe9 0xa3 0x9f 0xda
992 0x01 0xe0 0x80 0xda
993 0x09,0xf1,0x88,0x5a
994
995 # CHECK: cneg     w3, w5, gt
996 # CHECK: cneg     wzr, w4, le
997 # CHECK: cneg     w9, wzr, lt
998 # CHECK: cneg     x3, x5, gt
999 # CHECK: cneg     xzr, x4, le
1000 # CHECK: cneg     x9, xzr, lt
1001 # "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1002 # CHECK: csneg    x4, x8, x8, al
1003 # CHECK: csinv    w9, w8, w8, nv
1004 0xa3 0xd4 0x85 0x5a
1005 0x9f 0xc4 0x84 0x5a
1006 0xe9 0xa7 0x9f 0x5a
1007 0xa3 0xd4 0x85 0xda
1008 0x9f 0xc4 0x84 0xda
1009 0xe9 0xa7 0x9f 0xda
1010 0x04,0xe5,0x88,0xda
1011 0x09,0xf1,0x88,0x5a
1012
1013 #------------------------------------------------------------------------------
1014 # Data-processing (1 source)
1015 #------------------------------------------------------------------------------
1016
1017 # CHECK: rbit   w0, w7
1018 # CHECK: rbit   x18, x3
1019 # CHECK: rev16  w17, w1
1020 # CHECK: rev16  x5, x2
1021 # CHECK: rev    w18, w0
1022 # CHECK: rev32  x20, x1
1023 0xe0 0x00 0xc0 0x5a
1024 0x72 0x00 0xc0 0xda
1025 0x31 0x04 0xc0 0x5a
1026 0x45 0x04 0xc0 0xda
1027 0x12 0x08 0xc0 0x5a
1028 0x34 0x08 0xc0 0xda
1029
1030 # CHECK: rev    x22, x2
1031 # CHECK: clz    w24, w3
1032 # CHECK: clz    x26, x4
1033 # CHECK: cls    w3, w5
1034 # CHECK: cls    x20, x5
1035 0x56 0x0c 0xc0 0xda
1036 0x78 0x10 0xc0 0x5a
1037 0x9a 0x10 0xc0 0xda
1038 0xa3 0x14 0xc0 0x5a
1039 0xb4 0x14 0xc0 0xda
1040
1041 #------------------------------------------------------------------------------
1042 # Data-processing (2 source)
1043 #------------------------------------------------------------------------------
1044
1045 # CHECK: udiv   w0, w7, w10
1046 # CHECK: udiv   x9, x22, x4
1047 # CHECK: sdiv   w12, w21, w0
1048 # CHECK: sdiv   x13, x2, x1
1049 # CHECK: lsl    w11, w12, w13
1050 # CHECK: lsl    x14, x15, x16
1051 # CHECK: lsr    w17, w18, w19
1052 # CHECK: lsr    x20, x21, x22
1053 # CHECK: asr    w23, w24, w25
1054 # CHECK: asr    x26, x27, x28
1055 # CHECK: ror    w0, w1, w2
1056 # CHECK: ror    x3, x4, x5
1057 0xe0 0x08 0xca 0x1a
1058 0xc9 0x0a 0xc4 0x9a
1059 0xac 0x0e 0xc0 0x1a
1060 0x4d 0x0c 0xc1 0x9a
1061 0x8b 0x21 0xcd 0x1a
1062 0xee 0x21 0xd0 0x9a
1063 0x51 0x26 0xd3 0x1a
1064 0xb4 0x26 0xd6 0x9a
1065 0x17 0x2b 0xd9 0x1a
1066 0x7a 0x2b 0xdc 0x9a
1067 0x20 0x2c 0xc2 0x1a
1068 0x83 0x2c 0xc5 0x9a
1069
1070 # CHECK: lsl    w6, w7, w8
1071 # CHECK: lsl    x9, x10, x11
1072 # CHECK: lsr    w12, w13, w14
1073 # CHECK: lsr    x15, x16, x17
1074 # CHECK: asr    w18, w19, w20
1075 # CHECK: asr    x21, x22, x23
1076 # CHECK: ror    w24, w25, w26
1077 # CHECK: ror    x27, x28, x29
1078 0xe6 0x20 0xc8 0x1a
1079 0x49 0x21 0xcb 0x9a
1080 0xac 0x25 0xce 0x1a
1081 0x0f 0x26 0xd1 0x9a
1082 0x72 0x2a 0xd4 0x1a
1083 0xd5 0x2a 0xd7 0x9a
1084 0x38 0x2f 0xda 0x1a
1085 0x9b 0x2f 0xdd 0x9a
1086
1087 #------------------------------------------------------------------------------
1088 # Data-processing (3 sources)
1089 #------------------------------------------------------------------------------
1090
1091 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1092 # and smulh have them).
1093
1094 # CHECK: smulh    x30, x29, x28
1095 # CHECK: smulh    xzr, x27, x26
1096 # CHECK: umulh    x30, x29, x28
1097 # CHECK: umulh    x23, x30, xzr
1098 0xbe 0x73 0x5c 0x9b
1099 0x7f 0x2f 0x5a 0x9b
1100 0xbe 0x3f 0xdc 0x9b
1101 0xd7 0x77 0xdf 0x9b
1102
1103 # Now onto the boilerplate stuff
1104
1105 # CHECK: madd     w1, w3, w7, w4
1106 # CHECK: madd     wzr, w0, w9, w11
1107 # CHECK: madd     w13, wzr, w4, w4
1108 # CHECK: madd     w19, w30, wzr, w29
1109 # CHECK: mul      w4, w5, w6
1110 0x61 0x10 0x7 0x1b
1111 0x1f 0x2c 0x9 0x1b
1112 0xed 0x13 0x4 0x1b
1113 0xd3 0x77 0x1f 0x1b
1114 0xa4 0x7c 0x6 0x1b
1115
1116 # CHECK: madd     x1, x3, x7, x4
1117 # CHECK: madd     xzr, x0, x9, x11
1118 # CHECK: madd     x13, xzr, x4, x4
1119 # CHECK: madd     x19, x30, xzr, x29
1120 # CHECK: mul      x4, x5, x6
1121 0x61 0x10 0x7 0x9b
1122 0x1f 0x2c 0x9 0x9b
1123 0xed 0x13 0x4 0x9b
1124 0xd3 0x77 0x1f 0x9b
1125 0xa4 0x7c 0x6 0x9b
1126
1127 # CHECK: msub     w1, w3, w7, w4
1128 # CHECK: msub     wzr, w0, w9, w11
1129 # CHECK: msub     w13, wzr, w4, w4
1130 # CHECK: msub     w19, w30, wzr, w29
1131 # CHECK: mneg     w4, w5, w6
1132 0x61 0x90 0x7 0x1b
1133 0x1f 0xac 0x9 0x1b
1134 0xed 0x93 0x4 0x1b
1135 0xd3 0xf7 0x1f 0x1b
1136 0xa4 0xfc 0x6 0x1b
1137
1138 # CHECK: msub     x1, x3, x7, x4
1139 # CHECK: msub     xzr, x0, x9, x11
1140 # CHECK: msub     x13, xzr, x4, x4
1141 # CHECK: msub     x19, x30, xzr, x29
1142 # CHECK: mneg     x4, x5, x6
1143 0x61 0x90 0x7 0x9b
1144 0x1f 0xac 0x9 0x9b
1145 0xed 0x93 0x4 0x9b
1146 0xd3 0xf7 0x1f 0x9b
1147 0xa4 0xfc 0x6 0x9b
1148
1149 # CHECK: smaddl   x3, w5, w2, x9
1150 # CHECK: smaddl   xzr, w10, w11, x12
1151 # CHECK: smaddl   x13, wzr, w14, x15
1152 # CHECK: smaddl   x16, w17, wzr, x18
1153 # CHECK: smull    x19, w20, w21
1154 0xa3 0x24 0x22 0x9b
1155 0x5f 0x31 0x2b 0x9b
1156 0xed 0x3f 0x2e 0x9b
1157 0x30 0x4a 0x3f 0x9b
1158 0x93 0x7e 0x35 0x9b
1159
1160 # CHECK: smsubl   x3, w5, w2, x9
1161 # CHECK: smsubl   xzr, w10, w11, x12
1162 # CHECK: smsubl   x13, wzr, w14, x15
1163 # CHECK: smsubl   x16, w17, wzr, x18
1164 # CHECK: smnegl   x19, w20, w21
1165 0xa3 0xa4 0x22 0x9b
1166 0x5f 0xb1 0x2b 0x9b
1167 0xed 0xbf 0x2e 0x9b
1168 0x30 0xca 0x3f 0x9b
1169 0x93 0xfe 0x35 0x9b
1170
1171 # CHECK: umaddl   x3, w5, w2, x9
1172 # CHECK: umaddl   xzr, w10, w11, x12
1173 # CHECK: umaddl   x13, wzr, w14, x15
1174 # CHECK: umaddl   x16, w17, wzr, x18
1175 # CHECK: umull    x19, w20, w21
1176 0xa3 0x24 0xa2 0x9b
1177 0x5f 0x31 0xab 0x9b
1178 0xed 0x3f 0xae 0x9b
1179 0x30 0x4a 0xbf 0x9b
1180 0x93 0x7e 0xb5 0x9b
1181
1182 # CHECK: umsubl   x3, w5, w2, x9
1183 # CHECK: umsubl   xzr, w10, w11, x12
1184 # CHECK: umsubl   x13, wzr, w14, x15
1185 # CHECK: umsubl   x16, w17, wzr, x18
1186 # CHECK: umnegl   x19, w20, w21
1187 0xa3 0xa4 0xa2 0x9b
1188 0x5f 0xb1 0xab 0x9b
1189 0xed 0xbf 0xae 0x9b
1190 0x30 0xca 0xbf 0x9b
1191 0x93 0xfe 0xb5 0x9b
1192
1193 # CHECK: smulh    x30, x29, x28
1194 # CHECK: smulh    xzr, x27, x26
1195 # CHECK: smulh    x25, xzr, x24
1196 # CHECK: smulh    x23, x22, xzr
1197 0xbe 0x7f 0x5c 0x9b
1198 0x7f 0x7f 0x5a 0x9b
1199 0xf9 0x7f 0x58 0x9b
1200 0xd7 0x7e 0x5f 0x9b
1201
1202 # CHECK: umulh    x30, x29, x28
1203 # CHECK: umulh    xzr, x27, x26
1204 # CHECK: umulh    x25, xzr, x24
1205 # CHECK: umulh    x23, x22, xzr
1206 0xbe 0x7f 0xdc 0x9b
1207 0x7f 0x7f 0xda 0x9b
1208 0xf9 0x7f 0xd8 0x9b
1209 0xd7 0x7e 0xdf 0x9b
1210
1211 # CHECK: mul      w3, w4, w5
1212 # CHECK: mul      wzr, w6, w7
1213 # CHECK: mul      w8, wzr, w9
1214 # CHECK: mul      w10, w11, wzr
1215 # CHECK: mul      x12, x13, x14
1216 # CHECK: mul      xzr, x15, x16
1217 # CHECK: mul      x17, xzr, x18
1218 # CHECK: mul      x19, x20, xzr
1219 0x83 0x7c 0x5 0x1b
1220 0xdf 0x7c 0x7 0x1b
1221 0xe8 0x7f 0x9 0x1b
1222 0x6a 0x7d 0x1f 0x1b
1223 0xac 0x7d 0xe 0x9b
1224 0xff 0x7d 0x10 0x9b
1225 0xf1 0x7f 0x12 0x9b
1226 0x93 0x7e 0x1f 0x9b
1227
1228 # CHECK: mneg     w21, w22, w23
1229 # CHECK: mneg     wzr, w24, w25
1230 # CHECK: mneg     w26, wzr, w27
1231 # CHECK: mneg     w28, w29, wzr
1232 0xd5 0xfe 0x17 0x1b
1233 0x1f 0xff 0x19 0x1b
1234 0xfa 0xff 0x1b 0x1b
1235 0xbc 0xff 0x1f 0x1b
1236
1237 # CHECK: smull    x11, w13, w17
1238 # CHECK: umull    x11, w13, w17
1239 # CHECK: smnegl   x11, w13, w17
1240 # CHECK: umnegl   x11, w13, w17
1241 0xab 0x7d 0x31 0x9b
1242 0xab 0x7d 0xb1 0x9b
1243 0xab 0xfd 0x31 0x9b
1244 0xab 0xfd 0xb1 0x9b
1245
1246 #------------------------------------------------------------------------------
1247 # Exception generation
1248 #------------------------------------------------------------------------------
1249
1250 # CHECK: svc      #0
1251 # CHECK: svc      #{{65535|0xffff}}
1252 0x1 0x0 0x0 0xd4
1253 0xe1 0xff 0x1f 0xd4
1254
1255 # CHECK: hvc      #{{1|0x1}}
1256 # CHECK: smc      #{{12000|0x2ee0}}
1257 # CHECK: brk      #{{12|0xc}}
1258 # CHECK: hlt      #{{123|0x7b}}
1259 0x22 0x0 0x0 0xd4
1260 0x3 0xdc 0x5 0xd4
1261 0x80 0x1 0x20 0xd4
1262 0x60 0xf 0x40 0xd4
1263
1264 # CHECK: dcps1    #{{42|0x2a}}
1265 # CHECK: dcps2    #{{9|0x9}}
1266 # CHECK: dcps3    #{{1000|0x3e8}}
1267 0x41 0x5 0xa0 0xd4
1268 0x22 0x1 0xa0 0xd4
1269 0x3 0x7d 0xa0 0xd4
1270
1271 # CHECK: dcps1
1272 # CHECK: dcps2
1273 # CHECK: dcps3
1274 0x1 0x0 0xa0 0xd4
1275 0x2 0x0 0xa0 0xd4
1276 0x3 0x0 0xa0 0xd4
1277
1278 #------------------------------------------------------------------------------
1279 # Extract (immediate)
1280 #------------------------------------------------------------------------------
1281
1282 # CHECK: extr     w3, w5, w7, #0
1283 # CHECK: extr     w11, w13, w17, #31
1284 0xa3 0x0 0x87 0x13
1285 0xab 0x7d 0x91 0x13
1286
1287 # CHECK: extr     x3, x5, x7, #15
1288 # CHECK: extr     x11, x13, x17, #63
1289 0xa3 0x3c 0xc7 0x93
1290 0xab 0xfd 0xd1 0x93
1291
1292 # CHECK: ror     x19, x23, #24
1293 # CHECK: ror     x29, xzr, #63
1294 # CHECK: ror     w9, w13, #31
1295 0xf3 0x62 0xd7 0x93
1296 0xfd 0xff 0xdf 0x93
1297 0xa9 0x7d 0x8d 0x13
1298
1299 #------------------------------------------------------------------------------
1300 # Floating-point compare
1301 #------------------------------------------------------------------------------
1302
1303 # CHECK: fcmp    s3, s5
1304 # CHECK: fcmp    s31, #0.0
1305 # CHECK: fcmp    s31, #0.0
1306 0x60 0x20 0x25 0x1e
1307 0xe8 0x23 0x20 0x1e
1308 0xe8 0x23 0x3f 0x1e
1309
1310 # CHECK: fcmpe   s29, s30
1311 # CHECK: fcmpe   s15, #0.0
1312 # CHECK: fcmpe   s15, #0.0
1313 0xb0 0x23 0x3e 0x1e
1314 0xf8 0x21 0x20 0x1e
1315 0xf8 0x21 0x2f 0x1e
1316
1317 # CHECK: fcmp    d4, d12
1318 # CHECK: fcmp    d23, #0.0
1319 # CHECK: fcmp    d23, #0.0
1320 0x80 0x20 0x6c 0x1e
1321 0xe8 0x22 0x60 0x1e
1322 0xe8 0x22 0x77 0x1e
1323
1324 # CHECK: fcmpe   d26, d22
1325 # CHECK: fcmpe   d29, #0.0
1326 # CHECK: fcmpe   d29, #0.0
1327 0x50 0x23 0x76 0x1e
1328 0xb8 0x23 0x60 0x1e
1329 0xb8 0x23 0x6d 0x1e
1330
1331 #------------------------------------------------------------------------------
1332 # Floating-point conditional compare
1333 #------------------------------------------------------------------------------
1334
1335 # CHECK: fccmp s1, s31, #0, eq
1336 # CHECK: fccmp s3, s0, #15, hs
1337 # CHECK: fccmp s31, s15, #13, hs
1338 0x20 0x04 0x3f 0x1e
1339 0x6f 0x24 0x20 0x1e
1340 0xed 0x27 0x2f 0x1e
1341
1342 # CHECK: fccmp d9, d31, #0, le
1343 # CHECK: fccmp d3, d0, #15, gt
1344 # CHECK: fccmp d31, d5, #7, ne
1345 0x20 0xd5 0x7f 0x1e
1346 0x6f 0xc4 0x60 0x1e
1347 0xe7 0x17 0x65 0x1e
1348
1349 # CHECK: fccmpe s1, s31, #0, eq
1350 # CHECK: fccmpe s3, s0, #15, hs
1351 # CHECK: fccmpe s31, s15, #13, hs
1352 0x30 0x04 0x3f 0x1e
1353 0x7f 0x24 0x20 0x1e
1354 0xfd 0x27 0x2f 0x1e
1355
1356 # CHECK: fccmpe d9, d31, #0, le
1357 # CHECK: fccmpe d3, d0, #15, gt
1358 # CHECK: fccmpe d31, d5, #7, ne
1359 0x30 0xd5 0x7f 0x1e
1360 0x7f 0xc4 0x60 0x1e
1361 0xf7 0x17 0x65 0x1e
1362
1363 #-------------------------------------------------------------------------------
1364 # Floating-point conditional compare
1365 #-------------------------------------------------------------------------------
1366
1367 # CHECK: fcsel s3, s20, s9, pl
1368 # CHECK: fcsel d9, d10, d11, mi
1369 0x83 0x5e 0x29 0x1e
1370 0x49 0x4d 0x6b 0x1e
1371
1372 #------------------------------------------------------------------------------
1373 # Floating-point data-processing (1 source)
1374 #------------------------------------------------------------------------------
1375
1376 # CHECK: fmov     s0, s1
1377 # CHECK: fabs     s2, s3
1378 # CHECK: fneg     s4, s5
1379 # CHECK: fsqrt    s6, s7
1380 # CHECK: fcvt     d8, s9
1381 # CHECK: fcvt     h10, s11
1382 # CHECK: frintn   s12, s13
1383 # CHECK: frintp   s14, s15
1384 # CHECK: frintm   s16, s17
1385 # CHECK: frintz   s18, s19
1386 # CHECK: frinta   s20, s21
1387 # CHECK: frintx   s22, s23
1388 # CHECK: frinti   s24, s25
1389 0x20 0x40 0x20 0x1e
1390 0x62 0xc0 0x20 0x1e
1391 0xa4 0x40 0x21 0x1e
1392 0xe6 0xc0 0x21 0x1e
1393 0x28 0xc1 0x22 0x1e
1394 0x6a 0xc1 0x23 0x1e
1395 0xac 0x41 0x24 0x1e
1396 0xee 0xc1 0x24 0x1e
1397 0x30 0x42 0x25 0x1e
1398 0x72 0xc2 0x25 0x1e
1399 0xb4 0x42 0x26 0x1e
1400 0xf6 0x42 0x27 0x1e
1401 0x38 0xc3 0x27 0x1e
1402
1403 # CHECK: fmov     d0, d1
1404 # CHECK: fabs     d2, d3
1405 # CHECK: fneg     d4, d5
1406 # CHECK: fsqrt    d6, d7
1407 # CHECK: fcvt     s8, d9
1408 # CHECK: fcvt     h10, d11
1409 # CHECK: frintn   d12, d13
1410 # CHECK: frintp   d14, d15
1411 # CHECK: frintm   d16, d17
1412 # CHECK: frintz   d18, d19
1413 # CHECK: frinta   d20, d21
1414 # CHECK: frintx   d22, d23
1415 # CHECK: frinti   d24, d25
1416 0x20 0x40 0x60 0x1e
1417 0x62 0xc0 0x60 0x1e
1418 0xa4 0x40 0x61 0x1e
1419 0xe6 0xc0 0x61 0x1e
1420 0x28 0x41 0x62 0x1e
1421 0x6a 0xc1 0x63 0x1e
1422 0xac 0x41 0x64 0x1e
1423 0xee 0xc1 0x64 0x1e
1424 0x30 0x42 0x65 0x1e
1425 0x72 0xc2 0x65 0x1e
1426 0xb4 0x42 0x66 0x1e
1427 0xf6 0x42 0x67 0x1e
1428 0x38 0xc3 0x67 0x1e
1429
1430 # CHECK: fcvt     s26, h27
1431 # CHECK: fcvt     d28, h29
1432 0x7a 0x43 0xe2 0x1e
1433 0xbc 0xc3 0xe2 0x1e
1434
1435 #------------------------------------------------------------------------------
1436 # Floating-point data-processing (2 sources)
1437 #------------------------------------------------------------------------------
1438
1439 # CHECK: fmul     s20, s19, s17
1440 # CHECK: fdiv     s1, s2, s3
1441 # CHECK: fadd     s4, s5, s6
1442 # CHECK: fsub     s7, s8, s9
1443 # CHECK: fmax     s10, s11, s12
1444 # CHECK: fmin     s13, s14, s15
1445 # CHECK: fmaxnm   s16, s17, s18
1446 # CHECK: fminnm   s19, s20, s21
1447 # CHECK: fnmul    s22, s23, s2
1448 0x74 0xa 0x31 0x1e
1449 0x41 0x18 0x23 0x1e
1450 0xa4 0x28 0x26 0x1e
1451 0x7 0x39 0x29 0x1e
1452 0x6a 0x49 0x2c 0x1e
1453 0xcd 0x59 0x2f 0x1e
1454 0x30 0x6a 0x32 0x1e
1455 0x93 0x7a 0x35 0x1e
1456 0xf6 0x8a 0x38 0x1e
1457
1458
1459 # CHECK: fmul     d20, d19, d17
1460 # CHECK: fdiv     d1, d2, d3
1461 # CHECK: fadd     d4, d5, d6
1462 # CHECK: fsub     d7, d8, d9
1463 # CHECK: fmax     d10, d11, d12
1464 # CHECK: fmin     d13, d14, d15
1465 # CHECK: fmaxnm   d16, d17, d18
1466 # CHECK: fminnm   d19, d20, d21
1467 # CHECK: fnmul    d22, d23, d24
1468 0x74 0xa 0x71 0x1e
1469 0x41 0x18 0x63 0x1e
1470 0xa4 0x28 0x66 0x1e
1471 0x7 0x39 0x69 0x1e
1472 0x6a 0x49 0x6c 0x1e
1473 0xcd 0x59 0x6f 0x1e
1474 0x30 0x6a 0x72 0x1e
1475 0x93 0x7a 0x75 0x1e
1476 0xf6 0x8a 0x78 0x1e
1477
1478 #------------------------------------------------------------------------------
1479 # Floating-point data-processing (1 source)
1480 #------------------------------------------------------------------------------
1481
1482 # CHECK: fmadd s3, s5, s6, s31
1483 # CHECK: fmadd d3, d13, d0, d23
1484 # CHECK: fmsub s3, s5, s6, s31
1485 # CHECK: fmsub d3, d13, d0, d23
1486 # CHECK: fnmadd s3, s5, s6, s31
1487 # CHECK: fnmadd d3, d13, d0, d23
1488 # CHECK: fnmsub s3, s5, s6, s31
1489 # CHECK: fnmsub d3, d13, d0, d23
1490 0xa3 0x7c 0x06 0x1f
1491 0xa3 0x5d 0x40 0x1f
1492 0xa3 0xfc 0x06 0x1f
1493 0xa3 0xdd 0x40 0x1f
1494 0xa3 0x7c 0x26 0x1f
1495 0xa3 0x5d 0x60 0x1f
1496 0xa3 0xfc 0x26 0x1f
1497 0xa3 0xdd 0x60 0x1f
1498
1499 #------------------------------------------------------------------------------
1500 # Floating-point <-> fixed-point conversion
1501 #------------------------------------------------------------------------------
1502
1503 # FP16: fcvtzs  w3, h5, #1
1504 # FP16: fcvtzs  wzr, h20, #13
1505 # FP16: fcvtzs  w19, h0, #32
1506 0xa3 0xfc 0xd8 0x1e
1507 0x9f 0xce 0xd8 0x1e
1508 0x13 0x80 0xd8 0x1e
1509
1510 # FP16: fcvtzs  x3, h5, #1
1511 # FP16: fcvtzs  x12, h30, #45
1512 # FP16: fcvtzs  x19, h0, #64
1513 0xa3 0xfc 0xd8 0x9e
1514 0xcc 0x4f 0xd8 0x9e
1515 0x13 0x00 0xd8 0x9e
1516
1517 # CHECK: fcvtzs  w3, s5, #1
1518 # CHECK: fcvtzs  wzr, s20, #13
1519 # CHECK: fcvtzs  w19, s0, #32
1520 0xa3 0xfc 0x18 0x1e
1521 0x9f 0xce 0x18 0x1e
1522 0x13 0x80 0x18 0x1e
1523
1524 # CHECK: fcvtzs  x3, s5, #1
1525 # CHECK: fcvtzs  x12, s30, #45
1526 # CHECK: fcvtzs  x19, s0, #64
1527 0xa3 0xfc 0x18 0x9e
1528 0xcc 0x4f 0x18 0x9e
1529 0x13 0x00 0x18 0x9e
1530
1531 # CHECK: fcvtzs  w3, d5, #1
1532 # CHECK: fcvtzs  wzr, d20, #13
1533 # CHECK: fcvtzs  w19, d0, #32
1534 0xa3 0xfc 0x58 0x1e
1535 0x9f 0xce 0x58 0x1e
1536 0x13 0x80 0x58 0x1e
1537
1538 # CHECK: fcvtzs  x3, d5, #1
1539 # CHECK: fcvtzs  x12, d30, #45
1540 # CHECK: fcvtzs  x19, d0, #64
1541 0xa3 0xfc 0x58 0x9e
1542 0xcc 0x4f 0x58 0x9e
1543 0x13 0x00 0x58 0x9e
1544
1545 # FP16: fcvtzu  w3, h5, #1
1546 # FP16: fcvtzu  wzr, h20, #13
1547 # FP16: fcvtzu  w19, h0, #32
1548 0xa3 0xfc 0xd9 0x1e
1549 0x9f 0xce 0xd9 0x1e
1550 0x13 0x80 0xd9 0x1e
1551
1552 # FP16: fcvtzu  x3, h5, #1
1553 # FP16: fcvtzu  x12, h30, #45
1554 # FP16: fcvtzu  x19, h0, #64
1555 0xa3 0xfc 0xd9 0x9e
1556 0xcc 0x4f 0xd9 0x9e
1557 0x13 0x00 0xd9 0x9e
1558
1559 # CHECK: fcvtzu  w3, s5, #1
1560 # CHECK: fcvtzu  wzr, s20, #13
1561 # CHECK: fcvtzu  w19, s0, #32
1562 0xa3 0xfc 0x19 0x1e
1563 0x9f 0xce 0x19 0x1e
1564 0x13 0x80 0x19 0x1e
1565
1566 # CHECK: fcvtzu  x3, s5, #1
1567 # CHECK: fcvtzu  x12, s30, #45
1568 # CHECK: fcvtzu  x19, s0, #64
1569 0xa3 0xfc 0x19 0x9e
1570 0xcc 0x4f 0x19 0x9e
1571 0x13 0x00 0x19 0x9e
1572
1573 # CHECK: fcvtzu  w3, d5, #1
1574 # CHECK: fcvtzu  wzr, d20, #13
1575 # CHECK: fcvtzu  w19, d0, #32
1576 0xa3 0xfc 0x59 0x1e
1577 0x9f 0xce 0x59 0x1e
1578 0x13 0x80 0x59 0x1e
1579
1580 # CHECK: fcvtzu  x3, d5, #1
1581 # CHECK: fcvtzu  x12, d30, #45
1582 # CHECK: fcvtzu  x19, d0, #64
1583 0xa3 0xfc 0x59 0x9e
1584 0xcc 0x4f 0x59 0x9e
1585 0x13 0x00 0x59 0x9e
1586
1587 # FP16: scvtf   h23, w19, #1
1588 # FP16: scvtf   h31, wzr, #20
1589 # FP16: scvtf   h14, w0, #32
1590 0x77 0xfe 0xc2 0x1e
1591 0xff 0xb3 0xc2 0x1e
1592 0x0e 0x80 0xc2 0x1e
1593
1594 # FP16: scvtf   h23, x19, #1
1595 # FP16: scvtf   h31, xzr, #20
1596 # FP16: scvtf   h14, x0, #64
1597 0x77 0xfe 0xc2 0x9e
1598 0xff 0xb3 0xc2 0x9e
1599 0x0e 0x00 0xc2 0x9e
1600
1601 # CHECK: scvtf   s23, w19, #1
1602 # CHECK: scvtf   s31, wzr, #20
1603 # CHECK: scvtf   s14, w0, #32
1604 0x77 0xfe 0x02 0x1e
1605 0xff 0xb3 0x02 0x1e
1606 0x0e 0x80 0x02 0x1e
1607
1608 # CHECK: scvtf   s23, x19, #1
1609 # CHECK: scvtf   s31, xzr, #20
1610 # CHECK: scvtf   s14, x0, #64
1611 0x77 0xfe 0x02 0x9e
1612 0xff 0xb3 0x02 0x9e
1613 0x0e 0x00 0x02 0x9e
1614
1615 # CHECK: scvtf   d23, w19, #1
1616 # CHECK: scvtf   d31, wzr, #20
1617 # CHECK: scvtf   d14, w0, #32
1618 0x77 0xfe 0x42 0x1e
1619 0xff 0xb3 0x42 0x1e
1620 0x0e 0x80 0x42 0x1e
1621
1622 # CHECK: scvtf   d23, x19, #1
1623 # CHECK: scvtf   d31, xzr, #20
1624 # CHECK: scvtf   d14, x0, #64
1625 0x77 0xfe 0x42 0x9e
1626 0xff 0xb3 0x42 0x9e
1627 0x0e 0x00 0x42 0x9e
1628
1629 # FP16: ucvtf   h23, w19, #1
1630 # FP16: ucvtf   h31, wzr, #20
1631 # FP16: ucvtf   h14, w0, #32
1632 0x77 0xfe 0xc3 0x1e
1633 0xff 0xb3 0xc3 0x1e
1634 0x0e 0x80 0xc3 0x1e
1635
1636 # FP16: ucvtf   h23, x19, #1
1637 # FP16: ucvtf   h31, xzr, #20
1638 # FP16: ucvtf   h14, x0, #64
1639 0x77 0xfe 0xc3 0x9e
1640 0xff 0xb3 0xc3 0x9e
1641 0x0e 0x00 0xc3 0x9e
1642
1643 # CHECK: ucvtf   s23, w19, #1
1644 # CHECK: ucvtf   s31, wzr, #20
1645 # CHECK: ucvtf   s14, w0, #32
1646 0x77 0xfe 0x03 0x1e
1647 0xff 0xb3 0x03 0x1e
1648 0x0e 0x80 0x03 0x1e
1649
1650 # CHECK: ucvtf   s23, x19, #1
1651 # CHECK: ucvtf   s31, xzr, #20
1652 # CHECK: ucvtf   s14, x0, #64
1653 0x77 0xfe 0x03 0x9e
1654 0xff 0xb3 0x03 0x9e
1655 0x0e 0x00 0x03 0x9e
1656
1657 # CHECK: ucvtf   d23, w19, #1
1658 # CHECK: ucvtf   d31, wzr, #20
1659 # CHECK: ucvtf   d14, w0, #32
1660 0x77 0xfe 0x43 0x1e
1661 0xff 0xb3 0x43 0x1e
1662 0x0e 0x80 0x43 0x1e
1663
1664 # CHECK: ucvtf   d23, x19, #1
1665 # CHECK: ucvtf   d31, xzr, #20
1666 # CHECK: ucvtf   d14, x0, #64
1667 0x77 0xfe 0x43 0x9e
1668 0xff 0xb3 0x43 0x9e
1669 0x0e 0x00 0x43 0x9e
1670
1671 #------------------------------------------------------------------------------
1672 # Floating-point <-> integer conversion
1673 #------------------------------------------------------------------------------
1674
1675 # FP16: fcvtns   w3, h31
1676 # FP16: fcvtns   xzr, h12
1677 # FP16: fcvtnu   wzr, h12
1678 # FP16: fcvtnu   x0, h0
1679 0xe3 0x3 0xe0 0x1e
1680 0x9f 0x1 0xe0 0x9e
1681 0x9f 0x1 0xe1 0x1e
1682 0x0 0x0 0xe1 0x9e
1683
1684 # FP16: fcvtps   wzr, h9
1685 # FP16: fcvtps   x12, h20
1686 # FP16: fcvtpu   w30, h23
1687 # FP16: fcvtpu   x29, h3
1688 0x3f 0x1 0xe8 0x1e
1689 0x8c 0x2 0xe8 0x9e
1690 0xfe 0x2 0xe9 0x1e
1691 0x7d 0x0 0xe9 0x9e
1692
1693 # FP16: fcvtms   w2, h3
1694 # FP16: fcvtms   x4, h5
1695 # FP16: fcvtmu   w6, h7
1696 # FP16: fcvtmu   x8, h9
1697 0x62 0x0 0xf0 0x1e
1698 0xa4 0x0 0xf0 0x9e
1699 0xe6 0x0 0xf1 0x1e
1700 0x28 0x1 0xf1 0x9e
1701
1702 # FP16: fcvtzs   w10, h11
1703 # FP16: fcvtzs   x12, h13
1704 # FP16: fcvtzu   w14, h15
1705 # FP16: fcvtzu   x15, h16
1706 0x6a 0x1 0xf8 0x1e
1707 0xac 0x1 0xf8 0x9e
1708 0xee 0x1 0xf9 0x1e
1709 0xf 0x2 0xf9 0x9e
1710
1711 # FP16: scvtf    h17, w18
1712 # FP16: scvtf    h19, x20
1713 # FP16: ucvtf    h21, w22
1714 # FP16: scvtf    h23, x24
1715 0x51 0x2 0xe2 0x1e
1716 0x93 0x2 0xe2 0x9e
1717 0xd5 0x2 0xe3 0x1e
1718 0x17 0x3 0xe2 0x9e
1719
1720 # FP16: fcvtas   w25, h26
1721 # FP16: fcvtas   x27, h28
1722 # FP16: fcvtau   w29, h30
1723 # FP16: fcvtau   xzr, h0
1724 0x59 0x3 0xe4 0x1e
1725 0x9b 0x3 0xe4 0x9e
1726 0xdd 0x3 0xe5 0x1e
1727 0x1f 0x0 0xe5 0x9e
1728
1729 # CHECK: fcvtns   w3, s31
1730 # CHECK: fcvtns   xzr, s12
1731 # CHECK: fcvtnu   wzr, s12
1732 # CHECK: fcvtnu   x0, s0
1733 0xe3 0x3 0x20 0x1e
1734 0x9f 0x1 0x20 0x9e
1735 0x9f 0x1 0x21 0x1e
1736 0x0 0x0 0x21 0x9e
1737
1738 # CHECK: fcvtps   wzr, s9
1739 # CHECK: fcvtps   x12, s20
1740 # CHECK: fcvtpu   w30, s23
1741 # CHECK: fcvtpu   x29, s3
1742 0x3f 0x1 0x28 0x1e
1743 0x8c 0x2 0x28 0x9e
1744 0xfe 0x2 0x29 0x1e
1745 0x7d 0x0 0x29 0x9e
1746
1747 # CHECK: fcvtms   w2, s3
1748 # CHECK: fcvtms   x4, s5
1749 # CHECK: fcvtmu   w6, s7
1750 # CHECK: fcvtmu   x8, s9
1751 0x62 0x0 0x30 0x1e
1752 0xa4 0x0 0x30 0x9e
1753 0xe6 0x0 0x31 0x1e
1754 0x28 0x1 0x31 0x9e
1755
1756 # CHECK: fcvtzs   w10, s11
1757 # CHECK: fcvtzs   x12, s13
1758 # CHECK: fcvtzu   w14, s15
1759 # CHECK: fcvtzu   x15, s16
1760 0x6a 0x1 0x38 0x1e
1761 0xac 0x1 0x38 0x9e
1762 0xee 0x1 0x39 0x1e
1763 0xf 0x2 0x39 0x9e
1764
1765 # CHECK: scvtf    s17, w18
1766 # CHECK: scvtf    s19, x20
1767 # CHECK: ucvtf    s21, w22
1768 # CHECK: scvtf    s23, x24
1769 0x51 0x2 0x22 0x1e
1770 0x93 0x2 0x22 0x9e
1771 0xd5 0x2 0x23 0x1e
1772 0x17 0x3 0x22 0x9e
1773
1774 # CHECK: fcvtas   w25, s26
1775 # CHECK: fcvtas   x27, s28
1776 # CHECK: fcvtau   w29, s30
1777 # CHECK: fcvtau   xzr, s0
1778 0x59 0x3 0x24 0x1e
1779 0x9b 0x3 0x24 0x9e
1780 0xdd 0x3 0x25 0x1e
1781 0x1f 0x0 0x25 0x9e
1782
1783 # CHECK: fcvtns   w3, d31
1784 # CHECK: fcvtns   xzr, d12
1785 # CHECK: fcvtnu   wzr, d12
1786 # CHECK: fcvtnu   x0, d0
1787 0xe3 0x3 0x60 0x1e
1788 0x9f 0x1 0x60 0x9e
1789 0x9f 0x1 0x61 0x1e
1790 0x0 0x0 0x61 0x9e
1791
1792 # CHECK: fcvtps   wzr, d9
1793 # CHECK: fcvtps   x12, d20
1794 # CHECK: fcvtpu   w30, d23
1795 # CHECK: fcvtpu   x29, d3
1796 0x3f 0x1 0x68 0x1e
1797 0x8c 0x2 0x68 0x9e
1798 0xfe 0x2 0x69 0x1e
1799 0x7d 0x0 0x69 0x9e
1800
1801 # CHECK: fcvtms   w2, d3
1802 # CHECK: fcvtms   x4, d5
1803 # CHECK: fcvtmu   w6, d7
1804 # CHECK: fcvtmu   x8, d9
1805 0x62 0x0 0x70 0x1e
1806 0xa4 0x0 0x70 0x9e
1807 0xe6 0x0 0x71 0x1e
1808 0x28 0x1 0x71 0x9e
1809
1810 # CHECK: fcvtzs   w10, d11
1811 # CHECK: fcvtzs   x12, d13
1812 # CHECK: fcvtzu   w14, d15
1813 # CHECK: fcvtzu   x15, d16
1814 0x6a 0x1 0x78 0x1e
1815 0xac 0x1 0x78 0x9e
1816 0xee 0x1 0x79 0x1e
1817 0xf 0x2 0x79 0x9e
1818
1819 # CHECK: scvtf    d17, w18
1820 # CHECK: scvtf    d19, x20
1821 # CHECK: ucvtf    d21, w22
1822 # CHECK: ucvtf    d23, x24
1823 0x51 0x2 0x62 0x1e
1824 0x93 0x2 0x62 0x9e
1825 0xd5 0x2 0x63 0x1e
1826 0x17 0x3 0x63 0x9e
1827
1828 # CHECK: fcvtas   w25, d26
1829 # CHECK: fcvtas   x27, d28
1830 # CHECK: fcvtau   w29, d30
1831 # CHECK: fcvtau   xzr, d0
1832 0x59 0x3 0x64 0x1e
1833 0x9b 0x3 0x64 0x9e
1834 0xdd 0x3 0x65 0x1e
1835 0x1f 0x0 0x65 0x9e
1836
1837 # CHECK: fmov     w3, s9
1838 # CHECK: fmov     s9, w3
1839 0x23 0x1 0x26 0x1e
1840 0x69 0x0 0x27 0x1e
1841
1842 # CHECK: fmov     x20, d31
1843 # CHECK: fmov     d1, x15
1844 0xf4 0x3 0x66 0x9e
1845 0xe1 0x1 0x67 0x9e
1846
1847 # CHECK: fmov     x3, v12.d[1]
1848 # CHECK: fmov     v1.d[1], x19
1849 0x83 0x1 0xae 0x9e
1850 0x61 0x2 0xaf 0x9e
1851
1852 #------------------------------------------------------------------------------
1853 # Floating-point immediate
1854 #------------------------------------------------------------------------------
1855
1856 # CHECK: fmov     s2, #0.12500000
1857 # CHECK: fmov     s3, #1.00000000
1858 # CHECK: fmov     d30, #16.00000000
1859 0x2 0x10 0x28 0x1e
1860 0x3 0x10 0x2e 0x1e
1861 0x1e 0x10 0x66 0x1e
1862
1863 # CHECK: fmov     s4, #1.06250000
1864 # CHECK: fmov     d10, #1.93750000
1865 0x4 0x30 0x2e 0x1e
1866 0xa 0xf0 0x6f 0x1e
1867
1868 # CHECK: fmov     s12, #-1.00000000
1869 0xc 0x10 0x3e 0x1e
1870
1871 # CHECK: fmov     d16, #8.50000000
1872 0x10 0x30 0x64 0x1e
1873
1874 #------------------------------------------------------------------------------
1875 # Load-register (literal)
1876 #------------------------------------------------------------------------------
1877
1878 # CHECK: ldr       w3, #0
1879 # CHECK: ldr       x29, #4
1880 # CHECK: ldrsw     xzr, #-4
1881 0x03 0x00 0x00 0x18
1882 0x3d 0x00 0x00 0x58
1883 0xff 0xff 0xff 0x98
1884
1885 # CHECK: ldr       s0, #8
1886 # CHECK: ldr       d0, #1048572
1887 # CHECK: ldr       q0, #-1048576
1888 0x40 0x00 0x00 0x1c
1889 0xe0 0xff 0x7f 0x5c
1890 0x00 0x00 0x80 0x9c
1891
1892 # CHECK: prfm      pldl1strm, #0
1893 # CHECK: prfm      #22, #0
1894 0x01 0x00 0x00 0xd8
1895 0x16 0x00 0x00 0xd8
1896
1897 #------------------------------------------------------------------------------
1898 # Load/store exclusive
1899 #------------------------------------------------------------------------------
1900
1901 #CHECK: stxrb      w18, w8, [sp]
1902 #CHECK: stxrh      w24, w15, [x16]
1903 #CHECK: stxr       w5, w6, [x17]
1904 #CHECK: stxr       w1, x10, [x21]
1905 #CHECK: stxr       w1, x10, [x21]
1906 0xe8 0x7f 0x12 0x08
1907 0x0f 0x7e 0x18 0x48
1908 0x26 0x7e 0x05 0x88
1909 0xaa 0x7e 0x01 0xc8
1910 0xaa 0x7a 0x01 0xc8
1911
1912 #CHECK: ldxrb      w30, [x0]
1913 #CHECK: ldxrh      w17, [x4]
1914 #CHECK: ldxr       w22, [sp]
1915 #CHECK: ldxr       x11, [x29]
1916 #CHECK: ldxr       x11, [x29]
1917 #CHECK: ldxr       x11, [x29]
1918 0x1e 0x7c 0x5f 0x08
1919 0x91 0x7c 0x5f 0x48
1920 0xf6 0x7f 0x5f 0x88
1921 0xab 0x7f 0x5f 0xc8
1922 0xab 0x6f 0x5f 0xc8
1923 0xab 0x7f 0x5e 0xc8
1924
1925 #CHECK: stxp       w12, w11, w10, [sp]
1926 #CHECK: stxp       wzr, x27, x9, [x12]
1927 0xeb 0x2b 0x2c 0x88
1928 0x9b 0x25 0x3f 0xc8
1929
1930 #CHECK: ldxp       w0, wzr, [sp]
1931 #CHECK: ldxp       x17, x0, [x18]
1932 #CHECK: ldxp       x17, x0, [x18]
1933 0xe0 0x7f 0x7f 0x88
1934 0x51 0x02 0x7f 0xc8
1935 0x51 0x02 0x7e 0xc8
1936
1937 #CHECK: stlxrb     w12, w22, [x0]
1938 #CHECK: stlxrh     w10, w1, [x1]
1939 #CHECK: stlxr      w9, w2, [x2]
1940 #CHECK: stlxr      w9, x3, [sp]
1941
1942 0x16 0xfc 0x0c 0x08
1943 0x21 0xfc 0x0a 0x48
1944 0x42 0xfc 0x09 0x88
1945 0xe3 0xff 0x09 0xc8
1946
1947 #CHECK: ldaxrb     w8, [x4]
1948 #CHECK: ldaxrh     w7, [x5]
1949 #CHECK: ldaxr      w6, [sp]
1950 #CHECK: ldaxr      x5, [x6]
1951 #CHECK: ldaxr      x5, [x6]
1952 #CHECK: ldaxr      x5, [x6]
1953 0x88 0xfc 0x5f 0x08
1954 0xa7 0xfc 0x5f 0x48
1955 0xe6 0xff 0x5f 0x88
1956 0xc5 0xfc 0x5f 0xc8
1957 0xc5 0xec 0x5f 0xc8
1958 0xc5 0xfc 0x5e 0xc8
1959
1960 #CHECK: stlxp      w4, w5, w6, [sp]
1961 #CHECK: stlxp      wzr, x6, x7, [x1]
1962 0xe5 0x9b 0x24 0x88
1963 0x26 0x9c 0x3f 0xc8
1964
1965 #CHECK: ldaxp      w5, w18, [sp]
1966 #CHECK: ldaxp      x6, x19, [x22]
1967 #CHECK: ldaxp      x6, x19, [x22]
1968 0xe5 0xcb 0x7f 0x88
1969 0xc6 0xce 0x7f 0xc8
1970 0xc6 0xce 0x7e 0xc8
1971
1972 #CHECK: stlrb      w24, [sp]
1973 #CHECK: stlrh      w25, [x30]
1974 #CHECK: stlr       w26, [x29]
1975 #CHECK: stlr       x27, [x28]
1976 #CHECK: stlr       x27, [x28]
1977 #CHECK: stlr       x27, [x28]
1978 0xf8 0xff 0x9f 0x08
1979 0xd9 0xff 0x9f 0x48
1980 0xba 0xff 0x9f 0x88
1981 0x9b 0xff 0x9f 0xc8
1982 0x9b 0xef 0x9f 0xc8
1983 0x9b 0xff 0x9e 0xc8
1984
1985 #CHECK: ldarb      w23, [sp]
1986 #CHECK: ldarh      w22, [x30]
1987 #CHECK: ldar       wzr, [x29]
1988 #CHECK: ldar       x21, [x28]
1989 #CHECK: ldar       x21, [x28]
1990 #CHECK: ldar       x21, [x28]
1991 0xf7 0xff 0xdf 0x08
1992 0xd6 0xff 0xdf 0x48
1993 0xbf 0xff 0xdf 0x88
1994 0x95 0xff 0xdf 0xc8
1995 0x95 0xef 0xdf 0xc8
1996 0x95 0xff 0xde 0xc8
1997
1998 #------------------------------------------------------------------------------
1999 # Load/store (unscaled  immediate)
2000 #------------------------------------------------------------------------------
2001
2002 # CHECK: sturb    w9, [sp]
2003 # CHECK: sturh    wzr, [x12, #255]
2004 # CHECK: stur     w16, [x0, #-256]
2005 # CHECK: stur     x28, [x14, #1]
2006 0xe9 0x3 0x0 0x38
2007 0x9f 0xf1 0xf 0x78
2008 0x10 0x0 0x10 0xb8
2009 0xdc 0x11 0x0 0xf8
2010
2011 # CHECK: ldurb    w1, [x20, #255]
2012 # CHECK: ldurh    w20, [x1, #255]
2013 # CHECK: ldur     w12, [sp, #255]
2014 # CHECK: ldur     xzr, [x12, #255]
2015 0x81 0xf2 0x4f 0x38
2016 0x34 0xf0 0x4f 0x78
2017 0xec 0xf3 0x4f 0xb8
2018 0x9f 0xf1 0x4f 0xf8
2019
2020 # CHECK: ldursb   x9, [x7, #-256]
2021 # CHECK: ldursh   x17, [x19, #-256]
2022 # CHECK: ldursw   x20, [x15, #-256]
2023 # CHECK: prfum    pldl2keep, [sp, #-256]
2024 # CHECK: ldursb   w19, [x1, #-256]
2025 # CHECK: ldursh   w15, [x21, #-256]
2026 0xe9 0x0 0x90 0x38
2027 0x71 0x2 0x90 0x78
2028 0xf4 0x1 0x90 0xb8
2029 0xe2 0x3 0x90 0xf8
2030 0x33 0x0 0xd0 0x38
2031 0xaf 0x2 0xd0 0x78
2032
2033 # CHECK: stur     b0, [sp, #1]
2034 # CHECK: stur     h12, [x12, #-1]
2035 # CHECK: stur     s15, [x0, #255]
2036 # CHECK: stur     d31, [x5, #25]
2037 # CHECK: stur     q9, [x5]
2038 0xe0 0x13 0x0 0x3c
2039 0x8c 0xf1 0x1f 0x7c
2040 0xf 0xf0 0xf 0xbc
2041 0xbf 0x90 0x1 0xfc
2042 0xa9 0x0 0x80 0x3c
2043
2044 # CHECK: ldur     b3, [sp]
2045 # CHECK: ldur     h5, [x4, #-256]
2046 # CHECK: ldur     s7, [x12, #-1]
2047 # CHECK: ldur     d11, [x19, #4]
2048 # CHECK: ldur     q13, [x1, #2]
2049 0xe3 0x3 0x40 0x3c
2050 0x85 0x0 0x50 0x7c
2051 0x87 0xf1 0x5f 0xbc
2052 0x6b 0x42 0x40 0xfc
2053 0x2d 0x20 0xc0 0x3c
2054
2055 #------------------------------------------------------------------------------
2056 # Load/store (immediate post-indexed)
2057 #------------------------------------------------------------------------------
2058
2059 # E.g. "str xzr, [sp], #4" is *not* unpredictable
2060 # CHECK-NOT: warning: potentially undefined instruction encoding
2061 0xff 0x47 0x40 0xb8
2062
2063 # CHECK: strb     w9, [x2], #255
2064 # CHECK: strb     w10, [x3], #1
2065 # CHECK: strb     w10, [x3], #-256
2066 # CHECK: strh     w9, [x2], #255
2067 # CHECK: strh     w9, [x2], #1
2068 # CHECK: strh     w10, [x3], #-256
2069 0x49 0xf4 0xf 0x38
2070 0x6a 0x14 0x0 0x38
2071 0x6a 0x4 0x10 0x38
2072 0x49 0xf4 0xf 0x78
2073 0x49 0x14 0x0 0x78
2074 0x6a 0x4 0x10 0x78
2075
2076 # CHECK: str      w19, [sp], #255
2077 # CHECK: str      w20, [x30], #1
2078 # CHECK: str      w21, [x12], #-256
2079 # CHECK: str      xzr, [x9], #255
2080 # CHECK: str      x2, [x3], #1
2081 # CHECK: str      x19, [x12], #-256
2082 0xf3 0xf7 0xf 0xb8
2083 0xd4 0x17 0x0 0xb8
2084 0x95 0x5 0x10 0xb8
2085 0x3f 0xf5 0xf 0xf8
2086 0x62 0x14 0x0 0xf8
2087 0x93 0x5 0x10 0xf8
2088
2089 # CHECK: ldrb     w9, [x2], #255
2090 # CHECK: ldrb     w10, [x3], #1
2091 # CHECK: ldrb     w10, [x3], #-256
2092 # CHECK: ldrh     w9, [x2], #255
2093 # CHECK: ldrh     w9, [x2], #1
2094 # CHECK: ldrh     w10, [x3], #-256
2095 0x49 0xf4 0x4f 0x38
2096 0x6a 0x14 0x40 0x38
2097 0x6a 0x4 0x50 0x38
2098 0x49 0xf4 0x4f 0x78
2099 0x49 0x14 0x40 0x78
2100 0x6a 0x4 0x50 0x78
2101
2102 # CHECK: ldr      w19, [sp], #255
2103 # CHECK: ldr      w20, [x30], #1
2104 # CHECK: ldr      w21, [x12], #-256
2105 # CHECK: ldr      xzr, [x9], #255
2106 # CHECK: ldr      x2, [x3], #1
2107 # CHECK: ldr      x19, [x12], #-256
2108 0xf3 0xf7 0x4f 0xb8
2109 0xd4 0x17 0x40 0xb8
2110 0x95 0x5 0x50 0xb8
2111 0x3f 0xf5 0x4f 0xf8
2112 0x62 0x14 0x40 0xf8
2113 0x93 0x5 0x50 0xf8
2114
2115 # CHECK: ldrsb    xzr, [x9], #255
2116 # CHECK: ldrsb    x2, [x3], #1
2117 # CHECK: ldrsb    x19, [x12], #-256
2118 # CHECK: ldrsh    xzr, [x9], #255
2119 # CHECK: ldrsh    x2, [x3], #1
2120 # CHECK: ldrsh    x19, [x12], #-256
2121 # CHECK: ldrsw    xzr, [x9], #255
2122 # CHECK: ldrsw    x2, [x3], #1
2123 # CHECK: ldrsw    x19, [x12], #-256
2124 0x3f 0xf5 0x8f 0x38
2125 0x62 0x14 0x80 0x38
2126 0x93 0x5 0x90 0x38
2127 0x3f 0xf5 0x8f 0x78
2128 0x62 0x14 0x80 0x78
2129 0x93 0x5 0x90 0x78
2130 0x3f 0xf5 0x8f 0xb8
2131 0x62 0x14 0x80 0xb8
2132 0x93 0x5 0x90 0xb8
2133
2134 # CHECK: ldrsb    wzr, [x9], #255
2135 # CHECK: ldrsb    w2, [x3], #1
2136 # CHECK: ldrsb    w19, [x12], #-256
2137 # CHECK: ldrsh    wzr, [x9], #255
2138 # CHECK: ldrsh    w2, [x3], #1
2139 # CHECK: ldrsh    w19, [x12], #-256
2140 0x3f 0xf5 0xcf 0x38
2141 0x62 0x14 0xc0 0x38
2142 0x93 0x5 0xd0 0x38
2143 0x3f 0xf5 0xcf 0x78
2144 0x62 0x14 0xc0 0x78
2145 0x93 0x5 0xd0 0x78
2146
2147 # CHECK: str      b0, [x0], #255
2148 # CHECK: str      b3, [x3], #1
2149 # CHECK: str      b5, [sp], #-256
2150 # CHECK: str      h10, [x10], #255
2151 # CHECK: str      h13, [x23], #1
2152 # CHECK: str      h15, [sp], #-256
2153 # CHECK: str      s20, [x20], #255
2154 # CHECK: str      s23, [x23], #1
2155 # CHECK: str      s25, [x0], #-256
2156 # CHECK: str      d20, [x20], #255
2157 # CHECK: str      d23, [x23], #1
2158 # CHECK: str      d25, [x0], #-256
2159 0x0 0xf4 0xf 0x3c
2160 0x63 0x14 0x0 0x3c
2161 0xe5 0x7 0x10 0x3c
2162 0x4a 0xf5 0xf 0x7c
2163 0xed 0x16 0x0 0x7c
2164 0xef 0x7 0x10 0x7c
2165 0x94 0xf6 0xf 0xbc
2166 0xf7 0x16 0x0 0xbc
2167 0x19 0x4 0x10 0xbc
2168 0x94 0xf6 0xf 0xfc
2169 0xf7 0x16 0x0 0xfc
2170 0x19 0x4 0x10 0xfc
2171
2172 # CHECK: ldr      b0, [x0], #255
2173 # CHECK: ldr      b3, [x3], #1
2174 # CHECK: ldr      b5, [sp], #-256
2175 # CHECK: ldr      h10, [x10], #255
2176 # CHECK: ldr      h13, [x23], #1
2177 # CHECK: ldr      h15, [sp], #-256
2178 # CHECK: ldr      s20, [x20], #255
2179 # CHECK: ldr      s23, [x23], #1
2180 # CHECK: ldr      s25, [x0], #-256
2181 # CHECK: ldr      d20, [x20], #255
2182 # CHECK: ldr      d23, [x23], #1
2183 # CHECK: ldr      d25, [x0], #-256
2184 0x0 0xf4 0x4f 0x3c
2185 0x63 0x14 0x40 0x3c
2186 0xe5 0x7 0x50 0x3c
2187 0x4a 0xf5 0x4f 0x7c
2188 0xed 0x16 0x40 0x7c
2189 0xef 0x7 0x50 0x7c
2190 0x94 0xf6 0x4f 0xbc
2191 0xf7 0x16 0x40 0xbc
2192 0x19 0x4 0x50 0xbc
2193 0x94 0xf6 0x4f 0xfc
2194 0xf7 0x16 0x40 0xfc
2195 0x19 0x4 0x50 0xfc
2196 0x34 0xf4 0xcf 0x3c
2197
2198 # CHECK: ldr      q20, [x1], #255
2199 # CHECK: ldr      q23, [x9], #1
2200 # CHECK: ldr      q25, [x20], #-256
2201 # CHECK: str      q10, [x1], #255
2202 # CHECK: str      q22, [sp], #1
2203 # CHECK: str      q21, [x20], #-256
2204 0x37 0x15 0xc0 0x3c
2205 0x99 0x6 0xd0 0x3c
2206 0x2a 0xf4 0x8f 0x3c
2207 0xf6 0x17 0x80 0x3c
2208 0x95 0x6 0x90 0x3c
2209
2210 #-------------------------------------------------------------------------------
2211 # Load-store register (immediate pre-indexed)
2212 #-------------------------------------------------------------------------------
2213
2214 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2215 # CHECK-NOT: warning: potentially undefined instruction encoding
2216 0xff 0xf 0x40 0xf8
2217
2218 # CHECK: ldr      x3, [x4, #0]!
2219 0x83 0xc 0x40 0xf8
2220
2221 # CHECK: strb     w9, [x2, #255]!
2222 # CHECK: strb     w10, [x3, #1]!
2223 # CHECK: strb     w10, [x3, #-256]!
2224 # CHECK: strh     w9, [x2, #255]!
2225 # CHECK: strh     w9, [x2, #1]!
2226 # CHECK: strh     w10, [x3, #-256]!
2227 0x49 0xfc 0xf 0x38
2228 0x6a 0x1c 0x0 0x38
2229 0x6a 0xc 0x10 0x38
2230 0x49 0xfc 0xf 0x78
2231 0x49 0x1c 0x0 0x78
2232 0x6a 0xc 0x10 0x78
2233
2234 # CHECK: str      w19, [sp, #255]!
2235 # CHECK: str      w20, [x30, #1]!
2236 # CHECK: str      w21, [x12, #-256]!
2237 # CHECK: str      xzr, [x9, #255]!
2238 # CHECK: str      x2, [x3, #1]!
2239 # CHECK: str      x19, [x12, #-256]!
2240 0xf3 0xff 0xf 0xb8
2241 0xd4 0x1f 0x0 0xb8
2242 0x95 0xd 0x10 0xb8
2243 0x3f 0xfd 0xf 0xf8
2244 0x62 0x1c 0x0 0xf8
2245 0x93 0xd 0x10 0xf8
2246
2247 # CHECK: ldrb     w9, [x2, #255]!
2248 # CHECK: ldrb     w10, [x3, #1]!
2249 # CHECK: ldrb     w10, [x3, #-256]!
2250 # CHECK: ldrh     w9, [x2, #255]!
2251 # CHECK: ldrh     w9, [x2, #1]!
2252 # CHECK: ldrh     w10, [x3, #-256]!
2253 0x49 0xfc 0x4f 0x38
2254 0x6a 0x1c 0x40 0x38
2255 0x6a 0xc 0x50 0x38
2256 0x49 0xfc 0x4f 0x78
2257 0x49 0x1c 0x40 0x78
2258 0x6a 0xc 0x50 0x78
2259
2260 # CHECK: ldr      w19, [sp, #255]!
2261 # CHECK: ldr      w20, [x30, #1]!
2262 # CHECK: ldr      w21, [x12, #-256]!
2263 # CHECK: ldr      xzr, [x9, #255]!
2264 # CHECK: ldr      x2, [x3, #1]!
2265 # CHECK: ldr      x19, [x12, #-256]!
2266 0xf3 0xff 0x4f 0xb8
2267 0xd4 0x1f 0x40 0xb8
2268 0x95 0xd 0x50 0xb8
2269 0x3f 0xfd 0x4f 0xf8
2270 0x62 0x1c 0x40 0xf8
2271 0x93 0xd 0x50 0xf8
2272
2273 # CHECK: ldrsb    xzr, [x9, #255]!
2274 # CHECK: ldrsb    x2, [x3, #1]!
2275 # CHECK: ldrsb    x19, [x12, #-256]!
2276 # CHECK: ldrsh    xzr, [x9, #255]!
2277 # CHECK: ldrsh    x2, [x3, #1]!
2278 # CHECK: ldrsh    x19, [x12, #-256]!
2279 # CHECK: ldrsw    xzr, [x9, #255]!
2280 # CHECK: ldrsw    x2, [x3, #1]!
2281 # CHECK: ldrsw    x19, [x12, #-256]!
2282 0x3f 0xfd 0x8f 0x38
2283 0x62 0x1c 0x80 0x38
2284 0x93 0xd 0x90 0x38
2285 0x3f 0xfd 0x8f 0x78
2286 0x62 0x1c 0x80 0x78
2287 0x93 0xd 0x90 0x78
2288 0x3f 0xfd 0x8f 0xb8
2289 0x62 0x1c 0x80 0xb8
2290 0x93 0xd 0x90 0xb8
2291
2292 # CHECK: ldrsb    wzr, [x9, #255]!
2293 # CHECK: ldrsb    w2, [x3, #1]!
2294 # CHECK: ldrsb    w19, [x12, #-256]!
2295 # CHECK: ldrsh    wzr, [x9, #255]!
2296 # CHECK: ldrsh    w2, [x3, #1]!
2297 # CHECK: ldrsh    w19, [x12, #-256]!
2298 0x3f 0xfd 0xcf 0x38
2299 0x62 0x1c 0xc0 0x38
2300 0x93 0xd 0xd0 0x38
2301 0x3f 0xfd 0xcf 0x78
2302 0x62 0x1c 0xc0 0x78
2303 0x93 0xd 0xd0 0x78
2304
2305 # CHECK: str      b0, [x0, #255]!
2306 # CHECK: str      b3, [x3, #1]!
2307 # CHECK: str      b5, [sp, #-256]!
2308 # CHECK: str      h10, [x10, #255]!
2309 # CHECK: str      h13, [x23, #1]!
2310 # CHECK: str      h15, [sp, #-256]!
2311 # CHECK: str      s20, [x20, #255]!
2312 # CHECK: str      s23, [x23, #1]!
2313 # CHECK: str      s25, [x0, #-256]!
2314 # CHECK: str      d20, [x20, #255]!
2315 # CHECK: str      d23, [x23, #1]!
2316 # CHECK: str      d25, [x0, #-256]!
2317 0x0 0xfc 0xf 0x3c
2318 0x63 0x1c 0x0 0x3c
2319 0xe5 0xf 0x10 0x3c
2320 0x4a 0xfd 0xf 0x7c
2321 0xed 0x1e 0x0 0x7c
2322 0xef 0xf 0x10 0x7c
2323 0x94 0xfe 0xf 0xbc
2324 0xf7 0x1e 0x0 0xbc
2325 0x19 0xc 0x10 0xbc
2326 0x94 0xfe 0xf 0xfc
2327 0xf7 0x1e 0x0 0xfc
2328 0x19 0xc 0x10 0xfc
2329
2330 # CHECK: ldr      b0, [x0, #255]!
2331 # CHECK: ldr      b3, [x3, #1]!
2332 # CHECK: ldr      b5, [sp, #-256]!
2333 # CHECK: ldr      h10, [x10, #255]!
2334 # CHECK: ldr      h13, [x23, #1]!
2335 # CHECK: ldr      h15, [sp, #-256]!
2336 # CHECK: ldr      s20, [x20, #255]!
2337 # CHECK: ldr      s23, [x23, #1]!
2338 # CHECK: ldr      s25, [x0, #-256]!
2339 # CHECK: ldr      d20, [x20, #255]!
2340 # CHECK: ldr      d23, [x23, #1]!
2341 # CHECK: ldr      d25, [x0, #-256]!
2342 0x0 0xfc 0x4f 0x3c
2343 0x63 0x1c 0x40 0x3c
2344 0xe5 0xf 0x50 0x3c
2345 0x4a 0xfd 0x4f 0x7c
2346 0xed 0x1e 0x40 0x7c
2347 0xef 0xf 0x50 0x7c
2348 0x94 0xfe 0x4f 0xbc
2349 0xf7 0x1e 0x40 0xbc
2350 0x19 0xc 0x50 0xbc
2351 0x94 0xfe 0x4f 0xfc
2352 0xf7 0x1e 0x40 0xfc
2353 0x19 0xc 0x50 0xfc
2354
2355 # CHECK: ldr      q20, [x1, #255]!
2356 # CHECK: ldr      q23, [x9, #1]!
2357 # CHECK: ldr      q25, [x20, #-256]!
2358 # CHECK: str      q10, [x1, #255]!
2359 # CHECK: str      q22, [sp, #1]!
2360 # CHECK: str      q21, [x20, #-256]!
2361 0x34 0xfc 0xcf 0x3c
2362 0x37 0x1d 0xc0 0x3c
2363 0x99 0xe 0xd0 0x3c
2364 0x2a 0xfc 0x8f 0x3c
2365 0xf6 0x1f 0x80 0x3c
2366 0x95 0xe 0x90 0x3c
2367
2368 #------------------------------------------------------------------------------
2369 # Load/store (unprivileged)
2370 #------------------------------------------------------------------------------
2371
2372 # CHECK: sttrb    w9, [sp]
2373 # CHECK: sttrh    wzr, [x12, #255]
2374 # CHECK: sttr     w16, [x0, #-256]
2375 # CHECK: sttr     x28, [x14, #1]
2376 0xe9 0x0b 0x0 0x38
2377 0x9f 0xf9 0xf 0x78
2378 0x10 0x08 0x10 0xb8
2379 0xdc 0x19 0x0 0xf8
2380
2381 # CHECK: ldtrb    w1, [x20, #255]
2382 # CHECK: ldtrh    w20, [x1, #255]
2383 # CHECK: ldtr     w12, [sp, #255]
2384 # CHECK: ldtr     xzr, [x12, #255]
2385 0x81 0xfa 0x4f 0x38
2386 0x34 0xf8 0x4f 0x78
2387 0xec 0xfb 0x4f 0xb8
2388 0x9f 0xf9 0x4f 0xf8
2389
2390 # CHECK: ldtrsb   x9, [x7, #-256]
2391 # CHECK: ldtrsh   x17, [x19, #-256]
2392 # CHECK: ldtrsw   x20, [x15, #-256]
2393 # CHECK: ldtrsb   w19, [x1, #-256]
2394 # CHECK: ldtrsh   w15, [x21, #-256]
2395 0xe9 0x08 0x90 0x38
2396 0x71 0x0a 0x90 0x78
2397 0xf4 0x09 0x90 0xb8
2398 0x33 0x08 0xd0 0x38
2399 0xaf 0x0a 0xd0 0x78
2400
2401 #------------------------------------------------------------------------------
2402 # Load/store (unsigned  immediate)
2403 #------------------------------------------------------------------------------
2404
2405 # CHECK: ldr      x0, [x0]
2406 # CHECK: ldr      x4, [x29]
2407 # CHECK: ldr      x30, [x12, #32760]
2408 # CHECK: ldr      x20, [sp, #8]
2409 0x0 0x0 0x40 0xf9
2410 0xa4 0x3 0x40 0xf9
2411 0x9e 0xfd 0x7f 0xf9
2412 0xf4 0x7 0x40 0xf9
2413
2414 # CHECK: ldr      xzr, [sp]
2415 0xff 0x3 0x40 0xf9
2416
2417 # CHECK: ldr      w2, [sp]
2418 # CHECK: ldr      w17, [sp, #16380]
2419 # CHECK: ldr      w13, [x2, #4]
2420 0xe2 0x3 0x40 0xb9
2421 0xf1 0xff 0x7f 0xb9
2422 0x4d 0x4 0x40 0xb9
2423
2424 # CHECK: ldrsw    x2, [x5, #4]
2425 # CHECK: ldrsw    x23, [sp, #16380]
2426 0xa2 0x4 0x80 0xb9
2427 0xf7 0xff 0xbf 0xb9
2428
2429 # CHECK: ldrh     w2, [x4]
2430 # CHECK: ldrsh    w23, [x6, #8190]
2431 # CHECK: ldrsh    wzr, [sp, #2]
2432 # CHECK: ldrsh    x29, [x2, #2]
2433 0x82 0x0 0x40 0x79
2434 0xd7 0xfc 0xff 0x79
2435 0xff 0x7 0xc0 0x79
2436 0x5d 0x4 0x80 0x79
2437
2438 # CHECK: ldrb     w26, [x3, #121]
2439 # CHECK: ldrb     w12, [x2]
2440 # CHECK: ldrsb    w27, [sp, #4095]
2441 # CHECK: ldrsb    xzr, [x15]
2442 0x7a 0xe4 0x41 0x39
2443 0x4c 0x0 0x40 0x39
2444 0xfb 0xff 0xff 0x39
2445 0xff 0x1 0x80 0x39
2446
2447 # CHECK: str      x30, [sp]
2448 # CHECK: str      w20, [x4, #16380]
2449 # CHECK: strh     w20, [x10, #14]
2450 # CHECK: strh     w17, [sp, #8190]
2451 # CHECK: strb     w23, [x3, #4095]
2452 # CHECK: strb     wzr, [x2]
2453 0xfe 0x3 0x0 0xf9
2454 0x94 0xfc 0x3f 0xb9
2455 0x54 0x1d 0x0 0x79
2456 0xf1 0xff 0x3f 0x79
2457 0x77 0xfc 0x3f 0x39
2458 0x5f 0x0 0x0 0x39
2459
2460 # CHECK: ldr      b31, [sp, #4095]
2461 # CHECK: ldr      h20, [x2, #8190]
2462 # CHECK: ldr      s10, [x19, #16380]
2463 # CHECK: ldr      d3, [x10, #32760]
2464 # CHECK: str      q12, [sp, #65520]
2465 0xff 0xff 0x7f 0x3d
2466 0x54 0xfc 0x7f 0x7d
2467 0x6a 0xfe 0x7f 0xbd
2468 0x43 0xfd 0x7f 0xfd
2469 0xec 0xff 0xbf 0x3d
2470
2471 # CHECK: prfm    pldl1keep, [sp, #8]
2472 # CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2473 # CHECK: prfm    pldl2keep, [x5, #16]
2474 # CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2475 # CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2476 # CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2477 # CHECK: prfm    plil1keep, [sp, #8]
2478 # CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2479 # CHECK: prfm    plil2keep, [x5, #16]
2480 # CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2481 # CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2482 # CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2483 # CHECK: prfm    pstl1keep, [sp, #8]
2484 # CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2485 # CHECK: prfm    pstl2keep, [x5, #16]
2486 # CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2487 # CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2488 # CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
2489 0xe0 0x07 0x80 0xf9
2490 0x61 0x00 0x80 0xf9
2491 0xa2 0x08 0x80 0xf9
2492 0x43 0x00 0x80 0xf9
2493 0xa4 0x00 0x80 0xf9
2494 0xc5 0x00 0x80 0xf9
2495 0xe8 0x07 0x80 0xf9
2496 0x69 0x00 0x80 0xf9
2497 0xaa 0x08 0x80 0xf9
2498 0x4b 0x00 0x80 0xf9
2499 0xac 0x00 0x80 0xf9
2500 0xcd 0x00 0x80 0xf9
2501 0xf0 0x07 0x80 0xf9
2502 0x71 0x00 0x80 0xf9
2503 0xb2 0x08 0x80 0xf9
2504 0x53 0x00 0x80 0xf9
2505 0xb4 0x00 0x80 0xf9
2506 0xd5 0x00 0x80 0xf9
2507
2508
2509 #------------------------------------------------------------------------------
2510 # Load/store (register offset)
2511 #------------------------------------------------------------------------------
2512
2513 # CHECK: ldrb     w3, [sp, x5]
2514 # CHECK: ldrb     w9, [x27, x6]
2515 # CHECK: ldrsb    w10, [x30, x7]
2516 # CHECK: ldrb     w11, [x29, x3, sxtx]
2517 # CHECK: strb     w12, [x28, xzr, sxtx]
2518 # CHECK: ldrb     w14, [x26, w6, uxtw]
2519 # CHECK: ldrsb    w15, [x25, w7, uxtw]
2520 # CHECK: ldrb     w17, [x23, w9, sxtw]
2521 # CHECK: ldrsb    x18, [x22, w10, sxtw]
2522 0xe3 0x6b 0x65 0x38
2523 0x69 0x6b 0x66 0x38
2524 0xca 0x6b 0xe7 0x38
2525 0xab 0xeb 0x63 0x38
2526 0x8c 0xeb 0x3f 0x38
2527 0x4e 0x4b 0x66 0x38
2528 0x2f 0x4b 0xe7 0x38
2529 0xf1 0xca 0x69 0x38
2530 0xd2 0xca 0xaa 0x38
2531
2532 # CHECK: ldrsh    w3, [sp, x5]
2533 # CHECK: ldrsh    w9, [x27, x6]
2534 # CHECK: ldrh     w10, [x30, x7, lsl #1]
2535 # CHECK: strh     w11, [x29, x3, sxtx]
2536 # CHECK: ldrh     w12, [x28, xzr, sxtx]
2537 # CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2538 # CHECK: ldrh     w14, [x26, w6, uxtw]
2539 # CHECK: ldrh     w15, [x25, w7, uxtw]
2540 # CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2541 # CHECK: ldrh     w17, [x23, w9, sxtw]
2542 # CHECK: ldrh     w18, [x22, w10, sxtw]
2543 # CHECK: strh     w19, [x21, wzr, sxtw #1]
2544 0xe3 0x6b 0xe5 0x78
2545 0x69 0x6b 0xe6 0x78
2546 0xca 0x7b 0x67 0x78
2547 0xab 0xeb 0x23 0x78
2548 0x8c 0xeb 0x7f 0x78
2549 0x6d 0xfb 0xa5 0x78
2550 0x4e 0x4b 0x66 0x78
2551 0x2f 0x4b 0x67 0x78
2552 0x10 0x5b 0xe8 0x78
2553 0xf1 0xca 0x69 0x78
2554 0xd2 0xca 0x6a 0x78
2555 0xb3 0xda 0x3f 0x78
2556
2557 # CHECK: ldr      w3, [sp, x5]
2558 # CHECK: ldr      s9, [x27, x6]
2559 # CHECK: ldr      w10, [x30, x7, lsl #2]
2560 # CHECK: ldr      w11, [x29, x3, sxtx]
2561 # CHECK: str      s12, [x28, xzr, sxtx]
2562 # CHECK: str      w13, [x27, x5, sxtx #2]
2563 # CHECK: str      w14, [x26, w6, uxtw]
2564 # CHECK: ldr      w15, [x25, w7, uxtw]
2565 # CHECK: ldr      w16, [x24, w8, uxtw #2]
2566 # CHECK: ldrsw    x17, [x23, w9, sxtw]
2567 # CHECK: ldr      w18, [x22, w10, sxtw]
2568 # CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
2569 0xe3 0x6b 0x65 0xb8
2570 0x69 0x6b 0x66 0xbc
2571 0xca 0x7b 0x67 0xb8
2572 0xab 0xeb 0x63 0xb8
2573 0x8c 0xeb 0x3f 0xbc
2574 0x6d 0xfb 0x25 0xb8
2575 0x4e 0x4b 0x26 0xb8
2576 0x2f 0x4b 0x67 0xb8
2577 0x10 0x5b 0x68 0xb8
2578 0xf1 0xca 0xa9 0xb8
2579 0xd2 0xca 0x6a 0xb8
2580 0xb3 0xda 0xbf 0xb8
2581
2582 # CHECK: ldr      x3, [sp, x5]
2583 # CHECK: str      x9, [x27, x6]
2584 # CHECK: ldr      d10, [x30, x7, lsl #3]
2585 # CHECK: str      x11, [x29, x3, sxtx]
2586 # CHECK: ldr      x12, [x28, xzr, sxtx]
2587 # CHECK: ldr      x13, [x27, x5, sxtx #3]
2588 # CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2589 # CHECK: ldr      x15, [x25, w7, uxtw]
2590 # CHECK: ldr      x16, [x24, w8, uxtw #3]
2591 # CHECK: ldr      x17, [x23, w9, sxtw]
2592 # CHECK: ldr      x18, [x22, w10, sxtw]
2593 # CHECK: str      d19, [x21, wzr, sxtw #3]
2594 0xe3 0x6b 0x65 0xf8
2595 0x69 0x6b 0x26 0xf8
2596 0xca 0x7b 0x67 0xfc
2597 0xab 0xeb 0x23 0xf8
2598 0x8c 0xeb 0x7f 0xf8
2599 0x6d 0xfb 0x65 0xf8
2600 0x40 0x4b 0xa6 0xf8
2601 0x2f 0x4b 0x67 0xf8
2602 0x10 0x5b 0x68 0xf8
2603 0xf1 0xca 0x69 0xf8
2604 0xd2 0xca 0x6a 0xf8
2605 0xb3 0xda 0x3f 0xfc
2606
2607 # CHECK: ldr      q3, [sp, x5]
2608 # CHECK: ldr      q9, [x27, x6]
2609 # CHECK: ldr      q10, [x30, x7, lsl #4]
2610 # CHECK: str      q11, [x29, x3, sxtx]
2611 # CHECK: str      q12, [x28, xzr, sxtx]
2612 # CHECK: str      q13, [x27, x5, sxtx #4]
2613 # CHECK: ldr      q14, [x26, w6, uxtw]
2614 # CHECK: ldr      q15, [x25, w7, uxtw]
2615 # CHECK: ldr      q16, [x24, w8, uxtw #4]
2616 # CHECK: ldr      q17, [x23, w9, sxtw]
2617 # CHECK: str      q18, [x22, w10, sxtw]
2618 # CHECK: ldr      q19, [x21, wzr, sxtw #4]
2619 0xe3 0x6b 0xe5 0x3c
2620 0x69 0x6b 0xe6 0x3c
2621 0xca 0x7b 0xe7 0x3c
2622 0xab 0xeb 0xa3 0x3c
2623 0x8c 0xeb 0xbf 0x3c
2624 0x6d 0xfb 0xa5 0x3c
2625 0x4e 0x4b 0xe6 0x3c
2626 0x2f 0x4b 0xe7 0x3c
2627 0x10 0x5b 0xe8 0x3c
2628 0xf1 0xca 0xe9 0x3c
2629 0xd2 0xca 0xaa 0x3c
2630 0xb3 0xda 0xff 0x3c
2631
2632 #------------------------------------------------------------------------------
2633 # Load/store register pair (offset)
2634 #------------------------------------------------------------------------------
2635
2636 # CHECK: ldp      w3, w5, [sp]
2637 # CHECK: stp      wzr, w9, [sp, #252]
2638 # CHECK: ldp      w2, wzr, [sp, #-256]
2639 # CHECK: ldp      w9, w10, [sp, #4]
2640 0xe3 0x17 0x40 0x29
2641 0xff 0xa7 0x1f 0x29
2642 0xe2 0x7f 0x60 0x29
2643 0xe9 0xab 0x40 0x29
2644
2645 # CHECK: ldpsw    x9, x10, [sp, #4]
2646 # CHECK: ldpsw    x9, x10, [x2, #-256]
2647 # CHECK: ldpsw    x20, x30, [sp, #252]
2648 0xe9 0xab 0x40 0x69
2649 0x49 0x28 0x60 0x69
2650 0xf4 0xfb 0x5f 0x69
2651
2652 # CHECK: ldp      x21, x29, [x2, #504]
2653 # CHECK: ldp      x22, x23, [x3, #-512]
2654 # CHECK: ldp      x24, x25, [x4, #8]
2655 0x55 0xf4 0x5f 0xa9
2656 0x76 0x5c 0x60 0xa9
2657 0x98 0xe4 0x40 0xa9
2658
2659 # CHECK: ldp      s29, s28, [sp, #252]
2660 # CHECK: stp      s27, s26, [sp, #-256]
2661 # CHECK: ldp      s1, s2, [x3, #44]
2662 0xfd 0xf3 0x5f 0x2d
2663 0xfb 0x6b 0x20 0x2d
2664 0x61 0x88 0x45 0x2d
2665
2666 # CHECK: stp      d3, d5, [x9, #504]
2667 # CHECK: stp      d7, d11, [x10, #-512]
2668 # CHECK: ldp      d2, d3, [x30, #-8]
2669 0x23 0x95 0x1f 0x6d
2670 0x47 0x2d 0x20 0x6d
2671 0xc2 0x8f 0x7f 0x6d
2672
2673 # CHECK: stp      q3, q5, [sp]
2674 # CHECK: stp      q17, q19, [sp, #1008]
2675 # CHECK: ldp      q23, q29, [x1, #-1024]
2676 0xe3 0x17 0x0 0xad
2677 0xf1 0xcf 0x1f 0xad
2678 0x37 0x74 0x60 0xad
2679
2680 #------------------------------------------------------------------------------
2681 # Load/store register pair (post-indexed)
2682 #------------------------------------------------------------------------------
2683
2684 # CHECK: ldp      w3, w5, [sp], #0
2685 # CHECK: stp      wzr, w9, [sp], #252
2686 # CHECK: ldp      w2, wzr, [sp], #-256
2687 # CHECK: ldp      w9, w10, [sp], #4
2688 0xe3 0x17 0xc0 0x28
2689 0xff 0xa7 0x9f 0x28
2690 0xe2 0x7f 0xe0 0x28
2691 0xe9 0xab 0xc0 0x28
2692
2693 # CHECK: ldpsw    x9, x10, [sp], #4
2694 # CHECK: ldpsw    x9, x10, [x2], #-256
2695 # CHECK: ldpsw    x20, x30, [sp], #252
2696 0xe9 0xab 0xc0 0x68
2697 0x49 0x28 0xe0 0x68
2698 0xf4 0xfb 0xdf 0x68
2699
2700 # CHECK: ldp      x21, x29, [x2], #504
2701 # CHECK: ldp      x22, x23, [x3], #-512
2702 # CHECK: ldp      x24, x25, [x4], #8
2703 0x55 0xf4 0xdf 0xa8
2704 0x76 0x5c 0xe0 0xa8
2705 0x98 0xe4 0xc0 0xa8
2706
2707 # CHECK: ldp      s29, s28, [sp], #252
2708 # CHECK: stp      s27, s26, [sp], #-256
2709 # CHECK: ldp      s1, s2, [x3], #44
2710 0xfd 0xf3 0xdf 0x2c
2711 0xfb 0x6b 0xa0 0x2c
2712 0x61 0x88 0xc5 0x2c
2713
2714 # CHECK: stp      d3, d5, [x9], #504
2715 # CHECK: stp      d7, d11, [x10], #-512
2716 # CHECK: ldp      d2, d3, [x30], #-8
2717 0x23 0x95 0x9f 0x6c
2718 0x47 0x2d 0xa0 0x6c
2719 0xc2 0x8f 0xff 0x6c
2720
2721 # CHECK: stp      q3, q5, [sp], #0
2722 # CHECK: stp      q17, q19, [sp], #1008
2723 # CHECK: ldp      q23, q29, [x1], #-1024
2724 0xe3 0x17 0x80 0xac
2725 0xf1 0xcf 0x9f 0xac
2726 0x37 0x74 0xe0 0xac
2727
2728 #------------------------------------------------------------------------------
2729 # Load/store register pair (pre-indexed)
2730 #------------------------------------------------------------------------------
2731
2732 # CHECK: ldp      w3, w5, [sp, #0]!
2733 # CHECK: stp      wzr, w9, [sp, #252]!
2734 # CHECK: ldp      w2, wzr, [sp, #-256]!
2735 # CHECK: ldp      w9, w10, [sp, #4]!
2736 0xe3 0x17 0xc0 0x29
2737 0xff 0xa7 0x9f 0x29
2738 0xe2 0x7f 0xe0 0x29
2739 0xe9 0xab 0xc0 0x29
2740
2741 # CHECK: ldpsw    x9, x10, [sp, #4]!
2742 # CHECK: ldpsw    x9, x10, [x2, #-256]!
2743 # CHECK: ldpsw    x20, x30, [sp, #252]!
2744 0xe9 0xab 0xc0 0x69
2745 0x49 0x28 0xe0 0x69
2746 0xf4 0xfb 0xdf 0x69
2747
2748 # CHECK: ldp      x21, x29, [x2, #504]!
2749 # CHECK: ldp      x22, x23, [x3, #-512]!
2750 # CHECK: ldp      x24, x25, [x4, #8]!
2751 0x55 0xf4 0xdf 0xa9
2752 0x76 0x5c 0xe0 0xa9
2753 0x98 0xe4 0xc0 0xa9
2754
2755 # CHECK: ldp      s29, s28, [sp, #252]!
2756 # CHECK: stp      s27, s26, [sp, #-256]!
2757 # CHECK: ldp      s1, s2, [x3, #44]!
2758 0xfd 0xf3 0xdf 0x2d
2759 0xfb 0x6b 0xa0 0x2d
2760 0x61 0x88 0xc5 0x2d
2761
2762 # CHECK: stp      d3, d5, [x9, #504]!
2763 # CHECK: stp      d7, d11, [x10, #-512]!
2764 # CHECK: ldp      d2, d3, [x30, #-8]!
2765 0x23 0x95 0x9f 0x6d
2766 0x47 0x2d 0xa0 0x6d
2767 0xc2 0x8f 0xff 0x6d
2768
2769 # CHECK: stp      q3, q5, [sp, #0]!
2770 # CHECK: stp      q17, q19, [sp, #1008]!
2771 # CHECK: ldp      q23, q29, [x1, #-1024]!
2772 0xe3 0x17 0x80 0xad
2773 0xf1 0xcf 0x9f 0xad
2774 0x37 0x74 0xe0 0xad
2775
2776 #------------------------------------------------------------------------------
2777 # Load/store register pair (offset)
2778 #------------------------------------------------------------------------------
2779
2780 # CHECK: ldnp      w3, w5, [sp]
2781 # CHECK: stnp      wzr, w9, [sp, #252]
2782 # CHECK: ldnp      w2, wzr, [sp, #-256]
2783 # CHECK: ldnp      w9, w10, [sp, #4]
2784 0xe3 0x17 0x40 0x28
2785 0xff 0xa7 0x1f 0x28
2786 0xe2 0x7f 0x60 0x28
2787 0xe9 0xab 0x40 0x28
2788
2789 # CHECK: ldnp      x21, x29, [x2, #504]
2790 # CHECK: ldnp      x22, x23, [x3, #-512]
2791 # CHECK: ldnp      x24, x25, [x4, #8]
2792 0x55 0xf4 0x5f 0xa8
2793 0x76 0x5c 0x60 0xa8
2794 0x98 0xe4 0x40 0xa8
2795
2796 # CHECK: ldnp      s29, s28, [sp, #252]
2797 # CHECK: stnp      s27, s26, [sp, #-256]
2798 # CHECK: ldnp      s1, s2, [x3, #44]
2799 0xfd 0xf3 0x5f 0x2c
2800 0xfb 0x6b 0x20 0x2c
2801 0x61 0x88 0x45 0x2c
2802
2803 # CHECK: stnp      d3, d5, [x9, #504]
2804 # CHECK: stnp      d7, d11, [x10, #-512]
2805 # CHECK: ldnp      d2, d3, [x30, #-8]
2806 0x23 0x95 0x1f 0x6c
2807 0x47 0x2d 0x20 0x6c
2808 0xc2 0x8f 0x7f 0x6c
2809
2810 # CHECK: stnp      q3, q5, [sp]
2811 # CHECK: stnp      q17, q19, [sp, #1008]
2812 # CHECK: ldnp      q23, q29, [x1, #-1024]
2813 0xe3 0x17 0x0 0xac
2814 0xf1 0xcf 0x1f 0xac
2815 0x37 0x74 0x60 0xac
2816
2817 #------------------------------------------------------------------------------
2818 # Logical (immediate)
2819 #------------------------------------------------------------------------------
2820 # CHECK: orr      w3, w9, #0xffff0000
2821 # CHECK: orr      wsp, w10, #0xe00000ff
2822 # CHECK: orr      w9, w10, #0x3ff
2823 0x23 0x3d 0x10 0x32
2824 0x5f 0x29 0x3 0x32
2825 0x49 0x25 0x0 0x32
2826
2827 # CHECK: and      w14, w15, #0x80008000
2828 # CHECK: and      w12, w13, #0xffc3ffc3
2829 # CHECK: and      w11, wzr, #0x30003
2830 0xee 0x81 0x1 0x12
2831 0xac 0xad 0xa 0x12
2832 0xeb 0x87 0x0 0x12
2833
2834 # CHECK: eor      w3, w6, #0xe0e0e0e0
2835 # CHECK: eor      wsp, wzr, #0x3030303
2836 # CHECK: eor      w16, w17, #0x81818181
2837 0xc3 0xc8 0x3 0x52
2838 0xff 0xc7 0x0 0x52
2839 0x30 0xc6 0x1 0x52
2840
2841 # CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
2842 # CHECK: ands     w19, w20, #0x33333333
2843 # CHECK: ands     w21, w22, #0x99999999
2844 0x5f 0xe6 0x2 0x72
2845 0x93 0xe6 0x0 0x72
2846 0xd5 0xe6 0x1 0x72
2847
2848 # CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2849 # CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
2850 0x7f 0xf0 0x1 0x72
2851 0xff 0xf3 0x0 0x72
2852
2853 # CHECK: eor      x3, x5, #0xffffffffc000000
2854 # CHECK: and      x9, x10, #0x7fffffffffff
2855 # CHECK: orr      x11, x12, #0x8000000000000fff
2856 0xa3 0x84 0x66 0xd2
2857 0x49 0xb9 0x40 0x92
2858 0x8b 0x31 0x41 0xb2
2859
2860 # CHECK: orr      x3, x9, #0xffff0000ffff0000
2861 # CHECK: orr      sp, x10, #0xe00000ffe00000ff
2862 # CHECK: orr      x9, x10, #0x3ff000003ff
2863 0x23 0x3d 0x10 0xb2
2864 0x5f 0x29 0x3 0xb2
2865 0x49 0x25 0x0 0xb2
2866
2867 # CHECK: and      x14, x15, #0x8000800080008000
2868 # CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2869 # CHECK: and      x11, xzr, #0x3000300030003
2870 0xee 0x81 0x1 0x92
2871 0xac 0xad 0xa 0x92
2872 0xeb 0x87 0x0 0x92
2873
2874 # CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2875 # CHECK: eor      sp, xzr, #0x303030303030303
2876 # CHECK: eor      x16, x17, #0x8181818181818181
2877 0xc3 0xc8 0x3 0xd2
2878 0xff 0xc7 0x0 0xd2
2879 0x30 0xc6 0x1 0xd2
2880
2881 # CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
2882 # CHECK: ands     x19, x20, #0x3333333333333333
2883 # CHECK: ands     x21, x22, #0x9999999999999999
2884 0x5f 0xe6 0x2 0xf2
2885 0x93 0xe6 0x0 0xf2
2886 0xd5 0xe6 0x1 0xf2
2887
2888 # CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2889 # CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
2890 0x7f 0xf0 0x1 0xf2
2891 0xff 0xf3 0x0 0xf2
2892
2893 # CHECK: mov      w3, #983055
2894 # CHECK: mov      x10, #-6148914691236517206
2895 0xe3 0x8f 0x0 0x32
2896 0xea 0xf3 0x1 0xb2
2897
2898 # CHECK: orr      w3, wzr, #0xffff
2899 # CHECK: orr      x9, xzr, #0xffff00000000
2900 0xe3 0x3f 0x0 0x32
2901 0xe9 0x3f 0x60 0xb2
2902
2903 #------------------------------------------------------------------------------
2904 # Logical (shifted register)
2905 #------------------------------------------------------------------------------
2906
2907 # CHECK: and      w12, w23, w21
2908 # CHECK: and      w16, w15, w1, lsl #1
2909 # CHECK: and      w9, w4, w10, lsl #31
2910 # CHECK: and      w3, w30, w11
2911 # CHECK: and      x3, x5, x7, lsl #63
2912 0xec 0x2 0x15 0xa
2913 0xf0 0x5 0x1 0xa
2914 0x89 0x7c 0xa 0xa
2915 0xc3 0x3 0xb 0xa
2916 0xa3 0xfc 0x7 0x8a
2917
2918 # CHECK: and      x5, x14, x19, asr #4
2919 # CHECK: and      w3, w17, w19, ror #31
2920 # CHECK: and      w0, w2, wzr, lsr #17
2921 # CHECK: and      w3, w30, w11, asr
2922 0xc5 0x11 0x93 0x8a
2923 0x23 0x7e 0xd3 0xa
2924 0x40 0x44 0x5f 0xa
2925 0xc3 0x3 0x8b 0xa
2926
2927 # CHECK: and      xzr, x4, x26
2928 # CHECK: and      w3, wzr, w20, ror
2929 # CHECK: and      x7, x20, xzr, asr #63
2930 0x9f 0x0 0x1a 0x8a
2931 0xe3 0x3 0xd4 0xa
2932 0x87 0xfe 0x9f 0x8a
2933
2934 # CHECK: bic      x13, x20, x14, lsl #47
2935 # CHECK: bic      w2, w7, w9
2936 # CHECK: orr      w2, w7, w0, asr #31
2937 # CHECK: orr      x8, x9, x10, lsl #12
2938 # CHECK: orn      x3, x5, x7, asr
2939 # CHECK: orn      w2, w5, w29
2940 0x8d 0xbe 0x2e 0x8a
2941 0xe2 0x0 0x29 0xa
2942 0xe2 0x7c 0x80 0x2a
2943 0x28 0x31 0xa 0xaa
2944 0xa3 0x0 0xa7 0xaa
2945 0xa2 0x0 0x3d 0x2a
2946
2947 # CHECK: ands     w7, wzr, w9, lsl #1
2948 # CHECK: ands     x3, x5, x20, ror #63
2949 # CHECK: bics     w3, w5, w7
2950 # CHECK: bics     x3, xzr, x3, lsl #1
2951 # CHECK: tst      w3, w7, lsl #31
2952 # CHECK: tst      x2, x20, asr
2953 0xe7 0x7 0x9 0x6a
2954 0xa3 0xfc 0xd4 0xea
2955 0xa3 0x0 0x27 0x6a
2956 0xe3 0x7 0x23 0xea
2957 0x7f 0x7c 0x7 0x6a
2958 0x5f 0x0 0x94 0xea
2959
2960 # CHECK: mov      x3, x6
2961 # CHECK: mov      x3, xzr
2962 # CHECK: mov      wzr, w2
2963 # CHECK: mov      w3, w5
2964 0xe3 0x3 0x6 0xaa
2965 0xe3 0x3 0x1f 0xaa
2966 0xff 0x3 0x2 0x2a
2967 0xe3 0x3 0x5 0x2a
2968
2969 #------------------------------------------------------------------------------
2970 # Move wide (immediate)
2971 #------------------------------------------------------------------------------
2972
2973 # N.b. (FIXME) canonical aliases aren't produced here because of
2974 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
2975 # be "mov".
2976
2977 # CHECK: mov     w1, #{{65535|0xffff}}
2978 # CHECK: movz     w2, #0, lsl #16
2979 # CHECK: mov     w2, #-1235
2980 0xe1 0xff 0x9f 0x52
2981 0x2 0x0 0xa0 0x52
2982 0x42 0x9a 0x80 0x12
2983
2984 # CHECK: mov     x2, #5299989643264
2985 # CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
2986 0x42 0x9a 0xc0 0xd2
2987 0x3f 0x1c 0xe2 0xf2
2988
2989 # CHECK: mov      x2, #0
2990 # CHECK: movk     w3, #0
2991 # CHECK: movz     x4, #0, lsl #16
2992 # CHECK: movk     w5, #0, lsl #16
2993 # CHECK: movz     x6, #0, lsl #32
2994 # CHECK: movk     x7, #0, lsl #32
2995 # CHECK: movz     x8, #0, lsl #48
2996 # CHECK: movk     x9, #0, lsl #48
2997 0x2 0x0 0x80 0xd2
2998 0x3 0x0 0x80 0x72
2999 0x4 0x0 0xa0 0xd2
3000 0x5 0x0 0xa0 0x72
3001 0x6 0x0 0xc0 0xd2
3002 0x7 0x0 0xc0 0xf2
3003 0x8 0x0 0xe0 0xd2
3004 0x9 0x0 0xe0 0xf2
3005
3006 #------------------------------------------------------------------------------
3007 # PC-relative addressing
3008 #------------------------------------------------------------------------------
3009
3010 # It's slightly dodgy using immediates here, but harmless enough when
3011 # it's all that's available.
3012
3013 # CHECK: adr      x2, #1600
3014 # CHECK: adrp     x21, #6553600
3015 # CHECK: adr      x0, #262144
3016 0x02 0x32 0x00 0x10
3017 0x15 0x32 0x00 0x90
3018 0x00 0x00 0x20 0x10
3019
3020 #------------------------------------------------------------------------------
3021 # System
3022 #------------------------------------------------------------------------------
3023
3024 # CHECK: nop
3025 # CHECK: hint     #{{127|0x7f}}
3026 # CHECK: nop
3027 # CHECK: yield
3028 # CHECK: wfe
3029 # CHECK: wfi
3030 # CHECK: sev
3031 # CHECK: sevl
3032 0x1f 0x20 0x3 0xd5
3033 0xff 0x2f 0x3 0xd5
3034 0x1f 0x20 0x3 0xd5
3035 0x3f 0x20 0x3 0xd5
3036 0x5f 0x20 0x3 0xd5
3037 0x7f 0x20 0x3 0xd5
3038 0x9f 0x20 0x3 0xd5
3039 0xbf 0x20 0x3 0xd5
3040
3041 # CHECK: clrex
3042 # CHECK: clrex    #0
3043 # CHECK: clrex    #7
3044 # CHECK: clrex
3045 0x5f 0x3f 0x3 0xd5
3046 0x5f 0x30 0x3 0xd5
3047 0x5f 0x37 0x3 0xd5
3048 0x5f 0x3f 0x3 0xd5
3049
3050 # CHECK: dsb      #0
3051 # CHECK: dsb      #12
3052 # CHECK: dsb      sy
3053 # CHECK: dsb      oshld
3054 # CHECK: dsb      oshst
3055 # CHECK: dsb      osh
3056 # CHECK: dsb      nshld
3057 # CHECK: dsb      nshst
3058 # CHECK: dsb      nsh
3059 # CHECK: dsb      ishld
3060 # CHECK: dsb      ishst
3061 # CHECK: dsb      ish
3062 # CHECK: dsb      ld
3063 # CHECK: dsb      st
3064 # CHECK: dsb      sy
3065 0x9f 0x30 0x3 0xd5
3066 0x9f 0x3c 0x3 0xd5
3067 0x9f 0x3f 0x3 0xd5
3068 0x9f 0x31 0x3 0xd5
3069 0x9f 0x32 0x3 0xd5
3070 0x9f 0x33 0x3 0xd5
3071 0x9f 0x35 0x3 0xd5
3072 0x9f 0x36 0x3 0xd5
3073 0x9f 0x37 0x3 0xd5
3074 0x9f 0x39 0x3 0xd5
3075 0x9f 0x3a 0x3 0xd5
3076 0x9f 0x3b 0x3 0xd5
3077 0x9f 0x3d 0x3 0xd5
3078 0x9f 0x3e 0x3 0xd5
3079 0x9f 0x3f 0x3 0xd5
3080
3081 # CHECK: dmb      #0
3082 # CHECK: dmb      #12
3083 # CHECK: dmb      sy
3084 # CHECK: dmb      oshld
3085 # CHECK: dmb      oshst
3086 # CHECK: dmb      osh
3087 # CHECK: dmb      nshld
3088 # CHECK: dmb      nshst
3089 # CHECK: dmb      nsh
3090 # CHECK: dmb      ishld
3091 # CHECK: dmb      ishst
3092 # CHECK: dmb      ish
3093 # CHECK: dmb      ld
3094 # CHECK: dmb      st
3095 # CHECK: dmb      sy
3096 0xbf 0x30 0x3 0xd5
3097 0xbf 0x3c 0x3 0xd5
3098 0xbf 0x3f 0x3 0xd5
3099 0xbf 0x31 0x3 0xd5
3100 0xbf 0x32 0x3 0xd5
3101 0xbf 0x33 0x3 0xd5
3102 0xbf 0x35 0x3 0xd5
3103 0xbf 0x36 0x3 0xd5
3104 0xbf 0x37 0x3 0xd5
3105 0xbf 0x39 0x3 0xd5
3106 0xbf 0x3a 0x3 0xd5
3107 0xbf 0x3b 0x3 0xd5
3108 0xbf 0x3d 0x3 0xd5
3109 0xbf 0x3e 0x3 0xd5
3110 0xbf 0x3f 0x3 0xd5
3111
3112 # CHECK: isb
3113 # CHECK: isb      #12
3114 0xdf 0x3f 0x3 0xd5
3115 0xdf 0x3c 0x3 0xd5
3116
3117 # CHECK: msr      {{SPSel|SPSEL}}, #0
3118 # CHECK: msr      {{DAIFSet|DAIFSET}}, #15
3119 # CHECK: msr      {{DAIFClr|DAIFCLR}}, #12
3120 0xbf 0x40 0x0 0xd5
3121 0xdf 0x4f 0x3 0xd5
3122 0xff 0x4c 0x3 0xd5
3123
3124 # CHECK: sys      #7, c5, c9, #7, x5
3125 # CHECK: sys      #0, c15, c15, #2
3126 # CHECK: sysl     x9, #7, c5, c9, #7
3127 # CHECK: sysl     x1, #0, c15, c15, #2
3128 0xe5 0x59 0xf 0xd5
3129 0x5f 0xff 0x8 0xd5
3130 0xe9 0x59 0x2f 0xd5
3131 0x41 0xff 0x28 0xd5
3132
3133 # CHECK: {{sys     #0, c7, c1, #0|ic ialluis}}
3134 # CHECK: {{sys     #0, c7, c5, #0|ic iallu}}
3135 # CHECK: {{sys     #3, c7, c5, #1|ic ivau}}, x9
3136 0x1f 0x71 0x8 0xd5
3137 0x1f 0x75 0x8 0xd5
3138 0x29 0x75 0xb 0xd5
3139
3140 # CHECK: {{sys     #3, c7, c4, #1|dc zva}}, x12
3141 # CHECK: {{sys     #0, c7, c6, #1|dc ivac}}
3142 # CHECK: {{sys     #0, c7, c6, #2|dc isw}}, x2
3143 # CHECK: {{sys     #3, c7, c10, #1|dc cvac}}, x9
3144 # CHECK: {{sys     #0, c7, c10, #2|dc csw}}, x10
3145 # CHECK: {{sys     #3, c7, c11, #1|dc cvau}}, x0
3146 # CHECK: {{sys     #3, c7, c14, #1|dc civac}}, x3
3147 # CHECK: {{sys     #0, c7, c14, #2|dc cisw}}, x30
3148 0x2c 0x74 0xb 0xd5
3149 0x3f 0x76 0x8 0xd5
3150 0x42 0x76 0x8 0xd5
3151 0x29 0x7a 0xb 0xd5
3152 0x4a 0x7a 0x8 0xd5
3153 0x20 0x7b 0xb 0xd5
3154 0x23 0x7e 0xb 0xd5
3155 0x5e 0x7e 0x8 0xd5
3156
3157
3158 # CHECK: msr      {{teecr32_el1|TEECR32_EL1}}, x12
3159 # CHECK: msr      {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3160 # CHECK: msr      {{mdccint_el1|MDCCINT_EL1}}, x12
3161 # CHECK: msr      {{mdscr_el1|MDSCR_EL1}}, x12
3162 # CHECK: msr      {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3163 # CHECK: msr      {{dbgdtr_el0|DBGDTR_EL0}}, x12
3164 # CHECK: msr      {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3165 # CHECK: msr      {{oseccr_el1|OSECCR_EL1}}, x12
3166 # CHECK: msr      {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3167 # CHECK: msr      {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3168 # CHECK: msr      {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3169 # CHECK: msr      {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3170 # CHECK: msr      {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3171 # CHECK: msr      {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3172 # CHECK: msr      {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3173 # CHECK: msr      {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3174 # CHECK: msr      {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3175 # CHECK: msr      {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3176 # CHECK: msr      {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3177 # CHECK: msr      {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3178 # CHECK: msr      {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3179 # CHECK: msr      {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3180 # CHECK: msr      {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3181 # CHECK: msr      {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3182 # CHECK: msr      {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3183 # CHECK: msr      {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3184 # CHECK: msr      {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3185 # CHECK: msr      {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3186 # CHECK: msr      {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3187 # CHECK: msr      {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3188 # CHECK: msr      {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3189 # CHECK: msr      {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3190 # CHECK: msr      {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3191 # CHECK: msr      {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3192 # CHECK: msr      {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3193 # CHECK: msr      {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3194 # CHECK: msr      {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3195 # CHECK: msr      {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3196 # CHECK: msr      {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3197 # CHECK: msr      {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3198 # CHECK: msr      {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3199 # CHECK: msr      {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3200 # CHECK: msr      {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3201 # CHECK: msr      {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3202 # CHECK: msr      {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3203 # CHECK: msr      {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3204 # CHECK: msr      {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3205 # CHECK: msr      {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3206 # CHECK: msr      {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3207 # CHECK: msr      {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3208 # CHECK: msr      {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3209 # CHECK: msr      {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3210 # CHECK: msr      {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3211 # CHECK: msr      {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3212 # CHECK: msr      {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3213 # CHECK: msr      {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3214 # CHECK: msr      {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3215 # CHECK: msr      {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3216 # CHECK: msr      {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3217 # CHECK: msr      {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3218 # CHECK: msr      {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3219 # CHECK: msr      {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3220 # CHECK: msr      {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3221 # CHECK: msr      {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3222 # CHECK: msr      {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3223 # CHECK: msr      {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3224 # CHECK: msr      {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3225 # CHECK: msr      {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3226 # CHECK: msr      {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3227 # CHECK: msr      {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3228 # CHECK: msr      {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3229 # CHECK: msr      {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3230 # CHECK: msr      {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3231 # CHECK: msr      {{teehbr32_el1|TEEHBR32_EL1}}, x12
3232 # CHECK: msr      {{oslar_el1|OSLAR_EL1}}, x12
3233 # CHECK: msr      {{osdlr_el1|OSDLR_EL1}}, x12
3234 # CHECK: msr      {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3235 # CHECK: msr      {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3236 # CHECK: msr      {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3237 # CHECK: msr      {{csselr_el1|CSSELR_EL1}}, x12
3238 # CHECK: msr      {{vpidr_el2|VPIDR_EL2}}, x12
3239 # CHECK: msr      {{vmpidr_el2|VMPIDR_EL2}}, x12
3240 # CHECK: msr      {{sctlr_el1|SCTLR_EL1}}, x12
3241 # CHECK: msr      {{sctlr_el2|SCTLR_EL2}}, x12
3242 # CHECK: msr      {{sctlr_el3|SCTLR_EL3}}, x12
3243 # CHECK: msr      {{actlr_el1|ACTLR_EL1}}, x12
3244 # CHECK: msr      {{actlr_el2|ACTLR_EL2}}, x12
3245 # CHECK: msr      {{actlr_el3|ACTLR_EL3}}, x12
3246 # CHECK: msr      {{cpacr_el1|CPACR_EL1}}, x12
3247 # CHECK: msr      {{hcr_el2|HCR_EL2}}, x12
3248 # CHECK: msr      {{scr_el3|SCR_EL3}}, x12
3249 # CHECK: msr      {{mdcr_el2|MDCR_EL2}}, x12
3250 # CHECK: msr      {{sder32_el3|SDER32_EL3}}, x12
3251 # CHECK: msr      {{cptr_el2|CPTR_EL2}}, x12
3252 # CHECK: msr      {{cptr_el3|CPTR_EL3}}, x12
3253 # CHECK: msr      {{hstr_el2|HSTR_EL2}}, x12
3254 # CHECK: msr      {{hacr_el2|HACR_EL2}}, x12
3255 # CHECK: msr      {{mdcr_el3|MDCR_EL3}}, x12
3256 # CHECK: msr      {{ttbr0_el1|TTBR0_EL1}}, x12
3257 # CHECK: msr      {{ttbr0_el2|TTBR0_EL2}}, x12
3258 # CHECK: msr      {{ttbr0_el3|TTBR0_EL3}}, x12
3259 # CHECK: msr      {{ttbr1_el1|TTBR1_EL1}}, x12
3260 # CHECK: msr      {{tcr_el1|TCR_EL1}}, x12
3261 # CHECK: msr      {{tcr_el2|TCR_EL2}}, x12
3262 # CHECK: msr      {{tcr_el3|TCR_EL3}}, x12
3263 # CHECK: msr      {{vttbr_el2|VTTBR_EL2}}, x12
3264 # CHECK: msr      {{vtcr_el2|VTCR_EL2}}, x12
3265 # CHECK: msr      {{dacr32_el2|DACR32_EL2}}, x12
3266 # CHECK: msr      {{spsr_el1|SPSR_EL1}}, x12
3267 # CHECK: msr      {{spsr_el2|SPSR_EL2}}, x12
3268 # CHECK: msr      {{spsr_el3|SPSR_EL3}}, x12
3269 # CHECK: msr      {{elr_el1|ELR_EL1}}, x12
3270 # CHECK: msr      {{elr_el2|ELR_EL2}}, x12
3271 # CHECK: msr      {{elr_el3|ELR_EL3}}, x12
3272 # CHECK: msr      {{sp_el0|SP_EL0}}, x12
3273 # CHECK: msr      {{sp_el1|SP_EL1}}, x12
3274 # CHECK: msr      {{sp_el2|SP_EL2}}, x12
3275 # CHECK: msr      {{SPSel|SPSEL}}, x12
3276 # CHECK: msr      {{nzcv|NZCV}}, x12
3277 # CHECK: msr      {{daif|DAIF}}, x12
3278 # CHECK: msr      {{CurrentEL|CURRENTEL}}, x12
3279 # CHECK: msr      {{SPSR_irq|SPSR_IRQ}}, x12
3280 # CHECK: msr      {{SPSR_abt|SPSR_ABT}}, x12
3281 # CHECK: msr      {{SPSR_und|SPSR_UND}}, x12
3282 # CHECK: msr      {{SPSR_fiq|SPSR_FIQ}}, x12
3283 # CHECK: msr      {{fpcr|FPCR}}, x12
3284 # CHECK: msr      {{fpsr|FPSR}}, x12
3285 # CHECK: msr      {{dspsr_el0|DSPSR_EL0}}, x12
3286 # CHECK: msr      {{dlr_el0|DLR_EL0}}, x12
3287 # CHECK: msr      {{ifsr32_el2|IFSR32_EL2}}, x12
3288 # CHECK: msr      {{afsr0_el1|AFSR0_EL1}}, x12
3289 # CHECK: msr      {{afsr0_el2|AFSR0_EL2}}, x12
3290 # CHECK: msr      {{afsr0_el3|AFSR0_EL3}}, x12
3291 # CHECK: msr      {{afsr1_el1|AFSR1_EL1}}, x12
3292 # CHECK: msr      {{afsr1_el2|AFSR1_EL2}}, x12
3293 # CHECK: msr      {{afsr1_el3|AFSR1_EL3}}, x12
3294 # CHECK: msr      {{esr_el1|ESR_EL1}}, x12
3295 # CHECK: msr      {{esr_el2|ESR_EL2}}, x12
3296 # CHECK: msr      {{esr_el3|ESR_EL3}}, x12
3297 # CHECK: msr      {{fpexc32_el2|FPEXC32_EL2}}, x12
3298 # CHECK: msr      {{far_el1|FAR_EL1}}, x12
3299 # CHECK: msr      {{far_el2|FAR_EL2}}, x12
3300 # CHECK: msr      {{far_el3|FAR_EL3}}, x12
3301 # CHECK: msr      {{hpfar_el2|HPFAR_EL2}}, x12
3302 # CHECK: msr      {{par_el1|PAR_EL1}}, x12
3303 # CHECK: msr      {{pmcr_el0|PMCR_EL0}}, x12
3304 # CHECK: msr      {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3305 # CHECK: msr      {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3306 # CHECK: msr      {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3307 # CHECK: msr      {{pmselr_el0|PMSELR_EL0}}, x12
3308 # CHECK: msr      {{pmccntr_el0|PMCCNTR_EL0}}, x12
3309 # CHECK: msr      {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3310 # CHECK: msr      {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3311 # CHECK: msr      {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3312 # CHECK: msr      {{pmintenset_el1|PMINTENSET_EL1}}, x12
3313 # CHECK: msr      {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3314 # CHECK: msr      {{pmovsset_el0|PMOVSSET_EL0}}, x12
3315 # CHECK: msr      {{mair_el1|MAIR_EL1}}, x12
3316 # CHECK: msr      {{mair_el2|MAIR_EL2}}, x12
3317 # CHECK: msr      {{mair_el3|MAIR_EL3}}, x12
3318 # CHECK: msr      {{amair_el1|AMAIR_EL1}}, x12
3319 # CHECK: msr      {{amair_el2|AMAIR_EL2}}, x12
3320 # CHECK: msr      {{amair_el3|AMAIR_EL3}}, x12
3321 # CHECK: msr      {{vbar_el1|VBAR_EL1}}, x12
3322 # CHECK: msr      {{vbar_el2|VBAR_EL2}}, x12
3323 # CHECK: msr      {{vbar_el3|VBAR_EL3}}, x12
3324 # CHECK: msr      {{rmr_el1|RMR_EL1}}, x12
3325 # CHECK: msr      {{rmr_el2|RMR_EL2}}, x12
3326 # CHECK: msr      {{rmr_el3|RMR_EL3}}, x12
3327 # CHECK: msr      {{tpidr_el0|TPIDR_EL0}}, x12
3328 # CHECK: msr      {{tpidr_el2|TPIDR_EL2}}, x12
3329 # CHECK: msr      {{tpidr_el3|TPIDR_EL3}}, x12
3330 # CHECK: msr      {{tpidrro_el0|TPIDRRO_EL0}}, x12
3331 # CHECK: msr      {{tpidr_el1|TPIDR_EL1}}, x12
3332 # CHECK: msr      {{cntfrq_el0|CNTFRQ_EL0}}, x12
3333 # CHECK: msr      {{cntvoff_el2|CNTVOFF_EL2}}, x12
3334 # CHECK: msr      {{cntkctl_el1|CNTKCTL_EL1}}, x12
3335 # CHECK: msr      {{cnthctl_el2|CNTHCTL_EL2}}, x12
3336 # CHECK: msr      {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3337 # CHECK: msr      {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3338 # CHECK: msr      {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3339 # CHECK: msr      {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3340 # CHECK: msr      {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3341 # CHECK: msr      {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3342 # CHECK: msr      {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3343 # CHECK: msr      {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3344 # CHECK: msr      {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3345 # CHECK: msr      {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3346 # CHECK: msr      {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3347 # CHECK: msr      {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3348 # CHECK: msr      {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3349 # CHECK: msr      {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3350 # CHECK: msr      {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3351 # CHECK: msr      {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3352 # CHECK: msr      {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3353 # CHECK: msr      {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3354 # CHECK: msr      {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3355 # CHECK: msr      {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3356 # CHECK: msr      {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3357 # CHECK: msr      {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3358 # CHECK: msr      {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3359 # CHECK: msr      {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3360 # CHECK: msr      {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3361 # CHECK: msr      {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3362 # CHECK: msr      {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3363 # CHECK: msr      {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3364 # CHECK: msr      {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3365 # CHECK: msr      {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3366 # CHECK: msr      {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3367 # CHECK: msr      {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3368 # CHECK: msr      {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3369 # CHECK: msr      {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3370 # CHECK: msr      {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3371 # CHECK: msr      {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3372 # CHECK: msr      {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3373 # CHECK: msr      {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3374 # CHECK: msr      {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3375 # CHECK: msr      {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3376 # CHECK: msr      {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3377 # CHECK: msr      {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3378 # CHECK: msr      {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3379 # CHECK: msr      {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3380 # CHECK: msr      {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3381 # CHECK: msr      {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3382 # CHECK: msr      {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3383 # CHECK: msr      {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3384 # CHECK: msr      {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3385 # CHECK: msr      {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3386 # CHECK: msr      {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3387 # CHECK: msr      {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3388 # CHECK: msr      {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3389 # CHECK: msr      {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3390 # CHECK: msr      {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3391 # CHECK: msr      {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3392 # CHECK: msr      {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3393 # CHECK: msr      {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3394 # CHECK: msr      {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3395 # CHECK: msr      {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3396 # CHECK: msr      {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3397 # CHECK: msr      {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3398 # CHECK: msr      {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3399 # CHECK: msr      {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3400 # CHECK: msr      {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3401 # CHECK: msr      {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3402 # CHECK: msr      {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3403 # CHECK: msr      {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3404 # CHECK: msr      {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3405 # CHECK: msr      {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3406 # CHECK: msr      {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3407 # CHECK: msr      {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3408 # CHECK: msr      {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3409 # CHECK: msr      {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3410 # CHECK: msr      {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3411 # CHECK: mrs      x9, {{teecr32_el1|TEECR32_EL1}}
3412 # CHECK: mrs      x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3413 # CHECK: mrs      x9, {{mdccsr_el0|MDCCSR_EL0}}
3414 # CHECK: mrs      x9, {{mdccint_el1|MDCCINT_EL1}}
3415 # CHECK: mrs      x9, {{mdscr_el1|MDSCR_EL1}}
3416 # CHECK: mrs      x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3417 # CHECK: mrs      x9, {{dbgdtr_el0|DBGDTR_EL0}}
3418 # CHECK: mrs      x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3419 # CHECK: mrs      x9, {{oseccr_el1|OSECCR_EL1}}
3420 # CHECK: mrs      x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3421 # CHECK: mrs      x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3422 # CHECK: mrs      x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3423 # CHECK: mrs      x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3424 # CHECK: mrs      x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3425 # CHECK: mrs      x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3426 # CHECK: mrs      x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3427 # CHECK: mrs      x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3428 # CHECK: mrs      x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3429 # CHECK: mrs      x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3430 # CHECK: mrs      x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3431 # CHECK: mrs      x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3432 # CHECK: mrs      x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3433 # CHECK: mrs      x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3434 # CHECK: mrs      x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3435 # CHECK: mrs      x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3436 # CHECK: mrs      x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3437 # CHECK: mrs      x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3438 # CHECK: mrs      x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3439 # CHECK: mrs      x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3440 # CHECK: mrs      x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3441 # CHECK: mrs      x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3442 # CHECK: mrs      x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3443 # CHECK: mrs      x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3444 # CHECK: mrs      x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3445 # CHECK: mrs      x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3446 # CHECK: mrs      x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3447 # CHECK: mrs      x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3448 # CHECK: mrs      x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3449 # CHECK: mrs      x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3450 # CHECK: mrs      x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3451 # CHECK: mrs      x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3452 # CHECK: mrs      x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3453 # CHECK: mrs      x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3454 # CHECK: mrs      x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3455 # CHECK: mrs      x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3456 # CHECK: mrs      x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3457 # CHECK: mrs      x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3458 # CHECK: mrs      x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3459 # CHECK: mrs      x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3460 # CHECK: mrs      x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3461 # CHECK: mrs      x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3462 # CHECK: mrs      x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3463 # CHECK: mrs      x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3464 # CHECK: mrs      x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3465 # CHECK: mrs      x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3466 # CHECK: mrs      x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3467 # CHECK: mrs      x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3468 # CHECK: mrs      x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3469 # CHECK: mrs      x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3470 # CHECK: mrs      x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3471 # CHECK: mrs      x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3472 # CHECK: mrs      x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3473 # CHECK: mrs      x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3474 # CHECK: mrs      x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3475 # CHECK: mrs      x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3476 # CHECK: mrs      x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3477 # CHECK: mrs      x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3478 # CHECK: mrs      x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3479 # CHECK: mrs      x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3480 # CHECK: mrs      x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3481 # CHECK: mrs      x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3482 # CHECK: mrs      x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3483 # CHECK: mrs      x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3484 # CHECK: mrs      x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3485 # CHECK: mrs      x9, {{mdrar_el1|MDRAR_EL1}}
3486 # CHECK: mrs      x9, {{teehbr32_el1|TEEHBR32_EL1}}
3487 # CHECK: mrs      x9, {{oslsr_el1|OSLSR_EL1}}
3488 # CHECK: mrs      x9, {{osdlr_el1|OSDLR_EL1}}
3489 # CHECK: mrs      x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3490 # CHECK: mrs      x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3491 # CHECK: mrs      x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3492 # CHECK: mrs      x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3493 # CHECK: mrs      x9, {{midr_el1|MIDR_EL1}}
3494 # CHECK: mrs      x9, {{ccsidr_el1|CCSIDR_EL1}}
3495 # CHECK: mrs      x9, {{csselr_el1|CSSELR_EL1}}
3496 # CHECK: mrs      x9, {{vpidr_el2|VPIDR_EL2}}
3497 # CHECK: mrs      x9, {{clidr_el1|CLIDR_EL1}}
3498 # CHECK: mrs      x9, {{ctr_el0|CTR_EL0}}
3499 # CHECK: mrs      x9, {{mpidr_el1|MPIDR_EL1}}
3500 # CHECK: mrs      x9, {{vmpidr_el2|VMPIDR_EL2}}
3501 # CHECK: mrs      x9, {{revidr_el1|REVIDR_EL1}}
3502 # CHECK: mrs      x9, {{aidr_el1|AIDR_EL1}}
3503 # CHECK: mrs      x9, {{dczid_el0|DCZID_EL0}}
3504 # CHECK: mrs      x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3505 # CHECK: mrs      x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3506 # CHECK: mrs      x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3507 # CHECK: mrs      x9, {{id_afr0_el1|ID_AFR0_EL1}}
3508 # CHECK: mrs      x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3509 # CHECK: mrs      x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3510 # CHECK: mrs      x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3511 # CHECK: mrs      x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3512 # CHECK: mrs      x9, {{id_mmfr4_el1|ID_MMFR4_EL1}}
3513 # CHECK: mrs      x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3514 # CHECK: mrs      x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3515 # CHECK: mrs      x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3516 # CHECK: mrs      x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3517 # CHECK: mrs      x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3518 # CHECK: mrs      x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3519 # CHECK: mrs      x9, {{mvfr0_el1|MVFR0_EL1}}
3520 # CHECK: mrs      x9, {{mvfr1_el1|MVFR1_EL1}}
3521 # CHECK: mrs      x9, {{mvfr2_el1|MVFR2_EL1}}
3522 # CHECK: mrs      x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3523 # CHECK: mrs      x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3524 # CHECK: mrs      x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3525 # CHECK: mrs      x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3526 # CHECK: mrs      x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3527 # CHECK: mrs      x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3528 # CHECK: mrs      x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3529 # CHECK: mrs      x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3530 # CHECK: mrs      x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3531 # CHECK: mrs      x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3532 # CHECK: mrs      x9, {{sctlr_el1|SCTLR_EL1}}
3533 # CHECK: mrs      x9, {{sctlr_el2|SCTLR_EL2}}
3534 # CHECK: mrs      x9, {{sctlr_el3|SCTLR_EL3}}
3535 # CHECK: mrs      x9, {{actlr_el1|ACTLR_EL1}}
3536 # CHECK: mrs      x9, {{actlr_el2|ACTLR_EL2}}
3537 # CHECK: mrs      x9, {{actlr_el3|ACTLR_EL3}}
3538 # CHECK: mrs      x9, {{cpacr_el1|CPACR_EL1}}
3539 # CHECK: mrs      x9, {{hcr_el2|HCR_EL2}}
3540 # CHECK: mrs      x9, {{scr_el3|SCR_EL3}}
3541 # CHECK: mrs      x9, {{mdcr_el2|MDCR_EL2}}
3542 # CHECK: mrs      x9, {{sder32_el3|SDER32_EL3}}
3543 # CHECK: mrs      x9, {{cptr_el2|CPTR_EL2}}
3544 # CHECK: mrs      x9, {{cptr_el3|CPTR_EL3}}
3545 # CHECK: mrs      x9, {{hstr_el2|HSTR_EL2}}
3546 # CHECK: mrs      x9, {{hacr_el2|HACR_EL2}}
3547 # CHECK: mrs      x9, {{mdcr_el3|MDCR_EL3}}
3548 # CHECK: mrs      x9, {{ttbr0_el1|TTBR0_EL1}}
3549 # CHECK: mrs      x9, {{ttbr0_el2|TTBR0_EL2}}
3550 # CHECK: mrs      x9, {{ttbr0_el3|TTBR0_EL3}}
3551 # CHECK: mrs      x9, {{ttbr1_el1|TTBR1_EL1}}
3552 # CHECK: mrs      x9, {{tcr_el1|TCR_EL1}}
3553 # CHECK: mrs      x9, {{tcr_el2|TCR_EL2}}
3554 # CHECK: mrs      x9, {{tcr_el3|TCR_EL3}}
3555 # CHECK: mrs      x9, {{vttbr_el2|VTTBR_EL2}}
3556 # CHECK: mrs      x9, {{vtcr_el2|VTCR_EL2}}
3557 # CHECK: mrs      x9, {{dacr32_el2|DACR32_EL2}}
3558 # CHECK: mrs      x9, {{spsr_el1|SPSR_EL1}}
3559 # CHECK: mrs      x9, {{spsr_el2|SPSR_EL2}}
3560 # CHECK: mrs      x9, {{spsr_el3|SPSR_EL3}}
3561 # CHECK: mrs      x9, {{elr_el1|ELR_EL1}}
3562 # CHECK: mrs      x9, {{elr_el2|ELR_EL2}}
3563 # CHECK: mrs      x9, {{elr_el3|ELR_EL3}}
3564 # CHECK: mrs      x9, {{sp_el0|SP_EL0}}
3565 # CHECK: mrs      x9, {{sp_el1|SP_EL1}}
3566 # CHECK: mrs      x9, {{sp_el2|SP_EL2}}
3567 # CHECK: mrs      x9, {{SPSel|SPSEL}}
3568 # CHECK: mrs      x9, {{nzcv|NZCV}}
3569 # CHECK: mrs      x9, {{daif|DAIF}}
3570 # CHECK: mrs      x9, {{CurrentEL|CURRENTEL}}
3571 # CHECK: mrs      x9, {{SPSR_irq|SPSR_IRQ}}
3572 # CHECK: mrs      x9, {{SPSR_abt|SPSR_ABT}}
3573 # CHECK: mrs      x9, {{SPSR_und|SPSR_UND}}
3574 # CHECK: mrs      x9, {{SPSR_fiq|SPSR_FIQ}}
3575 # CHECK: mrs      x9, {{fpcr|FPCR}}
3576 # CHECK: mrs      x9, {{fpsr|FPSR}}
3577 # CHECK: mrs      x9, {{dspsr_el0|DSPSR_EL0}}
3578 # CHECK: mrs      x9, {{dlr_el0|DLR_EL0}}
3579 # CHECK: mrs      x9, {{ifsr32_el2|IFSR32_EL2}}
3580 # CHECK: mrs      x9, {{afsr0_el1|AFSR0_EL1}}
3581 # CHECK: mrs      x9, {{afsr0_el2|AFSR0_EL2}}
3582 # CHECK: mrs      x9, {{afsr0_el3|AFSR0_EL3}}
3583 # CHECK: mrs      x9, {{afsr1_el1|AFSR1_EL1}}
3584 # CHECK: mrs      x9, {{afsr1_el2|AFSR1_EL2}}
3585 # CHECK: mrs      x9, {{afsr1_el3|AFSR1_EL3}}
3586 # CHECK: mrs      x9, {{esr_el1|ESR_EL1}}
3587 # CHECK: mrs      x9, {{esr_el2|ESR_EL2}}
3588 # CHECK: mrs      x9, {{esr_el3|ESR_EL3}}
3589 # CHECK: mrs      x9, {{fpexc32_el2|FPEXC32_EL2}}
3590 # CHECK: mrs      x9, {{far_el1|FAR_EL1}}
3591 # CHECK: mrs      x9, {{far_el2|FAR_EL2}}
3592 # CHECK: mrs      x9, {{far_el3|FAR_EL3}}
3593 # CHECK: mrs      x9, {{hpfar_el2|HPFAR_EL2}}
3594 # CHECK: mrs      x9, {{par_el1|PAR_EL1}}
3595 # CHECK: mrs      x9, {{pmcr_el0|PMCR_EL0}}
3596 # CHECK: mrs      x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3597 # CHECK: mrs      x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3598 # CHECK: mrs      x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3599 # CHECK: mrs      x9, {{pmselr_el0|PMSELR_EL0}}
3600 # CHECK: mrs      x9, {{pmceid0_el0|PMCEID0_EL0}}
3601 # CHECK: mrs      x9, {{pmceid1_el0|PMCEID1_EL0}}
3602 # CHECK: mrs      x9, {{pmccntr_el0|PMCCNTR_EL0}}
3603 # CHECK: mrs      x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3604 # CHECK: mrs      x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3605 # CHECK: mrs      x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3606 # CHECK: mrs      x9, {{pmintenset_el1|PMINTENSET_EL1}}
3607 # CHECK: mrs      x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3608 # CHECK: mrs      x9, {{pmovsset_el0|PMOVSSET_EL0}}
3609 # CHECK: mrs      x9, {{mair_el1|MAIR_EL1}}
3610 # CHECK: mrs      x9, {{mair_el2|MAIR_EL2}}
3611 # CHECK: mrs      x9, {{mair_el3|MAIR_EL3}}
3612 # CHECK: mrs      x9, {{amair_el1|AMAIR_EL1}}
3613 # CHECK: mrs      x9, {{amair_el2|AMAIR_EL2}}
3614 # CHECK: mrs      x9, {{amair_el3|AMAIR_EL3}}
3615 # CHECK: mrs      x9, {{vbar_el1|VBAR_EL1}}
3616 # CHECK: mrs      x9, {{vbar_el2|VBAR_EL2}}
3617 # CHECK: mrs      x9, {{vbar_el3|VBAR_EL3}}
3618 # CHECK: mrs      x9, {{rvbar_el1|RVBAR_EL1}}
3619 # CHECK: mrs      x9, {{rvbar_el2|RVBAR_EL2}}
3620 # CHECK: mrs      x9, {{rvbar_el3|RVBAR_EL3}}
3621 # CHECK: mrs      x9, {{rmr_el1|RMR_EL1}}
3622 # CHECK: mrs      x9, {{rmr_el2|RMR_EL2}}
3623 # CHECK: mrs      x9, {{rmr_el3|RMR_EL3}}
3624 # CHECK: mrs      x9, {{isr_el1|ISR_EL1}}
3625 # CHECK: mrs      x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3626 # CHECK: mrs      x9, {{tpidr_el0|TPIDR_EL0}}
3627 # CHECK: mrs      x9, {{tpidr_el2|TPIDR_EL2}}
3628 # CHECK: mrs      x9, {{tpidr_el3|TPIDR_EL3}}
3629 # CHECK: mrs      x9, {{tpidrro_el0|TPIDRRO_EL0}}
3630 # CHECK: mrs      x9, {{tpidr_el1|TPIDR_EL1}}
3631 # CHECK: mrs      x9, {{cntfrq_el0|CNTFRQ_EL0}}
3632 # CHECK: mrs      x9, {{cntpct_el0|CNTPCT_EL0}}
3633 # CHECK: mrs      x9, {{cntvct_el0|CNTVCT_EL0}}
3634 # CHECK: mrs      x9, {{cntvoff_el2|CNTVOFF_EL2}}
3635 # CHECK: mrs      x9, {{cntkctl_el1|CNTKCTL_EL1}}
3636 # CHECK: mrs      x9, {{cnthctl_el2|CNTHCTL_EL2}}
3637 # CHECK: mrs      x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3638 # CHECK: mrs      x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3639 # CHECK: mrs      x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3640 # CHECK: mrs      x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3641 # CHECK: mrs      x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3642 # CHECK: mrs      x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3643 # CHECK: mrs      x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3644 # CHECK: mrs      x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3645 # CHECK: mrs      x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3646 # CHECK: mrs      x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3647 # CHECK: mrs      x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3648 # CHECK: mrs      x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3649 # CHECK: mrs      x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3650 # CHECK: mrs      x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3651 # CHECK: mrs      x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3652 # CHECK: mrs      x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3653 # CHECK: mrs      x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3654 # CHECK: mrs      x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3655 # CHECK: mrs      x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3656 # CHECK: mrs      x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3657 # CHECK: mrs      x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3658 # CHECK: mrs      x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3659 # CHECK: mrs      x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3660 # CHECK: mrs      x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3661 # CHECK: mrs      x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3662 # CHECK: mrs      x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3663 # CHECK: mrs      x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3664 # CHECK: mrs      x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3665 # CHECK: mrs      x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3666 # CHECK: mrs      x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3667 # CHECK: mrs      x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3668 # CHECK: mrs      x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3669 # CHECK: mrs      x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3670 # CHECK: mrs      x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3671 # CHECK: mrs      x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3672 # CHECK: mrs      x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3673 # CHECK: mrs      x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3674 # CHECK: mrs      x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3675 # CHECK: mrs      x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3676 # CHECK: mrs      x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3677 # CHECK: mrs      x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3678 # CHECK: mrs      x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3679 # CHECK: mrs      x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3680 # CHECK: mrs      x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3681 # CHECK: mrs      x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3682 # CHECK: mrs      x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3683 # CHECK: mrs      x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3684 # CHECK: mrs      x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3685 # CHECK: mrs      x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3686 # CHECK: mrs      x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3687 # CHECK: mrs      x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3688 # CHECK: mrs      x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3689 # CHECK: mrs      x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3690 # CHECK: mrs      x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3691 # CHECK: mrs      x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3692 # CHECK: mrs      x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3693 # CHECK: mrs      x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3694 # CHECK: mrs      x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3695 # CHECK: mrs      x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3696 # CHECK: mrs      x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3697 # CHECK: mrs      x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3698 # CHECK: mrs      x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3699 # CHECK: mrs      x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3700 # CHECK: mrs      x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3701 # CHECK: mrs      x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3702 # CHECK: mrs      x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3703 # CHECK: mrs      x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3704 # CHECK: mrs      x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3705 # CHECK: mrs      x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3706 # CHECK: mrs      x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3707 # CHECK: mrs      x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3708 # CHECK: mrs      x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3709 # CHECK: mrs      x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3710 # CHECK: mrs      x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3711 # CHECK: mrs      x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3712
3713 0xc 0x0 0x12 0xd5
3714 0x4c 0x0 0x10 0xd5
3715 0xc 0x2 0x10 0xd5
3716 0x4c 0x2 0x10 0xd5
3717 0x4c 0x3 0x10 0xd5
3718 0xc 0x4 0x13 0xd5
3719 0xc 0x5 0x13 0xd5
3720 0x4c 0x6 0x10 0xd5
3721 0xc 0x7 0x14 0xd5
3722 0x8c 0x0 0x10 0xd5
3723 0x8c 0x1 0x10 0xd5
3724 0x8c 0x2 0x10 0xd5
3725 0x8c 0x3 0x10 0xd5
3726 0x8c 0x4 0x10 0xd5
3727 0x8c 0x5 0x10 0xd5
3728 0x8c 0x6 0x10 0xd5
3729 0x8c 0x7 0x10 0xd5
3730 0x8c 0x8 0x10 0xd5
3731 0x8c 0x9 0x10 0xd5
3732 0x8c 0xa 0x10 0xd5
3733 0x8c 0xb 0x10 0xd5
3734 0x8c 0xc 0x10 0xd5
3735 0x8c 0xd 0x10 0xd5
3736 0x8c 0xe 0x10 0xd5
3737 0x8c 0xf 0x10 0xd5
3738 0xac 0x0 0x10 0xd5
3739 0xac 0x1 0x10 0xd5
3740 0xac 0x2 0x10 0xd5
3741 0xac 0x3 0x10 0xd5
3742 0xac 0x4 0x10 0xd5
3743 0xac 0x5 0x10 0xd5
3744 0xac 0x6 0x10 0xd5
3745 0xac 0x7 0x10 0xd5
3746 0xac 0x8 0x10 0xd5
3747 0xac 0x9 0x10 0xd5
3748 0xac 0xa 0x10 0xd5
3749 0xac 0xb 0x10 0xd5
3750 0xac 0xc 0x10 0xd5
3751 0xac 0xd 0x10 0xd5
3752 0xac 0xe 0x10 0xd5
3753 0xac 0xf 0x10 0xd5
3754 0xcc 0x0 0x10 0xd5
3755 0xcc 0x1 0x10 0xd5
3756 0xcc 0x2 0x10 0xd5
3757 0xcc 0x3 0x10 0xd5
3758 0xcc 0x4 0x10 0xd5
3759 0xcc 0x5 0x10 0xd5
3760 0xcc 0x6 0x10 0xd5
3761 0xcc 0x7 0x10 0xd5
3762 0xcc 0x8 0x10 0xd5
3763 0xcc 0x9 0x10 0xd5
3764 0xcc 0xa 0x10 0xd5
3765 0xcc 0xb 0x10 0xd5
3766 0xcc 0xc 0x10 0xd5
3767 0xcc 0xd 0x10 0xd5
3768 0xcc 0xe 0x10 0xd5
3769 0xcc 0xf 0x10 0xd5
3770 0xec 0x0 0x10 0xd5
3771 0xec 0x1 0x10 0xd5
3772 0xec 0x2 0x10 0xd5
3773 0xec 0x3 0x10 0xd5
3774 0xec 0x4 0x10 0xd5
3775 0xec 0x5 0x10 0xd5
3776 0xec 0x6 0x10 0xd5
3777 0xec 0x7 0x10 0xd5
3778 0xec 0x8 0x10 0xd5
3779 0xec 0x9 0x10 0xd5
3780 0xec 0xa 0x10 0xd5
3781 0xec 0xb 0x10 0xd5
3782 0xec 0xc 0x10 0xd5
3783 0xec 0xd 0x10 0xd5
3784 0xec 0xe 0x10 0xd5
3785 0xec 0xf 0x10 0xd5
3786 0xc 0x10 0x12 0xd5
3787 0x8c 0x10 0x10 0xd5
3788 0x8c 0x13 0x10 0xd5
3789 0x8c 0x14 0x10 0xd5
3790 0xcc 0x78 0x10 0xd5
3791 0xcc 0x79 0x10 0xd5
3792 0xc 0x0 0x1a 0xd5
3793 0xc 0x0 0x1c 0xd5
3794 0xac 0x0 0x1c 0xd5
3795 0xc 0x10 0x18 0xd5
3796 0xc 0x10 0x1c 0xd5
3797 0xc 0x10 0x1e 0xd5
3798 0x2c 0x10 0x18 0xd5
3799 0x2c 0x10 0x1c 0xd5
3800 0x2c 0x10 0x1e 0xd5
3801 0x4c 0x10 0x18 0xd5
3802 0xc 0x11 0x1c 0xd5
3803 0xc 0x11 0x1e 0xd5
3804 0x2c 0x11 0x1c 0xd5
3805 0x2c 0x11 0x1e 0xd5
3806 0x4c 0x11 0x1c 0xd5
3807 0x4c 0x11 0x1e 0xd5
3808 0x6c 0x11 0x1c 0xd5
3809 0xec 0x11 0x1c 0xd5
3810 0x2c 0x13 0x1e 0xd5
3811 0xc 0x20 0x18 0xd5
3812 0xc 0x20 0x1c 0xd5
3813 0xc 0x20 0x1e 0xd5
3814 0x2c 0x20 0x18 0xd5
3815 0x4c 0x20 0x18 0xd5
3816 0x4c 0x20 0x1c 0xd5
3817 0x4c 0x20 0x1e 0xd5
3818 0xc 0x21 0x1c 0xd5
3819 0x4c 0x21 0x1c 0xd5
3820 0xc 0x30 0x1c 0xd5
3821 0xc 0x40 0x18 0xd5
3822 0xc 0x40 0x1c 0xd5
3823 0xc 0x40 0x1e 0xd5
3824 0x2c 0x40 0x18 0xd5
3825 0x2c 0x40 0x1c 0xd5
3826 0x2c 0x40 0x1e 0xd5
3827 0xc 0x41 0x18 0xd5
3828 0xc 0x41 0x1c 0xd5
3829 0xc 0x41 0x1e 0xd5
3830 0xc 0x42 0x18 0xd5
3831 0xc 0x42 0x1b 0xd5
3832 0x2c 0x42 0x1b 0xd5
3833 0x4c 0x42 0x18 0xd5
3834 0xc 0x43 0x1c 0xd5
3835 0x2c 0x43 0x1c 0xd5
3836 0x4c 0x43 0x1c 0xd5
3837 0x6c 0x43 0x1c 0xd5
3838 0xc 0x44 0x1b 0xd5
3839 0x2c 0x44 0x1b 0xd5
3840 0xc 0x45 0x1b 0xd5
3841 0x2c 0x45 0x1b 0xd5
3842 0x2c 0x50 0x1c 0xd5
3843 0xc 0x51 0x18 0xd5
3844 0xc 0x51 0x1c 0xd5
3845 0xc 0x51 0x1e 0xd5
3846 0x2c 0x51 0x18 0xd5
3847 0x2c 0x51 0x1c 0xd5
3848 0x2c 0x51 0x1e 0xd5
3849 0xc 0x52 0x18 0xd5
3850 0xc 0x52 0x1c 0xd5
3851 0xc 0x52 0x1e 0xd5
3852 0xc 0x53 0x1c 0xd5
3853 0xc 0x60 0x18 0xd5
3854 0xc 0x60 0x1c 0xd5
3855 0xc 0x60 0x1e 0xd5
3856 0x8c 0x60 0x1c 0xd5
3857 0xc 0x74 0x18 0xd5
3858 0xc 0x9c 0x1b 0xd5
3859 0x2c 0x9c 0x1b 0xd5
3860 0x4c 0x9c 0x1b 0xd5
3861 0x6c 0x9c 0x1b 0xd5
3862 0xac 0x9c 0x1b 0xd5
3863 0xc 0x9d 0x1b 0xd5
3864 0x2c 0x9d 0x1b 0xd5
3865 0x4c 0x9d 0x1b 0xd5
3866 0xc 0x9e 0x1b 0xd5
3867 0x2c 0x9e 0x18 0xd5
3868 0x4c 0x9e 0x18 0xd5
3869 0x6c 0x9e 0x1b 0xd5
3870 0xc 0xa2 0x18 0xd5
3871 0xc 0xa2 0x1c 0xd5
3872 0xc 0xa2 0x1e 0xd5
3873 0xc 0xa3 0x18 0xd5
3874 0xc 0xa3 0x1c 0xd5
3875 0xc 0xa3 0x1e 0xd5
3876 0xc 0xc0 0x18 0xd5
3877 0xc 0xc0 0x1c 0xd5
3878 0xc 0xc0 0x1e 0xd5
3879 0x4c 0xc0 0x18 0xd5
3880 0x4c 0xc0 0x1c 0xd5
3881 0x4c 0xc0 0x1e 0xd5
3882 0x4c 0xd0 0x1b 0xd5
3883 0x4c 0xd0 0x1c 0xd5
3884 0x4c 0xd0 0x1e 0xd5
3885 0x6c 0xd0 0x1b 0xd5
3886 0x8c 0xd0 0x18 0xd5
3887 0xc 0xe0 0x1b 0xd5
3888 0x6c 0xe0 0x1c 0xd5
3889 0xc 0xe1 0x18 0xd5
3890 0xc 0xe1 0x1c 0xd5
3891 0xc 0xe2 0x1b 0xd5
3892 0xc 0xe2 0x1c 0xd5
3893 0xc 0xe2 0x1f 0xd5
3894 0x2c 0xe2 0x1b 0xd5
3895 0x2c 0xe2 0x1c 0xd5
3896 0x2c 0xe2 0x1f 0xd5
3897 0x4c 0xe2 0x1b 0xd5
3898 0x4c 0xe2 0x1c 0xd5
3899 0x4c 0xe2 0x1f 0xd5
3900 0xc 0xe3 0x1b 0xd5
3901 0x2c 0xe3 0x1b 0xd5
3902 0x4c 0xe3 0x1b 0xd5
3903 0xc 0xe8 0x1b 0xd5
3904 0x2c 0xe8 0x1b 0xd5
3905 0x4c 0xe8 0x1b 0xd5
3906 0x6c 0xe8 0x1b 0xd5
3907 0x8c 0xe8 0x1b 0xd5
3908 0xac 0xe8 0x1b 0xd5
3909 0xcc 0xe8 0x1b 0xd5
3910 0xec 0xe8 0x1b 0xd5
3911 0xc 0xe9 0x1b 0xd5
3912 0x2c 0xe9 0x1b 0xd5
3913 0x4c 0xe9 0x1b 0xd5
3914 0x6c 0xe9 0x1b 0xd5
3915 0x8c 0xe9 0x1b 0xd5
3916 0xac 0xe9 0x1b 0xd5
3917 0xcc 0xe9 0x1b 0xd5
3918 0xec 0xe9 0x1b 0xd5
3919 0xc 0xea 0x1b 0xd5
3920 0x2c 0xea 0x1b 0xd5
3921 0x4c 0xea 0x1b 0xd5
3922 0x6c 0xea 0x1b 0xd5
3923 0x8c 0xea 0x1b 0xd5
3924 0xac 0xea 0x1b 0xd5
3925 0xcc 0xea 0x1b 0xd5
3926 0xec 0xea 0x1b 0xd5
3927 0xc 0xeb 0x1b 0xd5
3928 0x2c 0xeb 0x1b 0xd5
3929 0x4c 0xeb 0x1b 0xd5
3930 0x6c 0xeb 0x1b 0xd5
3931 0x8c 0xeb 0x1b 0xd5
3932 0xac 0xeb 0x1b 0xd5
3933 0xcc 0xeb 0x1b 0xd5
3934 0xec 0xef 0x1b 0xd5
3935 0xc 0xec 0x1b 0xd5
3936 0x2c 0xec 0x1b 0xd5
3937 0x4c 0xec 0x1b 0xd5
3938 0x6c 0xec 0x1b 0xd5
3939 0x8c 0xec 0x1b 0xd5
3940 0xac 0xec 0x1b 0xd5
3941 0xcc 0xec 0x1b 0xd5
3942 0xec 0xec 0x1b 0xd5
3943 0xc 0xed 0x1b 0xd5
3944 0x2c 0xed 0x1b 0xd5
3945 0x4c 0xed 0x1b 0xd5
3946 0x6c 0xed 0x1b 0xd5
3947 0x8c 0xed 0x1b 0xd5
3948 0xac 0xed 0x1b 0xd5
3949 0xcc 0xed 0x1b 0xd5
3950 0xec 0xed 0x1b 0xd5
3951 0xc 0xee 0x1b 0xd5
3952 0x2c 0xee 0x1b 0xd5
3953 0x4c 0xee 0x1b 0xd5
3954 0x6c 0xee 0x1b 0xd5
3955 0x8c 0xee 0x1b 0xd5
3956 0xac 0xee 0x1b 0xd5
3957 0xcc 0xee 0x1b 0xd5
3958 0xec 0xee 0x1b 0xd5
3959 0xc 0xef 0x1b 0xd5
3960 0x2c 0xef 0x1b 0xd5
3961 0x4c 0xef 0x1b 0xd5
3962 0x6c 0xef 0x1b 0xd5
3963 0x8c 0xef 0x1b 0xd5
3964 0xac 0xef 0x1b 0xd5
3965 0xcc 0xef 0x1b 0xd5
3966 0x9 0x0 0x32 0xd5
3967 0x49 0x0 0x30 0xd5
3968 0x9 0x1 0x33 0xd5
3969 0x9 0x2 0x30 0xd5
3970 0x49 0x2 0x30 0xd5
3971 0x49 0x3 0x30 0xd5
3972 0x9 0x4 0x33 0xd5
3973 0x9 0x5 0x33 0xd5
3974 0x49 0x6 0x30 0xd5
3975 0x9 0x7 0x34 0xd5
3976 0x89 0x0 0x30 0xd5
3977 0x89 0x1 0x30 0xd5
3978 0x89 0x2 0x30 0xd5
3979 0x89 0x3 0x30 0xd5
3980 0x89 0x4 0x30 0xd5
3981 0x89 0x5 0x30 0xd5
3982 0x89 0x6 0x30 0xd5
3983 0x89 0x7 0x30 0xd5
3984 0x89 0x8 0x30 0xd5
3985 0x89 0x9 0x30 0xd5
3986 0x89 0xa 0x30 0xd5
3987 0x89 0xb 0x30 0xd5
3988 0x89 0xc 0x30 0xd5
3989 0x89 0xd 0x30 0xd5
3990 0x89 0xe 0x30 0xd5
3991 0x89 0xf 0x30 0xd5
3992 0xa9 0x0 0x30 0xd5
3993 0xa9 0x1 0x30 0xd5
3994 0xa9 0x2 0x30 0xd5
3995 0xa9 0x3 0x30 0xd5
3996 0xa9 0x4 0x30 0xd5
3997 0xa9 0x5 0x30 0xd5
3998 0xa9 0x6 0x30 0xd5
3999 0xa9 0x7 0x30 0xd5
4000 0xa9 0x8 0x30 0xd5
4001 0xa9 0x9 0x30 0xd5
4002 0xa9 0xa 0x30 0xd5
4003 0xa9 0xb 0x30 0xd5
4004 0xa9 0xc 0x30 0xd5
4005 0xa9 0xd 0x30 0xd5
4006 0xa9 0xe 0x30 0xd5
4007 0xa9 0xf 0x30 0xd5
4008 0xc9 0x0 0x30 0xd5
4009 0xc9 0x1 0x30 0xd5
4010 0xc9 0x2 0x30 0xd5
4011 0xc9 0x3 0x30 0xd5
4012 0xc9 0x4 0x30 0xd5
4013 0xc9 0x5 0x30 0xd5
4014 0xc9 0x6 0x30 0xd5
4015 0xc9 0x7 0x30 0xd5
4016 0xc9 0x8 0x30 0xd5
4017 0xc9 0x9 0x30 0xd5
4018 0xc9 0xa 0x30 0xd5
4019 0xc9 0xb 0x30 0xd5
4020 0xc9 0xc 0x30 0xd5
4021 0xc9 0xd 0x30 0xd5
4022 0xc9 0xe 0x30 0xd5
4023 0xc9 0xf 0x30 0xd5
4024 0xe9 0x0 0x30 0xd5
4025 0xe9 0x1 0x30 0xd5
4026 0xe9 0x2 0x30 0xd5
4027 0xe9 0x3 0x30 0xd5
4028 0xe9 0x4 0x30 0xd5
4029 0xe9 0x5 0x30 0xd5
4030 0xe9 0x6 0x30 0xd5
4031 0xe9 0x7 0x30 0xd5
4032 0xe9 0x8 0x30 0xd5
4033 0xe9 0x9 0x30 0xd5
4034 0xe9 0xa 0x30 0xd5
4035 0xe9 0xb 0x30 0xd5
4036 0xe9 0xc 0x30 0xd5
4037 0xe9 0xd 0x30 0xd5
4038 0xe9 0xe 0x30 0xd5
4039 0xe9 0xf 0x30 0xd5
4040 0x9 0x10 0x30 0xd5
4041 0x9 0x10 0x32 0xd5
4042 0x89 0x11 0x30 0xd5
4043 0x89 0x13 0x30 0xd5
4044 0x89 0x14 0x30 0xd5
4045 0xc9 0x78 0x30 0xd5
4046 0xc9 0x79 0x30 0xd5
4047 0xc9 0x7e 0x30 0xd5
4048 0x9 0x0 0x38 0xd5
4049 0x9 0x0 0x39 0xd5
4050 0x9 0x0 0x3a 0xd5
4051 0x9 0x0 0x3c 0xd5
4052 0x29 0x0 0x39 0xd5
4053 0x29 0x0 0x3b 0xd5
4054 0xa9 0x0 0x38 0xd5
4055 0xa9 0x0 0x3c 0xd5
4056 0xc9 0x0 0x38 0xd5
4057 0xe9 0x0 0x39 0xd5
4058 0xe9 0x0 0x3b 0xd5
4059 0x9 0x1 0x38 0xd5
4060 0x29 0x1 0x38 0xd5
4061 0x49 0x1 0x38 0xd5
4062 0x69 0x1 0x38 0xd5
4063 0x89 0x1 0x38 0xd5
4064 0xa9 0x1 0x38 0xd5
4065 0xc9 0x1 0x38 0xd5
4066 0xe9 0x1 0x38 0xd5
4067 0xc9 0x2 0x38 0xd5
4068 0x9 0x2 0x38 0xd5
4069 0x29 0x2 0x38 0xd5
4070 0x49 0x2 0x38 0xd5
4071 0x69 0x2 0x38 0xd5
4072 0x89 0x2 0x38 0xd5
4073 0xa9 0x2 0x38 0xd5
4074 0x9 0x3 0x38 0xd5
4075 0x29 0x3 0x38 0xd5
4076 0x49 0x3 0x38 0xd5
4077 0x9 0x4 0x38 0xd5
4078 0x29 0x4 0x38 0xd5
4079 0x9 0x5 0x38 0xd5
4080 0x29 0x5 0x38 0xd5
4081 0x89 0x5 0x38 0xd5
4082 0xa9 0x5 0x38 0xd5
4083 0x9 0x6 0x38 0xd5
4084 0x29 0x6 0x38 0xd5
4085 0x9 0x7 0x38 0xd5
4086 0x29 0x7 0x38 0xd5
4087 0x9 0x10 0x38 0xd5
4088 0x9 0x10 0x3c 0xd5
4089 0x9 0x10 0x3e 0xd5
4090 0x29 0x10 0x38 0xd5
4091 0x29 0x10 0x3c 0xd5
4092 0x29 0x10 0x3e 0xd5
4093 0x49 0x10 0x38 0xd5
4094 0x9 0x11 0x3c 0xd5
4095 0x9 0x11 0x3e 0xd5
4096 0x29 0x11 0x3c 0xd5
4097 0x29 0x11 0x3e 0xd5
4098 0x49 0x11 0x3c 0xd5
4099 0x49 0x11 0x3e 0xd5
4100 0x69 0x11 0x3c 0xd5
4101 0xe9 0x11 0x3c 0xd5
4102 0x29 0x13 0x3e 0xd5
4103 0x9 0x20 0x38 0xd5
4104 0x9 0x20 0x3c 0xd5
4105 0x9 0x20 0x3e 0xd5
4106 0x29 0x20 0x38 0xd5
4107 0x49 0x20 0x38 0xd5
4108 0x49 0x20 0x3c 0xd5
4109 0x49 0x20 0x3e 0xd5
4110 0x9 0x21 0x3c 0xd5
4111 0x49 0x21 0x3c 0xd5
4112 0x9 0x30 0x3c 0xd5
4113 0x9 0x40 0x38 0xd5
4114 0x9 0x40 0x3c 0xd5
4115 0x9 0x40 0x3e 0xd5
4116 0x29 0x40 0x38 0xd5
4117 0x29 0x40 0x3c 0xd5
4118 0x29 0x40 0x3e 0xd5
4119 0x9 0x41 0x38 0xd5
4120 0x9 0x41 0x3c 0xd5
4121 0x9 0x41 0x3e 0xd5
4122 0x9 0x42 0x38 0xd5
4123 0x9 0x42 0x3b 0xd5
4124 0x29 0x42 0x3b 0xd5
4125 0x49 0x42 0x38 0xd5
4126 0x9 0x43 0x3c 0xd5
4127 0x29 0x43 0x3c 0xd5
4128 0x49 0x43 0x3c 0xd5
4129 0x69 0x43 0x3c 0xd5
4130 0x9 0x44 0x3b 0xd5
4131 0x29 0x44 0x3b 0xd5
4132 0x9 0x45 0x3b 0xd5
4133 0x29 0x45 0x3b 0xd5
4134 0x29 0x50 0x3c 0xd5
4135 0x9 0x51 0x38 0xd5
4136 0x9 0x51 0x3c 0xd5
4137 0x9 0x51 0x3e 0xd5
4138 0x29 0x51 0x38 0xd5
4139 0x29 0x51 0x3c 0xd5
4140 0x29 0x51 0x3e 0xd5
4141 0x9 0x52 0x38 0xd5
4142 0x9 0x52 0x3c 0xd5
4143 0x9 0x52 0x3e 0xd5
4144 0x9 0x53 0x3c 0xd5
4145 0x9 0x60 0x38 0xd5
4146 0x9 0x60 0x3c 0xd5
4147 0x9 0x60 0x3e 0xd5
4148 0x89 0x60 0x3c 0xd5
4149 0x9 0x74 0x38 0xd5
4150 0x9 0x9c 0x3b 0xd5
4151 0x29 0x9c 0x3b 0xd5
4152 0x49 0x9c 0x3b 0xd5
4153 0x69 0x9c 0x3b 0xd5
4154 0xa9 0x9c 0x3b 0xd5
4155 0xc9 0x9c 0x3b 0xd5
4156 0xe9 0x9c 0x3b 0xd5
4157 0x9 0x9d 0x3b 0xd5
4158 0x29 0x9d 0x3b 0xd5
4159 0x49 0x9d 0x3b 0xd5
4160 0x9 0x9e 0x3b 0xd5
4161 0x29 0x9e 0x38 0xd5
4162 0x49 0x9e 0x38 0xd5
4163 0x69 0x9e 0x3b 0xd5
4164 0x9 0xa2 0x38 0xd5
4165 0x9 0xa2 0x3c 0xd5
4166 0x9 0xa2 0x3e 0xd5
4167 0x9 0xa3 0x38 0xd5
4168 0x9 0xa3 0x3c 0xd5
4169 0x9 0xa3 0x3e 0xd5
4170 0x9 0xc0 0x38 0xd5
4171 0x9 0xc0 0x3c 0xd5
4172 0x9 0xc0 0x3e 0xd5
4173 0x29 0xc0 0x38 0xd5
4174 0x29 0xc0 0x3c 0xd5
4175 0x29 0xc0 0x3e 0xd5
4176 0x49 0xc0 0x38 0xd5
4177 0x49 0xc0 0x3c 0xd5
4178 0x49 0xc0 0x3e 0xd5
4179 0x9 0xc1 0x38 0xd5
4180 0x29 0xd0 0x38 0xd5
4181 0x49 0xd0 0x3b 0xd5
4182 0x49 0xd0 0x3c 0xd5
4183 0x49 0xd0 0x3e 0xd5
4184 0x69 0xd0 0x3b 0xd5
4185 0x89 0xd0 0x38 0xd5
4186 0x9 0xe0 0x3b 0xd5
4187 0x29 0xe0 0x3b 0xd5
4188 0x49 0xe0 0x3b 0xd5
4189 0x69 0xe0 0x3c 0xd5
4190 0x9 0xe1 0x38 0xd5
4191 0x9 0xe1 0x3c 0xd5
4192 0x9 0xe2 0x3b 0xd5
4193 0x9 0xe2 0x3c 0xd5
4194 0x9 0xe2 0x3f 0xd5
4195 0x29 0xe2 0x3b 0xd5
4196 0x29 0xe2 0x3c 0xd5
4197 0x29 0xe2 0x3f 0xd5
4198 0x49 0xe2 0x3b 0xd5
4199 0x49 0xe2 0x3c 0xd5
4200 0x49 0xe2 0x3f 0xd5
4201 0x9 0xe3 0x3b 0xd5
4202 0x29 0xe3 0x3b 0xd5
4203 0x49 0xe3 0x3b 0xd5
4204 0x9 0xe8 0x3b 0xd5
4205 0x29 0xe8 0x3b 0xd5
4206 0x49 0xe8 0x3b 0xd5
4207 0x69 0xe8 0x3b 0xd5
4208 0x89 0xe8 0x3b 0xd5
4209 0xa9 0xe8 0x3b 0xd5
4210 0xc9 0xe8 0x3b 0xd5
4211 0xe9 0xe8 0x3b 0xd5
4212 0x9 0xe9 0x3b 0xd5
4213 0x29 0xe9 0x3b 0xd5
4214 0x49 0xe9 0x3b 0xd5
4215 0x69 0xe9 0x3b 0xd5
4216 0x89 0xe9 0x3b 0xd5
4217 0xa9 0xe9 0x3b 0xd5
4218 0xc9 0xe9 0x3b 0xd5
4219 0xe9 0xe9 0x3b 0xd5
4220 0x9 0xea 0x3b 0xd5
4221 0x29 0xea 0x3b 0xd5
4222 0x49 0xea 0x3b 0xd5
4223 0x69 0xea 0x3b 0xd5
4224 0x89 0xea 0x3b 0xd5
4225 0xa9 0xea 0x3b 0xd5
4226 0xc9 0xea 0x3b 0xd5
4227 0xe9 0xea 0x3b 0xd5
4228 0x9 0xeb 0x3b 0xd5
4229 0x29 0xeb 0x3b 0xd5
4230 0x49 0xeb 0x3b 0xd5
4231 0x69 0xeb 0x3b 0xd5
4232 0x89 0xeb 0x3b 0xd5
4233 0xa9 0xeb 0x3b 0xd5
4234 0xc9 0xeb 0x3b 0xd5
4235 0xe9 0xef 0x3b 0xd5
4236 0x9 0xec 0x3b 0xd5
4237 0x29 0xec 0x3b 0xd5
4238 0x49 0xec 0x3b 0xd5
4239 0x69 0xec 0x3b 0xd5
4240 0x89 0xec 0x3b 0xd5
4241 0xa9 0xec 0x3b 0xd5
4242 0xc9 0xec 0x3b 0xd5
4243 0xe9 0xec 0x3b 0xd5
4244 0x9 0xed 0x3b 0xd5
4245 0x29 0xed 0x3b 0xd5
4246 0x49 0xed 0x3b 0xd5
4247 0x69 0xed 0x3b 0xd5
4248 0x89 0xed 0x3b 0xd5
4249 0xa9 0xed 0x3b 0xd5
4250 0xc9 0xed 0x3b 0xd5
4251 0xe9 0xed 0x3b 0xd5
4252 0x9 0xee 0x3b 0xd5
4253 0x29 0xee 0x3b 0xd5
4254 0x49 0xee 0x3b 0xd5
4255 0x69 0xee 0x3b 0xd5
4256 0x89 0xee 0x3b 0xd5
4257 0xa9 0xee 0x3b 0xd5
4258 0xc9 0xee 0x3b 0xd5
4259 0xe9 0xee 0x3b 0xd5
4260 0x9 0xef 0x3b 0xd5
4261 0x29 0xef 0x3b 0xd5
4262 0x49 0xef 0x3b 0xd5
4263 0x69 0xef 0x3b 0xd5
4264 0x89 0xef 0x3b 0xd5
4265 0xa9 0xef 0x3b 0xd5
4266 0xc9 0xef 0x3b 0xd5
4267
4268 # CHECK: mrs     x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4269 # CHECK: mrs     x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4270 # CHECK: mrs     xzr, {{s0_0_c4_c0_0|S0_0_C4_C0_0}}
4271 # CHECK: msr     {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4272 # CHECK: msr     {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4273 # CHECK: msr     {{s0_0_c4_c0_0|S0_0_C4_C0_0}}, xzr
4274 0xac 0xf1 0x3f 0xd5
4275 0xed 0xbf 0x3a 0xd5
4276 0x1f 0x40 0x20 0xd5
4277 0x0c 0xf0 0x18 0xd5
4278 0xe5 0xbd 0x1f 0xd5
4279 0x1f 0x40 0x00 0xd5
4280
4281 #------------------------------------------------------------------------------
4282 # Test and branch (immediate)
4283 #------------------------------------------------------------------------------
4284
4285 # CHECK: tbz     x12, #62, #0
4286 # CHECK: tbz     x12, #62, #4
4287 # CHECK: tbz     x12, #62, #-32768
4288 # CHECK: tbnz    x12, #60, #32764
4289 0x0c 0x00 0xf0 0xb6
4290 0x2c 0x00 0xf0 0xb6
4291 0x0c 0x00 0xf4 0xb6
4292 0xec 0xff 0xe3 0xb7
4293
4294 #------------------------------------------------------------------------------
4295 # Unconditional branch (immediate)
4296 #------------------------------------------------------------------------------
4297
4298 # CHECK: b        #4
4299 # CHECK: b        #-4
4300 # CHECK: b        #134217724
4301 0x01 0x00 0x00 0x14
4302 0xff 0xff 0xff 0x17
4303 0xff 0xff 0xff 0x15
4304
4305 #------------------------------------------------------------------------------
4306 # Unconditional branch (register)
4307 #------------------------------------------------------------------------------
4308
4309 # CHECK: br       x20
4310 # CHECK: blr      xzr
4311 # CHECK: ret      x10
4312 0x80 0x2 0x1f 0xd6
4313 0xe0 0x3 0x3f 0xd6
4314 0x40 0x1 0x5f 0xd6
4315
4316 # CHECK: ret
4317 # CHECK: eret
4318 # CHECK: drps
4319 0xc0 0x3 0x5f 0xd6
4320 0xe0 0x3 0x9f 0xd6
4321 0xe0 0x3 0xbf 0xd6
4322