xref: /llvm-project/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt (revision 68e21e16d21deee0f0226b4c771ff8b4731b7370)
1# RUN: llvm-mc -triple=aarch64 -mattr=+v8a,+fp-armv8 -disassemble < %s | FileCheck %s
2# RUN: llvm-mc -triple=arm64 -mattr=+v8a,+fp-armv8 -disassemble < %s | FileCheck %s
3# RUN: llvm-mc -triple=arm64 -mattr=+v8a,+fp-armv8,+fullfp16 -disassemble < %s | FileCheck %s --check-prefix=CHECK --check-prefix=FP16
4# RUN: llvm-mc -triple=arm64 -mattr=+v8.2a -disassemble < %s | FileCheck %s --check-prefix=CHECK-V82
5# RUN: llvm-mc -triple=arm64 -mattr=+ccidx -disassemble < %s | FileCheck %s --check-prefix=CHECK-V83
6
7#------------------------------------------------------------------------------
8# Add/sub (immediate)
9#------------------------------------------------------------------------------
10# CHECK: add      w4, w5, #0
11# CHECK: add      w2, w3, #4095
12# CHECK: add      w30, w29, #1, lsl #12
13# CHECK: add      w13, w5, #4095, lsl #12
14# CHECK: add      x5, x7, #1638
150xa4 0x0 0x0 0x11
160x62 0xfc 0x3f 0x11
170xbe 0x7 0x40 0x11
180xad 0xfc 0x7f 0x11
190xe5 0x98 0x19 0x91
20
21# CHECK: add      w20, wsp, #801
22# CHECK: add      wsp, wsp, #1104
23# CHECK: add      wsp, w30, #4084
240xf4 0x87 0xc 0x11
250xff 0x43 0x11 0x11
260xdf 0xd3 0x3f 0x11
27
28# CHECK: add      x0, x24, #291
29# CHECK: add      x3, x24, #4095, lsl #12
30# CHECK: add      x8, sp, #1074
31# CHECK: add      sp, x29, #3816
320x0 0x8f 0x4 0x91
330x3 0xff 0x7f 0x91
340xe8 0xcb 0x10 0x91
350xbf 0xa3 0x3b 0x91
36
37# CHECK: sub      w0, wsp, #4077
38# CHECK: sub      w4, w20, #546, lsl #12
39# CHECK: sub      sp, sp, #288
40# CHECK: sub      wsp, w19, #16
410xe0 0xb7 0x3f 0x51
420x84 0x8a 0x48 0x51
430xff 0x83 0x4 0xd1
440x7f 0x42 0x0 0x51
45
46
47# CHECK: adds     w13, w23, #291, lsl #12
48# CHECK: cmn      w2, #4095
49# CHECK: adds     w20, wsp, #0
50# CHECK: cmn      x3, #1, lsl #12
510xed 0x8e 0x44 0x31
520x5f 0xfc 0x3f 0x31
530xf4 0x3 0x0 0x31
540x7f 0x4 0x40 0xb1
55
56# CHECK: cmp      sp, #20, lsl #12
57# CHECK: cmp      x30, #4095
58# CHECK: subs     x4, sp, #3822
590xff 0x53 0x40 0xf1
600xdf 0xff 0x3f 0xf1
610xe4 0xbb 0x3b 0xf1
62
63# These should really be CMN
64# CHECK: cmn      w3, #291, lsl #12
65# CHECK: cmn      wsp, #1365
66# CHECK: cmn      sp, #1092, lsl #12
670x7f 0x8c 0x44 0x31
680xff 0x57 0x15 0x31
690xff 0x13 0x51 0xb1
70
71# CHECK: mov      sp, x30
72# CHECK: mov      wsp, w20
73# CHECK: mov      x11, sp
74# CHECK: mov      w24, wsp
750xdf 0x3 0x0 0x91
760x9f 0x2 0x0 0x11
770xeb 0x3 0x0 0x91
780xf8 0x3 0x0 0x11
79
80#------------------------------------------------------------------------------
81# Add-subtract (shifted register)
82#------------------------------------------------------------------------------
83
84# CHECK: add      w3, w5, w7
85# CHECK: add      wzr, w3, w5
86# CHECK: add      w20, wzr, w4
87# CHECK: add      w4, w6, wzr
88# CHECK: add      w11, w13, w15
89# CHECK: add      w9, w3, wzr, lsl #10
90# CHECK: add      w17, w29, w20, lsl #31
91# CHECK: add      w21, w22, w23, lsr #0
92# CHECK: add      w24, w25, w26, lsr #18
93# CHECK: add      w27, w28, w29, lsr #31
94# CHECK: add      w2, w3, w4, asr #0
95# CHECK: add      w5, w6, w7, asr #21
96# CHECK: add      w8, w9, w10, asr #31
970xa3 0x0 0x7 0xb
980x7f 0x0 0x5 0xb
990xf4 0x3 0x4 0xb
1000xc4 0x0 0x1f 0xb
1010xab 0x1 0xf 0xb
1020x69 0x28 0x1f 0xb
1030xb1 0x7f 0x14 0xb
1040xd5 0x2 0x57 0xb
1050x38 0x4b 0x5a 0xb
1060x9b 0x7f 0x5d 0xb
1070x62 0x0 0x84 0xb
1080xc5 0x54 0x87 0xb
1090x28 0x7d 0x8a 0xb
110
111# CHECK: add      x3, x5, x7
112# CHECK: add      xzr, x3, x5
113# CHECK: add      x20, xzr, x4
114# CHECK: add      x4, x6, xzr
115# CHECK: add      x11, x13, x15
116# CHECK: add      x9, x3, xzr, lsl #10
117# CHECK: add      x17, x29, x20, lsl #63
118# CHECK: add      x21, x22, x23, lsr #0
119# CHECK: add      x24, x25, x26, lsr #18
120# CHECK: add      x27, x28, x29, lsr #63
121# CHECK: add      x2, x3, x4, asr #0
122# CHECK: add      x5, x6, x7, asr #21
123# CHECK: add      x8, x9, x10, asr #63
1240xa3 0x0 0x7 0x8b
1250x7f 0x0 0x5 0x8b
1260xf4 0x3 0x4 0x8b
1270xc4 0x0 0x1f 0x8b
1280xab 0x1 0xf 0x8b
1290x69 0x28 0x1f 0x8b
1300xb1 0xff 0x14 0x8b
1310xd5 0x2 0x57 0x8b
1320x38 0x4b 0x5a 0x8b
1330x9b 0xff 0x5d 0x8b
1340x62 0x0 0x84 0x8b
1350xc5 0x54 0x87 0x8b
1360x28 0xfd 0x8a 0x8b
137
138# CHECK: adds     w3, w5, w7
139# CHECK: cmn      w3, w5
140# CHECK: adds     w20, wzr, w4
141# CHECK: adds     w4, w6, wzr
142# CHECK: adds     w11, w13, w15
143# CHECK: adds     w9, w3, wzr, lsl #10
144# CHECK: adds     w17, w29, w20, lsl #31
145# CHECK: adds     w21, w22, w23, lsr #0
146# CHECK: adds     w24, w25, w26, lsr #18
147# CHECK: adds     w27, w28, w29, lsr #31
148# CHECK: adds     w2, w3, w4, asr #0
149# CHECK: adds     w5, w6, w7, asr #21
150# CHECK: adds     w8, w9, w10, asr #31
1510xa3 0x0 0x7 0x2b
1520x7f 0x0 0x5 0x2b
1530xf4 0x3 0x4 0x2b
1540xc4 0x0 0x1f 0x2b
1550xab 0x1 0xf 0x2b
1560x69 0x28 0x1f 0x2b
1570xb1 0x7f 0x14 0x2b
1580xd5 0x2 0x57 0x2b
1590x38 0x4b 0x5a 0x2b
1600x9b 0x7f 0x5d 0x2b
1610x62 0x0 0x84 0x2b
1620xc5 0x54 0x87 0x2b
1630x28 0x7d 0x8a 0x2b
164
165# CHECK: adds     x3, x5, x7
166# CHECK: cmn      x3, x5
167# CHECK: adds     x20, xzr, x4
168# CHECK: adds     x4, x6, xzr
169# CHECK: adds     x11, x13, x15
170# CHECK: adds     x9, x3, xzr, lsl #10
171# CHECK: adds     x17, x29, x20, lsl #63
172# CHECK: adds     x21, x22, x23, lsr #0
173# CHECK: adds     x24, x25, x26, lsr #18
174# CHECK: adds     x27, x28, x29, lsr #63
175# CHECK: adds     x2, x3, x4, asr #0
176# CHECK: adds     x5, x6, x7, asr #21
177# CHECK: adds     x8, x9, x10, asr #63
1780xa3 0x0 0x7 0xab
1790x7f 0x0 0x5 0xab
1800xf4 0x3 0x4 0xab
1810xc4 0x0 0x1f 0xab
1820xab 0x1 0xf 0xab
1830x69 0x28 0x1f 0xab
1840xb1 0xff 0x14 0xab
1850xd5 0x2 0x57 0xab
1860x38 0x4b 0x5a 0xab
1870x9b 0xff 0x5d 0xab
1880x62 0x0 0x84 0xab
1890xc5 0x54 0x87 0xab
1900x28 0xfd 0x8a 0xab
191
192# CHECK: sub      w3, w5, w7
193# CHECK: sub      wzr, w3, w5
194# CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
195# CHECK: sub      w4, w6, wzr
196# CHECK: sub      w11, w13, w15
197# CHECK: sub      w9, w3, wzr, lsl #10
198# CHECK: sub      w17, w29, w20, lsl #31
199# CHECK: sub      w21, w22, w23, lsr #0
200# CHECK: sub      w24, w25, w26, lsr #18
201# CHECK: sub      w27, w28, w29, lsr #31
202# CHECK: sub      w2, w3, w4, asr #0
203# CHECK: sub      w5, w6, w7, asr #21
204# CHECK: sub      w8, w9, w10, asr #31
2050xa3 0x0 0x7 0x4b
2060x7f 0x0 0x5 0x4b
2070xf4 0x3 0x4 0x4b
2080xc4 0x0 0x1f 0x4b
2090xab 0x1 0xf 0x4b
2100x69 0x28 0x1f 0x4b
2110xb1 0x7f 0x14 0x4b
2120xd5 0x2 0x57 0x4b
2130x38 0x4b 0x5a 0x4b
2140x9b 0x7f 0x5d 0x4b
2150x62 0x0 0x84 0x4b
2160xc5 0x54 0x87 0x4b
2170x28 0x7d 0x8a 0x4b
218
219# CHECK: sub      x3, x5, x7
220# CHECK: sub      xzr, x3, x5
221# CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
222# CHECK: sub      x4, x6, xzr
223# CHECK: sub      x11, x13, x15
224# CHECK: sub      x9, x3, xzr, lsl #10
225# CHECK: sub      x17, x29, x20, lsl #63
226# CHECK: sub      x21, x22, x23, lsr #0
227# CHECK: sub      x24, x25, x26, lsr #18
228# CHECK: sub      x27, x28, x29, lsr #63
229# CHECK: sub      x2, x3, x4, asr #0
230# CHECK: sub      x5, x6, x7, asr #21
231# CHECK: sub      x8, x9, x10, asr #63
2320xa3 0x0 0x7 0xcb
2330x7f 0x0 0x5 0xcb
2340xf4 0x3 0x4 0xcb
2350xc4 0x0 0x1f 0xcb
2360xab 0x1 0xf 0xcb
2370x69 0x28 0x1f 0xcb
2380xb1 0xff 0x14 0xcb
2390xd5 0x2 0x57 0xcb
2400x38 0x4b 0x5a 0xcb
2410x9b 0xff 0x5d 0xcb
2420x62 0x0 0x84 0xcb
2430xc5 0x54 0x87 0xcb
2440x28 0xfd 0x8a 0xcb
245
246# CHECK: subs     w3, w5, w7
247# CHECK: cmp      w3, w5
248# CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
249# CHECK: subs     w4, w6, wzr
250# CHECK: subs     w11, w13, w15
251# CHECK: subs     w9, w3, wzr, lsl #10
252# CHECK: subs     w17, w29, w20, lsl #31
253# CHECK: subs     w21, w22, w23, lsr #0
254# CHECK: subs     w24, w25, w26, lsr #18
255# CHECK: subs     w27, w28, w29, lsr #31
256# CHECK: subs     w2, w3, w4, asr #0
257# CHECK: subs     w5, w6, w7, asr #21
258# CHECK: subs     w8, w9, w10, asr #31
2590xa3 0x0 0x7 0x6b
2600x7f 0x0 0x5 0x6b
2610xf4 0x3 0x4 0x6b
2620xc4 0x0 0x1f 0x6b
2630xab 0x1 0xf 0x6b
2640x69 0x28 0x1f 0x6b
2650xb1 0x7f 0x14 0x6b
2660xd5 0x2 0x57 0x6b
2670x38 0x4b 0x5a 0x6b
2680x9b 0x7f 0x5d 0x6b
2690x62 0x0 0x84 0x6b
2700xc5 0x54 0x87 0x6b
2710x28 0x7d 0x8a 0x6b
272
273# CHECK: subs     x3, x5, x7
274# CHECK: cmp      x3, x5
275# CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
276# CHECK: subs     x4, x6, xzr
277# CHECK: subs     x11, x13, x15
278# CHECK: subs     x9, x3, xzr, lsl #10
279# CHECK: subs     x17, x29, x20, lsl #63
280# CHECK: subs     x21, x22, x23, lsr #0
281# CHECK: subs     x24, x25, x26, lsr #18
282# CHECK: subs     x27, x28, x29, lsr #63
283# CHECK: subs     x2, x3, x4, asr #0
284# CHECK: subs     x5, x6, x7, asr #21
285# CHECK: subs     x8, x9, x10, asr #63
2860xa3 0x0 0x7 0xeb
2870x7f 0x0 0x5 0xeb
2880xf4 0x3 0x4 0xeb
2890xc4 0x0 0x1f 0xeb
2900xab 0x1 0xf 0xeb
2910x69 0x28 0x1f 0xeb
2920xb1 0xff 0x14 0xeb
2930xd5 0x2 0x57 0xeb
2940x38 0x4b 0x5a 0xeb
2950x9b 0xff 0x5d 0xeb
2960x62 0x0 0x84 0xeb
2970xc5 0x54 0x87 0xeb
2980x28 0xfd 0x8a 0xeb
299
300# CHECK: cmn      w0, w3
301# CHECK: cmn      wzr, w4
302# CHECK: cmn      w5, wzr
303# CHECK: cmn      w6, w7
304# CHECK: cmn      w8, w9, lsl #15
305# CHECK: cmn      w10, w11, lsl #31
306# CHECK: cmn      w12, w13, lsr #0
307# CHECK: cmn      w14, w15, lsr #21
308# CHECK: cmn      w16, w17, lsr #31
309# CHECK: cmn      w18, w19, asr #0
310# CHECK: cmn      w20, w21, asr #22
311# CHECK: cmn      w22, w23, asr #31
3120x1f 0x0 0x3 0x2b
3130xff 0x3 0x4 0x2b
3140xbf 0x0 0x1f 0x2b
3150xdf 0x0 0x7 0x2b
3160x1f 0x3d 0x9 0x2b
3170x5f 0x7d 0xb 0x2b
3180x9f 0x1 0x4d 0x2b
3190xdf 0x55 0x4f 0x2b
3200x1f 0x7e 0x51 0x2b
3210x5f 0x2 0x93 0x2b
3220x9f 0x5a 0x95 0x2b
3230xdf 0x7e 0x97 0x2b
324
325# CHECK: cmn      x0, x3
326# CHECK: cmn      xzr, x4
327# CHECK: cmn      x5, xzr
328# CHECK: cmn      x6, x7
329# CHECK: cmn      x8, x9, lsl #15
330# CHECK: cmn      x10, x11, lsl #63
331# CHECK: cmn      x12, x13, lsr #0
332# CHECK: cmn      x14, x15, lsr #41
333# CHECK: cmn      x16, x17, lsr #63
334# CHECK: cmn      x18, x19, asr #0
335# CHECK: cmn      x20, x21, asr #55
336# CHECK: cmn      x22, x23, asr #63
3370x1f 0x0 0x3 0xab
3380xff 0x3 0x4 0xab
3390xbf 0x0 0x1f 0xab
3400xdf 0x0 0x7 0xab
3410x1f 0x3d 0x9 0xab
3420x5f 0xfd 0xb 0xab
3430x9f 0x1 0x4d 0xab
3440xdf 0xa5 0x4f 0xab
3450x1f 0xfe 0x51 0xab
3460x5f 0x2 0x93 0xab
3470x9f 0xde 0x95 0xab
3480xdf 0xfe 0x97 0xab
349
350# CHECK: cmp      w0, w3
351# CHECK: cmp      wzr, w4
352# CHECK: cmp      w5, wzr
353# CHECK: cmp      w6, w7
354# CHECK: cmp      w8, w9, lsl #15
355# CHECK: cmp      w10, w11, lsl #31
356# CHECK: cmp      w12, w13, lsr #0
357# CHECK: cmp      w14, w15, lsr #21
358# CHECK: cmp      w16, w17, lsr #31
359# CHECK: cmp      w18, w19, asr #0
360# CHECK: cmp      w20, w21, asr #22
361# CHECK: cmp      w22, w23, asr #31
3620x1f 0x0 0x3 0x6b
3630xff 0x3 0x4 0x6b
3640xbf 0x0 0x1f 0x6b
3650xdf 0x0 0x7 0x6b
3660x1f 0x3d 0x9 0x6b
3670x5f 0x7d 0xb 0x6b
3680x9f 0x1 0x4d 0x6b
3690xdf 0x55 0x4f 0x6b
3700x1f 0x7e 0x51 0x6b
3710x5f 0x2 0x93 0x6b
3720x9f 0x5a 0x95 0x6b
3730xdf 0x7e 0x97 0x6b
374
375# CHECK: cmp      x0, x3
376# CHECK: cmp      xzr, x4
377# CHECK: cmp      x5, xzr
378# CHECK: cmp      x6, x7
379# CHECK: cmp      x8, x9, lsl #15
380# CHECK: cmp      x10, x11, lsl #63
381# CHECK: cmp      x12, x13, lsr #0
382# CHECK: cmp      x14, x15, lsr #41
383# CHECK: cmp      x16, x17, lsr #63
384# CHECK: cmp      x18, x19, asr #0
385# CHECK: cmp      x20, x21, asr #55
386# CHECK: cmp      x22, x23, asr #63
3870x1f 0x0 0x3 0xeb
3880xff 0x3 0x4 0xeb
3890xbf 0x0 0x1f 0xeb
3900xdf 0x0 0x7 0xeb
3910x1f 0x3d 0x9 0xeb
3920x5f 0xfd 0xb 0xeb
3930x9f 0x1 0x4d 0xeb
3940xdf 0xa5 0x4f 0xeb
3950x1f 0xfe 0x51 0xeb
3960x5f 0x2 0x93 0xeb
3970x9f 0xde 0x95 0xeb
3980xdf 0xfe 0x97 0xeb
399
400# CHECK: {{sub      w29, wzr|neg w29}}, w30
401# CHECK: {{sub      w30, wzr|neg w30}}, wzr
402# CHECK: {{sub      wzr, wzr|neg wzr}}, w0
403# CHECK: {{sub      w28, wzr|neg w28}}, w27
404# CHECK: {{sub      w26, wzr|neg w26}}, w25, lsl #29
405# CHECK: {{sub      w24, wzr|neg w24}}, w23, lsl #31
406# CHECK: {{sub      w22, wzr|neg w22}}, w21, lsr #0
407# CHECK: {{sub      w20, wzr|neg w20}}, w19, lsr #1
408# CHECK: {{sub      w18, wzr|neg w18}}, w17, lsr #31
409# CHECK: {{sub      w16, wzr|neg w16}}, w15, asr #0
410# CHECK: {{sub      w14, wzr|neg w14}}, w13, asr #12
411# CHECK: {{sub      w12, wzr|neg w12}}, w11, asr #31
4120xfd 0x3 0x1e 0x4b
4130xfe 0x3 0x1f 0x4b
4140xff 0x3 0x0 0x4b
4150xfc 0x3 0x1b 0x4b
4160xfa 0x77 0x19 0x4b
4170xf8 0x7f 0x17 0x4b
4180xf6 0x3 0x55 0x4b
4190xf4 0x7 0x53 0x4b
4200xf2 0x7f 0x51 0x4b
4210xf0 0x3 0x8f 0x4b
4220xee 0x33 0x8d 0x4b
4230xec 0x7f 0x8b 0x4b
424
425# CHECK: {{sub      x29, xzr|neg x29}}, x30
426# CHECK: {{sub      x30, xzr|neg x30}}, xzr
427# CHECK: {{sub      xzr, xzr|neg xzr}}, x0
428# CHECK: {{sub      x28, xzr|neg x28}}, x27
429# CHECK: {{sub      x26, xzr|neg x26}}, x25, lsl #29
430# CHECK: {{sub      x24, xzr|neg x24}}, x23, lsl #31
431# CHECK: {{sub      x22, xzr|neg x22}}, x21, lsr #0
432# CHECK: {{sub      x20, xzr|neg x20}}, x19, lsr #1
433# CHECK: {{sub      x18, xzr|neg x18}}, x17, lsr #31
434# CHECK: {{sub      x16, xzr|neg x16}}, x15, asr #0
435# CHECK: {{sub      x14, xzr|neg x14}}, x13, asr #12
436# CHECK: {{sub      x12, xzr|neg x12}}, x11, asr #31
4370xfd 0x3 0x1e 0xcb
4380xfe 0x3 0x1f 0xcb
4390xff 0x3 0x0 0xcb
4400xfc 0x3 0x1b 0xcb
4410xfa 0x77 0x19 0xcb
4420xf8 0x7f 0x17 0xcb
4430xf6 0x3 0x55 0xcb
4440xf4 0x7 0x53 0xcb
4450xf2 0x7f 0x51 0xcb
4460xf0 0x3 0x8f 0xcb
4470xee 0x33 0x8d 0xcb
4480xec 0x7f 0x8b 0xcb
449
450# CHECK: {{subs     w29, wzr|negs w29}}, w30
451# CHECK: {{subs     w30, wzr|negs w30}}, wzr
452# CHECK: cmp      wzr, w0
453# CHECK: {{subs     w28, wzr|negs w28}}, w27
454# CHECK: {{subs     w26, wzr|negs w26}}, w25, lsl #29
455# CHECK: {{subs     w24, wzr|negs w24}}, w23, lsl #31
456# CHECK: {{subs     w22, wzr|negs w22}}, w21, lsr #0
457# CHECK: {{subs     w20, wzr|negs w20}}, w19, lsr #1
458# CHECK: {{subs     w18, wzr|negs w18}}, w17, lsr #31
459# CHECK: {{subs     w16, wzr|negs w16}}, w15, asr #0
460# CHECK: {{subs     w14, wzr|negs w14}}, w13, asr #12
461# CHECK: {{subs     w12, wzr|negs w12}}, w11, asr #31
4620xfd 0x3 0x1e 0x6b
4630xfe 0x3 0x1f 0x6b
4640xff 0x3 0x0 0x6b
4650xfc 0x3 0x1b 0x6b
4660xfa 0x77 0x19 0x6b
4670xf8 0x7f 0x17 0x6b
4680xf6 0x3 0x55 0x6b
4690xf4 0x7 0x53 0x6b
4700xf2 0x7f 0x51 0x6b
4710xf0 0x3 0x8f 0x6b
4720xee 0x33 0x8d 0x6b
4730xec 0x7f 0x8b 0x6b
474
475# CHECK: {{subs     x29, xzr|negs x29}}, x30
476# CHECK: {{subs     x30, xzr|negs x30}}, xzr
477# CHECK: cmp      xzr, x0
478# CHECK: {{subs     x28, xzr|negs x28}}, x27
479# CHECK: {{subs     x26, xzr|negs x26}}, x25, lsl #29
480# CHECK: {{subs     x24, xzr|negs x24}}, x23, lsl #31
481# CHECK: {{subs     x22, xzr|negs x22}}, x21, lsr #0
482# CHECK: {{subs     x20, xzr|negs x20}}, x19, lsr #1
483# CHECK: {{subs     x18, xzr|negs x18}}, x17, lsr #31
484# CHECK: {{subs     x16, xzr|negs x16}}, x15, asr #0
485# CHECK: {{subs     x14, xzr|negs x14}}, x13, asr #12
486# CHECK: {{subs     x12, xzr|negs x12}}, x11, asr #31
4870xfd 0x3 0x1e 0xeb
4880xfe 0x3 0x1f 0xeb
4890xff 0x3 0x0 0xeb
4900xfc 0x3 0x1b 0xeb
4910xfa 0x77 0x19 0xeb
4920xf8 0x7f 0x17 0xeb
4930xf6 0x3 0x55 0xeb
4940xf4 0x7 0x53 0xeb
4950xf2 0x7f 0x51 0xeb
4960xf0 0x3 0x8f 0xeb
4970xee 0x33 0x8d 0xeb
4980xec 0x7f 0x8b 0xeb
499
500#------------------------------------------------------------------------------
501# Add-subtract (shifted register)
502#------------------------------------------------------------------------------
503
504# CHECK: adc      w29, w27, w25
505# CHECK: adc      wzr, w3, w4
506# CHECK: adc      w9, wzr, w10
507# CHECK: adc      w20, w0, wzr
5080x7d 0x3 0x19 0x1a
5090x7f 0x0 0x4 0x1a
5100xe9 0x3 0xa 0x1a
5110x14 0x0 0x1f 0x1a
512
513# CHECK: adc      x29, x27, x25
514# CHECK: adc      xzr, x3, x4
515# CHECK: adc      x9, xzr, x10
516# CHECK: adc      x20, x0, xzr
5170x7d 0x3 0x19 0x9a
5180x7f 0x0 0x4 0x9a
5190xe9 0x3 0xa 0x9a
5200x14 0x0 0x1f 0x9a
521
522# CHECK: adcs     w29, w27, w25
523# CHECK: adcs     wzr, w3, w4
524# CHECK: adcs     w9, wzr, w10
525# CHECK: adcs     w20, w0, wzr
5260x7d 0x3 0x19 0x3a
5270x7f 0x0 0x4 0x3a
5280xe9 0x3 0xa 0x3a
5290x14 0x0 0x1f 0x3a
530
531# CHECK: adcs     x29, x27, x25
532# CHECK: adcs     xzr, x3, x4
533# CHECK: adcs     x9, xzr, x10
534# CHECK: adcs     x20, x0, xzr
5350x7d 0x3 0x19 0xba
5360x7f 0x0 0x4 0xba
5370xe9 0x3 0xa 0xba
5380x14 0x0 0x1f 0xba
539
540# CHECK: sbc      w29, w27, w25
541# CHECK: sbc      wzr, w3, w4
542# CHECK: ngc      w9, w10
543# CHECK: sbc      w20, w0, wzr
5440x7d 0x3 0x19 0x5a
5450x7f 0x0 0x4 0x5a
5460xe9 0x3 0xa 0x5a
5470x14 0x0 0x1f 0x5a
548
549# CHECK: sbc      x29, x27, x25
550# CHECK: sbc      xzr, x3, x4
551# CHECK: ngc      x9, x10
552# CHECK: sbc      x20, x0, xzr
5530x7d 0x3 0x19 0xda
5540x7f 0x0 0x4 0xda
5550xe9 0x3 0xa 0xda
5560x14 0x0 0x1f 0xda
557
558# CHECK: sbcs     w29, w27, w25
559# CHECK: sbcs     wzr, w3, w4
560# CHECK: ngcs     w9, w10
561# CHECK: sbcs     w20, w0, wzr
5620x7d 0x3 0x19 0x7a
5630x7f 0x0 0x4 0x7a
5640xe9 0x3 0xa 0x7a
5650x14 0x0 0x1f 0x7a
566
567# CHECK: sbcs     x29, x27, x25
568# CHECK: sbcs     xzr, x3, x4
569# CHECK: ngcs     x9, x10
570# CHECK: sbcs     x20, x0, xzr
5710x7d 0x3 0x19 0xfa
5720x7f 0x0 0x4 0xfa
5730xe9 0x3 0xa 0xfa
5740x14 0x0 0x1f 0xfa
575
576# CHECK: ngc      w3, w12
577# CHECK: ngc      wzr, w9
578# CHECK: ngc      w23, wzr
5790xe3 0x3 0xc 0x5a
5800xff 0x3 0x9 0x5a
5810xf7 0x3 0x1f 0x5a
582
583# CHECK: ngc      x29, x30
584# CHECK: ngc      xzr, x0
585# CHECK: ngc      x0, xzr
5860xfd 0x3 0x1e 0xda
5870xff 0x3 0x0 0xda
5880xe0 0x3 0x1f 0xda
589
590# CHECK: ngcs     w3, w12
591# CHECK: ngcs     wzr, w9
592# CHECK: ngcs     w23, wzr
5930xe3 0x3 0xc 0x7a
5940xff 0x3 0x9 0x7a
5950xf7 0x3 0x1f 0x7a
596
597# CHECK: ngcs     x29, x30
598# CHECK: ngcs     xzr, x0
599# CHECK: ngcs     x0, xzr
6000xfd 0x3 0x1e 0xfa
6010xff 0x3 0x0 0xfa
6020xe0 0x3 0x1f 0xfa
603
604#------------------------------------------------------------------------------
605# Compare and branch (immediate)
606#------------------------------------------------------------------------------
607
608# CHECK: sbfx     x1, x2, #3, #2
609# CHECK: asr      x3, x4, #63
610# CHECK: asr      wzr, wzr, #31
611# CHECK: sbfx     w12, w9, #0, #1
6120x41 0x10 0x43 0x93
6130x83 0xfc 0x7f 0x93
6140xff 0x7f 0x1f 0x13
6150x2c 0x1 0x0 0x13
616
617# CHECK: ubfiz    x4, x5, #52, #11
618# CHECK: ubfx     xzr, x4, #0, #1
619# CHECK: ubfiz    x4, xzr, #1, #6
620# CHECK: lsr      x5, x6, #12
6210xa4 0x28 0x4c 0xd3
6220x9f 0x0 0x40 0xd3
6230xe4 0x17 0x7f 0xd3
6240xc5 0xfc 0x4c 0xd3
625
626# CHECK: bfi      x4, x5, #52, #11
627# CHECK: bfxil    xzr, x4, #0, #1
628# CHECK: bfi      x4, xzr, #1, #6
629# CHECK-V82: bfc      x4, #1, #6
630# CHECK: bfxil    x5, x6, #12, #52
6310xa4 0x28 0x4c 0xb3
6320x9f 0x0 0x40 0xb3
6330xe4 0x17 0x7f 0xb3
6340xc5 0xfc 0x4c 0xb3
635
636# CHECK: sxtb     w1, w2
637# CHECK: sxtb     xzr, w3
638# CHECK: sxth     w9, w10
639# CHECK: sxth     x0, w1
640# CHECK: sxtw     x3, w30
6410x41 0x1c 0x0 0x13
6420x7f 0x1c 0x40 0x93
6430x49 0x3d 0x0 0x13
6440x20 0x3c 0x40 0x93
6450xc3 0x7f 0x40 0x93
646
647# CHECK: uxtb     w1, w2
648# CHECK: uxth     w9, w10
649# CHECK: ubfx     x3, x30, #0, #32
6500x41 0x1c 0x0 0x53
6510x49 0x3d 0x0 0x53
6520xc3 0x7f 0x40 0xd3
653
654# CHECK: asr      w3, w2, #0
655# CHECK: asr      w9, w10, #31
656# CHECK: asr      x20, x21, #63
657# CHECK: asr      w1, wzr, #3
6580x43 0x7c 0x0 0x13
6590x49 0x7d 0x1f 0x13
6600xb4 0xfe 0x7f 0x93
6610xe1 0x7f 0x3 0x13
662
663# CHECK: lsr      w3, w2, #0
664# CHECK: lsr      w9, w10, #31
665# CHECK: lsr      x20, x21, #63
666# CHECK: lsr      wzr, wzr, #3
6670x43 0x7c 0x0 0x53
6680x49 0x7d 0x1f 0x53
6690xb4 0xfe 0x7f 0xd3
6700xff 0x7f 0x3 0x53
671
672# CHECK: lsr      w3, w2, #0
673# CHECK: lsl      w9, w10, #31
674# CHECK: lsl      x20, x21, #63
675# CHECK: lsl      w1, wzr, #3
6760x43 0x7c 0x0 0x53
6770x49 0x1 0x1 0x53
6780xb4 0x2 0x41 0xd3
6790xe1 0x73 0x1d 0x53
680
681# CHECK: sbfx     w9, w10, #0, #1
682# CHECK: sbfiz    x2, x3, #63, #1
683# CHECK: asr      x19, x20, #0
684# CHECK: sbfiz    x9, x10, #5, #59
685# CHECK: asr      w9, w10, #0
686# CHECK: sbfiz    w11, w12, #31, #1
687# CHECK: sbfiz    w13, w14, #29, #3
688# CHECK: sbfiz    xzr, xzr, #10, #11
6890x49 0x1 0x0 0x13
6900x62 0x0 0x41 0x93
6910x93 0xfe 0x40 0x93
6920x49 0xe9 0x7b 0x93
6930x49 0x7d 0x0 0x13
6940x8b 0x1 0x1 0x13
6950xcd 0x9 0x3 0x13
6960xff 0x2b 0x76 0x93
697
698# CHECK: sbfx     w9, w10, #0, #1
699# CHECK: asr      x2, x3, #63
700# CHECK: asr      x19, x20, #0
701# CHECK: asr      x9, x10, #5
702# CHECK: asr      w9, w10, #0
703# CHECK: asr      w11, w12, #31
704# CHECK: asr      w13, w14, #29
705# CHECK: sbfx     xzr, xzr, #10, #11
7060x49 0x1 0x0 0x13
7070x62 0xfc 0x7f 0x93
7080x93 0xfe 0x40 0x93
7090x49 0xfd 0x45 0x93
7100x49 0x7d 0x0 0x13
7110x8b 0x7d 0x1f 0x13
7120xcd 0x7d 0x1d 0x13
7130xff 0x53 0x4a 0x93
714
715# CHECK: bfxil    w9, w10, #0, #1
716# CHECK: bfi      x2, x3, #63, #1
717# CHECK: bfxil    x19, x20, #0, #64
718# CHECK: bfi      x9, x10, #5, #59
719# CHECK: bfxil    w9, w10, #0, #32
720# CHECK: bfi      w11, w12, #31, #1
721# CHECK: bfi      w13, w14, #29, #3
722# CHECK-V82: bfc      xzr, #10, #11
723# CHECK: bfi      xzr, xzr, #10, #11
7240x49 0x1 0x0 0x33
7250x62 0x0 0x41 0xb3
7260x93 0xfe 0x40 0xb3
7270x49 0xe9 0x7b 0xb3
7280x49 0x7d 0x0 0x33
7290x8b 0x1 0x1 0x33
7300xcd 0x9 0x3 0x33
7310xff 0x2b 0x76 0xb3
732
733# CHECK: bfxil    w9, w10, #0, #1
734# CHECK: bfxil    x2, x3, #63, #1
735# CHECK: bfxil    x19, x20, #0, #64
736# CHECK: bfxil    x9, x10, #5, #59
737# CHECK: bfxil    w9, w10, #0, #32
738# CHECK: bfxil    w11, w12, #31, #1
739# CHECK: bfxil    w13, w14, #29, #3
740# CHECK: bfxil    xzr, xzr, #10, #11
7410x49 0x1 0x0 0x33
7420x62 0xfc 0x7f 0xb3
7430x93 0xfe 0x40 0xb3
7440x49 0xfd 0x45 0xb3
7450x49 0x7d 0x0 0x33
7460x8b 0x7d 0x1f 0x33
7470xcd 0x7d 0x1d 0x33
7480xff 0x53 0x4a 0xb3
749
750# CHECK: ubfx     w9, w10, #0, #1
751# CHECK: lsl      x2, x3, #63
752# CHECK: lsr      x19, x20, #0
753# CHECK: lsl      x9, x10, #5
754# CHECK: lsr      w9, w10, #0
755# CHECK: lsl      w11, w12, #31
756# CHECK: lsl      w13, w14, #29
757# CHECK: ubfiz    xzr, xzr, #10, #11
7580x49 0x1 0x0 0x53
7590x62 0x0 0x41 0xd3
7600x93 0xfe 0x40 0xd3
7610x49 0xe9 0x7b 0xd3
7620x49 0x7d 0x0 0x53
7630x8b 0x1 0x1 0x53
7640xcd 0x9 0x3 0x53
7650xff 0x2b 0x76 0xd3
766
767# CHECK: ubfx     w9, w10, #0, #1
768# CHECK: lsr      x2, x3, #63
769# CHECK: lsr      x19, x20, #0
770# CHECK: lsr      x9, x10, #5
771# CHECK: lsr      w9, w10, #0
772# CHECK: lsr      w11, w12, #31
773# CHECK: lsr      w13, w14, #29
774# CHECK: ubfx     xzr, xzr, #10, #11
7750x49 0x1 0x0 0x53
7760x62 0xfc 0x7f 0xd3
7770x93 0xfe 0x40 0xd3
7780x49 0xfd 0x45 0xd3
7790x49 0x7d 0x0 0x53
7800x8b 0x7d 0x1f 0x53
7810xcd 0x7d 0x1d 0x53
7820xff 0x53 0x4a 0xd3
783
784
785#------------------------------------------------------------------------------
786# Compare and branch (immediate)
787#------------------------------------------------------------------------------
788
789# CHECK: cbz      w5, #4
790# CHECK: cbz      x5, #0
791# CHECK: cbnz     x2, #-4
792# CHECK: cbnz     x26, #1048572
7930x25 0x0 0x0 0x34
7940x05 0x0 0x0 0xb4
7950xe2 0xff 0xff 0xb5
7960xfa 0xff 0x7f 0xb5
797
798# CHECK: cbz      wzr, #0
799# CHECK: cbnz     xzr, #0
8000x1f 0x0 0x0 0x34
8010x1f 0x0 0x0 0xb5
802
803#------------------------------------------------------------------------------
804# Conditional branch (immediate)
805#------------------------------------------------------------------------------
806
807# CHECK: b.ne #4
808# CHECK: b.ge #1048572
809# CHECK: b.ge #-4
8100x21 0x00 0x00 0x54
8110xea 0xff 0x7f 0x54
8120xea 0xff 0xff 0x54
813
814#------------------------------------------------------------------------------
815# Conditional compare (immediate)
816#------------------------------------------------------------------------------
817
818# CHECK: ccmp w1, #31, #0, eq
819# CHECK: ccmp w3, #0, #15, hs
820# CHECK: ccmp wzr, #15, #13, hs
8210x20 0x08 0x5f 0x7a
8220x6f 0x28 0x40 0x7a
8230xed 0x2b 0x4f 0x7a
824
825# CHECK: ccmp x9, #31, #0, le
826# CHECK: ccmp x3, #0, #15, gt
827# CHECK: ccmp xzr, #5, #7, ne
8280x20 0xd9 0x5f 0xfa
8290x6f 0xc8 0x40 0xfa
8300xe7 0x1b 0x45 0xfa
831
832# CHECK: ccmn w1, #31, #0, eq
833# CHECK: ccmn w3, #0, #15, hs
834# CHECK: ccmn wzr, #15, #13, hs
8350x20 0x08 0x5f 0x3a
8360x6f 0x28 0x40 0x3a
8370xed 0x2b 0x4f 0x3a
838
839# CHECK: ccmn x9, #31, #0, le
840# CHECK: ccmn x3, #0, #15, gt
841# CHECK: ccmn xzr, #5, #7, ne
8420x20 0xd9 0x5f 0xba
8430x6f 0xc8 0x40 0xba
8440xe7 0x1b 0x45 0xba
845
846#------------------------------------------------------------------------------
847# Conditional compare (register)
848#------------------------------------------------------------------------------
849
850# CHECK: ccmp w1, wzr, #0, eq
851# CHECK: ccmp w3, w0, #15, hs
852# CHECK: ccmp wzr, w15, #13, hs
8530x20 0x00 0x5f 0x7a
8540x6f 0x20 0x40 0x7a
8550xed 0x23 0x4f 0x7a
856
857# CHECK: ccmp x9, xzr, #0, le
858# CHECK: ccmp x3, x0, #15, gt
859# CHECK: ccmp xzr, x5, #7, ne
8600x20 0xd1 0x5f 0xfa
8610x6f 0xc0 0x40 0xfa
8620xe7 0x13 0x45 0xfa
863
864# CHECK: ccmn w1, wzr, #0, eq
865# CHECK: ccmn w3, w0, #15, hs
866# CHECK: ccmn wzr, w15, #13, hs
8670x20 0x00 0x5f 0x3a
8680x6f 0x20 0x40 0x3a
8690xed 0x23 0x4f 0x3a
870
871# CHECK: ccmn x9, xzr, #0, le
872# CHECK: ccmn x3, x0, #15, gt
873# CHECK: ccmn xzr, x5, #7, ne
8740x20 0xd1 0x5f 0xba
8750x6f 0xc0 0x40 0xba
8760xe7 0x13 0x45 0xba
877
878#------------------------------------------------------------------------------
879# Conditional branch (immediate)
880#------------------------------------------------------------------------------
881# CHECK: csel     w1, w0, w19, ne
882# CHECK: csel     wzr, w5, w9, eq
883# CHECK: csel     w9, wzr, w30, gt
884# CHECK: csel     w1, w28, wzr, mi
885# CHECK: csel     x19, x23, x29, lt
886# CHECK: csel     xzr, x3, x4, ge
887# CHECK: csel     x5, xzr, x6, hs
888# CHECK: csel     x7, x8, xzr, lo
8890x1 0x10 0x93 0x1a
8900xbf 0x0 0x89 0x1a
8910xe9 0xc3 0x9e 0x1a
8920x81 0x43 0x9f 0x1a
8930xf3 0xb2 0x9d 0x9a
8940x7f 0xa0 0x84 0x9a
8950xe5 0x23 0x86 0x9a
8960x7 0x31 0x9f 0x9a
897
898# CHECK: csinc    w1, w0, w19, ne
899# CHECK: csinc    wzr, w5, w9, eq
900# CHECK: csinc    w9, wzr, w30, gt
901# CHECK: csinc    w1, w28, wzr, mi
902# CHECK: csinc    x19, x23, x29, lt
903# CHECK: csinc    xzr, x3, x4, ge
904# CHECK: csinc    x5, xzr, x6, hs
905# CHECK: csinc    x7, x8, xzr, lo
9060x1 0x14 0x93 0x1a
9070xbf 0x4 0x89 0x1a
9080xe9 0xc7 0x9e 0x1a
9090x81 0x47 0x9f 0x1a
9100xf3 0xb6 0x9d 0x9a
9110x7f 0xa4 0x84 0x9a
9120xe5 0x27 0x86 0x9a
9130x7 0x35 0x9f 0x9a
914
915# CHECK: csinv    w1, w0, w19, ne
916# CHECK: csinv    wzr, w5, w9, eq
917# CHECK: csinv    w9, wzr, w30, gt
918# CHECK: csinv    w1, w28, wzr, mi
919# CHECK: csinv    x19, x23, x29, lt
920# CHECK: csinv    xzr, x3, x4, ge
921# CHECK: csinv    x5, xzr, x6, hs
922# CHECK: csinv    x7, x8, xzr, lo
9230x1 0x10 0x93 0x5a
9240xbf 0x0 0x89 0x5a
9250xe9 0xc3 0x9e 0x5a
9260x81 0x43 0x9f 0x5a
9270xf3 0xb2 0x9d 0xda
9280x7f 0xa0 0x84 0xda
9290xe5 0x23 0x86 0xda
9300x7 0x31 0x9f 0xda
931
932# CHECK: csneg    w1, w0, w19, ne
933# CHECK: csneg    wzr, w5, w9, eq
934# CHECK: csneg    w9, wzr, w30, gt
935# CHECK: csneg    w1, w28, wzr, mi
936# CHECK: csneg    x19, x23, x29, lt
937# CHECK: csneg    xzr, x3, x4, ge
938# CHECK: csneg    x5, xzr, x6, hs
939# CHECK: csneg    x7, x8, xzr, lo
9400x1 0x14 0x93 0x5a
9410xbf 0x4 0x89 0x5a
9420xe9 0xc7 0x9e 0x5a
9430x81 0x47 0x9f 0x5a
9440xf3 0xb6 0x9d 0xda
9450x7f 0xa4 0x84 0xda
9460xe5 0x27 0x86 0xda
9470x7 0x35 0x9f 0xda
948
949# CHECK: cset    w3, eq
950# CHECK: cset    x9, pl
951# CHECK: csetm    w20, ne
952# CHECK: csetm    x30, ge
953# "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
954# CHECK: csinc    w2, wzr, wzr, al
955# CHECK: csinv    x3, xzr, xzr, nv
9560xe3 0x17 0x9f 0x1a
9570xe9 0x47 0x9f 0x9a
9580xf4 0x3 0x9f 0x5a
9590xfe 0xb3 0x9f 0xda
9600xe2,0xe7,0x9f,0x1a
9610xe3,0xf3,0x9f,0xda
962
963# CHECK: cinc    w3, w5, gt
964# CHECK: cinc    wzr, w4, le
965# CHECK: cset    w9, lt
966# CHECK: cinc    x3, x5, gt
967# CHECK: cinc    xzr, x4, le
968# CHECK: cset    x9, lt
969# "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
970# CHECK: csinc   w5, w6, w6, nv
971# CHECK: csinc   x1, x2, x2, al
9720xa3 0xd4 0x85 0x1a
9730x9f 0xc4 0x84 0x1a
9740xe9 0xa7 0x9f 0x1a
9750xa3 0xd4 0x85 0x9a
9760x9f 0xc4 0x84 0x9a
9770xe9 0xa7 0x9f 0x9a
9780xc5,0xf4,0x86,0x1a
9790x41,0xe4,0x82,0x9a
980
981# CHECK: cinv    w3, w5, gt
982# CHECK: cinv    wzr, w4, le
983# CHECK: csetm   w9, lt
984# CHECK: cinv    x3, x5, gt
985# CHECK: cinv    xzr, x4, le
986# CHECK: csetm   x9, lt
987# "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
988# CHECK: csinv   x1, x0, x0, al
989# CHECK: csinv   w9, w8, w8, nv
9900xa3 0xd0 0x85 0x5a
9910x9f 0xc0 0x84 0x5a
9920xe9 0xa3 0x9f 0x5a
9930xa3 0xd0 0x85 0xda
9940x9f 0xc0 0x84 0xda
9950xe9 0xa3 0x9f 0xda
9960x01 0xe0 0x80 0xda
9970x09,0xf1,0x88,0x5a
998
999# CHECK: cneg     w3, w5, gt
1000# CHECK: cneg     wzr, w4, le
1001# CHECK: cneg     w9, wzr, lt
1002# CHECK: cneg     x3, x5, gt
1003# CHECK: cneg     xzr, x4, le
1004# CHECK: cneg     x9, xzr, lt
1005# "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1006# CHECK: csneg    x4, x8, x8, al
1007# CHECK: csinv    w9, w8, w8, nv
10080xa3 0xd4 0x85 0x5a
10090x9f 0xc4 0x84 0x5a
10100xe9 0xa7 0x9f 0x5a
10110xa3 0xd4 0x85 0xda
10120x9f 0xc4 0x84 0xda
10130xe9 0xa7 0x9f 0xda
10140x04,0xe5,0x88,0xda
10150x09,0xf1,0x88,0x5a
1016
1017#------------------------------------------------------------------------------
1018# Data-processing (1 source)
1019#------------------------------------------------------------------------------
1020
1021# CHECK: rbit	w0, w7
1022# CHECK: rbit   x18, x3
1023# CHECK: rev16	w17, w1
1024# CHECK: rev16	x5, x2
1025# CHECK: rev	w18, w0
1026# CHECK: rev32	x20, x1
10270xe0 0x00 0xc0 0x5a
10280x72 0x00 0xc0 0xda
10290x31 0x04 0xc0 0x5a
10300x45 0x04 0xc0 0xda
10310x12 0x08 0xc0 0x5a
10320x34 0x08 0xc0 0xda
1033
1034# CHECK: rev	x22, x2
1035# CHECK: clz	w24, w3
1036# CHECK: clz	x26, x4
1037# CHECK: cls	w3, w5
1038# CHECK: cls	x20, x5
10390x56 0x0c 0xc0 0xda
10400x78 0x10 0xc0 0x5a
10410x9a 0x10 0xc0 0xda
10420xa3 0x14 0xc0 0x5a
10430xb4 0x14 0xc0 0xda
1044
1045#------------------------------------------------------------------------------
1046# Data-processing (2 source)
1047#------------------------------------------------------------------------------
1048
1049# CHECK: udiv	w0, w7, w10
1050# CHECK: udiv	x9, x22, x4
1051# CHECK: sdiv	w12, w21, w0
1052# CHECK: sdiv	x13, x2, x1
1053# CHECK: lsl	w11, w12, w13
1054# CHECK: lsl	x14, x15, x16
1055# CHECK: lsr	w17, w18, w19
1056# CHECK: lsr	x20, x21, x22
1057# CHECK: asr	w23, w24, w25
1058# CHECK: asr	x26, x27, x28
1059# CHECK: ror	w0, w1, w2
1060# CHECK: ror    x3, x4, x5
10610xe0 0x08 0xca 0x1a
10620xc9 0x0a 0xc4 0x9a
10630xac 0x0e 0xc0 0x1a
10640x4d 0x0c 0xc1 0x9a
10650x8b 0x21 0xcd 0x1a
10660xee 0x21 0xd0 0x9a
10670x51 0x26 0xd3 0x1a
10680xb4 0x26 0xd6 0x9a
10690x17 0x2b 0xd9 0x1a
10700x7a 0x2b 0xdc 0x9a
10710x20 0x2c 0xc2 0x1a
10720x83 0x2c 0xc5 0x9a
1073
1074# CHECK: lsl	w6, w7, w8
1075# CHECK: lsl	x9, x10, x11
1076# CHECK: lsr	w12, w13, w14
1077# CHECK: lsr	x15, x16, x17
1078# CHECK: asr	w18, w19, w20
1079# CHECK: asr	x21, x22, x23
1080# CHECK: ror	w24, w25, w26
1081# CHECK: ror	x27, x28, x29
10820xe6 0x20 0xc8 0x1a
10830x49 0x21 0xcb 0x9a
10840xac 0x25 0xce 0x1a
10850x0f 0x26 0xd1 0x9a
10860x72 0x2a 0xd4 0x1a
10870xd5 0x2a 0xd7 0x9a
10880x38 0x2f 0xda 0x1a
10890x9b 0x2f 0xdd 0x9a
1090
1091#------------------------------------------------------------------------------
1092# Data-processing (3 sources)
1093#------------------------------------------------------------------------------
1094
1095# First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1096# and smulh have them).
1097
1098# CHECK: smulh    x30, x29, x28
1099# CHECK: smulh    xzr, x27, x26
1100# CHECK: umulh    x30, x29, x28
1101# CHECK: umulh    x23, x30, xzr
11020xbe 0x73 0x5c 0x9b
11030x7f 0x2f 0x5a 0x9b
11040xbe 0x3f 0xdc 0x9b
11050xd7 0x77 0xdf 0x9b
1106
1107# Now onto the boilerplate stuff
1108
1109# CHECK: madd     w1, w3, w7, w4
1110# CHECK: madd     wzr, w0, w9, w11
1111# CHECK: madd     w13, wzr, w4, w4
1112# CHECK: madd     w19, w30, wzr, w29
1113# CHECK: mul      w4, w5, w6
11140x61 0x10 0x7 0x1b
11150x1f 0x2c 0x9 0x1b
11160xed 0x13 0x4 0x1b
11170xd3 0x77 0x1f 0x1b
11180xa4 0x7c 0x6 0x1b
1119
1120# CHECK: madd     x1, x3, x7, x4
1121# CHECK: madd     xzr, x0, x9, x11
1122# CHECK: madd     x13, xzr, x4, x4
1123# CHECK: madd     x19, x30, xzr, x29
1124# CHECK: mul      x4, x5, x6
11250x61 0x10 0x7 0x9b
11260x1f 0x2c 0x9 0x9b
11270xed 0x13 0x4 0x9b
11280xd3 0x77 0x1f 0x9b
11290xa4 0x7c 0x6 0x9b
1130
1131# CHECK: msub     w1, w3, w7, w4
1132# CHECK: msub     wzr, w0, w9, w11
1133# CHECK: msub     w13, wzr, w4, w4
1134# CHECK: msub     w19, w30, wzr, w29
1135# CHECK: mneg     w4, w5, w6
11360x61 0x90 0x7 0x1b
11370x1f 0xac 0x9 0x1b
11380xed 0x93 0x4 0x1b
11390xd3 0xf7 0x1f 0x1b
11400xa4 0xfc 0x6 0x1b
1141
1142# CHECK: msub     x1, x3, x7, x4
1143# CHECK: msub     xzr, x0, x9, x11
1144# CHECK: msub     x13, xzr, x4, x4
1145# CHECK: msub     x19, x30, xzr, x29
1146# CHECK: mneg     x4, x5, x6
11470x61 0x90 0x7 0x9b
11480x1f 0xac 0x9 0x9b
11490xed 0x93 0x4 0x9b
11500xd3 0xf7 0x1f 0x9b
11510xa4 0xfc 0x6 0x9b
1152
1153# CHECK: smaddl   x3, w5, w2, x9
1154# CHECK: smaddl   xzr, w10, w11, x12
1155# CHECK: smaddl   x13, wzr, w14, x15
1156# CHECK: smaddl   x16, w17, wzr, x18
1157# CHECK: smull    x19, w20, w21
11580xa3 0x24 0x22 0x9b
11590x5f 0x31 0x2b 0x9b
11600xed 0x3f 0x2e 0x9b
11610x30 0x4a 0x3f 0x9b
11620x93 0x7e 0x35 0x9b
1163
1164# CHECK: smsubl   x3, w5, w2, x9
1165# CHECK: smsubl   xzr, w10, w11, x12
1166# CHECK: smsubl   x13, wzr, w14, x15
1167# CHECK: smsubl   x16, w17, wzr, x18
1168# CHECK: smnegl   x19, w20, w21
11690xa3 0xa4 0x22 0x9b
11700x5f 0xb1 0x2b 0x9b
11710xed 0xbf 0x2e 0x9b
11720x30 0xca 0x3f 0x9b
11730x93 0xfe 0x35 0x9b
1174
1175# CHECK: umaddl   x3, w5, w2, x9
1176# CHECK: umaddl   xzr, w10, w11, x12
1177# CHECK: umaddl   x13, wzr, w14, x15
1178# CHECK: umaddl   x16, w17, wzr, x18
1179# CHECK: umull    x19, w20, w21
11800xa3 0x24 0xa2 0x9b
11810x5f 0x31 0xab 0x9b
11820xed 0x3f 0xae 0x9b
11830x30 0x4a 0xbf 0x9b
11840x93 0x7e 0xb5 0x9b
1185
1186# CHECK: umsubl   x3, w5, w2, x9
1187# CHECK: umsubl   xzr, w10, w11, x12
1188# CHECK: umsubl   x13, wzr, w14, x15
1189# CHECK: umsubl   x16, w17, wzr, x18
1190# CHECK: umnegl   x19, w20, w21
11910xa3 0xa4 0xa2 0x9b
11920x5f 0xb1 0xab 0x9b
11930xed 0xbf 0xae 0x9b
11940x30 0xca 0xbf 0x9b
11950x93 0xfe 0xb5 0x9b
1196
1197# CHECK: smulh    x30, x29, x28
1198# CHECK: smulh    xzr, x27, x26
1199# CHECK: smulh    x25, xzr, x24
1200# CHECK: smulh    x23, x22, xzr
12010xbe 0x7f 0x5c 0x9b
12020x7f 0x7f 0x5a 0x9b
12030xf9 0x7f 0x58 0x9b
12040xd7 0x7e 0x5f 0x9b
1205
1206# CHECK: umulh    x30, x29, x28
1207# CHECK: umulh    xzr, x27, x26
1208# CHECK: umulh    x25, xzr, x24
1209# CHECK: umulh    x23, x22, xzr
12100xbe 0x7f 0xdc 0x9b
12110x7f 0x7f 0xda 0x9b
12120xf9 0x7f 0xd8 0x9b
12130xd7 0x7e 0xdf 0x9b
1214
1215# CHECK: mul      w3, w4, w5
1216# CHECK: mul      wzr, w6, w7
1217# CHECK: mul      w8, wzr, w9
1218# CHECK: mul      w10, w11, wzr
1219# CHECK: mul      x12, x13, x14
1220# CHECK: mul      xzr, x15, x16
1221# CHECK: mul      x17, xzr, x18
1222# CHECK: mul      x19, x20, xzr
12230x83 0x7c 0x5 0x1b
12240xdf 0x7c 0x7 0x1b
12250xe8 0x7f 0x9 0x1b
12260x6a 0x7d 0x1f 0x1b
12270xac 0x7d 0xe 0x9b
12280xff 0x7d 0x10 0x9b
12290xf1 0x7f 0x12 0x9b
12300x93 0x7e 0x1f 0x9b
1231
1232# CHECK: mneg     w21, w22, w23
1233# CHECK: mneg     wzr, w24, w25
1234# CHECK: mneg     w26, wzr, w27
1235# CHECK: mneg     w28, w29, wzr
12360xd5 0xfe 0x17 0x1b
12370x1f 0xff 0x19 0x1b
12380xfa 0xff 0x1b 0x1b
12390xbc 0xff 0x1f 0x1b
1240
1241# CHECK: smull    x11, w13, w17
1242# CHECK: umull    x11, w13, w17
1243# CHECK: smnegl   x11, w13, w17
1244# CHECK: umnegl   x11, w13, w17
12450xab 0x7d 0x31 0x9b
12460xab 0x7d 0xb1 0x9b
12470xab 0xfd 0x31 0x9b
12480xab 0xfd 0xb1 0x9b
1249
1250#------------------------------------------------------------------------------
1251# Exception generation
1252#------------------------------------------------------------------------------
1253
1254# CHECK: svc      #0
1255# CHECK: svc      #{{65535|0xffff}}
12560x1 0x0 0x0 0xd4
12570xe1 0xff 0x1f 0xd4
1258
1259# CHECK: hvc      #{{1|0x1}}
1260# CHECK: smc      #{{12000|0x2ee0}}
1261# CHECK: brk      #{{12|0xc}}
1262# CHECK: hlt      #{{123|0x7b}}
12630x22 0x0 0x0 0xd4
12640x3 0xdc 0x5 0xd4
12650x80 0x1 0x20 0xd4
12660x60 0xf 0x40 0xd4
1267
1268# CHECK: dcps1    #{{42|0x2a}}
1269# CHECK: dcps2    #{{9|0x9}}
1270# CHECK: dcps3    #{{1000|0x3e8}}
12710x41 0x5 0xa0 0xd4
12720x22 0x1 0xa0 0xd4
12730x3 0x7d 0xa0 0xd4
1274
1275# CHECK: dcps1
1276# CHECK: dcps2
1277# CHECK: dcps3
12780x1 0x0 0xa0 0xd4
12790x2 0x0 0xa0 0xd4
12800x3 0x0 0xa0 0xd4
1281
1282#------------------------------------------------------------------------------
1283# Extract (immediate)
1284#------------------------------------------------------------------------------
1285
1286# CHECK: extr     w3, w5, w7, #0
1287# CHECK: extr     w11, w13, w17, #31
12880xa3 0x0 0x87 0x13
12890xab 0x7d 0x91 0x13
1290
1291# CHECK: extr     x3, x5, x7, #15
1292# CHECK: extr     x11, x13, x17, #63
12930xa3 0x3c 0xc7 0x93
12940xab 0xfd 0xd1 0x93
1295
1296# CHECK: ror     x19, x23, #24
1297# CHECK: ror     x29, xzr, #63
1298# CHECK: ror     w9, w13, #31
12990xf3 0x62 0xd7 0x93
13000xfd 0xff 0xdf 0x93
13010xa9 0x7d 0x8d 0x13
1302
1303#------------------------------------------------------------------------------
1304# Floating-point compare
1305#------------------------------------------------------------------------------
1306
1307# CHECK: fcmp    s3, s5
1308# CHECK: fcmp    s31, #0.0
1309# CHECK: fcmp    s31, #0.0
13100x60 0x20 0x25 0x1e
13110xe8 0x23 0x20 0x1e
13120xe8 0x23 0x3f 0x1e
1313
1314# CHECK: fcmpe   s29, s30
1315# CHECK: fcmpe   s15, #0.0
1316# CHECK: fcmpe   s15, #0.0
13170xb0 0x23 0x3e 0x1e
13180xf8 0x21 0x20 0x1e
13190xf8 0x21 0x2f 0x1e
1320
1321# CHECK: fcmp    d4, d12
1322# CHECK: fcmp    d23, #0.0
1323# CHECK: fcmp    d23, #0.0
13240x80 0x20 0x6c 0x1e
13250xe8 0x22 0x60 0x1e
13260xe8 0x22 0x77 0x1e
1327
1328# CHECK: fcmpe   d26, d22
1329# CHECK: fcmpe   d29, #0.0
1330# CHECK: fcmpe   d29, #0.0
13310x50 0x23 0x76 0x1e
13320xb8 0x23 0x60 0x1e
13330xb8 0x23 0x6d 0x1e
1334
1335#------------------------------------------------------------------------------
1336# Floating-point conditional compare
1337#------------------------------------------------------------------------------
1338
1339# CHECK: fccmp s1, s31, #0, eq
1340# CHECK: fccmp s3, s0, #15, hs
1341# CHECK: fccmp s31, s15, #13, hs
13420x20 0x04 0x3f 0x1e
13430x6f 0x24 0x20 0x1e
13440xed 0x27 0x2f 0x1e
1345
1346# CHECK: fccmp d9, d31, #0, le
1347# CHECK: fccmp d3, d0, #15, gt
1348# CHECK: fccmp d31, d5, #7, ne
13490x20 0xd5 0x7f 0x1e
13500x6f 0xc4 0x60 0x1e
13510xe7 0x17 0x65 0x1e
1352
1353# CHECK: fccmpe s1, s31, #0, eq
1354# CHECK: fccmpe s3, s0, #15, hs
1355# CHECK: fccmpe s31, s15, #13, hs
13560x30 0x04 0x3f 0x1e
13570x7f 0x24 0x20 0x1e
13580xfd 0x27 0x2f 0x1e
1359
1360# CHECK: fccmpe d9, d31, #0, le
1361# CHECK: fccmpe d3, d0, #15, gt
1362# CHECK: fccmpe d31, d5, #7, ne
13630x30 0xd5 0x7f 0x1e
13640x7f 0xc4 0x60 0x1e
13650xf7 0x17 0x65 0x1e
1366
1367#-------------------------------------------------------------------------------
1368# Floating-point conditional compare
1369#-------------------------------------------------------------------------------
1370
1371# CHECK: fcsel s3, s20, s9, pl
1372# CHECK: fcsel d9, d10, d11, mi
13730x83 0x5e 0x29 0x1e
13740x49 0x4d 0x6b 0x1e
1375
1376#------------------------------------------------------------------------------
1377# Floating-point data-processing (1 source)
1378#------------------------------------------------------------------------------
1379
1380# CHECK: fmov     s0, s1
1381# CHECK: fabs     s2, s3
1382# CHECK: fneg     s4, s5
1383# CHECK: fsqrt    s6, s7
1384# CHECK: fcvt     d8, s9
1385# CHECK: fcvt     h10, s11
1386# CHECK: frintn   s12, s13
1387# CHECK: frintp   s14, s15
1388# CHECK: frintm   s16, s17
1389# CHECK: frintz   s18, s19
1390# CHECK: frinta   s20, s21
1391# CHECK: frintx   s22, s23
1392# CHECK: frinti   s24, s25
13930x20 0x40 0x20 0x1e
13940x62 0xc0 0x20 0x1e
13950xa4 0x40 0x21 0x1e
13960xe6 0xc0 0x21 0x1e
13970x28 0xc1 0x22 0x1e
13980x6a 0xc1 0x23 0x1e
13990xac 0x41 0x24 0x1e
14000xee 0xc1 0x24 0x1e
14010x30 0x42 0x25 0x1e
14020x72 0xc2 0x25 0x1e
14030xb4 0x42 0x26 0x1e
14040xf6 0x42 0x27 0x1e
14050x38 0xc3 0x27 0x1e
1406
1407# CHECK: fmov     d0, d1
1408# CHECK: fabs     d2, d3
1409# CHECK: fneg     d4, d5
1410# CHECK: fsqrt    d6, d7
1411# CHECK: fcvt     s8, d9
1412# CHECK: fcvt     h10, d11
1413# CHECK: frintn   d12, d13
1414# CHECK: frintp   d14, d15
1415# CHECK: frintm   d16, d17
1416# CHECK: frintz   d18, d19
1417# CHECK: frinta   d20, d21
1418# CHECK: frintx   d22, d23
1419# CHECK: frinti   d24, d25
14200x20 0x40 0x60 0x1e
14210x62 0xc0 0x60 0x1e
14220xa4 0x40 0x61 0x1e
14230xe6 0xc0 0x61 0x1e
14240x28 0x41 0x62 0x1e
14250x6a 0xc1 0x63 0x1e
14260xac 0x41 0x64 0x1e
14270xee 0xc1 0x64 0x1e
14280x30 0x42 0x65 0x1e
14290x72 0xc2 0x65 0x1e
14300xb4 0x42 0x66 0x1e
14310xf6 0x42 0x67 0x1e
14320x38 0xc3 0x67 0x1e
1433
1434# CHECK: fcvt     s26, h27
1435# CHECK: fcvt     d28, h29
14360x7a 0x43 0xe2 0x1e
14370xbc 0xc3 0xe2 0x1e
1438
1439#------------------------------------------------------------------------------
1440# Floating-point data-processing (2 sources)
1441#------------------------------------------------------------------------------
1442
1443# CHECK: fmul     s20, s19, s17
1444# CHECK: fdiv     s1, s2, s3
1445# CHECK: fadd     s4, s5, s6
1446# CHECK: fsub     s7, s8, s9
1447# CHECK: fmax     s10, s11, s12
1448# CHECK: fmin     s13, s14, s15
1449# CHECK: fmaxnm   s16, s17, s18
1450# CHECK: fminnm   s19, s20, s21
1451# CHECK: fnmul    s22, s23, s2
14520x74 0xa 0x31 0x1e
14530x41 0x18 0x23 0x1e
14540xa4 0x28 0x26 0x1e
14550x7 0x39 0x29 0x1e
14560x6a 0x49 0x2c 0x1e
14570xcd 0x59 0x2f 0x1e
14580x30 0x6a 0x32 0x1e
14590x93 0x7a 0x35 0x1e
14600xf6 0x8a 0x38 0x1e
1461
1462
1463# CHECK: fmul     d20, d19, d17
1464# CHECK: fdiv     d1, d2, d3
1465# CHECK: fadd     d4, d5, d6
1466# CHECK: fsub     d7, d8, d9
1467# CHECK: fmax     d10, d11, d12
1468# CHECK: fmin     d13, d14, d15
1469# CHECK: fmaxnm   d16, d17, d18
1470# CHECK: fminnm   d19, d20, d21
1471# CHECK: fnmul    d22, d23, d24
14720x74 0xa 0x71 0x1e
14730x41 0x18 0x63 0x1e
14740xa4 0x28 0x66 0x1e
14750x7 0x39 0x69 0x1e
14760x6a 0x49 0x6c 0x1e
14770xcd 0x59 0x6f 0x1e
14780x30 0x6a 0x72 0x1e
14790x93 0x7a 0x75 0x1e
14800xf6 0x8a 0x78 0x1e
1481
1482#------------------------------------------------------------------------------
1483# Floating-point data-processing (1 source)
1484#------------------------------------------------------------------------------
1485
1486# CHECK: fmadd s3, s5, s6, s31
1487# CHECK: fmadd d3, d13, d0, d23
1488# CHECK: fmsub s3, s5, s6, s31
1489# CHECK: fmsub d3, d13, d0, d23
1490# CHECK: fnmadd s3, s5, s6, s31
1491# CHECK: fnmadd d3, d13, d0, d23
1492# CHECK: fnmsub s3, s5, s6, s31
1493# CHECK: fnmsub d3, d13, d0, d23
14940xa3 0x7c 0x06 0x1f
14950xa3 0x5d 0x40 0x1f
14960xa3 0xfc 0x06 0x1f
14970xa3 0xdd 0x40 0x1f
14980xa3 0x7c 0x26 0x1f
14990xa3 0x5d 0x60 0x1f
15000xa3 0xfc 0x26 0x1f
15010xa3 0xdd 0x60 0x1f
1502
1503#------------------------------------------------------------------------------
1504# Floating-point <-> fixed-point conversion
1505#------------------------------------------------------------------------------
1506
1507# FP16: fcvtzs  w3, h5, #1
1508# FP16: fcvtzs  wzr, h20, #13
1509# FP16: fcvtzs  w19, h0, #32
15100xa3 0xfc 0xd8 0x1e
15110x9f 0xce 0xd8 0x1e
15120x13 0x80 0xd8 0x1e
1513
1514# FP16: fcvtzs  x3, h5, #1
1515# FP16: fcvtzs  x12, h30, #45
1516# FP16: fcvtzs  x19, h0, #64
15170xa3 0xfc 0xd8 0x9e
15180xcc 0x4f 0xd8 0x9e
15190x13 0x00 0xd8 0x9e
1520
1521# CHECK: fcvtzs  w3, s5, #1
1522# CHECK: fcvtzs  wzr, s20, #13
1523# CHECK: fcvtzs  w19, s0, #32
15240xa3 0xfc 0x18 0x1e
15250x9f 0xce 0x18 0x1e
15260x13 0x80 0x18 0x1e
1527
1528# CHECK: fcvtzs  x3, s5, #1
1529# CHECK: fcvtzs  x12, s30, #45
1530# CHECK: fcvtzs  x19, s0, #64
15310xa3 0xfc 0x18 0x9e
15320xcc 0x4f 0x18 0x9e
15330x13 0x00 0x18 0x9e
1534
1535# CHECK: fcvtzs  w3, d5, #1
1536# CHECK: fcvtzs  wzr, d20, #13
1537# CHECK: fcvtzs  w19, d0, #32
15380xa3 0xfc 0x58 0x1e
15390x9f 0xce 0x58 0x1e
15400x13 0x80 0x58 0x1e
1541
1542# CHECK: fcvtzs  x3, d5, #1
1543# CHECK: fcvtzs  x12, d30, #45
1544# CHECK: fcvtzs  x19, d0, #64
15450xa3 0xfc 0x58 0x9e
15460xcc 0x4f 0x58 0x9e
15470x13 0x00 0x58 0x9e
1548
1549# FP16: fcvtzu  w3, h5, #1
1550# FP16: fcvtzu  wzr, h20, #13
1551# FP16: fcvtzu  w19, h0, #32
15520xa3 0xfc 0xd9 0x1e
15530x9f 0xce 0xd9 0x1e
15540x13 0x80 0xd9 0x1e
1555
1556# FP16: fcvtzu  x3, h5, #1
1557# FP16: fcvtzu  x12, h30, #45
1558# FP16: fcvtzu  x19, h0, #64
15590xa3 0xfc 0xd9 0x9e
15600xcc 0x4f 0xd9 0x9e
15610x13 0x00 0xd9 0x9e
1562
1563# CHECK: fcvtzu  w3, s5, #1
1564# CHECK: fcvtzu  wzr, s20, #13
1565# CHECK: fcvtzu  w19, s0, #32
15660xa3 0xfc 0x19 0x1e
15670x9f 0xce 0x19 0x1e
15680x13 0x80 0x19 0x1e
1569
1570# CHECK: fcvtzu  x3, s5, #1
1571# CHECK: fcvtzu  x12, s30, #45
1572# CHECK: fcvtzu  x19, s0, #64
15730xa3 0xfc 0x19 0x9e
15740xcc 0x4f 0x19 0x9e
15750x13 0x00 0x19 0x9e
1576
1577# CHECK: fcvtzu  w3, d5, #1
1578# CHECK: fcvtzu  wzr, d20, #13
1579# CHECK: fcvtzu  w19, d0, #32
15800xa3 0xfc 0x59 0x1e
15810x9f 0xce 0x59 0x1e
15820x13 0x80 0x59 0x1e
1583
1584# CHECK: fcvtzu  x3, d5, #1
1585# CHECK: fcvtzu  x12, d30, #45
1586# CHECK: fcvtzu  x19, d0, #64
15870xa3 0xfc 0x59 0x9e
15880xcc 0x4f 0x59 0x9e
15890x13 0x00 0x59 0x9e
1590
1591# FP16: scvtf   h23, w19, #1
1592# FP16: scvtf   h31, wzr, #20
1593# FP16: scvtf   h14, w0, #32
15940x77 0xfe 0xc2 0x1e
15950xff 0xb3 0xc2 0x1e
15960x0e 0x80 0xc2 0x1e
1597
1598# FP16: scvtf   h23, x19, #1
1599# FP16: scvtf   h31, xzr, #20
1600# FP16: scvtf   h14, x0, #64
16010x77 0xfe 0xc2 0x9e
16020xff 0xb3 0xc2 0x9e
16030x0e 0x00 0xc2 0x9e
1604
1605# CHECK: scvtf   s23, w19, #1
1606# CHECK: scvtf   s31, wzr, #20
1607# CHECK: scvtf   s14, w0, #32
16080x77 0xfe 0x02 0x1e
16090xff 0xb3 0x02 0x1e
16100x0e 0x80 0x02 0x1e
1611
1612# CHECK: scvtf   s23, x19, #1
1613# CHECK: scvtf   s31, xzr, #20
1614# CHECK: scvtf   s14, x0, #64
16150x77 0xfe 0x02 0x9e
16160xff 0xb3 0x02 0x9e
16170x0e 0x00 0x02 0x9e
1618
1619# CHECK: scvtf   d23, w19, #1
1620# CHECK: scvtf   d31, wzr, #20
1621# CHECK: scvtf   d14, w0, #32
16220x77 0xfe 0x42 0x1e
16230xff 0xb3 0x42 0x1e
16240x0e 0x80 0x42 0x1e
1625
1626# CHECK: scvtf   d23, x19, #1
1627# CHECK: scvtf   d31, xzr, #20
1628# CHECK: scvtf   d14, x0, #64
16290x77 0xfe 0x42 0x9e
16300xff 0xb3 0x42 0x9e
16310x0e 0x00 0x42 0x9e
1632
1633# FP16: ucvtf   h23, w19, #1
1634# FP16: ucvtf   h31, wzr, #20
1635# FP16: ucvtf   h14, w0, #32
16360x77 0xfe 0xc3 0x1e
16370xff 0xb3 0xc3 0x1e
16380x0e 0x80 0xc3 0x1e
1639
1640# FP16: ucvtf   h23, x19, #1
1641# FP16: ucvtf   h31, xzr, #20
1642# FP16: ucvtf   h14, x0, #64
16430x77 0xfe 0xc3 0x9e
16440xff 0xb3 0xc3 0x9e
16450x0e 0x00 0xc3 0x9e
1646
1647# CHECK: ucvtf   s23, w19, #1
1648# CHECK: ucvtf   s31, wzr, #20
1649# CHECK: ucvtf   s14, w0, #32
16500x77 0xfe 0x03 0x1e
16510xff 0xb3 0x03 0x1e
16520x0e 0x80 0x03 0x1e
1653
1654# CHECK: ucvtf   s23, x19, #1
1655# CHECK: ucvtf   s31, xzr, #20
1656# CHECK: ucvtf   s14, x0, #64
16570x77 0xfe 0x03 0x9e
16580xff 0xb3 0x03 0x9e
16590x0e 0x00 0x03 0x9e
1660
1661# CHECK: ucvtf   d23, w19, #1
1662# CHECK: ucvtf   d31, wzr, #20
1663# CHECK: ucvtf   d14, w0, #32
16640x77 0xfe 0x43 0x1e
16650xff 0xb3 0x43 0x1e
16660x0e 0x80 0x43 0x1e
1667
1668# CHECK: ucvtf   d23, x19, #1
1669# CHECK: ucvtf   d31, xzr, #20
1670# CHECK: ucvtf   d14, x0, #64
16710x77 0xfe 0x43 0x9e
16720xff 0xb3 0x43 0x9e
16730x0e 0x00 0x43 0x9e
1674
1675#------------------------------------------------------------------------------
1676# Floating-point <-> integer conversion
1677#------------------------------------------------------------------------------
1678
1679# FP16: fcvtns   w3, h31
1680# FP16: fcvtns   xzr, h12
1681# FP16: fcvtnu   wzr, h12
1682# FP16: fcvtnu   x0, h0
16830xe3 0x3 0xe0 0x1e
16840x9f 0x1 0xe0 0x9e
16850x9f 0x1 0xe1 0x1e
16860x0 0x0 0xe1 0x9e
1687
1688# FP16: fcvtps   wzr, h9
1689# FP16: fcvtps   x12, h20
1690# FP16: fcvtpu   w30, h23
1691# FP16: fcvtpu   x29, h3
16920x3f 0x1 0xe8 0x1e
16930x8c 0x2 0xe8 0x9e
16940xfe 0x2 0xe9 0x1e
16950x7d 0x0 0xe9 0x9e
1696
1697# FP16: fcvtms   w2, h3
1698# FP16: fcvtms   x4, h5
1699# FP16: fcvtmu   w6, h7
1700# FP16: fcvtmu   x8, h9
17010x62 0x0 0xf0 0x1e
17020xa4 0x0 0xf0 0x9e
17030xe6 0x0 0xf1 0x1e
17040x28 0x1 0xf1 0x9e
1705
1706# FP16: fcvtzs   w10, h11
1707# FP16: fcvtzs   x12, h13
1708# FP16: fcvtzu   w14, h15
1709# FP16: fcvtzu   x15, h16
17100x6a 0x1 0xf8 0x1e
17110xac 0x1 0xf8 0x9e
17120xee 0x1 0xf9 0x1e
17130xf 0x2 0xf9 0x9e
1714
1715# FP16: scvtf    h17, w18
1716# FP16: scvtf    h19, x20
1717# FP16: ucvtf    h21, w22
1718# FP16: scvtf    h23, x24
17190x51 0x2 0xe2 0x1e
17200x93 0x2 0xe2 0x9e
17210xd5 0x2 0xe3 0x1e
17220x17 0x3 0xe2 0x9e
1723
1724# FP16: fcvtas   w25, h26
1725# FP16: fcvtas   x27, h28
1726# FP16: fcvtau   w29, h30
1727# FP16: fcvtau   xzr, h0
17280x59 0x3 0xe4 0x1e
17290x9b 0x3 0xe4 0x9e
17300xdd 0x3 0xe5 0x1e
17310x1f 0x0 0xe5 0x9e
1732
1733# CHECK: fcvtns   w3, s31
1734# CHECK: fcvtns   xzr, s12
1735# CHECK: fcvtnu   wzr, s12
1736# CHECK: fcvtnu   x0, s0
17370xe3 0x3 0x20 0x1e
17380x9f 0x1 0x20 0x9e
17390x9f 0x1 0x21 0x1e
17400x0 0x0 0x21 0x9e
1741
1742# CHECK: fcvtps   wzr, s9
1743# CHECK: fcvtps   x12, s20
1744# CHECK: fcvtpu   w30, s23
1745# CHECK: fcvtpu   x29, s3
17460x3f 0x1 0x28 0x1e
17470x8c 0x2 0x28 0x9e
17480xfe 0x2 0x29 0x1e
17490x7d 0x0 0x29 0x9e
1750
1751# CHECK: fcvtms   w2, s3
1752# CHECK: fcvtms   x4, s5
1753# CHECK: fcvtmu   w6, s7
1754# CHECK: fcvtmu   x8, s9
17550x62 0x0 0x30 0x1e
17560xa4 0x0 0x30 0x9e
17570xe6 0x0 0x31 0x1e
17580x28 0x1 0x31 0x9e
1759
1760# CHECK: fcvtzs   w10, s11
1761# CHECK: fcvtzs   x12, s13
1762# CHECK: fcvtzu   w14, s15
1763# CHECK: fcvtzu   x15, s16
17640x6a 0x1 0x38 0x1e
17650xac 0x1 0x38 0x9e
17660xee 0x1 0x39 0x1e
17670xf 0x2 0x39 0x9e
1768
1769# CHECK: scvtf    s17, w18
1770# CHECK: scvtf    s19, x20
1771# CHECK: ucvtf    s21, w22
1772# CHECK: scvtf    s23, x24
17730x51 0x2 0x22 0x1e
17740x93 0x2 0x22 0x9e
17750xd5 0x2 0x23 0x1e
17760x17 0x3 0x22 0x9e
1777
1778# CHECK: fcvtas   w25, s26
1779# CHECK: fcvtas   x27, s28
1780# CHECK: fcvtau   w29, s30
1781# CHECK: fcvtau   xzr, s0
17820x59 0x3 0x24 0x1e
17830x9b 0x3 0x24 0x9e
17840xdd 0x3 0x25 0x1e
17850x1f 0x0 0x25 0x9e
1786
1787# CHECK: fcvtns   w3, d31
1788# CHECK: fcvtns   xzr, d12
1789# CHECK: fcvtnu   wzr, d12
1790# CHECK: fcvtnu   x0, d0
17910xe3 0x3 0x60 0x1e
17920x9f 0x1 0x60 0x9e
17930x9f 0x1 0x61 0x1e
17940x0 0x0 0x61 0x9e
1795
1796# CHECK: fcvtps   wzr, d9
1797# CHECK: fcvtps   x12, d20
1798# CHECK: fcvtpu   w30, d23
1799# CHECK: fcvtpu   x29, d3
18000x3f 0x1 0x68 0x1e
18010x8c 0x2 0x68 0x9e
18020xfe 0x2 0x69 0x1e
18030x7d 0x0 0x69 0x9e
1804
1805# CHECK: fcvtms   w2, d3
1806# CHECK: fcvtms   x4, d5
1807# CHECK: fcvtmu   w6, d7
1808# CHECK: fcvtmu   x8, d9
18090x62 0x0 0x70 0x1e
18100xa4 0x0 0x70 0x9e
18110xe6 0x0 0x71 0x1e
18120x28 0x1 0x71 0x9e
1813
1814# CHECK: fcvtzs   w10, d11
1815# CHECK: fcvtzs   x12, d13
1816# CHECK: fcvtzu   w14, d15
1817# CHECK: fcvtzu   x15, d16
18180x6a 0x1 0x78 0x1e
18190xac 0x1 0x78 0x9e
18200xee 0x1 0x79 0x1e
18210xf 0x2 0x79 0x9e
1822
1823# CHECK: scvtf    d17, w18
1824# CHECK: scvtf    d19, x20
1825# CHECK: ucvtf    d21, w22
1826# CHECK: ucvtf    d23, x24
18270x51 0x2 0x62 0x1e
18280x93 0x2 0x62 0x9e
18290xd5 0x2 0x63 0x1e
18300x17 0x3 0x63 0x9e
1831
1832# CHECK: fcvtas   w25, d26
1833# CHECK: fcvtas   x27, d28
1834# CHECK: fcvtau   w29, d30
1835# CHECK: fcvtau   xzr, d0
18360x59 0x3 0x64 0x1e
18370x9b 0x3 0x64 0x9e
18380xdd 0x3 0x65 0x1e
18390x1f 0x0 0x65 0x9e
1840
1841# CHECK: fmov     w3, s9
1842# CHECK: fmov     s9, w3
18430x23 0x1 0x26 0x1e
18440x69 0x0 0x27 0x1e
1845
1846# CHECK: fmov     x20, d31
1847# CHECK: fmov     d1, x15
18480xf4 0x3 0x66 0x9e
18490xe1 0x1 0x67 0x9e
1850
1851# CHECK: fmov     x3, v12.d[1]
1852# CHECK: fmov     v1.d[1], x19
18530x83 0x1 0xae 0x9e
18540x61 0x2 0xaf 0x9e
1855
1856#------------------------------------------------------------------------------
1857# Floating-point immediate
1858#------------------------------------------------------------------------------
1859
1860# CHECK: fmov     s2, #0.12500000
1861# CHECK: fmov     s3, #1.00000000
1862# CHECK: fmov     d30, #16.00000000
18630x2 0x10 0x28 0x1e
18640x3 0x10 0x2e 0x1e
18650x1e 0x10 0x66 0x1e
1866
1867# CHECK: fmov     s4, #1.06250000
1868# CHECK: fmov     d10, #1.93750000
18690x4 0x30 0x2e 0x1e
18700xa 0xf0 0x6f 0x1e
1871
1872# CHECK: fmov     s12, #-1.00000000
18730xc 0x10 0x3e 0x1e
1874
1875# CHECK: fmov     d16, #8.50000000
18760x10 0x30 0x64 0x1e
1877
1878#------------------------------------------------------------------------------
1879# Load-register (literal)
1880#------------------------------------------------------------------------------
1881
1882# CHECK: ldr       w3, #0
1883# CHECK: ldr       x29, #4
1884# CHECK: ldrsw     xzr, #-4
18850x03 0x00 0x00 0x18
18860x3d 0x00 0x00 0x58
18870xff 0xff 0xff 0x98
1888
1889# CHECK: ldr       s0, #8
1890# CHECK: ldr       d0, #1048572
1891# CHECK: ldr       q0, #-1048576
18920x40 0x00 0x00 0x1c
18930xe0 0xff 0x7f 0x5c
18940x00 0x00 0x80 0x9c
1895
1896# CHECK: prfm      pldl1strm, #0
1897# CHECK: prfm      #22, #0
18980x01 0x00 0x00 0xd8
18990x16 0x00 0x00 0xd8
1900
1901#------------------------------------------------------------------------------
1902# Load/store exclusive
1903#------------------------------------------------------------------------------
1904
1905#CHECK: stxrb      w18, w8, [sp]
1906#CHECK: stxrh      w24, w15, [x16]
1907#CHECK: stxr       w5, w6, [x17]
1908#CHECK: stxr       w1, x10, [x21]
1909#CHECK: stxr       w1, x10, [x21]
19100xe8 0x7f 0x12 0x08
19110x0f 0x7e 0x18 0x48
19120x26 0x7e 0x05 0x88
19130xaa 0x7e 0x01 0xc8
19140xaa 0x7a 0x01 0xc8
1915
1916#CHECK: ldxrb      w30, [x0]
1917#CHECK: ldxrh      w17, [x4]
1918#CHECK: ldxr       w22, [sp]
1919#CHECK: ldxr       x11, [x29]
1920#CHECK: ldxr       x11, [x29]
1921#CHECK: ldxr       x11, [x29]
19220x1e 0x7c 0x5f 0x08
19230x91 0x7c 0x5f 0x48
19240xf6 0x7f 0x5f 0x88
19250xab 0x7f 0x5f 0xc8
19260xab 0x6f 0x5f 0xc8
19270xab 0x7f 0x5e 0xc8
1928
1929#CHECK: stxp       w12, w11, w10, [sp]
1930#CHECK: stxp       wzr, x27, x9, [x12]
19310xeb 0x2b 0x2c 0x88
19320x9b 0x25 0x3f 0xc8
1933
1934#CHECK: ldxp       w0, wzr, [sp]
1935#CHECK: ldxp       x17, x0, [x18]
1936#CHECK: ldxp       x17, x0, [x18]
19370xe0 0x7f 0x7f 0x88
19380x51 0x02 0x7f 0xc8
19390x51 0x02 0x7e 0xc8
1940
1941#CHECK: stlxrb     w12, w22, [x0]
1942#CHECK: stlxrh     w10, w1, [x1]
1943#CHECK: stlxr      w9, w2, [x2]
1944#CHECK: stlxr      w9, x3, [sp]
1945
19460x16 0xfc 0x0c 0x08
19470x21 0xfc 0x0a 0x48
19480x42 0xfc 0x09 0x88
19490xe3 0xff 0x09 0xc8
1950
1951#CHECK: ldaxrb     w8, [x4]
1952#CHECK: ldaxrh     w7, [x5]
1953#CHECK: ldaxr      w6, [sp]
1954#CHECK: ldaxr      x5, [x6]
1955#CHECK: ldaxr      x5, [x6]
1956#CHECK: ldaxr      x5, [x6]
19570x88 0xfc 0x5f 0x08
19580xa7 0xfc 0x5f 0x48
19590xe6 0xff 0x5f 0x88
19600xc5 0xfc 0x5f 0xc8
19610xc5 0xec 0x5f 0xc8
19620xc5 0xfc 0x5e 0xc8
1963
1964#CHECK: stlxp      w4, w5, w6, [sp]
1965#CHECK: stlxp      wzr, x6, x7, [x1]
19660xe5 0x9b 0x24 0x88
19670x26 0x9c 0x3f 0xc8
1968
1969#CHECK: ldaxp      w5, w18, [sp]
1970#CHECK: ldaxp      x6, x19, [x22]
1971#CHECK: ldaxp      x6, x19, [x22]
19720xe5 0xcb 0x7f 0x88
19730xc6 0xce 0x7f 0xc8
19740xc6 0xce 0x7e 0xc8
1975
1976#CHECK: stlrb      w24, [sp]
1977#CHECK: stlrh      w25, [x30]
1978#CHECK: stlr       w26, [x29]
1979#CHECK: stlr       x27, [x28]
1980#CHECK: stlr       x27, [x28]
1981#CHECK: stlr       x27, [x28]
19820xf8 0xff 0x9f 0x08
19830xd9 0xff 0x9f 0x48
19840xba 0xff 0x9f 0x88
19850x9b 0xff 0x9f 0xc8
19860x9b 0xef 0x9f 0xc8
19870x9b 0xff 0x9e 0xc8
1988
1989#CHECK: ldarb      w23, [sp]
1990#CHECK: ldarh      w22, [x30]
1991#CHECK: ldar       wzr, [x29]
1992#CHECK: ldar       x21, [x28]
1993#CHECK: ldar       x21, [x28]
1994#CHECK: ldar       x21, [x28]
19950xf7 0xff 0xdf 0x08
19960xd6 0xff 0xdf 0x48
19970xbf 0xff 0xdf 0x88
19980x95 0xff 0xdf 0xc8
19990x95 0xef 0xdf 0xc8
20000x95 0xff 0xde 0xc8
2001
2002#------------------------------------------------------------------------------
2003# Load/store (unscaled  immediate)
2004#------------------------------------------------------------------------------
2005
2006# CHECK: sturb    w9, [sp]
2007# CHECK: sturh    wzr, [x12, #255]
2008# CHECK: stur     w16, [x0, #-256]
2009# CHECK: stur     x28, [x14, #1]
20100xe9 0x3 0x0 0x38
20110x9f 0xf1 0xf 0x78
20120x10 0x0 0x10 0xb8
20130xdc 0x11 0x0 0xf8
2014
2015# CHECK: ldurb    w1, [x20, #255]
2016# CHECK: ldurh    w20, [x1, #255]
2017# CHECK: ldur     w12, [sp, #255]
2018# CHECK: ldur     xzr, [x12, #255]
20190x81 0xf2 0x4f 0x38
20200x34 0xf0 0x4f 0x78
20210xec 0xf3 0x4f 0xb8
20220x9f 0xf1 0x4f 0xf8
2023
2024# CHECK: ldursb   x9, [x7, #-256]
2025# CHECK: ldursh   x17, [x19, #-256]
2026# CHECK: ldursw   x20, [x15, #-256]
2027# CHECK: prfum    pldl2keep, [sp, #-256]
2028# CHECK: ldursb   w19, [x1, #-256]
2029# CHECK: ldursh   w15, [x21, #-256]
20300xe9 0x0 0x90 0x38
20310x71 0x2 0x90 0x78
20320xf4 0x1 0x90 0xb8
20330xe2 0x3 0x90 0xf8
20340x33 0x0 0xd0 0x38
20350xaf 0x2 0xd0 0x78
2036
2037# CHECK: stur     b0, [sp, #1]
2038# CHECK: stur     h12, [x12, #-1]
2039# CHECK: stur     s15, [x0, #255]
2040# CHECK: stur     d31, [x5, #25]
2041# CHECK: stur     q9, [x5]
20420xe0 0x13 0x0 0x3c
20430x8c 0xf1 0x1f 0x7c
20440xf 0xf0 0xf 0xbc
20450xbf 0x90 0x1 0xfc
20460xa9 0x0 0x80 0x3c
2047
2048# CHECK: ldur     b3, [sp]
2049# CHECK: ldur     h5, [x4, #-256]
2050# CHECK: ldur     s7, [x12, #-1]
2051# CHECK: ldur     d11, [x19, #4]
2052# CHECK: ldur     q13, [x1, #2]
20530xe3 0x3 0x40 0x3c
20540x85 0x0 0x50 0x7c
20550x87 0xf1 0x5f 0xbc
20560x6b 0x42 0x40 0xfc
20570x2d 0x20 0xc0 0x3c
2058
2059#------------------------------------------------------------------------------
2060# Load/store (immediate post-indexed)
2061#------------------------------------------------------------------------------
2062
2063# E.g. "str xzr, [sp], #4" is *not* unpredictable
2064# CHECK-NOT: warning: potentially undefined instruction encoding
20650xff 0x47 0x40 0xb8
2066
2067# CHECK: strb     w9, [x2], #255
2068# CHECK: strb     w10, [x3], #1
2069# CHECK: strb     w10, [x3], #-256
2070# CHECK: strh     w9, [x2], #255
2071# CHECK: strh     w9, [x2], #1
2072# CHECK: strh     w10, [x3], #-256
20730x49 0xf4 0xf 0x38
20740x6a 0x14 0x0 0x38
20750x6a 0x4 0x10 0x38
20760x49 0xf4 0xf 0x78
20770x49 0x14 0x0 0x78
20780x6a 0x4 0x10 0x78
2079
2080# CHECK: str      w19, [sp], #255
2081# CHECK: str      w20, [x30], #1
2082# CHECK: str      w21, [x12], #-256
2083# CHECK: str      xzr, [x9], #255
2084# CHECK: str      x2, [x3], #1
2085# CHECK: str      x19, [x12], #-256
20860xf3 0xf7 0xf 0xb8
20870xd4 0x17 0x0 0xb8
20880x95 0x5 0x10 0xb8
20890x3f 0xf5 0xf 0xf8
20900x62 0x14 0x0 0xf8
20910x93 0x5 0x10 0xf8
2092
2093# CHECK: ldrb     w9, [x2], #255
2094# CHECK: ldrb     w10, [x3], #1
2095# CHECK: ldrb     w10, [x3], #-256
2096# CHECK: ldrh     w9, [x2], #255
2097# CHECK: ldrh     w9, [x2], #1
2098# CHECK: ldrh     w10, [x3], #-256
20990x49 0xf4 0x4f 0x38
21000x6a 0x14 0x40 0x38
21010x6a 0x4 0x50 0x38
21020x49 0xf4 0x4f 0x78
21030x49 0x14 0x40 0x78
21040x6a 0x4 0x50 0x78
2105
2106# CHECK: ldr      w19, [sp], #255
2107# CHECK: ldr      w20, [x30], #1
2108# CHECK: ldr      w21, [x12], #-256
2109# CHECK: ldr      xzr, [x9], #255
2110# CHECK: ldr      x2, [x3], #1
2111# CHECK: ldr      x19, [x12], #-256
21120xf3 0xf7 0x4f 0xb8
21130xd4 0x17 0x40 0xb8
21140x95 0x5 0x50 0xb8
21150x3f 0xf5 0x4f 0xf8
21160x62 0x14 0x40 0xf8
21170x93 0x5 0x50 0xf8
2118
2119# CHECK: ldrsb    xzr, [x9], #255
2120# CHECK: ldrsb    x2, [x3], #1
2121# CHECK: ldrsb    x19, [x12], #-256
2122# CHECK: ldrsh    xzr, [x9], #255
2123# CHECK: ldrsh    x2, [x3], #1
2124# CHECK: ldrsh    x19, [x12], #-256
2125# CHECK: ldrsw    xzr, [x9], #255
2126# CHECK: ldrsw    x2, [x3], #1
2127# CHECK: ldrsw    x19, [x12], #-256
21280x3f 0xf5 0x8f 0x38
21290x62 0x14 0x80 0x38
21300x93 0x5 0x90 0x38
21310x3f 0xf5 0x8f 0x78
21320x62 0x14 0x80 0x78
21330x93 0x5 0x90 0x78
21340x3f 0xf5 0x8f 0xb8
21350x62 0x14 0x80 0xb8
21360x93 0x5 0x90 0xb8
2137
2138# CHECK: ldrsb    wzr, [x9], #255
2139# CHECK: ldrsb    w2, [x3], #1
2140# CHECK: ldrsb    w19, [x12], #-256
2141# CHECK: ldrsh    wzr, [x9], #255
2142# CHECK: ldrsh    w2, [x3], #1
2143# CHECK: ldrsh    w19, [x12], #-256
21440x3f 0xf5 0xcf 0x38
21450x62 0x14 0xc0 0x38
21460x93 0x5 0xd0 0x38
21470x3f 0xf5 0xcf 0x78
21480x62 0x14 0xc0 0x78
21490x93 0x5 0xd0 0x78
2150
2151# CHECK: str      b0, [x0], #255
2152# CHECK: str      b3, [x3], #1
2153# CHECK: str      b5, [sp], #-256
2154# CHECK: str      h10, [x10], #255
2155# CHECK: str      h13, [x23], #1
2156# CHECK: str      h15, [sp], #-256
2157# CHECK: str      s20, [x20], #255
2158# CHECK: str      s23, [x23], #1
2159# CHECK: str      s25, [x0], #-256
2160# CHECK: str      d20, [x20], #255
2161# CHECK: str      d23, [x23], #1
2162# CHECK: str      d25, [x0], #-256
21630x0 0xf4 0xf 0x3c
21640x63 0x14 0x0 0x3c
21650xe5 0x7 0x10 0x3c
21660x4a 0xf5 0xf 0x7c
21670xed 0x16 0x0 0x7c
21680xef 0x7 0x10 0x7c
21690x94 0xf6 0xf 0xbc
21700xf7 0x16 0x0 0xbc
21710x19 0x4 0x10 0xbc
21720x94 0xf6 0xf 0xfc
21730xf7 0x16 0x0 0xfc
21740x19 0x4 0x10 0xfc
2175
2176# CHECK: ldr      b0, [x0], #255
2177# CHECK: ldr      b3, [x3], #1
2178# CHECK: ldr      b5, [sp], #-256
2179# CHECK: ldr      h10, [x10], #255
2180# CHECK: ldr      h13, [x23], #1
2181# CHECK: ldr      h15, [sp], #-256
2182# CHECK: ldr      s20, [x20], #255
2183# CHECK: ldr      s23, [x23], #1
2184# CHECK: ldr      s25, [x0], #-256
2185# CHECK: ldr      d20, [x20], #255
2186# CHECK: ldr      d23, [x23], #1
2187# CHECK: ldr      d25, [x0], #-256
21880x0 0xf4 0x4f 0x3c
21890x63 0x14 0x40 0x3c
21900xe5 0x7 0x50 0x3c
21910x4a 0xf5 0x4f 0x7c
21920xed 0x16 0x40 0x7c
21930xef 0x7 0x50 0x7c
21940x94 0xf6 0x4f 0xbc
21950xf7 0x16 0x40 0xbc
21960x19 0x4 0x50 0xbc
21970x94 0xf6 0x4f 0xfc
21980xf7 0x16 0x40 0xfc
21990x19 0x4 0x50 0xfc
22000x34 0xf4 0xcf 0x3c
2201
2202# CHECK: ldr      q20, [x1], #255
2203# CHECK: ldr      q23, [x9], #1
2204# CHECK: ldr      q25, [x20], #-256
2205# CHECK: str      q10, [x1], #255
2206# CHECK: str      q22, [sp], #1
2207# CHECK: str      q21, [x20], #-256
22080x37 0x15 0xc0 0x3c
22090x99 0x6 0xd0 0x3c
22100x2a 0xf4 0x8f 0x3c
22110xf6 0x17 0x80 0x3c
22120x95 0x6 0x90 0x3c
2213
2214#-------------------------------------------------------------------------------
2215# Load-store register (immediate pre-indexed)
2216#-------------------------------------------------------------------------------
2217
2218# E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2219# CHECK-NOT: warning: potentially undefined instruction encoding
22200xff 0xf 0x40 0xf8
2221
2222# CHECK: ldr      x3, [x4, #0]!
22230x83 0xc 0x40 0xf8
2224
2225# CHECK: strb     w9, [x2, #255]!
2226# CHECK: strb     w10, [x3, #1]!
2227# CHECK: strb     w10, [x3, #-256]!
2228# CHECK: strh     w9, [x2, #255]!
2229# CHECK: strh     w9, [x2, #1]!
2230# CHECK: strh     w10, [x3, #-256]!
22310x49 0xfc 0xf 0x38
22320x6a 0x1c 0x0 0x38
22330x6a 0xc 0x10 0x38
22340x49 0xfc 0xf 0x78
22350x49 0x1c 0x0 0x78
22360x6a 0xc 0x10 0x78
2237
2238# CHECK: str      w19, [sp, #255]!
2239# CHECK: str      w20, [x30, #1]!
2240# CHECK: str      w21, [x12, #-256]!
2241# CHECK: str      xzr, [x9, #255]!
2242# CHECK: str      x2, [x3, #1]!
2243# CHECK: str      x19, [x12, #-256]!
22440xf3 0xff 0xf 0xb8
22450xd4 0x1f 0x0 0xb8
22460x95 0xd 0x10 0xb8
22470x3f 0xfd 0xf 0xf8
22480x62 0x1c 0x0 0xf8
22490x93 0xd 0x10 0xf8
2250
2251# CHECK: ldrb     w9, [x2, #255]!
2252# CHECK: ldrb     w10, [x3, #1]!
2253# CHECK: ldrb     w10, [x3, #-256]!
2254# CHECK: ldrh     w9, [x2, #255]!
2255# CHECK: ldrh     w9, [x2, #1]!
2256# CHECK: ldrh     w10, [x3, #-256]!
22570x49 0xfc 0x4f 0x38
22580x6a 0x1c 0x40 0x38
22590x6a 0xc 0x50 0x38
22600x49 0xfc 0x4f 0x78
22610x49 0x1c 0x40 0x78
22620x6a 0xc 0x50 0x78
2263
2264# CHECK: ldr      w19, [sp, #255]!
2265# CHECK: ldr      w20, [x30, #1]!
2266# CHECK: ldr      w21, [x12, #-256]!
2267# CHECK: ldr      xzr, [x9, #255]!
2268# CHECK: ldr      x2, [x3, #1]!
2269# CHECK: ldr      x19, [x12, #-256]!
22700xf3 0xff 0x4f 0xb8
22710xd4 0x1f 0x40 0xb8
22720x95 0xd 0x50 0xb8
22730x3f 0xfd 0x4f 0xf8
22740x62 0x1c 0x40 0xf8
22750x93 0xd 0x50 0xf8
2276
2277# CHECK: ldrsb    xzr, [x9, #255]!
2278# CHECK: ldrsb    x2, [x3, #1]!
2279# CHECK: ldrsb    x19, [x12, #-256]!
2280# CHECK: ldrsh    xzr, [x9, #255]!
2281# CHECK: ldrsh    x2, [x3, #1]!
2282# CHECK: ldrsh    x19, [x12, #-256]!
2283# CHECK: ldrsw    xzr, [x9, #255]!
2284# CHECK: ldrsw    x2, [x3, #1]!
2285# CHECK: ldrsw    x19, [x12, #-256]!
22860x3f 0xfd 0x8f 0x38
22870x62 0x1c 0x80 0x38
22880x93 0xd 0x90 0x38
22890x3f 0xfd 0x8f 0x78
22900x62 0x1c 0x80 0x78
22910x93 0xd 0x90 0x78
22920x3f 0xfd 0x8f 0xb8
22930x62 0x1c 0x80 0xb8
22940x93 0xd 0x90 0xb8
2295
2296# CHECK: ldrsb    wzr, [x9, #255]!
2297# CHECK: ldrsb    w2, [x3, #1]!
2298# CHECK: ldrsb    w19, [x12, #-256]!
2299# CHECK: ldrsh    wzr, [x9, #255]!
2300# CHECK: ldrsh    w2, [x3, #1]!
2301# CHECK: ldrsh    w19, [x12, #-256]!
23020x3f 0xfd 0xcf 0x38
23030x62 0x1c 0xc0 0x38
23040x93 0xd 0xd0 0x38
23050x3f 0xfd 0xcf 0x78
23060x62 0x1c 0xc0 0x78
23070x93 0xd 0xd0 0x78
2308
2309# CHECK: str      b0, [x0, #255]!
2310# CHECK: str      b3, [x3, #1]!
2311# CHECK: str      b5, [sp, #-256]!
2312# CHECK: str      h10, [x10, #255]!
2313# CHECK: str      h13, [x23, #1]!
2314# CHECK: str      h15, [sp, #-256]!
2315# CHECK: str      s20, [x20, #255]!
2316# CHECK: str      s23, [x23, #1]!
2317# CHECK: str      s25, [x0, #-256]!
2318# CHECK: str      d20, [x20, #255]!
2319# CHECK: str      d23, [x23, #1]!
2320# CHECK: str      d25, [x0, #-256]!
23210x0 0xfc 0xf 0x3c
23220x63 0x1c 0x0 0x3c
23230xe5 0xf 0x10 0x3c
23240x4a 0xfd 0xf 0x7c
23250xed 0x1e 0x0 0x7c
23260xef 0xf 0x10 0x7c
23270x94 0xfe 0xf 0xbc
23280xf7 0x1e 0x0 0xbc
23290x19 0xc 0x10 0xbc
23300x94 0xfe 0xf 0xfc
23310xf7 0x1e 0x0 0xfc
23320x19 0xc 0x10 0xfc
2333
2334# CHECK: ldr      b0, [x0, #255]!
2335# CHECK: ldr      b3, [x3, #1]!
2336# CHECK: ldr      b5, [sp, #-256]!
2337# CHECK: ldr      h10, [x10, #255]!
2338# CHECK: ldr      h13, [x23, #1]!
2339# CHECK: ldr      h15, [sp, #-256]!
2340# CHECK: ldr      s20, [x20, #255]!
2341# CHECK: ldr      s23, [x23, #1]!
2342# CHECK: ldr      s25, [x0, #-256]!
2343# CHECK: ldr      d20, [x20, #255]!
2344# CHECK: ldr      d23, [x23, #1]!
2345# CHECK: ldr      d25, [x0, #-256]!
23460x0 0xfc 0x4f 0x3c
23470x63 0x1c 0x40 0x3c
23480xe5 0xf 0x50 0x3c
23490x4a 0xfd 0x4f 0x7c
23500xed 0x1e 0x40 0x7c
23510xef 0xf 0x50 0x7c
23520x94 0xfe 0x4f 0xbc
23530xf7 0x1e 0x40 0xbc
23540x19 0xc 0x50 0xbc
23550x94 0xfe 0x4f 0xfc
23560xf7 0x1e 0x40 0xfc
23570x19 0xc 0x50 0xfc
2358
2359# CHECK: ldr      q20, [x1, #255]!
2360# CHECK: ldr      q23, [x9, #1]!
2361# CHECK: ldr      q25, [x20, #-256]!
2362# CHECK: str      q10, [x1, #255]!
2363# CHECK: str      q22, [sp, #1]!
2364# CHECK: str      q21, [x20, #-256]!
23650x34 0xfc 0xcf 0x3c
23660x37 0x1d 0xc0 0x3c
23670x99 0xe 0xd0 0x3c
23680x2a 0xfc 0x8f 0x3c
23690xf6 0x1f 0x80 0x3c
23700x95 0xe 0x90 0x3c
2371
2372#------------------------------------------------------------------------------
2373# Load/store (unprivileged)
2374#------------------------------------------------------------------------------
2375
2376# CHECK: sttrb    w9, [sp]
2377# CHECK: sttrh    wzr, [x12, #255]
2378# CHECK: sttr     w16, [x0, #-256]
2379# CHECK: sttr     x28, [x14, #1]
23800xe9 0x0b 0x0 0x38
23810x9f 0xf9 0xf 0x78
23820x10 0x08 0x10 0xb8
23830xdc 0x19 0x0 0xf8
2384
2385# CHECK: ldtrb    w1, [x20, #255]
2386# CHECK: ldtrh    w20, [x1, #255]
2387# CHECK: ldtr     w12, [sp, #255]
2388# CHECK: ldtr     xzr, [x12, #255]
23890x81 0xfa 0x4f 0x38
23900x34 0xf8 0x4f 0x78
23910xec 0xfb 0x4f 0xb8
23920x9f 0xf9 0x4f 0xf8
2393
2394# CHECK: ldtrsb   x9, [x7, #-256]
2395# CHECK: ldtrsh   x17, [x19, #-256]
2396# CHECK: ldtrsw   x20, [x15, #-256]
2397# CHECK: ldtrsb   w19, [x1, #-256]
2398# CHECK: ldtrsh   w15, [x21, #-256]
23990xe9 0x08 0x90 0x38
24000x71 0x0a 0x90 0x78
24010xf4 0x09 0x90 0xb8
24020x33 0x08 0xd0 0x38
24030xaf 0x0a 0xd0 0x78
2404
2405#------------------------------------------------------------------------------
2406# Load/store (unsigned  immediate)
2407#------------------------------------------------------------------------------
2408
2409# CHECK: ldr      x0, [x0]
2410# CHECK: ldr      x4, [x29]
2411# CHECK: ldr      x30, [x12, #32760]
2412# CHECK: ldr      x20, [sp, #8]
24130x0 0x0 0x40 0xf9
24140xa4 0x3 0x40 0xf9
24150x9e 0xfd 0x7f 0xf9
24160xf4 0x7 0x40 0xf9
2417
2418# CHECK: ldr      xzr, [sp]
24190xff 0x3 0x40 0xf9
2420
2421# CHECK: ldr      w2, [sp]
2422# CHECK: ldr      w17, [sp, #16380]
2423# CHECK: ldr      w13, [x2, #4]
24240xe2 0x3 0x40 0xb9
24250xf1 0xff 0x7f 0xb9
24260x4d 0x4 0x40 0xb9
2427
2428# CHECK: ldrsw    x2, [x5, #4]
2429# CHECK: ldrsw    x23, [sp, #16380]
24300xa2 0x4 0x80 0xb9
24310xf7 0xff 0xbf 0xb9
2432
2433# CHECK: ldrh     w2, [x4]
2434# CHECK: ldrsh    w23, [x6, #8190]
2435# CHECK: ldrsh    wzr, [sp, #2]
2436# CHECK: ldrsh    x29, [x2, #2]
24370x82 0x0 0x40 0x79
24380xd7 0xfc 0xff 0x79
24390xff 0x7 0xc0 0x79
24400x5d 0x4 0x80 0x79
2441
2442# CHECK: ldrb     w26, [x3, #121]
2443# CHECK: ldrb     w12, [x2]
2444# CHECK: ldrsb    w27, [sp, #4095]
2445# CHECK: ldrsb    xzr, [x15]
24460x7a 0xe4 0x41 0x39
24470x4c 0x0 0x40 0x39
24480xfb 0xff 0xff 0x39
24490xff 0x1 0x80 0x39
2450
2451# CHECK: str      x30, [sp]
2452# CHECK: str      w20, [x4, #16380]
2453# CHECK: strh     w20, [x10, #14]
2454# CHECK: strh     w17, [sp, #8190]
2455# CHECK: strb     w23, [x3, #4095]
2456# CHECK: strb     wzr, [x2]
24570xfe 0x3 0x0 0xf9
24580x94 0xfc 0x3f 0xb9
24590x54 0x1d 0x0 0x79
24600xf1 0xff 0x3f 0x79
24610x77 0xfc 0x3f 0x39
24620x5f 0x0 0x0 0x39
2463
2464# CHECK: ldr      b31, [sp, #4095]
2465# CHECK: ldr      h20, [x2, #8190]
2466# CHECK: ldr      s10, [x19, #16380]
2467# CHECK: ldr      d3, [x10, #32760]
2468# CHECK: str      q12, [sp, #65520]
24690xff 0xff 0x7f 0x3d
24700x54 0xfc 0x7f 0x7d
24710x6a 0xfe 0x7f 0xbd
24720x43 0xfd 0x7f 0xfd
24730xec 0xff 0xbf 0x3d
2474
2475# CHECK: prfm    pldl1keep, [sp, #8]
2476# CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2477# CHECK: prfm    pldl2keep, [x5, #16]
2478# CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2479# CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2480# CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2481# CHECK: prfm    plil1keep, [sp, #8]
2482# CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2483# CHECK: prfm    plil2keep, [x5, #16]
2484# CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2485# CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2486# CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2487# CHECK: prfm    pstl1keep, [sp, #8]
2488# CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2489# CHECK: prfm    pstl2keep, [x5, #16]
2490# CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2491# CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2492# CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
24930xe0 0x07 0x80 0xf9
24940x61 0x00 0x80 0xf9
24950xa2 0x08 0x80 0xf9
24960x43 0x00 0x80 0xf9
24970xa4 0x00 0x80 0xf9
24980xc5 0x00 0x80 0xf9
24990xe8 0x07 0x80 0xf9
25000x69 0x00 0x80 0xf9
25010xaa 0x08 0x80 0xf9
25020x4b 0x00 0x80 0xf9
25030xac 0x00 0x80 0xf9
25040xcd 0x00 0x80 0xf9
25050xf0 0x07 0x80 0xf9
25060x71 0x00 0x80 0xf9
25070xb2 0x08 0x80 0xf9
25080x53 0x00 0x80 0xf9
25090xb4 0x00 0x80 0xf9
25100xd5 0x00 0x80 0xf9
2511
2512
2513#------------------------------------------------------------------------------
2514# Load/store (register offset)
2515#------------------------------------------------------------------------------
2516
2517# CHECK: ldrb     w3, [sp, x5]
2518# CHECK: ldrb     w9, [x27, x6]
2519# CHECK: ldrsb    w10, [x30, x7]
2520# CHECK: ldrb     w11, [x29, x3, sxtx]
2521# CHECK: strb     w12, [x28, xzr, sxtx]
2522# CHECK: ldrb     w14, [x26, w6, uxtw]
2523# CHECK: ldrsb    w15, [x25, w7, uxtw]
2524# CHECK: ldrb     w17, [x23, w9, sxtw]
2525# CHECK: ldrsb    x18, [x22, w10, sxtw]
25260xe3 0x6b 0x65 0x38
25270x69 0x6b 0x66 0x38
25280xca 0x6b 0xe7 0x38
25290xab 0xeb 0x63 0x38
25300x8c 0xeb 0x3f 0x38
25310x4e 0x4b 0x66 0x38
25320x2f 0x4b 0xe7 0x38
25330xf1 0xca 0x69 0x38
25340xd2 0xca 0xaa 0x38
2535
2536# CHECK: ldrsh    w3, [sp, x5]
2537# CHECK: ldrsh    w9, [x27, x6]
2538# CHECK: ldrh     w10, [x30, x7, lsl #1]
2539# CHECK: strh     w11, [x29, x3, sxtx]
2540# CHECK: ldrh     w12, [x28, xzr, sxtx]
2541# CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2542# CHECK: ldrh     w14, [x26, w6, uxtw]
2543# CHECK: ldrh     w15, [x25, w7, uxtw]
2544# CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2545# CHECK: ldrh     w17, [x23, w9, sxtw]
2546# CHECK: ldrh     w18, [x22, w10, sxtw]
2547# CHECK: strh     w19, [x21, wzr, sxtw #1]
25480xe3 0x6b 0xe5 0x78
25490x69 0x6b 0xe6 0x78
25500xca 0x7b 0x67 0x78
25510xab 0xeb 0x23 0x78
25520x8c 0xeb 0x7f 0x78
25530x6d 0xfb 0xa5 0x78
25540x4e 0x4b 0x66 0x78
25550x2f 0x4b 0x67 0x78
25560x10 0x5b 0xe8 0x78
25570xf1 0xca 0x69 0x78
25580xd2 0xca 0x6a 0x78
25590xb3 0xda 0x3f 0x78
2560
2561# CHECK: ldr      w3, [sp, x5]
2562# CHECK: ldr      s9, [x27, x6]
2563# CHECK: ldr      w10, [x30, x7, lsl #2]
2564# CHECK: ldr      w11, [x29, x3, sxtx]
2565# CHECK: str      s12, [x28, xzr, sxtx]
2566# CHECK: str      w13, [x27, x5, sxtx #2]
2567# CHECK: str      w14, [x26, w6, uxtw]
2568# CHECK: ldr      w15, [x25, w7, uxtw]
2569# CHECK: ldr      w16, [x24, w8, uxtw #2]
2570# CHECK: ldrsw    x17, [x23, w9, sxtw]
2571# CHECK: ldr      w18, [x22, w10, sxtw]
2572# CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
25730xe3 0x6b 0x65 0xb8
25740x69 0x6b 0x66 0xbc
25750xca 0x7b 0x67 0xb8
25760xab 0xeb 0x63 0xb8
25770x8c 0xeb 0x3f 0xbc
25780x6d 0xfb 0x25 0xb8
25790x4e 0x4b 0x26 0xb8
25800x2f 0x4b 0x67 0xb8
25810x10 0x5b 0x68 0xb8
25820xf1 0xca 0xa9 0xb8
25830xd2 0xca 0x6a 0xb8
25840xb3 0xda 0xbf 0xb8
2585
2586# CHECK: ldr      x3, [sp, x5]
2587# CHECK: str      x9, [x27, x6]
2588# CHECK: ldr      d10, [x30, x7, lsl #3]
2589# CHECK: str      x11, [x29, x3, sxtx]
2590# CHECK: ldr      x12, [x28, xzr, sxtx]
2591# CHECK: ldr      x13, [x27, x5, sxtx #3]
2592# CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2593# CHECK: ldr      x15, [x25, w7, uxtw]
2594# CHECK: ldr      x16, [x24, w8, uxtw #3]
2595# CHECK: ldr      x17, [x23, w9, sxtw]
2596# CHECK: ldr      x18, [x22, w10, sxtw]
2597# CHECK: str      d19, [x21, wzr, sxtw #3]
25980xe3 0x6b 0x65 0xf8
25990x69 0x6b 0x26 0xf8
26000xca 0x7b 0x67 0xfc
26010xab 0xeb 0x23 0xf8
26020x8c 0xeb 0x7f 0xf8
26030x6d 0xfb 0x65 0xf8
26040x40 0x4b 0xa6 0xf8
26050x2f 0x4b 0x67 0xf8
26060x10 0x5b 0x68 0xf8
26070xf1 0xca 0x69 0xf8
26080xd2 0xca 0x6a 0xf8
26090xb3 0xda 0x3f 0xfc
2610
2611# CHECK: ldr      q3, [sp, x5]
2612# CHECK: ldr      q9, [x27, x6]
2613# CHECK: ldr      q10, [x30, x7, lsl #4]
2614# CHECK: str      q11, [x29, x3, sxtx]
2615# CHECK: str      q12, [x28, xzr, sxtx]
2616# CHECK: str      q13, [x27, x5, sxtx #4]
2617# CHECK: ldr      q14, [x26, w6, uxtw]
2618# CHECK: ldr      q15, [x25, w7, uxtw]
2619# CHECK: ldr      q16, [x24, w8, uxtw #4]
2620# CHECK: ldr      q17, [x23, w9, sxtw]
2621# CHECK: str      q18, [x22, w10, sxtw]
2622# CHECK: ldr      q19, [x21, wzr, sxtw #4]
26230xe3 0x6b 0xe5 0x3c
26240x69 0x6b 0xe6 0x3c
26250xca 0x7b 0xe7 0x3c
26260xab 0xeb 0xa3 0x3c
26270x8c 0xeb 0xbf 0x3c
26280x6d 0xfb 0xa5 0x3c
26290x4e 0x4b 0xe6 0x3c
26300x2f 0x4b 0xe7 0x3c
26310x10 0x5b 0xe8 0x3c
26320xf1 0xca 0xe9 0x3c
26330xd2 0xca 0xaa 0x3c
26340xb3 0xda 0xff 0x3c
2635
2636#------------------------------------------------------------------------------
2637# Load/store register pair (offset)
2638#------------------------------------------------------------------------------
2639
2640# CHECK: ldp      w3, w5, [sp]
2641# CHECK: stp      wzr, w9, [sp, #252]
2642# CHECK: ldp      w2, wzr, [sp, #-256]
2643# CHECK: ldp      w9, w10, [sp, #4]
26440xe3 0x17 0x40 0x29
26450xff 0xa7 0x1f 0x29
26460xe2 0x7f 0x60 0x29
26470xe9 0xab 0x40 0x29
2648
2649# CHECK: ldpsw    x9, x10, [sp, #4]
2650# CHECK: ldpsw    x9, x10, [x2, #-256]
2651# CHECK: ldpsw    x20, x30, [sp, #252]
26520xe9 0xab 0x40 0x69
26530x49 0x28 0x60 0x69
26540xf4 0xfb 0x5f 0x69
2655
2656# CHECK: ldp      x21, x29, [x2, #504]
2657# CHECK: ldp      x22, x23, [x3, #-512]
2658# CHECK: ldp      x24, x25, [x4, #8]
26590x55 0xf4 0x5f 0xa9
26600x76 0x5c 0x60 0xa9
26610x98 0xe4 0x40 0xa9
2662
2663# CHECK: ldp      s29, s28, [sp, #252]
2664# CHECK: stp      s27, s26, [sp, #-256]
2665# CHECK: ldp      s1, s2, [x3, #44]
26660xfd 0xf3 0x5f 0x2d
26670xfb 0x6b 0x20 0x2d
26680x61 0x88 0x45 0x2d
2669
2670# CHECK: stp      d3, d5, [x9, #504]
2671# CHECK: stp      d7, d11, [x10, #-512]
2672# CHECK: ldp      d2, d3, [x30, #-8]
26730x23 0x95 0x1f 0x6d
26740x47 0x2d 0x20 0x6d
26750xc2 0x8f 0x7f 0x6d
2676
2677# CHECK: stp      q3, q5, [sp]
2678# CHECK: stp      q17, q19, [sp, #1008]
2679# CHECK: ldp      q23, q29, [x1, #-1024]
26800xe3 0x17 0x0 0xad
26810xf1 0xcf 0x1f 0xad
26820x37 0x74 0x60 0xad
2683
2684#------------------------------------------------------------------------------
2685# Load/store register pair (post-indexed)
2686#------------------------------------------------------------------------------
2687
2688# CHECK: ldp      w3, w5, [sp], #0
2689# CHECK: stp      wzr, w9, [sp], #252
2690# CHECK: ldp      w2, wzr, [sp], #-256
2691# CHECK: ldp      w9, w10, [sp], #4
26920xe3 0x17 0xc0 0x28
26930xff 0xa7 0x9f 0x28
26940xe2 0x7f 0xe0 0x28
26950xe9 0xab 0xc0 0x28
2696
2697# CHECK: ldpsw    x9, x10, [sp], #4
2698# CHECK: ldpsw    x9, x10, [x2], #-256
2699# CHECK: ldpsw    x20, x30, [sp], #252
27000xe9 0xab 0xc0 0x68
27010x49 0x28 0xe0 0x68
27020xf4 0xfb 0xdf 0x68
2703
2704# CHECK: ldp      x21, x29, [x2], #504
2705# CHECK: ldp      x22, x23, [x3], #-512
2706# CHECK: ldp      x24, x25, [x4], #8
27070x55 0xf4 0xdf 0xa8
27080x76 0x5c 0xe0 0xa8
27090x98 0xe4 0xc0 0xa8
2710
2711# CHECK: ldp      s29, s28, [sp], #252
2712# CHECK: stp      s27, s26, [sp], #-256
2713# CHECK: ldp      s1, s2, [x3], #44
27140xfd 0xf3 0xdf 0x2c
27150xfb 0x6b 0xa0 0x2c
27160x61 0x88 0xc5 0x2c
2717
2718# CHECK: stp      d3, d5, [x9], #504
2719# CHECK: stp      d7, d11, [x10], #-512
2720# CHECK: ldp      d2, d3, [x30], #-8
27210x23 0x95 0x9f 0x6c
27220x47 0x2d 0xa0 0x6c
27230xc2 0x8f 0xff 0x6c
2724
2725# CHECK: stp      q3, q5, [sp], #0
2726# CHECK: stp      q17, q19, [sp], #1008
2727# CHECK: ldp      q23, q29, [x1], #-1024
27280xe3 0x17 0x80 0xac
27290xf1 0xcf 0x9f 0xac
27300x37 0x74 0xe0 0xac
2731
2732#------------------------------------------------------------------------------
2733# Load/store register pair (pre-indexed)
2734#------------------------------------------------------------------------------
2735
2736# CHECK: ldp      w3, w5, [sp, #0]!
2737# CHECK: stp      wzr, w9, [sp, #252]!
2738# CHECK: ldp      w2, wzr, [sp, #-256]!
2739# CHECK: ldp      w9, w10, [sp, #4]!
27400xe3 0x17 0xc0 0x29
27410xff 0xa7 0x9f 0x29
27420xe2 0x7f 0xe0 0x29
27430xe9 0xab 0xc0 0x29
2744
2745# CHECK: ldpsw    x9, x10, [sp, #4]!
2746# CHECK: ldpsw    x9, x10, [x2, #-256]!
2747# CHECK: ldpsw    x20, x30, [sp, #252]!
27480xe9 0xab 0xc0 0x69
27490x49 0x28 0xe0 0x69
27500xf4 0xfb 0xdf 0x69
2751
2752# CHECK: ldp      x21, x29, [x2, #504]!
2753# CHECK: ldp      x22, x23, [x3, #-512]!
2754# CHECK: ldp      x24, x25, [x4, #8]!
27550x55 0xf4 0xdf 0xa9
27560x76 0x5c 0xe0 0xa9
27570x98 0xe4 0xc0 0xa9
2758
2759# CHECK: ldp      s29, s28, [sp, #252]!
2760# CHECK: stp      s27, s26, [sp, #-256]!
2761# CHECK: ldp      s1, s2, [x3, #44]!
27620xfd 0xf3 0xdf 0x2d
27630xfb 0x6b 0xa0 0x2d
27640x61 0x88 0xc5 0x2d
2765
2766# CHECK: stp      d3, d5, [x9, #504]!
2767# CHECK: stp      d7, d11, [x10, #-512]!
2768# CHECK: ldp      d2, d3, [x30, #-8]!
27690x23 0x95 0x9f 0x6d
27700x47 0x2d 0xa0 0x6d
27710xc2 0x8f 0xff 0x6d
2772
2773# CHECK: stp      q3, q5, [sp, #0]!
2774# CHECK: stp      q17, q19, [sp, #1008]!
2775# CHECK: ldp      q23, q29, [x1, #-1024]!
27760xe3 0x17 0x80 0xad
27770xf1 0xcf 0x9f 0xad
27780x37 0x74 0xe0 0xad
2779
2780#------------------------------------------------------------------------------
2781# Load/store register pair (offset)
2782#------------------------------------------------------------------------------
2783
2784# CHECK: ldnp      w3, w5, [sp]
2785# CHECK: stnp      wzr, w9, [sp, #252]
2786# CHECK: ldnp      w2, wzr, [sp, #-256]
2787# CHECK: ldnp      w9, w10, [sp, #4]
27880xe3 0x17 0x40 0x28
27890xff 0xa7 0x1f 0x28
27900xe2 0x7f 0x60 0x28
27910xe9 0xab 0x40 0x28
2792
2793# CHECK: ldnp      x21, x29, [x2, #504]
2794# CHECK: ldnp      x22, x23, [x3, #-512]
2795# CHECK: ldnp      x24, x25, [x4, #8]
27960x55 0xf4 0x5f 0xa8
27970x76 0x5c 0x60 0xa8
27980x98 0xe4 0x40 0xa8
2799
2800# CHECK: ldnp      s29, s28, [sp, #252]
2801# CHECK: stnp      s27, s26, [sp, #-256]
2802# CHECK: ldnp      s1, s2, [x3, #44]
28030xfd 0xf3 0x5f 0x2c
28040xfb 0x6b 0x20 0x2c
28050x61 0x88 0x45 0x2c
2806
2807# CHECK: stnp      d3, d5, [x9, #504]
2808# CHECK: stnp      d7, d11, [x10, #-512]
2809# CHECK: ldnp      d2, d3, [x30, #-8]
28100x23 0x95 0x1f 0x6c
28110x47 0x2d 0x20 0x6c
28120xc2 0x8f 0x7f 0x6c
2813
2814# CHECK: stnp      q3, q5, [sp]
2815# CHECK: stnp      q17, q19, [sp, #1008]
2816# CHECK: ldnp      q23, q29, [x1, #-1024]
28170xe3 0x17 0x0 0xac
28180xf1 0xcf 0x1f 0xac
28190x37 0x74 0x60 0xac
2820
2821#------------------------------------------------------------------------------
2822# Logical (immediate)
2823#------------------------------------------------------------------------------
2824# CHECK: orr      w3, w9, #0xffff0000
2825# CHECK: orr      wsp, w10, #0xe00000ff
2826# CHECK: orr      w9, w10, #0x3ff
28270x23 0x3d 0x10 0x32
28280x5f 0x29 0x3 0x32
28290x49 0x25 0x0 0x32
2830
2831# CHECK: and      w14, w15, #0x80008000
2832# CHECK: and      w12, w13, #0xffc3ffc3
2833# CHECK: and      w11, wzr, #0x30003
28340xee 0x81 0x1 0x12
28350xac 0xad 0xa 0x12
28360xeb 0x87 0x0 0x12
2837
2838# CHECK: eor      w3, w6, #0xe0e0e0e0
2839# CHECK: eor      wsp, wzr, #0x3030303
2840# CHECK: eor      w16, w17, #0x81818181
28410xc3 0xc8 0x3 0x52
28420xff 0xc7 0x0 0x52
28430x30 0xc6 0x1 0x52
2844
2845# CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
2846# CHECK: ands     w19, w20, #0x33333333
2847# CHECK: ands     w21, w22, #0x99999999
28480x5f 0xe6 0x2 0x72
28490x93 0xe6 0x0 0x72
28500xd5 0xe6 0x1 0x72
2851
2852# CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2853# CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
28540x7f 0xf0 0x1 0x72
28550xff 0xf3 0x0 0x72
2856
2857# CHECK: eor      x3, x5, #0xffffffffc000000
2858# CHECK: and      x9, x10, #0x7fffffffffff
2859# CHECK: orr      x11, x12, #0x8000000000000fff
28600xa3 0x84 0x66 0xd2
28610x49 0xb9 0x40 0x92
28620x8b 0x31 0x41 0xb2
2863
2864# CHECK: orr      x3, x9, #0xffff0000ffff0000
2865# CHECK: orr      sp, x10, #0xe00000ffe00000ff
2866# CHECK: orr      x9, x10, #0x3ff000003ff
28670x23 0x3d 0x10 0xb2
28680x5f 0x29 0x3 0xb2
28690x49 0x25 0x0 0xb2
2870
2871# CHECK: and      x14, x15, #0x8000800080008000
2872# CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2873# CHECK: and      x11, xzr, #0x3000300030003
28740xee 0x81 0x1 0x92
28750xac 0xad 0xa 0x92
28760xeb 0x87 0x0 0x92
2877
2878# CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2879# CHECK: eor      sp, xzr, #0x303030303030303
2880# CHECK: eor      x16, x17, #0x8181818181818181
28810xc3 0xc8 0x3 0xd2
28820xff 0xc7 0x0 0xd2
28830x30 0xc6 0x1 0xd2
2884
2885# CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
2886# CHECK: ands     x19, x20, #0x3333333333333333
2887# CHECK: ands     x21, x22, #0x9999999999999999
28880x5f 0xe6 0x2 0xf2
28890x93 0xe6 0x0 0xf2
28900xd5 0xe6 0x1 0xf2
2891
2892# CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2893# CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
28940x7f 0xf0 0x1 0xf2
28950xff 0xf3 0x0 0xf2
2896
2897# CHECK: mov      w3, #983055
2898# CHECK: mov      x10, #-6148914691236517206
28990xe3 0x8f 0x0 0x32
29000xea 0xf3 0x1 0xb2
2901
2902# CHECK: orr      w3, wzr, #0xffff
2903# CHECK: orr      x9, xzr, #0xffff00000000
29040xe3 0x3f 0x0 0x32
29050xe9 0x3f 0x60 0xb2
2906
2907#------------------------------------------------------------------------------
2908# Logical (shifted register)
2909#------------------------------------------------------------------------------
2910
2911# CHECK: and      w12, w23, w21
2912# CHECK: and      w16, w15, w1, lsl #1
2913# CHECK: and      w9, w4, w10, lsl #31
2914# CHECK: and      w3, w30, w11
2915# CHECK: and      x3, x5, x7, lsl #63
29160xec 0x2 0x15 0xa
29170xf0 0x5 0x1 0xa
29180x89 0x7c 0xa 0xa
29190xc3 0x3 0xb 0xa
29200xa3 0xfc 0x7 0x8a
2921
2922# CHECK: and      x5, x14, x19, asr #4
2923# CHECK: and      w3, w17, w19, ror #31
2924# CHECK: and      w0, w2, wzr, lsr #17
2925# CHECK: and      w3, w30, w11, asr
29260xc5 0x11 0x93 0x8a
29270x23 0x7e 0xd3 0xa
29280x40 0x44 0x5f 0xa
29290xc3 0x3 0x8b 0xa
2930
2931# CHECK: and      xzr, x4, x26
2932# CHECK: and      w3, wzr, w20, ror
2933# CHECK: and      x7, x20, xzr, asr #63
29340x9f 0x0 0x1a 0x8a
29350xe3 0x3 0xd4 0xa
29360x87 0xfe 0x9f 0x8a
2937
2938# CHECK: bic      x13, x20, x14, lsl #47
2939# CHECK: bic      w2, w7, w9
2940# CHECK: orr      w2, w7, w0, asr #31
2941# CHECK: orr      x8, x9, x10, lsl #12
2942# CHECK: orn      x3, x5, x7, asr
2943# CHECK: orn      w2, w5, w29
29440x8d 0xbe 0x2e 0x8a
29450xe2 0x0 0x29 0xa
29460xe2 0x7c 0x80 0x2a
29470x28 0x31 0xa 0xaa
29480xa3 0x0 0xa7 0xaa
29490xa2 0x0 0x3d 0x2a
2950
2951# CHECK: ands     w7, wzr, w9, lsl #1
2952# CHECK: ands     x3, x5, x20, ror #63
2953# CHECK: bics     w3, w5, w7
2954# CHECK: bics     x3, xzr, x3, lsl #1
2955# CHECK: tst      w3, w7, lsl #31
2956# CHECK: tst      x2, x20, asr
29570xe7 0x7 0x9 0x6a
29580xa3 0xfc 0xd4 0xea
29590xa3 0x0 0x27 0x6a
29600xe3 0x7 0x23 0xea
29610x7f 0x7c 0x7 0x6a
29620x5f 0x0 0x94 0xea
2963
2964# CHECK: mov      x3, x6
2965# CHECK: mov      x3, xzr
2966# CHECK: mov      wzr, w2
2967# CHECK: mov      w3, w5
29680xe3 0x3 0x6 0xaa
29690xe3 0x3 0x1f 0xaa
29700xff 0x3 0x2 0x2a
29710xe3 0x3 0x5 0x2a
2972
2973#------------------------------------------------------------------------------
2974# Move wide (immediate)
2975#------------------------------------------------------------------------------
2976
2977# N.b. (FIXME) canonical aliases aren't produced here because of
2978# limitation in InstAlias. Lots of the "mov[nz]" instructions should
2979# be "mov".
2980
2981# CHECK: mov     w1, #{{65535|0xffff}}
2982# CHECK: movz     w2, #0, lsl #16
2983# CHECK: mov     w2, #-1235
29840xe1 0xff 0x9f 0x52
29850x2 0x0 0xa0 0x52
29860x42 0x9a 0x80 0x12
2987
2988# CHECK: mov     x2, #5299989643264
2989# CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
29900x42 0x9a 0xc0 0xd2
29910x3f 0x1c 0xe2 0xf2
2992
2993# CHECK: mov      x2, #0
2994# CHECK: movk     w3, #0
2995# CHECK: movz     x4, #0, lsl #16
2996# CHECK: movk     w5, #0, lsl #16
2997# CHECK: movz     x6, #0, lsl #32
2998# CHECK: movk     x7, #0, lsl #32
2999# CHECK: movz     x8, #0, lsl #48
3000# CHECK: movk     x9, #0, lsl #48
30010x2 0x0 0x80 0xd2
30020x3 0x0 0x80 0x72
30030x4 0x0 0xa0 0xd2
30040x5 0x0 0xa0 0x72
30050x6 0x0 0xc0 0xd2
30060x7 0x0 0xc0 0xf2
30070x8 0x0 0xe0 0xd2
30080x9 0x0 0xe0 0xf2
3009
3010#------------------------------------------------------------------------------
3011# PC-relative addressing
3012#------------------------------------------------------------------------------
3013
3014# It's slightly dodgy using immediates here, but harmless enough when
3015# it's all that's available.
3016
3017# CHECK: adr      x2, #1600
3018# CHECK: adrp     x21, #6553600
3019# CHECK: adr      x0, #262144
30200x02 0x32 0x00 0x10
30210x15 0x32 0x00 0x90
30220x00 0x00 0x20 0x10
3023
3024#------------------------------------------------------------------------------
3025# System
3026#------------------------------------------------------------------------------
3027
3028# CHECK: nop
3029# CHECK: hint     #{{127|0x7f}}
3030# CHECK: nop
3031# CHECK: yield
3032# CHECK: wfe
3033# CHECK: wfi
3034# CHECK: sev
3035# CHECK: sevl
3036# CHECK: dgh
30370x1f 0x20 0x3 0xd5
30380xff 0x2f 0x3 0xd5
30390x1f 0x20 0x3 0xd5
30400x3f 0x20 0x3 0xd5
30410x5f 0x20 0x3 0xd5
30420x7f 0x20 0x3 0xd5
30430x9f 0x20 0x3 0xd5
30440xbf 0x20 0x3 0xd5
30450xdf,0x20,0x3,0xd5
3046
3047# CHECK: clrex
3048# CHECK: clrex    #0
3049# CHECK: clrex    #7
3050# CHECK: clrex
30510x5f 0x3f 0x3 0xd5
30520x5f 0x30 0x3 0xd5
30530x5f 0x37 0x3 0xd5
30540x5f 0x3f 0x3 0xd5
3055
3056# CHECK: dsb      #12
3057# CHECK: dsb      sy
3058# CHECK: dsb      oshld
3059# CHECK: dsb      oshst
3060# CHECK: dsb      osh
3061# CHECK: dsb      nshld
3062# CHECK: dsb      nshst
3063# CHECK: dsb      nsh
3064# CHECK: dsb      ishld
3065# CHECK: dsb      ishst
3066# CHECK: dsb      ish
3067# CHECK: dsb      ld
3068# CHECK: dsb      st
3069# CHECK: dsb      sy
30700x9f 0x3c 0x3 0xd5
30710x9f 0x3f 0x3 0xd5
30720x9f 0x31 0x3 0xd5
30730x9f 0x32 0x3 0xd5
30740x9f 0x33 0x3 0xd5
30750x9f 0x35 0x3 0xd5
30760x9f 0x36 0x3 0xd5
30770x9f 0x37 0x3 0xd5
30780x9f 0x39 0x3 0xd5
30790x9f 0x3a 0x3 0xd5
30800x9f 0x3b 0x3 0xd5
30810x9f 0x3d 0x3 0xd5
30820x9f 0x3e 0x3 0xd5
30830x9f 0x3f 0x3 0xd5
3084
3085# CHECK: dmb      #0
3086# CHECK: dmb      #12
3087# CHECK: dmb      sy
3088# CHECK: dmb      oshld
3089# CHECK: dmb      oshst
3090# CHECK: dmb      osh
3091# CHECK: dmb      nshld
3092# CHECK: dmb      nshst
3093# CHECK: dmb      nsh
3094# CHECK: dmb      ishld
3095# CHECK: dmb      ishst
3096# CHECK: dmb      ish
3097# CHECK: dmb      ld
3098# CHECK: dmb      st
3099# CHECK: dmb      sy
31000xbf 0x30 0x3 0xd5
31010xbf 0x3c 0x3 0xd5
31020xbf 0x3f 0x3 0xd5
31030xbf 0x31 0x3 0xd5
31040xbf 0x32 0x3 0xd5
31050xbf 0x33 0x3 0xd5
31060xbf 0x35 0x3 0xd5
31070xbf 0x36 0x3 0xd5
31080xbf 0x37 0x3 0xd5
31090xbf 0x39 0x3 0xd5
31100xbf 0x3a 0x3 0xd5
31110xbf 0x3b 0x3 0xd5
31120xbf 0x3d 0x3 0xd5
31130xbf 0x3e 0x3 0xd5
31140xbf 0x3f 0x3 0xd5
3115
3116# CHECK: isb
3117# CHECK: isb      #12
31180xdf 0x3f 0x3 0xd5
31190xdf 0x3c 0x3 0xd5
3120
3121# CHECK: msr      {{SPSel|SPSEL}}, #0
3122# CHECK: msr      {{DAIFSet|DAIFSET}}, #15
3123# CHECK: msr      {{DAIFClr|DAIFCLR}}, #12
31240xbf 0x40 0x0 0xd5
31250xdf 0x4f 0x3 0xd5
31260xff 0x4c 0x3 0xd5
3127
3128# CHECK: sys      #7, c5, c9, #7, x5
3129# CHECK: sys      #0, c15, c15, #2
3130# CHECK: sysl     x9, #7, c5, c9, #7
3131# CHECK: sysl     x1, #0, c15, c15, #2
31320xe5 0x59 0xf 0xd5
31330x5f 0xff 0x8 0xd5
31340xe9 0x59 0x2f 0xd5
31350x41 0xff 0x28 0xd5
3136
3137# CHECK: {{sys     #0, c7, c1, #0|ic ialluis}}
3138# CHECK: {{sys     #0, c7, c5, #0|ic iallu}}
3139# CHECK: {{sys     #3, c7, c5, #1|ic ivau}}, x9
31400x1f 0x71 0x8 0xd5
31410x1f 0x75 0x8 0xd5
31420x29 0x75 0xb 0xd5
3143
3144# CHECK: {{sys     #3, c7, c4, #1|dc zva}}, x12
3145# CHECK: {{sys     #0, c7, c6, #1|dc ivac}}
3146# CHECK: {{sys     #0, c7, c6, #2|dc isw}}, x2
3147# CHECK: {{sys     #3, c7, c10, #1|dc cvac}}, x9
3148# CHECK: {{sys     #0, c7, c10, #2|dc csw}}, x10
3149# CHECK: {{sys     #3, c7, c11, #1|dc cvau}}, x0
3150# CHECK: {{sys     #3, c7, c14, #1|dc civac}}, x3
3151# CHECK: {{sys     #0, c7, c14, #2|dc cisw}}, x30
31520x2c 0x74 0xb 0xd5
31530x3f 0x76 0x8 0xd5
31540x42 0x76 0x8 0xd5
31550x29 0x7a 0xb 0xd5
31560x4a 0x7a 0x8 0xd5
31570x20 0x7b 0xb 0xd5
31580x23 0x7e 0xb 0xd5
31590x5e 0x7e 0x8 0xd5
3160
3161
3162# CHECK: msr      {{teecr32_el1|TEECR32_EL1}}, x12
3163# CHECK: msr      {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3164# CHECK: msr      {{mdccint_el1|MDCCINT_EL1}}, x12
3165# CHECK: msr      {{mdscr_el1|MDSCR_EL1}}, x12
3166# CHECK: msr      {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3167# CHECK: msr      {{dbgdtr_el0|DBGDTR_EL0}}, x12
3168# CHECK: msr      {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3169# CHECK: msr      {{oseccr_el1|OSECCR_EL1}}, x12
3170# CHECK: msr      {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3171# CHECK: msr      {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3172# CHECK: msr      {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3173# CHECK: msr      {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3174# CHECK: msr      {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3175# CHECK: msr      {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3176# CHECK: msr      {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3177# CHECK: msr      {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3178# CHECK: msr      {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3179# CHECK: msr      {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3180# CHECK: msr      {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3181# CHECK: msr      {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3182# CHECK: msr      {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3183# CHECK: msr      {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3184# CHECK: msr      {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3185# CHECK: msr      {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3186# CHECK: msr      {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3187# CHECK: msr      {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3188# CHECK: msr      {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3189# CHECK: msr      {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3190# CHECK: msr      {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3191# CHECK: msr      {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3192# CHECK: msr      {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3193# CHECK: msr      {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3194# CHECK: msr      {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3195# CHECK: msr      {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3196# CHECK: msr      {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3197# CHECK: msr      {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3198# CHECK: msr      {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3199# CHECK: msr      {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3200# CHECK: msr      {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3201# CHECK: msr      {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3202# CHECK: msr      {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3203# CHECK: msr      {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3204# CHECK: msr      {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3205# CHECK: msr      {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3206# CHECK: msr      {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3207# CHECK: msr      {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3208# CHECK: msr      {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3209# CHECK: msr      {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3210# CHECK: msr      {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3211# CHECK: msr      {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3212# CHECK: msr      {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3213# CHECK: msr      {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3214# CHECK: msr      {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3215# CHECK: msr      {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3216# CHECK: msr      {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3217# CHECK: msr      {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3218# CHECK: msr      {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3219# CHECK: msr      {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3220# CHECK: msr      {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3221# CHECK: msr      {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3222# CHECK: msr      {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3223# CHECK: msr      {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3224# CHECK: msr      {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3225# CHECK: msr      {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3226# CHECK: msr      {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3227# CHECK: msr      {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3228# CHECK: msr      {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3229# CHECK: msr      {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3230# CHECK: msr      {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3231# CHECK: msr      {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3232# CHECK: msr      {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3233# CHECK: msr      {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3234# CHECK: msr      {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3235# CHECK: msr      {{teehbr32_el1|TEEHBR32_EL1}}, x12
3236# CHECK: msr      {{oslar_el1|OSLAR_EL1}}, x12
3237# CHECK: msr      {{osdlr_el1|OSDLR_EL1}}, x12
3238# CHECK: msr      {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3239# CHECK: msr      {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3240# CHECK: msr      {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3241# CHECK: msr      {{csselr_el1|CSSELR_EL1}}, x12
3242# CHECK: msr      {{vpidr_el2|VPIDR_EL2}}, x12
3243# CHECK: msr      {{vmpidr_el2|VMPIDR_EL2}}, x12
3244# CHECK: msr      {{sctlr_el1|SCTLR_EL1}}, x12
3245# CHECK: msr      {{sctlr_el2|SCTLR_EL2}}, x12
3246# CHECK: msr      {{sctlr_el3|SCTLR_EL3}}, x12
3247# CHECK: msr      {{actlr_el1|ACTLR_EL1}}, x12
3248# CHECK: msr      {{actlr_el12|ACTLR_EL12}}, x12
3249# CHECK: msr      {{actlr_el2|ACTLR_EL2}}, x12
3250# CHECK: msr      {{actlr_el3|ACTLR_EL3}}, x12
3251# CHECK: msr      {{cpacr_el1|CPACR_EL1}}, x12
3252# CHECK: msr      {{hcr_el2|HCR_EL2}}, x12
3253# CHECK: msr      {{scr_el3|SCR_EL3}}, x12
3254# CHECK: msr      {{mdcr_el2|MDCR_EL2}}, x12
3255# CHECK: msr      {{sder32_el3|SDER32_EL3}}, x12
3256# CHECK: msr      {{cptr_el2|CPTR_EL2}}, x12
3257# CHECK: msr      {{cptr_el3|CPTR_EL3}}, x12
3258# CHECK: msr      {{hstr_el2|HSTR_EL2}}, x12
3259# CHECK: msr      {{hacr_el2|HACR_EL2}}, x12
3260# CHECK: msr      {{mdcr_el3|MDCR_EL3}}, x12
3261# CHECK: msr      {{ttbr0_el1|TTBR0_EL1}}, x12
3262# CHECK: msr      {{ttbr0_el2|TTBR0_EL2}}, x12
3263# CHECK: msr      {{ttbr0_el3|TTBR0_EL3}}, x12
3264# CHECK: msr      {{ttbr1_el1|TTBR1_EL1}}, x12
3265# CHECK: msr      {{tcr_el1|TCR_EL1}}, x12
3266# CHECK: msr      {{tcr_el2|TCR_EL2}}, x12
3267# CHECK: msr      {{tcr_el3|TCR_EL3}}, x12
3268# CHECK: msr      {{vttbr_el2|VTTBR_EL2}}, x12
3269# CHECK: msr      {{vtcr_el2|VTCR_EL2}}, x12
3270# CHECK: msr      {{dacr32_el2|DACR32_EL2}}, x12
3271# CHECK: msr      {{spsr_el1|SPSR_EL1}}, x12
3272# CHECK: msr      {{spsr_el2|SPSR_EL2}}, x12
3273# CHECK: msr      {{spsr_el3|SPSR_EL3}}, x12
3274# CHECK: msr      {{elr_el1|ELR_EL1}}, x12
3275# CHECK: msr      {{elr_el2|ELR_EL2}}, x12
3276# CHECK: msr      {{elr_el3|ELR_EL3}}, x12
3277# CHECK: msr      {{sp_el0|SP_EL0}}, x12
3278# CHECK: msr      {{sp_el1|SP_EL1}}, x12
3279# CHECK: msr      {{sp_el2|SP_EL2}}, x12
3280# CHECK: msr      {{SPSel|SPSEL}}, x12
3281# CHECK: msr      {{nzcv|NZCV}}, x12
3282# CHECK: msr      {{daif|DAIF}}, x12
3283# CHECK: msr      S3_0_C4_C2_2, x12
3284# CHECK: msr      {{SPSR_irq|SPSR_IRQ}}, x12
3285# CHECK: msr      {{SPSR_abt|SPSR_ABT}}, x12
3286# CHECK: msr      {{SPSR_und|SPSR_UND}}, x12
3287# CHECK: msr      {{SPSR_fiq|SPSR_FIQ}}, x12
3288# CHECK: msr      {{fpcr|FPCR}}, x12
3289# CHECK: msr      {{fpsr|FPSR}}, x12
3290# CHECK: msr      {{dspsr_el0|DSPSR_EL0}}, x12
3291# CHECK: msr      {{dlr_el0|DLR_EL0}}, x12
3292# CHECK: msr      {{ifsr32_el2|IFSR32_EL2}}, x12
3293# CHECK: msr      {{afsr0_el1|AFSR0_EL1}}, x12
3294# CHECK: msr      {{afsr0_el2|AFSR0_EL2}}, x12
3295# CHECK: msr      {{afsr0_el3|AFSR0_EL3}}, x12
3296# CHECK: msr      {{afsr1_el1|AFSR1_EL1}}, x12
3297# CHECK: msr      {{afsr1_el2|AFSR1_EL2}}, x12
3298# CHECK: msr      {{afsr1_el3|AFSR1_EL3}}, x12
3299# CHECK: msr      {{esr_el1|ESR_EL1}}, x12
3300# CHECK: msr      {{esr_el2|ESR_EL2}}, x12
3301# CHECK: msr      {{esr_el3|ESR_EL3}}, x12
3302# CHECK: msr      {{fpexc32_el2|FPEXC32_EL2}}, x12
3303# CHECK: msr      {{far_el1|FAR_EL1}}, x12
3304# CHECK: msr      {{far_el2|FAR_EL2}}, x12
3305# CHECK: msr      {{far_el3|FAR_EL3}}, x12
3306# CHECK: msr      {{hpfar_el2|HPFAR_EL2}}, x12
3307# CHECK: msr      {{par_el1|PAR_EL1}}, x12
3308# CHECK: msr      {{pmcr_el0|PMCR_EL0}}, x12
3309# CHECK: msr      {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3310# CHECK: msr      {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3311# CHECK: msr      {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3312# CHECK: msr      {{pmselr_el0|PMSELR_EL0}}, x12
3313# CHECK: msr      {{pmccntr_el0|PMCCNTR_EL0}}, x12
3314# CHECK: msr      {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3315# CHECK: msr      {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3316# CHECK: msr      {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3317# CHECK: msr      {{pmintenset_el1|PMINTENSET_EL1}}, x12
3318# CHECK: msr      {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3319# CHECK: msr      {{pmovsset_el0|PMOVSSET_EL0}}, x12
3320# CHECK: msr      {{mair_el1|MAIR_EL1}}, x12
3321# CHECK: msr      {{mair_el2|MAIR_EL2}}, x12
3322# CHECK: msr      {{mair_el3|MAIR_EL3}}, x12
3323# CHECK: msr      {{amair_el1|AMAIR_EL1}}, x12
3324# CHECK: msr      {{amair_el2|AMAIR_EL2}}, x12
3325# CHECK: msr      {{amair_el3|AMAIR_EL3}}, x12
3326# CHECK: msr      {{vbar_el1|VBAR_EL1}}, x12
3327# CHECK: msr      {{vbar_el2|VBAR_EL2}}, x12
3328# CHECK: msr      {{vbar_el3|VBAR_EL3}}, x12
3329# CHECK: msr      {{rmr_el1|RMR_EL1}}, x12
3330# CHECK: msr      {{rmr_el2|RMR_EL2}}, x12
3331# CHECK: msr      {{rmr_el3|RMR_EL3}}, x12
3332# CHECK: msr      {{tpidr_el0|TPIDR_EL0}}, x12
3333# CHECK: msr      {{tpidr_el2|TPIDR_EL2}}, x12
3334# CHECK: msr      {{tpidr_el3|TPIDR_EL3}}, x12
3335# CHECK: msr      {{tpidrro_el0|TPIDRRO_EL0}}, x12
3336# CHECK: msr      {{tpidr_el1|TPIDR_EL1}}, x12
3337# CHECK: msr      {{cntfrq_el0|CNTFRQ_EL0}}, x12
3338# CHECK: msr      {{cntvoff_el2|CNTVOFF_EL2}}, x12
3339# CHECK: msr      {{cntkctl_el1|CNTKCTL_EL1}}, x12
3340# CHECK: msr      {{cnthctl_el2|CNTHCTL_EL2}}, x12
3341# CHECK: msr      {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3342# CHECK: msr      {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3343# CHECK: msr      {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3344# CHECK: msr      {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3345# CHECK: msr      {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3346# CHECK: msr      {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3347# CHECK: msr      {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3348# CHECK: msr      {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3349# CHECK: msr      {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3350# CHECK: msr      {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3351# CHECK: msr      {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3352# CHECK: msr      {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3353# CHECK: msr      {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3354# CHECK: msr      {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3355# CHECK: msr      {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3356# CHECK: msr      {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3357# CHECK: msr      {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3358# CHECK: msr      {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3359# CHECK: msr      {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3360# CHECK: msr      {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3361# CHECK: msr      {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3362# CHECK: msr      {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3363# CHECK: msr      {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3364# CHECK: msr      {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3365# CHECK: msr      {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3366# CHECK: msr      {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3367# CHECK: msr      {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3368# CHECK: msr      {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3369# CHECK: msr      {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3370# CHECK: msr      {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3371# CHECK: msr      {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3372# CHECK: msr      {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3373# CHECK: msr      {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3374# CHECK: msr      {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3375# CHECK: msr      {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3376# CHECK: msr      {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3377# CHECK: msr      {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3378# CHECK: msr      {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3379# CHECK: msr      {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3380# CHECK: msr      {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3381# CHECK: msr      {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3382# CHECK: msr      {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3383# CHECK: msr      {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3384# CHECK: msr      {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3385# CHECK: msr      {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3386# CHECK: msr      {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3387# CHECK: msr      {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3388# CHECK: msr      {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3389# CHECK: msr      {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3390# CHECK: msr      {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3391# CHECK: msr      {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3392# CHECK: msr      {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3393# CHECK: msr      {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3394# CHECK: msr      {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3395# CHECK: msr      {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3396# CHECK: msr      {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3397# CHECK: msr      {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3398# CHECK: msr      {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3399# CHECK: msr      {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3400# CHECK: msr      {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3401# CHECK: msr      {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3402# CHECK: msr      {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3403# CHECK: msr      {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3404# CHECK: msr      {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3405# CHECK: msr      {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3406# CHECK: msr      {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3407# CHECK: msr      {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3408# CHECK: msr      {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3409# CHECK: msr      {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3410# CHECK: msr      {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3411# CHECK: msr      {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3412# CHECK: msr      {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3413# CHECK: msr      {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3414# CHECK: msr      {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3415# CHECK: msr      {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3416# CHECK: msr      {{amair2_el1|AMAIR2_EL1}}, x12
3417# CHECK: msr      {{amair2_el12|AMAIR2_EL12}}, x12
3418# CHECK: msr      {{amair2_el2|AMAIR2_EL2}}, x12
3419# CHECK: msr      {{amair2_el3|AMAIR2_EL3}}, x12
3420# CHECK: msr      {{mair2_el1|MAIR2_EL1}}, x12
3421# CHECK: msr      {{mair2_el12|MAIR2_EL12}}, x12
3422# CHECK: msr      {{mair2_el2|MAIR2_EL2}}, x12
3423# CHECK: msr      {{mair2_el3|MAIR2_EL3}}, x12
3424# CHECK: msr      {{pire0_el1|PIRE0_EL1}}, x12
3425# CHECK: msr      {{pire0_el12|PIRE0_EL12}}, x12
3426# CHECK: msr      {{pire0_el2|PIRE0_EL2}}, x12
3427# CHECK: msr      {{pir_el1|PIR_EL1}}, x12
3428# CHECK: msr      {{pir_el12|PIR_EL12}}, x12
3429# CHECK: msr      {{pir_el2|PIR_EL2}}, x12
3430# CHECK: msr      {{pir_el3|PIR_EL3}}, x12
3431# CHECK: msr      {{s2pir_el2|S2PIR_EL2}}, x12
3432# CHECK: msr      {{por_el0|POR_EL0}}, x12
3433# CHECK: msr      {{por_el1|POR_EL1}}, x12
3434# CHECK: msr      {{por_el12|POR_EL12}}, x12
3435# CHECK: msr      {{por_el2|POR_EL2}}, x12
3436# CHECK: msr      {{por_el3|POR_EL3}}, x12
3437# CHECK: msr      {{s2por_el1|S2POR_EL1}}, x12
3438# CHECK: msr      {{sctlr2_el1|SCTLR2_EL1}}, x12
3439# CHECK: msr      {{sctlr2_el12|SCTLR2_EL12}}, x12
3440# CHECK: msr      {{sctlr2_el2|SCTLR2_EL2}}, x12
3441# CHECK: msr      {{tcr2_el1|TCR2_EL1}}, x12
3442# CHECK: msr      {{tcr2_el12|TCR2_EL12}}, x12
3443# CHECK: msr      {{tcr2_el2|TCR2_EL2}}, x12
3444# CHECK: mrs      x9, {{teecr32_el1|TEECR32_EL1}}
3445# CHECK: mrs      x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3446# CHECK: mrs      x9, {{mdccsr_el0|MDCCSR_EL0}}
3447# CHECK: mrs      x9, {{mdccint_el1|MDCCINT_EL1}}
3448# CHECK: mrs      x9, {{mdscr_el1|MDSCR_EL1}}
3449# CHECK: mrs      x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3450# CHECK: mrs      x9, {{dbgdtr_el0|DBGDTR_EL0}}
3451# CHECK: mrs      x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3452# CHECK: mrs      x9, {{oseccr_el1|OSECCR_EL1}}
3453# CHECK: mrs      x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3454# CHECK: mrs      x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3455# CHECK: mrs      x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3456# CHECK: mrs      x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3457# CHECK: mrs      x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3458# CHECK: mrs      x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3459# CHECK: mrs      x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3460# CHECK: mrs      x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3461# CHECK: mrs      x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3462# CHECK: mrs      x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3463# CHECK: mrs      x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3464# CHECK: mrs      x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3465# CHECK: mrs      x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3466# CHECK: mrs      x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3467# CHECK: mrs      x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3468# CHECK: mrs      x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3469# CHECK: mrs      x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3470# CHECK: mrs      x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3471# CHECK: mrs      x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3472# CHECK: mrs      x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3473# CHECK: mrs      x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3474# CHECK: mrs      x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3475# CHECK: mrs      x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3476# CHECK: mrs      x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3477# CHECK: mrs      x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3478# CHECK: mrs      x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3479# CHECK: mrs      x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3480# CHECK: mrs      x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3481# CHECK: mrs      x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3482# CHECK: mrs      x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3483# CHECK: mrs      x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3484# CHECK: mrs      x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3485# CHECK: mrs      x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3486# CHECK: mrs      x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3487# CHECK: mrs      x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3488# CHECK: mrs      x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3489# CHECK: mrs      x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3490# CHECK: mrs      x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3491# CHECK: mrs      x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3492# CHECK: mrs      x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3493# CHECK: mrs      x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3494# CHECK: mrs      x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3495# CHECK: mrs      x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3496# CHECK: mrs      x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3497# CHECK: mrs      x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3498# CHECK: mrs      x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3499# CHECK: mrs      x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3500# CHECK: mrs      x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3501# CHECK: mrs      x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3502# CHECK: mrs      x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3503# CHECK: mrs      x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3504# CHECK: mrs      x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3505# CHECK: mrs      x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3506# CHECK: mrs      x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3507# CHECK: mrs      x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3508# CHECK: mrs      x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3509# CHECK: mrs      x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3510# CHECK: mrs      x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3511# CHECK: mrs      x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3512# CHECK: mrs      x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3513# CHECK: mrs      x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3514# CHECK: mrs      x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3515# CHECK: mrs      x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3516# CHECK: mrs      x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3517# CHECK: mrs      x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3518# CHECK: mrs      x9, {{mdrar_el1|MDRAR_EL1}}
3519# CHECK: mrs      x9, {{teehbr32_el1|TEEHBR32_EL1}}
3520# CHECK: mrs      x9, {{oslsr_el1|OSLSR_EL1}}
3521# CHECK: mrs      x9, {{osdlr_el1|OSDLR_EL1}}
3522# CHECK: mrs      x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3523# CHECK: mrs      x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3524# CHECK: mrs      x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3525# CHECK: mrs      x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3526# CHECK: mrs      x9, {{midr_el1|MIDR_EL1}}
3527# CHECK: mrs      x9, {{ccsidr_el1|CCSIDR_EL1}}
3528# CHECK: mrs      x9, {{csselr_el1|CSSELR_EL1}}
3529# CHECK-V83: mrs  x9, {{ccsidr2_el1|CCSIDR2_EL1}}
3530# CHECK: mrs      x9, {{vpidr_el2|VPIDR_EL2}}
3531# CHECK: mrs      x9, {{clidr_el1|CLIDR_EL1}}
3532# CHECK: mrs      x9, {{ctr_el0|CTR_EL0}}
3533# CHECK: mrs      x9, {{mpidr_el1|MPIDR_EL1}}
3534# CHECK: mrs      x9, {{vmpidr_el2|VMPIDR_EL2}}
3535# CHECK: mrs      x9, {{revidr_el1|REVIDR_EL1}}
3536# CHECK: mrs      x9, {{aidr_el1|AIDR_EL1}}
3537# CHECK: mrs      x9, {{dczid_el0|DCZID_EL0}}
3538# CHECK: mrs      x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3539# CHECK: mrs      x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3540# CHECK: mrs      x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3541# CHECK: mrs      x9, {{id_dfr1_el1|ID_DFR1_EL1}}
3542# CHECK: mrs      x9, {{id_afr0_el1|ID_AFR0_EL1}}
3543# CHECK: mrs      x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3544# CHECK: mrs      x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3545# CHECK: mrs      x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3546# CHECK: mrs      x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3547# CHECK: mrs      x9, {{id_mmfr4_el1|ID_MMFR4_EL1}}
3548# CHECK: mrs      x9, {{id_mmfr5_el1|ID_MMFR5_EL1}}
3549# CHECK: mrs      x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3550# CHECK: mrs      x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3551# CHECK: mrs      x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3552# CHECK: mrs      x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3553# CHECK: mrs      x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3554# CHECK: mrs      x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3555# CHECK: mrs      x9, {{mvfr0_el1|MVFR0_EL1}}
3556# CHECK: mrs      x9, {{mvfr1_el1|MVFR1_EL1}}
3557# CHECK: mrs      x9, {{mvfr2_el1|MVFR2_EL1}}
3558# CHECK: mrs      x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3559# CHECK: mrs      x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3560# CHECK: mrs      x9, {{id_aa64pfr2_el1|ID_AA64PFR2_EL1}}
3561# CHECK: mrs      x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3562# CHECK: mrs      x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3563# CHECK: mrs      x9, {{id_aa64dfr2_el1|ID_AA64DFR2_EL1}}
3564# CHECK: mrs      x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3565# CHECK: mrs      x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3566# CHECK: mrs      x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3567# CHECK: mrs      x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3568# CHECK: mrs      x9, {{id_aa64isar2_el1|ID_AA64ISAR2_EL1}}
3569# CHECK: mrs      x9, {{id_aa64isar2_el1|ID_AA64ISAR3_EL1}}
3570# CHECK: mrs      x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3571# CHECK: mrs      x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3572# CHECK: mrs      x9, {{id_aa64mmfr2_el1|ID_AA64MMFR2_EL1}}
3573# CHECK: mrs      x9, {{id_aa64mmfr3_el1|ID_AA64MMFR3_EL1}}
3574# CHECK: mrs      x9, {{id_aa64mmfr4_el1|ID_AA64MMFR4_EL1}}
3575# CHECK: mrs      x9, {{sctlr_el1|SCTLR_EL1}}
3576# CHECK: mrs      x9, {{sctlr_el2|SCTLR_EL2}}
3577# CHECK: mrs      x9, {{sctlr_el3|SCTLR_EL3}}
3578# CHECK: mrs      x9, {{actlr_el1|ACTLR_EL1}}
3579# CHECK: mrs      x9, {{actlr_el12|ACTLR_EL12}}
3580# CHECK: mrs      x9, {{actlr_el2|ACTLR_EL2}}
3581# CHECK: mrs      x9, {{actlr_el3|ACTLR_EL3}}
3582# CHECK: mrs      x9, {{cpacr_el1|CPACR_EL1}}
3583# CHECK: mrs      x9, {{hcr_el2|HCR_EL2}}
3584# CHECK: mrs      x9, {{scr_el3|SCR_EL3}}
3585# CHECK: mrs      x9, {{mdcr_el2|MDCR_EL2}}
3586# CHECK: mrs      x9, {{sder32_el3|SDER32_EL3}}
3587# CHECK: mrs      x9, {{cptr_el2|CPTR_EL2}}
3588# CHECK: mrs      x9, {{cptr_el3|CPTR_EL3}}
3589# CHECK: mrs      x9, {{hstr_el2|HSTR_EL2}}
3590# CHECK: mrs      x9, {{hacr_el2|HACR_EL2}}
3591# CHECK: mrs      x9, {{mdcr_el3|MDCR_EL3}}
3592# CHECK: mrs      x9, {{ttbr0_el1|TTBR0_EL1}}
3593# CHECK: mrs      x9, {{ttbr0_el2|TTBR0_EL2}}
3594# CHECK: mrs      x9, {{ttbr0_el3|TTBR0_EL3}}
3595# CHECK: mrs      x9, {{ttbr1_el1|TTBR1_EL1}}
3596# CHECK: mrs      x9, {{tcr_el1|TCR_EL1}}
3597# CHECK: mrs      x9, {{tcr_el2|TCR_EL2}}
3598# CHECK: mrs      x9, {{tcr_el3|TCR_EL3}}
3599# CHECK: mrs      x9, {{vttbr_el2|VTTBR_EL2}}
3600# CHECK: mrs      x9, {{vtcr_el2|VTCR_EL2}}
3601# CHECK: mrs      x9, {{dacr32_el2|DACR32_EL2}}
3602# CHECK: mrs      x9, {{spsr_el1|SPSR_EL1}}
3603# CHECK: mrs      x9, {{spsr_el2|SPSR_EL2}}
3604# CHECK: mrs      x9, {{spsr_el3|SPSR_EL3}}
3605# CHECK: mrs      x9, {{elr_el1|ELR_EL1}}
3606# CHECK: mrs      x9, {{elr_el2|ELR_EL2}}
3607# CHECK: mrs      x9, {{elr_el3|ELR_EL3}}
3608# CHECK: mrs      x9, {{sp_el0|SP_EL0}}
3609# CHECK: mrs      x9, {{sp_el1|SP_EL1}}
3610# CHECK: mrs      x9, {{sp_el2|SP_EL2}}
3611# CHECK: mrs      x9, {{SPSel|SPSEL}}
3612# CHECK: mrs      x9, {{nzcv|NZCV}}
3613# CHECK: mrs      x9, {{daif|DAIF}}
3614# CHECK: mrs      x9, {{CurrentEL|CURRENTEL}}
3615# CHECK: mrs      x9, {{SPSR_irq|SPSR_IRQ}}
3616# CHECK: mrs      x9, {{SPSR_abt|SPSR_ABT}}
3617# CHECK: mrs      x9, {{SPSR_und|SPSR_UND}}
3618# CHECK: mrs      x9, {{SPSR_fiq|SPSR_FIQ}}
3619# CHECK: mrs      x9, {{fpcr|FPCR}}
3620# CHECK: mrs      x9, {{fpsr|FPSR}}
3621# CHECK: mrs      x9, {{dspsr_el0|DSPSR_EL0}}
3622# CHECK: mrs      x9, {{dlr_el0|DLR_EL0}}
3623# CHECK: mrs      x9, {{ifsr32_el2|IFSR32_EL2}}
3624# CHECK: mrs      x9, {{afsr0_el1|AFSR0_EL1}}
3625# CHECK: mrs      x9, {{afsr0_el2|AFSR0_EL2}}
3626# CHECK: mrs      x9, {{afsr0_el3|AFSR0_EL3}}
3627# CHECK: mrs      x9, {{afsr1_el1|AFSR1_EL1}}
3628# CHECK: mrs      x9, {{afsr1_el2|AFSR1_EL2}}
3629# CHECK: mrs      x9, {{afsr1_el3|AFSR1_EL3}}
3630# CHECK: mrs      x9, {{esr_el1|ESR_EL1}}
3631# CHECK: mrs      x9, {{esr_el2|ESR_EL2}}
3632# CHECK: mrs      x9, {{esr_el3|ESR_EL3}}
3633# CHECK: mrs      x9, {{fpexc32_el2|FPEXC32_EL2}}
3634# CHECK: mrs      x9, {{far_el1|FAR_EL1}}
3635# CHECK: mrs      x9, {{far_el2|FAR_EL2}}
3636# CHECK: mrs      x9, {{far_el3|FAR_EL3}}
3637# CHECK: mrs      x9, {{hpfar_el2|HPFAR_EL2}}
3638# CHECK: mrs      x9, {{par_el1|PAR_EL1}}
3639# CHECK: mrs      x9, {{pmcr_el0|PMCR_EL0}}
3640# CHECK: mrs      x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3641# CHECK: mrs      x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3642# CHECK: mrs      x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3643# CHECK: mrs      x9, {{pmselr_el0|PMSELR_EL0}}
3644# CHECK: mrs      x9, {{pmceid0_el0|PMCEID0_EL0}}
3645# CHECK: mrs      x9, {{pmceid1_el0|PMCEID1_EL0}}
3646# CHECK: mrs      x9, {{pmccntr_el0|PMCCNTR_EL0}}
3647# CHECK: mrs      x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3648# CHECK: mrs      x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3649# CHECK: mrs      x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3650# CHECK: mrs      x9, {{pmintenset_el1|PMINTENSET_EL1}}
3651# CHECK: mrs      x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3652# CHECK: mrs      x9, {{pmovsset_el0|PMOVSSET_EL0}}
3653# CHECK: mrs      x9, {{mair_el1|MAIR_EL1}}
3654# CHECK: mrs      x9, {{mair_el2|MAIR_EL2}}
3655# CHECK: mrs      x9, {{mair_el3|MAIR_EL3}}
3656# CHECK: mrs      x9, {{amair_el1|AMAIR_EL1}}
3657# CHECK: mrs      x9, {{amair_el2|AMAIR_EL2}}
3658# CHECK: mrs      x9, {{amair_el3|AMAIR_EL3}}
3659# CHECK: mrs      x9, {{vbar_el1|VBAR_EL1}}
3660# CHECK: mrs      x9, {{vbar_el2|VBAR_EL2}}
3661# CHECK: mrs      x9, {{vbar_el3|VBAR_EL3}}
3662# CHECK: mrs      x9, {{rvbar_el1|RVBAR_EL1}}
3663# CHECK: mrs      x9, {{rvbar_el2|RVBAR_EL2}}
3664# CHECK: mrs      x9, {{rvbar_el3|RVBAR_EL3}}
3665# CHECK: mrs      x9, {{rmr_el1|RMR_EL1}}
3666# CHECK: mrs      x9, {{rmr_el2|RMR_EL2}}
3667# CHECK: mrs      x9, {{rmr_el3|RMR_EL3}}
3668# CHECK: mrs      x9, {{isr_el1|ISR_EL1}}
3669# CHECK: mrs      x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3670# CHECK: mrs      x9, {{tpidr_el0|TPIDR_EL0}}
3671# CHECK: mrs      x9, {{tpidr_el2|TPIDR_EL2}}
3672# CHECK: mrs      x9, {{tpidr_el3|TPIDR_EL3}}
3673# CHECK: mrs      x9, {{tpidrro_el0|TPIDRRO_EL0}}
3674# CHECK: mrs      x9, {{tpidr_el1|TPIDR_EL1}}
3675# CHECK: mrs      x9, {{cntfrq_el0|CNTFRQ_EL0}}
3676# CHECK: mrs      x9, {{cntpct_el0|CNTPCT_EL0}}
3677# CHECK: mrs      x9, {{cntvct_el0|CNTVCT_EL0}}
3678# CHECK: mrs      x9, {{cntvoff_el2|CNTVOFF_EL2}}
3679# CHECK: mrs      x9, {{cntkctl_el1|CNTKCTL_EL1}}
3680# CHECK: mrs      x9, {{cnthctl_el2|CNTHCTL_EL2}}
3681# CHECK: mrs      x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3682# CHECK: mrs      x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3683# CHECK: mrs      x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3684# CHECK: mrs      x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3685# CHECK: mrs      x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3686# CHECK: mrs      x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3687# CHECK: mrs      x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3688# CHECK: mrs      x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3689# CHECK: mrs      x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3690# CHECK: mrs      x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3691# CHECK: mrs      x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3692# CHECK: mrs      x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3693# CHECK: mrs      x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3694# CHECK: mrs      x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3695# CHECK: mrs      x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3696# CHECK: mrs      x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3697# CHECK: mrs      x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3698# CHECK: mrs      x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3699# CHECK: mrs      x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3700# CHECK: mrs      x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3701# CHECK: mrs      x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3702# CHECK: mrs      x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3703# CHECK: mrs      x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3704# CHECK: mrs      x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3705# CHECK: mrs      x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3706# CHECK: mrs      x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3707# CHECK: mrs      x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3708# CHECK: mrs      x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3709# CHECK: mrs      x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3710# CHECK: mrs      x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3711# CHECK: mrs      x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3712# CHECK: mrs      x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3713# CHECK: mrs      x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3714# CHECK: mrs      x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3715# CHECK: mrs      x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3716# CHECK: mrs      x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3717# CHECK: mrs      x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3718# CHECK: mrs      x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3719# CHECK: mrs      x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3720# CHECK: mrs      x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3721# CHECK: mrs      x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3722# CHECK: mrs      x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3723# CHECK: mrs      x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3724# CHECK: mrs      x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3725# CHECK: mrs      x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3726# CHECK: mrs      x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3727# CHECK: mrs      x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3728# CHECK: mrs      x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3729# CHECK: mrs      x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3730# CHECK: mrs      x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3731# CHECK: mrs      x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3732# CHECK: mrs      x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3733# CHECK: mrs      x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3734# CHECK: mrs      x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3735# CHECK: mrs      x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3736# CHECK: mrs      x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3737# CHECK: mrs      x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3738# CHECK: mrs      x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3739# CHECK: mrs      x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3740# CHECK: mrs      x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3741# CHECK: mrs      x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3742# CHECK: mrs      x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3743# CHECK: mrs      x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3744# CHECK: mrs      x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3745# CHECK: mrs      x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3746# CHECK: mrs      x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3747# CHECK: mrs      x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3748# CHECK: mrs      x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3749# CHECK: mrs      x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3750# CHECK: mrs      x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3751# CHECK: mrs      x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3752# CHECK: mrs      x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3753# CHECK: mrs      x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3754# CHECK: mrs      x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3755# CHECK: mrs      x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3756# CHECK: mrs      x9, {{amair2_el1|AMAIR2_EL1}}
3757# CHECK: mrs      x9, {{amair2_el12|AMAIR2_EL12}}
3758# CHECK: mrs      x9, {{amair2_el2|AMAIR2_EL2}}
3759# CHECK: mrs      x9, {{amair2_el3|AMAIR2_EL3}}
3760# CHECK: mrs      x9, {{mair2_el1|MAIR2_EL1}}
3761# CHECK: mrs      x9, {{mair2_el12|MAIR2_EL12}}
3762# CHECK: mrs      x9, {{mair2_el2|MAIR2_EL2}}
3763# CHECK: mrs      x9, {{mair2_el3|MAIR2_EL3}}
3764# CHECK: mrs      x9, {{pire0_el1|PIRE0_EL1}}
3765# CHECK: mrs      x9, {{pire0_el12|PIRE0_EL12}}
3766# CHECK: mrs      x9, {{pire0_el2|PIRE0_EL2}}
3767# CHECK: mrs      x9, {{pir_el1|PIR_EL1}}
3768# CHECK: mrs      x9, {{pir_el12|PIR_EL12}}
3769# CHECK: mrs      x9, {{pir_el2|PIR_EL2}}
3770# CHECK: mrs      x9, {{pir_el3|PIR_EL3}}
3771# CHECK: mrs      x9, {{s2pir_el2|S2PIR_EL2}}
3772# CHECK: mrs      x9, {{por_el0|POR_EL0}}
3773# CHECK: mrs      x9, {{por_el1|POR_EL1}}
3774# CHECK: mrs      x9, {{por_el12|POR_EL12}}
3775# CHECK: mrs      x9, {{por_el2|POR_EL2}}
3776# CHECK: mrs      x9, {{por_el3|POR_EL3}}
3777# CHECK: mrs      x9, {{s2por_el1|S2POR_EL1}}
3778# CHECK: mrs      x9, {{sctlr2_el1|SCTLR2_EL1}}
3779# CHECK: mrs      x9, {{sctlr2_el12|SCTLR2_EL12}}
3780# CHECK: mrs      x9, {{sctlr2_el2|SCTLR2_EL2}}
3781# CHECK: mrs      x9, {{sctlr2_el3|SCTLR2_EL3}}
3782# CHECK: mrs      x9, {{tcr2_el1|TCR2_EL1}}
3783# CHECK: mrs      x9, {{tcr2_el12|TCR2_EL12}}
3784# CHECK: mrs      x9, {{tcr2_el2|TCR2_EL2}}
3785
37860xc 0x0 0x12 0xd5
37870x4c 0x0 0x10 0xd5
37880xc 0x2 0x10 0xd5
37890x4c 0x2 0x10 0xd5
37900x4c 0x3 0x10 0xd5
37910xc 0x4 0x13 0xd5
37920xc 0x5 0x13 0xd5
37930x4c 0x6 0x10 0xd5
37940xc 0x7 0x14 0xd5
37950x8c 0x0 0x10 0xd5
37960x8c 0x1 0x10 0xd5
37970x8c 0x2 0x10 0xd5
37980x8c 0x3 0x10 0xd5
37990x8c 0x4 0x10 0xd5
38000x8c 0x5 0x10 0xd5
38010x8c 0x6 0x10 0xd5
38020x8c 0x7 0x10 0xd5
38030x8c 0x8 0x10 0xd5
38040x8c 0x9 0x10 0xd5
38050x8c 0xa 0x10 0xd5
38060x8c 0xb 0x10 0xd5
38070x8c 0xc 0x10 0xd5
38080x8c 0xd 0x10 0xd5
38090x8c 0xe 0x10 0xd5
38100x8c 0xf 0x10 0xd5
38110xac 0x0 0x10 0xd5
38120xac 0x1 0x10 0xd5
38130xac 0x2 0x10 0xd5
38140xac 0x3 0x10 0xd5
38150xac 0x4 0x10 0xd5
38160xac 0x5 0x10 0xd5
38170xac 0x6 0x10 0xd5
38180xac 0x7 0x10 0xd5
38190xac 0x8 0x10 0xd5
38200xac 0x9 0x10 0xd5
38210xac 0xa 0x10 0xd5
38220xac 0xb 0x10 0xd5
38230xac 0xc 0x10 0xd5
38240xac 0xd 0x10 0xd5
38250xac 0xe 0x10 0xd5
38260xac 0xf 0x10 0xd5
38270xcc 0x0 0x10 0xd5
38280xcc 0x1 0x10 0xd5
38290xcc 0x2 0x10 0xd5
38300xcc 0x3 0x10 0xd5
38310xcc 0x4 0x10 0xd5
38320xcc 0x5 0x10 0xd5
38330xcc 0x6 0x10 0xd5
38340xcc 0x7 0x10 0xd5
38350xcc 0x8 0x10 0xd5
38360xcc 0x9 0x10 0xd5
38370xcc 0xa 0x10 0xd5
38380xcc 0xb 0x10 0xd5
38390xcc 0xc 0x10 0xd5
38400xcc 0xd 0x10 0xd5
38410xcc 0xe 0x10 0xd5
38420xcc 0xf 0x10 0xd5
38430xec 0x0 0x10 0xd5
38440xec 0x1 0x10 0xd5
38450xec 0x2 0x10 0xd5
38460xec 0x3 0x10 0xd5
38470xec 0x4 0x10 0xd5
38480xec 0x5 0x10 0xd5
38490xec 0x6 0x10 0xd5
38500xec 0x7 0x10 0xd5
38510xec 0x8 0x10 0xd5
38520xec 0x9 0x10 0xd5
38530xec 0xa 0x10 0xd5
38540xec 0xb 0x10 0xd5
38550xec 0xc 0x10 0xd5
38560xec 0xd 0x10 0xd5
38570xec 0xe 0x10 0xd5
38580xec 0xf 0x10 0xd5
38590xc 0x10 0x12 0xd5
38600x8c 0x10 0x10 0xd5
38610x8c 0x13 0x10 0xd5
38620x8c 0x14 0x10 0xd5
38630xcc 0x78 0x10 0xd5
38640xcc 0x79 0x10 0xd5
38650xc 0x0 0x1a 0xd5
38660xc 0x0 0x1c 0xd5
38670xac 0x0 0x1c 0xd5
38680xc 0x10 0x18 0xd5
38690xc 0x10 0x1c 0xd5
38700xc 0x10 0x1e 0xd5
38710x2c 0x10 0x18 0xd5
38720x2c 0x10 0x1d 0xd5
38730x2c 0x10 0x1c 0xd5
38740x2c 0x10 0x1e 0xd5
38750x4c 0x10 0x18 0xd5
38760xc 0x11 0x1c 0xd5
38770xc 0x11 0x1e 0xd5
38780x2c 0x11 0x1c 0xd5
38790x2c 0x11 0x1e 0xd5
38800x4c 0x11 0x1c 0xd5
38810x4c 0x11 0x1e 0xd5
38820x6c 0x11 0x1c 0xd5
38830xec 0x11 0x1c 0xd5
38840x2c 0x13 0x1e 0xd5
38850xc 0x20 0x18 0xd5
38860xc 0x20 0x1c 0xd5
38870xc 0x20 0x1e 0xd5
38880x2c 0x20 0x18 0xd5
38890x4c 0x20 0x18 0xd5
38900x4c 0x20 0x1c 0xd5
38910x4c 0x20 0x1e 0xd5
38920xc 0x21 0x1c 0xd5
38930x4c 0x21 0x1c 0xd5
38940xc 0x30 0x1c 0xd5
38950xc 0x40 0x18 0xd5
38960xc 0x40 0x1c 0xd5
38970xc 0x40 0x1e 0xd5
38980x2c 0x40 0x18 0xd5
38990x2c 0x40 0x1c 0xd5
39000x2c 0x40 0x1e 0xd5
39010xc 0x41 0x18 0xd5
39020xc 0x41 0x1c 0xd5
39030xc 0x41 0x1e 0xd5
39040xc 0x42 0x18 0xd5
39050xc 0x42 0x1b 0xd5
39060x2c 0x42 0x1b 0xd5
39070x4c 0x42 0x18 0xd5
39080xc 0x43 0x1c 0xd5
39090x2c 0x43 0x1c 0xd5
39100x4c 0x43 0x1c 0xd5
39110x6c 0x43 0x1c 0xd5
39120xc 0x44 0x1b 0xd5
39130x2c 0x44 0x1b 0xd5
39140xc 0x45 0x1b 0xd5
39150x2c 0x45 0x1b 0xd5
39160x2c 0x50 0x1c 0xd5
39170xc 0x51 0x18 0xd5
39180xc 0x51 0x1c 0xd5
39190xc 0x51 0x1e 0xd5
39200x2c 0x51 0x18 0xd5
39210x2c 0x51 0x1c 0xd5
39220x2c 0x51 0x1e 0xd5
39230xc 0x52 0x18 0xd5
39240xc 0x52 0x1c 0xd5
39250xc 0x52 0x1e 0xd5
39260xc 0x53 0x1c 0xd5
39270xc 0x60 0x18 0xd5
39280xc 0x60 0x1c 0xd5
39290xc 0x60 0x1e 0xd5
39300x8c 0x60 0x1c 0xd5
39310xc 0x74 0x18 0xd5
39320xc 0x9c 0x1b 0xd5
39330x2c 0x9c 0x1b 0xd5
39340x4c 0x9c 0x1b 0xd5
39350x6c 0x9c 0x1b 0xd5
39360xac 0x9c 0x1b 0xd5
39370xc 0x9d 0x1b 0xd5
39380x2c 0x9d 0x1b 0xd5
39390x4c 0x9d 0x1b 0xd5
39400xc 0x9e 0x1b 0xd5
39410x2c 0x9e 0x18 0xd5
39420x4c 0x9e 0x18 0xd5
39430x6c 0x9e 0x1b 0xd5
39440xcc 0x9e 0x18 0xd5
39450xc 0xa2 0x18 0xd5
39460xc 0xa2 0x1c 0xd5
39470xc 0xa2 0x1e 0xd5
39480xc 0xa3 0x18 0xd5
39490xc 0xa3 0x1c 0xd5
39500xc 0xa3 0x1e 0xd5
39510xc 0xc0 0x18 0xd5
39520xc 0xc0 0x1c 0xd5
39530xc 0xc0 0x1e 0xd5
39540x4c 0xc0 0x18 0xd5
39550x4c 0xc0 0x1c 0xd5
39560x4c 0xc0 0x1e 0xd5
39570x4c 0xd0 0x1b 0xd5
39580x4c 0xd0 0x1c 0xd5
39590x4c 0xd0 0x1e 0xd5
39600x6c 0xd0 0x1b 0xd5
39610x8c 0xd0 0x18 0xd5
39620xc 0xe0 0x1b 0xd5
39630x6c 0xe0 0x1c 0xd5
39640xc 0xe1 0x18 0xd5
39650xc 0xe1 0x1c 0xd5
39660xc 0xe2 0x1b 0xd5
39670xc 0xe2 0x1c 0xd5
39680xc 0xe2 0x1f 0xd5
39690x2c 0xe2 0x1b 0xd5
39700x2c 0xe2 0x1c 0xd5
39710x2c 0xe2 0x1f 0xd5
39720x4c 0xe2 0x1b 0xd5
39730x4c 0xe2 0x1c 0xd5
39740x4c 0xe2 0x1f 0xd5
39750xc 0xe3 0x1b 0xd5
39760x2c 0xe3 0x1b 0xd5
39770x4c 0xe3 0x1b 0xd5
39780xc 0xe8 0x1b 0xd5
39790x2c 0xe8 0x1b 0xd5
39800x4c 0xe8 0x1b 0xd5
39810x6c 0xe8 0x1b 0xd5
39820x8c 0xe8 0x1b 0xd5
39830xac 0xe8 0x1b 0xd5
39840xcc 0xe8 0x1b 0xd5
39850xec 0xe8 0x1b 0xd5
39860xc 0xe9 0x1b 0xd5
39870x2c 0xe9 0x1b 0xd5
39880x4c 0xe9 0x1b 0xd5
39890x6c 0xe9 0x1b 0xd5
39900x8c 0xe9 0x1b 0xd5
39910xac 0xe9 0x1b 0xd5
39920xcc 0xe9 0x1b 0xd5
39930xec 0xe9 0x1b 0xd5
39940xc 0xea 0x1b 0xd5
39950x2c 0xea 0x1b 0xd5
39960x4c 0xea 0x1b 0xd5
39970x6c 0xea 0x1b 0xd5
39980x8c 0xea 0x1b 0xd5
39990xac 0xea 0x1b 0xd5
40000xcc 0xea 0x1b 0xd5
40010xec 0xea 0x1b 0xd5
40020xc 0xeb 0x1b 0xd5
40030x2c 0xeb 0x1b 0xd5
40040x4c 0xeb 0x1b 0xd5
40050x6c 0xeb 0x1b 0xd5
40060x8c 0xeb 0x1b 0xd5
40070xac 0xeb 0x1b 0xd5
40080xcc 0xeb 0x1b 0xd5
40090xec 0xef 0x1b 0xd5
40100xc 0xec 0x1b 0xd5
40110x2c 0xec 0x1b 0xd5
40120x4c 0xec 0x1b 0xd5
40130x6c 0xec 0x1b 0xd5
40140x8c 0xec 0x1b 0xd5
40150xac 0xec 0x1b 0xd5
40160xcc 0xec 0x1b 0xd5
40170xec 0xec 0x1b 0xd5
40180xc 0xed 0x1b 0xd5
40190x2c 0xed 0x1b 0xd5
40200x4c 0xed 0x1b 0xd5
40210x6c 0xed 0x1b 0xd5
40220x8c 0xed 0x1b 0xd5
40230xac 0xed 0x1b 0xd5
40240xcc 0xed 0x1b 0xd5
40250xec 0xed 0x1b 0xd5
40260xc 0xee 0x1b 0xd5
40270x2c 0xee 0x1b 0xd5
40280x4c 0xee 0x1b 0xd5
40290x6c 0xee 0x1b 0xd5
40300x8c 0xee 0x1b 0xd5
40310xac 0xee 0x1b 0xd5
40320xcc 0xee 0x1b 0xd5
40330xec 0xee 0x1b 0xd5
40340xc 0xef 0x1b 0xd5
40350x2c 0xef 0x1b 0xd5
40360x4c 0xef 0x1b 0xd5
40370x6c 0xef 0x1b 0xd5
40380x8c 0xef 0x1b 0xd5
40390xac 0xef 0x1b 0xd5
40400xcc 0xef 0x1b 0xd5
40410x2c 0xa3 0x18 0xd5
40420x2c 0xa3 0x1d 0xd5
40430x2c 0xa3 0x1c 0xd5
40440x2c 0xa3 0x1e 0xd5
40450x2c 0xa2 0x18 0xd5
40460x2c 0xa2 0x1d 0xd5
40470x2c 0xa1 0x1c 0xd5
40480x2c 0xa1 0x1e 0xd5
40490x4c 0xa2 0x18 0xd5
40500x4c 0xa2 0x1d 0xd5
40510x4c 0xa2 0x1c 0xd5
40520x6c 0xa2 0x18 0xd5
40530x6c 0xa2 0x1d 0xd5
40540x6c 0xa2 0x1c 0xd5
40550x6c 0xa2 0x1e 0xd5
40560xac 0xa2 0x1c 0xd5
40570x8c 0xa2 0x1b 0xd5
40580x8c 0xa2 0x18 0xd5
40590x8c 0xa2 0x1d 0xd5
40600x8c 0xa2 0x1c 0xd5
40610x8c 0xa2 0x1e 0xd5
40620xac 0xa2 0x18 0xd5
40630x6c 0x10 0x18 0xd5
40640x6c 0x10 0x1d 0xd5
40650x6c 0x10 0x1c 0xd5
40660x6c 0x10 0x1e 0xd5
40670x6c 0x20 0x18 0xd5
40680x6c 0x20 0x1d 0xd5
40690x6c 0x20 0x1c 0xd5
40700x9 0x0 0x32 0xd5
40710x49 0x0 0x30 0xd5
40720x9 0x1 0x33 0xd5
40730x9 0x2 0x30 0xd5
40740x49 0x2 0x30 0xd5
40750x49 0x3 0x30 0xd5
40760x9 0x4 0x33 0xd5
40770x9 0x5 0x33 0xd5
40780x49 0x6 0x30 0xd5
40790x9 0x7 0x34 0xd5
40800x89 0x0 0x30 0xd5
40810x89 0x1 0x30 0xd5
40820x89 0x2 0x30 0xd5
40830x89 0x3 0x30 0xd5
40840x89 0x4 0x30 0xd5
40850x89 0x5 0x30 0xd5
40860x89 0x6 0x30 0xd5
40870x89 0x7 0x30 0xd5
40880x89 0x8 0x30 0xd5
40890x89 0x9 0x30 0xd5
40900x89 0xa 0x30 0xd5
40910x89 0xb 0x30 0xd5
40920x89 0xc 0x30 0xd5
40930x89 0xd 0x30 0xd5
40940x89 0xe 0x30 0xd5
40950x89 0xf 0x30 0xd5
40960xa9 0x0 0x30 0xd5
40970xa9 0x1 0x30 0xd5
40980xa9 0x2 0x30 0xd5
40990xa9 0x3 0x30 0xd5
41000xa9 0x4 0x30 0xd5
41010xa9 0x5 0x30 0xd5
41020xa9 0x6 0x30 0xd5
41030xa9 0x7 0x30 0xd5
41040xa9 0x8 0x30 0xd5
41050xa9 0x9 0x30 0xd5
41060xa9 0xa 0x30 0xd5
41070xa9 0xb 0x30 0xd5
41080xa9 0xc 0x30 0xd5
41090xa9 0xd 0x30 0xd5
41100xa9 0xe 0x30 0xd5
41110xa9 0xf 0x30 0xd5
41120xc9 0x0 0x30 0xd5
41130xc9 0x1 0x30 0xd5
41140xc9 0x2 0x30 0xd5
41150xc9 0x3 0x30 0xd5
41160xc9 0x4 0x30 0xd5
41170xc9 0x5 0x30 0xd5
41180xc9 0x6 0x30 0xd5
41190xc9 0x7 0x30 0xd5
41200xc9 0x8 0x30 0xd5
41210xc9 0x9 0x30 0xd5
41220xc9 0xa 0x30 0xd5
41230xc9 0xb 0x30 0xd5
41240xc9 0xc 0x30 0xd5
41250xc9 0xd 0x30 0xd5
41260xc9 0xe 0x30 0xd5
41270xc9 0xf 0x30 0xd5
41280xe9 0x0 0x30 0xd5
41290xe9 0x1 0x30 0xd5
41300xe9 0x2 0x30 0xd5
41310xe9 0x3 0x30 0xd5
41320xe9 0x4 0x30 0xd5
41330xe9 0x5 0x30 0xd5
41340xe9 0x6 0x30 0xd5
41350xe9 0x7 0x30 0xd5
41360xe9 0x8 0x30 0xd5
41370xe9 0x9 0x30 0xd5
41380xe9 0xa 0x30 0xd5
41390xe9 0xb 0x30 0xd5
41400xe9 0xc 0x30 0xd5
41410xe9 0xd 0x30 0xd5
41420xe9 0xe 0x30 0xd5
41430xe9 0xf 0x30 0xd5
41440x9 0x10 0x30 0xd5
41450x9 0x10 0x32 0xd5
41460x89 0x11 0x30 0xd5
41470x89 0x13 0x30 0xd5
41480x89 0x14 0x30 0xd5
41490xc9 0x78 0x30 0xd5
41500xc9 0x79 0x30 0xd5
41510xc9 0x7e 0x30 0xd5
41520x9 0x0 0x38 0xd5
41530x9 0x0 0x39 0xd5
41540x9 0x0 0x3a 0xd5
41550x49 0x0 0x39 0xd5
41560x9 0x0 0x3c 0xd5
41570x29 0x0 0x39 0xd5
41580x29 0x0 0x3b 0xd5
41590xa9 0x0 0x38 0xd5
41600xa9 0x0 0x3c 0xd5
41610xc9 0x0 0x38 0xd5
41620xe9 0x0 0x39 0xd5
41630xe9 0x0 0x3b 0xd5
41640x9 0x1 0x38 0xd5
41650x29 0x1 0x38 0xd5
41660x49 0x1 0x38 0xd5
41670xa9 0x3 0x38 0xd5
41680x69 0x1 0x38 0xd5
41690x89 0x1 0x38 0xd5
41700xa9 0x1 0x38 0xd5
41710xc9 0x1 0x38 0xd5
41720xe9 0x1 0x38 0xd5
41730xc9 0x2 0x38 0xd5
41740xc9 0x3 0x38 0xd5
41750x9 0x2 0x38 0xd5
41760x29 0x2 0x38 0xd5
41770x49 0x2 0x38 0xd5
41780x69 0x2 0x38 0xd5
41790x89 0x2 0x38 0xd5
41800xa9 0x2 0x38 0xd5
41810x9 0x3 0x38 0xd5
41820x29 0x3 0x38 0xd5
41830x49 0x3 0x38 0xd5
41840x9 0x4 0x38 0xd5
41850x29 0x4 0x38 0xd5
41860x49 0x4 0x38 0xd5
41870x9 0x5 0x38 0xd5
41880x29 0x5 0x38 0xd5
41890x49 0x5 0x38 0xd5
41900x89 0x5 0x38 0xd5
41910xa9 0x5 0x38 0xd5
41920x9 0x6 0x38 0xd5
41930x29 0x6 0x38 0xd5
41940x49 0x06 0x38 0xd5
41950x69 0x06 0x38 0xd5
41960x9 0x7 0x38 0xd5
41970x29 0x7 0x38 0xd5
41980x49 0x7 0x38 0xd5
41990x69 0x7 0x38 0xd5
42000x89 0x7 0x38 0xd5
42010x9 0x10 0x38 0xd5
42020x9 0x10 0x3c 0xd5
42030x9 0x10 0x3e 0xd5
42040x29 0x10 0x38 0xd5
42050x29 0x10 0x3d 0xd5
42060x29 0x10 0x3c 0xd5
42070x29 0x10 0x3e 0xd5
42080x49 0x10 0x38 0xd5
42090x9 0x11 0x3c 0xd5
42100x9 0x11 0x3e 0xd5
42110x29 0x11 0x3c 0xd5
42120x29 0x11 0x3e 0xd5
42130x49 0x11 0x3c 0xd5
42140x49 0x11 0x3e 0xd5
42150x69 0x11 0x3c 0xd5
42160xe9 0x11 0x3c 0xd5
42170x29 0x13 0x3e 0xd5
42180x9 0x20 0x38 0xd5
42190x9 0x20 0x3c 0xd5
42200x9 0x20 0x3e 0xd5
42210x29 0x20 0x38 0xd5
42220x49 0x20 0x38 0xd5
42230x49 0x20 0x3c 0xd5
42240x49 0x20 0x3e 0xd5
42250x9 0x21 0x3c 0xd5
42260x49 0x21 0x3c 0xd5
42270x9 0x30 0x3c 0xd5
42280x9 0x40 0x38 0xd5
42290x9 0x40 0x3c 0xd5
42300x9 0x40 0x3e 0xd5
42310x29 0x40 0x38 0xd5
42320x29 0x40 0x3c 0xd5
42330x29 0x40 0x3e 0xd5
42340x9 0x41 0x38 0xd5
42350x9 0x41 0x3c 0xd5
42360x9 0x41 0x3e 0xd5
42370x9 0x42 0x38 0xd5
42380x9 0x42 0x3b 0xd5
42390x29 0x42 0x3b 0xd5
42400x49 0x42 0x38 0xd5
42410x9 0x43 0x3c 0xd5
42420x29 0x43 0x3c 0xd5
42430x49 0x43 0x3c 0xd5
42440x69 0x43 0x3c 0xd5
42450x9 0x44 0x3b 0xd5
42460x29 0x44 0x3b 0xd5
42470x9 0x45 0x3b 0xd5
42480x29 0x45 0x3b 0xd5
42490x29 0x50 0x3c 0xd5
42500x9 0x51 0x38 0xd5
42510x9 0x51 0x3c 0xd5
42520x9 0x51 0x3e 0xd5
42530x29 0x51 0x38 0xd5
42540x29 0x51 0x3c 0xd5
42550x29 0x51 0x3e 0xd5
42560x9 0x52 0x38 0xd5
42570x9 0x52 0x3c 0xd5
42580x9 0x52 0x3e 0xd5
42590x9 0x53 0x3c 0xd5
42600x9 0x60 0x38 0xd5
42610x9 0x60 0x3c 0xd5
42620x9 0x60 0x3e 0xd5
42630x89 0x60 0x3c 0xd5
42640x9 0x74 0x38 0xd5
42650x9 0x9c 0x3b 0xd5
42660x29 0x9c 0x3b 0xd5
42670x49 0x9c 0x3b 0xd5
42680x69 0x9c 0x3b 0xd5
42690xa9 0x9c 0x3b 0xd5
42700xc9 0x9c 0x3b 0xd5
42710xe9 0x9c 0x3b 0xd5
42720x9 0x9d 0x3b 0xd5
42730x29 0x9d 0x3b 0xd5
42740x49 0x9d 0x3b 0xd5
42750x9 0x9e 0x3b 0xd5
42760x29 0x9e 0x38 0xd5
42770x49 0x9e 0x38 0xd5
42780x69 0x9e 0x3b 0xd5
42790xc9 0x9e 0x38 0xd5
42800x9 0xa2 0x38 0xd5
42810x9 0xa2 0x3c 0xd5
42820x9 0xa2 0x3e 0xd5
42830x9 0xa3 0x38 0xd5
42840x9 0xa3 0x3c 0xd5
42850x9 0xa3 0x3e 0xd5
42860x9 0xc0 0x38 0xd5
42870x9 0xc0 0x3c 0xd5
42880x9 0xc0 0x3e 0xd5
42890x29 0xc0 0x38 0xd5
42900x29 0xc0 0x3c 0xd5
42910x29 0xc0 0x3e 0xd5
42920x49 0xc0 0x38 0xd5
42930x49 0xc0 0x3c 0xd5
42940x49 0xc0 0x3e 0xd5
42950x9 0xc1 0x38 0xd5
42960x29 0xd0 0x38 0xd5
42970x49 0xd0 0x3b 0xd5
42980x49 0xd0 0x3c 0xd5
42990x49 0xd0 0x3e 0xd5
43000x69 0xd0 0x3b 0xd5
43010x89 0xd0 0x38 0xd5
43020x9 0xe0 0x3b 0xd5
43030x29 0xe0 0x3b 0xd5
43040x49 0xe0 0x3b 0xd5
43050x69 0xe0 0x3c 0xd5
43060x9 0xe1 0x38 0xd5
43070x9 0xe1 0x3c 0xd5
43080x9 0xe2 0x3b 0xd5
43090x9 0xe2 0x3c 0xd5
43100x9 0xe2 0x3f 0xd5
43110x29 0xe2 0x3b 0xd5
43120x29 0xe2 0x3c 0xd5
43130x29 0xe2 0x3f 0xd5
43140x49 0xe2 0x3b 0xd5
43150x49 0xe2 0x3c 0xd5
43160x49 0xe2 0x3f 0xd5
43170x9 0xe3 0x3b 0xd5
43180x29 0xe3 0x3b 0xd5
43190x49 0xe3 0x3b 0xd5
43200x9 0xe8 0x3b 0xd5
43210x29 0xe8 0x3b 0xd5
43220x49 0xe8 0x3b 0xd5
43230x69 0xe8 0x3b 0xd5
43240x89 0xe8 0x3b 0xd5
43250xa9 0xe8 0x3b 0xd5
43260xc9 0xe8 0x3b 0xd5
43270xe9 0xe8 0x3b 0xd5
43280x9 0xe9 0x3b 0xd5
43290x29 0xe9 0x3b 0xd5
43300x49 0xe9 0x3b 0xd5
43310x69 0xe9 0x3b 0xd5
43320x89 0xe9 0x3b 0xd5
43330xa9 0xe9 0x3b 0xd5
43340xc9 0xe9 0x3b 0xd5
43350xe9 0xe9 0x3b 0xd5
43360x9 0xea 0x3b 0xd5
43370x29 0xea 0x3b 0xd5
43380x49 0xea 0x3b 0xd5
43390x69 0xea 0x3b 0xd5
43400x89 0xea 0x3b 0xd5
43410xa9 0xea 0x3b 0xd5
43420xc9 0xea 0x3b 0xd5
43430xe9 0xea 0x3b 0xd5
43440x9 0xeb 0x3b 0xd5
43450x29 0xeb 0x3b 0xd5
43460x49 0xeb 0x3b 0xd5
43470x69 0xeb 0x3b 0xd5
43480x89 0xeb 0x3b 0xd5
43490xa9 0xeb 0x3b 0xd5
43500xc9 0xeb 0x3b 0xd5
43510xe9 0xef 0x3b 0xd5
43520x9 0xec 0x3b 0xd5
43530x29 0xec 0x3b 0xd5
43540x49 0xec 0x3b 0xd5
43550x69 0xec 0x3b 0xd5
43560x89 0xec 0x3b 0xd5
43570xa9 0xec 0x3b 0xd5
43580xc9 0xec 0x3b 0xd5
43590xe9 0xec 0x3b 0xd5
43600x9 0xed 0x3b 0xd5
43610x29 0xed 0x3b 0xd5
43620x49 0xed 0x3b 0xd5
43630x69 0xed 0x3b 0xd5
43640x89 0xed 0x3b 0xd5
43650xa9 0xed 0x3b 0xd5
43660xc9 0xed 0x3b 0xd5
43670xe9 0xed 0x3b 0xd5
43680x9 0xee 0x3b 0xd5
43690x29 0xee 0x3b 0xd5
43700x49 0xee 0x3b 0xd5
43710x69 0xee 0x3b 0xd5
43720x89 0xee 0x3b 0xd5
43730xa9 0xee 0x3b 0xd5
43740xc9 0xee 0x3b 0xd5
43750xe9 0xee 0x3b 0xd5
43760x9 0xef 0x3b 0xd5
43770x29 0xef 0x3b 0xd5
43780x49 0xef 0x3b 0xd5
43790x69 0xef 0x3b 0xd5
43800x89 0xef 0x3b 0xd5
43810xa9 0xef 0x3b 0xd5
43820xc9 0xef 0x3b 0xd5
43830x29 0xa3 0x38 0xd5
43840x29 0xa3 0x3d 0xd5
43850x29 0xa3 0x3c 0xd5
43860x29 0xa3 0x3e 0xd5
43870x29 0xa2 0x38 0xd5
43880x29 0xa2 0x3d 0xd5
43890x29 0xa1 0x3c 0xd5
43900x29 0xa1 0x3e 0xd5
43910x49 0xa2 0x38 0xd5
43920x49 0xa2 0x3d 0xd5
43930x49 0xa2 0x3c 0xd5
43940x69 0xa2 0x38 0xd5
43950x69 0xa2 0x3d 0xd5
43960x69 0xa2 0x3c 0xd5
43970x69 0xa2 0x3e 0xd5
43980xa9 0xa2 0x3c 0xd5
43990x89 0xa2 0x3b 0xd5
44000x89 0xa2 0x38 0xd5
44010x89 0xa2 0x3d 0xd5
44020x89 0xa2 0x3c 0xd5
44030x89 0xa2 0x3e 0xd5
44040xa9 0xa2 0x38 0xd5
44050x69 0x10 0x38 0xd5
44060x69 0x10 0x3d 0xd5
44070x69 0x10 0x3c 0xd5
44080x69 0x10 0x3e 0xd5
44090x69 0x20 0x38 0xd5
44100x69 0x20 0x3d 0xd5
44110x69 0x20 0x3c 0xd5
4412
4413# CHECK: mrs     x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4414# CHECK: mrs     x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4415# CHECK: mrs     xzr, {{s0_0_c4_c0_0|S0_0_C4_C0_0}}
4416# CHECK: msr     {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4417# CHECK: msr     {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4418# CHECK: msr     {{s0_0_c4_c0_0|S0_0_C4_C0_0}}, xzr
44190xac 0xf1 0x3f 0xd5
44200xed 0xbf 0x3a 0xd5
44210x1f 0x40 0x20 0xd5
44220x0c 0xf0 0x18 0xd5
44230xe5 0xbd 0x1f 0xd5
44240x1f 0x40 0x00 0xd5
4425
4426#------------------------------------------------------------------------------
4427# Test and branch (immediate)
4428#------------------------------------------------------------------------------
4429
4430# CHECK: tbz     x12, #62, #0
4431# CHECK: tbz     x12, #62, #4
4432# CHECK: tbz     x12, #62, #-32768
4433# CHECK: tbnz    x12, #60, #32764
44340x0c 0x00 0xf0 0xb6
44350x2c 0x00 0xf0 0xb6
44360x0c 0x00 0xf4 0xb6
44370xec 0xff 0xe3 0xb7
4438
4439#------------------------------------------------------------------------------
4440# Unconditional branch (immediate)
4441#------------------------------------------------------------------------------
4442
4443# CHECK: b        #4
4444# CHECK: b        #-4
4445# CHECK: b        #134217724
44460x01 0x00 0x00 0x14
44470xff 0xff 0xff 0x17
44480xff 0xff 0xff 0x15
4449
4450#------------------------------------------------------------------------------
4451# Unconditional branch (register)
4452#------------------------------------------------------------------------------
4453
4454# CHECK: br       x20
4455# CHECK: blr      xzr
4456# CHECK: ret      x10
44570x80 0x2 0x1f 0xd6
44580xe0 0x3 0x3f 0xd6
44590x40 0x1 0x5f 0xd6
4460
4461# CHECK: ret
4462# CHECK: eret
4463# CHECK: drps
44640xc0 0x3 0x5f 0xd6
44650xe0 0x3 0x9f 0xd6
44660xe0 0x3 0xbf 0xd6
4467
4468