Add AArch64 as an experimental target.
[oota-llvm.git] / 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: udiv   w0, w7, w10
1024 # CHECK: udiv   x9, x22, x4
1025 # CHECK: sdiv   w12, w21, w0
1026 # CHECK: sdiv   x13, x2, x1
1027 # CHECK: lsl    w11, w12, w13
1028 # CHECK: lsl    x14, x15, x16
1029 # CHECK: lsr    w17, w18, w19
1030 # CHECK: lsr    x20, x21, x22
1031 # CHECK: asr    w23, w24, w25
1032 # CHECK: asr    x26, x27, x28
1033 # CHECK: ror    w0, w1, w2
1034 # CHECK: ror    x3, x4, x5
1035 0xe0 0x08 0xca 0x1a
1036 0xc9 0x0a 0xc4 0x9a
1037 0xac 0x0e 0xc0 0x1a
1038 0x4d 0x0c 0xc1 0x9a
1039 0x8b 0x21 0xcd 0x1a
1040 0xee 0x21 0xd0 0x9a
1041 0x51 0x26 0xd3 0x1a
1042 0xb4 0x26 0xd6 0x9a
1043 0x17 0x2b 0xd9 0x1a
1044 0x7a 0x2b 0xdc 0x9a
1045 0x20 0x2c 0xc2 0x1a
1046 0x83 0x2c 0xc5 0x9a
1047
1048 # CHECK: lsl    w6, w7, w8
1049 # CHECK: lsl    x9, x10, x11
1050 # CHECK: lsr    w12, w13, w14
1051 # CHECK: lsr    x15, x16, x17
1052 # CHECK: asr    w18, w19, w20
1053 # CHECK: asr    x21, x22, x23
1054 # CHECK: ror    w24, w25, w26
1055 # CHECK: ror    x27, x28, x29
1056 0xe6 0x20 0xc8 0x1a
1057 0x49 0x21 0xcb 0x9a
1058 0xac 0x25 0xce 0x1a
1059 0x0f 0x26 0xd1 0x9a
1060 0x72 0x2a 0xd4 0x1a
1061 0xd5 0x2a 0xd7 0x9a
1062 0x38 0x2f 0xda 0x1a
1063 0x9b 0x2f 0xdd 0x9a
1064
1065 #------------------------------------------------------------------------------
1066 # Data-processing (3 sources)
1067 #------------------------------------------------------------------------------
1068
1069 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1070 # and smulh have them).
1071
1072 # CHECK: smulh    x30, x29, x28
1073 # CHECK: smulh    xzr, x27, x26
1074 # CHECK: umulh    x30, x29, x28
1075 # CHECK: umulh    x23, x30, xzr
1076 0xbe 0x73 0x5c 0x9b
1077 0x7f 0x2f 0x5a 0x9b
1078 0xbe 0x3f 0xdc 0x9b
1079 0xd7 0x77 0xdf 0x9b
1080
1081 # Now onto the boilerplate stuff
1082
1083 # CHECK: madd     w1, w3, w7, w4
1084 # CHECK: madd     wzr, w0, w9, w11
1085 # CHECK: madd     w13, wzr, w4, w4
1086 # CHECK: madd     w19, w30, wzr, w29
1087 # CHECK: mul      w4, w5, w6
1088 0x61 0x10 0x7 0x1b
1089 0x1f 0x2c 0x9 0x1b
1090 0xed 0x13 0x4 0x1b
1091 0xd3 0x77 0x1f 0x1b
1092 0xa4 0x7c 0x6 0x1b
1093
1094 # CHECK: madd     x1, x3, x7, x4
1095 # CHECK: madd     xzr, x0, x9, x11
1096 # CHECK: madd     x13, xzr, x4, x4
1097 # CHECK: madd     x19, x30, xzr, x29
1098 # CHECK: mul      x4, x5, x6
1099 0x61 0x10 0x7 0x9b
1100 0x1f 0x2c 0x9 0x9b
1101 0xed 0x13 0x4 0x9b
1102 0xd3 0x77 0x1f 0x9b
1103 0xa4 0x7c 0x6 0x9b
1104
1105 # CHECK: msub     w1, w3, w7, w4
1106 # CHECK: msub     wzr, w0, w9, w11
1107 # CHECK: msub     w13, wzr, w4, w4
1108 # CHECK: msub     w19, w30, wzr, w29
1109 # CHECK: mneg     w4, w5, w6
1110 0x61 0x90 0x7 0x1b
1111 0x1f 0xac 0x9 0x1b
1112 0xed 0x93 0x4 0x1b
1113 0xd3 0xf7 0x1f 0x1b
1114 0xa4 0xfc 0x6 0x1b
1115
1116 # CHECK: msub     x1, x3, x7, x4
1117 # CHECK: msub     xzr, x0, x9, x11
1118 # CHECK: msub     x13, xzr, x4, x4
1119 # CHECK: msub     x19, x30, xzr, x29
1120 # CHECK: mneg     x4, x5, x6
1121 0x61 0x90 0x7 0x9b
1122 0x1f 0xac 0x9 0x9b
1123 0xed 0x93 0x4 0x9b
1124 0xd3 0xf7 0x1f 0x9b
1125 0xa4 0xfc 0x6 0x9b
1126
1127 # CHECK: smaddl   x3, w5, w2, x9
1128 # CHECK: smaddl   xzr, w10, w11, x12
1129 # CHECK: smaddl   x13, wzr, w14, x15
1130 # CHECK: smaddl   x16, w17, wzr, x18
1131 # CHECK: smull    x19, w20, w21
1132 0xa3 0x24 0x22 0x9b
1133 0x5f 0x31 0x2b 0x9b
1134 0xed 0x3f 0x2e 0x9b
1135 0x30 0x4a 0x3f 0x9b
1136 0x93 0x7e 0x35 0x9b
1137
1138 # CHECK: smsubl   x3, w5, w2, x9
1139 # CHECK: smsubl   xzr, w10, w11, x12
1140 # CHECK: smsubl   x13, wzr, w14, x15
1141 # CHECK: smsubl   x16, w17, wzr, x18
1142 # CHECK: smnegl   x19, w20, w21
1143 0xa3 0xa4 0x22 0x9b
1144 0x5f 0xb1 0x2b 0x9b
1145 0xed 0xbf 0x2e 0x9b
1146 0x30 0xca 0x3f 0x9b
1147 0x93 0xfe 0x35 0x9b
1148
1149 # CHECK: umaddl   x3, w5, w2, x9
1150 # CHECK: umaddl   xzr, w10, w11, x12
1151 # CHECK: umaddl   x13, wzr, w14, x15
1152 # CHECK: umaddl   x16, w17, wzr, x18
1153 # CHECK: umull    x19, w20, w21
1154 0xa3 0x24 0xa2 0x9b
1155 0x5f 0x31 0xab 0x9b
1156 0xed 0x3f 0xae 0x9b
1157 0x30 0x4a 0xbf 0x9b
1158 0x93 0x7e 0xb5 0x9b
1159
1160 # CHECK: umsubl   x3, w5, w2, x9
1161 # CHECK: umsubl   xzr, w10, w11, x12
1162 # CHECK: umsubl   x13, wzr, w14, x15
1163 # CHECK: umsubl   x16, w17, wzr, x18
1164 # CHECK: umnegl   x19, w20, w21
1165 0xa3 0xa4 0xa2 0x9b
1166 0x5f 0xb1 0xab 0x9b
1167 0xed 0xbf 0xae 0x9b
1168 0x30 0xca 0xbf 0x9b
1169 0x93 0xfe 0xb5 0x9b
1170
1171 # CHECK: smulh    x30, x29, x28
1172 # CHECK: smulh    xzr, x27, x26
1173 # CHECK: smulh    x25, xzr, x24
1174 # CHECK: smulh    x23, x22, xzr
1175 0xbe 0x7f 0x5c 0x9b
1176 0x7f 0x7f 0x5a 0x9b
1177 0xf9 0x7f 0x58 0x9b
1178 0xd7 0x7e 0x5f 0x9b
1179
1180 # CHECK: umulh    x30, x29, x28
1181 # CHECK: umulh    xzr, x27, x26
1182 # CHECK: umulh    x25, xzr, x24
1183 # CHECK: umulh    x23, x22, xzr
1184 0xbe 0x7f 0xdc 0x9b
1185 0x7f 0x7f 0xda 0x9b
1186 0xf9 0x7f 0xd8 0x9b
1187 0xd7 0x7e 0xdf 0x9b
1188
1189 # CHECK: mul      w3, w4, w5
1190 # CHECK: mul      wzr, w6, w7
1191 # CHECK: mul      w8, wzr, w9
1192 # CHECK: mul      w10, w11, wzr
1193 # CHECK: mul      x12, x13, x14
1194 # CHECK: mul      xzr, x15, x16
1195 # CHECK: mul      x17, xzr, x18
1196 # CHECK: mul      x19, x20, xzr
1197 0x83 0x7c 0x5 0x1b
1198 0xdf 0x7c 0x7 0x1b
1199 0xe8 0x7f 0x9 0x1b
1200 0x6a 0x7d 0x1f 0x1b
1201 0xac 0x7d 0xe 0x9b
1202 0xff 0x7d 0x10 0x9b
1203 0xf1 0x7f 0x12 0x9b
1204 0x93 0x7e 0x1f 0x9b
1205
1206 # CHECK: mneg     w21, w22, w23
1207 # CHECK: mneg     wzr, w24, w25
1208 # CHECK: mneg     w26, wzr, w27
1209 # CHECK: mneg     w28, w29, wzr
1210 0xd5 0xfe 0x17 0x1b
1211 0x1f 0xff 0x19 0x1b
1212 0xfa 0xff 0x1b 0x1b
1213 0xbc 0xff 0x1f 0x1b
1214
1215 # CHECK: smull    x11, w13, w17
1216 # CHECK: umull    x11, w13, w17
1217 # CHECK: smnegl   x11, w13, w17
1218 # CHECK: umnegl   x11, w13, w17
1219 0xab 0x7d 0x31 0x9b
1220 0xab 0x7d 0xb1 0x9b
1221 0xab 0xfd 0x31 0x9b
1222 0xab 0xfd 0xb1 0x9b
1223
1224 #------------------------------------------------------------------------------
1225 # Exception generation
1226 #------------------------------------------------------------------------------
1227
1228 # CHECK: svc      #0
1229 # CHECK: svc      #65535
1230 0x1 0x0 0x0 0xd4
1231 0xe1 0xff 0x1f 0xd4
1232
1233 # CHECK: hvc      #1
1234 # CHECK: smc      #12000
1235 # CHECK: brk      #12
1236 # CHECK: hlt      #123
1237 0x22 0x0 0x0 0xd4
1238 0x3 0xdc 0x5 0xd4
1239 0x80 0x1 0x20 0xd4
1240 0x60 0xf 0x40 0xd4
1241
1242 # CHECK: dcps1    #42
1243 # CHECK: dcps2    #9
1244 # CHECK: dcps3    #1000
1245 0x41 0x5 0xa0 0xd4
1246 0x22 0x1 0xa0 0xd4
1247 0x3 0x7d 0xa0 0xd4
1248
1249 # CHECK: dcps1
1250 # CHECK: dcps2
1251 # CHECK: dcps3
1252 0x1 0x0 0xa0 0xd4
1253 0x2 0x0 0xa0 0xd4
1254 0x3 0x0 0xa0 0xd4
1255
1256 #------------------------------------------------------------------------------
1257 # Extract (immediate)
1258 #------------------------------------------------------------------------------
1259
1260 # CHECK: extr     w3, w5, w7, #0
1261 # CHECK: extr     w11, w13, w17, #31
1262 0xa3 0x0 0x87 0x13
1263 0xab 0x7d 0x91 0x13
1264
1265 # CHECK: extr     x3, x5, x7, #15
1266 # CHECK: extr     x11, x13, x17, #63
1267 0xa3 0x3c 0xc7 0x93
1268 0xab 0xfd 0xd1 0x93
1269
1270 # CHECK: extr     x19, x23, x23, #24
1271 # CHECK: extr     x29, xzr, xzr, #63
1272 # CHECK: extr     w9, w13, w13, #31
1273 0xf3 0x62 0xd7 0x93
1274 0xfd 0xff 0xdf 0x93
1275 0xa9 0x7d 0x8d 0x13
1276
1277 #------------------------------------------------------------------------------
1278 # Floating-point compare
1279 #------------------------------------------------------------------------------
1280
1281 # CHECK: fcmp    s3, s5
1282 # CHECK: fcmp    s31, #0.0
1283 # CHECK: fcmp    s31, #0.0
1284 0x60 0x20 0x25 0x1e
1285 0xe8 0x23 0x20 0x1e
1286 0xe8 0x23 0x3f 0x1e
1287
1288 # CHECK: fcmpe   s29, s30
1289 # CHECK: fcmpe   s15, #0.0
1290 # CHECK: fcmpe   s15, #0.0
1291 0xb0 0x23 0x3e 0x1e
1292 0xf8 0x21 0x20 0x1e
1293 0xf8 0x21 0x2f 0x1e
1294
1295 # CHECK: fcmp    d4, d12
1296 # CHECK: fcmp    d23, #0.0
1297 # CHECK: fcmp    d23, #0.0
1298 0x80 0x20 0x6c 0x1e
1299 0xe8 0x22 0x60 0x1e
1300 0xe8 0x22 0x77 0x1e
1301
1302 # CHECK: fcmpe   d26, d22
1303 # CHECK: fcmpe   d29, #0.0
1304 # CHECK: fcmpe   d29, #0.0
1305 0x50 0x23 0x76 0x1e
1306 0xb8 0x23 0x60 0x1e
1307 0xb8 0x23 0x6d 0x1e
1308
1309 #------------------------------------------------------------------------------
1310 # Floating-point conditional compare
1311 #------------------------------------------------------------------------------
1312
1313 # CHECK: fccmp s1, s31, #0, eq
1314 # CHECK: fccmp s3, s0, #15, hs
1315 # CHECK: fccmp s31, s15, #13, hs
1316 0x20 0x04 0x3f 0x1e
1317 0x6f 0x24 0x20 0x1e
1318 0xed 0x27 0x2f 0x1e
1319
1320 # CHECK: fccmp d9, d31, #0, le
1321 # CHECK: fccmp d3, d0, #15, gt
1322 # CHECK: fccmp d31, d5, #7, ne
1323 0x20 0xd5 0x7f 0x1e
1324 0x6f 0xc4 0x60 0x1e
1325 0xe7 0x17 0x65 0x1e
1326
1327 # CHECK: fccmpe s1, s31, #0, eq
1328 # CHECK: fccmpe s3, s0, #15, hs
1329 # CHECK: fccmpe s31, s15, #13, hs
1330 0x30 0x04 0x3f 0x1e
1331 0x7f 0x24 0x20 0x1e
1332 0xfd 0x27 0x2f 0x1e
1333
1334 # CHECK: fccmpe d9, d31, #0, le
1335 # CHECK: fccmpe d3, d0, #15, gt
1336 # CHECK: fccmpe d31, d5, #7, ne
1337 0x30 0xd5 0x7f 0x1e
1338 0x7f 0xc4 0x60 0x1e
1339 0xf7 0x17 0x65 0x1e
1340
1341 #-------------------------------------------------------------------------------
1342 # Floating-point conditional compare
1343 #-------------------------------------------------------------------------------
1344
1345 # CHECK: fcsel s3, s20, s9, pl
1346 # CHECK: fcsel d9, d10, d11, mi
1347 0x83 0x5e 0x29 0x1e
1348 0x49 0x4d 0x6b 0x1e
1349
1350 #------------------------------------------------------------------------------
1351 # Floating-point data-processing (1 source)
1352 #------------------------------------------------------------------------------
1353
1354 # CHECK: fmov     s0, s1
1355 # CHECK: fabs     s2, s3
1356 # CHECK: fneg     s4, s5
1357 # CHECK: fsqrt    s6, s7
1358 # CHECK: fcvt     d8, s9
1359 # CHECK: fcvt     h10, s11
1360 # CHECK: frintn   s12, s13
1361 # CHECK: frintp   s14, s15
1362 # CHECK: frintm   s16, s17
1363 # CHECK: frintz   s18, s19
1364 # CHECK: frinta   s20, s21
1365 # CHECK: frintx   s22, s23
1366 # CHECK: frinti   s24, s25
1367 0x20 0x40 0x20 0x1e
1368 0x62 0xc0 0x20 0x1e
1369 0xa4 0x40 0x21 0x1e
1370 0xe6 0xc0 0x21 0x1e
1371 0x28 0xc1 0x22 0x1e
1372 0x6a 0xc1 0x23 0x1e
1373 0xac 0x41 0x24 0x1e
1374 0xee 0xc1 0x24 0x1e
1375 0x30 0x42 0x25 0x1e
1376 0x72 0xc2 0x25 0x1e
1377 0xb4 0x42 0x26 0x1e
1378 0xf6 0x42 0x27 0x1e
1379 0x38 0xc3 0x27 0x1e
1380
1381 # CHECK: fmov     d0, d1
1382 # CHECK: fabs     d2, d3
1383 # CHECK: fneg     d4, d5
1384 # CHECK: fsqrt    d6, d7
1385 # CHECK: fcvt     s8, d9
1386 # CHECK: fcvt     h10, d11
1387 # CHECK: frintn   d12, d13
1388 # CHECK: frintp   d14, d15
1389 # CHECK: frintm   d16, d17
1390 # CHECK: frintz   d18, d19
1391 # CHECK: frinta   d20, d21
1392 # CHECK: frintx   d22, d23
1393 # CHECK: frinti   d24, d25
1394 0x20 0x40 0x60 0x1e
1395 0x62 0xc0 0x60 0x1e
1396 0xa4 0x40 0x61 0x1e
1397 0xe6 0xc0 0x61 0x1e
1398 0x28 0x41 0x62 0x1e
1399 0x6a 0xc1 0x63 0x1e
1400 0xac 0x41 0x64 0x1e
1401 0xee 0xc1 0x64 0x1e
1402 0x30 0x42 0x65 0x1e
1403 0x72 0xc2 0x65 0x1e
1404 0xb4 0x42 0x66 0x1e
1405 0xf6 0x42 0x67 0x1e
1406 0x38 0xc3 0x67 0x1e
1407
1408 # CHECK: fcvt     s26, h27
1409 # CHECK: fcvt     d28, h29
1410 0x7a 0x43 0xe2 0x1e
1411 0xbc 0xc3 0xe2 0x1e
1412
1413 #------------------------------------------------------------------------------
1414 # Floating-point data-processing (2 sources)
1415 #------------------------------------------------------------------------------
1416
1417 # CHECK: fmul     s20, s19, s17
1418 # CHECK: fdiv     s1, s2, s3
1419 # CHECK: fadd     s4, s5, s6
1420 # CHECK: fsub     s7, s8, s9
1421 # CHECK: fmax     s10, s11, s12
1422 # CHECK: fmin     s13, s14, s15
1423 # CHECK: fmaxnm   s16, s17, s18
1424 # CHECK: fminnm   s19, s20, s21
1425 # CHECK: fnmul    s22, s23, s2
1426 0x74 0xa 0x31 0x1e
1427 0x41 0x18 0x23 0x1e
1428 0xa4 0x28 0x26 0x1e
1429 0x7 0x39 0x29 0x1e
1430 0x6a 0x49 0x2c 0x1e
1431 0xcd 0x59 0x2f 0x1e
1432 0x30 0x6a 0x32 0x1e
1433 0x93 0x7a 0x35 0x1e
1434 0xf6 0x8a 0x38 0x1e
1435
1436
1437 # CHECK: fmul     d20, d19, d17
1438 # CHECK: fdiv     d1, d2, d3
1439 # CHECK: fadd     d4, d5, d6
1440 # CHECK: fsub     d7, d8, d9
1441 # CHECK: fmax     d10, d11, d12
1442 # CHECK: fmin     d13, d14, d15
1443 # CHECK: fmaxnm   d16, d17, d18
1444 # CHECK: fminnm   d19, d20, d21
1445 # CHECK: fnmul    d22, d23, d24
1446 0x74 0xa 0x71 0x1e
1447 0x41 0x18 0x63 0x1e
1448 0xa4 0x28 0x66 0x1e
1449 0x7 0x39 0x69 0x1e
1450 0x6a 0x49 0x6c 0x1e
1451 0xcd 0x59 0x6f 0x1e
1452 0x30 0x6a 0x72 0x1e
1453 0x93 0x7a 0x75 0x1e
1454 0xf6 0x8a 0x78 0x1e
1455
1456 #------------------------------------------------------------------------------
1457 # Floating-point data-processing (1 source)
1458 #------------------------------------------------------------------------------
1459
1460 # CHECK: fmadd s3, s5, s6, s31
1461 # CHECK: fmadd d3, d13, d0, d23
1462 # CHECK: fmsub s3, s5, s6, s31
1463 # CHECK: fmsub d3, d13, d0, d23
1464 # CHECK: fnmadd s3, s5, s6, s31
1465 # CHECK: fnmadd d3, d13, d0, d23
1466 # CHECK: fnmsub s3, s5, s6, s31
1467 # CHECK: fnmsub d3, d13, d0, d23
1468 0xa3 0x7c 0x06 0x1f
1469 0xa3 0x5d 0x40 0x1f
1470 0xa3 0xfc 0x06 0x1f
1471 0xa3 0xdd 0x40 0x1f
1472 0xa3 0x7c 0x26 0x1f
1473 0xa3 0x5d 0x60 0x1f
1474 0xa3 0xfc 0x26 0x1f
1475 0xa3 0xdd 0x60 0x1f
1476
1477 #------------------------------------------------------------------------------
1478 # Floating-point <-> fixed-point conversion
1479 #------------------------------------------------------------------------------
1480
1481 # CHECK: fcvtzs  w3, s5, #1
1482 # CHECK: fcvtzs  wzr, s20, #13
1483 # CHECK: fcvtzs  w19, s0, #32
1484 0xa3 0xfc 0x18 0x1e
1485 0x9f 0xce 0x18 0x1e
1486 0x13 0x80 0x18 0x1e
1487
1488 # CHECK: fcvtzs  x3, s5, #1
1489 # CHECK: fcvtzs  x12, s30, #45
1490 # CHECK: fcvtzs  x19, s0, #64
1491 0xa3 0xfc 0x18 0x9e
1492 0xcc 0x4f 0x18 0x9e
1493 0x13 0x00 0x18 0x9e
1494
1495 # CHECK: fcvtzs  w3, d5, #1
1496 # CHECK: fcvtzs  wzr, d20, #13
1497 # CHECK: fcvtzs  w19, d0, #32
1498 0xa3 0xfc 0x58 0x1e
1499 0x9f 0xce 0x58 0x1e
1500 0x13 0x80 0x58 0x1e
1501
1502 # CHECK: fcvtzs  x3, d5, #1
1503 # CHECK: fcvtzs  x12, d30, #45
1504 # CHECK: fcvtzs  x19, d0, #64
1505 0xa3 0xfc 0x58 0x9e
1506 0xcc 0x4f 0x58 0x9e
1507 0x13 0x00 0x58 0x9e
1508
1509 # CHECK: fcvtzu  w3, s5, #1
1510 # CHECK: fcvtzu  wzr, s20, #13
1511 # CHECK: fcvtzu  w19, s0, #32
1512 0xa3 0xfc 0x19 0x1e
1513 0x9f 0xce 0x19 0x1e
1514 0x13 0x80 0x19 0x1e
1515
1516 # CHECK: fcvtzu  x3, s5, #1
1517 # CHECK: fcvtzu  x12, s30, #45
1518 # CHECK: fcvtzu  x19, s0, #64
1519 0xa3 0xfc 0x19 0x9e
1520 0xcc 0x4f 0x19 0x9e
1521 0x13 0x00 0x19 0x9e
1522
1523 # CHECK: fcvtzu  w3, d5, #1
1524 # CHECK: fcvtzu  wzr, d20, #13
1525 # CHECK: fcvtzu  w19, d0, #32
1526 0xa3 0xfc 0x59 0x1e
1527 0x9f 0xce 0x59 0x1e
1528 0x13 0x80 0x59 0x1e
1529
1530 # CHECK: fcvtzu  x3, d5, #1
1531 # CHECK: fcvtzu  x12, d30, #45
1532 # CHECK: fcvtzu  x19, d0, #64
1533 0xa3 0xfc 0x59 0x9e
1534 0xcc 0x4f 0x59 0x9e
1535 0x13 0x00 0x59 0x9e
1536
1537 # CHECK: scvtf   s23, w19, #1
1538 # CHECK: scvtf   s31, wzr, #20
1539 # CHECK: scvtf   s14, w0, #32
1540 0x77 0xfe 0x02 0x1e
1541 0xff 0xb3 0x02 0x1e
1542 0x0e 0x80 0x02 0x1e
1543
1544 # CHECK: scvtf   s23, x19, #1
1545 # CHECK: scvtf   s31, xzr, #20
1546 # CHECK: scvtf   s14, x0, #64
1547 0x77 0xfe 0x02 0x9e
1548 0xff 0xb3 0x02 0x9e
1549 0x0e 0x00 0x02 0x9e
1550
1551 # CHECK: scvtf   d23, w19, #1
1552 # CHECK: scvtf   d31, wzr, #20
1553 # CHECK: scvtf   d14, w0, #32
1554 0x77 0xfe 0x42 0x1e
1555 0xff 0xb3 0x42 0x1e
1556 0x0e 0x80 0x42 0x1e
1557
1558 # CHECK: scvtf   d23, x19, #1
1559 # CHECK: scvtf   d31, xzr, #20
1560 # CHECK: scvtf   d14, x0, #64
1561 0x77 0xfe 0x42 0x9e
1562 0xff 0xb3 0x42 0x9e
1563 0x0e 0x00 0x42 0x9e
1564
1565 # CHECK: ucvtf   s23, w19, #1
1566 # CHECK: ucvtf   s31, wzr, #20
1567 # CHECK: ucvtf   s14, w0, #32
1568 0x77 0xfe 0x03 0x1e
1569 0xff 0xb3 0x03 0x1e
1570 0x0e 0x80 0x03 0x1e
1571
1572 # CHECK: ucvtf   s23, x19, #1
1573 # CHECK: ucvtf   s31, xzr, #20
1574 # CHECK: ucvtf   s14, x0, #64
1575 0x77 0xfe 0x03 0x9e
1576 0xff 0xb3 0x03 0x9e
1577 0x0e 0x00 0x03 0x9e
1578
1579 # CHECK: ucvtf   d23, w19, #1
1580 # CHECK: ucvtf   d31, wzr, #20
1581 # CHECK: ucvtf   d14, w0, #32
1582 0x77 0xfe 0x43 0x1e
1583 0xff 0xb3 0x43 0x1e
1584 0x0e 0x80 0x43 0x1e
1585
1586 # CHECK: ucvtf   d23, x19, #1
1587 # CHECK: ucvtf   d31, xzr, #20
1588 # CHECK: ucvtf   d14, x0, #64
1589 0x77 0xfe 0x43 0x9e
1590 0xff 0xb3 0x43 0x9e
1591 0x0e 0x00 0x43 0x9e
1592
1593 #------------------------------------------------------------------------------
1594 # Floating-point <-> integer conversion
1595 #------------------------------------------------------------------------------
1596 # CHECK: fcvtns   w3, s31
1597 # CHECK: fcvtns   xzr, s12
1598 # CHECK: fcvtnu   wzr, s12
1599 # CHECK: fcvtnu   x0, s0
1600 0xe3 0x3 0x20 0x1e
1601 0x9f 0x1 0x20 0x9e
1602 0x9f 0x1 0x21 0x1e
1603 0x0 0x0 0x21 0x9e
1604
1605 # CHECK: fcvtps   wzr, s9
1606 # CHECK: fcvtps   x12, s20
1607 # CHECK: fcvtpu   w30, s23
1608 # CHECK: fcvtpu   x29, s3
1609 0x3f 0x1 0x28 0x1e
1610 0x8c 0x2 0x28 0x9e
1611 0xfe 0x2 0x29 0x1e
1612 0x7d 0x0 0x29 0x9e
1613
1614 # CHECK: fcvtms   w2, s3
1615 # CHECK: fcvtms   x4, s5
1616 # CHECK: fcvtmu   w6, s7
1617 # CHECK: fcvtmu   x8, s9
1618 0x62 0x0 0x30 0x1e
1619 0xa4 0x0 0x30 0x9e
1620 0xe6 0x0 0x31 0x1e
1621 0x28 0x1 0x31 0x9e
1622
1623 # CHECK: fcvtzs   w10, s11
1624 # CHECK: fcvtzs   x12, s13
1625 # CHECK: fcvtzu   w14, s15
1626 # CHECK: fcvtzu   x15, s16
1627 0x6a 0x1 0x38 0x1e
1628 0xac 0x1 0x38 0x9e
1629 0xee 0x1 0x39 0x1e
1630 0xf 0x2 0x39 0x9e
1631
1632 # CHECK: scvtf    s17, w18
1633 # CHECK: scvtf    s19, x20
1634 # CHECK: ucvtf    s21, w22
1635 # CHECK: scvtf    s23, x24
1636 0x51 0x2 0x22 0x1e
1637 0x93 0x2 0x22 0x9e
1638 0xd5 0x2 0x23 0x1e
1639 0x17 0x3 0x22 0x9e
1640
1641 # CHECK: fcvtas   w25, s26
1642 # CHECK: fcvtas   x27, s28
1643 # CHECK: fcvtau   w29, s30
1644 # CHECK: fcvtau   xzr, s0
1645 0x59 0x3 0x24 0x1e
1646 0x9b 0x3 0x24 0x9e
1647 0xdd 0x3 0x25 0x1e
1648 0x1f 0x0 0x25 0x9e
1649
1650 # CHECK: fcvtns   w3, d31
1651 # CHECK: fcvtns   xzr, d12
1652 # CHECK: fcvtnu   wzr, d12
1653 # CHECK: fcvtnu   x0, d0
1654 0xe3 0x3 0x60 0x1e
1655 0x9f 0x1 0x60 0x9e
1656 0x9f 0x1 0x61 0x1e
1657 0x0 0x0 0x61 0x9e
1658
1659 # CHECK: fcvtps   wzr, d9
1660 # CHECK: fcvtps   x12, d20
1661 # CHECK: fcvtpu   w30, d23
1662 # CHECK: fcvtpu   x29, d3
1663 0x3f 0x1 0x68 0x1e
1664 0x8c 0x2 0x68 0x9e
1665 0xfe 0x2 0x69 0x1e
1666 0x7d 0x0 0x69 0x9e
1667
1668 # CHECK: fcvtms   w2, d3
1669 # CHECK: fcvtms   x4, d5
1670 # CHECK: fcvtmu   w6, d7
1671 # CHECK: fcvtmu   x8, d9
1672 0x62 0x0 0x70 0x1e
1673 0xa4 0x0 0x70 0x9e
1674 0xe6 0x0 0x71 0x1e
1675 0x28 0x1 0x71 0x9e
1676
1677 # CHECK: fcvtzs   w10, d11
1678 # CHECK: fcvtzs   x12, d13
1679 # CHECK: fcvtzu   w14, d15
1680 # CHECK: fcvtzu   x15, d16
1681 0x6a 0x1 0x78 0x1e
1682 0xac 0x1 0x78 0x9e
1683 0xee 0x1 0x79 0x1e
1684 0xf 0x2 0x79 0x9e
1685
1686 # CHECK: scvtf    d17, w18
1687 # CHECK: scvtf    d19, x20
1688 # CHECK: ucvtf    d21, w22
1689 # CHECK: ucvtf    d23, x24
1690 0x51 0x2 0x62 0x1e
1691 0x93 0x2 0x62 0x9e
1692 0xd5 0x2 0x63 0x1e
1693 0x17 0x3 0x63 0x9e
1694
1695 # CHECK: fcvtas   w25, d26
1696 # CHECK: fcvtas   x27, d28
1697 # CHECK: fcvtau   w29, d30
1698 # CHECK: fcvtau   xzr, d0
1699 0x59 0x3 0x64 0x1e
1700 0x9b 0x3 0x64 0x9e
1701 0xdd 0x3 0x65 0x1e
1702 0x1f 0x0 0x65 0x9e
1703
1704 # CHECK: fmov     w3, s9
1705 # CHECK: fmov     s9, w3
1706 0x23 0x1 0x26 0x1e
1707 0x69 0x0 0x27 0x1e
1708
1709 # CHECK: fmov     x20, d31
1710 # CHECK: fmov     d1, x15
1711 0xf4 0x3 0x66 0x9e
1712 0xe1 0x1 0x67 0x9e
1713
1714 # CHECK: fmov     x3, v12.d[1]
1715 # CHECK: fmov     v1.d[1], x19
1716 0x83 0x1 0xae 0x9e
1717 0x61 0x2 0xaf 0x9e
1718
1719 #------------------------------------------------------------------------------
1720 # Floating-point immediate
1721 #------------------------------------------------------------------------------
1722
1723 # CHECK: fmov     s2, #0.12500000
1724 # CHECK: fmov     s3, #1.00000000
1725 # CHECK: fmov     d30, #16.00000000
1726 0x2 0x10 0x28 0x1e
1727 0x3 0x10 0x2e 0x1e
1728 0x1e 0x10 0x66 0x1e
1729
1730 # CHECK: fmov     s4, #1.06250000
1731 # CHECK: fmov     d10, #1.93750000
1732 0x4 0x30 0x2e 0x1e
1733 0xa 0xf0 0x6f 0x1e
1734
1735 # CHECK: fmov     s12, #-1.00000000
1736 0xc 0x10 0x3e 0x1e
1737
1738 # CHECK: fmov     d16, #8.50000000
1739 0x10 0x30 0x64 0x1e
1740
1741 #------------------------------------------------------------------------------
1742 # Load-register (literal)
1743 #------------------------------------------------------------------------------
1744
1745 # CHECK: ldr       w3, #0
1746 # CHECK: ldr       x29, #4
1747 # CHECK: ldrsw     xzr, #-4
1748 0x03 0x00 0x00 0x18
1749 0x3d 0x00 0x00 0x58
1750 0xff 0xff 0xff 0x98
1751
1752 # CHECK: ldr       s0, #8
1753 # CHECK: ldr       d0, #1048572
1754 # CHECK: ldr       q0, #-1048576
1755 0x40 0x00 0x00 0x1c
1756 0xe0 0xff 0x7f 0x5c
1757 0x00 0x00 0x80 0x9c
1758
1759 # CHECK: prfm      pldl1strm, #0
1760 # CHECK: prfm      #22, #0
1761 0x01 0x00 0x00 0xd8
1762 0x16 0x00 0x00 0xd8
1763
1764 #------------------------------------------------------------------------------
1765 # Load/store exclusive
1766 #------------------------------------------------------------------------------
1767
1768 #CHECK: stxrb      w18, w8, [sp]
1769 #CHECK: stxrh      w24, w15, [x16]
1770 #CHECK: stxr       w5, w6, [x17]
1771 #CHECK: stxr       w1, x10, [x21]
1772 #CHECK: stxr       w1, x10, [x21]
1773 0xe8 0x7f 0x12 0x08
1774 0x0f 0x7e 0x18 0x48
1775 0x26 0x7e 0x05 0x88
1776 0xaa 0x7e 0x01 0xc8
1777 0xaa 0x7a 0x01 0xc8
1778
1779 #CHECK: ldxrb      w30, [x0]
1780 #CHECK: ldxrh      w17, [x4]
1781 #CHECK: ldxr       w22, [sp]
1782 #CHECK: ldxr       x11, [x29]
1783 #CHECK: ldxr       x11, [x29]
1784 #CHECK: ldxr       x11, [x29]
1785 0x1e 0x7c 0x5f 0x08
1786 0x91 0x7c 0x5f 0x48
1787 0xf6 0x7f 0x5f 0x88
1788 0xab 0x7f 0x5f 0xc8
1789 0xab 0x6f 0x5f 0xc8
1790 0xab 0x7f 0x5e 0xc8
1791
1792 #CHECK: stxp       w12, w11, w10, [sp]
1793 #CHECK: stxp       wzr, x27, x9, [x12]
1794 0xeb 0x2b 0x2c 0x88
1795 0x9b 0x25 0x3f 0xc8
1796
1797 #CHECK: ldxp       w0, wzr, [sp]
1798 #CHECK: ldxp       x17, x0, [x18]
1799 #CHECK: ldxp       x17, x0, [x18]
1800 0xe0 0x7f 0x7f 0x88
1801 0x51 0x02 0x7f 0xc8
1802 0x51 0x02 0x7e 0xc8
1803
1804 #CHECK: stlxrb     w12, w22, [x0]
1805 #CHECK: stlxrh     w10, w1, [x1]
1806 #CHECK: stlxr      w9, w2, [x2]
1807 #CHECK: stlxr      w9, x3, [sp]
1808
1809 0x16 0xfc 0x0c 0x08
1810 0x21 0xfc 0x0a 0x48
1811 0x42 0xfc 0x09 0x88
1812 0xe3 0xff 0x09 0xc8
1813
1814 #CHECK: ldaxrb     w8, [x4]
1815 #CHECK: ldaxrh     w7, [x5]
1816 #CHECK: ldaxr      w6, [sp]
1817 #CHECK: ldaxr      x5, [x6]
1818 #CHECK: ldaxr      x5, [x6]
1819 #CHECK: ldaxr      x5, [x6]
1820 0x88 0xfc 0x5f 0x08
1821 0xa7 0xfc 0x5f 0x48
1822 0xe6 0xff 0x5f 0x88
1823 0xc5 0xfc 0x5f 0xc8
1824 0xc5 0xec 0x5f 0xc8
1825 0xc5 0xfc 0x5e 0xc8
1826
1827 #CHECK: stlxp      w4, w5, w6, [sp]
1828 #CHECK: stlxp      wzr, x6, x7, [x1]
1829 0xe5 0x9b 0x24 0x88
1830 0x26 0x9c 0x3f 0xc8
1831
1832 #CHECK: ldaxp      w5, w18, [sp]
1833 #CHECK: ldaxp      x6, x19, [x22]
1834 #CHECK: ldaxp      x6, x19, [x22]
1835 0xe5 0xcb 0x7f 0x88
1836 0xc6 0xce 0x7f 0xc8
1837 0xc6 0xce 0x7e 0xc8
1838
1839 #CHECK: stlrb      w24, [sp]
1840 #CHECK: stlrh      w25, [x30]
1841 #CHECK: stlr       w26, [x29]
1842 #CHECK: stlr       x27, [x28]
1843 #CHECK: stlr       x27, [x28]
1844 #CHECK: stlr       x27, [x28]
1845 0xf8 0xff 0x9f 0x08
1846 0xd9 0xff 0x9f 0x48
1847 0xba 0xff 0x9f 0x88
1848 0x9b 0xff 0x9f 0xc8
1849 0x9b 0xef 0x9f 0xc8
1850 0x9b 0xff 0x9e 0xc8
1851
1852 #CHECK: ldarb      w23, [sp]
1853 #CHECK: ldarh      w22, [x30]
1854 #CHECK: ldar       wzr, [x29]
1855 #CHECK: ldar       x21, [x28]
1856 #CHECK: ldar       x21, [x28]
1857 #CHECK: ldar       x21, [x28]
1858 0xf7 0xff 0xdf 0x08
1859 0xd6 0xff 0xdf 0x48
1860 0xbf 0xff 0xdf 0x88
1861 0x95 0xff 0xdf 0xc8
1862 0x95 0xef 0xdf 0xc8
1863 0x95 0xff 0xde 0xc8
1864
1865 #------------------------------------------------------------------------------
1866 # Load/store (unscaled  immediate)
1867 #------------------------------------------------------------------------------
1868
1869 # CHECK: sturb    w9, [sp]
1870 # CHECK: sturh    wzr, [x12, #255]
1871 # CHECK: stur     w16, [x0, #-256]
1872 # CHECK: stur     x28, [x14, #1]
1873 0xe9 0x3 0x0 0x38
1874 0x9f 0xf1 0xf 0x78
1875 0x10 0x0 0x10 0xb8
1876 0xdc 0x11 0x0 0xf8
1877
1878 # CHECK: ldurb    w1, [x20, #255]
1879 # CHECK: ldurh    w20, [x1, #255]
1880 # CHECK: ldur     w12, [sp, #255]
1881 # CHECK: ldur     xzr, [x12, #255]
1882 0x81 0xf2 0x4f 0x38
1883 0x34 0xf0 0x4f 0x78
1884 0xec 0xf3 0x4f 0xb8
1885 0x9f 0xf1 0x4f 0xf8
1886
1887 # CHECK: ldursb   x9, [x7, #-256]
1888 # CHECK: ldursh   x17, [x19, #-256]
1889 # CHECK: ldursw   x20, [x15, #-256]
1890 # CHECK: prfum    pldl2keep, [sp, #-256]
1891 # CHECK: ldursb   w19, [x1, #-256]
1892 # CHECK: ldursh   w15, [x21, #-256]
1893 0xe9 0x0 0x90 0x38
1894 0x71 0x2 0x90 0x78
1895 0xf4 0x1 0x90 0xb8
1896 0xe2 0x3 0x90 0xf8
1897 0x33 0x0 0xd0 0x38
1898 0xaf 0x2 0xd0 0x78
1899
1900 # CHECK: stur     b0, [sp, #1]
1901 # CHECK: stur     h12, [x12, #-1]
1902 # CHECK: stur     s15, [x0, #255]
1903 # CHECK: stur     d31, [x5, #25]
1904 # CHECK: stur     q9, [x5]
1905 0xe0 0x13 0x0 0x3c
1906 0x8c 0xf1 0x1f 0x7c
1907 0xf 0xf0 0xf 0xbc
1908 0xbf 0x90 0x1 0xfc
1909 0xa9 0x0 0x80 0x3c
1910
1911 # CHECK: ldur     b3, [sp]
1912 # CHECK: ldur     h5, [x4, #-256]
1913 # CHECK: ldur     s7, [x12, #-1]
1914 # CHECK: ldur     d11, [x19, #4]
1915 # CHECK: ldur     q13, [x1, #2]
1916 0xe3 0x3 0x40 0x3c
1917 0x85 0x0 0x50 0x7c
1918 0x87 0xf1 0x5f 0xbc
1919 0x6b 0x42 0x40 0xfc
1920 0x2d 0x20 0xc0 0x3c
1921
1922 #------------------------------------------------------------------------------
1923 # Load/store (immediate post-indexed)
1924 #------------------------------------------------------------------------------
1925
1926 # E.g. "str xzr, [sp], #4" is *not* unpredictable
1927 # CHECK-NOT: warning: potentially undefined instruction encoding
1928 0xff 0x47 0x40 0xb8
1929
1930 # CHECK: strb     w9, [x2], #255
1931 # CHECK: strb     w10, [x3], #1
1932 # CHECK: strb     w10, [x3], #-256
1933 # CHECK: strh     w9, [x2], #255
1934 # CHECK: strh     w9, [x2], #1
1935 # CHECK: strh     w10, [x3], #-256
1936 0x49 0xf4 0xf 0x38
1937 0x6a 0x14 0x0 0x38
1938 0x6a 0x4 0x10 0x38
1939 0x49 0xf4 0xf 0x78
1940 0x49 0x14 0x0 0x78
1941 0x6a 0x4 0x10 0x78
1942
1943 # CHECK: str      w19, [sp], #255
1944 # CHECK: str      w20, [x30], #1
1945 # CHECK: str      w21, [x12], #-256
1946 # CHECK: str      xzr, [x9], #255
1947 # CHECK: str      x2, [x3], #1
1948 # CHECK: str      x19, [x12], #-256
1949 0xf3 0xf7 0xf 0xb8
1950 0xd4 0x17 0x0 0xb8
1951 0x95 0x5 0x10 0xb8
1952 0x3f 0xf5 0xf 0xf8
1953 0x62 0x14 0x0 0xf8
1954 0x93 0x5 0x10 0xf8
1955
1956 # CHECK: ldrb     w9, [x2], #255
1957 # CHECK: ldrb     w10, [x3], #1
1958 # CHECK: ldrb     w10, [x3], #-256
1959 # CHECK: ldrh     w9, [x2], #255
1960 # CHECK: ldrh     w9, [x2], #1
1961 # CHECK: ldrh     w10, [x3], #-256
1962 0x49 0xf4 0x4f 0x38
1963 0x6a 0x14 0x40 0x38
1964 0x6a 0x4 0x50 0x38
1965 0x49 0xf4 0x4f 0x78
1966 0x49 0x14 0x40 0x78
1967 0x6a 0x4 0x50 0x78
1968
1969 # CHECK: ldr      w19, [sp], #255
1970 # CHECK: ldr      w20, [x30], #1
1971 # CHECK: ldr      w21, [x12], #-256
1972 # CHECK: ldr      xzr, [x9], #255
1973 # CHECK: ldr      x2, [x3], #1
1974 # CHECK: ldr      x19, [x12], #-256
1975 0xf3 0xf7 0x4f 0xb8
1976 0xd4 0x17 0x40 0xb8
1977 0x95 0x5 0x50 0xb8
1978 0x3f 0xf5 0x4f 0xf8
1979 0x62 0x14 0x40 0xf8
1980 0x93 0x5 0x50 0xf8
1981
1982 # CHECK: ldrsb    xzr, [x9], #255
1983 # CHECK: ldrsb    x2, [x3], #1
1984 # CHECK: ldrsb    x19, [x12], #-256
1985 # CHECK: ldrsh    xzr, [x9], #255
1986 # CHECK: ldrsh    x2, [x3], #1
1987 # CHECK: ldrsh    x19, [x12], #-256
1988 # CHECK: ldrsw    xzr, [x9], #255
1989 # CHECK: ldrsw    x2, [x3], #1
1990 # CHECK: ldrsw    x19, [x12], #-256
1991 0x3f 0xf5 0x8f 0x38
1992 0x62 0x14 0x80 0x38
1993 0x93 0x5 0x90 0x38
1994 0x3f 0xf5 0x8f 0x78
1995 0x62 0x14 0x80 0x78
1996 0x93 0x5 0x90 0x78
1997 0x3f 0xf5 0x8f 0xb8
1998 0x62 0x14 0x80 0xb8
1999 0x93 0x5 0x90 0xb8
2000
2001 # CHECK: ldrsb    wzr, [x9], #255
2002 # CHECK: ldrsb    w2, [x3], #1
2003 # CHECK: ldrsb    w19, [x12], #-256
2004 # CHECK: ldrsh    wzr, [x9], #255
2005 # CHECK: ldrsh    w2, [x3], #1
2006 # CHECK: ldrsh    w19, [x12], #-256
2007 0x3f 0xf5 0xcf 0x38
2008 0x62 0x14 0xc0 0x38
2009 0x93 0x5 0xd0 0x38
2010 0x3f 0xf5 0xcf 0x78
2011 0x62 0x14 0xc0 0x78
2012 0x93 0x5 0xd0 0x78
2013
2014 # CHECK: str      b0, [x0], #255
2015 # CHECK: str      b3, [x3], #1
2016 # CHECK: str      b5, [sp], #-256
2017 # CHECK: str      h10, [x10], #255
2018 # CHECK: str      h13, [x23], #1
2019 # CHECK: str      h15, [sp], #-256
2020 # CHECK: str      s20, [x20], #255
2021 # CHECK: str      s23, [x23], #1
2022 # CHECK: str      s25, [x0], #-256
2023 # CHECK: str      d20, [x20], #255
2024 # CHECK: str      d23, [x23], #1
2025 # CHECK: str      d25, [x0], #-256
2026 0x0 0xf4 0xf 0x3c
2027 0x63 0x14 0x0 0x3c
2028 0xe5 0x7 0x10 0x3c
2029 0x4a 0xf5 0xf 0x7c
2030 0xed 0x16 0x0 0x7c
2031 0xef 0x7 0x10 0x7c
2032 0x94 0xf6 0xf 0xbc
2033 0xf7 0x16 0x0 0xbc
2034 0x19 0x4 0x10 0xbc
2035 0x94 0xf6 0xf 0xfc
2036 0xf7 0x16 0x0 0xfc
2037 0x19 0x4 0x10 0xfc
2038
2039 # CHECK: ldr      b0, [x0], #255
2040 # CHECK: ldr      b3, [x3], #1
2041 # CHECK: ldr      b5, [sp], #-256
2042 # CHECK: ldr      h10, [x10], #255
2043 # CHECK: ldr      h13, [x23], #1
2044 # CHECK: ldr      h15, [sp], #-256
2045 # CHECK: ldr      s20, [x20], #255
2046 # CHECK: ldr      s23, [x23], #1
2047 # CHECK: ldr      s25, [x0], #-256
2048 # CHECK: ldr      d20, [x20], #255
2049 # CHECK: ldr      d23, [x23], #1
2050 # CHECK: ldr      d25, [x0], #-256
2051 0x0 0xf4 0x4f 0x3c
2052 0x63 0x14 0x40 0x3c
2053 0xe5 0x7 0x50 0x3c
2054 0x4a 0xf5 0x4f 0x7c
2055 0xed 0x16 0x40 0x7c
2056 0xef 0x7 0x50 0x7c
2057 0x94 0xf6 0x4f 0xbc
2058 0xf7 0x16 0x40 0xbc
2059 0x19 0x4 0x50 0xbc
2060 0x94 0xf6 0x4f 0xfc
2061 0xf7 0x16 0x40 0xfc
2062 0x19 0x4 0x50 0xfc
2063 0x34 0xf4 0xcf 0x3c
2064
2065 # CHECK: ldr      q20, [x1], #255
2066 # CHECK: ldr      q23, [x9], #1
2067 # CHECK: ldr      q25, [x20], #-256
2068 # CHECK: str      q10, [x1], #255
2069 # CHECK: str      q22, [sp], #1
2070 # CHECK: str      q21, [x20], #-256
2071 0x37 0x15 0xc0 0x3c
2072 0x99 0x6 0xd0 0x3c
2073 0x2a 0xf4 0x8f 0x3c
2074 0xf6 0x17 0x80 0x3c
2075 0x95 0x6 0x90 0x3c
2076
2077 #-------------------------------------------------------------------------------
2078 # Load-store register (immediate pre-indexed)
2079 #-------------------------------------------------------------------------------
2080
2081 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2082 # CHECK-NOT: warning: potentially undefined instruction encoding
2083 0xff 0xf 0x40 0xf8
2084
2085 # CHECK: ldr      x3, [x4, #0]!
2086 0x83 0xc 0x40 0xf8
2087
2088 # CHECK: strb     w9, [x2, #255]!
2089 # CHECK: strb     w10, [x3, #1]!
2090 # CHECK: strb     w10, [x3, #-256]!
2091 # CHECK: strh     w9, [x2, #255]!
2092 # CHECK: strh     w9, [x2, #1]!
2093 # CHECK: strh     w10, [x3, #-256]!
2094 0x49 0xfc 0xf 0x38
2095 0x6a 0x1c 0x0 0x38
2096 0x6a 0xc 0x10 0x38
2097 0x49 0xfc 0xf 0x78
2098 0x49 0x1c 0x0 0x78
2099 0x6a 0xc 0x10 0x78
2100
2101 # CHECK: str      w19, [sp, #255]!
2102 # CHECK: str      w20, [x30, #1]!
2103 # CHECK: str      w21, [x12, #-256]!
2104 # CHECK: str      xzr, [x9, #255]!
2105 # CHECK: str      x2, [x3, #1]!
2106 # CHECK: str      x19, [x12, #-256]!
2107 0xf3 0xff 0xf 0xb8
2108 0xd4 0x1f 0x0 0xb8
2109 0x95 0xd 0x10 0xb8
2110 0x3f 0xfd 0xf 0xf8
2111 0x62 0x1c 0x0 0xf8
2112 0x93 0xd 0x10 0xf8
2113
2114 # CHECK: ldrb     w9, [x2, #255]!
2115 # CHECK: ldrb     w10, [x3, #1]!
2116 # CHECK: ldrb     w10, [x3, #-256]!
2117 # CHECK: ldrh     w9, [x2, #255]!
2118 # CHECK: ldrh     w9, [x2, #1]!
2119 # CHECK: ldrh     w10, [x3, #-256]!
2120 0x49 0xfc 0x4f 0x38
2121 0x6a 0x1c 0x40 0x38
2122 0x6a 0xc 0x50 0x38
2123 0x49 0xfc 0x4f 0x78
2124 0x49 0x1c 0x40 0x78
2125 0x6a 0xc 0x50 0x78
2126
2127 # CHECK: ldr      w19, [sp, #255]!
2128 # CHECK: ldr      w20, [x30, #1]!
2129 # CHECK: ldr      w21, [x12, #-256]!
2130 # CHECK: ldr      xzr, [x9, #255]!
2131 # CHECK: ldr      x2, [x3, #1]!
2132 # CHECK: ldr      x19, [x12, #-256]!
2133 0xf3 0xff 0x4f 0xb8
2134 0xd4 0x1f 0x40 0xb8
2135 0x95 0xd 0x50 0xb8
2136 0x3f 0xfd 0x4f 0xf8
2137 0x62 0x1c 0x40 0xf8
2138 0x93 0xd 0x50 0xf8
2139
2140 # CHECK: ldrsb    xzr, [x9, #255]!
2141 # CHECK: ldrsb    x2, [x3, #1]!
2142 # CHECK: ldrsb    x19, [x12, #-256]!
2143 # CHECK: ldrsh    xzr, [x9, #255]!
2144 # CHECK: ldrsh    x2, [x3, #1]!
2145 # CHECK: ldrsh    x19, [x12, #-256]!
2146 # CHECK: ldrsw    xzr, [x9, #255]!
2147 # CHECK: ldrsw    x2, [x3, #1]!
2148 # CHECK: ldrsw    x19, [x12, #-256]!
2149 0x3f 0xfd 0x8f 0x38
2150 0x62 0x1c 0x80 0x38
2151 0x93 0xd 0x90 0x38
2152 0x3f 0xfd 0x8f 0x78
2153 0x62 0x1c 0x80 0x78
2154 0x93 0xd 0x90 0x78
2155 0x3f 0xfd 0x8f 0xb8
2156 0x62 0x1c 0x80 0xb8
2157 0x93 0xd 0x90 0xb8
2158
2159 # CHECK: ldrsb    wzr, [x9, #255]!
2160 # CHECK: ldrsb    w2, [x3, #1]!
2161 # CHECK: ldrsb    w19, [x12, #-256]!
2162 # CHECK: ldrsh    wzr, [x9, #255]!
2163 # CHECK: ldrsh    w2, [x3, #1]!
2164 # CHECK: ldrsh    w19, [x12, #-256]!
2165 0x3f 0xfd 0xcf 0x38
2166 0x62 0x1c 0xc0 0x38
2167 0x93 0xd 0xd0 0x38
2168 0x3f 0xfd 0xcf 0x78
2169 0x62 0x1c 0xc0 0x78
2170 0x93 0xd 0xd0 0x78
2171
2172 # CHECK: str      b0, [x0, #255]!
2173 # CHECK: str      b3, [x3, #1]!
2174 # CHECK: str      b5, [sp, #-256]!
2175 # CHECK: str      h10, [x10, #255]!
2176 # CHECK: str      h13, [x23, #1]!
2177 # CHECK: str      h15, [sp, #-256]!
2178 # CHECK: str      s20, [x20, #255]!
2179 # CHECK: str      s23, [x23, #1]!
2180 # CHECK: str      s25, [x0, #-256]!
2181 # CHECK: str      d20, [x20, #255]!
2182 # CHECK: str      d23, [x23, #1]!
2183 # CHECK: str      d25, [x0, #-256]!
2184 0x0 0xfc 0xf 0x3c
2185 0x63 0x1c 0x0 0x3c
2186 0xe5 0xf 0x10 0x3c
2187 0x4a 0xfd 0xf 0x7c
2188 0xed 0x1e 0x0 0x7c
2189 0xef 0xf 0x10 0x7c
2190 0x94 0xfe 0xf 0xbc
2191 0xf7 0x1e 0x0 0xbc
2192 0x19 0xc 0x10 0xbc
2193 0x94 0xfe 0xf 0xfc
2194 0xf7 0x1e 0x0 0xfc
2195 0x19 0xc 0x10 0xfc
2196
2197 # CHECK: ldr      b0, [x0, #255]!
2198 # CHECK: ldr      b3, [x3, #1]!
2199 # CHECK: ldr      b5, [sp, #-256]!
2200 # CHECK: ldr      h10, [x10, #255]!
2201 # CHECK: ldr      h13, [x23, #1]!
2202 # CHECK: ldr      h15, [sp, #-256]!
2203 # CHECK: ldr      s20, [x20, #255]!
2204 # CHECK: ldr      s23, [x23, #1]!
2205 # CHECK: ldr      s25, [x0, #-256]!
2206 # CHECK: ldr      d20, [x20, #255]!
2207 # CHECK: ldr      d23, [x23, #1]!
2208 # CHECK: ldr      d25, [x0, #-256]!
2209 0x0 0xfc 0x4f 0x3c
2210 0x63 0x1c 0x40 0x3c
2211 0xe5 0xf 0x50 0x3c
2212 0x4a 0xfd 0x4f 0x7c
2213 0xed 0x1e 0x40 0x7c
2214 0xef 0xf 0x50 0x7c
2215 0x94 0xfe 0x4f 0xbc
2216 0xf7 0x1e 0x40 0xbc
2217 0x19 0xc 0x50 0xbc
2218 0x94 0xfe 0x4f 0xfc
2219 0xf7 0x1e 0x40 0xfc
2220 0x19 0xc 0x50 0xfc
2221
2222 # CHECK: ldr      q20, [x1, #255]!
2223 # CHECK: ldr      q23, [x9, #1]!
2224 # CHECK: ldr      q25, [x20, #-256]!
2225 # CHECK: str      q10, [x1, #255]!
2226 # CHECK: str      q22, [sp, #1]!
2227 # CHECK: str      q21, [x20, #-256]!
2228 0x34 0xfc 0xcf 0x3c
2229 0x37 0x1d 0xc0 0x3c
2230 0x99 0xe 0xd0 0x3c
2231 0x2a 0xfc 0x8f 0x3c
2232 0xf6 0x1f 0x80 0x3c
2233 0x95 0xe 0x90 0x3c
2234
2235 #------------------------------------------------------------------------------
2236 # Load/store (unprivileged)
2237 #------------------------------------------------------------------------------
2238
2239 # CHECK: sttrb    w9, [sp]
2240 # CHECK: sttrh    wzr, [x12, #255]
2241 # CHECK: sttr     w16, [x0, #-256]
2242 # CHECK: sttr     x28, [x14, #1]
2243 0xe9 0x0b 0x0 0x38
2244 0x9f 0xf9 0xf 0x78
2245 0x10 0x08 0x10 0xb8
2246 0xdc 0x19 0x0 0xf8
2247
2248 # CHECK: ldtrb    w1, [x20, #255]
2249 # CHECK: ldtrh    w20, [x1, #255]
2250 # CHECK: ldtr     w12, [sp, #255]
2251 # CHECK: ldtr     xzr, [x12, #255]
2252 0x81 0xfa 0x4f 0x38
2253 0x34 0xf8 0x4f 0x78
2254 0xec 0xfb 0x4f 0xb8
2255 0x9f 0xf9 0x4f 0xf8
2256
2257 # CHECK: ldtrsb   x9, [x7, #-256]
2258 # CHECK: ldtrsh   x17, [x19, #-256]
2259 # CHECK: ldtrsw   x20, [x15, #-256]
2260 # CHECK: ldtrsb   w19, [x1, #-256]
2261 # CHECK: ldtrsh   w15, [x21, #-256]
2262 0xe9 0x08 0x90 0x38
2263 0x71 0x0a 0x90 0x78
2264 0xf4 0x09 0x90 0xb8
2265 0x33 0x08 0xd0 0x38
2266 0xaf 0x0a 0xd0 0x78
2267
2268 #------------------------------------------------------------------------------
2269 # Load/store (unsigned  immediate)
2270 #------------------------------------------------------------------------------
2271
2272 # CHECK: ldr      x0, [x0]
2273 # CHECK: ldr      x4, [x29]
2274 # CHECK: ldr      x30, [x12, #32760]
2275 # CHECK: ldr      x20, [sp, #8]
2276 0x0 0x0 0x40 0xf9
2277 0xa4 0x3 0x40 0xf9
2278 0x9e 0xfd 0x7f 0xf9
2279 0xf4 0x7 0x40 0xf9
2280
2281 # CHECK: ldr      xzr, [sp]
2282 0xff 0x3 0x40 0xf9
2283
2284 # CHECK: ldr      w2, [sp]
2285 # CHECK: ldr      w17, [sp, #16380]
2286 # CHECK: ldr      w13, [x2, #4]
2287 0xe2 0x3 0x40 0xb9
2288 0xf1 0xff 0x7f 0xb9
2289 0x4d 0x4 0x40 0xb9
2290
2291 # CHECK: ldrsw    x2, [x5, #4]
2292 # CHECK: ldrsw    x23, [sp, #16380]
2293 0xa2 0x4 0x80 0xb9
2294 0xf7 0xff 0xbf 0xb9
2295
2296 # CHECK: ldrh     w2, [x4]
2297 # CHECK: ldrsh    w23, [x6, #8190]
2298 # CHECK: ldrsh    wzr, [sp, #2]
2299 # CHECK: ldrsh    x29, [x2, #2]
2300 0x82 0x0 0x40 0x79
2301 0xd7 0xfc 0xff 0x79
2302 0xff 0x7 0xc0 0x79
2303 0x5d 0x4 0x80 0x79
2304
2305 # CHECK: ldrb     w26, [x3, #121]
2306 # CHECK: ldrb     w12, [x2]
2307 # CHECK: ldrsb    w27, [sp, #4095]
2308 # CHECK: ldrsb    xzr, [x15]
2309 0x7a 0xe4 0x41 0x39
2310 0x4c 0x0 0x40 0x39
2311 0xfb 0xff 0xff 0x39
2312 0xff 0x1 0x80 0x39
2313
2314 # CHECK: str      x30, [sp]
2315 # CHECK: str      w20, [x4, #16380]
2316 # CHECK: strh     w20, [x10, #14]
2317 # CHECK: strh     w17, [sp, #8190]
2318 # CHECK: strb     w23, [x3, #4095]
2319 # CHECK: strb     wzr, [x2]
2320 0xfe 0x3 0x0 0xf9
2321 0x94 0xfc 0x3f 0xb9
2322 0x54 0x1d 0x0 0x79
2323 0xf1 0xff 0x3f 0x79
2324 0x77 0xfc 0x3f 0x39
2325 0x5f 0x0 0x0 0x39
2326
2327 # CHECK: ldr      b31, [sp, #4095]
2328 # CHECK: ldr      h20, [x2, #8190]
2329 # CHECK: ldr      s10, [x19, #16380]
2330 # CHECK: ldr      d3, [x10, #32760]
2331 # CHECK: str      q12, [sp, #65520]
2332 0xff 0xff 0x7f 0x3d
2333 0x54 0xfc 0x7f 0x7d
2334 0x6a 0xfe 0x7f 0xbd
2335 0x43 0xfd 0x7f 0xfd
2336 0xec 0xff 0xbf 0x3d
2337
2338 #------------------------------------------------------------------------------
2339 # Load/store (register offset)
2340 #------------------------------------------------------------------------------
2341
2342 # CHECK: ldrb     w3, [sp, x5]
2343 # CHECK: ldrb     w9, [x27, x6]
2344 # CHECK: ldrsb    w10, [x30, x7]
2345 # CHECK: ldrb     w11, [x29, x3, sxtx]
2346 # CHECK: strb     w12, [x28, xzr, sxtx]
2347 # CHECK: ldrb     w14, [x26, w6, uxtw]
2348 # CHECK: ldrsb    w15, [x25, w7, uxtw]
2349 # CHECK: ldrb     w17, [x23, w9, sxtw]
2350 # CHECK: ldrsb    x18, [x22, w10, sxtw]
2351 0xe3 0x6b 0x65 0x38
2352 0x69 0x6b 0x66 0x38
2353 0xca 0x6b 0xe7 0x38
2354 0xab 0xeb 0x63 0x38
2355 0x8c 0xeb 0x3f 0x38
2356 0x4e 0x4b 0x66 0x38
2357 0x2f 0x4b 0xe7 0x38
2358 0xf1 0xca 0x69 0x38
2359 0xd2 0xca 0xaa 0x38
2360
2361 # CHECK: ldrsh    w3, [sp, x5]
2362 # CHECK: ldrsh    w9, [x27, x6]
2363 # CHECK: ldrh     w10, [x30, x7, lsl #1]
2364 # CHECK: strh     w11, [x29, x3, sxtx]
2365 # CHECK: ldrh     w12, [x28, xzr, sxtx]
2366 # CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2367 # CHECK: ldrh     w14, [x26, w6, uxtw]
2368 # CHECK: ldrh     w15, [x25, w7, uxtw]
2369 # CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2370 # CHECK: ldrh     w17, [x23, w9, sxtw]
2371 # CHECK: ldrh     w18, [x22, w10, sxtw]
2372 # CHECK: strh     w19, [x21, wzr, sxtw #1]
2373 0xe3 0x6b 0xe5 0x78
2374 0x69 0x6b 0xe6 0x78
2375 0xca 0x7b 0x67 0x78
2376 0xab 0xeb 0x23 0x78
2377 0x8c 0xeb 0x7f 0x78
2378 0x6d 0xfb 0xa5 0x78
2379 0x4e 0x4b 0x66 0x78
2380 0x2f 0x4b 0x67 0x78
2381 0x10 0x5b 0xe8 0x78
2382 0xf1 0xca 0x69 0x78
2383 0xd2 0xca 0x6a 0x78
2384 0xb3 0xda 0x3f 0x78
2385
2386 # CHECK: ldr      w3, [sp, x5]
2387 # CHECK: ldr      s9, [x27, x6]
2388 # CHECK: ldr      w10, [x30, x7, lsl #2]
2389 # CHECK: ldr      w11, [x29, x3, sxtx]
2390 # CHECK: str      s12, [x28, xzr, sxtx]
2391 # CHECK: str      w13, [x27, x5, sxtx #2]
2392 # CHECK: str      w14, [x26, w6, uxtw]
2393 # CHECK: ldr      w15, [x25, w7, uxtw]
2394 # CHECK: ldr      w16, [x24, w8, uxtw #2]
2395 # CHECK: ldrsw    x17, [x23, w9, sxtw]
2396 # CHECK: ldr      w18, [x22, w10, sxtw]
2397 # CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
2398 0xe3 0x6b 0x65 0xb8
2399 0x69 0x6b 0x66 0xbc
2400 0xca 0x7b 0x67 0xb8
2401 0xab 0xeb 0x63 0xb8
2402 0x8c 0xeb 0x3f 0xbc
2403 0x6d 0xfb 0x25 0xb8
2404 0x4e 0x4b 0x26 0xb8
2405 0x2f 0x4b 0x67 0xb8
2406 0x10 0x5b 0x68 0xb8
2407 0xf1 0xca 0xa9 0xb8
2408 0xd2 0xca 0x6a 0xb8
2409 0xb3 0xda 0xbf 0xb8
2410
2411 # CHECK: ldr      x3, [sp, x5]
2412 # CHECK: str      x9, [x27, x6]
2413 # CHECK: ldr      d10, [x30, x7, lsl #3]
2414 # CHECK: str      x11, [x29, x3, sxtx]
2415 # CHECK: ldr      x12, [x28, xzr, sxtx]
2416 # CHECK: ldr      x13, [x27, x5, sxtx #3]
2417 # CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2418 # CHECK: ldr      x15, [x25, w7, uxtw]
2419 # CHECK: ldr      x16, [x24, w8, uxtw #3]
2420 # CHECK: ldr      x17, [x23, w9, sxtw]
2421 # CHECK: ldr      x18, [x22, w10, sxtw]
2422 # CHECK: str      d19, [x21, wzr, sxtw #3]
2423 0xe3 0x6b 0x65 0xf8
2424 0x69 0x6b 0x26 0xf8
2425 0xca 0x7b 0x67 0xfc
2426 0xab 0xeb 0x23 0xf8
2427 0x8c 0xeb 0x7f 0xf8
2428 0x6d 0xfb 0x65 0xf8
2429 0x40 0x4b 0xa6 0xf8
2430 0x2f 0x4b 0x67 0xf8
2431 0x10 0x5b 0x68 0xf8
2432 0xf1 0xca 0x69 0xf8
2433 0xd2 0xca 0x6a 0xf8
2434 0xb3 0xda 0x3f 0xfc
2435
2436 # CHECK: ldr      q3, [sp, x5]
2437 # CHECK: ldr      q9, [x27, x6]
2438 # CHECK: ldr      q10, [x30, x7, lsl #4]
2439 # CHECK: str      q11, [x29, x3, sxtx]
2440 # CHECK: str      q12, [x28, xzr, sxtx]
2441 # CHECK: str      q13, [x27, x5, sxtx #4]
2442 # CHECK: ldr      q14, [x26, w6, uxtw]
2443 # CHECK: ldr      q15, [x25, w7, uxtw]
2444 # CHECK: ldr      q16, [x24, w8, uxtw #4]
2445 # CHECK: ldr      q17, [x23, w9, sxtw]
2446 # CHECK: str      q18, [x22, w10, sxtw]
2447 # CHECK: ldr      q19, [x21, wzr, sxtw #4]
2448 0xe3 0x6b 0xe5 0x3c
2449 0x69 0x6b 0xe6 0x3c
2450 0xca 0x7b 0xe7 0x3c
2451 0xab 0xeb 0xa3 0x3c
2452 0x8c 0xeb 0xbf 0x3c
2453 0x6d 0xfb 0xa5 0x3c
2454 0x4e 0x4b 0xe6 0x3c
2455 0x2f 0x4b 0xe7 0x3c
2456 0x10 0x5b 0xe8 0x3c
2457 0xf1 0xca 0xe9 0x3c
2458 0xd2 0xca 0xaa 0x3c
2459 0xb3 0xda 0xff 0x3c
2460
2461 #------------------------------------------------------------------------------
2462 # Load/store register pair (offset)
2463 #------------------------------------------------------------------------------
2464
2465 # CHECK: ldp      w3, w5, [sp]
2466 # CHECK: stp      wzr, w9, [sp, #252]
2467 # CHECK: ldp      w2, wzr, [sp, #-256]
2468 # CHECK: ldp      w9, w10, [sp, #4]
2469 0xe3 0x17 0x40 0x29
2470 0xff 0xa7 0x1f 0x29
2471 0xe2 0x7f 0x60 0x29
2472 0xe9 0xab 0x40 0x29
2473
2474 # CHECK: ldpsw    x9, x10, [sp, #4]
2475 # CHECK: ldpsw    x9, x10, [x2, #-256]
2476 # CHECK: ldpsw    x20, x30, [sp, #252]
2477 0xe9 0xab 0x40 0x69
2478 0x49 0x28 0x60 0x69
2479 0xf4 0xfb 0x5f 0x69
2480
2481 # CHECK: ldp      x21, x29, [x2, #504]
2482 # CHECK: ldp      x22, x23, [x3, #-512]
2483 # CHECK: ldp      x24, x25, [x4, #8]
2484 0x55 0xf4 0x5f 0xa9
2485 0x76 0x5c 0x60 0xa9
2486 0x98 0xe4 0x40 0xa9
2487
2488 # CHECK: ldp      s29, s28, [sp, #252]
2489 # CHECK: stp      s27, s26, [sp, #-256]
2490 # CHECK: ldp      s1, s2, [x3, #44]
2491 0xfd 0xf3 0x5f 0x2d
2492 0xfb 0x6b 0x20 0x2d
2493 0x61 0x88 0x45 0x2d
2494
2495 # CHECK: stp      d3, d5, [x9, #504]
2496 # CHECK: stp      d7, d11, [x10, #-512]
2497 # CHECK: ldp      d2, d3, [x30, #-8]
2498 0x23 0x95 0x1f 0x6d
2499 0x47 0x2d 0x20 0x6d
2500 0xc2 0x8f 0x7f 0x6d
2501
2502 # CHECK: stp      q3, q5, [sp]
2503 # CHECK: stp      q17, q19, [sp, #1008]
2504 # CHECK: ldp      q23, q29, [x1, #-1024]
2505 0xe3 0x17 0x0 0xad
2506 0xf1 0xcf 0x1f 0xad
2507 0x37 0x74 0x60 0xad
2508
2509 #------------------------------------------------------------------------------
2510 # Load/store register pair (post-indexed)
2511 #------------------------------------------------------------------------------
2512
2513 # CHECK: ldp      w3, w5, [sp], #0
2514 # CHECK: stp      wzr, w9, [sp], #252
2515 # CHECK: ldp      w2, wzr, [sp], #-256
2516 # CHECK: ldp      w9, w10, [sp], #4
2517 0xe3 0x17 0xc0 0x28
2518 0xff 0xa7 0x9f 0x28
2519 0xe2 0x7f 0xe0 0x28
2520 0xe9 0xab 0xc0 0x28
2521
2522 # CHECK: ldpsw    x9, x10, [sp], #4
2523 # CHECK: ldpsw    x9, x10, [x2], #-256
2524 # CHECK: ldpsw    x20, x30, [sp], #252
2525 0xe9 0xab 0xc0 0x68
2526 0x49 0x28 0xe0 0x68
2527 0xf4 0xfb 0xdf 0x68
2528
2529 # CHECK: ldp      x21, x29, [x2], #504
2530 # CHECK: ldp      x22, x23, [x3], #-512
2531 # CHECK: ldp      x24, x25, [x4], #8
2532 0x55 0xf4 0xdf 0xa8
2533 0x76 0x5c 0xe0 0xa8
2534 0x98 0xe4 0xc0 0xa8
2535
2536 # CHECK: ldp      s29, s28, [sp], #252
2537 # CHECK: stp      s27, s26, [sp], #-256
2538 # CHECK: ldp      s1, s2, [x3], #44
2539 0xfd 0xf3 0xdf 0x2c
2540 0xfb 0x6b 0xa0 0x2c
2541 0x61 0x88 0xc5 0x2c
2542
2543 # CHECK: stp      d3, d5, [x9], #504
2544 # CHECK: stp      d7, d11, [x10], #-512
2545 # CHECK: ldp      d2, d3, [x30], #-8
2546 0x23 0x95 0x9f 0x6c
2547 0x47 0x2d 0xa0 0x6c
2548 0xc2 0x8f 0xff 0x6c
2549
2550 # CHECK: stp      q3, q5, [sp], #0
2551 # CHECK: stp      q17, q19, [sp], #1008
2552 # CHECK: ldp      q23, q29, [x1], #-1024
2553 0xe3 0x17 0x80 0xac
2554 0xf1 0xcf 0x9f 0xac
2555 0x37 0x74 0xe0 0xac
2556
2557 #------------------------------------------------------------------------------
2558 # Load/store register pair (pre-indexed)
2559 #------------------------------------------------------------------------------
2560
2561 # CHECK: ldp      w3, w5, [sp, #0]!
2562 # CHECK: stp      wzr, w9, [sp, #252]!
2563 # CHECK: ldp      w2, wzr, [sp, #-256]!
2564 # CHECK: ldp      w9, w10, [sp, #4]!
2565 0xe3 0x17 0xc0 0x29
2566 0xff 0xa7 0x9f 0x29
2567 0xe2 0x7f 0xe0 0x29
2568 0xe9 0xab 0xc0 0x29
2569
2570 # CHECK: ldpsw    x9, x10, [sp, #4]!
2571 # CHECK: ldpsw    x9, x10, [x2, #-256]!
2572 # CHECK: ldpsw    x20, x30, [sp, #252]!
2573 0xe9 0xab 0xc0 0x69
2574 0x49 0x28 0xe0 0x69
2575 0xf4 0xfb 0xdf 0x69
2576
2577 # CHECK: ldp      x21, x29, [x2, #504]!
2578 # CHECK: ldp      x22, x23, [x3, #-512]!
2579 # CHECK: ldp      x24, x25, [x4, #8]!
2580 0x55 0xf4 0xdf 0xa9
2581 0x76 0x5c 0xe0 0xa9
2582 0x98 0xe4 0xc0 0xa9
2583
2584 # CHECK: ldp      s29, s28, [sp, #252]!
2585 # CHECK: stp      s27, s26, [sp, #-256]!
2586 # CHECK: ldp      s1, s2, [x3, #44]!
2587 0xfd 0xf3 0xdf 0x2d
2588 0xfb 0x6b 0xa0 0x2d
2589 0x61 0x88 0xc5 0x2d
2590
2591 # CHECK: stp      d3, d5, [x9, #504]!
2592 # CHECK: stp      d7, d11, [x10, #-512]!
2593 # CHECK: ldp      d2, d3, [x30, #-8]!
2594 0x23 0x95 0x9f 0x6d
2595 0x47 0x2d 0xa0 0x6d
2596 0xc2 0x8f 0xff 0x6d
2597
2598 # CHECK: stp      q3, q5, [sp, #0]!
2599 # CHECK: stp      q17, q19, [sp, #1008]!
2600 # CHECK: ldp      q23, q29, [x1, #-1024]!
2601 0xe3 0x17 0x80 0xad
2602 0xf1 0xcf 0x9f 0xad
2603 0x37 0x74 0xe0 0xad
2604
2605 #------------------------------------------------------------------------------
2606 # Load/store register pair (offset)
2607 #------------------------------------------------------------------------------
2608
2609 # CHECK: ldnp      w3, w5, [sp]
2610 # CHECK: stnp      wzr, w9, [sp, #252]
2611 # CHECK: ldnp      w2, wzr, [sp, #-256]
2612 # CHECK: ldnp      w9, w10, [sp, #4]
2613 0xe3 0x17 0x40 0x28
2614 0xff 0xa7 0x1f 0x28
2615 0xe2 0x7f 0x60 0x28
2616 0xe9 0xab 0x40 0x28
2617
2618 # CHECK: ldnp      x21, x29, [x2, #504]
2619 # CHECK: ldnp      x22, x23, [x3, #-512]
2620 # CHECK: ldnp      x24, x25, [x4, #8]
2621 0x55 0xf4 0x5f 0xa8
2622 0x76 0x5c 0x60 0xa8
2623 0x98 0xe4 0x40 0xa8
2624
2625 # CHECK: ldnp      s29, s28, [sp, #252]
2626 # CHECK: stnp      s27, s26, [sp, #-256]
2627 # CHECK: ldnp      s1, s2, [x3, #44]
2628 0xfd 0xf3 0x5f 0x2c
2629 0xfb 0x6b 0x20 0x2c
2630 0x61 0x88 0x45 0x2c
2631
2632 # CHECK: stnp      d3, d5, [x9, #504]
2633 # CHECK: stnp      d7, d11, [x10, #-512]
2634 # CHECK: ldnp      d2, d3, [x30, #-8]
2635 0x23 0x95 0x1f 0x6c
2636 0x47 0x2d 0x20 0x6c
2637 0xc2 0x8f 0x7f 0x6c
2638
2639 # CHECK: stnp      q3, q5, [sp]
2640 # CHECK: stnp      q17, q19, [sp, #1008]
2641 # CHECK: ldnp      q23, q29, [x1, #-1024]
2642 0xe3 0x17 0x0 0xac
2643 0xf1 0xcf 0x1f 0xac
2644 0x37 0x74 0x60 0xac
2645
2646 #------------------------------------------------------------------------------
2647 # Logical (immediate)
2648 #------------------------------------------------------------------------------
2649 # CHECK: orr      w3, w9, #0xffff0000
2650 # CHECK: orr      wsp, w10, #0xe00000ff
2651 # CHECK: orr      w9, w10, #0x3ff
2652 0x23 0x3d 0x10 0x32
2653 0x5f 0x29 0x3 0x32
2654 0x49 0x25 0x0 0x32
2655
2656 # CHECK: and      w14, w15, #0x80008000
2657 # CHECK: and      w12, w13, #0xffc3ffc3
2658 # CHECK: and      w11, wzr, #0x30003
2659 0xee 0x81 0x1 0x12
2660 0xac 0xad 0xa 0x12
2661 0xeb 0x87 0x0 0x12
2662
2663 # CHECK: eor      w3, w6, #0xe0e0e0e0
2664 # CHECK: eor      wsp, wzr, #0x3030303
2665 # CHECK: eor      w16, w17, #0x81818181
2666 0xc3 0xc8 0x3 0x52
2667 0xff 0xc7 0x0 0x52
2668 0x30 0xc6 0x1 0x52
2669
2670 # CHECK: ands     wzr, w18, #0xcccccccc
2671 # CHECK: ands     w19, w20, #0x33333333
2672 # CHECK: ands     w21, w22, #0x99999999
2673 0x5f 0xe6 0x2 0x72
2674 0x93 0xe6 0x0 0x72
2675 0xd5 0xe6 0x1 0x72
2676
2677 # CHECK: ands     wzr, w3, #0xaaaaaaaa
2678 # CHECK: ands     wzr, wzr, #0x55555555
2679 0x7f 0xf0 0x1 0x72
2680 0xff 0xf3 0x0 0x72
2681
2682 # CHECK: eor      x3, x5, #0xffffffffc000000
2683 # CHECK: and      x9, x10, #0x7fffffffffff
2684 # CHECK: orr      x11, x12, #0x8000000000000fff
2685 0xa3 0x84 0x66 0xd2
2686 0x49 0xb9 0x40 0x92
2687 0x8b 0x31 0x41 0xb2
2688
2689 # CHECK: orr      x3, x9, #0xffff0000ffff0000
2690 # CHECK: orr      sp, x10, #0xe00000ffe00000ff
2691 # CHECK: orr      x9, x10, #0x3ff000003ff
2692 0x23 0x3d 0x10 0xb2
2693 0x5f 0x29 0x3 0xb2
2694 0x49 0x25 0x0 0xb2
2695
2696 # CHECK: and      x14, x15, #0x8000800080008000
2697 # CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2698 # CHECK: and      x11, xzr, #0x3000300030003
2699 0xee 0x81 0x1 0x92
2700 0xac 0xad 0xa 0x92
2701 0xeb 0x87 0x0 0x92
2702
2703 # CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2704 # CHECK: eor      sp, xzr, #0x303030303030303
2705 # CHECK: eor      x16, x17, #0x8181818181818181
2706 0xc3 0xc8 0x3 0xd2
2707 0xff 0xc7 0x0 0xd2
2708 0x30 0xc6 0x1 0xd2
2709
2710 # CHECK: ands     xzr, x18, #0xcccccccccccccccc
2711 # CHECK: ands     x19, x20, #0x3333333333333333
2712 # CHECK: ands     x21, x22, #0x9999999999999999
2713 0x5f 0xe6 0x2 0xf2
2714 0x93 0xe6 0x0 0xf2
2715 0xd5 0xe6 0x1 0xf2
2716
2717 # CHECK: ands     xzr, x3, #0xaaaaaaaaaaaaaaaa
2718 # CHECK: ands     xzr, xzr, #0x5555555555555555
2719 0x7f 0xf0 0x1 0xf2
2720 0xff 0xf3 0x0 0xf2
2721
2722 # CHECK: orr      w3, wzr, #0xf000f
2723 # CHECK: orr      x10, xzr, #0xaaaaaaaaaaaaaaaa
2724 0xe3 0x8f 0x0 0x32
2725 0xea 0xf3 0x1 0xb2
2726
2727 # CHECK: orr      w3, wzr, #0xffff
2728 # CHECK: orr      x9, xzr, #0xffff00000000
2729 0xe3 0x3f 0x0 0x32
2730 0xe9 0x3f 0x60 0xb2
2731
2732 #------------------------------------------------------------------------------
2733 # Logical (shifted register)
2734 #------------------------------------------------------------------------------
2735
2736 # CHECK: and      w12, w23, w21
2737 # CHECK: and      w16, w15, w1, lsl #1
2738 # CHECK: and      w9, w4, w10, lsl #31
2739 # CHECK: and      w3, w30, w11
2740 # CHECK: and      x3, x5, x7, lsl #63
2741 0xec 0x2 0x15 0xa
2742 0xf0 0x5 0x1 0xa
2743 0x89 0x7c 0xa 0xa
2744 0xc3 0x3 0xb 0xa
2745 0xa3 0xfc 0x7 0x8a
2746
2747 # CHECK: and      x5, x14, x19, asr #4
2748 # CHECK: and      w3, w17, w19, ror #31
2749 # CHECK: and      w0, w2, wzr, lsr #17
2750 # CHECK: and      w3, w30, w11, asr
2751 0xc5 0x11 0x93 0x8a
2752 0x23 0x7e 0xd3 0xa
2753 0x40 0x44 0x5f 0xa
2754 0xc3 0x3 0x8b 0xa
2755
2756 # CHECK: and      xzr, x4, x26
2757 # CHECK: and      w3, wzr, w20, ror
2758 # CHECK: and      x7, x20, xzr, asr #63
2759 0x9f 0x0 0x1a 0x8a
2760 0xe3 0x3 0xd4 0xa
2761 0x87 0xfe 0x9f 0x8a
2762
2763 # CHECK: bic      x13, x20, x14, lsl #47
2764 # CHECK: bic      w2, w7, w9
2765 # CHECK: orr      w2, w7, w0, asr #31
2766 # CHECK: orr      x8, x9, x10, lsl #12
2767 # CHECK: orn      x3, x5, x7, asr
2768 # CHECK: orn      w2, w5, w29
2769 0x8d 0xbe 0x2e 0x8a
2770 0xe2 0x0 0x29 0xa
2771 0xe2 0x7c 0x80 0x2a
2772 0x28 0x31 0xa 0xaa
2773 0xa3 0x0 0xa7 0xaa
2774 0xa2 0x0 0x3d 0x2a
2775
2776 # CHECK: ands     w7, wzr, w9, lsl #1
2777 # CHECK: ands     x3, x5, x20, ror #63
2778 # CHECK: bics     w3, w5, w7
2779 # CHECK: bics     x3, xzr, x3, lsl #1
2780 # CHECK: tst      w3, w7, lsl #31
2781 # CHECK: tst      x2, x20, asr
2782 0xe7 0x7 0x9 0x6a
2783 0xa3 0xfc 0xd4 0xea
2784 0xa3 0x0 0x27 0x6a
2785 0xe3 0x7 0x23 0xea
2786 0x7f 0x7c 0x7 0x6a
2787 0x5f 0x0 0x94 0xea
2788
2789 # CHECK: mov      x3, x6
2790 # CHECK: mov      x3, xzr
2791 # CHECK: mov      wzr, w2
2792 # CHECK: mov      w3, w5
2793 0xe3 0x3 0x6 0xaa
2794 0xe3 0x3 0x1f 0xaa
2795 0xff 0x3 0x2 0x2a
2796 0xe3 0x3 0x5 0x2a
2797
2798 #------------------------------------------------------------------------------
2799 # Move wide (immediate)
2800 #------------------------------------------------------------------------------
2801
2802 # N.b. (FIXME) canonical aliases aren't produced here because of
2803 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
2804 # be "mov".
2805
2806 # CHECK: movz     w1, #65535
2807 # CHECK: movz     w2, #0, lsl #16
2808 # CHECK: movn     w2, #1234
2809 0xe1 0xff 0x9f 0x52
2810 0x2 0x0 0xa0 0x52
2811 0x42 0x9a 0x80 0x12
2812
2813 # CHECK: movz     x2, #1234, lsl #32
2814 # CHECK: movk     xzr, #4321, lsl #48
2815 0x42 0x9a 0xc0 0xd2
2816 0x3f 0x1c 0xe2 0xf2
2817
2818 # CHECK: movz     x2, #0
2819 # CHECK: movk     w3, #0
2820 # CHECK: movz     x4, #0, lsl #16
2821 # CHECK: movk     w5, #0, lsl #16
2822 # CHECK: movz     x6, #0, lsl #32
2823 # CHECK: movk     x7, #0, lsl #32
2824 # CHECK: movz     x8, #0, lsl #48
2825 # CHECK: movk     x9, #0, lsl #48
2826 0x2 0x0 0x80 0xd2
2827 0x3 0x0 0x80 0x72
2828 0x4 0x0 0xa0 0xd2
2829 0x5 0x0 0xa0 0x72
2830 0x6 0x0 0xc0 0xd2
2831 0x7 0x0 0xc0 0xf2
2832 0x8 0x0 0xe0 0xd2
2833 0x9 0x0 0xe0 0xf2
2834
2835 #------------------------------------------------------------------------------
2836 # PC-relative addressing
2837 #------------------------------------------------------------------------------
2838
2839 # It's slightly dodgy using immediates here, but harmless enough when
2840 # it's all that's available.
2841
2842 # CHECK: adr      x2, #1600
2843 # CHECK: adrp     x21, #6553600
2844 # CHECK: adr      x0, #262144
2845 0x02 0x32 0x00 0x10
2846 0x15 0x32 0x00 0x90
2847 0x00 0x00 0x20 0x10
2848
2849 #------------------------------------------------------------------------------
2850 # System
2851 #------------------------------------------------------------------------------
2852
2853 # CHECK: nop
2854 # CHECK: hint     #127
2855 # CHECK: nop
2856 # CHECK: yield
2857 # CHECK: wfe
2858 # CHECK: wfi
2859 # CHECK: sev
2860 # CHECK: sevl
2861 0x1f 0x20 0x3 0xd5
2862 0xff 0x2f 0x3 0xd5
2863 0x1f 0x20 0x3 0xd5
2864 0x3f 0x20 0x3 0xd5
2865 0x5f 0x20 0x3 0xd5
2866 0x7f 0x20 0x3 0xd5
2867 0x9f 0x20 0x3 0xd5
2868 0xbf 0x20 0x3 0xd5
2869
2870 # CHECK: clrex
2871 # CHECK: clrex    #0
2872 # CHECK: clrex    #7
2873 # CHECK: clrex
2874 0x5f 0x3f 0x3 0xd5
2875 0x5f 0x30 0x3 0xd5
2876 0x5f 0x37 0x3 0xd5
2877 0x5f 0x3f 0x3 0xd5
2878
2879 # CHECK: dsb      #0
2880 # CHECK: dsb      #12
2881 # CHECK: dsb      sy
2882 # CHECK: dsb      oshld
2883 # CHECK: dsb      oshst
2884 # CHECK: dsb      osh
2885 # CHECK: dsb      nshld
2886 # CHECK: dsb      nshst
2887 # CHECK: dsb      nsh
2888 # CHECK: dsb      ishld
2889 # CHECK: dsb      ishst
2890 # CHECK: dsb      ish
2891 # CHECK: dsb      ld
2892 # CHECK: dsb      st
2893 # CHECK: dsb      sy
2894 0x9f 0x30 0x3 0xd5
2895 0x9f 0x3c 0x3 0xd5
2896 0x9f 0x3f 0x3 0xd5
2897 0x9f 0x31 0x3 0xd5
2898 0x9f 0x32 0x3 0xd5
2899 0x9f 0x33 0x3 0xd5
2900 0x9f 0x35 0x3 0xd5
2901 0x9f 0x36 0x3 0xd5
2902 0x9f 0x37 0x3 0xd5
2903 0x9f 0x39 0x3 0xd5
2904 0x9f 0x3a 0x3 0xd5
2905 0x9f 0x3b 0x3 0xd5
2906 0x9f 0x3d 0x3 0xd5
2907 0x9f 0x3e 0x3 0xd5
2908 0x9f 0x3f 0x3 0xd5
2909
2910 # CHECK: dmb      #0
2911 # CHECK: dmb      #12
2912 # CHECK: dmb      sy
2913 # CHECK: dmb      oshld
2914 # CHECK: dmb      oshst
2915 # CHECK: dmb      osh
2916 # CHECK: dmb      nshld
2917 # CHECK: dmb      nshst
2918 # CHECK: dmb      nsh
2919 # CHECK: dmb      ishld
2920 # CHECK: dmb      ishst
2921 # CHECK: dmb      ish
2922 # CHECK: dmb      ld
2923 # CHECK: dmb      st
2924 # CHECK: dmb      sy
2925 0xbf 0x30 0x3 0xd5
2926 0xbf 0x3c 0x3 0xd5
2927 0xbf 0x3f 0x3 0xd5
2928 0xbf 0x31 0x3 0xd5
2929 0xbf 0x32 0x3 0xd5
2930 0xbf 0x33 0x3 0xd5
2931 0xbf 0x35 0x3 0xd5
2932 0xbf 0x36 0x3 0xd5
2933 0xbf 0x37 0x3 0xd5
2934 0xbf 0x39 0x3 0xd5
2935 0xbf 0x3a 0x3 0xd5
2936 0xbf 0x3b 0x3 0xd5
2937 0xbf 0x3d 0x3 0xd5
2938 0xbf 0x3e 0x3 0xd5
2939 0xbf 0x3f 0x3 0xd5
2940
2941 # CHECK: isb
2942 # CHECK: isb      #12
2943 0xdf 0x3f 0x3 0xd5
2944 0xdf 0x3c 0x3 0xd5
2945
2946 # CHECK: msr      spsel, #0
2947 # CHECK: msr      daifset, #15
2948 # CHECK: msr      daifclr, #12
2949 0xbf 0x40 0x0 0xd5
2950 0xdf 0x4f 0x3 0xd5
2951 0xff 0x4c 0x3 0xd5
2952
2953 # CHECK: sys      #7, c5, c9, #7, x5
2954 # CHECK: sys      #0, c15, c15, #2
2955 # CHECK: sysl     x9, #7, c5, c9, #7
2956 # CHECK: sysl     x1, #0, c15, c15, #2
2957 0xe5 0x59 0xf 0xd5
2958 0x5f 0xff 0x8 0xd5
2959 0xe9 0x59 0x2f 0xd5
2960 0x41 0xff 0x28 0xd5
2961
2962 # CHECK: sys     #0, c7, c1, #0, xzr
2963 # CHECK: sys     #0, c7, c5, #0, xzr
2964 # CHECK: sys     #3, c7, c5, #1, x9
2965 0x1f 0x71 0x8 0xd5
2966 0x1f 0x75 0x8 0xd5
2967 0x29 0x75 0xb 0xd5
2968
2969 # CHECK: sys     #3, c7, c4, #1, x12
2970 # CHECK: sys     #0, c7, c6, #1, xzr
2971 # CHECK: sys     #0, c7, c6, #2, x2
2972 # CHECK: sys     #3, c7, c10, #1, x9
2973 # CHECK: sys     #0, c7, c10, #2, x10
2974 # CHECK: sys     #3, c7, c11, #1, x0
2975 # CHECK: sys     #3, c7, c14, #1, x3
2976 # CHECK: sys     #0, c7, c14, #2, x30
2977 0x2c 0x74 0xb 0xd5
2978 0x3f 0x76 0x8 0xd5
2979 0x42 0x76 0x8 0xd5
2980 0x29 0x7a 0xb 0xd5
2981 0x4a 0x7a 0x8 0xd5
2982 0x20 0x7b 0xb 0xd5
2983 0x23 0x7e 0xb 0xd5
2984 0x5e 0x7e 0x8 0xd5
2985
2986
2987 # CHECK: msr      teecr32_el1, x12
2988 # CHECK: msr      osdtrrx_el1, x12
2989 # CHECK: msr      mdccint_el1, x12
2990 # CHECK: msr      mdscr_el1, x12
2991 # CHECK: msr      osdtrtx_el1, x12
2992 # CHECK: msr      dbgdtr_el0, x12
2993 # CHECK: msr      dbgdtrtx_el0, x12
2994 # CHECK: msr      oseccr_el1, x12
2995 # CHECK: msr      dbgvcr32_el2, x12
2996 # CHECK: msr      dbgbvr0_el1, x12
2997 # CHECK: msr      dbgbvr1_el1, x12
2998 # CHECK: msr      dbgbvr2_el1, x12
2999 # CHECK: msr      dbgbvr3_el1, x12
3000 # CHECK: msr      dbgbvr4_el1, x12
3001 # CHECK: msr      dbgbvr5_el1, x12
3002 # CHECK: msr      dbgbvr6_el1, x12
3003 # CHECK: msr      dbgbvr7_el1, x12
3004 # CHECK: msr      dbgbvr8_el1, x12
3005 # CHECK: msr      dbgbvr9_el1, x12
3006 # CHECK: msr      dbgbvr10_el1, x12
3007 # CHECK: msr      dbgbvr11_el1, x12
3008 # CHECK: msr      dbgbvr12_el1, x12
3009 # CHECK: msr      dbgbvr13_el1, x12
3010 # CHECK: msr      dbgbvr14_el1, x12
3011 # CHECK: msr      dbgbvr15_el1, x12
3012 # CHECK: msr      dbgbcr0_el1, x12
3013 # CHECK: msr      dbgbcr1_el1, x12
3014 # CHECK: msr      dbgbcr2_el1, x12
3015 # CHECK: msr      dbgbcr3_el1, x12
3016 # CHECK: msr      dbgbcr4_el1, x12
3017 # CHECK: msr      dbgbcr5_el1, x12
3018 # CHECK: msr      dbgbcr6_el1, x12
3019 # CHECK: msr      dbgbcr7_el1, x12
3020 # CHECK: msr      dbgbcr8_el1, x12
3021 # CHECK: msr      dbgbcr9_el1, x12
3022 # CHECK: msr      dbgbcr10_el1, x12
3023 # CHECK: msr      dbgbcr11_el1, x12
3024 # CHECK: msr      dbgbcr12_el1, x12
3025 # CHECK: msr      dbgbcr13_el1, x12
3026 # CHECK: msr      dbgbcr14_el1, x12
3027 # CHECK: msr      dbgbcr15_el1, x12
3028 # CHECK: msr      dbgwvr0_el1, x12
3029 # CHECK: msr      dbgwvr1_el1, x12
3030 # CHECK: msr      dbgwvr2_el1, x12
3031 # CHECK: msr      dbgwvr3_el1, x12
3032 # CHECK: msr      dbgwvr4_el1, x12
3033 # CHECK: msr      dbgwvr5_el1, x12
3034 # CHECK: msr      dbgwvr6_el1, x12
3035 # CHECK: msr      dbgwvr7_el1, x12
3036 # CHECK: msr      dbgwvr8_el1, x12
3037 # CHECK: msr      dbgwvr9_el1, x12
3038 # CHECK: msr      dbgwvr10_el1, x12
3039 # CHECK: msr      dbgwvr11_el1, x12
3040 # CHECK: msr      dbgwvr12_el1, x12
3041 # CHECK: msr      dbgwvr13_el1, x12
3042 # CHECK: msr      dbgwvr14_el1, x12
3043 # CHECK: msr      dbgwvr15_el1, x12
3044 # CHECK: msr      dbgwcr0_el1, x12
3045 # CHECK: msr      dbgwcr1_el1, x12
3046 # CHECK: msr      dbgwcr2_el1, x12
3047 # CHECK: msr      dbgwcr3_el1, x12
3048 # CHECK: msr      dbgwcr4_el1, x12
3049 # CHECK: msr      dbgwcr5_el1, x12
3050 # CHECK: msr      dbgwcr6_el1, x12
3051 # CHECK: msr      dbgwcr7_el1, x12
3052 # CHECK: msr      dbgwcr8_el1, x12
3053 # CHECK: msr      dbgwcr9_el1, x12
3054 # CHECK: msr      dbgwcr10_el1, x12
3055 # CHECK: msr      dbgwcr11_el1, x12
3056 # CHECK: msr      dbgwcr12_el1, x12
3057 # CHECK: msr      dbgwcr13_el1, x12
3058 # CHECK: msr      dbgwcr14_el1, x12
3059 # CHECK: msr      dbgwcr15_el1, x12
3060 # CHECK: msr      teehbr32_el1, x12
3061 # CHECK: msr      oslar_el1, x12
3062 # CHECK: msr      osdlr_el1, x12
3063 # CHECK: msr      dbgprcr_el1, x12
3064 # CHECK: msr      dbgclaimset_el1, x12
3065 # CHECK: msr      dbgclaimclr_el1, x12
3066 # CHECK: msr      csselr_el1, x12
3067 # CHECK: msr      vpidr_el2, x12
3068 # CHECK: msr      vmpidr_el2, x12
3069 # CHECK: msr      sctlr_el1, x12
3070 # CHECK: msr      sctlr_el2, x12
3071 # CHECK: msr      sctlr_el3, x12
3072 # CHECK: msr      actlr_el1, x12
3073 # CHECK: msr      actlr_el2, x12
3074 # CHECK: msr      actlr_el3, x12
3075 # CHECK: msr      cpacr_el1, x12
3076 # CHECK: msr      hcr_el2, x12
3077 # CHECK: msr      scr_el3, x12
3078 # CHECK: msr      mdcr_el2, x12
3079 # CHECK: msr      sder32_el3, x12
3080 # CHECK: msr      cptr_el2, x12
3081 # CHECK: msr      cptr_el3, x12
3082 # CHECK: msr      hstr_el2, x12
3083 # CHECK: msr      hacr_el2, x12
3084 # CHECK: msr      mdcr_el3, x12
3085 # CHECK: msr      ttbr0_el1, x12
3086 # CHECK: msr      ttbr0_el2, x12
3087 # CHECK: msr      ttbr0_el3, x12
3088 # CHECK: msr      ttbr1_el1, x12
3089 # CHECK: msr      tcr_el1, x12
3090 # CHECK: msr      tcr_el2, x12
3091 # CHECK: msr      tcr_el3, x12
3092 # CHECK: msr      vttbr_el2, x12
3093 # CHECK: msr      vtcr_el2, x12
3094 # CHECK: msr      dacr32_el2, x12
3095 # CHECK: msr      spsr_el1, x12
3096 # CHECK: msr      spsr_el2, x12
3097 # CHECK: msr      spsr_el3, x12
3098 # CHECK: msr      elr_el1, x12
3099 # CHECK: msr      elr_el2, x12
3100 # CHECK: msr      elr_el3, x12
3101 # CHECK: msr      sp_el0, x12
3102 # CHECK: msr      sp_el1, x12
3103 # CHECK: msr      sp_el2, x12
3104 # CHECK: msr      spsel, x12
3105 # CHECK: msr      nzcv, x12
3106 # CHECK: msr      daif, x12
3107 # CHECK: msr      currentel, x12
3108 # CHECK: msr      spsr_irq, x12
3109 # CHECK: msr      spsr_abt, x12
3110 # CHECK: msr      spsr_und, x12
3111 # CHECK: msr      spsr_fiq, x12
3112 # CHECK: msr      fpcr, x12
3113 # CHECK: msr      fpsr, x12
3114 # CHECK: msr      dspsr_el0, x12
3115 # CHECK: msr      dlr_el0, x12
3116 # CHECK: msr      ifsr32_el2, x12
3117 # CHECK: msr      afsr0_el1, x12
3118 # CHECK: msr      afsr0_el2, x12
3119 # CHECK: msr      afsr0_el3, x12
3120 # CHECK: msr      afsr1_el1, x12
3121 # CHECK: msr      afsr1_el2, x12
3122 # CHECK: msr      afsr1_el3, x12
3123 # CHECK: msr      esr_el1, x12
3124 # CHECK: msr      esr_el2, x12
3125 # CHECK: msr      esr_el3, x12
3126 # CHECK: msr      fpexc32_el2, x12
3127 # CHECK: msr      far_el1, x12
3128 # CHECK: msr      far_el2, x12
3129 # CHECK: msr      far_el3, x12
3130 # CHECK: msr      hpfar_el2, x12
3131 # CHECK: msr      par_el1, x12
3132 # CHECK: msr      pmcr_el0, x12
3133 # CHECK: msr      pmcntenset_el0, x12
3134 # CHECK: msr      pmcntenclr_el0, x12
3135 # CHECK: msr      pmovsclr_el0, x12
3136 # CHECK: msr      pmselr_el0, x12
3137 # CHECK: msr      pmccntr_el0, x12
3138 # CHECK: msr      pmxevtyper_el0, x12
3139 # CHECK: msr      pmxevcntr_el0, x12
3140 # CHECK: msr      pmuserenr_el0, x12
3141 # CHECK: msr      pmintenset_el1, x12
3142 # CHECK: msr      pmintenclr_el1, x12
3143 # CHECK: msr      pmovsset_el0, x12
3144 # CHECK: msr      mair_el1, x12
3145 # CHECK: msr      mair_el2, x12
3146 # CHECK: msr      mair_el3, x12
3147 # CHECK: msr      amair_el1, x12
3148 # CHECK: msr      amair_el2, x12
3149 # CHECK: msr      amair_el3, x12
3150 # CHECK: msr      vbar_el1, x12
3151 # CHECK: msr      vbar_el2, x12
3152 # CHECK: msr      vbar_el3, x12
3153 # CHECK: msr      rmr_el1, x12
3154 # CHECK: msr      rmr_el2, x12
3155 # CHECK: msr      rmr_el3, x12
3156 # CHECK: msr      tpidr_el0, x12
3157 # CHECK: msr      tpidr_el2, x12
3158 # CHECK: msr      tpidr_el3, x12
3159 # CHECK: msr      tpidrro_el0, x12
3160 # CHECK: msr      tpidr_el1, x12
3161 # CHECK: msr      cntfrq_el0, x12
3162 # CHECK: msr      cntvoff_el2, x12
3163 # CHECK: msr      cntkctl_el1, x12
3164 # CHECK: msr      cnthctl_el2, x12
3165 # CHECK: msr      cntp_tval_el0, x12
3166 # CHECK: msr      cnthp_tval_el2, x12
3167 # CHECK: msr      cntps_tval_el1, x12
3168 # CHECK: msr      cntp_ctl_el0, x12
3169 # CHECK: msr      cnthp_ctl_el2, x12
3170 # CHECK: msr      cntps_ctl_el1, x12
3171 # CHECK: msr      cntp_cval_el0, x12
3172 # CHECK: msr      cnthp_cval_el2, x12
3173 # CHECK: msr      cntps_cval_el1, x12
3174 # CHECK: msr      cntv_tval_el0, x12
3175 # CHECK: msr      cntv_ctl_el0, x12
3176 # CHECK: msr      cntv_cval_el0, x12
3177 # CHECK: msr      pmevcntr0_el0, x12
3178 # CHECK: msr      pmevcntr1_el0, x12
3179 # CHECK: msr      pmevcntr2_el0, x12
3180 # CHECK: msr      pmevcntr3_el0, x12
3181 # CHECK: msr      pmevcntr4_el0, x12
3182 # CHECK: msr      pmevcntr5_el0, x12
3183 # CHECK: msr      pmevcntr6_el0, x12
3184 # CHECK: msr      pmevcntr7_el0, x12
3185 # CHECK: msr      pmevcntr8_el0, x12
3186 # CHECK: msr      pmevcntr9_el0, x12
3187 # CHECK: msr      pmevcntr10_el0, x12
3188 # CHECK: msr      pmevcntr11_el0, x12
3189 # CHECK: msr      pmevcntr12_el0, x12
3190 # CHECK: msr      pmevcntr13_el0, x12
3191 # CHECK: msr      pmevcntr14_el0, x12
3192 # CHECK: msr      pmevcntr15_el0, x12
3193 # CHECK: msr      pmevcntr16_el0, x12
3194 # CHECK: msr      pmevcntr17_el0, x12
3195 # CHECK: msr      pmevcntr18_el0, x12
3196 # CHECK: msr      pmevcntr19_el0, x12
3197 # CHECK: msr      pmevcntr20_el0, x12
3198 # CHECK: msr      pmevcntr21_el0, x12
3199 # CHECK: msr      pmevcntr22_el0, x12
3200 # CHECK: msr      pmevcntr23_el0, x12
3201 # CHECK: msr      pmevcntr24_el0, x12
3202 # CHECK: msr      pmevcntr25_el0, x12
3203 # CHECK: msr      pmevcntr26_el0, x12
3204 # CHECK: msr      pmevcntr27_el0, x12
3205 # CHECK: msr      pmevcntr28_el0, x12
3206 # CHECK: msr      pmevcntr29_el0, x12
3207 # CHECK: msr      pmevcntr30_el0, x12
3208 # CHECK: msr      pmccfiltr_el0, x12
3209 # CHECK: msr      pmevtyper0_el0, x12
3210 # CHECK: msr      pmevtyper1_el0, x12
3211 # CHECK: msr      pmevtyper2_el0, x12
3212 # CHECK: msr      pmevtyper3_el0, x12
3213 # CHECK: msr      pmevtyper4_el0, x12
3214 # CHECK: msr      pmevtyper5_el0, x12
3215 # CHECK: msr      pmevtyper6_el0, x12
3216 # CHECK: msr      pmevtyper7_el0, x12
3217 # CHECK: msr      pmevtyper8_el0, x12
3218 # CHECK: msr      pmevtyper9_el0, x12
3219 # CHECK: msr      pmevtyper10_el0, x12
3220 # CHECK: msr      pmevtyper11_el0, x12
3221 # CHECK: msr      pmevtyper12_el0, x12
3222 # CHECK: msr      pmevtyper13_el0, x12
3223 # CHECK: msr      pmevtyper14_el0, x12
3224 # CHECK: msr      pmevtyper15_el0, x12
3225 # CHECK: msr      pmevtyper16_el0, x12
3226 # CHECK: msr      pmevtyper17_el0, x12
3227 # CHECK: msr      pmevtyper18_el0, x12
3228 # CHECK: msr      pmevtyper19_el0, x12
3229 # CHECK: msr      pmevtyper20_el0, x12
3230 # CHECK: msr      pmevtyper21_el0, x12
3231 # CHECK: msr      pmevtyper22_el0, x12
3232 # CHECK: msr      pmevtyper23_el0, x12
3233 # CHECK: msr      pmevtyper24_el0, x12
3234 # CHECK: msr      pmevtyper25_el0, x12
3235 # CHECK: msr      pmevtyper26_el0, x12
3236 # CHECK: msr      pmevtyper27_el0, x12
3237 # CHECK: msr      pmevtyper28_el0, x12
3238 # CHECK: msr      pmevtyper29_el0, x12
3239 # CHECK: msr      pmevtyper30_el0, x12
3240 # CHECK: mrs      x9, teecr32_el1
3241 # CHECK: mrs      x9, osdtrrx_el1
3242 # CHECK: mrs      x9, mdccsr_el0
3243 # CHECK: mrs      x9, mdccint_el1
3244 # CHECK: mrs      x9, mdscr_el1
3245 # CHECK: mrs      x9, osdtrtx_el1
3246 # CHECK: mrs      x9, dbgdtr_el0
3247 # CHECK: mrs      x9, dbgdtrrx_el0
3248 # CHECK: mrs      x9, oseccr_el1
3249 # CHECK: mrs      x9, dbgvcr32_el2
3250 # CHECK: mrs      x9, dbgbvr0_el1
3251 # CHECK: mrs      x9, dbgbvr1_el1
3252 # CHECK: mrs      x9, dbgbvr2_el1
3253 # CHECK: mrs      x9, dbgbvr3_el1
3254 # CHECK: mrs      x9, dbgbvr4_el1
3255 # CHECK: mrs      x9, dbgbvr5_el1
3256 # CHECK: mrs      x9, dbgbvr6_el1
3257 # CHECK: mrs      x9, dbgbvr7_el1
3258 # CHECK: mrs      x9, dbgbvr8_el1
3259 # CHECK: mrs      x9, dbgbvr9_el1
3260 # CHECK: mrs      x9, dbgbvr10_el1
3261 # CHECK: mrs      x9, dbgbvr11_el1
3262 # CHECK: mrs      x9, dbgbvr12_el1
3263 # CHECK: mrs      x9, dbgbvr13_el1
3264 # CHECK: mrs      x9, dbgbvr14_el1
3265 # CHECK: mrs      x9, dbgbvr15_el1
3266 # CHECK: mrs      x9, dbgbcr0_el1
3267 # CHECK: mrs      x9, dbgbcr1_el1
3268 # CHECK: mrs      x9, dbgbcr2_el1
3269 # CHECK: mrs      x9, dbgbcr3_el1
3270 # CHECK: mrs      x9, dbgbcr4_el1
3271 # CHECK: mrs      x9, dbgbcr5_el1
3272 # CHECK: mrs      x9, dbgbcr6_el1
3273 # CHECK: mrs      x9, dbgbcr7_el1
3274 # CHECK: mrs      x9, dbgbcr8_el1
3275 # CHECK: mrs      x9, dbgbcr9_el1
3276 # CHECK: mrs      x9, dbgbcr10_el1
3277 # CHECK: mrs      x9, dbgbcr11_el1
3278 # CHECK: mrs      x9, dbgbcr12_el1
3279 # CHECK: mrs      x9, dbgbcr13_el1
3280 # CHECK: mrs      x9, dbgbcr14_el1
3281 # CHECK: mrs      x9, dbgbcr15_el1
3282 # CHECK: mrs      x9, dbgwvr0_el1
3283 # CHECK: mrs      x9, dbgwvr1_el1
3284 # CHECK: mrs      x9, dbgwvr2_el1
3285 # CHECK: mrs      x9, dbgwvr3_el1
3286 # CHECK: mrs      x9, dbgwvr4_el1
3287 # CHECK: mrs      x9, dbgwvr5_el1
3288 # CHECK: mrs      x9, dbgwvr6_el1
3289 # CHECK: mrs      x9, dbgwvr7_el1
3290 # CHECK: mrs      x9, dbgwvr8_el1
3291 # CHECK: mrs      x9, dbgwvr9_el1
3292 # CHECK: mrs      x9, dbgwvr10_el1
3293 # CHECK: mrs      x9, dbgwvr11_el1
3294 # CHECK: mrs      x9, dbgwvr12_el1
3295 # CHECK: mrs      x9, dbgwvr13_el1
3296 # CHECK: mrs      x9, dbgwvr14_el1
3297 # CHECK: mrs      x9, dbgwvr15_el1
3298 # CHECK: mrs      x9, dbgwcr0_el1
3299 # CHECK: mrs      x9, dbgwcr1_el1
3300 # CHECK: mrs      x9, dbgwcr2_el1
3301 # CHECK: mrs      x9, dbgwcr3_el1
3302 # CHECK: mrs      x9, dbgwcr4_el1
3303 # CHECK: mrs      x9, dbgwcr5_el1
3304 # CHECK: mrs      x9, dbgwcr6_el1
3305 # CHECK: mrs      x9, dbgwcr7_el1
3306 # CHECK: mrs      x9, dbgwcr8_el1
3307 # CHECK: mrs      x9, dbgwcr9_el1
3308 # CHECK: mrs      x9, dbgwcr10_el1
3309 # CHECK: mrs      x9, dbgwcr11_el1
3310 # CHECK: mrs      x9, dbgwcr12_el1
3311 # CHECK: mrs      x9, dbgwcr13_el1
3312 # CHECK: mrs      x9, dbgwcr14_el1
3313 # CHECK: mrs      x9, dbgwcr15_el1
3314 # CHECK: mrs      x9, mdrar_el1
3315 # CHECK: mrs      x9, teehbr32_el1
3316 # CHECK: mrs      x9, oslsr_el1
3317 # CHECK: mrs      x9, osdlr_el1
3318 # CHECK: mrs      x9, dbgprcr_el1
3319 # CHECK: mrs      x9, dbgclaimset_el1
3320 # CHECK: mrs      x9, dbgclaimclr_el1
3321 # CHECK: mrs      x9, dbgauthstatus_el1
3322 # CHECK: mrs      x9, midr_el1
3323 # CHECK: mrs      x9, ccsidr_el1
3324 # CHECK: mrs      x9, csselr_el1
3325 # CHECK: mrs      x9, vpidr_el2
3326 # CHECK: mrs      x9, clidr_el1
3327 # CHECK: mrs      x9, ctr_el0
3328 # CHECK: mrs      x9, mpidr_el1
3329 # CHECK: mrs      x9, vmpidr_el2
3330 # CHECK: mrs      x9, revidr_el1
3331 # CHECK: mrs      x9, aidr_el1
3332 # CHECK: mrs      x9, dczid_el0
3333 # CHECK: mrs      x9, id_pfr0_el1
3334 # CHECK: mrs      x9, id_pfr1_el1
3335 # CHECK: mrs      x9, id_dfr0_el1
3336 # CHECK: mrs      x9, id_afr0_el1
3337 # CHECK: mrs      x9, id_mmfr0_el1
3338 # CHECK: mrs      x9, id_mmfr1_el1
3339 # CHECK: mrs      x9, id_mmfr2_el1
3340 # CHECK: mrs      x9, id_mmfr3_el1
3341 # CHECK: mrs      x9, id_isar0_el1
3342 # CHECK: mrs      x9, id_isar1_el1
3343 # CHECK: mrs      x9, id_isar2_el1
3344 # CHECK: mrs      x9, id_isar3_el1
3345 # CHECK: mrs      x9, id_isar4_el1
3346 # CHECK: mrs      x9, id_isar5_el1
3347 # CHECK: mrs      x9, mvfr0_el1
3348 # CHECK: mrs      x9, mvfr1_el1
3349 # CHECK: mrs      x9, mvfr2_el1
3350 # CHECK: mrs      x9, id_aa64pfr0_el1
3351 # CHECK: mrs      x9, id_aa64pfr1_el1
3352 # CHECK: mrs      x9, id_aa64dfr0_el1
3353 # CHECK: mrs      x9, id_aa64dfr1_el1
3354 # CHECK: mrs      x9, id_aa64afr0_el1
3355 # CHECK: mrs      x9, id_aa64afr1_el1
3356 # CHECK: mrs      x9, id_aa64isar0_el1
3357 # CHECK: mrs      x9, id_aa64isar1_el1
3358 # CHECK: mrs      x9, id_aa64mmfr0_el1
3359 # CHECK: mrs      x9, id_aa64mmfr1_el1
3360 # CHECK: mrs      x9, sctlr_el1
3361 # CHECK: mrs      x9, sctlr_el2
3362 # CHECK: mrs      x9, sctlr_el3
3363 # CHECK: mrs      x9, actlr_el1
3364 # CHECK: mrs      x9, actlr_el2
3365 # CHECK: mrs      x9, actlr_el3
3366 # CHECK: mrs      x9, cpacr_el1
3367 # CHECK: mrs      x9, hcr_el2
3368 # CHECK: mrs      x9, scr_el3
3369 # CHECK: mrs      x9, mdcr_el2
3370 # CHECK: mrs      x9, sder32_el3
3371 # CHECK: mrs      x9, cptr_el2
3372 # CHECK: mrs      x9, cptr_el3
3373 # CHECK: mrs      x9, hstr_el2
3374 # CHECK: mrs      x9, hacr_el2
3375 # CHECK: mrs      x9, mdcr_el3
3376 # CHECK: mrs      x9, ttbr0_el1
3377 # CHECK: mrs      x9, ttbr0_el2
3378 # CHECK: mrs      x9, ttbr0_el3
3379 # CHECK: mrs      x9, ttbr1_el1
3380 # CHECK: mrs      x9, tcr_el1
3381 # CHECK: mrs      x9, tcr_el2
3382 # CHECK: mrs      x9, tcr_el3
3383 # CHECK: mrs      x9, vttbr_el2
3384 # CHECK: mrs      x9, vtcr_el2
3385 # CHECK: mrs      x9, dacr32_el2
3386 # CHECK: mrs      x9, spsr_el1
3387 # CHECK: mrs      x9, spsr_el2
3388 # CHECK: mrs      x9, spsr_el3
3389 # CHECK: mrs      x9, elr_el1
3390 # CHECK: mrs      x9, elr_el2
3391 # CHECK: mrs      x9, elr_el3
3392 # CHECK: mrs      x9, sp_el0
3393 # CHECK: mrs      x9, sp_el1
3394 # CHECK: mrs      x9, sp_el2
3395 # CHECK: mrs      x9, spsel
3396 # CHECK: mrs      x9, nzcv
3397 # CHECK: mrs      x9, daif
3398 # CHECK: mrs      x9, currentel
3399 # CHECK: mrs      x9, spsr_irq
3400 # CHECK: mrs      x9, spsr_abt
3401 # CHECK: mrs      x9, spsr_und
3402 # CHECK: mrs      x9, spsr_fiq
3403 # CHECK: mrs      x9, fpcr
3404 # CHECK: mrs      x9, fpsr
3405 # CHECK: mrs      x9, dspsr_el0
3406 # CHECK: mrs      x9, dlr_el0
3407 # CHECK: mrs      x9, ifsr32_el2
3408 # CHECK: mrs      x9, afsr0_el1
3409 # CHECK: mrs      x9, afsr0_el2
3410 # CHECK: mrs      x9, afsr0_el3
3411 # CHECK: mrs      x9, afsr1_el1
3412 # CHECK: mrs      x9, afsr1_el2
3413 # CHECK: mrs      x9, afsr1_el3
3414 # CHECK: mrs      x9, esr_el1
3415 # CHECK: mrs      x9, esr_el2
3416 # CHECK: mrs      x9, esr_el3
3417 # CHECK: mrs      x9, fpexc32_el2
3418 # CHECK: mrs      x9, far_el1
3419 # CHECK: mrs      x9, far_el2
3420 # CHECK: mrs      x9, far_el3
3421 # CHECK: mrs      x9, hpfar_el2
3422 # CHECK: mrs      x9, par_el1
3423 # CHECK: mrs      x9, pmcr_el0
3424 # CHECK: mrs      x9, pmcntenset_el0
3425 # CHECK: mrs      x9, pmcntenclr_el0
3426 # CHECK: mrs      x9, pmovsclr_el0
3427 # CHECK: mrs      x9, pmselr_el0
3428 # CHECK: mrs      x9, pmceid0_el0
3429 # CHECK: mrs      x9, pmceid1_el0
3430 # CHECK: mrs      x9, pmccntr_el0
3431 # CHECK: mrs      x9, pmxevtyper_el0
3432 # CHECK: mrs      x9, pmxevcntr_el0
3433 # CHECK: mrs      x9, pmuserenr_el0
3434 # CHECK: mrs      x9, pmintenset_el1
3435 # CHECK: mrs      x9, pmintenclr_el1
3436 # CHECK: mrs      x9, pmovsset_el0
3437 # CHECK: mrs      x9, mair_el1
3438 # CHECK: mrs      x9, mair_el2
3439 # CHECK: mrs      x9, mair_el3
3440 # CHECK: mrs      x9, amair_el1
3441 # CHECK: mrs      x9, amair_el2
3442 # CHECK: mrs      x9, amair_el3
3443 # CHECK: mrs      x9, vbar_el1
3444 # CHECK: mrs      x9, vbar_el2
3445 # CHECK: mrs      x9, vbar_el3
3446 # CHECK: mrs      x9, rvbar_el1
3447 # CHECK: mrs      x9, rvbar_el2
3448 # CHECK: mrs      x9, rvbar_el3
3449 # CHECK: mrs      x9, rmr_el1
3450 # CHECK: mrs      x9, rmr_el2
3451 # CHECK: mrs      x9, rmr_el3
3452 # CHECK: mrs      x9, isr_el1
3453 # CHECK: mrs      x9, contextidr_el1
3454 # CHECK: mrs      x9, tpidr_el0
3455 # CHECK: mrs      x9, tpidr_el2
3456 # CHECK: mrs      x9, tpidr_el3
3457 # CHECK: mrs      x9, tpidrro_el0
3458 # CHECK: mrs      x9, tpidr_el1
3459 # CHECK: mrs      x9, cntfrq_el0
3460 # CHECK: mrs      x9, cntpct_el0
3461 # CHECK: mrs      x9, cntvct_el0
3462 # CHECK: mrs      x9, cntvoff_el2
3463 # CHECK: mrs      x9, cntkctl_el1
3464 # CHECK: mrs      x9, cnthctl_el2
3465 # CHECK: mrs      x9, cntp_tval_el0
3466 # CHECK: mrs      x9, cnthp_tval_el2
3467 # CHECK: mrs      x9, cntps_tval_el1
3468 # CHECK: mrs      x9, cntp_ctl_el0
3469 # CHECK: mrs      x9, cnthp_ctl_el2
3470 # CHECK: mrs      x9, cntps_ctl_el1
3471 # CHECK: mrs      x9, cntp_cval_el0
3472 # CHECK: mrs      x9, cnthp_cval_el2
3473 # CHECK: mrs      x9, cntps_cval_el1
3474 # CHECK: mrs      x9, cntv_tval_el0
3475 # CHECK: mrs      x9, cntv_ctl_el0
3476 # CHECK: mrs      x9, cntv_cval_el0
3477 # CHECK: mrs      x9, pmevcntr0_el0
3478 # CHECK: mrs      x9, pmevcntr1_el0
3479 # CHECK: mrs      x9, pmevcntr2_el0
3480 # CHECK: mrs      x9, pmevcntr3_el0
3481 # CHECK: mrs      x9, pmevcntr4_el0
3482 # CHECK: mrs      x9, pmevcntr5_el0
3483 # CHECK: mrs      x9, pmevcntr6_el0
3484 # CHECK: mrs      x9, pmevcntr7_el0
3485 # CHECK: mrs      x9, pmevcntr8_el0
3486 # CHECK: mrs      x9, pmevcntr9_el0
3487 # CHECK: mrs      x9, pmevcntr10_el0
3488 # CHECK: mrs      x9, pmevcntr11_el0
3489 # CHECK: mrs      x9, pmevcntr12_el0
3490 # CHECK: mrs      x9, pmevcntr13_el0
3491 # CHECK: mrs      x9, pmevcntr14_el0
3492 # CHECK: mrs      x9, pmevcntr15_el0
3493 # CHECK: mrs      x9, pmevcntr16_el0
3494 # CHECK: mrs      x9, pmevcntr17_el0
3495 # CHECK: mrs      x9, pmevcntr18_el0
3496 # CHECK: mrs      x9, pmevcntr19_el0
3497 # CHECK: mrs      x9, pmevcntr20_el0
3498 # CHECK: mrs      x9, pmevcntr21_el0
3499 # CHECK: mrs      x9, pmevcntr22_el0
3500 # CHECK: mrs      x9, pmevcntr23_el0
3501 # CHECK: mrs      x9, pmevcntr24_el0
3502 # CHECK: mrs      x9, pmevcntr25_el0
3503 # CHECK: mrs      x9, pmevcntr26_el0
3504 # CHECK: mrs      x9, pmevcntr27_el0
3505 # CHECK: mrs      x9, pmevcntr28_el0
3506 # CHECK: mrs      x9, pmevcntr29_el0
3507 # CHECK: mrs      x9, pmevcntr30_el0
3508 # CHECK: mrs      x9, pmccfiltr_el0
3509 # CHECK: mrs      x9, pmevtyper0_el0
3510 # CHECK: mrs      x9, pmevtyper1_el0
3511 # CHECK: mrs      x9, pmevtyper2_el0
3512 # CHECK: mrs      x9, pmevtyper3_el0
3513 # CHECK: mrs      x9, pmevtyper4_el0
3514 # CHECK: mrs      x9, pmevtyper5_el0
3515 # CHECK: mrs      x9, pmevtyper6_el0
3516 # CHECK: mrs      x9, pmevtyper7_el0
3517 # CHECK: mrs      x9, pmevtyper8_el0
3518 # CHECK: mrs      x9, pmevtyper9_el0
3519 # CHECK: mrs      x9, pmevtyper10_el0
3520 # CHECK: mrs      x9, pmevtyper11_el0
3521 # CHECK: mrs      x9, pmevtyper12_el0
3522 # CHECK: mrs      x9, pmevtyper13_el0
3523 # CHECK: mrs      x9, pmevtyper14_el0
3524 # CHECK: mrs      x9, pmevtyper15_el0
3525 # CHECK: mrs      x9, pmevtyper16_el0
3526 # CHECK: mrs      x9, pmevtyper17_el0
3527 # CHECK: mrs      x9, pmevtyper18_el0
3528 # CHECK: mrs      x9, pmevtyper19_el0
3529 # CHECK: mrs      x9, pmevtyper20_el0
3530 # CHECK: mrs      x9, pmevtyper21_el0
3531 # CHECK: mrs      x9, pmevtyper22_el0
3532 # CHECK: mrs      x9, pmevtyper23_el0
3533 # CHECK: mrs      x9, pmevtyper24_el0
3534 # CHECK: mrs      x9, pmevtyper25_el0
3535 # CHECK: mrs      x9, pmevtyper26_el0
3536 # CHECK: mrs      x9, pmevtyper27_el0
3537 # CHECK: mrs      x9, pmevtyper28_el0
3538 # CHECK: mrs      x9, pmevtyper29_el0
3539 # CHECK: mrs      x9, pmevtyper30_el0
3540
3541 0xc 0x0 0x12 0xd5
3542 0x4c 0x0 0x10 0xd5
3543 0xc 0x2 0x10 0xd5
3544 0x4c 0x2 0x10 0xd5
3545 0x4c 0x3 0x10 0xd5
3546 0xc 0x4 0x13 0xd5
3547 0xc 0x5 0x13 0xd5
3548 0x4c 0x6 0x10 0xd5
3549 0xc 0x7 0x14 0xd5
3550 0x8c 0x0 0x10 0xd5
3551 0x8c 0x1 0x10 0xd5
3552 0x8c 0x2 0x10 0xd5
3553 0x8c 0x3 0x10 0xd5
3554 0x8c 0x4 0x10 0xd5
3555 0x8c 0x5 0x10 0xd5
3556 0x8c 0x6 0x10 0xd5
3557 0x8c 0x7 0x10 0xd5
3558 0x8c 0x8 0x10 0xd5
3559 0x8c 0x9 0x10 0xd5
3560 0x8c 0xa 0x10 0xd5
3561 0x8c 0xb 0x10 0xd5
3562 0x8c 0xc 0x10 0xd5
3563 0x8c 0xd 0x10 0xd5
3564 0x8c 0xe 0x10 0xd5
3565 0x8c 0xf 0x10 0xd5
3566 0xac 0x0 0x10 0xd5
3567 0xac 0x1 0x10 0xd5
3568 0xac 0x2 0x10 0xd5
3569 0xac 0x3 0x10 0xd5
3570 0xac 0x4 0x10 0xd5
3571 0xac 0x5 0x10 0xd5
3572 0xac 0x6 0x10 0xd5
3573 0xac 0x7 0x10 0xd5
3574 0xac 0x8 0x10 0xd5
3575 0xac 0x9 0x10 0xd5
3576 0xac 0xa 0x10 0xd5
3577 0xac 0xb 0x10 0xd5
3578 0xac 0xc 0x10 0xd5
3579 0xac 0xd 0x10 0xd5
3580 0xac 0xe 0x10 0xd5
3581 0xac 0xf 0x10 0xd5
3582 0xcc 0x0 0x10 0xd5
3583 0xcc 0x1 0x10 0xd5
3584 0xcc 0x2 0x10 0xd5
3585 0xcc 0x3 0x10 0xd5
3586 0xcc 0x4 0x10 0xd5
3587 0xcc 0x5 0x10 0xd5
3588 0xcc 0x6 0x10 0xd5
3589 0xcc 0x7 0x10 0xd5
3590 0xcc 0x8 0x10 0xd5
3591 0xcc 0x9 0x10 0xd5
3592 0xcc 0xa 0x10 0xd5
3593 0xcc 0xb 0x10 0xd5
3594 0xcc 0xc 0x10 0xd5
3595 0xcc 0xd 0x10 0xd5
3596 0xcc 0xe 0x10 0xd5
3597 0xcc 0xf 0x10 0xd5
3598 0xec 0x0 0x10 0xd5
3599 0xec 0x1 0x10 0xd5
3600 0xec 0x2 0x10 0xd5
3601 0xec 0x3 0x10 0xd5
3602 0xec 0x4 0x10 0xd5
3603 0xec 0x5 0x10 0xd5
3604 0xec 0x6 0x10 0xd5
3605 0xec 0x7 0x10 0xd5
3606 0xec 0x8 0x10 0xd5
3607 0xec 0x9 0x10 0xd5
3608 0xec 0xa 0x10 0xd5
3609 0xec 0xb 0x10 0xd5
3610 0xec 0xc 0x10 0xd5
3611 0xec 0xd 0x10 0xd5
3612 0xec 0xe 0x10 0xd5
3613 0xec 0xf 0x10 0xd5
3614 0xc 0x10 0x12 0xd5
3615 0x8c 0x10 0x10 0xd5
3616 0x8c 0x13 0x10 0xd5
3617 0x8c 0x14 0x10 0xd5
3618 0xcc 0x78 0x10 0xd5
3619 0xcc 0x79 0x10 0xd5
3620 0xc 0x0 0x1a 0xd5
3621 0xc 0x0 0x1c 0xd5
3622 0xac 0x0 0x1c 0xd5
3623 0xc 0x10 0x18 0xd5
3624 0xc 0x10 0x1c 0xd5
3625 0xc 0x10 0x1e 0xd5
3626 0x2c 0x10 0x18 0xd5
3627 0x2c 0x10 0x1c 0xd5
3628 0x2c 0x10 0x1e 0xd5
3629 0x4c 0x10 0x18 0xd5
3630 0xc 0x11 0x1c 0xd5
3631 0xc 0x11 0x1e 0xd5
3632 0x2c 0x11 0x1c 0xd5
3633 0x2c 0x11 0x1e 0xd5
3634 0x4c 0x11 0x1c 0xd5
3635 0x4c 0x11 0x1e 0xd5
3636 0x6c 0x11 0x1c 0xd5
3637 0xec 0x11 0x1c 0xd5
3638 0x2c 0x13 0x1e 0xd5
3639 0xc 0x20 0x18 0xd5
3640 0xc 0x20 0x1c 0xd5
3641 0xc 0x20 0x1e 0xd5
3642 0x2c 0x20 0x18 0xd5
3643 0x4c 0x20 0x18 0xd5
3644 0x4c 0x20 0x1c 0xd5
3645 0x4c 0x20 0x1e 0xd5
3646 0xc 0x21 0x1c 0xd5
3647 0x4c 0x21 0x1c 0xd5
3648 0xc 0x30 0x1c 0xd5
3649 0xc 0x40 0x18 0xd5
3650 0xc 0x40 0x1c 0xd5
3651 0xc 0x40 0x1e 0xd5
3652 0x2c 0x40 0x18 0xd5
3653 0x2c 0x40 0x1c 0xd5
3654 0x2c 0x40 0x1e 0xd5
3655 0xc 0x41 0x18 0xd5
3656 0xc 0x41 0x1c 0xd5
3657 0xc 0x41 0x1e 0xd5
3658 0xc 0x42 0x18 0xd5
3659 0xc 0x42 0x1b 0xd5
3660 0x2c 0x42 0x1b 0xd5
3661 0x4c 0x42 0x18 0xd5
3662 0xc 0x43 0x1c 0xd5
3663 0x2c 0x43 0x1c 0xd5
3664 0x4c 0x43 0x1c 0xd5
3665 0x6c 0x43 0x1c 0xd5
3666 0xc 0x44 0x1b 0xd5
3667 0x2c 0x44 0x1b 0xd5
3668 0xc 0x45 0x1b 0xd5
3669 0x2c 0x45 0x1b 0xd5
3670 0x2c 0x50 0x1c 0xd5
3671 0xc 0x51 0x18 0xd5
3672 0xc 0x51 0x1c 0xd5
3673 0xc 0x51 0x1e 0xd5
3674 0x2c 0x51 0x18 0xd5
3675 0x2c 0x51 0x1c 0xd5
3676 0x2c 0x51 0x1e 0xd5
3677 0xc 0x52 0x18 0xd5
3678 0xc 0x52 0x1c 0xd5
3679 0xc 0x52 0x1e 0xd5
3680 0xc 0x53 0x1c 0xd5
3681 0xc 0x60 0x18 0xd5
3682 0xc 0x60 0x1c 0xd5
3683 0xc 0x60 0x1e 0xd5
3684 0x8c 0x60 0x1c 0xd5
3685 0xc 0x74 0x18 0xd5
3686 0xc 0x9c 0x1b 0xd5
3687 0x2c 0x9c 0x1b 0xd5
3688 0x4c 0x9c 0x1b 0xd5
3689 0x6c 0x9c 0x1b 0xd5
3690 0xac 0x9c 0x1b 0xd5
3691 0xc 0x9d 0x1b 0xd5
3692 0x2c 0x9d 0x1b 0xd5
3693 0x4c 0x9d 0x1b 0xd5
3694 0xc 0x9e 0x1b 0xd5
3695 0x2c 0x9e 0x18 0xd5
3696 0x4c 0x9e 0x18 0xd5
3697 0x6c 0x9e 0x1b 0xd5
3698 0xc 0xa2 0x18 0xd5
3699 0xc 0xa2 0x1c 0xd5
3700 0xc 0xa2 0x1e 0xd5
3701 0xc 0xa3 0x18 0xd5
3702 0xc 0xa3 0x1c 0xd5
3703 0xc 0xa3 0x1e 0xd5
3704 0xc 0xc0 0x18 0xd5
3705 0xc 0xc0 0x1c 0xd5
3706 0xc 0xc0 0x1e 0xd5
3707 0x4c 0xc0 0x18 0xd5
3708 0x4c 0xc0 0x1c 0xd5
3709 0x4c 0xc0 0x1e 0xd5
3710 0x4c 0xd0 0x1b 0xd5
3711 0x4c 0xd0 0x1c 0xd5
3712 0x4c 0xd0 0x1e 0xd5
3713 0x6c 0xd0 0x1b 0xd5
3714 0x8c 0xd0 0x18 0xd5
3715 0xc 0xe0 0x1b 0xd5
3716 0x6c 0xe0 0x1c 0xd5
3717 0xc 0xe1 0x18 0xd5
3718 0xc 0xe1 0x1c 0xd5
3719 0xc 0xe2 0x1b 0xd5
3720 0xc 0xe2 0x1c 0xd5
3721 0xc 0xe2 0x1f 0xd5
3722 0x2c 0xe2 0x1b 0xd5
3723 0x2c 0xe2 0x1c 0xd5
3724 0x2c 0xe2 0x1f 0xd5
3725 0x4c 0xe2 0x1b 0xd5
3726 0x4c 0xe2 0x1c 0xd5
3727 0x4c 0xe2 0x1f 0xd5
3728 0xc 0xe3 0x1b 0xd5
3729 0x2c 0xe3 0x1b 0xd5
3730 0x4c 0xe3 0x1b 0xd5
3731 0xc 0xe8 0x1b 0xd5
3732 0x2c 0xe8 0x1b 0xd5
3733 0x4c 0xe8 0x1b 0xd5
3734 0x6c 0xe8 0x1b 0xd5
3735 0x8c 0xe8 0x1b 0xd5
3736 0xac 0xe8 0x1b 0xd5
3737 0xcc 0xe8 0x1b 0xd5
3738 0xec 0xe8 0x1b 0xd5
3739 0xc 0xe9 0x1b 0xd5
3740 0x2c 0xe9 0x1b 0xd5
3741 0x4c 0xe9 0x1b 0xd5
3742 0x6c 0xe9 0x1b 0xd5
3743 0x8c 0xe9 0x1b 0xd5
3744 0xac 0xe9 0x1b 0xd5
3745 0xcc 0xe9 0x1b 0xd5
3746 0xec 0xe9 0x1b 0xd5
3747 0xc 0xea 0x1b 0xd5
3748 0x2c 0xea 0x1b 0xd5
3749 0x4c 0xea 0x1b 0xd5
3750 0x6c 0xea 0x1b 0xd5
3751 0x8c 0xea 0x1b 0xd5
3752 0xac 0xea 0x1b 0xd5
3753 0xcc 0xea 0x1b 0xd5
3754 0xec 0xea 0x1b 0xd5
3755 0xc 0xeb 0x1b 0xd5
3756 0x2c 0xeb 0x1b 0xd5
3757 0x4c 0xeb 0x1b 0xd5
3758 0x6c 0xeb 0x1b 0xd5
3759 0x8c 0xeb 0x1b 0xd5
3760 0xac 0xeb 0x1b 0xd5
3761 0xcc 0xeb 0x1b 0xd5
3762 0xec 0xef 0x1b 0xd5
3763 0xc 0xec 0x1b 0xd5
3764 0x2c 0xec 0x1b 0xd5
3765 0x4c 0xec 0x1b 0xd5
3766 0x6c 0xec 0x1b 0xd5
3767 0x8c 0xec 0x1b 0xd5
3768 0xac 0xec 0x1b 0xd5
3769 0xcc 0xec 0x1b 0xd5
3770 0xec 0xec 0x1b 0xd5
3771 0xc 0xed 0x1b 0xd5
3772 0x2c 0xed 0x1b 0xd5
3773 0x4c 0xed 0x1b 0xd5
3774 0x6c 0xed 0x1b 0xd5
3775 0x8c 0xed 0x1b 0xd5
3776 0xac 0xed 0x1b 0xd5
3777 0xcc 0xed 0x1b 0xd5
3778 0xec 0xed 0x1b 0xd5
3779 0xc 0xee 0x1b 0xd5
3780 0x2c 0xee 0x1b 0xd5
3781 0x4c 0xee 0x1b 0xd5
3782 0x6c 0xee 0x1b 0xd5
3783 0x8c 0xee 0x1b 0xd5
3784 0xac 0xee 0x1b 0xd5
3785 0xcc 0xee 0x1b 0xd5
3786 0xec 0xee 0x1b 0xd5
3787 0xc 0xef 0x1b 0xd5
3788 0x2c 0xef 0x1b 0xd5
3789 0x4c 0xef 0x1b 0xd5
3790 0x6c 0xef 0x1b 0xd5
3791 0x8c 0xef 0x1b 0xd5
3792 0xac 0xef 0x1b 0xd5
3793 0xcc 0xef 0x1b 0xd5
3794 0x9 0x0 0x32 0xd5
3795 0x49 0x0 0x30 0xd5
3796 0x9 0x1 0x33 0xd5
3797 0x9 0x2 0x30 0xd5
3798 0x49 0x2 0x30 0xd5
3799 0x49 0x3 0x30 0xd5
3800 0x9 0x4 0x33 0xd5
3801 0x9 0x5 0x33 0xd5
3802 0x49 0x6 0x30 0xd5
3803 0x9 0x7 0x34 0xd5
3804 0x89 0x0 0x30 0xd5
3805 0x89 0x1 0x30 0xd5
3806 0x89 0x2 0x30 0xd5
3807 0x89 0x3 0x30 0xd5
3808 0x89 0x4 0x30 0xd5
3809 0x89 0x5 0x30 0xd5
3810 0x89 0x6 0x30 0xd5
3811 0x89 0x7 0x30 0xd5
3812 0x89 0x8 0x30 0xd5
3813 0x89 0x9 0x30 0xd5
3814 0x89 0xa 0x30 0xd5
3815 0x89 0xb 0x30 0xd5
3816 0x89 0xc 0x30 0xd5
3817 0x89 0xd 0x30 0xd5
3818 0x89 0xe 0x30 0xd5
3819 0x89 0xf 0x30 0xd5
3820 0xa9 0x0 0x30 0xd5
3821 0xa9 0x1 0x30 0xd5
3822 0xa9 0x2 0x30 0xd5
3823 0xa9 0x3 0x30 0xd5
3824 0xa9 0x4 0x30 0xd5
3825 0xa9 0x5 0x30 0xd5
3826 0xa9 0x6 0x30 0xd5
3827 0xa9 0x7 0x30 0xd5
3828 0xa9 0x8 0x30 0xd5
3829 0xa9 0x9 0x30 0xd5
3830 0xa9 0xa 0x30 0xd5
3831 0xa9 0xb 0x30 0xd5
3832 0xa9 0xc 0x30 0xd5
3833 0xa9 0xd 0x30 0xd5
3834 0xa9 0xe 0x30 0xd5
3835 0xa9 0xf 0x30 0xd5
3836 0xc9 0x0 0x30 0xd5
3837 0xc9 0x1 0x30 0xd5
3838 0xc9 0x2 0x30 0xd5
3839 0xc9 0x3 0x30 0xd5
3840 0xc9 0x4 0x30 0xd5
3841 0xc9 0x5 0x30 0xd5
3842 0xc9 0x6 0x30 0xd5
3843 0xc9 0x7 0x30 0xd5
3844 0xc9 0x8 0x30 0xd5
3845 0xc9 0x9 0x30 0xd5
3846 0xc9 0xa 0x30 0xd5
3847 0xc9 0xb 0x30 0xd5
3848 0xc9 0xc 0x30 0xd5
3849 0xc9 0xd 0x30 0xd5
3850 0xc9 0xe 0x30 0xd5
3851 0xc9 0xf 0x30 0xd5
3852 0xe9 0x0 0x30 0xd5
3853 0xe9 0x1 0x30 0xd5
3854 0xe9 0x2 0x30 0xd5
3855 0xe9 0x3 0x30 0xd5
3856 0xe9 0x4 0x30 0xd5
3857 0xe9 0x5 0x30 0xd5
3858 0xe9 0x6 0x30 0xd5
3859 0xe9 0x7 0x30 0xd5
3860 0xe9 0x8 0x30 0xd5
3861 0xe9 0x9 0x30 0xd5
3862 0xe9 0xa 0x30 0xd5
3863 0xe9 0xb 0x30 0xd5
3864 0xe9 0xc 0x30 0xd5
3865 0xe9 0xd 0x30 0xd5
3866 0xe9 0xe 0x30 0xd5
3867 0xe9 0xf 0x30 0xd5
3868 0x9 0x10 0x30 0xd5
3869 0x9 0x10 0x32 0xd5
3870 0x89 0x11 0x30 0xd5
3871 0x89 0x13 0x30 0xd5
3872 0x89 0x14 0x30 0xd5
3873 0xc9 0x78 0x30 0xd5
3874 0xc9 0x79 0x30 0xd5
3875 0xc9 0x7e 0x30 0xd5
3876 0x9 0x0 0x38 0xd5
3877 0x9 0x0 0x39 0xd5
3878 0x9 0x0 0x3a 0xd5
3879 0x9 0x0 0x3c 0xd5
3880 0x29 0x0 0x39 0xd5
3881 0x29 0x0 0x3b 0xd5
3882 0xa9 0x0 0x38 0xd5
3883 0xa9 0x0 0x3c 0xd5
3884 0xc9 0x0 0x38 0xd5
3885 0xe9 0x0 0x39 0xd5
3886 0xe9 0x0 0x3b 0xd5
3887 0x9 0x1 0x38 0xd5
3888 0x29 0x1 0x38 0xd5
3889 0x49 0x1 0x38 0xd5
3890 0x69 0x1 0x38 0xd5
3891 0x89 0x1 0x38 0xd5
3892 0xa9 0x1 0x38 0xd5
3893 0xc9 0x1 0x38 0xd5
3894 0xe9 0x1 0x38 0xd5
3895 0x9 0x2 0x38 0xd5
3896 0x29 0x2 0x38 0xd5
3897 0x49 0x2 0x38 0xd5
3898 0x69 0x2 0x38 0xd5
3899 0x89 0x2 0x38 0xd5
3900 0xa9 0x2 0x38 0xd5
3901 0x9 0x3 0x38 0xd5
3902 0x29 0x3 0x38 0xd5
3903 0x49 0x3 0x38 0xd5
3904 0x9 0x4 0x38 0xd5
3905 0x29 0x4 0x38 0xd5
3906 0x9 0x5 0x38 0xd5
3907 0x29 0x5 0x38 0xd5
3908 0x89 0x5 0x38 0xd5
3909 0xa9 0x5 0x38 0xd5
3910 0x9 0x6 0x38 0xd5
3911 0x29 0x6 0x38 0xd5
3912 0x9 0x7 0x38 0xd5
3913 0x29 0x7 0x38 0xd5
3914 0x9 0x10 0x38 0xd5
3915 0x9 0x10 0x3c 0xd5
3916 0x9 0x10 0x3e 0xd5
3917 0x29 0x10 0x38 0xd5
3918 0x29 0x10 0x3c 0xd5
3919 0x29 0x10 0x3e 0xd5
3920 0x49 0x10 0x38 0xd5
3921 0x9 0x11 0x3c 0xd5
3922 0x9 0x11 0x3e 0xd5
3923 0x29 0x11 0x3c 0xd5
3924 0x29 0x11 0x3e 0xd5
3925 0x49 0x11 0x3c 0xd5
3926 0x49 0x11 0x3e 0xd5
3927 0x69 0x11 0x3c 0xd5
3928 0xe9 0x11 0x3c 0xd5
3929 0x29 0x13 0x3e 0xd5
3930 0x9 0x20 0x38 0xd5
3931 0x9 0x20 0x3c 0xd5
3932 0x9 0x20 0x3e 0xd5
3933 0x29 0x20 0x38 0xd5
3934 0x49 0x20 0x38 0xd5
3935 0x49 0x20 0x3c 0xd5
3936 0x49 0x20 0x3e 0xd5
3937 0x9 0x21 0x3c 0xd5
3938 0x49 0x21 0x3c 0xd5
3939 0x9 0x30 0x3c 0xd5
3940 0x9 0x40 0x38 0xd5
3941 0x9 0x40 0x3c 0xd5
3942 0x9 0x40 0x3e 0xd5
3943 0x29 0x40 0x38 0xd5
3944 0x29 0x40 0x3c 0xd5
3945 0x29 0x40 0x3e 0xd5
3946 0x9 0x41 0x38 0xd5
3947 0x9 0x41 0x3c 0xd5
3948 0x9 0x41 0x3e 0xd5
3949 0x9 0x42 0x38 0xd5
3950 0x9 0x42 0x3b 0xd5
3951 0x29 0x42 0x3b 0xd5
3952 0x49 0x42 0x38 0xd5
3953 0x9 0x43 0x3c 0xd5
3954 0x29 0x43 0x3c 0xd5
3955 0x49 0x43 0x3c 0xd5
3956 0x69 0x43 0x3c 0xd5
3957 0x9 0x44 0x3b 0xd5
3958 0x29 0x44 0x3b 0xd5
3959 0x9 0x45 0x3b 0xd5
3960 0x29 0x45 0x3b 0xd5
3961 0x29 0x50 0x3c 0xd5
3962 0x9 0x51 0x38 0xd5
3963 0x9 0x51 0x3c 0xd5
3964 0x9 0x51 0x3e 0xd5
3965 0x29 0x51 0x38 0xd5
3966 0x29 0x51 0x3c 0xd5
3967 0x29 0x51 0x3e 0xd5
3968 0x9 0x52 0x38 0xd5
3969 0x9 0x52 0x3c 0xd5
3970 0x9 0x52 0x3e 0xd5
3971 0x9 0x53 0x3c 0xd5
3972 0x9 0x60 0x38 0xd5
3973 0x9 0x60 0x3c 0xd5
3974 0x9 0x60 0x3e 0xd5
3975 0x89 0x60 0x3c 0xd5
3976 0x9 0x74 0x38 0xd5
3977 0x9 0x9c 0x3b 0xd5
3978 0x29 0x9c 0x3b 0xd5
3979 0x49 0x9c 0x3b 0xd5
3980 0x69 0x9c 0x3b 0xd5
3981 0xa9 0x9c 0x3b 0xd5
3982 0xc9 0x9c 0x3b 0xd5
3983 0xe9 0x9c 0x3b 0xd5
3984 0x9 0x9d 0x3b 0xd5
3985 0x29 0x9d 0x3b 0xd5
3986 0x49 0x9d 0x3b 0xd5
3987 0x9 0x9e 0x3b 0xd5
3988 0x29 0x9e 0x38 0xd5
3989 0x49 0x9e 0x38 0xd5
3990 0x69 0x9e 0x3b 0xd5
3991 0x9 0xa2 0x38 0xd5
3992 0x9 0xa2 0x3c 0xd5
3993 0x9 0xa2 0x3e 0xd5
3994 0x9 0xa3 0x38 0xd5
3995 0x9 0xa3 0x3c 0xd5
3996 0x9 0xa3 0x3e 0xd5
3997 0x9 0xc0 0x38 0xd5
3998 0x9 0xc0 0x3c 0xd5
3999 0x9 0xc0 0x3e 0xd5
4000 0x29 0xc0 0x38 0xd5
4001 0x29 0xc0 0x3c 0xd5
4002 0x29 0xc0 0x3e 0xd5
4003 0x49 0xc0 0x38 0xd5
4004 0x49 0xc0 0x3c 0xd5
4005 0x49 0xc0 0x3e 0xd5
4006 0x9 0xc1 0x38 0xd5
4007 0x29 0xd0 0x38 0xd5
4008 0x49 0xd0 0x3b 0xd5
4009 0x49 0xd0 0x3c 0xd5
4010 0x49 0xd0 0x3e 0xd5
4011 0x69 0xd0 0x3b 0xd5
4012 0x89 0xd0 0x38 0xd5
4013 0x9 0xe0 0x3b 0xd5
4014 0x29 0xe0 0x3b 0xd5
4015 0x49 0xe0 0x3b 0xd5
4016 0x69 0xe0 0x3c 0xd5
4017 0x9 0xe1 0x38 0xd5
4018 0x9 0xe1 0x3c 0xd5
4019 0x9 0xe2 0x3b 0xd5
4020 0x9 0xe2 0x3c 0xd5
4021 0x9 0xe2 0x3f 0xd5
4022 0x29 0xe2 0x3b 0xd5
4023 0x29 0xe2 0x3c 0xd5
4024 0x29 0xe2 0x3f 0xd5
4025 0x49 0xe2 0x3b 0xd5
4026 0x49 0xe2 0x3c 0xd5
4027 0x49 0xe2 0x3f 0xd5
4028 0x9 0xe3 0x3b 0xd5
4029 0x29 0xe3 0x3b 0xd5
4030 0x49 0xe3 0x3b 0xd5
4031 0x9 0xe8 0x3b 0xd5
4032 0x29 0xe8 0x3b 0xd5
4033 0x49 0xe8 0x3b 0xd5
4034 0x69 0xe8 0x3b 0xd5
4035 0x89 0xe8 0x3b 0xd5
4036 0xa9 0xe8 0x3b 0xd5
4037 0xc9 0xe8 0x3b 0xd5
4038 0xe9 0xe8 0x3b 0xd5
4039 0x9 0xe9 0x3b 0xd5
4040 0x29 0xe9 0x3b 0xd5
4041 0x49 0xe9 0x3b 0xd5
4042 0x69 0xe9 0x3b 0xd5
4043 0x89 0xe9 0x3b 0xd5
4044 0xa9 0xe9 0x3b 0xd5
4045 0xc9 0xe9 0x3b 0xd5
4046 0xe9 0xe9 0x3b 0xd5
4047 0x9 0xea 0x3b 0xd5
4048 0x29 0xea 0x3b 0xd5
4049 0x49 0xea 0x3b 0xd5
4050 0x69 0xea 0x3b 0xd5
4051 0x89 0xea 0x3b 0xd5
4052 0xa9 0xea 0x3b 0xd5
4053 0xc9 0xea 0x3b 0xd5
4054 0xe9 0xea 0x3b 0xd5
4055 0x9 0xeb 0x3b 0xd5
4056 0x29 0xeb 0x3b 0xd5
4057 0x49 0xeb 0x3b 0xd5
4058 0x69 0xeb 0x3b 0xd5
4059 0x89 0xeb 0x3b 0xd5
4060 0xa9 0xeb 0x3b 0xd5
4061 0xc9 0xeb 0x3b 0xd5
4062 0xe9 0xef 0x3b 0xd5
4063 0x9 0xec 0x3b 0xd5
4064 0x29 0xec 0x3b 0xd5
4065 0x49 0xec 0x3b 0xd5
4066 0x69 0xec 0x3b 0xd5
4067 0x89 0xec 0x3b 0xd5
4068 0xa9 0xec 0x3b 0xd5
4069 0xc9 0xec 0x3b 0xd5
4070 0xe9 0xec 0x3b 0xd5
4071 0x9 0xed 0x3b 0xd5
4072 0x29 0xed 0x3b 0xd5
4073 0x49 0xed 0x3b 0xd5
4074 0x69 0xed 0x3b 0xd5
4075 0x89 0xed 0x3b 0xd5
4076 0xa9 0xed 0x3b 0xd5
4077 0xc9 0xed 0x3b 0xd5
4078 0xe9 0xed 0x3b 0xd5
4079 0x9 0xee 0x3b 0xd5
4080 0x29 0xee 0x3b 0xd5
4081 0x49 0xee 0x3b 0xd5
4082 0x69 0xee 0x3b 0xd5
4083 0x89 0xee 0x3b 0xd5
4084 0xa9 0xee 0x3b 0xd5
4085 0xc9 0xee 0x3b 0xd5
4086 0xe9 0xee 0x3b 0xd5
4087 0x9 0xef 0x3b 0xd5
4088 0x29 0xef 0x3b 0xd5
4089 0x49 0xef 0x3b 0xd5
4090 0x69 0xef 0x3b 0xd5
4091 0x89 0xef 0x3b 0xd5
4092 0xa9 0xef 0x3b 0xd5
4093 0xc9 0xef 0x3b 0xd5
4094
4095 # CHECK: mrs     x12, s3_7_c15_c1_5
4096 # CHECK: mrs     x13, s3_2_c11_c15_7
4097 # CHECK: msr     s3_0_c15_c0_0, x12
4098 # CHECK: msr     s3_7_c11_c13_7, x5
4099 0xac 0xf1 0x3f 0xd5
4100 0xed 0xbf 0x3a 0xd5
4101 0x0c 0xf0 0x18 0xd5
4102 0xe5 0xbd 0x1f 0xd5
4103
4104 #------------------------------------------------------------------------------
4105 # Test and branch (immediate)
4106 #------------------------------------------------------------------------------
4107
4108 # CHECK: tbz     x12, #62, #0
4109 # CHECK: tbz     x12, #62, #4
4110 # CHECK: tbz     x12, #62, #-32768
4111 # CHECK: tbnz    x12, #60, #32764
4112 0x0c 0x00 0xf0 0xb6
4113 0x2c 0x00 0xf0 0xb6
4114 0x0c 0x00 0xf4 0xb6
4115 0xec 0xff 0xe3 0xb7
4116
4117 #------------------------------------------------------------------------------
4118 # Unconditional branch (immediate)
4119 #------------------------------------------------------------------------------
4120
4121 # CHECK: b        #4
4122 # CHECK: b        #-4
4123 # CHECK: b        #134217724
4124 0x01 0x00 0x00 0x14
4125 0xff 0xff 0xff 0x17
4126 0xff 0xff 0xff 0x15
4127
4128 #------------------------------------------------------------------------------
4129 # Unconditional branch (register)
4130 #------------------------------------------------------------------------------
4131
4132 # CHECK: br       x20
4133 # CHECK: blr      xzr
4134 # CHECK: ret      x10
4135 0x80 0x2 0x1f 0xd6
4136 0xe0 0x3 0x3f 0xd6
4137 0x40 0x1 0x5f 0xd6
4138
4139 # CHECK: ret
4140 # CHECK: eret
4141 # CHECK: drps
4142 0xc0 0x3 0x5f 0xd6
4143 0xe0 0x3 0x9f 0xd6
4144 0xe0 0x3 0xbf 0xd6
4145