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