]> git.proxmox.com Git - rustc.git/blame - src/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / test / MC / Disassembler / AArch64 / basic-a64-instructions.txt
CommitLineData
1a4d82fc
JJ
1# RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2# RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
970d7e83
LB
3
4#------------------------------------------------------------------------------
5# Add/sub (immediate)
6#------------------------------------------------------------------------------
7# CHECK: add w4, w5, #0
8# CHECK: add w2, w3, #4095
9# CHECK: add w30, w29, #1, lsl #12
10# CHECK: add w13, w5, #4095, lsl #12
11# CHECK: add x5, x7, #1638
120xa4 0x0 0x0 0x11
130x62 0xfc 0x3f 0x11
140xbe 0x7 0x40 0x11
150xad 0xfc 0x7f 0x11
160xe5 0x98 0x19 0x91
17
18# CHECK: add w20, wsp, #801
19# CHECK: add wsp, wsp, #1104
20# CHECK: add wsp, w30, #4084
210xf4 0x87 0xc 0x11
220xff 0x43 0x11 0x11
230xdf 0xd3 0x3f 0x11
24
25# CHECK: add x0, x24, #291
26# CHECK: add x3, x24, #4095, lsl #12
27# CHECK: add x8, sp, #1074
28# CHECK: add sp, x29, #3816
290x0 0x8f 0x4 0x91
300x3 0xff 0x7f 0x91
310xe8 0xcb 0x10 0x91
320xbf 0xa3 0x3b 0x91
33
34# CHECK: sub w0, wsp, #4077
35# CHECK: sub w4, w20, #546, lsl #12
36# CHECK: sub sp, sp, #288
37# CHECK: sub wsp, w19, #16
380xe0 0xb7 0x3f 0x51
390x84 0x8a 0x48 0x51
400xff 0x83 0x4 0xd1
410x7f 0x42 0x0 0x51
42
43
44# CHECK: adds w13, w23, #291, lsl #12
45# CHECK: cmn w2, #4095
46# CHECK: adds w20, wsp, #0
47# CHECK: cmn x3, #1, lsl #12
480xed 0x8e 0x44 0x31
490x5f 0xfc 0x3f 0x31
500xf4 0x3 0x0 0x31
510x7f 0x4 0x40 0xb1
52
53# CHECK: cmp sp, #20, lsl #12
54# CHECK: cmp x30, #4095
55# CHECK: subs x4, sp, #3822
560xff 0x53 0x40 0xf1
570xdf 0xff 0x3f 0xf1
580xe4 0xbb 0x3b 0xf1
59
60# These should really be CMN
61# CHECK: cmn w3, #291, lsl #12
62# CHECK: cmn wsp, #1365
63# CHECK: cmn sp, #1092, lsl #12
640x7f 0x8c 0x44 0x31
650xff 0x57 0x15 0x31
660xff 0x13 0x51 0xb1
67
68# CHECK: mov sp, x30
69# CHECK: mov wsp, w20
70# CHECK: mov x11, sp
71# CHECK: mov w24, wsp
720xdf 0x3 0x0 0x91
730x9f 0x2 0x0 0x11
740xeb 0x3 0x0 0x91
750xf8 0x3 0x0 0x11
76
77#------------------------------------------------------------------------------
78# Add-subtract (shifted register)
79#------------------------------------------------------------------------------
80
81# CHECK: add w3, w5, w7
82# CHECK: add wzr, w3, w5
83# CHECK: add w20, wzr, w4
84# CHECK: add w4, w6, wzr
85# CHECK: add w11, w13, w15
86# CHECK: add w9, w3, wzr, lsl #10
87# CHECK: add w17, w29, w20, lsl #31
88# CHECK: add w21, w22, w23, lsr #0
89# CHECK: add w24, w25, w26, lsr #18
90# CHECK: add w27, w28, w29, lsr #31
91# CHECK: add w2, w3, w4, asr #0
92# CHECK: add w5, w6, w7, asr #21
93# CHECK: add w8, w9, w10, asr #31
940xa3 0x0 0x7 0xb
950x7f 0x0 0x5 0xb
960xf4 0x3 0x4 0xb
970xc4 0x0 0x1f 0xb
980xab 0x1 0xf 0xb
990x69 0x28 0x1f 0xb
1000xb1 0x7f 0x14 0xb
1010xd5 0x2 0x57 0xb
1020x38 0x4b 0x5a 0xb
1030x9b 0x7f 0x5d 0xb
1040x62 0x0 0x84 0xb
1050xc5 0x54 0x87 0xb
1060x28 0x7d 0x8a 0xb
107
108# CHECK: add x3, x5, x7
109# CHECK: add xzr, x3, x5
110# CHECK: add x20, xzr, x4
111# CHECK: add x4, x6, xzr
112# CHECK: add x11, x13, x15
113# CHECK: add x9, x3, xzr, lsl #10
114# CHECK: add x17, x29, x20, lsl #63
115# CHECK: add x21, x22, x23, lsr #0
116# CHECK: add x24, x25, x26, lsr #18
117# CHECK: add x27, x28, x29, lsr #63
118# CHECK: add x2, x3, x4, asr #0
119# CHECK: add x5, x6, x7, asr #21
120# CHECK: add x8, x9, x10, asr #63
1210xa3 0x0 0x7 0x8b
1220x7f 0x0 0x5 0x8b
1230xf4 0x3 0x4 0x8b
1240xc4 0x0 0x1f 0x8b
1250xab 0x1 0xf 0x8b
1260x69 0x28 0x1f 0x8b
1270xb1 0xff 0x14 0x8b
1280xd5 0x2 0x57 0x8b
1290x38 0x4b 0x5a 0x8b
1300x9b 0xff 0x5d 0x8b
1310x62 0x0 0x84 0x8b
1320xc5 0x54 0x87 0x8b
1330x28 0xfd 0x8a 0x8b
134
135# CHECK: adds w3, w5, w7
136# CHECK: cmn w3, w5
137# CHECK: adds w20, wzr, w4
138# CHECK: adds w4, w6, wzr
139# CHECK: adds w11, w13, w15
140# CHECK: adds w9, w3, wzr, lsl #10
141# CHECK: adds w17, w29, w20, lsl #31
142# CHECK: adds w21, w22, w23, lsr #0
143# CHECK: adds w24, w25, w26, lsr #18
144# CHECK: adds w27, w28, w29, lsr #31
145# CHECK: adds w2, w3, w4, asr #0
146# CHECK: adds w5, w6, w7, asr #21
147# CHECK: adds w8, w9, w10, asr #31
1480xa3 0x0 0x7 0x2b
1490x7f 0x0 0x5 0x2b
1500xf4 0x3 0x4 0x2b
1510xc4 0x0 0x1f 0x2b
1520xab 0x1 0xf 0x2b
1530x69 0x28 0x1f 0x2b
1540xb1 0x7f 0x14 0x2b
1550xd5 0x2 0x57 0x2b
1560x38 0x4b 0x5a 0x2b
1570x9b 0x7f 0x5d 0x2b
1580x62 0x0 0x84 0x2b
1590xc5 0x54 0x87 0x2b
1600x28 0x7d 0x8a 0x2b
161
162# CHECK: adds x3, x5, x7
163# CHECK: cmn x3, x5
164# CHECK: adds x20, xzr, x4
165# CHECK: adds x4, x6, xzr
166# CHECK: adds x11, x13, x15
167# CHECK: adds x9, x3, xzr, lsl #10
168# CHECK: adds x17, x29, x20, lsl #63
169# CHECK: adds x21, x22, x23, lsr #0
170# CHECK: adds x24, x25, x26, lsr #18
171# CHECK: adds x27, x28, x29, lsr #63
172# CHECK: adds x2, x3, x4, asr #0
173# CHECK: adds x5, x6, x7, asr #21
174# CHECK: adds x8, x9, x10, asr #63
1750xa3 0x0 0x7 0xab
1760x7f 0x0 0x5 0xab
1770xf4 0x3 0x4 0xab
1780xc4 0x0 0x1f 0xab
1790xab 0x1 0xf 0xab
1800x69 0x28 0x1f 0xab
1810xb1 0xff 0x14 0xab
1820xd5 0x2 0x57 0xab
1830x38 0x4b 0x5a 0xab
1840x9b 0xff 0x5d 0xab
1850x62 0x0 0x84 0xab
1860xc5 0x54 0x87 0xab
1870x28 0xfd 0x8a 0xab
188
189# CHECK: sub w3, w5, w7
190# CHECK: sub wzr, w3, w5
1a4d82fc 191# CHECK: {{sub w20, wzr, w4|neg w20, w4}}
970d7e83
LB
192# CHECK: sub w4, w6, wzr
193# CHECK: sub w11, w13, w15
194# CHECK: sub w9, w3, wzr, lsl #10
195# CHECK: sub w17, w29, w20, lsl #31
196# CHECK: sub w21, w22, w23, lsr #0
197# CHECK: sub w24, w25, w26, lsr #18
198# CHECK: sub w27, w28, w29, lsr #31
199# CHECK: sub w2, w3, w4, asr #0
200# CHECK: sub w5, w6, w7, asr #21
201# CHECK: sub w8, w9, w10, asr #31
2020xa3 0x0 0x7 0x4b
2030x7f 0x0 0x5 0x4b
2040xf4 0x3 0x4 0x4b
2050xc4 0x0 0x1f 0x4b
2060xab 0x1 0xf 0x4b
2070x69 0x28 0x1f 0x4b
2080xb1 0x7f 0x14 0x4b
2090xd5 0x2 0x57 0x4b
2100x38 0x4b 0x5a 0x4b
2110x9b 0x7f 0x5d 0x4b
2120x62 0x0 0x84 0x4b
2130xc5 0x54 0x87 0x4b
2140x28 0x7d 0x8a 0x4b
215
216# CHECK: sub x3, x5, x7
217# CHECK: sub xzr, x3, x5
1a4d82fc 218# CHECK: {{sub x20, xzr, x4|neg x20, x4}}
970d7e83
LB
219# CHECK: sub x4, x6, xzr
220# CHECK: sub x11, x13, x15
221# CHECK: sub x9, x3, xzr, lsl #10
222# CHECK: sub x17, x29, x20, lsl #63
223# CHECK: sub x21, x22, x23, lsr #0
224# CHECK: sub x24, x25, x26, lsr #18
225# CHECK: sub x27, x28, x29, lsr #63
226# CHECK: sub x2, x3, x4, asr #0
227# CHECK: sub x5, x6, x7, asr #21
228# CHECK: sub x8, x9, x10, asr #63
2290xa3 0x0 0x7 0xcb
2300x7f 0x0 0x5 0xcb
2310xf4 0x3 0x4 0xcb
2320xc4 0x0 0x1f 0xcb
2330xab 0x1 0xf 0xcb
2340x69 0x28 0x1f 0xcb
2350xb1 0xff 0x14 0xcb
2360xd5 0x2 0x57 0xcb
2370x38 0x4b 0x5a 0xcb
2380x9b 0xff 0x5d 0xcb
2390x62 0x0 0x84 0xcb
2400xc5 0x54 0x87 0xcb
2410x28 0xfd 0x8a 0xcb
242
243# CHECK: subs w3, w5, w7
244# CHECK: cmp w3, w5
1a4d82fc 245# CHECK: {{subs w20, wzr, w4|negs w20, w4}}
970d7e83
LB
246# CHECK: subs w4, w6, wzr
247# CHECK: subs w11, w13, w15
248# CHECK: subs w9, w3, wzr, lsl #10
249# CHECK: subs w17, w29, w20, lsl #31
250# CHECK: subs w21, w22, w23, lsr #0
251# CHECK: subs w24, w25, w26, lsr #18
252# CHECK: subs w27, w28, w29, lsr #31
253# CHECK: subs w2, w3, w4, asr #0
254# CHECK: subs w5, w6, w7, asr #21
255# CHECK: subs w8, w9, w10, asr #31
2560xa3 0x0 0x7 0x6b
2570x7f 0x0 0x5 0x6b
2580xf4 0x3 0x4 0x6b
2590xc4 0x0 0x1f 0x6b
2600xab 0x1 0xf 0x6b
2610x69 0x28 0x1f 0x6b
2620xb1 0x7f 0x14 0x6b
2630xd5 0x2 0x57 0x6b
2640x38 0x4b 0x5a 0x6b
2650x9b 0x7f 0x5d 0x6b
2660x62 0x0 0x84 0x6b
2670xc5 0x54 0x87 0x6b
2680x28 0x7d 0x8a 0x6b
269
270# CHECK: subs x3, x5, x7
271# CHECK: cmp x3, x5
1a4d82fc 272# CHECK: {{subs x20, xzr, x4|negs x20, x4}}
970d7e83
LB
273# CHECK: subs x4, x6, xzr
274# CHECK: subs x11, x13, x15
275# CHECK: subs x9, x3, xzr, lsl #10
276# CHECK: subs x17, x29, x20, lsl #63
277# CHECK: subs x21, x22, x23, lsr #0
278# CHECK: subs x24, x25, x26, lsr #18
279# CHECK: subs x27, x28, x29, lsr #63
280# CHECK: subs x2, x3, x4, asr #0
281# CHECK: subs x5, x6, x7, asr #21
282# CHECK: subs x8, x9, x10, asr #63
2830xa3 0x0 0x7 0xeb
2840x7f 0x0 0x5 0xeb
2850xf4 0x3 0x4 0xeb
2860xc4 0x0 0x1f 0xeb
2870xab 0x1 0xf 0xeb
2880x69 0x28 0x1f 0xeb
2890xb1 0xff 0x14 0xeb
2900xd5 0x2 0x57 0xeb
2910x38 0x4b 0x5a 0xeb
2920x9b 0xff 0x5d 0xeb
2930x62 0x0 0x84 0xeb
2940xc5 0x54 0x87 0xeb
2950x28 0xfd 0x8a 0xeb
296
297# CHECK: cmn w0, w3
298# CHECK: cmn wzr, w4
299# CHECK: cmn w5, wzr
300# CHECK: cmn w6, w7
301# CHECK: cmn w8, w9, lsl #15
302# CHECK: cmn w10, w11, lsl #31
303# CHECK: cmn w12, w13, lsr #0
304# CHECK: cmn w14, w15, lsr #21
305# CHECK: cmn w16, w17, lsr #31
306# CHECK: cmn w18, w19, asr #0
307# CHECK: cmn w20, w21, asr #22
308# CHECK: cmn w22, w23, asr #31
3090x1f 0x0 0x3 0x2b
3100xff 0x3 0x4 0x2b
3110xbf 0x0 0x1f 0x2b
3120xdf 0x0 0x7 0x2b
3130x1f 0x3d 0x9 0x2b
3140x5f 0x7d 0xb 0x2b
3150x9f 0x1 0x4d 0x2b
3160xdf 0x55 0x4f 0x2b
3170x1f 0x7e 0x51 0x2b
3180x5f 0x2 0x93 0x2b
3190x9f 0x5a 0x95 0x2b
3200xdf 0x7e 0x97 0x2b
321
322# CHECK: cmn x0, x3
323# CHECK: cmn xzr, x4
324# CHECK: cmn x5, xzr
325# CHECK: cmn x6, x7
326# CHECK: cmn x8, x9, lsl #15
327# CHECK: cmn x10, x11, lsl #63
328# CHECK: cmn x12, x13, lsr #0
329# CHECK: cmn x14, x15, lsr #41
330# CHECK: cmn x16, x17, lsr #63
331# CHECK: cmn x18, x19, asr #0
332# CHECK: cmn x20, x21, asr #55
333# CHECK: cmn x22, x23, asr #63
3340x1f 0x0 0x3 0xab
3350xff 0x3 0x4 0xab
3360xbf 0x0 0x1f 0xab
3370xdf 0x0 0x7 0xab
3380x1f 0x3d 0x9 0xab
3390x5f 0xfd 0xb 0xab
3400x9f 0x1 0x4d 0xab
3410xdf 0xa5 0x4f 0xab
3420x1f 0xfe 0x51 0xab
3430x5f 0x2 0x93 0xab
3440x9f 0xde 0x95 0xab
3450xdf 0xfe 0x97 0xab
346
347# CHECK: cmp w0, w3
348# CHECK: cmp wzr, w4
349# CHECK: cmp w5, wzr
350# CHECK: cmp w6, w7
351# CHECK: cmp w8, w9, lsl #15
352# CHECK: cmp w10, w11, lsl #31
353# CHECK: cmp w12, w13, lsr #0
354# CHECK: cmp w14, w15, lsr #21
355# CHECK: cmp w16, w17, lsr #31
356# CHECK: cmp w18, w19, asr #0
357# CHECK: cmp w20, w21, asr #22
358# CHECK: cmp w22, w23, asr #31
3590x1f 0x0 0x3 0x6b
3600xff 0x3 0x4 0x6b
3610xbf 0x0 0x1f 0x6b
3620xdf 0x0 0x7 0x6b
3630x1f 0x3d 0x9 0x6b
3640x5f 0x7d 0xb 0x6b
3650x9f 0x1 0x4d 0x6b
3660xdf 0x55 0x4f 0x6b
3670x1f 0x7e 0x51 0x6b
3680x5f 0x2 0x93 0x6b
3690x9f 0x5a 0x95 0x6b
3700xdf 0x7e 0x97 0x6b
371
372# CHECK: cmp x0, x3
373# CHECK: cmp xzr, x4
374# CHECK: cmp x5, xzr
375# CHECK: cmp x6, x7
376# CHECK: cmp x8, x9, lsl #15
377# CHECK: cmp x10, x11, lsl #63
378# CHECK: cmp x12, x13, lsr #0
379# CHECK: cmp x14, x15, lsr #41
380# CHECK: cmp x16, x17, lsr #63
381# CHECK: cmp x18, x19, asr #0
382# CHECK: cmp x20, x21, asr #55
383# CHECK: cmp x22, x23, asr #63
3840x1f 0x0 0x3 0xeb
3850xff 0x3 0x4 0xeb
3860xbf 0x0 0x1f 0xeb
3870xdf 0x0 0x7 0xeb
3880x1f 0x3d 0x9 0xeb
3890x5f 0xfd 0xb 0xeb
3900x9f 0x1 0x4d 0xeb
3910xdf 0xa5 0x4f 0xeb
3920x1f 0xfe 0x51 0xeb
3930x5f 0x2 0x93 0xeb
3940x9f 0xde 0x95 0xeb
3950xdf 0xfe 0x97 0xeb
396
1a4d82fc
JJ
397# CHECK: {{sub w29, wzr|neg w29}}, w30
398# CHECK: {{sub w30, wzr|neg w30}}, wzr
399# CHECK: {{sub wzr, wzr|neg wzr}}, w0
400# CHECK: {{sub w28, wzr|neg w28}}, w27
401# CHECK: {{sub w26, wzr|neg w26}}, w25, lsl #29
402# CHECK: {{sub w24, wzr|neg w24}}, w23, lsl #31
403# CHECK: {{sub w22, wzr|neg w22}}, w21, lsr #0
404# CHECK: {{sub w20, wzr|neg w20}}, w19, lsr #1
405# CHECK: {{sub w18, wzr|neg w18}}, w17, lsr #31
406# CHECK: {{sub w16, wzr|neg w16}}, w15, asr #0
407# CHECK: {{sub w14, wzr|neg w14}}, w13, asr #12
408# CHECK: {{sub w12, wzr|neg w12}}, w11, asr #31
970d7e83
LB
4090xfd 0x3 0x1e 0x4b
4100xfe 0x3 0x1f 0x4b
4110xff 0x3 0x0 0x4b
4120xfc 0x3 0x1b 0x4b
4130xfa 0x77 0x19 0x4b
4140xf8 0x7f 0x17 0x4b
4150xf6 0x3 0x55 0x4b
4160xf4 0x7 0x53 0x4b
4170xf2 0x7f 0x51 0x4b
4180xf0 0x3 0x8f 0x4b
4190xee 0x33 0x8d 0x4b
4200xec 0x7f 0x8b 0x4b
421
1a4d82fc
JJ
422# CHECK: {{sub x29, xzr|neg x29}}, x30
423# CHECK: {{sub x30, xzr|neg x30}}, xzr
424# CHECK: {{sub xzr, xzr|neg xzr}}, x0
425# CHECK: {{sub x28, xzr|neg x28}}, x27
426# CHECK: {{sub x26, xzr|neg x26}}, x25, lsl #29
427# CHECK: {{sub x24, xzr|neg x24}}, x23, lsl #31
428# CHECK: {{sub x22, xzr|neg x22}}, x21, lsr #0
429# CHECK: {{sub x20, xzr|neg x20}}, x19, lsr #1
430# CHECK: {{sub x18, xzr|neg x18}}, x17, lsr #31
431# CHECK: {{sub x16, xzr|neg x16}}, x15, asr #0
432# CHECK: {{sub x14, xzr|neg x14}}, x13, asr #12
433# CHECK: {{sub x12, xzr|neg x12}}, x11, asr #31
970d7e83
LB
4340xfd 0x3 0x1e 0xcb
4350xfe 0x3 0x1f 0xcb
4360xff 0x3 0x0 0xcb
4370xfc 0x3 0x1b 0xcb
4380xfa 0x77 0x19 0xcb
4390xf8 0x7f 0x17 0xcb
4400xf6 0x3 0x55 0xcb
4410xf4 0x7 0x53 0xcb
4420xf2 0x7f 0x51 0xcb
4430xf0 0x3 0x8f 0xcb
4440xee 0x33 0x8d 0xcb
4450xec 0x7f 0x8b 0xcb
446
1a4d82fc
JJ
447# CHECK: {{subs w29, wzr|negs w29}}, w30
448# CHECK: {{subs w30, wzr|negs w30}}, wzr
970d7e83 449# CHECK: cmp wzr, w0
1a4d82fc
JJ
450# CHECK: {{subs w28, wzr|negs w28}}, w27
451# CHECK: {{subs w26, wzr|negs w26}}, w25, lsl #29
452# CHECK: {{subs w24, wzr|negs w24}}, w23, lsl #31
453# CHECK: {{subs w22, wzr|negs w22}}, w21, lsr #0
454# CHECK: {{subs w20, wzr|negs w20}}, w19, lsr #1
455# CHECK: {{subs w18, wzr|negs w18}}, w17, lsr #31
456# CHECK: {{subs w16, wzr|negs w16}}, w15, asr #0
457# CHECK: {{subs w14, wzr|negs w14}}, w13, asr #12
458# CHECK: {{subs w12, wzr|negs w12}}, w11, asr #31
970d7e83
LB
4590xfd 0x3 0x1e 0x6b
4600xfe 0x3 0x1f 0x6b
4610xff 0x3 0x0 0x6b
4620xfc 0x3 0x1b 0x6b
4630xfa 0x77 0x19 0x6b
4640xf8 0x7f 0x17 0x6b
4650xf6 0x3 0x55 0x6b
4660xf4 0x7 0x53 0x6b
4670xf2 0x7f 0x51 0x6b
4680xf0 0x3 0x8f 0x6b
4690xee 0x33 0x8d 0x6b
4700xec 0x7f 0x8b 0x6b
471
1a4d82fc
JJ
472# CHECK: {{subs x29, xzr|negs x29}}, x30
473# CHECK: {{subs x30, xzr|negs x30}}, xzr
970d7e83 474# CHECK: cmp xzr, x0
1a4d82fc
JJ
475# CHECK: {{subs x28, xzr|negs x28}}, x27
476# CHECK: {{subs x26, xzr|negs x26}}, x25, lsl #29
477# CHECK: {{subs x24, xzr|negs x24}}, x23, lsl #31
478# CHECK: {{subs x22, xzr|negs x22}}, x21, lsr #0
479# CHECK: {{subs x20, xzr|negs x20}}, x19, lsr #1
480# CHECK: {{subs x18, xzr|negs x18}}, x17, lsr #31
481# CHECK: {{subs x16, xzr|negs x16}}, x15, asr #0
482# CHECK: {{subs x14, xzr|negs x14}}, x13, asr #12
483# CHECK: {{subs x12, xzr|negs x12}}, x11, asr #31
970d7e83
LB
4840xfd 0x3 0x1e 0xeb
4850xfe 0x3 0x1f 0xeb
4860xff 0x3 0x0 0xeb
4870xfc 0x3 0x1b 0xeb
4880xfa 0x77 0x19 0xeb
4890xf8 0x7f 0x17 0xeb
4900xf6 0x3 0x55 0xeb
4910xf4 0x7 0x53 0xeb
4920xf2 0x7f 0x51 0xeb
4930xf0 0x3 0x8f 0xeb
4940xee 0x33 0x8d 0xeb
4950xec 0x7f 0x8b 0xeb
496
497#------------------------------------------------------------------------------
498# Add-subtract (shifted register)
499#------------------------------------------------------------------------------
500
501# CHECK: adc w29, w27, w25
502# CHECK: adc wzr, w3, w4
503# CHECK: adc w9, wzr, w10
504# CHECK: adc w20, w0, wzr
5050x7d 0x3 0x19 0x1a
5060x7f 0x0 0x4 0x1a
5070xe9 0x3 0xa 0x1a
5080x14 0x0 0x1f 0x1a
509
510# CHECK: adc x29, x27, x25
511# CHECK: adc xzr, x3, x4
512# CHECK: adc x9, xzr, x10
513# CHECK: adc x20, x0, xzr
5140x7d 0x3 0x19 0x9a
5150x7f 0x0 0x4 0x9a
5160xe9 0x3 0xa 0x9a
5170x14 0x0 0x1f 0x9a
518
519# CHECK: adcs w29, w27, w25
520# CHECK: adcs wzr, w3, w4
521# CHECK: adcs w9, wzr, w10
522# CHECK: adcs w20, w0, wzr
5230x7d 0x3 0x19 0x3a
5240x7f 0x0 0x4 0x3a
5250xe9 0x3 0xa 0x3a
5260x14 0x0 0x1f 0x3a
527
528# CHECK: adcs x29, x27, x25
529# CHECK: adcs xzr, x3, x4
530# CHECK: adcs x9, xzr, x10
531# CHECK: adcs x20, x0, xzr
5320x7d 0x3 0x19 0xba
5330x7f 0x0 0x4 0xba
5340xe9 0x3 0xa 0xba
5350x14 0x0 0x1f 0xba
536
537# CHECK: sbc w29, w27, w25
538# CHECK: sbc wzr, w3, w4
539# CHECK: ngc w9, w10
540# CHECK: sbc w20, w0, wzr
5410x7d 0x3 0x19 0x5a
5420x7f 0x0 0x4 0x5a
5430xe9 0x3 0xa 0x5a
5440x14 0x0 0x1f 0x5a
545
546# CHECK: sbc x29, x27, x25
547# CHECK: sbc xzr, x3, x4
548# CHECK: ngc x9, x10
549# CHECK: sbc x20, x0, xzr
5500x7d 0x3 0x19 0xda
5510x7f 0x0 0x4 0xda
5520xe9 0x3 0xa 0xda
5530x14 0x0 0x1f 0xda
554
555# CHECK: sbcs w29, w27, w25
556# CHECK: sbcs wzr, w3, w4
557# CHECK: ngcs w9, w10
558# CHECK: sbcs w20, w0, wzr
5590x7d 0x3 0x19 0x7a
5600x7f 0x0 0x4 0x7a
5610xe9 0x3 0xa 0x7a
5620x14 0x0 0x1f 0x7a
563
564# CHECK: sbcs x29, x27, x25
565# CHECK: sbcs xzr, x3, x4
566# CHECK: ngcs x9, x10
567# CHECK: sbcs x20, x0, xzr
5680x7d 0x3 0x19 0xfa
5690x7f 0x0 0x4 0xfa
5700xe9 0x3 0xa 0xfa
5710x14 0x0 0x1f 0xfa
572
573# CHECK: ngc w3, w12
574# CHECK: ngc wzr, w9
575# CHECK: ngc w23, wzr
5760xe3 0x3 0xc 0x5a
5770xff 0x3 0x9 0x5a
5780xf7 0x3 0x1f 0x5a
579
580# CHECK: ngc x29, x30
581# CHECK: ngc xzr, x0
582# CHECK: ngc x0, xzr
5830xfd 0x3 0x1e 0xda
5840xff 0x3 0x0 0xda
5850xe0 0x3 0x1f 0xda
586
587# CHECK: ngcs w3, w12
588# CHECK: ngcs wzr, w9
589# CHECK: ngcs w23, wzr
5900xe3 0x3 0xc 0x7a
5910xff 0x3 0x9 0x7a
5920xf7 0x3 0x1f 0x7a
593
594# CHECK: ngcs x29, x30
595# CHECK: ngcs xzr, x0
596# CHECK: ngcs x0, xzr
5970xfd 0x3 0x1e 0xfa
5980xff 0x3 0x0 0xfa
5990xe0 0x3 0x1f 0xfa
600
601#------------------------------------------------------------------------------
602# Compare and branch (immediate)
603#------------------------------------------------------------------------------
604
605# CHECK: sbfx x1, x2, #3, #2
606# CHECK: asr x3, x4, #63
607# CHECK: asr wzr, wzr, #31
608# CHECK: sbfx w12, w9, #0, #1
6090x41 0x10 0x43 0x93
6100x83 0xfc 0x7f 0x93
6110xff 0x7f 0x1f 0x13
6120x2c 0x1 0x0 0x13
613
614# CHECK: ubfiz x4, x5, #52, #11
615# CHECK: ubfx xzr, x4, #0, #1
616# CHECK: ubfiz x4, xzr, #1, #6
617# CHECK: lsr x5, x6, #12
6180xa4 0x28 0x4c 0xd3
6190x9f 0x0 0x40 0xd3
6200xe4 0x17 0x7f 0xd3
6210xc5 0xfc 0x4c 0xd3
622
623# CHECK: bfi x4, x5, #52, #11
624# CHECK: bfxil xzr, x4, #0, #1
625# CHECK: bfi x4, xzr, #1, #6
626# CHECK: bfxil x5, x6, #12, #52
6270xa4 0x28 0x4c 0xb3
6280x9f 0x0 0x40 0xb3
6290xe4 0x17 0x7f 0xb3
6300xc5 0xfc 0x4c 0xb3
631
632# CHECK: sxtb w1, w2
633# CHECK: sxtb xzr, w3
634# CHECK: sxth w9, w10
635# CHECK: sxth x0, w1
636# CHECK: sxtw x3, w30
6370x41 0x1c 0x0 0x13
6380x7f 0x1c 0x40 0x93
6390x49 0x3d 0x0 0x13
6400x20 0x3c 0x40 0x93
6410xc3 0x7f 0x40 0x93
642
643# CHECK: uxtb w1, w2
644# CHECK: uxth w9, w10
645# CHECK: ubfx x3, x30, #0, #32
6460x41 0x1c 0x0 0x53
6470x49 0x3d 0x0 0x53
6480xc3 0x7f 0x40 0xd3
649
650# CHECK: asr w3, w2, #0
651# CHECK: asr w9, w10, #31
652# CHECK: asr x20, x21, #63
653# CHECK: asr w1, wzr, #3
6540x43 0x7c 0x0 0x13
6550x49 0x7d 0x1f 0x13
6560xb4 0xfe 0x7f 0x93
6570xe1 0x7f 0x3 0x13
658
659# CHECK: lsr w3, w2, #0
660# CHECK: lsr w9, w10, #31
661# CHECK: lsr x20, x21, #63
662# CHECK: lsr wzr, wzr, #3
6630x43 0x7c 0x0 0x53
6640x49 0x7d 0x1f 0x53
6650xb4 0xfe 0x7f 0xd3
6660xff 0x7f 0x3 0x53
667
668# CHECK: lsr w3, w2, #0
669# CHECK: lsl w9, w10, #31
670# CHECK: lsl x20, x21, #63
671# CHECK: lsl w1, wzr, #3
6720x43 0x7c 0x0 0x53
6730x49 0x1 0x1 0x53
6740xb4 0x2 0x41 0xd3
6750xe1 0x73 0x1d 0x53
676
677# CHECK: sbfx w9, w10, #0, #1
678# CHECK: sbfiz x2, x3, #63, #1
679# CHECK: asr x19, x20, #0
680# CHECK: sbfiz x9, x10, #5, #59
681# CHECK: asr w9, w10, #0
682# CHECK: sbfiz w11, w12, #31, #1
683# CHECK: sbfiz w13, w14, #29, #3
684# CHECK: sbfiz xzr, xzr, #10, #11
6850x49 0x1 0x0 0x13
6860x62 0x0 0x41 0x93
6870x93 0xfe 0x40 0x93
6880x49 0xe9 0x7b 0x93
6890x49 0x7d 0x0 0x13
6900x8b 0x1 0x1 0x13
6910xcd 0x9 0x3 0x13
6920xff 0x2b 0x76 0x93
693
694# CHECK: sbfx w9, w10, #0, #1
695# CHECK: asr x2, x3, #63
696# CHECK: asr x19, x20, #0
697# CHECK: asr x9, x10, #5
698# CHECK: asr w9, w10, #0
699# CHECK: asr w11, w12, #31
700# CHECK: asr w13, w14, #29
701# CHECK: sbfx xzr, xzr, #10, #11
7020x49 0x1 0x0 0x13
7030x62 0xfc 0x7f 0x93
7040x93 0xfe 0x40 0x93
7050x49 0xfd 0x45 0x93
7060x49 0x7d 0x0 0x13
7070x8b 0x7d 0x1f 0x13
7080xcd 0x7d 0x1d 0x13
7090xff 0x53 0x4a 0x93
710
711# CHECK: bfxil w9, w10, #0, #1
712# CHECK: bfi x2, x3, #63, #1
713# CHECK: bfxil x19, x20, #0, #64
714# CHECK: bfi x9, x10, #5, #59
715# CHECK: bfxil w9, w10, #0, #32
716# CHECK: bfi w11, w12, #31, #1
717# CHECK: bfi w13, w14, #29, #3
718# CHECK: bfi xzr, xzr, #10, #11
7190x49 0x1 0x0 0x33
7200x62 0x0 0x41 0xb3
7210x93 0xfe 0x40 0xb3
7220x49 0xe9 0x7b 0xb3
7230x49 0x7d 0x0 0x33
7240x8b 0x1 0x1 0x33
7250xcd 0x9 0x3 0x33
7260xff 0x2b 0x76 0xb3
727
728# CHECK: bfxil w9, w10, #0, #1
729# CHECK: bfxil x2, x3, #63, #1
730# CHECK: bfxil x19, x20, #0, #64
731# CHECK: bfxil x9, x10, #5, #59
732# CHECK: bfxil w9, w10, #0, #32
733# CHECK: bfxil w11, w12, #31, #1
734# CHECK: bfxil w13, w14, #29, #3
735# CHECK: bfxil xzr, xzr, #10, #11
7360x49 0x1 0x0 0x33
7370x62 0xfc 0x7f 0xb3
7380x93 0xfe 0x40 0xb3
7390x49 0xfd 0x45 0xb3
7400x49 0x7d 0x0 0x33
7410x8b 0x7d 0x1f 0x33
7420xcd 0x7d 0x1d 0x33
7430xff 0x53 0x4a 0xb3
744
745# CHECK: ubfx w9, w10, #0, #1
746# CHECK: lsl x2, x3, #63
747# CHECK: lsr x19, x20, #0
748# CHECK: lsl x9, x10, #5
749# CHECK: lsr w9, w10, #0
750# CHECK: lsl w11, w12, #31
751# CHECK: lsl w13, w14, #29
752# CHECK: ubfiz xzr, xzr, #10, #11
7530x49 0x1 0x0 0x53
7540x62 0x0 0x41 0xd3
7550x93 0xfe 0x40 0xd3
7560x49 0xe9 0x7b 0xd3
7570x49 0x7d 0x0 0x53
7580x8b 0x1 0x1 0x53
7590xcd 0x9 0x3 0x53
7600xff 0x2b 0x76 0xd3
761
762# CHECK: ubfx w9, w10, #0, #1
763# CHECK: lsr x2, x3, #63
764# CHECK: lsr x19, x20, #0
765# CHECK: lsr x9, x10, #5
766# CHECK: lsr w9, w10, #0
767# CHECK: lsr w11, w12, #31
768# CHECK: lsr w13, w14, #29
769# CHECK: ubfx xzr, xzr, #10, #11
7700x49 0x1 0x0 0x53
7710x62 0xfc 0x7f 0xd3
7720x93 0xfe 0x40 0xd3
7730x49 0xfd 0x45 0xd3
7740x49 0x7d 0x0 0x53
7750x8b 0x7d 0x1f 0x53
7760xcd 0x7d 0x1d 0x53
7770xff 0x53 0x4a 0xd3
778
779
780#------------------------------------------------------------------------------
781# Compare and branch (immediate)
782#------------------------------------------------------------------------------
783
784# CHECK: cbz w5, #4
785# CHECK: cbz x5, #0
786# CHECK: cbnz x2, #-4
787# CHECK: cbnz x26, #1048572
7880x25 0x0 0x0 0x34
7890x05 0x0 0x0 0xb4
7900xe2 0xff 0xff 0xb5
7910xfa 0xff 0x7f 0xb5
792
793# CHECK: cbz wzr, #0
794# CHECK: cbnz xzr, #0
7950x1f 0x0 0x0 0x34
7960x1f 0x0 0x0 0xb5
797
798#------------------------------------------------------------------------------
799# Conditional branch (immediate)
800#------------------------------------------------------------------------------
801
802# CHECK: b.ne #4
803# CHECK: b.ge #1048572
804# CHECK: b.ge #-4
8050x21 0x00 0x00 0x54
8060xea 0xff 0x7f 0x54
8070xea 0xff 0xff 0x54
808
809#------------------------------------------------------------------------------
810# Conditional compare (immediate)
811#------------------------------------------------------------------------------
812
813# CHECK: ccmp w1, #31, #0, eq
814# CHECK: ccmp w3, #0, #15, hs
815# CHECK: ccmp wzr, #15, #13, hs
8160x20 0x08 0x5f 0x7a
8170x6f 0x28 0x40 0x7a
8180xed 0x2b 0x4f 0x7a
819
820# CHECK: ccmp x9, #31, #0, le
821# CHECK: ccmp x3, #0, #15, gt
822# CHECK: ccmp xzr, #5, #7, ne
8230x20 0xd9 0x5f 0xfa
8240x6f 0xc8 0x40 0xfa
8250xe7 0x1b 0x45 0xfa
826
827# CHECK: ccmn w1, #31, #0, eq
828# CHECK: ccmn w3, #0, #15, hs
829# CHECK: ccmn wzr, #15, #13, hs
8300x20 0x08 0x5f 0x3a
8310x6f 0x28 0x40 0x3a
8320xed 0x2b 0x4f 0x3a
833
834# CHECK: ccmn x9, #31, #0, le
835# CHECK: ccmn x3, #0, #15, gt
836# CHECK: ccmn xzr, #5, #7, ne
8370x20 0xd9 0x5f 0xba
8380x6f 0xc8 0x40 0xba
8390xe7 0x1b 0x45 0xba
840
841#------------------------------------------------------------------------------
842# Conditional compare (register)
843#------------------------------------------------------------------------------
844
845# CHECK: ccmp w1, wzr, #0, eq
846# CHECK: ccmp w3, w0, #15, hs
847# CHECK: ccmp wzr, w15, #13, hs
8480x20 0x00 0x5f 0x7a
8490x6f 0x20 0x40 0x7a
8500xed 0x23 0x4f 0x7a
851
852# CHECK: ccmp x9, xzr, #0, le
853# CHECK: ccmp x3, x0, #15, gt
854# CHECK: ccmp xzr, x5, #7, ne
8550x20 0xd1 0x5f 0xfa
8560x6f 0xc0 0x40 0xfa
8570xe7 0x13 0x45 0xfa
858
859# CHECK: ccmn w1, wzr, #0, eq
860# CHECK: ccmn w3, w0, #15, hs
861# CHECK: ccmn wzr, w15, #13, hs
8620x20 0x00 0x5f 0x3a
8630x6f 0x20 0x40 0x3a
8640xed 0x23 0x4f 0x3a
865
866# CHECK: ccmn x9, xzr, #0, le
867# CHECK: ccmn x3, x0, #15, gt
868# CHECK: ccmn xzr, x5, #7, ne
8690x20 0xd1 0x5f 0xba
8700x6f 0xc0 0x40 0xba
8710xe7 0x13 0x45 0xba
872
873#------------------------------------------------------------------------------
874# Conditional branch (immediate)
875#------------------------------------------------------------------------------
876# CHECK: csel w1, w0, w19, ne
877# CHECK: csel wzr, w5, w9, eq
878# CHECK: csel w9, wzr, w30, gt
879# CHECK: csel w1, w28, wzr, mi
880# CHECK: csel x19, x23, x29, lt
881# CHECK: csel xzr, x3, x4, ge
882# CHECK: csel x5, xzr, x6, hs
883# CHECK: csel x7, x8, xzr, lo
8840x1 0x10 0x93 0x1a
8850xbf 0x0 0x89 0x1a
8860xe9 0xc3 0x9e 0x1a
8870x81 0x43 0x9f 0x1a
8880xf3 0xb2 0x9d 0x9a
8890x7f 0xa0 0x84 0x9a
8900xe5 0x23 0x86 0x9a
8910x7 0x31 0x9f 0x9a
892
893# CHECK: csinc w1, w0, w19, ne
894# CHECK: csinc wzr, w5, w9, eq
895# CHECK: csinc w9, wzr, w30, gt
896# CHECK: csinc w1, w28, wzr, mi
897# CHECK: csinc x19, x23, x29, lt
898# CHECK: csinc xzr, x3, x4, ge
899# CHECK: csinc x5, xzr, x6, hs
900# CHECK: csinc x7, x8, xzr, lo
9010x1 0x14 0x93 0x1a
9020xbf 0x4 0x89 0x1a
9030xe9 0xc7 0x9e 0x1a
9040x81 0x47 0x9f 0x1a
9050xf3 0xb6 0x9d 0x9a
9060x7f 0xa4 0x84 0x9a
9070xe5 0x27 0x86 0x9a
9080x7 0x35 0x9f 0x9a
909
910# CHECK: csinv w1, w0, w19, ne
911# CHECK: csinv wzr, w5, w9, eq
912# CHECK: csinv w9, wzr, w30, gt
913# CHECK: csinv w1, w28, wzr, mi
914# CHECK: csinv x19, x23, x29, lt
915# CHECK: csinv xzr, x3, x4, ge
916# CHECK: csinv x5, xzr, x6, hs
917# CHECK: csinv x7, x8, xzr, lo
9180x1 0x10 0x93 0x5a
9190xbf 0x0 0x89 0x5a
9200xe9 0xc3 0x9e 0x5a
9210x81 0x43 0x9f 0x5a
9220xf3 0xb2 0x9d 0xda
9230x7f 0xa0 0x84 0xda
9240xe5 0x23 0x86 0xda
9250x7 0x31 0x9f 0xda
926
927# CHECK: csneg w1, w0, w19, ne
928# CHECK: csneg wzr, w5, w9, eq
929# CHECK: csneg w9, wzr, w30, gt
930# CHECK: csneg w1, w28, wzr, mi
931# CHECK: csneg x19, x23, x29, lt
932# CHECK: csneg xzr, x3, x4, ge
933# CHECK: csneg x5, xzr, x6, hs
934# CHECK: csneg x7, x8, xzr, lo
9350x1 0x14 0x93 0x5a
9360xbf 0x4 0x89 0x5a
9370xe9 0xc7 0x9e 0x5a
9380x81 0x47 0x9f 0x5a
9390xf3 0xb6 0x9d 0xda
9400x7f 0xa4 0x84 0xda
9410xe5 0x27 0x86 0xda
9420x7 0x35 0x9f 0xda
943
1a4d82fc
JJ
944# CHECK: cset w3, eq
945# CHECK: cset x9, pl
946# CHECK: csetm w20, ne
947# CHECK: csetm x30, ge
948# "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
949# CHECK: csinc w2, wzr, wzr, al
950# CHECK: csinv x3, xzr, xzr, nv
970d7e83
LB
9510xe3 0x17 0x9f 0x1a
9520xe9 0x47 0x9f 0x9a
9530xf4 0x3 0x9f 0x5a
9540xfe 0xb3 0x9f 0xda
1a4d82fc
JJ
9550xe2,0xe7,0x9f,0x1a
9560xe3,0xf3,0x9f,0xda
957
958# CHECK: cinc w3, w5, gt
959# CHECK: cinc wzr, w4, le
960# CHECK: cset w9, lt
961# CHECK: cinc x3, x5, gt
962# CHECK: cinc xzr, x4, le
963# CHECK: cset x9, lt
964# "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
965# CHECK: csinc w5, w6, w6, nv
966# CHECK: csinc x1, x2, x2, al
970d7e83
LB
9670xa3 0xd4 0x85 0x1a
9680x9f 0xc4 0x84 0x1a
9690xe9 0xa7 0x9f 0x1a
9700xa3 0xd4 0x85 0x9a
9710x9f 0xc4 0x84 0x9a
9720xe9 0xa7 0x9f 0x9a
1a4d82fc
JJ
9730xc5,0xf4,0x86,0x1a
9740x41,0xe4,0x82,0x9a
975
976# CHECK: cinv w3, w5, gt
977# CHECK: cinv wzr, w4, le
978# CHECK: csetm w9, lt
979# CHECK: cinv x3, x5, gt
980# CHECK: cinv xzr, x4, le
981# CHECK: csetm x9, lt
982# "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
983# CHECK: csinv x1, x0, x0, al
984# CHECK: csinv w9, w8, w8, nv
970d7e83
LB
9850xa3 0xd0 0x85 0x5a
9860x9f 0xc0 0x84 0x5a
9870xe9 0xa3 0x9f 0x5a
9880xa3 0xd0 0x85 0xda
9890x9f 0xc0 0x84 0xda
9900xe9 0xa3 0x9f 0xda
1a4d82fc
JJ
9910x01 0xe0 0x80 0xda
9920x09,0xf1,0x88,0x5a
993
994# CHECK: cneg w3, w5, gt
995# CHECK: cneg wzr, w4, le
996# CHECK: cneg w9, wzr, lt
997# CHECK: cneg x3, x5, gt
998# CHECK: cneg xzr, x4, le
999# CHECK: cneg x9, xzr, lt
1000# "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1001# CHECK: csneg x4, x8, x8, al
1002# CHECK: csinv w9, w8, w8, nv
970d7e83
LB
10030xa3 0xd4 0x85 0x5a
10040x9f 0xc4 0x84 0x5a
10050xe9 0xa7 0x9f 0x5a
10060xa3 0xd4 0x85 0xda
10070x9f 0xc4 0x84 0xda
10080xe9 0xa7 0x9f 0xda
1a4d82fc
JJ
10090x04,0xe5,0x88,0xda
10100x09,0xf1,0x88,0x5a
970d7e83
LB
1011
1012#------------------------------------------------------------------------------
1013# Data-processing (1 source)
1014#------------------------------------------------------------------------------
1015
1016# CHECK: rbit w0, w7
1017# CHECK: rbit x18, x3
1018# CHECK: rev16 w17, w1
1019# CHECK: rev16 x5, x2
1020# CHECK: rev w18, w0
1021# CHECK: rev32 x20, x1
10220xe0 0x00 0xc0 0x5a
10230x72 0x00 0xc0 0xda
10240x31 0x04 0xc0 0x5a
10250x45 0x04 0xc0 0xda
10260x12 0x08 0xc0 0x5a
10270x34 0x08 0xc0 0xda
1028
1029# CHECK: rev x22, x2
1030# CHECK: clz w24, w3
1031# CHECK: clz x26, x4
1032# CHECK: cls w3, w5
1033# CHECK: cls x20, x5
10340x56 0x0c 0xc0 0xda
10350x78 0x10 0xc0 0x5a
10360x9a 0x10 0xc0 0xda
10370xa3 0x14 0xc0 0x5a
10380xb4 0x14 0xc0 0xda
1039
1040#------------------------------------------------------------------------------
1041# Data-processing (2 source)
1042#------------------------------------------------------------------------------
1043
1044# CHECK: crc32b w5, w7, w20
1045# CHECK: crc32h w28, wzr, w30
1046# CHECK: crc32w w0, w1, w2
1047# CHECK: crc32x w7, w9, x20
1048# CHECK: crc32cb w9, w5, w4
1049# CHECK: crc32ch w13, w17, w25
1050# CHECK: crc32cw wzr, w3, w5
1051# CHECK: crc32cx w18, w16, xzr
10520xe5 0x40 0xd4 0x1a
10530xfc 0x47 0xde 0x1a
10540x20 0x48 0xc2 0x1a
10550x27 0x4d 0xd4 0x9a
10560xa9 0x50 0xc4 0x1a
10570x2d 0x56 0xd9 0x1a
10580x7f 0x58 0xc5 0x1a
10590x12 0x5e 0xdf 0x9a
1060
1061# CHECK: udiv w0, w7, w10
1062# CHECK: udiv x9, x22, x4
1063# CHECK: sdiv w12, w21, w0
1064# CHECK: sdiv x13, x2, x1
1065# CHECK: lsl w11, w12, w13
1066# CHECK: lsl x14, x15, x16
1067# CHECK: lsr w17, w18, w19
1068# CHECK: lsr x20, x21, x22
1069# CHECK: asr w23, w24, w25
1070# CHECK: asr x26, x27, x28
1071# CHECK: ror w0, w1, w2
1072# CHECK: ror x3, x4, x5
10730xe0 0x08 0xca 0x1a
10740xc9 0x0a 0xc4 0x9a
10750xac 0x0e 0xc0 0x1a
10760x4d 0x0c 0xc1 0x9a
10770x8b 0x21 0xcd 0x1a
10780xee 0x21 0xd0 0x9a
10790x51 0x26 0xd3 0x1a
10800xb4 0x26 0xd6 0x9a
10810x17 0x2b 0xd9 0x1a
10820x7a 0x2b 0xdc 0x9a
10830x20 0x2c 0xc2 0x1a
10840x83 0x2c 0xc5 0x9a
1085
1086# CHECK: lsl w6, w7, w8
1087# CHECK: lsl x9, x10, x11
1088# CHECK: lsr w12, w13, w14
1089# CHECK: lsr x15, x16, x17
1090# CHECK: asr w18, w19, w20
1091# CHECK: asr x21, x22, x23
1092# CHECK: ror w24, w25, w26
1093# CHECK: ror x27, x28, x29
10940xe6 0x20 0xc8 0x1a
10950x49 0x21 0xcb 0x9a
10960xac 0x25 0xce 0x1a
10970x0f 0x26 0xd1 0x9a
10980x72 0x2a 0xd4 0x1a
10990xd5 0x2a 0xd7 0x9a
11000x38 0x2f 0xda 0x1a
11010x9b 0x2f 0xdd 0x9a
1102
1103#------------------------------------------------------------------------------
1104# Data-processing (3 sources)
1105#------------------------------------------------------------------------------
1106
1107# First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1108# and smulh have them).
1109
1110# CHECK: smulh x30, x29, x28
1111# CHECK: smulh xzr, x27, x26
1112# CHECK: umulh x30, x29, x28
1113# CHECK: umulh x23, x30, xzr
11140xbe 0x73 0x5c 0x9b
11150x7f 0x2f 0x5a 0x9b
11160xbe 0x3f 0xdc 0x9b
11170xd7 0x77 0xdf 0x9b
1118
1119# Now onto the boilerplate stuff
1120
1121# CHECK: madd w1, w3, w7, w4
1122# CHECK: madd wzr, w0, w9, w11
1123# CHECK: madd w13, wzr, w4, w4
1124# CHECK: madd w19, w30, wzr, w29
1125# CHECK: mul w4, w5, w6
11260x61 0x10 0x7 0x1b
11270x1f 0x2c 0x9 0x1b
11280xed 0x13 0x4 0x1b
11290xd3 0x77 0x1f 0x1b
11300xa4 0x7c 0x6 0x1b
1131
1132# CHECK: madd x1, x3, x7, x4
1133# CHECK: madd xzr, x0, x9, x11
1134# CHECK: madd x13, xzr, x4, x4
1135# CHECK: madd x19, x30, xzr, x29
1136# CHECK: mul x4, x5, x6
11370x61 0x10 0x7 0x9b
11380x1f 0x2c 0x9 0x9b
11390xed 0x13 0x4 0x9b
11400xd3 0x77 0x1f 0x9b
11410xa4 0x7c 0x6 0x9b
1142
1143# CHECK: msub w1, w3, w7, w4
1144# CHECK: msub wzr, w0, w9, w11
1145# CHECK: msub w13, wzr, w4, w4
1146# CHECK: msub w19, w30, wzr, w29
1147# CHECK: mneg w4, w5, w6
11480x61 0x90 0x7 0x1b
11490x1f 0xac 0x9 0x1b
11500xed 0x93 0x4 0x1b
11510xd3 0xf7 0x1f 0x1b
11520xa4 0xfc 0x6 0x1b
1153
1154# CHECK: msub x1, x3, x7, x4
1155# CHECK: msub xzr, x0, x9, x11
1156# CHECK: msub x13, xzr, x4, x4
1157# CHECK: msub x19, x30, xzr, x29
1158# CHECK: mneg x4, x5, x6
11590x61 0x90 0x7 0x9b
11600x1f 0xac 0x9 0x9b
11610xed 0x93 0x4 0x9b
11620xd3 0xf7 0x1f 0x9b
11630xa4 0xfc 0x6 0x9b
1164
1165# CHECK: smaddl x3, w5, w2, x9
1166# CHECK: smaddl xzr, w10, w11, x12
1167# CHECK: smaddl x13, wzr, w14, x15
1168# CHECK: smaddl x16, w17, wzr, x18
1169# CHECK: smull x19, w20, w21
11700xa3 0x24 0x22 0x9b
11710x5f 0x31 0x2b 0x9b
11720xed 0x3f 0x2e 0x9b
11730x30 0x4a 0x3f 0x9b
11740x93 0x7e 0x35 0x9b
1175
1176# CHECK: smsubl x3, w5, w2, x9
1177# CHECK: smsubl xzr, w10, w11, x12
1178# CHECK: smsubl x13, wzr, w14, x15
1179# CHECK: smsubl x16, w17, wzr, x18
1180# CHECK: smnegl x19, w20, w21
11810xa3 0xa4 0x22 0x9b
11820x5f 0xb1 0x2b 0x9b
11830xed 0xbf 0x2e 0x9b
11840x30 0xca 0x3f 0x9b
11850x93 0xfe 0x35 0x9b
1186
1187# CHECK: umaddl x3, w5, w2, x9
1188# CHECK: umaddl xzr, w10, w11, x12
1189# CHECK: umaddl x13, wzr, w14, x15
1190# CHECK: umaddl x16, w17, wzr, x18
1191# CHECK: umull x19, w20, w21
11920xa3 0x24 0xa2 0x9b
11930x5f 0x31 0xab 0x9b
11940xed 0x3f 0xae 0x9b
11950x30 0x4a 0xbf 0x9b
11960x93 0x7e 0xb5 0x9b
1197
1198# CHECK: umsubl x3, w5, w2, x9
1199# CHECK: umsubl xzr, w10, w11, x12
1200# CHECK: umsubl x13, wzr, w14, x15
1201# CHECK: umsubl x16, w17, wzr, x18
1202# CHECK: umnegl x19, w20, w21
12030xa3 0xa4 0xa2 0x9b
12040x5f 0xb1 0xab 0x9b
12050xed 0xbf 0xae 0x9b
12060x30 0xca 0xbf 0x9b
12070x93 0xfe 0xb5 0x9b
1208
1209# CHECK: smulh x30, x29, x28
1210# CHECK: smulh xzr, x27, x26
1211# CHECK: smulh x25, xzr, x24
1212# CHECK: smulh x23, x22, xzr
12130xbe 0x7f 0x5c 0x9b
12140x7f 0x7f 0x5a 0x9b
12150xf9 0x7f 0x58 0x9b
12160xd7 0x7e 0x5f 0x9b
1217
1218# CHECK: umulh x30, x29, x28
1219# CHECK: umulh xzr, x27, x26
1220# CHECK: umulh x25, xzr, x24
1221# CHECK: umulh x23, x22, xzr
12220xbe 0x7f 0xdc 0x9b
12230x7f 0x7f 0xda 0x9b
12240xf9 0x7f 0xd8 0x9b
12250xd7 0x7e 0xdf 0x9b
1226
1227# CHECK: mul w3, w4, w5
1228# CHECK: mul wzr, w6, w7
1229# CHECK: mul w8, wzr, w9
1230# CHECK: mul w10, w11, wzr
1231# CHECK: mul x12, x13, x14
1232# CHECK: mul xzr, x15, x16
1233# CHECK: mul x17, xzr, x18
1234# CHECK: mul x19, x20, xzr
12350x83 0x7c 0x5 0x1b
12360xdf 0x7c 0x7 0x1b
12370xe8 0x7f 0x9 0x1b
12380x6a 0x7d 0x1f 0x1b
12390xac 0x7d 0xe 0x9b
12400xff 0x7d 0x10 0x9b
12410xf1 0x7f 0x12 0x9b
12420x93 0x7e 0x1f 0x9b
1243
1244# CHECK: mneg w21, w22, w23
1245# CHECK: mneg wzr, w24, w25
1246# CHECK: mneg w26, wzr, w27
1247# CHECK: mneg w28, w29, wzr
12480xd5 0xfe 0x17 0x1b
12490x1f 0xff 0x19 0x1b
12500xfa 0xff 0x1b 0x1b
12510xbc 0xff 0x1f 0x1b
1252
1253# CHECK: smull x11, w13, w17
1254# CHECK: umull x11, w13, w17
1255# CHECK: smnegl x11, w13, w17
1256# CHECK: umnegl x11, w13, w17
12570xab 0x7d 0x31 0x9b
12580xab 0x7d 0xb1 0x9b
12590xab 0xfd 0x31 0x9b
12600xab 0xfd 0xb1 0x9b
1261
1262#------------------------------------------------------------------------------
1263# Exception generation
1264#------------------------------------------------------------------------------
1265
1266# CHECK: svc #0
1a4d82fc 1267# CHECK: svc #{{65535|0xffff}}
970d7e83
LB
12680x1 0x0 0x0 0xd4
12690xe1 0xff 0x1f 0xd4
1270
1a4d82fc
JJ
1271# CHECK: hvc #{{1|0x1}}
1272# CHECK: smc #{{12000|0x2ee0}}
1273# CHECK: brk #{{12|0xc}}
1274# CHECK: hlt #{{123|0x7b}}
970d7e83
LB
12750x22 0x0 0x0 0xd4
12760x3 0xdc 0x5 0xd4
12770x80 0x1 0x20 0xd4
12780x60 0xf 0x40 0xd4
1279
1a4d82fc
JJ
1280# CHECK: dcps1 #{{42|0x2a}}
1281# CHECK: dcps2 #{{9|0x9}}
1282# CHECK: dcps3 #{{1000|0x3e8}}
970d7e83
LB
12830x41 0x5 0xa0 0xd4
12840x22 0x1 0xa0 0xd4
12850x3 0x7d 0xa0 0xd4
1286
1287# CHECK: dcps1
1288# CHECK: dcps2
1289# CHECK: dcps3
12900x1 0x0 0xa0 0xd4
12910x2 0x0 0xa0 0xd4
12920x3 0x0 0xa0 0xd4
1293
1294#------------------------------------------------------------------------------
1295# Extract (immediate)
1296#------------------------------------------------------------------------------
1297
1298# CHECK: extr w3, w5, w7, #0
1299# CHECK: extr w11, w13, w17, #31
13000xa3 0x0 0x87 0x13
13010xab 0x7d 0x91 0x13
1302
1303# CHECK: extr x3, x5, x7, #15
1304# CHECK: extr x11, x13, x17, #63
13050xa3 0x3c 0xc7 0x93
13060xab 0xfd 0xd1 0x93
1307
1a4d82fc
JJ
1308# CHECK: ror x19, x23, #24
1309# CHECK: ror x29, xzr, #63
1310# CHECK: ror w9, w13, #31
970d7e83
LB
13110xf3 0x62 0xd7 0x93
13120xfd 0xff 0xdf 0x93
13130xa9 0x7d 0x8d 0x13
1314
1315#------------------------------------------------------------------------------
1316# Floating-point compare
1317#------------------------------------------------------------------------------
1318
1319# CHECK: fcmp s3, s5
1320# CHECK: fcmp s31, #0.0
1321# CHECK: fcmp s31, #0.0
13220x60 0x20 0x25 0x1e
13230xe8 0x23 0x20 0x1e
13240xe8 0x23 0x3f 0x1e
1325
1326# CHECK: fcmpe s29, s30
1327# CHECK: fcmpe s15, #0.0
1328# CHECK: fcmpe s15, #0.0
13290xb0 0x23 0x3e 0x1e
13300xf8 0x21 0x20 0x1e
13310xf8 0x21 0x2f 0x1e
1332
1333# CHECK: fcmp d4, d12
1334# CHECK: fcmp d23, #0.0
1335# CHECK: fcmp d23, #0.0
13360x80 0x20 0x6c 0x1e
13370xe8 0x22 0x60 0x1e
13380xe8 0x22 0x77 0x1e
1339
1340# CHECK: fcmpe d26, d22
1341# CHECK: fcmpe d29, #0.0
1342# CHECK: fcmpe d29, #0.0
13430x50 0x23 0x76 0x1e
13440xb8 0x23 0x60 0x1e
13450xb8 0x23 0x6d 0x1e
1346
1347#------------------------------------------------------------------------------
1348# Floating-point conditional compare
1349#------------------------------------------------------------------------------
1350
1351# CHECK: fccmp s1, s31, #0, eq
1352# CHECK: fccmp s3, s0, #15, hs
1353# CHECK: fccmp s31, s15, #13, hs
13540x20 0x04 0x3f 0x1e
13550x6f 0x24 0x20 0x1e
13560xed 0x27 0x2f 0x1e
1357
1358# CHECK: fccmp d9, d31, #0, le
1359# CHECK: fccmp d3, d0, #15, gt
1360# CHECK: fccmp d31, d5, #7, ne
13610x20 0xd5 0x7f 0x1e
13620x6f 0xc4 0x60 0x1e
13630xe7 0x17 0x65 0x1e
1364
1365# CHECK: fccmpe s1, s31, #0, eq
1366# CHECK: fccmpe s3, s0, #15, hs
1367# CHECK: fccmpe s31, s15, #13, hs
13680x30 0x04 0x3f 0x1e
13690x7f 0x24 0x20 0x1e
13700xfd 0x27 0x2f 0x1e
1371
1372# CHECK: fccmpe d9, d31, #0, le
1373# CHECK: fccmpe d3, d0, #15, gt
1374# CHECK: fccmpe d31, d5, #7, ne
13750x30 0xd5 0x7f 0x1e
13760x7f 0xc4 0x60 0x1e
13770xf7 0x17 0x65 0x1e
1378
1379#-------------------------------------------------------------------------------
1380# Floating-point conditional compare
1381#-------------------------------------------------------------------------------
1382
1383# CHECK: fcsel s3, s20, s9, pl
1384# CHECK: fcsel d9, d10, d11, mi
13850x83 0x5e 0x29 0x1e
13860x49 0x4d 0x6b 0x1e
1387
1388#------------------------------------------------------------------------------
1389# Floating-point data-processing (1 source)
1390#------------------------------------------------------------------------------
1391
1392# CHECK: fmov s0, s1
1393# CHECK: fabs s2, s3
1394# CHECK: fneg s4, s5
1395# CHECK: fsqrt s6, s7
1396# CHECK: fcvt d8, s9
1397# CHECK: fcvt h10, s11
1398# CHECK: frintn s12, s13
1399# CHECK: frintp s14, s15
1400# CHECK: frintm s16, s17
1401# CHECK: frintz s18, s19
1402# CHECK: frinta s20, s21
1403# CHECK: frintx s22, s23
1404# CHECK: frinti s24, s25
14050x20 0x40 0x20 0x1e
14060x62 0xc0 0x20 0x1e
14070xa4 0x40 0x21 0x1e
14080xe6 0xc0 0x21 0x1e
14090x28 0xc1 0x22 0x1e
14100x6a 0xc1 0x23 0x1e
14110xac 0x41 0x24 0x1e
14120xee 0xc1 0x24 0x1e
14130x30 0x42 0x25 0x1e
14140x72 0xc2 0x25 0x1e
14150xb4 0x42 0x26 0x1e
14160xf6 0x42 0x27 0x1e
14170x38 0xc3 0x27 0x1e
1418
1419# CHECK: fmov d0, d1
1420# CHECK: fabs d2, d3
1421# CHECK: fneg d4, d5
1422# CHECK: fsqrt d6, d7
1423# CHECK: fcvt s8, d9
1424# CHECK: fcvt h10, d11
1425# CHECK: frintn d12, d13
1426# CHECK: frintp d14, d15
1427# CHECK: frintm d16, d17
1428# CHECK: frintz d18, d19
1429# CHECK: frinta d20, d21
1430# CHECK: frintx d22, d23
1431# CHECK: frinti d24, d25
14320x20 0x40 0x60 0x1e
14330x62 0xc0 0x60 0x1e
14340xa4 0x40 0x61 0x1e
14350xe6 0xc0 0x61 0x1e
14360x28 0x41 0x62 0x1e
14370x6a 0xc1 0x63 0x1e
14380xac 0x41 0x64 0x1e
14390xee 0xc1 0x64 0x1e
14400x30 0x42 0x65 0x1e
14410x72 0xc2 0x65 0x1e
14420xb4 0x42 0x66 0x1e
14430xf6 0x42 0x67 0x1e
14440x38 0xc3 0x67 0x1e
1445
1446# CHECK: fcvt s26, h27
1447# CHECK: fcvt d28, h29
14480x7a 0x43 0xe2 0x1e
14490xbc 0xc3 0xe2 0x1e
1450
1451#------------------------------------------------------------------------------
1452# Floating-point data-processing (2 sources)
1453#------------------------------------------------------------------------------
1454
1455# CHECK: fmul s20, s19, s17
1456# CHECK: fdiv s1, s2, s3
1457# CHECK: fadd s4, s5, s6
1458# CHECK: fsub s7, s8, s9
1459# CHECK: fmax s10, s11, s12
1460# CHECK: fmin s13, s14, s15
1461# CHECK: fmaxnm s16, s17, s18
1462# CHECK: fminnm s19, s20, s21
1463# CHECK: fnmul s22, s23, s2
14640x74 0xa 0x31 0x1e
14650x41 0x18 0x23 0x1e
14660xa4 0x28 0x26 0x1e
14670x7 0x39 0x29 0x1e
14680x6a 0x49 0x2c 0x1e
14690xcd 0x59 0x2f 0x1e
14700x30 0x6a 0x32 0x1e
14710x93 0x7a 0x35 0x1e
14720xf6 0x8a 0x38 0x1e
1473
1474
1475# CHECK: fmul d20, d19, d17
1476# CHECK: fdiv d1, d2, d3
1477# CHECK: fadd d4, d5, d6
1478# CHECK: fsub d7, d8, d9
1479# CHECK: fmax d10, d11, d12
1480# CHECK: fmin d13, d14, d15
1481# CHECK: fmaxnm d16, d17, d18
1482# CHECK: fminnm d19, d20, d21
1483# CHECK: fnmul d22, d23, d24
14840x74 0xa 0x71 0x1e
14850x41 0x18 0x63 0x1e
14860xa4 0x28 0x66 0x1e
14870x7 0x39 0x69 0x1e
14880x6a 0x49 0x6c 0x1e
14890xcd 0x59 0x6f 0x1e
14900x30 0x6a 0x72 0x1e
14910x93 0x7a 0x75 0x1e
14920xf6 0x8a 0x78 0x1e
1493
1494#------------------------------------------------------------------------------
1495# Floating-point data-processing (1 source)
1496#------------------------------------------------------------------------------
1497
1498# CHECK: fmadd s3, s5, s6, s31
1499# CHECK: fmadd d3, d13, d0, d23
1500# CHECK: fmsub s3, s5, s6, s31
1501# CHECK: fmsub d3, d13, d0, d23
1502# CHECK: fnmadd s3, s5, s6, s31
1503# CHECK: fnmadd d3, d13, d0, d23
1504# CHECK: fnmsub s3, s5, s6, s31
1505# CHECK: fnmsub d3, d13, d0, d23
15060xa3 0x7c 0x06 0x1f
15070xa3 0x5d 0x40 0x1f
15080xa3 0xfc 0x06 0x1f
15090xa3 0xdd 0x40 0x1f
15100xa3 0x7c 0x26 0x1f
15110xa3 0x5d 0x60 0x1f
15120xa3 0xfc 0x26 0x1f
15130xa3 0xdd 0x60 0x1f
1514
1515#------------------------------------------------------------------------------
1516# Floating-point <-> fixed-point conversion
1517#------------------------------------------------------------------------------
1518
1519# CHECK: fcvtzs w3, s5, #1
1520# CHECK: fcvtzs wzr, s20, #13
1521# CHECK: fcvtzs w19, s0, #32
15220xa3 0xfc 0x18 0x1e
15230x9f 0xce 0x18 0x1e
15240x13 0x80 0x18 0x1e
1525
1526# CHECK: fcvtzs x3, s5, #1
1527# CHECK: fcvtzs x12, s30, #45
1528# CHECK: fcvtzs x19, s0, #64
15290xa3 0xfc 0x18 0x9e
15300xcc 0x4f 0x18 0x9e
15310x13 0x00 0x18 0x9e
1532
1533# CHECK: fcvtzs w3, d5, #1
1534# CHECK: fcvtzs wzr, d20, #13
1535# CHECK: fcvtzs w19, d0, #32
15360xa3 0xfc 0x58 0x1e
15370x9f 0xce 0x58 0x1e
15380x13 0x80 0x58 0x1e
1539
1540# CHECK: fcvtzs x3, d5, #1
1541# CHECK: fcvtzs x12, d30, #45
1542# CHECK: fcvtzs x19, d0, #64
15430xa3 0xfc 0x58 0x9e
15440xcc 0x4f 0x58 0x9e
15450x13 0x00 0x58 0x9e
1546
1547# CHECK: fcvtzu w3, s5, #1
1548# CHECK: fcvtzu wzr, s20, #13
1549# CHECK: fcvtzu w19, s0, #32
15500xa3 0xfc 0x19 0x1e
15510x9f 0xce 0x19 0x1e
15520x13 0x80 0x19 0x1e
1553
1554# CHECK: fcvtzu x3, s5, #1
1555# CHECK: fcvtzu x12, s30, #45
1556# CHECK: fcvtzu x19, s0, #64
15570xa3 0xfc 0x19 0x9e
15580xcc 0x4f 0x19 0x9e
15590x13 0x00 0x19 0x9e
1560
1561# CHECK: fcvtzu w3, d5, #1
1562# CHECK: fcvtzu wzr, d20, #13
1563# CHECK: fcvtzu w19, d0, #32
15640xa3 0xfc 0x59 0x1e
15650x9f 0xce 0x59 0x1e
15660x13 0x80 0x59 0x1e
1567
1568# CHECK: fcvtzu x3, d5, #1
1569# CHECK: fcvtzu x12, d30, #45
1570# CHECK: fcvtzu x19, d0, #64
15710xa3 0xfc 0x59 0x9e
15720xcc 0x4f 0x59 0x9e
15730x13 0x00 0x59 0x9e
1574
1575# CHECK: scvtf s23, w19, #1
1576# CHECK: scvtf s31, wzr, #20
1577# CHECK: scvtf s14, w0, #32
15780x77 0xfe 0x02 0x1e
15790xff 0xb3 0x02 0x1e
15800x0e 0x80 0x02 0x1e
1581
1582# CHECK: scvtf s23, x19, #1
1583# CHECK: scvtf s31, xzr, #20
1584# CHECK: scvtf s14, x0, #64
15850x77 0xfe 0x02 0x9e
15860xff 0xb3 0x02 0x9e
15870x0e 0x00 0x02 0x9e
1588
1589# CHECK: scvtf d23, w19, #1
1590# CHECK: scvtf d31, wzr, #20
1591# CHECK: scvtf d14, w0, #32
15920x77 0xfe 0x42 0x1e
15930xff 0xb3 0x42 0x1e
15940x0e 0x80 0x42 0x1e
1595
1596# CHECK: scvtf d23, x19, #1
1597# CHECK: scvtf d31, xzr, #20
1598# CHECK: scvtf d14, x0, #64
15990x77 0xfe 0x42 0x9e
16000xff 0xb3 0x42 0x9e
16010x0e 0x00 0x42 0x9e
1602
1603# CHECK: ucvtf s23, w19, #1
1604# CHECK: ucvtf s31, wzr, #20
1605# CHECK: ucvtf s14, w0, #32
16060x77 0xfe 0x03 0x1e
16070xff 0xb3 0x03 0x1e
16080x0e 0x80 0x03 0x1e
1609
1610# CHECK: ucvtf s23, x19, #1
1611# CHECK: ucvtf s31, xzr, #20
1612# CHECK: ucvtf s14, x0, #64
16130x77 0xfe 0x03 0x9e
16140xff 0xb3 0x03 0x9e
16150x0e 0x00 0x03 0x9e
1616
1617# CHECK: ucvtf d23, w19, #1
1618# CHECK: ucvtf d31, wzr, #20
1619# CHECK: ucvtf d14, w0, #32
16200x77 0xfe 0x43 0x1e
16210xff 0xb3 0x43 0x1e
16220x0e 0x80 0x43 0x1e
1623
1624# CHECK: ucvtf d23, x19, #1
1625# CHECK: ucvtf d31, xzr, #20
1626# CHECK: ucvtf d14, x0, #64
16270x77 0xfe 0x43 0x9e
16280xff 0xb3 0x43 0x9e
16290x0e 0x00 0x43 0x9e
1630
1631#------------------------------------------------------------------------------
1632# Floating-point <-> integer conversion
1633#------------------------------------------------------------------------------
1634# CHECK: fcvtns w3, s31
1635# CHECK: fcvtns xzr, s12
1636# CHECK: fcvtnu wzr, s12
1637# CHECK: fcvtnu x0, s0
16380xe3 0x3 0x20 0x1e
16390x9f 0x1 0x20 0x9e
16400x9f 0x1 0x21 0x1e
16410x0 0x0 0x21 0x9e
1642
1643# CHECK: fcvtps wzr, s9
1644# CHECK: fcvtps x12, s20
1645# CHECK: fcvtpu w30, s23
1646# CHECK: fcvtpu x29, s3
16470x3f 0x1 0x28 0x1e
16480x8c 0x2 0x28 0x9e
16490xfe 0x2 0x29 0x1e
16500x7d 0x0 0x29 0x9e
1651
1652# CHECK: fcvtms w2, s3
1653# CHECK: fcvtms x4, s5
1654# CHECK: fcvtmu w6, s7
1655# CHECK: fcvtmu x8, s9
16560x62 0x0 0x30 0x1e
16570xa4 0x0 0x30 0x9e
16580xe6 0x0 0x31 0x1e
16590x28 0x1 0x31 0x9e
1660
1661# CHECK: fcvtzs w10, s11
1662# CHECK: fcvtzs x12, s13
1663# CHECK: fcvtzu w14, s15
1664# CHECK: fcvtzu x15, s16
16650x6a 0x1 0x38 0x1e
16660xac 0x1 0x38 0x9e
16670xee 0x1 0x39 0x1e
16680xf 0x2 0x39 0x9e
1669
1670# CHECK: scvtf s17, w18
1671# CHECK: scvtf s19, x20
1672# CHECK: ucvtf s21, w22
1673# CHECK: scvtf s23, x24
16740x51 0x2 0x22 0x1e
16750x93 0x2 0x22 0x9e
16760xd5 0x2 0x23 0x1e
16770x17 0x3 0x22 0x9e
1678
1679# CHECK: fcvtas w25, s26
1680# CHECK: fcvtas x27, s28
1681# CHECK: fcvtau w29, s30
1682# CHECK: fcvtau xzr, s0
16830x59 0x3 0x24 0x1e
16840x9b 0x3 0x24 0x9e
16850xdd 0x3 0x25 0x1e
16860x1f 0x0 0x25 0x9e
1687
1688# CHECK: fcvtns w3, d31
1689# CHECK: fcvtns xzr, d12
1690# CHECK: fcvtnu wzr, d12
1691# CHECK: fcvtnu x0, d0
16920xe3 0x3 0x60 0x1e
16930x9f 0x1 0x60 0x9e
16940x9f 0x1 0x61 0x1e
16950x0 0x0 0x61 0x9e
1696
1697# CHECK: fcvtps wzr, d9
1698# CHECK: fcvtps x12, d20
1699# CHECK: fcvtpu w30, d23
1700# CHECK: fcvtpu x29, d3
17010x3f 0x1 0x68 0x1e
17020x8c 0x2 0x68 0x9e
17030xfe 0x2 0x69 0x1e
17040x7d 0x0 0x69 0x9e
1705
1706# CHECK: fcvtms w2, d3
1707# CHECK: fcvtms x4, d5
1708# CHECK: fcvtmu w6, d7
1709# CHECK: fcvtmu x8, d9
17100x62 0x0 0x70 0x1e
17110xa4 0x0 0x70 0x9e
17120xe6 0x0 0x71 0x1e
17130x28 0x1 0x71 0x9e
1714
1715# CHECK: fcvtzs w10, d11
1716# CHECK: fcvtzs x12, d13
1717# CHECK: fcvtzu w14, d15
1718# CHECK: fcvtzu x15, d16
17190x6a 0x1 0x78 0x1e
17200xac 0x1 0x78 0x9e
17210xee 0x1 0x79 0x1e
17220xf 0x2 0x79 0x9e
1723
1724# CHECK: scvtf d17, w18
1725# CHECK: scvtf d19, x20
1726# CHECK: ucvtf d21, w22
1727# CHECK: ucvtf d23, x24
17280x51 0x2 0x62 0x1e
17290x93 0x2 0x62 0x9e
17300xd5 0x2 0x63 0x1e
17310x17 0x3 0x63 0x9e
1732
1733# CHECK: fcvtas w25, d26
1734# CHECK: fcvtas x27, d28
1735# CHECK: fcvtau w29, d30
1736# CHECK: fcvtau xzr, d0
17370x59 0x3 0x64 0x1e
17380x9b 0x3 0x64 0x9e
17390xdd 0x3 0x65 0x1e
17400x1f 0x0 0x65 0x9e
1741
1742# CHECK: fmov w3, s9
1743# CHECK: fmov s9, w3
17440x23 0x1 0x26 0x1e
17450x69 0x0 0x27 0x1e
1746
1747# CHECK: fmov x20, d31
1748# CHECK: fmov d1, x15
17490xf4 0x3 0x66 0x9e
17500xe1 0x1 0x67 0x9e
1751
1752# CHECK: fmov x3, v12.d[1]
1753# CHECK: fmov v1.d[1], x19
17540x83 0x1 0xae 0x9e
17550x61 0x2 0xaf 0x9e
1756
1757#------------------------------------------------------------------------------
1758# Floating-point immediate
1759#------------------------------------------------------------------------------
1760
1761# CHECK: fmov s2, #0.12500000
1762# CHECK: fmov s3, #1.00000000
1763# CHECK: fmov d30, #16.00000000
17640x2 0x10 0x28 0x1e
17650x3 0x10 0x2e 0x1e
17660x1e 0x10 0x66 0x1e
1767
1768# CHECK: fmov s4, #1.06250000
1769# CHECK: fmov d10, #1.93750000
17700x4 0x30 0x2e 0x1e
17710xa 0xf0 0x6f 0x1e
1772
1773# CHECK: fmov s12, #-1.00000000
17740xc 0x10 0x3e 0x1e
1775
1776# CHECK: fmov d16, #8.50000000
17770x10 0x30 0x64 0x1e
1778
1779#------------------------------------------------------------------------------
1780# Load-register (literal)
1781#------------------------------------------------------------------------------
1782
1783# CHECK: ldr w3, #0
1784# CHECK: ldr x29, #4
1785# CHECK: ldrsw xzr, #-4
17860x03 0x00 0x00 0x18
17870x3d 0x00 0x00 0x58
17880xff 0xff 0xff 0x98
1789
1790# CHECK: ldr s0, #8
1791# CHECK: ldr d0, #1048572
1792# CHECK: ldr q0, #-1048576
17930x40 0x00 0x00 0x1c
17940xe0 0xff 0x7f 0x5c
17950x00 0x00 0x80 0x9c
1796
1797# CHECK: prfm pldl1strm, #0
1798# CHECK: prfm #22, #0
17990x01 0x00 0x00 0xd8
18000x16 0x00 0x00 0xd8
1801
1802#------------------------------------------------------------------------------
1803# Load/store exclusive
1804#------------------------------------------------------------------------------
1805
1806#CHECK: stxrb w18, w8, [sp]
1807#CHECK: stxrh w24, w15, [x16]
1808#CHECK: stxr w5, w6, [x17]
1809#CHECK: stxr w1, x10, [x21]
1810#CHECK: stxr w1, x10, [x21]
18110xe8 0x7f 0x12 0x08
18120x0f 0x7e 0x18 0x48
18130x26 0x7e 0x05 0x88
18140xaa 0x7e 0x01 0xc8
18150xaa 0x7a 0x01 0xc8
1816
1817#CHECK: ldxrb w30, [x0]
1818#CHECK: ldxrh w17, [x4]
1819#CHECK: ldxr w22, [sp]
1820#CHECK: ldxr x11, [x29]
1821#CHECK: ldxr x11, [x29]
1822#CHECK: ldxr x11, [x29]
18230x1e 0x7c 0x5f 0x08
18240x91 0x7c 0x5f 0x48
18250xf6 0x7f 0x5f 0x88
18260xab 0x7f 0x5f 0xc8
18270xab 0x6f 0x5f 0xc8
18280xab 0x7f 0x5e 0xc8
1829
1830#CHECK: stxp w12, w11, w10, [sp]
1831#CHECK: stxp wzr, x27, x9, [x12]
18320xeb 0x2b 0x2c 0x88
18330x9b 0x25 0x3f 0xc8
1834
1835#CHECK: ldxp w0, wzr, [sp]
1836#CHECK: ldxp x17, x0, [x18]
1837#CHECK: ldxp x17, x0, [x18]
18380xe0 0x7f 0x7f 0x88
18390x51 0x02 0x7f 0xc8
18400x51 0x02 0x7e 0xc8
1841
1842#CHECK: stlxrb w12, w22, [x0]
1843#CHECK: stlxrh w10, w1, [x1]
1844#CHECK: stlxr w9, w2, [x2]
1845#CHECK: stlxr w9, x3, [sp]
1846
18470x16 0xfc 0x0c 0x08
18480x21 0xfc 0x0a 0x48
18490x42 0xfc 0x09 0x88
18500xe3 0xff 0x09 0xc8
1851
1852#CHECK: ldaxrb w8, [x4]
1853#CHECK: ldaxrh w7, [x5]
1854#CHECK: ldaxr w6, [sp]
1855#CHECK: ldaxr x5, [x6]
1856#CHECK: ldaxr x5, [x6]
1857#CHECK: ldaxr x5, [x6]
18580x88 0xfc 0x5f 0x08
18590xa7 0xfc 0x5f 0x48
18600xe6 0xff 0x5f 0x88
18610xc5 0xfc 0x5f 0xc8
18620xc5 0xec 0x5f 0xc8
18630xc5 0xfc 0x5e 0xc8
1864
1865#CHECK: stlxp w4, w5, w6, [sp]
1866#CHECK: stlxp wzr, x6, x7, [x1]
18670xe5 0x9b 0x24 0x88
18680x26 0x9c 0x3f 0xc8
1869
1870#CHECK: ldaxp w5, w18, [sp]
1871#CHECK: ldaxp x6, x19, [x22]
1872#CHECK: ldaxp x6, x19, [x22]
18730xe5 0xcb 0x7f 0x88
18740xc6 0xce 0x7f 0xc8
18750xc6 0xce 0x7e 0xc8
1876
1877#CHECK: stlrb w24, [sp]
1878#CHECK: stlrh w25, [x30]
1879#CHECK: stlr w26, [x29]
1880#CHECK: stlr x27, [x28]
1881#CHECK: stlr x27, [x28]
1882#CHECK: stlr x27, [x28]
18830xf8 0xff 0x9f 0x08
18840xd9 0xff 0x9f 0x48
18850xba 0xff 0x9f 0x88
18860x9b 0xff 0x9f 0xc8
18870x9b 0xef 0x9f 0xc8
18880x9b 0xff 0x9e 0xc8
1889
1890#CHECK: ldarb w23, [sp]
1891#CHECK: ldarh w22, [x30]
1892#CHECK: ldar wzr, [x29]
1893#CHECK: ldar x21, [x28]
1894#CHECK: ldar x21, [x28]
1895#CHECK: ldar x21, [x28]
18960xf7 0xff 0xdf 0x08
18970xd6 0xff 0xdf 0x48
18980xbf 0xff 0xdf 0x88
18990x95 0xff 0xdf 0xc8
19000x95 0xef 0xdf 0xc8
19010x95 0xff 0xde 0xc8
1902
1903#------------------------------------------------------------------------------
1904# Load/store (unscaled immediate)
1905#------------------------------------------------------------------------------
1906
1907# CHECK: sturb w9, [sp]
1908# CHECK: sturh wzr, [x12, #255]
1909# CHECK: stur w16, [x0, #-256]
1910# CHECK: stur x28, [x14, #1]
19110xe9 0x3 0x0 0x38
19120x9f 0xf1 0xf 0x78
19130x10 0x0 0x10 0xb8
19140xdc 0x11 0x0 0xf8
1915
1916# CHECK: ldurb w1, [x20, #255]
1917# CHECK: ldurh w20, [x1, #255]
1918# CHECK: ldur w12, [sp, #255]
1919# CHECK: ldur xzr, [x12, #255]
19200x81 0xf2 0x4f 0x38
19210x34 0xf0 0x4f 0x78
19220xec 0xf3 0x4f 0xb8
19230x9f 0xf1 0x4f 0xf8
1924
1925# CHECK: ldursb x9, [x7, #-256]
1926# CHECK: ldursh x17, [x19, #-256]
1927# CHECK: ldursw x20, [x15, #-256]
1928# CHECK: prfum pldl2keep, [sp, #-256]
1929# CHECK: ldursb w19, [x1, #-256]
1930# CHECK: ldursh w15, [x21, #-256]
19310xe9 0x0 0x90 0x38
19320x71 0x2 0x90 0x78
19330xf4 0x1 0x90 0xb8
19340xe2 0x3 0x90 0xf8
19350x33 0x0 0xd0 0x38
19360xaf 0x2 0xd0 0x78
1937
1938# CHECK: stur b0, [sp, #1]
1939# CHECK: stur h12, [x12, #-1]
1940# CHECK: stur s15, [x0, #255]
1941# CHECK: stur d31, [x5, #25]
1942# CHECK: stur q9, [x5]
19430xe0 0x13 0x0 0x3c
19440x8c 0xf1 0x1f 0x7c
19450xf 0xf0 0xf 0xbc
19460xbf 0x90 0x1 0xfc
19470xa9 0x0 0x80 0x3c
1948
1949# CHECK: ldur b3, [sp]
1950# CHECK: ldur h5, [x4, #-256]
1951# CHECK: ldur s7, [x12, #-1]
1952# CHECK: ldur d11, [x19, #4]
1953# CHECK: ldur q13, [x1, #2]
19540xe3 0x3 0x40 0x3c
19550x85 0x0 0x50 0x7c
19560x87 0xf1 0x5f 0xbc
19570x6b 0x42 0x40 0xfc
19580x2d 0x20 0xc0 0x3c
1959
1960#------------------------------------------------------------------------------
1961# Load/store (immediate post-indexed)
1962#------------------------------------------------------------------------------
1963
1964# E.g. "str xzr, [sp], #4" is *not* unpredictable
1965# CHECK-NOT: warning: potentially undefined instruction encoding
19660xff 0x47 0x40 0xb8
1967
1968# CHECK: strb w9, [x2], #255
1969# CHECK: strb w10, [x3], #1
1970# CHECK: strb w10, [x3], #-256
1971# CHECK: strh w9, [x2], #255
1972# CHECK: strh w9, [x2], #1
1973# CHECK: strh w10, [x3], #-256
19740x49 0xf4 0xf 0x38
19750x6a 0x14 0x0 0x38
19760x6a 0x4 0x10 0x38
19770x49 0xf4 0xf 0x78
19780x49 0x14 0x0 0x78
19790x6a 0x4 0x10 0x78
1980
1981# CHECK: str w19, [sp], #255
1982# CHECK: str w20, [x30], #1
1983# CHECK: str w21, [x12], #-256
1984# CHECK: str xzr, [x9], #255
1985# CHECK: str x2, [x3], #1
1986# CHECK: str x19, [x12], #-256
19870xf3 0xf7 0xf 0xb8
19880xd4 0x17 0x0 0xb8
19890x95 0x5 0x10 0xb8
19900x3f 0xf5 0xf 0xf8
19910x62 0x14 0x0 0xf8
19920x93 0x5 0x10 0xf8
1993
1994# CHECK: ldrb w9, [x2], #255
1995# CHECK: ldrb w10, [x3], #1
1996# CHECK: ldrb w10, [x3], #-256
1997# CHECK: ldrh w9, [x2], #255
1998# CHECK: ldrh w9, [x2], #1
1999# CHECK: ldrh w10, [x3], #-256
20000x49 0xf4 0x4f 0x38
20010x6a 0x14 0x40 0x38
20020x6a 0x4 0x50 0x38
20030x49 0xf4 0x4f 0x78
20040x49 0x14 0x40 0x78
20050x6a 0x4 0x50 0x78
2006
2007# CHECK: ldr w19, [sp], #255
2008# CHECK: ldr w20, [x30], #1
2009# CHECK: ldr w21, [x12], #-256
2010# CHECK: ldr xzr, [x9], #255
2011# CHECK: ldr x2, [x3], #1
2012# CHECK: ldr x19, [x12], #-256
20130xf3 0xf7 0x4f 0xb8
20140xd4 0x17 0x40 0xb8
20150x95 0x5 0x50 0xb8
20160x3f 0xf5 0x4f 0xf8
20170x62 0x14 0x40 0xf8
20180x93 0x5 0x50 0xf8
2019
2020# CHECK: ldrsb xzr, [x9], #255
2021# CHECK: ldrsb x2, [x3], #1
2022# CHECK: ldrsb x19, [x12], #-256
2023# CHECK: ldrsh xzr, [x9], #255
2024# CHECK: ldrsh x2, [x3], #1
2025# CHECK: ldrsh x19, [x12], #-256
2026# CHECK: ldrsw xzr, [x9], #255
2027# CHECK: ldrsw x2, [x3], #1
2028# CHECK: ldrsw x19, [x12], #-256
20290x3f 0xf5 0x8f 0x38
20300x62 0x14 0x80 0x38
20310x93 0x5 0x90 0x38
20320x3f 0xf5 0x8f 0x78
20330x62 0x14 0x80 0x78
20340x93 0x5 0x90 0x78
20350x3f 0xf5 0x8f 0xb8
20360x62 0x14 0x80 0xb8
20370x93 0x5 0x90 0xb8
2038
2039# CHECK: ldrsb wzr, [x9], #255
2040# CHECK: ldrsb w2, [x3], #1
2041# CHECK: ldrsb w19, [x12], #-256
2042# CHECK: ldrsh wzr, [x9], #255
2043# CHECK: ldrsh w2, [x3], #1
2044# CHECK: ldrsh w19, [x12], #-256
20450x3f 0xf5 0xcf 0x38
20460x62 0x14 0xc0 0x38
20470x93 0x5 0xd0 0x38
20480x3f 0xf5 0xcf 0x78
20490x62 0x14 0xc0 0x78
20500x93 0x5 0xd0 0x78
2051
2052# CHECK: str b0, [x0], #255
2053# CHECK: str b3, [x3], #1
2054# CHECK: str b5, [sp], #-256
2055# CHECK: str h10, [x10], #255
2056# CHECK: str h13, [x23], #1
2057# CHECK: str h15, [sp], #-256
2058# CHECK: str s20, [x20], #255
2059# CHECK: str s23, [x23], #1
2060# CHECK: str s25, [x0], #-256
2061# CHECK: str d20, [x20], #255
2062# CHECK: str d23, [x23], #1
2063# CHECK: str d25, [x0], #-256
20640x0 0xf4 0xf 0x3c
20650x63 0x14 0x0 0x3c
20660xe5 0x7 0x10 0x3c
20670x4a 0xf5 0xf 0x7c
20680xed 0x16 0x0 0x7c
20690xef 0x7 0x10 0x7c
20700x94 0xf6 0xf 0xbc
20710xf7 0x16 0x0 0xbc
20720x19 0x4 0x10 0xbc
20730x94 0xf6 0xf 0xfc
20740xf7 0x16 0x0 0xfc
20750x19 0x4 0x10 0xfc
2076
2077# CHECK: ldr b0, [x0], #255
2078# CHECK: ldr b3, [x3], #1
2079# CHECK: ldr b5, [sp], #-256
2080# CHECK: ldr h10, [x10], #255
2081# CHECK: ldr h13, [x23], #1
2082# CHECK: ldr h15, [sp], #-256
2083# CHECK: ldr s20, [x20], #255
2084# CHECK: ldr s23, [x23], #1
2085# CHECK: ldr s25, [x0], #-256
2086# CHECK: ldr d20, [x20], #255
2087# CHECK: ldr d23, [x23], #1
2088# CHECK: ldr d25, [x0], #-256
20890x0 0xf4 0x4f 0x3c
20900x63 0x14 0x40 0x3c
20910xe5 0x7 0x50 0x3c
20920x4a 0xf5 0x4f 0x7c
20930xed 0x16 0x40 0x7c
20940xef 0x7 0x50 0x7c
20950x94 0xf6 0x4f 0xbc
20960xf7 0x16 0x40 0xbc
20970x19 0x4 0x50 0xbc
20980x94 0xf6 0x4f 0xfc
20990xf7 0x16 0x40 0xfc
21000x19 0x4 0x50 0xfc
21010x34 0xf4 0xcf 0x3c
2102
2103# CHECK: ldr q20, [x1], #255
2104# CHECK: ldr q23, [x9], #1
2105# CHECK: ldr q25, [x20], #-256
2106# CHECK: str q10, [x1], #255
2107# CHECK: str q22, [sp], #1
2108# CHECK: str q21, [x20], #-256
21090x37 0x15 0xc0 0x3c
21100x99 0x6 0xd0 0x3c
21110x2a 0xf4 0x8f 0x3c
21120xf6 0x17 0x80 0x3c
21130x95 0x6 0x90 0x3c
2114
2115#-------------------------------------------------------------------------------
2116# Load-store register (immediate pre-indexed)
2117#-------------------------------------------------------------------------------
2118
2119# E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2120# CHECK-NOT: warning: potentially undefined instruction encoding
21210xff 0xf 0x40 0xf8
2122
2123# CHECK: ldr x3, [x4, #0]!
21240x83 0xc 0x40 0xf8
2125
2126# CHECK: strb w9, [x2, #255]!
2127# CHECK: strb w10, [x3, #1]!
2128# CHECK: strb w10, [x3, #-256]!
2129# CHECK: strh w9, [x2, #255]!
2130# CHECK: strh w9, [x2, #1]!
2131# CHECK: strh w10, [x3, #-256]!
21320x49 0xfc 0xf 0x38
21330x6a 0x1c 0x0 0x38
21340x6a 0xc 0x10 0x38
21350x49 0xfc 0xf 0x78
21360x49 0x1c 0x0 0x78
21370x6a 0xc 0x10 0x78
2138
2139# CHECK: str w19, [sp, #255]!
2140# CHECK: str w20, [x30, #1]!
2141# CHECK: str w21, [x12, #-256]!
2142# CHECK: str xzr, [x9, #255]!
2143# CHECK: str x2, [x3, #1]!
2144# CHECK: str x19, [x12, #-256]!
21450xf3 0xff 0xf 0xb8
21460xd4 0x1f 0x0 0xb8
21470x95 0xd 0x10 0xb8
21480x3f 0xfd 0xf 0xf8
21490x62 0x1c 0x0 0xf8
21500x93 0xd 0x10 0xf8
2151
2152# CHECK: ldrb w9, [x2, #255]!
2153# CHECK: ldrb w10, [x3, #1]!
2154# CHECK: ldrb w10, [x3, #-256]!
2155# CHECK: ldrh w9, [x2, #255]!
2156# CHECK: ldrh w9, [x2, #1]!
2157# CHECK: ldrh w10, [x3, #-256]!
21580x49 0xfc 0x4f 0x38
21590x6a 0x1c 0x40 0x38
21600x6a 0xc 0x50 0x38
21610x49 0xfc 0x4f 0x78
21620x49 0x1c 0x40 0x78
21630x6a 0xc 0x50 0x78
2164
2165# CHECK: ldr w19, [sp, #255]!
2166# CHECK: ldr w20, [x30, #1]!
2167# CHECK: ldr w21, [x12, #-256]!
2168# CHECK: ldr xzr, [x9, #255]!
2169# CHECK: ldr x2, [x3, #1]!
2170# CHECK: ldr x19, [x12, #-256]!
21710xf3 0xff 0x4f 0xb8
21720xd4 0x1f 0x40 0xb8
21730x95 0xd 0x50 0xb8
21740x3f 0xfd 0x4f 0xf8
21750x62 0x1c 0x40 0xf8
21760x93 0xd 0x50 0xf8
2177
2178# CHECK: ldrsb xzr, [x9, #255]!
2179# CHECK: ldrsb x2, [x3, #1]!
2180# CHECK: ldrsb x19, [x12, #-256]!
2181# CHECK: ldrsh xzr, [x9, #255]!
2182# CHECK: ldrsh x2, [x3, #1]!
2183# CHECK: ldrsh x19, [x12, #-256]!
2184# CHECK: ldrsw xzr, [x9, #255]!
2185# CHECK: ldrsw x2, [x3, #1]!
2186# CHECK: ldrsw x19, [x12, #-256]!
21870x3f 0xfd 0x8f 0x38
21880x62 0x1c 0x80 0x38
21890x93 0xd 0x90 0x38
21900x3f 0xfd 0x8f 0x78
21910x62 0x1c 0x80 0x78
21920x93 0xd 0x90 0x78
21930x3f 0xfd 0x8f 0xb8
21940x62 0x1c 0x80 0xb8
21950x93 0xd 0x90 0xb8
2196
2197# CHECK: ldrsb wzr, [x9, #255]!
2198# CHECK: ldrsb w2, [x3, #1]!
2199# CHECK: ldrsb w19, [x12, #-256]!
2200# CHECK: ldrsh wzr, [x9, #255]!
2201# CHECK: ldrsh w2, [x3, #1]!
2202# CHECK: ldrsh w19, [x12, #-256]!
22030x3f 0xfd 0xcf 0x38
22040x62 0x1c 0xc0 0x38
22050x93 0xd 0xd0 0x38
22060x3f 0xfd 0xcf 0x78
22070x62 0x1c 0xc0 0x78
22080x93 0xd 0xd0 0x78
2209
2210# CHECK: str b0, [x0, #255]!
2211# CHECK: str b3, [x3, #1]!
2212# CHECK: str b5, [sp, #-256]!
2213# CHECK: str h10, [x10, #255]!
2214# CHECK: str h13, [x23, #1]!
2215# CHECK: str h15, [sp, #-256]!
2216# CHECK: str s20, [x20, #255]!
2217# CHECK: str s23, [x23, #1]!
2218# CHECK: str s25, [x0, #-256]!
2219# CHECK: str d20, [x20, #255]!
2220# CHECK: str d23, [x23, #1]!
2221# CHECK: str d25, [x0, #-256]!
22220x0 0xfc 0xf 0x3c
22230x63 0x1c 0x0 0x3c
22240xe5 0xf 0x10 0x3c
22250x4a 0xfd 0xf 0x7c
22260xed 0x1e 0x0 0x7c
22270xef 0xf 0x10 0x7c
22280x94 0xfe 0xf 0xbc
22290xf7 0x1e 0x0 0xbc
22300x19 0xc 0x10 0xbc
22310x94 0xfe 0xf 0xfc
22320xf7 0x1e 0x0 0xfc
22330x19 0xc 0x10 0xfc
2234
2235# CHECK: ldr b0, [x0, #255]!
2236# CHECK: ldr b3, [x3, #1]!
2237# CHECK: ldr b5, [sp, #-256]!
2238# CHECK: ldr h10, [x10, #255]!
2239# CHECK: ldr h13, [x23, #1]!
2240# CHECK: ldr h15, [sp, #-256]!
2241# CHECK: ldr s20, [x20, #255]!
2242# CHECK: ldr s23, [x23, #1]!
2243# CHECK: ldr s25, [x0, #-256]!
2244# CHECK: ldr d20, [x20, #255]!
2245# CHECK: ldr d23, [x23, #1]!
2246# CHECK: ldr d25, [x0, #-256]!
22470x0 0xfc 0x4f 0x3c
22480x63 0x1c 0x40 0x3c
22490xe5 0xf 0x50 0x3c
22500x4a 0xfd 0x4f 0x7c
22510xed 0x1e 0x40 0x7c
22520xef 0xf 0x50 0x7c
22530x94 0xfe 0x4f 0xbc
22540xf7 0x1e 0x40 0xbc
22550x19 0xc 0x50 0xbc
22560x94 0xfe 0x4f 0xfc
22570xf7 0x1e 0x40 0xfc
22580x19 0xc 0x50 0xfc
2259
2260# CHECK: ldr q20, [x1, #255]!
2261# CHECK: ldr q23, [x9, #1]!
2262# CHECK: ldr q25, [x20, #-256]!
2263# CHECK: str q10, [x1, #255]!
2264# CHECK: str q22, [sp, #1]!
2265# CHECK: str q21, [x20, #-256]!
22660x34 0xfc 0xcf 0x3c
22670x37 0x1d 0xc0 0x3c
22680x99 0xe 0xd0 0x3c
22690x2a 0xfc 0x8f 0x3c
22700xf6 0x1f 0x80 0x3c
22710x95 0xe 0x90 0x3c
2272
2273#------------------------------------------------------------------------------
2274# Load/store (unprivileged)
2275#------------------------------------------------------------------------------
2276
2277# CHECK: sttrb w9, [sp]
2278# CHECK: sttrh wzr, [x12, #255]
2279# CHECK: sttr w16, [x0, #-256]
2280# CHECK: sttr x28, [x14, #1]
22810xe9 0x0b 0x0 0x38
22820x9f 0xf9 0xf 0x78
22830x10 0x08 0x10 0xb8
22840xdc 0x19 0x0 0xf8
2285
2286# CHECK: ldtrb w1, [x20, #255]
2287# CHECK: ldtrh w20, [x1, #255]
2288# CHECK: ldtr w12, [sp, #255]
2289# CHECK: ldtr xzr, [x12, #255]
22900x81 0xfa 0x4f 0x38
22910x34 0xf8 0x4f 0x78
22920xec 0xfb 0x4f 0xb8
22930x9f 0xf9 0x4f 0xf8
2294
2295# CHECK: ldtrsb x9, [x7, #-256]
2296# CHECK: ldtrsh x17, [x19, #-256]
2297# CHECK: ldtrsw x20, [x15, #-256]
2298# CHECK: ldtrsb w19, [x1, #-256]
2299# CHECK: ldtrsh w15, [x21, #-256]
23000xe9 0x08 0x90 0x38
23010x71 0x0a 0x90 0x78
23020xf4 0x09 0x90 0xb8
23030x33 0x08 0xd0 0x38
23040xaf 0x0a 0xd0 0x78
2305
2306#------------------------------------------------------------------------------
2307# Load/store (unsigned immediate)
2308#------------------------------------------------------------------------------
2309
2310# CHECK: ldr x0, [x0]
2311# CHECK: ldr x4, [x29]
2312# CHECK: ldr x30, [x12, #32760]
2313# CHECK: ldr x20, [sp, #8]
23140x0 0x0 0x40 0xf9
23150xa4 0x3 0x40 0xf9
23160x9e 0xfd 0x7f 0xf9
23170xf4 0x7 0x40 0xf9
2318
2319# CHECK: ldr xzr, [sp]
23200xff 0x3 0x40 0xf9
2321
2322# CHECK: ldr w2, [sp]
2323# CHECK: ldr w17, [sp, #16380]
2324# CHECK: ldr w13, [x2, #4]
23250xe2 0x3 0x40 0xb9
23260xf1 0xff 0x7f 0xb9
23270x4d 0x4 0x40 0xb9
2328
2329# CHECK: ldrsw x2, [x5, #4]
2330# CHECK: ldrsw x23, [sp, #16380]
23310xa2 0x4 0x80 0xb9
23320xf7 0xff 0xbf 0xb9
2333
2334# CHECK: ldrh w2, [x4]
2335# CHECK: ldrsh w23, [x6, #8190]
2336# CHECK: ldrsh wzr, [sp, #2]
2337# CHECK: ldrsh x29, [x2, #2]
23380x82 0x0 0x40 0x79
23390xd7 0xfc 0xff 0x79
23400xff 0x7 0xc0 0x79
23410x5d 0x4 0x80 0x79
2342
2343# CHECK: ldrb w26, [x3, #121]
2344# CHECK: ldrb w12, [x2]
2345# CHECK: ldrsb w27, [sp, #4095]
2346# CHECK: ldrsb xzr, [x15]
23470x7a 0xe4 0x41 0x39
23480x4c 0x0 0x40 0x39
23490xfb 0xff 0xff 0x39
23500xff 0x1 0x80 0x39
2351
2352# CHECK: str x30, [sp]
2353# CHECK: str w20, [x4, #16380]
2354# CHECK: strh w20, [x10, #14]
2355# CHECK: strh w17, [sp, #8190]
2356# CHECK: strb w23, [x3, #4095]
2357# CHECK: strb wzr, [x2]
23580xfe 0x3 0x0 0xf9
23590x94 0xfc 0x3f 0xb9
23600x54 0x1d 0x0 0x79
23610xf1 0xff 0x3f 0x79
23620x77 0xfc 0x3f 0x39
23630x5f 0x0 0x0 0x39
2364
2365# CHECK: ldr b31, [sp, #4095]
2366# CHECK: ldr h20, [x2, #8190]
2367# CHECK: ldr s10, [x19, #16380]
2368# CHECK: ldr d3, [x10, #32760]
2369# CHECK: str q12, [sp, #65520]
23700xff 0xff 0x7f 0x3d
23710x54 0xfc 0x7f 0x7d
23720x6a 0xfe 0x7f 0xbd
23730x43 0xfd 0x7f 0xfd
23740xec 0xff 0xbf 0x3d
2375
2376# CHECK: prfm pldl1keep, [sp, #8]
1a4d82fc 2377# CHECK: prfm pldl1strm, [x3{{(, #0)?}}]
970d7e83 2378# CHECK: prfm pldl2keep, [x5, #16]
1a4d82fc
JJ
2379# CHECK: prfm pldl2strm, [x2{{(, #0)?}}]
2380# CHECK: prfm pldl3keep, [x5{{(, #0)?}}]
2381# CHECK: prfm pldl3strm, [x6{{(, #0)?}}]
970d7e83 2382# CHECK: prfm plil1keep, [sp, #8]
1a4d82fc 2383# CHECK: prfm plil1strm, [x3{{(, #0)?}}]
970d7e83 2384# CHECK: prfm plil2keep, [x5, #16]
1a4d82fc
JJ
2385# CHECK: prfm plil2strm, [x2{{(, #0)?}}]
2386# CHECK: prfm plil3keep, [x5{{(, #0)?}}]
2387# CHECK: prfm plil3strm, [x6{{(, #0)?}}]
970d7e83 2388# CHECK: prfm pstl1keep, [sp, #8]
1a4d82fc 2389# CHECK: prfm pstl1strm, [x3{{(, #0)?}}]
970d7e83 2390# CHECK: prfm pstl2keep, [x5, #16]
1a4d82fc
JJ
2391# CHECK: prfm pstl2strm, [x2{{(, #0)?}}]
2392# CHECK: prfm pstl3keep, [x5{{(, #0)?}}]
2393# CHECK: prfm pstl3strm, [x6{{(, #0)?}}]
970d7e83
LB
23940xe0 0x07 0x80 0xf9
23950x61 0x00 0x80 0xf9
23960xa2 0x08 0x80 0xf9
23970x43 0x00 0x80 0xf9
23980xa4 0x00 0x80 0xf9
23990xc5 0x00 0x80 0xf9
24000xe8 0x07 0x80 0xf9
24010x69 0x00 0x80 0xf9
24020xaa 0x08 0x80 0xf9
24030x4b 0x00 0x80 0xf9
24040xac 0x00 0x80 0xf9
24050xcd 0x00 0x80 0xf9
24060xf0 0x07 0x80 0xf9
24070x71 0x00 0x80 0xf9
24080xb2 0x08 0x80 0xf9
24090x53 0x00 0x80 0xf9
24100xb4 0x00 0x80 0xf9
24110xd5 0x00 0x80 0xf9
2412
2413
2414#------------------------------------------------------------------------------
2415# Load/store (register offset)
2416#------------------------------------------------------------------------------
2417
2418# CHECK: ldrb w3, [sp, x5]
2419# CHECK: ldrb w9, [x27, x6]
2420# CHECK: ldrsb w10, [x30, x7]
2421# CHECK: ldrb w11, [x29, x3, sxtx]
2422# CHECK: strb w12, [x28, xzr, sxtx]
2423# CHECK: ldrb w14, [x26, w6, uxtw]
2424# CHECK: ldrsb w15, [x25, w7, uxtw]
2425# CHECK: ldrb w17, [x23, w9, sxtw]
2426# CHECK: ldrsb x18, [x22, w10, sxtw]
24270xe3 0x6b 0x65 0x38
24280x69 0x6b 0x66 0x38
24290xca 0x6b 0xe7 0x38
24300xab 0xeb 0x63 0x38
24310x8c 0xeb 0x3f 0x38
24320x4e 0x4b 0x66 0x38
24330x2f 0x4b 0xe7 0x38
24340xf1 0xca 0x69 0x38
24350xd2 0xca 0xaa 0x38
2436
2437# CHECK: ldrsh w3, [sp, x5]
2438# CHECK: ldrsh w9, [x27, x6]
2439# CHECK: ldrh w10, [x30, x7, lsl #1]
2440# CHECK: strh w11, [x29, x3, sxtx]
2441# CHECK: ldrh w12, [x28, xzr, sxtx]
2442# CHECK: ldrsh x13, [x27, x5, sxtx #1]
2443# CHECK: ldrh w14, [x26, w6, uxtw]
2444# CHECK: ldrh w15, [x25, w7, uxtw]
2445# CHECK: ldrsh w16, [x24, w8, uxtw #1]
2446# CHECK: ldrh w17, [x23, w9, sxtw]
2447# CHECK: ldrh w18, [x22, w10, sxtw]
2448# CHECK: strh w19, [x21, wzr, sxtw #1]
24490xe3 0x6b 0xe5 0x78
24500x69 0x6b 0xe6 0x78
24510xca 0x7b 0x67 0x78
24520xab 0xeb 0x23 0x78
24530x8c 0xeb 0x7f 0x78
24540x6d 0xfb 0xa5 0x78
24550x4e 0x4b 0x66 0x78
24560x2f 0x4b 0x67 0x78
24570x10 0x5b 0xe8 0x78
24580xf1 0xca 0x69 0x78
24590xd2 0xca 0x6a 0x78
24600xb3 0xda 0x3f 0x78
2461
2462# CHECK: ldr w3, [sp, x5]
2463# CHECK: ldr s9, [x27, x6]
2464# CHECK: ldr w10, [x30, x7, lsl #2]
2465# CHECK: ldr w11, [x29, x3, sxtx]
2466# CHECK: str s12, [x28, xzr, sxtx]
2467# CHECK: str w13, [x27, x5, sxtx #2]
2468# CHECK: str w14, [x26, w6, uxtw]
2469# CHECK: ldr w15, [x25, w7, uxtw]
2470# CHECK: ldr w16, [x24, w8, uxtw #2]
2471# CHECK: ldrsw x17, [x23, w9, sxtw]
2472# CHECK: ldr w18, [x22, w10, sxtw]
2473# CHECK: ldrsw x19, [x21, wzr, sxtw #2]
24740xe3 0x6b 0x65 0xb8
24750x69 0x6b 0x66 0xbc
24760xca 0x7b 0x67 0xb8
24770xab 0xeb 0x63 0xb8
24780x8c 0xeb 0x3f 0xbc
24790x6d 0xfb 0x25 0xb8
24800x4e 0x4b 0x26 0xb8
24810x2f 0x4b 0x67 0xb8
24820x10 0x5b 0x68 0xb8
24830xf1 0xca 0xa9 0xb8
24840xd2 0xca 0x6a 0xb8
24850xb3 0xda 0xbf 0xb8
2486
2487# CHECK: ldr x3, [sp, x5]
2488# CHECK: str x9, [x27, x6]
2489# CHECK: ldr d10, [x30, x7, lsl #3]
2490# CHECK: str x11, [x29, x3, sxtx]
2491# CHECK: ldr x12, [x28, xzr, sxtx]
2492# CHECK: ldr x13, [x27, x5, sxtx #3]
2493# CHECK: prfm pldl1keep, [x26, w6, uxtw]
2494# CHECK: ldr x15, [x25, w7, uxtw]
2495# CHECK: ldr x16, [x24, w8, uxtw #3]
2496# CHECK: ldr x17, [x23, w9, sxtw]
2497# CHECK: ldr x18, [x22, w10, sxtw]
2498# CHECK: str d19, [x21, wzr, sxtw #3]
24990xe3 0x6b 0x65 0xf8
25000x69 0x6b 0x26 0xf8
25010xca 0x7b 0x67 0xfc
25020xab 0xeb 0x23 0xf8
25030x8c 0xeb 0x7f 0xf8
25040x6d 0xfb 0x65 0xf8
25050x40 0x4b 0xa6 0xf8
25060x2f 0x4b 0x67 0xf8
25070x10 0x5b 0x68 0xf8
25080xf1 0xca 0x69 0xf8
25090xd2 0xca 0x6a 0xf8
25100xb3 0xda 0x3f 0xfc
2511
2512# CHECK: ldr q3, [sp, x5]
2513# CHECK: ldr q9, [x27, x6]
2514# CHECK: ldr q10, [x30, x7, lsl #4]
2515# CHECK: str q11, [x29, x3, sxtx]
2516# CHECK: str q12, [x28, xzr, sxtx]
2517# CHECK: str q13, [x27, x5, sxtx #4]
2518# CHECK: ldr q14, [x26, w6, uxtw]
2519# CHECK: ldr q15, [x25, w7, uxtw]
2520# CHECK: ldr q16, [x24, w8, uxtw #4]
2521# CHECK: ldr q17, [x23, w9, sxtw]
2522# CHECK: str q18, [x22, w10, sxtw]
2523# CHECK: ldr q19, [x21, wzr, sxtw #4]
25240xe3 0x6b 0xe5 0x3c
25250x69 0x6b 0xe6 0x3c
25260xca 0x7b 0xe7 0x3c
25270xab 0xeb 0xa3 0x3c
25280x8c 0xeb 0xbf 0x3c
25290x6d 0xfb 0xa5 0x3c
25300x4e 0x4b 0xe6 0x3c
25310x2f 0x4b 0xe7 0x3c
25320x10 0x5b 0xe8 0x3c
25330xf1 0xca 0xe9 0x3c
25340xd2 0xca 0xaa 0x3c
25350xb3 0xda 0xff 0x3c
2536
2537#------------------------------------------------------------------------------
2538# Load/store register pair (offset)
2539#------------------------------------------------------------------------------
2540
2541# CHECK: ldp w3, w5, [sp]
2542# CHECK: stp wzr, w9, [sp, #252]
2543# CHECK: ldp w2, wzr, [sp, #-256]
2544# CHECK: ldp w9, w10, [sp, #4]
25450xe3 0x17 0x40 0x29
25460xff 0xa7 0x1f 0x29
25470xe2 0x7f 0x60 0x29
25480xe9 0xab 0x40 0x29
2549
2550# CHECK: ldpsw x9, x10, [sp, #4]
2551# CHECK: ldpsw x9, x10, [x2, #-256]
2552# CHECK: ldpsw x20, x30, [sp, #252]
25530xe9 0xab 0x40 0x69
25540x49 0x28 0x60 0x69
25550xf4 0xfb 0x5f 0x69
2556
2557# CHECK: ldp x21, x29, [x2, #504]
2558# CHECK: ldp x22, x23, [x3, #-512]
2559# CHECK: ldp x24, x25, [x4, #8]
25600x55 0xf4 0x5f 0xa9
25610x76 0x5c 0x60 0xa9
25620x98 0xe4 0x40 0xa9
2563
2564# CHECK: ldp s29, s28, [sp, #252]
2565# CHECK: stp s27, s26, [sp, #-256]
2566# CHECK: ldp s1, s2, [x3, #44]
25670xfd 0xf3 0x5f 0x2d
25680xfb 0x6b 0x20 0x2d
25690x61 0x88 0x45 0x2d
2570
2571# CHECK: stp d3, d5, [x9, #504]
2572# CHECK: stp d7, d11, [x10, #-512]
2573# CHECK: ldp d2, d3, [x30, #-8]
25740x23 0x95 0x1f 0x6d
25750x47 0x2d 0x20 0x6d
25760xc2 0x8f 0x7f 0x6d
2577
2578# CHECK: stp q3, q5, [sp]
2579# CHECK: stp q17, q19, [sp, #1008]
2580# CHECK: ldp q23, q29, [x1, #-1024]
25810xe3 0x17 0x0 0xad
25820xf1 0xcf 0x1f 0xad
25830x37 0x74 0x60 0xad
2584
2585#------------------------------------------------------------------------------
2586# Load/store register pair (post-indexed)
2587#------------------------------------------------------------------------------
2588
2589# CHECK: ldp w3, w5, [sp], #0
2590# CHECK: stp wzr, w9, [sp], #252
2591# CHECK: ldp w2, wzr, [sp], #-256
2592# CHECK: ldp w9, w10, [sp], #4
25930xe3 0x17 0xc0 0x28
25940xff 0xa7 0x9f 0x28
25950xe2 0x7f 0xe0 0x28
25960xe9 0xab 0xc0 0x28
2597
2598# CHECK: ldpsw x9, x10, [sp], #4
2599# CHECK: ldpsw x9, x10, [x2], #-256
2600# CHECK: ldpsw x20, x30, [sp], #252
26010xe9 0xab 0xc0 0x68
26020x49 0x28 0xe0 0x68
26030xf4 0xfb 0xdf 0x68
2604
2605# CHECK: ldp x21, x29, [x2], #504
2606# CHECK: ldp x22, x23, [x3], #-512
2607# CHECK: ldp x24, x25, [x4], #8
26080x55 0xf4 0xdf 0xa8
26090x76 0x5c 0xe0 0xa8
26100x98 0xe4 0xc0 0xa8
2611
2612# CHECK: ldp s29, s28, [sp], #252
2613# CHECK: stp s27, s26, [sp], #-256
2614# CHECK: ldp s1, s2, [x3], #44
26150xfd 0xf3 0xdf 0x2c
26160xfb 0x6b 0xa0 0x2c
26170x61 0x88 0xc5 0x2c
2618
2619# CHECK: stp d3, d5, [x9], #504
2620# CHECK: stp d7, d11, [x10], #-512
2621# CHECK: ldp d2, d3, [x30], #-8
26220x23 0x95 0x9f 0x6c
26230x47 0x2d 0xa0 0x6c
26240xc2 0x8f 0xff 0x6c
2625
2626# CHECK: stp q3, q5, [sp], #0
2627# CHECK: stp q17, q19, [sp], #1008
2628# CHECK: ldp q23, q29, [x1], #-1024
26290xe3 0x17 0x80 0xac
26300xf1 0xcf 0x9f 0xac
26310x37 0x74 0xe0 0xac
2632
2633#------------------------------------------------------------------------------
2634# Load/store register pair (pre-indexed)
2635#------------------------------------------------------------------------------
2636
2637# CHECK: ldp w3, w5, [sp, #0]!
2638# CHECK: stp wzr, w9, [sp, #252]!
2639# CHECK: ldp w2, wzr, [sp, #-256]!
2640# CHECK: ldp w9, w10, [sp, #4]!
26410xe3 0x17 0xc0 0x29
26420xff 0xa7 0x9f 0x29
26430xe2 0x7f 0xe0 0x29
26440xe9 0xab 0xc0 0x29
2645
2646# CHECK: ldpsw x9, x10, [sp, #4]!
2647# CHECK: ldpsw x9, x10, [x2, #-256]!
2648# CHECK: ldpsw x20, x30, [sp, #252]!
26490xe9 0xab 0xc0 0x69
26500x49 0x28 0xe0 0x69
26510xf4 0xfb 0xdf 0x69
2652
2653# CHECK: ldp x21, x29, [x2, #504]!
2654# CHECK: ldp x22, x23, [x3, #-512]!
2655# CHECK: ldp x24, x25, [x4, #8]!
26560x55 0xf4 0xdf 0xa9
26570x76 0x5c 0xe0 0xa9
26580x98 0xe4 0xc0 0xa9
2659
2660# CHECK: ldp s29, s28, [sp, #252]!
2661# CHECK: stp s27, s26, [sp, #-256]!
2662# CHECK: ldp s1, s2, [x3, #44]!
26630xfd 0xf3 0xdf 0x2d
26640xfb 0x6b 0xa0 0x2d
26650x61 0x88 0xc5 0x2d
2666
2667# CHECK: stp d3, d5, [x9, #504]!
2668# CHECK: stp d7, d11, [x10, #-512]!
2669# CHECK: ldp d2, d3, [x30, #-8]!
26700x23 0x95 0x9f 0x6d
26710x47 0x2d 0xa0 0x6d
26720xc2 0x8f 0xff 0x6d
2673
2674# CHECK: stp q3, q5, [sp, #0]!
2675# CHECK: stp q17, q19, [sp, #1008]!
2676# CHECK: ldp q23, q29, [x1, #-1024]!
26770xe3 0x17 0x80 0xad
26780xf1 0xcf 0x9f 0xad
26790x37 0x74 0xe0 0xad
2680
2681#------------------------------------------------------------------------------
2682# Load/store register pair (offset)
2683#------------------------------------------------------------------------------
2684
2685# CHECK: ldnp w3, w5, [sp]
2686# CHECK: stnp wzr, w9, [sp, #252]
2687# CHECK: ldnp w2, wzr, [sp, #-256]
2688# CHECK: ldnp w9, w10, [sp, #4]
26890xe3 0x17 0x40 0x28
26900xff 0xa7 0x1f 0x28
26910xe2 0x7f 0x60 0x28
26920xe9 0xab 0x40 0x28
2693
2694# CHECK: ldnp x21, x29, [x2, #504]
2695# CHECK: ldnp x22, x23, [x3, #-512]
2696# CHECK: ldnp x24, x25, [x4, #8]
26970x55 0xf4 0x5f 0xa8
26980x76 0x5c 0x60 0xa8
26990x98 0xe4 0x40 0xa8
2700
2701# CHECK: ldnp s29, s28, [sp, #252]
2702# CHECK: stnp s27, s26, [sp, #-256]
2703# CHECK: ldnp s1, s2, [x3, #44]
27040xfd 0xf3 0x5f 0x2c
27050xfb 0x6b 0x20 0x2c
27060x61 0x88 0x45 0x2c
2707
2708# CHECK: stnp d3, d5, [x9, #504]
2709# CHECK: stnp d7, d11, [x10, #-512]
2710# CHECK: ldnp d2, d3, [x30, #-8]
27110x23 0x95 0x1f 0x6c
27120x47 0x2d 0x20 0x6c
27130xc2 0x8f 0x7f 0x6c
2714
2715# CHECK: stnp q3, q5, [sp]
2716# CHECK: stnp q17, q19, [sp, #1008]
2717# CHECK: ldnp q23, q29, [x1, #-1024]
27180xe3 0x17 0x0 0xac
27190xf1 0xcf 0x1f 0xac
27200x37 0x74 0x60 0xac
2721
2722#------------------------------------------------------------------------------
2723# Logical (immediate)
2724#------------------------------------------------------------------------------
2725# CHECK: orr w3, w9, #0xffff0000
2726# CHECK: orr wsp, w10, #0xe00000ff
2727# CHECK: orr w9, w10, #0x3ff
27280x23 0x3d 0x10 0x32
27290x5f 0x29 0x3 0x32
27300x49 0x25 0x0 0x32
2731
2732# CHECK: and w14, w15, #0x80008000
2733# CHECK: and w12, w13, #0xffc3ffc3
2734# CHECK: and w11, wzr, #0x30003
27350xee 0x81 0x1 0x12
27360xac 0xad 0xa 0x12
27370xeb 0x87 0x0 0x12
2738
2739# CHECK: eor w3, w6, #0xe0e0e0e0
2740# CHECK: eor wsp, wzr, #0x3030303
2741# CHECK: eor w16, w17, #0x81818181
27420xc3 0xc8 0x3 0x52
27430xff 0xc7 0x0 0x52
27440x30 0xc6 0x1 0x52
2745
1a4d82fc 2746# CHECK: {{ands wzr,|tst}} w18, #0xcccccccc
970d7e83
LB
2747# CHECK: ands w19, w20, #0x33333333
2748# CHECK: ands w21, w22, #0x99999999
27490x5f 0xe6 0x2 0x72
27500x93 0xe6 0x0 0x72
27510xd5 0xe6 0x1 0x72
2752
1a4d82fc
JJ
2753# CHECK: {{ands wzr,|tst}} w3, #0xaaaaaaaa
2754# CHECK: {{ands wzr,|tst}} wzr, #0x55555555
970d7e83
LB
27550x7f 0xf0 0x1 0x72
27560xff 0xf3 0x0 0x72
2757
2758# CHECK: eor x3, x5, #0xffffffffc000000
2759# CHECK: and x9, x10, #0x7fffffffffff
2760# CHECK: orr x11, x12, #0x8000000000000fff
27610xa3 0x84 0x66 0xd2
27620x49 0xb9 0x40 0x92
27630x8b 0x31 0x41 0xb2
2764
2765# CHECK: orr x3, x9, #0xffff0000ffff0000
2766# CHECK: orr sp, x10, #0xe00000ffe00000ff
2767# CHECK: orr x9, x10, #0x3ff000003ff
27680x23 0x3d 0x10 0xb2
27690x5f 0x29 0x3 0xb2
27700x49 0x25 0x0 0xb2
2771
2772# CHECK: and x14, x15, #0x8000800080008000
2773# CHECK: and x12, x13, #0xffc3ffc3ffc3ffc3
2774# CHECK: and x11, xzr, #0x3000300030003
27750xee 0x81 0x1 0x92
27760xac 0xad 0xa 0x92
27770xeb 0x87 0x0 0x92
2778
2779# CHECK: eor x3, x6, #0xe0e0e0e0e0e0e0e0
2780# CHECK: eor sp, xzr, #0x303030303030303
2781# CHECK: eor x16, x17, #0x8181818181818181
27820xc3 0xc8 0x3 0xd2
27830xff 0xc7 0x0 0xd2
27840x30 0xc6 0x1 0xd2
2785
1a4d82fc 2786# CHECK: {{ands xzr,|tst}} x18, #0xcccccccccccccccc
970d7e83
LB
2787# CHECK: ands x19, x20, #0x3333333333333333
2788# CHECK: ands x21, x22, #0x9999999999999999
27890x5f 0xe6 0x2 0xf2
27900x93 0xe6 0x0 0xf2
27910xd5 0xe6 0x1 0xf2
2792
1a4d82fc
JJ
2793# CHECK: {{ands xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2794# CHECK: {{ands xzr,|tst}} xzr, #0x5555555555555555
970d7e83
LB
27950x7f 0xf0 0x1 0xf2
27960xff 0xf3 0x0 0xf2
2797
2798# CHECK: orr w3, wzr, #0xf000f
2799# CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa
28000xe3 0x8f 0x0 0x32
28010xea 0xf3 0x1 0xb2
2802
2803# CHECK: orr w3, wzr, #0xffff
2804# CHECK: orr x9, xzr, #0xffff00000000
28050xe3 0x3f 0x0 0x32
28060xe9 0x3f 0x60 0xb2
2807
2808#------------------------------------------------------------------------------
2809# Logical (shifted register)
2810#------------------------------------------------------------------------------
2811
2812# CHECK: and w12, w23, w21
2813# CHECK: and w16, w15, w1, lsl #1
2814# CHECK: and w9, w4, w10, lsl #31
2815# CHECK: and w3, w30, w11
2816# CHECK: and x3, x5, x7, lsl #63
28170xec 0x2 0x15 0xa
28180xf0 0x5 0x1 0xa
28190x89 0x7c 0xa 0xa
28200xc3 0x3 0xb 0xa
28210xa3 0xfc 0x7 0x8a
2822
2823# CHECK: and x5, x14, x19, asr #4
2824# CHECK: and w3, w17, w19, ror #31
2825# CHECK: and w0, w2, wzr, lsr #17
2826# CHECK: and w3, w30, w11, asr
28270xc5 0x11 0x93 0x8a
28280x23 0x7e 0xd3 0xa
28290x40 0x44 0x5f 0xa
28300xc3 0x3 0x8b 0xa
2831
2832# CHECK: and xzr, x4, x26
2833# CHECK: and w3, wzr, w20, ror
2834# CHECK: and x7, x20, xzr, asr #63
28350x9f 0x0 0x1a 0x8a
28360xe3 0x3 0xd4 0xa
28370x87 0xfe 0x9f 0x8a
2838
2839# CHECK: bic x13, x20, x14, lsl #47
2840# CHECK: bic w2, w7, w9
2841# CHECK: orr w2, w7, w0, asr #31
2842# CHECK: orr x8, x9, x10, lsl #12
2843# CHECK: orn x3, x5, x7, asr
2844# CHECK: orn w2, w5, w29
28450x8d 0xbe 0x2e 0x8a
28460xe2 0x0 0x29 0xa
28470xe2 0x7c 0x80 0x2a
28480x28 0x31 0xa 0xaa
28490xa3 0x0 0xa7 0xaa
28500xa2 0x0 0x3d 0x2a
2851
2852# CHECK: ands w7, wzr, w9, lsl #1
2853# CHECK: ands x3, x5, x20, ror #63
2854# CHECK: bics w3, w5, w7
2855# CHECK: bics x3, xzr, x3, lsl #1
2856# CHECK: tst w3, w7, lsl #31
2857# CHECK: tst x2, x20, asr
28580xe7 0x7 0x9 0x6a
28590xa3 0xfc 0xd4 0xea
28600xa3 0x0 0x27 0x6a
28610xe3 0x7 0x23 0xea
28620x7f 0x7c 0x7 0x6a
28630x5f 0x0 0x94 0xea
2864
2865# CHECK: mov x3, x6
2866# CHECK: mov x3, xzr
2867# CHECK: mov wzr, w2
2868# CHECK: mov w3, w5
28690xe3 0x3 0x6 0xaa
28700xe3 0x3 0x1f 0xaa
28710xff 0x3 0x2 0x2a
28720xe3 0x3 0x5 0x2a
2873
2874#------------------------------------------------------------------------------
2875# Move wide (immediate)
2876#------------------------------------------------------------------------------
2877
2878# N.b. (FIXME) canonical aliases aren't produced here because of
2879# limitation in InstAlias. Lots of the "mov[nz]" instructions should
2880# be "mov".
2881
1a4d82fc 2882# CHECK: movz w1, #{{65535|0xffff}}
970d7e83 2883# CHECK: movz w2, #0, lsl #16
1a4d82fc 2884# CHECK: movn w2, #{{1234|0x4d2}}
970d7e83
LB
28850xe1 0xff 0x9f 0x52
28860x2 0x0 0xa0 0x52
28870x42 0x9a 0x80 0x12
2888
1a4d82fc
JJ
2889# CHECK: movz x2, #{{1234|0x4d2}}, lsl #32
2890# CHECK: movk xzr, #{{4321|0x10e1}}, lsl #48
970d7e83
LB
28910x42 0x9a 0xc0 0xd2
28920x3f 0x1c 0xe2 0xf2
2893
2894# CHECK: movz x2, #0
2895# CHECK: movk w3, #0
2896# CHECK: movz x4, #0, lsl #16
2897# CHECK: movk w5, #0, lsl #16
2898# CHECK: movz x6, #0, lsl #32
2899# CHECK: movk x7, #0, lsl #32
2900# CHECK: movz x8, #0, lsl #48
2901# CHECK: movk x9, #0, lsl #48
29020x2 0x0 0x80 0xd2
29030x3 0x0 0x80 0x72
29040x4 0x0 0xa0 0xd2
29050x5 0x0 0xa0 0x72
29060x6 0x0 0xc0 0xd2
29070x7 0x0 0xc0 0xf2
29080x8 0x0 0xe0 0xd2
29090x9 0x0 0xe0 0xf2
2910
2911#------------------------------------------------------------------------------
2912# PC-relative addressing
2913#------------------------------------------------------------------------------
2914
2915# It's slightly dodgy using immediates here, but harmless enough when
2916# it's all that's available.
2917
2918# CHECK: adr x2, #1600
2919# CHECK: adrp x21, #6553600
2920# CHECK: adr x0, #262144
29210x02 0x32 0x00 0x10
29220x15 0x32 0x00 0x90
29230x00 0x00 0x20 0x10
2924
2925#------------------------------------------------------------------------------
2926# System
2927#------------------------------------------------------------------------------
2928
2929# CHECK: nop
1a4d82fc 2930# CHECK: hint #{{127|0x7f}}
970d7e83
LB
2931# CHECK: nop
2932# CHECK: yield
2933# CHECK: wfe
2934# CHECK: wfi
2935# CHECK: sev
2936# CHECK: sevl
29370x1f 0x20 0x3 0xd5
29380xff 0x2f 0x3 0xd5
29390x1f 0x20 0x3 0xd5
29400x3f 0x20 0x3 0xd5
29410x5f 0x20 0x3 0xd5
29420x7f 0x20 0x3 0xd5
29430x9f 0x20 0x3 0xd5
29440xbf 0x20 0x3 0xd5
2945
2946# CHECK: clrex
2947# CHECK: clrex #0
2948# CHECK: clrex #7
2949# CHECK: clrex
29500x5f 0x3f 0x3 0xd5
29510x5f 0x30 0x3 0xd5
29520x5f 0x37 0x3 0xd5
29530x5f 0x3f 0x3 0xd5
2954
2955# CHECK: dsb #0
2956# CHECK: dsb #12
2957# CHECK: dsb sy
2958# CHECK: dsb oshld
2959# CHECK: dsb oshst
2960# CHECK: dsb osh
2961# CHECK: dsb nshld
2962# CHECK: dsb nshst
2963# CHECK: dsb nsh
2964# CHECK: dsb ishld
2965# CHECK: dsb ishst
2966# CHECK: dsb ish
2967# CHECK: dsb ld
2968# CHECK: dsb st
2969# CHECK: dsb sy
29700x9f 0x30 0x3 0xd5
29710x9f 0x3c 0x3 0xd5
29720x9f 0x3f 0x3 0xd5
29730x9f 0x31 0x3 0xd5
29740x9f 0x32 0x3 0xd5
29750x9f 0x33 0x3 0xd5
29760x9f 0x35 0x3 0xd5
29770x9f 0x36 0x3 0xd5
29780x9f 0x37 0x3 0xd5
29790x9f 0x39 0x3 0xd5
29800x9f 0x3a 0x3 0xd5
29810x9f 0x3b 0x3 0xd5
29820x9f 0x3d 0x3 0xd5
29830x9f 0x3e 0x3 0xd5
29840x9f 0x3f 0x3 0xd5
2985
2986# CHECK: dmb #0
2987# CHECK: dmb #12
2988# CHECK: dmb sy
2989# CHECK: dmb oshld
2990# CHECK: dmb oshst
2991# CHECK: dmb osh
2992# CHECK: dmb nshld
2993# CHECK: dmb nshst
2994# CHECK: dmb nsh
2995# CHECK: dmb ishld
2996# CHECK: dmb ishst
2997# CHECK: dmb ish
2998# CHECK: dmb ld
2999# CHECK: dmb st
3000# CHECK: dmb sy
30010xbf 0x30 0x3 0xd5
30020xbf 0x3c 0x3 0xd5
30030xbf 0x3f 0x3 0xd5
30040xbf 0x31 0x3 0xd5
30050xbf 0x32 0x3 0xd5
30060xbf 0x33 0x3 0xd5
30070xbf 0x35 0x3 0xd5
30080xbf 0x36 0x3 0xd5
30090xbf 0x37 0x3 0xd5
30100xbf 0x39 0x3 0xd5
30110xbf 0x3a 0x3 0xd5
30120xbf 0x3b 0x3 0xd5
30130xbf 0x3d 0x3 0xd5
30140xbf 0x3e 0x3 0xd5
30150xbf 0x3f 0x3 0xd5
3016
3017# CHECK: isb
3018# CHECK: isb #12
30190xdf 0x3f 0x3 0xd5
30200xdf 0x3c 0x3 0xd5
3021
1a4d82fc
JJ
3022# CHECK: msr {{spsel|SPSEL}}, #0
3023# CHECK: msr {{daifset|DAIFSET}}, #15
3024# CHECK: msr {{daifclr|DAIFCLR}}, #12
970d7e83
LB
30250xbf 0x40 0x0 0xd5
30260xdf 0x4f 0x3 0xd5
30270xff 0x4c 0x3 0xd5
3028
3029# CHECK: sys #7, c5, c9, #7, x5
3030# CHECK: sys #0, c15, c15, #2
3031# CHECK: sysl x9, #7, c5, c9, #7
3032# CHECK: sysl x1, #0, c15, c15, #2
30330xe5 0x59 0xf 0xd5
30340x5f 0xff 0x8 0xd5
30350xe9 0x59 0x2f 0xd5
30360x41 0xff 0x28 0xd5
3037
1a4d82fc
JJ
3038# CHECK: {{sys #0, c7, c1, #0|ic ialluis}}
3039# CHECK: {{sys #0, c7, c5, #0|ic iallu}}
3040# CHECK: {{sys #3, c7, c5, #1|ic ivau}}, x9
970d7e83
LB
30410x1f 0x71 0x8 0xd5
30420x1f 0x75 0x8 0xd5
30430x29 0x75 0xb 0xd5
3044
1a4d82fc
JJ
3045# CHECK: {{sys #3, c7, c4, #1|dc zva}}, x12
3046# CHECK: {{sys #0, c7, c6, #1|dc ivac}}
3047# CHECK: {{sys #0, c7, c6, #2|dc isw}}, x2
3048# CHECK: {{sys #3, c7, c10, #1|dc cvac}}, x9
3049# CHECK: {{sys #0, c7, c10, #2|dc csw}}, x10
3050# CHECK: {{sys #3, c7, c11, #1|dc cvau}}, x0
3051# CHECK: {{sys #3, c7, c14, #1|dc civac}}, x3
3052# CHECK: {{sys #0, c7, c14, #2|dc cisw}}, x30
970d7e83
LB
30530x2c 0x74 0xb 0xd5
30540x3f 0x76 0x8 0xd5
30550x42 0x76 0x8 0xd5
30560x29 0x7a 0xb 0xd5
30570x4a 0x7a 0x8 0xd5
30580x20 0x7b 0xb 0xd5
30590x23 0x7e 0xb 0xd5
30600x5e 0x7e 0x8 0xd5
3061
3062
1a4d82fc
JJ
3063# CHECK: msr {{teecr32_el1|TEECR32_EL1}}, x12
3064# CHECK: msr {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3065# CHECK: msr {{mdccint_el1|MDCCINT_EL1}}, x12
3066# CHECK: msr {{mdscr_el1|MDSCR_EL1}}, x12
3067# CHECK: msr {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3068# CHECK: msr {{dbgdtr_el0|DBGDTR_EL0}}, x12
3069# CHECK: msr {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3070# CHECK: msr {{oseccr_el1|OSECCR_EL1}}, x12
3071# CHECK: msr {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3072# CHECK: msr {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3073# CHECK: msr {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3074# CHECK: msr {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3075# CHECK: msr {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3076# CHECK: msr {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3077# CHECK: msr {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3078# CHECK: msr {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3079# CHECK: msr {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3080# CHECK: msr {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3081# CHECK: msr {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3082# CHECK: msr {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3083# CHECK: msr {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3084# CHECK: msr {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3085# CHECK: msr {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3086# CHECK: msr {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3087# CHECK: msr {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3088# CHECK: msr {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3089# CHECK: msr {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3090# CHECK: msr {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3091# CHECK: msr {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3092# CHECK: msr {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3093# CHECK: msr {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3094# CHECK: msr {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3095# CHECK: msr {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3096# CHECK: msr {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3097# CHECK: msr {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3098# CHECK: msr {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3099# CHECK: msr {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3100# CHECK: msr {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3101# CHECK: msr {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3102# CHECK: msr {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3103# CHECK: msr {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3104# CHECK: msr {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3105# CHECK: msr {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3106# CHECK: msr {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3107# CHECK: msr {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3108# CHECK: msr {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3109# CHECK: msr {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3110# CHECK: msr {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3111# CHECK: msr {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3112# CHECK: msr {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3113# CHECK: msr {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3114# CHECK: msr {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3115# CHECK: msr {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3116# CHECK: msr {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3117# CHECK: msr {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3118# CHECK: msr {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3119# CHECK: msr {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3120# CHECK: msr {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3121# CHECK: msr {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3122# CHECK: msr {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3123# CHECK: msr {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3124# CHECK: msr {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3125# CHECK: msr {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3126# CHECK: msr {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3127# CHECK: msr {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3128# CHECK: msr {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3129# CHECK: msr {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3130# CHECK: msr {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3131# CHECK: msr {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3132# CHECK: msr {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3133# CHECK: msr {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3134# CHECK: msr {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3135# CHECK: msr {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3136# CHECK: msr {{teehbr32_el1|TEEHBR32_EL1}}, x12
3137# CHECK: msr {{oslar_el1|OSLAR_EL1}}, x12
3138# CHECK: msr {{osdlr_el1|OSDLR_EL1}}, x12
3139# CHECK: msr {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3140# CHECK: msr {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3141# CHECK: msr {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3142# CHECK: msr {{csselr_el1|CSSELR_EL1}}, x12
3143# CHECK: msr {{vpidr_el2|VPIDR_EL2}}, x12
3144# CHECK: msr {{vmpidr_el2|VMPIDR_EL2}}, x12
3145# CHECK: msr {{sctlr_el1|SCTLR_EL1}}, x12
3146# CHECK: msr {{sctlr_el2|SCTLR_EL2}}, x12
3147# CHECK: msr {{sctlr_el3|SCTLR_EL3}}, x12
3148# CHECK: msr {{actlr_el1|ACTLR_EL1}}, x12
3149# CHECK: msr {{actlr_el2|ACTLR_EL2}}, x12
3150# CHECK: msr {{actlr_el3|ACTLR_EL3}}, x12
3151# CHECK: msr {{cpacr_el1|CPACR_EL1}}, x12
3152# CHECK: msr {{hcr_el2|HCR_EL2}}, x12
3153# CHECK: msr {{scr_el3|SCR_EL3}}, x12
3154# CHECK: msr {{mdcr_el2|MDCR_EL2}}, x12
3155# CHECK: msr {{sder32_el3|SDER32_EL3}}, x12
3156# CHECK: msr {{cptr_el2|CPTR_EL2}}, x12
3157# CHECK: msr {{cptr_el3|CPTR_EL3}}, x12
3158# CHECK: msr {{hstr_el2|HSTR_EL2}}, x12
3159# CHECK: msr {{hacr_el2|HACR_EL2}}, x12
3160# CHECK: msr {{mdcr_el3|MDCR_EL3}}, x12
3161# CHECK: msr {{ttbr0_el1|TTBR0_EL1}}, x12
3162# CHECK: msr {{ttbr0_el2|TTBR0_EL2}}, x12
3163# CHECK: msr {{ttbr0_el3|TTBR0_EL3}}, x12
3164# CHECK: msr {{ttbr1_el1|TTBR1_EL1}}, x12
3165# CHECK: msr {{tcr_el1|TCR_EL1}}, x12
3166# CHECK: msr {{tcr_el2|TCR_EL2}}, x12
3167# CHECK: msr {{tcr_el3|TCR_EL3}}, x12
3168# CHECK: msr {{vttbr_el2|VTTBR_EL2}}, x12
3169# CHECK: msr {{vtcr_el2|VTCR_EL2}}, x12
3170# CHECK: msr {{dacr32_el2|DACR32_EL2}}, x12
3171# CHECK: msr {{spsr_el1|SPSR_EL1}}, x12
3172# CHECK: msr {{spsr_el2|SPSR_EL2}}, x12
3173# CHECK: msr {{spsr_el3|SPSR_EL3}}, x12
3174# CHECK: msr {{elr_el1|ELR_EL1}}, x12
3175# CHECK: msr {{elr_el2|ELR_EL2}}, x12
3176# CHECK: msr {{elr_el3|ELR_EL3}}, x12
3177# CHECK: msr {{sp_el0|SP_EL0}}, x12
3178# CHECK: msr {{sp_el1|SP_EL1}}, x12
3179# CHECK: msr {{sp_el2|SP_EL2}}, x12
3180# CHECK: msr {{spsel|SPSEL}}, x12
3181# CHECK: msr {{nzcv|NZCV}}, x12
3182# CHECK: msr {{daif|DAIF}}, x12
3183# CHECK: msr {{currentel|CURRENTEL}}, x12
3184# CHECK: msr {{spsr_irq|SPSR_IRQ}}, x12
3185# CHECK: msr {{spsr_abt|SPSR_ABT}}, x12
3186# CHECK: msr {{spsr_und|SPSR_UND}}, x12
3187# CHECK: msr {{spsr_fiq|SPSR_FIQ}}, x12
3188# CHECK: msr {{fpcr|FPCR}}, x12
3189# CHECK: msr {{fpsr|FPSR}}, x12
3190# CHECK: msr {{dspsr_el0|DSPSR_EL0}}, x12
3191# CHECK: msr {{dlr_el0|DLR_EL0}}, x12
3192# CHECK: msr {{ifsr32_el2|IFSR32_EL2}}, x12
3193# CHECK: msr {{afsr0_el1|AFSR0_EL1}}, x12
3194# CHECK: msr {{afsr0_el2|AFSR0_EL2}}, x12
3195# CHECK: msr {{afsr0_el3|AFSR0_EL3}}, x12
3196# CHECK: msr {{afsr1_el1|AFSR1_EL1}}, x12
3197# CHECK: msr {{afsr1_el2|AFSR1_EL2}}, x12
3198# CHECK: msr {{afsr1_el3|AFSR1_EL3}}, x12
3199# CHECK: msr {{esr_el1|ESR_EL1}}, x12
3200# CHECK: msr {{esr_el2|ESR_EL2}}, x12
3201# CHECK: msr {{esr_el3|ESR_EL3}}, x12
3202# CHECK: msr {{fpexc32_el2|FPEXC32_EL2}}, x12
3203# CHECK: msr {{far_el1|FAR_EL1}}, x12
3204# CHECK: msr {{far_el2|FAR_EL2}}, x12
3205# CHECK: msr {{far_el3|FAR_EL3}}, x12
3206# CHECK: msr {{hpfar_el2|HPFAR_EL2}}, x12
3207# CHECK: msr {{par_el1|PAR_EL1}}, x12
3208# CHECK: msr {{pmcr_el0|PMCR_EL0}}, x12
3209# CHECK: msr {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3210# CHECK: msr {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3211# CHECK: msr {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3212# CHECK: msr {{pmselr_el0|PMSELR_EL0}}, x12
3213# CHECK: msr {{pmccntr_el0|PMCCNTR_EL0}}, x12
3214# CHECK: msr {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3215# CHECK: msr {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3216# CHECK: msr {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3217# CHECK: msr {{pmintenset_el1|PMINTENSET_EL1}}, x12
3218# CHECK: msr {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3219# CHECK: msr {{pmovsset_el0|PMOVSSET_EL0}}, x12
3220# CHECK: msr {{mair_el1|MAIR_EL1}}, x12
3221# CHECK: msr {{mair_el2|MAIR_EL2}}, x12
3222# CHECK: msr {{mair_el3|MAIR_EL3}}, x12
3223# CHECK: msr {{amair_el1|AMAIR_EL1}}, x12
3224# CHECK: msr {{amair_el2|AMAIR_EL2}}, x12
3225# CHECK: msr {{amair_el3|AMAIR_EL3}}, x12
3226# CHECK: msr {{vbar_el1|VBAR_EL1}}, x12
3227# CHECK: msr {{vbar_el2|VBAR_EL2}}, x12
3228# CHECK: msr {{vbar_el3|VBAR_EL3}}, x12
3229# CHECK: msr {{rmr_el1|RMR_EL1}}, x12
3230# CHECK: msr {{rmr_el2|RMR_EL2}}, x12
3231# CHECK: msr {{rmr_el3|RMR_EL3}}, x12
3232# CHECK: msr {{tpidr_el0|TPIDR_EL0}}, x12
3233# CHECK: msr {{tpidr_el2|TPIDR_EL2}}, x12
3234# CHECK: msr {{tpidr_el3|TPIDR_EL3}}, x12
3235# CHECK: msr {{tpidrro_el0|TPIDRRO_EL0}}, x12
3236# CHECK: msr {{tpidr_el1|TPIDR_EL1}}, x12
3237# CHECK: msr {{cntfrq_el0|CNTFRQ_EL0}}, x12
3238# CHECK: msr {{cntvoff_el2|CNTVOFF_EL2}}, x12
3239# CHECK: msr {{cntkctl_el1|CNTKCTL_EL1}}, x12
3240# CHECK: msr {{cnthctl_el2|CNTHCTL_EL2}}, x12
3241# CHECK: msr {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3242# CHECK: msr {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3243# CHECK: msr {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3244# CHECK: msr {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3245# CHECK: msr {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3246# CHECK: msr {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3247# CHECK: msr {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3248# CHECK: msr {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3249# CHECK: msr {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3250# CHECK: msr {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3251# CHECK: msr {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3252# CHECK: msr {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3253# CHECK: msr {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3254# CHECK: msr {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3255# CHECK: msr {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3256# CHECK: msr {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3257# CHECK: msr {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3258# CHECK: msr {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3259# CHECK: msr {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3260# CHECK: msr {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3261# CHECK: msr {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3262# CHECK: msr {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3263# CHECK: msr {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3264# CHECK: msr {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3265# CHECK: msr {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3266# CHECK: msr {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3267# CHECK: msr {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3268# CHECK: msr {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3269# CHECK: msr {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3270# CHECK: msr {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3271# CHECK: msr {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3272# CHECK: msr {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3273# CHECK: msr {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3274# CHECK: msr {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3275# CHECK: msr {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3276# CHECK: msr {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3277# CHECK: msr {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3278# CHECK: msr {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3279# CHECK: msr {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3280# CHECK: msr {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3281# CHECK: msr {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3282# CHECK: msr {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3283# CHECK: msr {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3284# CHECK: msr {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3285# CHECK: msr {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3286# CHECK: msr {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3287# CHECK: msr {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3288# CHECK: msr {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3289# CHECK: msr {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3290# CHECK: msr {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3291# CHECK: msr {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3292# CHECK: msr {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3293# CHECK: msr {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3294# CHECK: msr {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3295# CHECK: msr {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3296# CHECK: msr {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3297# CHECK: msr {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3298# CHECK: msr {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3299# CHECK: msr {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3300# CHECK: msr {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3301# CHECK: msr {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3302# CHECK: msr {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3303# CHECK: msr {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3304# CHECK: msr {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3305# CHECK: msr {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3306# CHECK: msr {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3307# CHECK: msr {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3308# CHECK: msr {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3309# CHECK: msr {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3310# CHECK: msr {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3311# CHECK: msr {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3312# CHECK: msr {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3313# CHECK: msr {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3314# CHECK: msr {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3315# CHECK: msr {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3316# CHECK: mrs x9, {{teecr32_el1|TEECR32_EL1}}
3317# CHECK: mrs x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3318# CHECK: mrs x9, {{mdccsr_el0|MDCCSR_EL0}}
3319# CHECK: mrs x9, {{mdccint_el1|MDCCINT_EL1}}
3320# CHECK: mrs x9, {{mdscr_el1|MDSCR_EL1}}
3321# CHECK: mrs x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3322# CHECK: mrs x9, {{dbgdtr_el0|DBGDTR_EL0}}
3323# CHECK: mrs x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3324# CHECK: mrs x9, {{oseccr_el1|OSECCR_EL1}}
3325# CHECK: mrs x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3326# CHECK: mrs x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3327# CHECK: mrs x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3328# CHECK: mrs x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3329# CHECK: mrs x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3330# CHECK: mrs x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3331# CHECK: mrs x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3332# CHECK: mrs x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3333# CHECK: mrs x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3334# CHECK: mrs x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3335# CHECK: mrs x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3336# CHECK: mrs x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3337# CHECK: mrs x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3338# CHECK: mrs x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3339# CHECK: mrs x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3340# CHECK: mrs x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3341# CHECK: mrs x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3342# CHECK: mrs x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3343# CHECK: mrs x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3344# CHECK: mrs x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3345# CHECK: mrs x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3346# CHECK: mrs x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3347# CHECK: mrs x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3348# CHECK: mrs x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3349# CHECK: mrs x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3350# CHECK: mrs x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3351# CHECK: mrs x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3352# CHECK: mrs x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3353# CHECK: mrs x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3354# CHECK: mrs x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3355# CHECK: mrs x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3356# CHECK: mrs x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3357# CHECK: mrs x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3358# CHECK: mrs x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3359# CHECK: mrs x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3360# CHECK: mrs x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3361# CHECK: mrs x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3362# CHECK: mrs x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3363# CHECK: mrs x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3364# CHECK: mrs x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3365# CHECK: mrs x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3366# CHECK: mrs x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3367# CHECK: mrs x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3368# CHECK: mrs x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3369# CHECK: mrs x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3370# CHECK: mrs x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3371# CHECK: mrs x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3372# CHECK: mrs x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3373# CHECK: mrs x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3374# CHECK: mrs x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3375# CHECK: mrs x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3376# CHECK: mrs x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3377# CHECK: mrs x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3378# CHECK: mrs x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3379# CHECK: mrs x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3380# CHECK: mrs x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3381# CHECK: mrs x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3382# CHECK: mrs x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3383# CHECK: mrs x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3384# CHECK: mrs x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3385# CHECK: mrs x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3386# CHECK: mrs x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3387# CHECK: mrs x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3388# CHECK: mrs x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3389# CHECK: mrs x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3390# CHECK: mrs x9, {{mdrar_el1|MDRAR_EL1}}
3391# CHECK: mrs x9, {{teehbr32_el1|TEEHBR32_EL1}}
3392# CHECK: mrs x9, {{oslsr_el1|OSLSR_EL1}}
3393# CHECK: mrs x9, {{osdlr_el1|OSDLR_EL1}}
3394# CHECK: mrs x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3395# CHECK: mrs x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3396# CHECK: mrs x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3397# CHECK: mrs x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3398# CHECK: mrs x9, {{midr_el1|MIDR_EL1}}
3399# CHECK: mrs x9, {{ccsidr_el1|CCSIDR_EL1}}
3400# CHECK: mrs x9, {{csselr_el1|CSSELR_EL1}}
3401# CHECK: mrs x9, {{vpidr_el2|VPIDR_EL2}}
3402# CHECK: mrs x9, {{clidr_el1|CLIDR_EL1}}
3403# CHECK: mrs x9, {{ctr_el0|CTR_EL0}}
3404# CHECK: mrs x9, {{mpidr_el1|MPIDR_EL1}}
3405# CHECK: mrs x9, {{vmpidr_el2|VMPIDR_EL2}}
3406# CHECK: mrs x9, {{revidr_el1|REVIDR_EL1}}
3407# CHECK: mrs x9, {{aidr_el1|AIDR_EL1}}
3408# CHECK: mrs x9, {{dczid_el0|DCZID_EL0}}
3409# CHECK: mrs x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3410# CHECK: mrs x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3411# CHECK: mrs x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3412# CHECK: mrs x9, {{id_afr0_el1|ID_AFR0_EL1}}
3413# CHECK: mrs x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3414# CHECK: mrs x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3415# CHECK: mrs x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3416# CHECK: mrs x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3417# CHECK: mrs x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3418# CHECK: mrs x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3419# CHECK: mrs x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3420# CHECK: mrs x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3421# CHECK: mrs x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3422# CHECK: mrs x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3423# CHECK: mrs x9, {{mvfr0_el1|MVFR0_EL1}}
3424# CHECK: mrs x9, {{mvfr1_el1|MVFR1_EL1}}
3425# CHECK: mrs x9, {{mvfr2_el1|MVFR2_EL1}}
3426# CHECK: mrs x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3427# CHECK: mrs x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3428# CHECK: mrs x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3429# CHECK: mrs x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3430# CHECK: mrs x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3431# CHECK: mrs x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3432# CHECK: mrs x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3433# CHECK: mrs x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3434# CHECK: mrs x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3435# CHECK: mrs x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3436# CHECK: mrs x9, {{sctlr_el1|SCTLR_EL1}}
3437# CHECK: mrs x9, {{sctlr_el2|SCTLR_EL2}}
3438# CHECK: mrs x9, {{sctlr_el3|SCTLR_EL3}}
3439# CHECK: mrs x9, {{actlr_el1|ACTLR_EL1}}
3440# CHECK: mrs x9, {{actlr_el2|ACTLR_EL2}}
3441# CHECK: mrs x9, {{actlr_el3|ACTLR_EL3}}
3442# CHECK: mrs x9, {{cpacr_el1|CPACR_EL1}}
3443# CHECK: mrs x9, {{hcr_el2|HCR_EL2}}
3444# CHECK: mrs x9, {{scr_el3|SCR_EL3}}
3445# CHECK: mrs x9, {{mdcr_el2|MDCR_EL2}}
3446# CHECK: mrs x9, {{sder32_el3|SDER32_EL3}}
3447# CHECK: mrs x9, {{cptr_el2|CPTR_EL2}}
3448# CHECK: mrs x9, {{cptr_el3|CPTR_EL3}}
3449# CHECK: mrs x9, {{hstr_el2|HSTR_EL2}}
3450# CHECK: mrs x9, {{hacr_el2|HACR_EL2}}
3451# CHECK: mrs x9, {{mdcr_el3|MDCR_EL3}}
3452# CHECK: mrs x9, {{ttbr0_el1|TTBR0_EL1}}
3453# CHECK: mrs x9, {{ttbr0_el2|TTBR0_EL2}}
3454# CHECK: mrs x9, {{ttbr0_el3|TTBR0_EL3}}
3455# CHECK: mrs x9, {{ttbr1_el1|TTBR1_EL1}}
3456# CHECK: mrs x9, {{tcr_el1|TCR_EL1}}
3457# CHECK: mrs x9, {{tcr_el2|TCR_EL2}}
3458# CHECK: mrs x9, {{tcr_el3|TCR_EL3}}
3459# CHECK: mrs x9, {{vttbr_el2|VTTBR_EL2}}
3460# CHECK: mrs x9, {{vtcr_el2|VTCR_EL2}}
3461# CHECK: mrs x9, {{dacr32_el2|DACR32_EL2}}
3462# CHECK: mrs x9, {{spsr_el1|SPSR_EL1}}
3463# CHECK: mrs x9, {{spsr_el2|SPSR_EL2}}
3464# CHECK: mrs x9, {{spsr_el3|SPSR_EL3}}
3465# CHECK: mrs x9, {{elr_el1|ELR_EL1}}
3466# CHECK: mrs x9, {{elr_el2|ELR_EL2}}
3467# CHECK: mrs x9, {{elr_el3|ELR_EL3}}
3468# CHECK: mrs x9, {{sp_el0|SP_EL0}}
3469# CHECK: mrs x9, {{sp_el1|SP_EL1}}
3470# CHECK: mrs x9, {{sp_el2|SP_EL2}}
3471# CHECK: mrs x9, {{spsel|SPSEL}}
3472# CHECK: mrs x9, {{nzcv|NZCV}}
3473# CHECK: mrs x9, {{daif|DAIF}}
3474# CHECK: mrs x9, {{currentel|CURRENTEL}}
3475# CHECK: mrs x9, {{spsr_irq|SPSR_IRQ}}
3476# CHECK: mrs x9, {{spsr_abt|SPSR_ABT}}
3477# CHECK: mrs x9, {{spsr_und|SPSR_UND}}
3478# CHECK: mrs x9, {{spsr_fiq|SPSR_FIQ}}
3479# CHECK: mrs x9, {{fpcr|FPCR}}
3480# CHECK: mrs x9, {{fpsr|FPSR}}
3481# CHECK: mrs x9, {{dspsr_el0|DSPSR_EL0}}
3482# CHECK: mrs x9, {{dlr_el0|DLR_EL0}}
3483# CHECK: mrs x9, {{ifsr32_el2|IFSR32_EL2}}
3484# CHECK: mrs x9, {{afsr0_el1|AFSR0_EL1}}
3485# CHECK: mrs x9, {{afsr0_el2|AFSR0_EL2}}
3486# CHECK: mrs x9, {{afsr0_el3|AFSR0_EL3}}
3487# CHECK: mrs x9, {{afsr1_el1|AFSR1_EL1}}
3488# CHECK: mrs x9, {{afsr1_el2|AFSR1_EL2}}
3489# CHECK: mrs x9, {{afsr1_el3|AFSR1_EL3}}
3490# CHECK: mrs x9, {{esr_el1|ESR_EL1}}
3491# CHECK: mrs x9, {{esr_el2|ESR_EL2}}
3492# CHECK: mrs x9, {{esr_el3|ESR_EL3}}
3493# CHECK: mrs x9, {{fpexc32_el2|FPEXC32_EL2}}
3494# CHECK: mrs x9, {{far_el1|FAR_EL1}}
3495# CHECK: mrs x9, {{far_el2|FAR_EL2}}
3496# CHECK: mrs x9, {{far_el3|FAR_EL3}}
3497# CHECK: mrs x9, {{hpfar_el2|HPFAR_EL2}}
3498# CHECK: mrs x9, {{par_el1|PAR_EL1}}
3499# CHECK: mrs x9, {{pmcr_el0|PMCR_EL0}}
3500# CHECK: mrs x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3501# CHECK: mrs x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3502# CHECK: mrs x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3503# CHECK: mrs x9, {{pmselr_el0|PMSELR_EL0}}
3504# CHECK: mrs x9, {{pmceid0_el0|PMCEID0_EL0}}
3505# CHECK: mrs x9, {{pmceid1_el0|PMCEID1_EL0}}
3506# CHECK: mrs x9, {{pmccntr_el0|PMCCNTR_EL0}}
3507# CHECK: mrs x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3508# CHECK: mrs x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3509# CHECK: mrs x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3510# CHECK: mrs x9, {{pmintenset_el1|PMINTENSET_EL1}}
3511# CHECK: mrs x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3512# CHECK: mrs x9, {{pmovsset_el0|PMOVSSET_EL0}}
3513# CHECK: mrs x9, {{mair_el1|MAIR_EL1}}
3514# CHECK: mrs x9, {{mair_el2|MAIR_EL2}}
3515# CHECK: mrs x9, {{mair_el3|MAIR_EL3}}
3516# CHECK: mrs x9, {{amair_el1|AMAIR_EL1}}
3517# CHECK: mrs x9, {{amair_el2|AMAIR_EL2}}
3518# CHECK: mrs x9, {{amair_el3|AMAIR_EL3}}
3519# CHECK: mrs x9, {{vbar_el1|VBAR_EL1}}
3520# CHECK: mrs x9, {{vbar_el2|VBAR_EL2}}
3521# CHECK: mrs x9, {{vbar_el3|VBAR_EL3}}
3522# CHECK: mrs x9, {{rvbar_el1|RVBAR_EL1}}
3523# CHECK: mrs x9, {{rvbar_el2|RVBAR_EL2}}
3524# CHECK: mrs x9, {{rvbar_el3|RVBAR_EL3}}
3525# CHECK: mrs x9, {{rmr_el1|RMR_EL1}}
3526# CHECK: mrs x9, {{rmr_el2|RMR_EL2}}
3527# CHECK: mrs x9, {{rmr_el3|RMR_EL3}}
3528# CHECK: mrs x9, {{isr_el1|ISR_EL1}}
3529# CHECK: mrs x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3530# CHECK: mrs x9, {{tpidr_el0|TPIDR_EL0}}
3531# CHECK: mrs x9, {{tpidr_el2|TPIDR_EL2}}
3532# CHECK: mrs x9, {{tpidr_el3|TPIDR_EL3}}
3533# CHECK: mrs x9, {{tpidrro_el0|TPIDRRO_EL0}}
3534# CHECK: mrs x9, {{tpidr_el1|TPIDR_EL1}}
3535# CHECK: mrs x9, {{cntfrq_el0|CNTFRQ_EL0}}
3536# CHECK: mrs x9, {{cntpct_el0|CNTPCT_EL0}}
3537# CHECK: mrs x9, {{cntvct_el0|CNTVCT_EL0}}
3538# CHECK: mrs x9, {{cntvoff_el2|CNTVOFF_EL2}}
3539# CHECK: mrs x9, {{cntkctl_el1|CNTKCTL_EL1}}
3540# CHECK: mrs x9, {{cnthctl_el2|CNTHCTL_EL2}}
3541# CHECK: mrs x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3542# CHECK: mrs x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3543# CHECK: mrs x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3544# CHECK: mrs x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3545# CHECK: mrs x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3546# CHECK: mrs x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3547# CHECK: mrs x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3548# CHECK: mrs x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3549# CHECK: mrs x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3550# CHECK: mrs x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3551# CHECK: mrs x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3552# CHECK: mrs x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3553# CHECK: mrs x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3554# CHECK: mrs x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3555# CHECK: mrs x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3556# CHECK: mrs x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3557# CHECK: mrs x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3558# CHECK: mrs x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3559# CHECK: mrs x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3560# CHECK: mrs x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3561# CHECK: mrs x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3562# CHECK: mrs x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3563# CHECK: mrs x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3564# CHECK: mrs x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3565# CHECK: mrs x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3566# CHECK: mrs x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3567# CHECK: mrs x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3568# CHECK: mrs x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3569# CHECK: mrs x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3570# CHECK: mrs x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3571# CHECK: mrs x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3572# CHECK: mrs x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3573# CHECK: mrs x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3574# CHECK: mrs x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3575# CHECK: mrs x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3576# CHECK: mrs x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3577# CHECK: mrs x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3578# CHECK: mrs x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3579# CHECK: mrs x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3580# CHECK: mrs x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3581# CHECK: mrs x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3582# CHECK: mrs x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3583# CHECK: mrs x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3584# CHECK: mrs x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3585# CHECK: mrs x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3586# CHECK: mrs x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3587# CHECK: mrs x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3588# CHECK: mrs x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3589# CHECK: mrs x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3590# CHECK: mrs x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3591# CHECK: mrs x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3592# CHECK: mrs x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3593# CHECK: mrs x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3594# CHECK: mrs x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3595# CHECK: mrs x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3596# CHECK: mrs x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3597# CHECK: mrs x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3598# CHECK: mrs x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3599# CHECK: mrs x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3600# CHECK: mrs x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3601# CHECK: mrs x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3602# CHECK: mrs x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3603# CHECK: mrs x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3604# CHECK: mrs x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3605# CHECK: mrs x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3606# CHECK: mrs x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3607# CHECK: mrs x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3608# CHECK: mrs x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3609# CHECK: mrs x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3610# CHECK: mrs x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3611# CHECK: mrs x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3612# CHECK: mrs x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3613# CHECK: mrs x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3614# CHECK: mrs x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3615# CHECK: mrs x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
970d7e83
LB
3616
36170xc 0x0 0x12 0xd5
36180x4c 0x0 0x10 0xd5
36190xc 0x2 0x10 0xd5
36200x4c 0x2 0x10 0xd5
36210x4c 0x3 0x10 0xd5
36220xc 0x4 0x13 0xd5
36230xc 0x5 0x13 0xd5
36240x4c 0x6 0x10 0xd5
36250xc 0x7 0x14 0xd5
36260x8c 0x0 0x10 0xd5
36270x8c 0x1 0x10 0xd5
36280x8c 0x2 0x10 0xd5
36290x8c 0x3 0x10 0xd5
36300x8c 0x4 0x10 0xd5
36310x8c 0x5 0x10 0xd5
36320x8c 0x6 0x10 0xd5
36330x8c 0x7 0x10 0xd5
36340x8c 0x8 0x10 0xd5
36350x8c 0x9 0x10 0xd5
36360x8c 0xa 0x10 0xd5
36370x8c 0xb 0x10 0xd5
36380x8c 0xc 0x10 0xd5
36390x8c 0xd 0x10 0xd5
36400x8c 0xe 0x10 0xd5
36410x8c 0xf 0x10 0xd5
36420xac 0x0 0x10 0xd5
36430xac 0x1 0x10 0xd5
36440xac 0x2 0x10 0xd5
36450xac 0x3 0x10 0xd5
36460xac 0x4 0x10 0xd5
36470xac 0x5 0x10 0xd5
36480xac 0x6 0x10 0xd5
36490xac 0x7 0x10 0xd5
36500xac 0x8 0x10 0xd5
36510xac 0x9 0x10 0xd5
36520xac 0xa 0x10 0xd5
36530xac 0xb 0x10 0xd5
36540xac 0xc 0x10 0xd5
36550xac 0xd 0x10 0xd5
36560xac 0xe 0x10 0xd5
36570xac 0xf 0x10 0xd5
36580xcc 0x0 0x10 0xd5
36590xcc 0x1 0x10 0xd5
36600xcc 0x2 0x10 0xd5
36610xcc 0x3 0x10 0xd5
36620xcc 0x4 0x10 0xd5
36630xcc 0x5 0x10 0xd5
36640xcc 0x6 0x10 0xd5
36650xcc 0x7 0x10 0xd5
36660xcc 0x8 0x10 0xd5
36670xcc 0x9 0x10 0xd5
36680xcc 0xa 0x10 0xd5
36690xcc 0xb 0x10 0xd5
36700xcc 0xc 0x10 0xd5
36710xcc 0xd 0x10 0xd5
36720xcc 0xe 0x10 0xd5
36730xcc 0xf 0x10 0xd5
36740xec 0x0 0x10 0xd5
36750xec 0x1 0x10 0xd5
36760xec 0x2 0x10 0xd5
36770xec 0x3 0x10 0xd5
36780xec 0x4 0x10 0xd5
36790xec 0x5 0x10 0xd5
36800xec 0x6 0x10 0xd5
36810xec 0x7 0x10 0xd5
36820xec 0x8 0x10 0xd5
36830xec 0x9 0x10 0xd5
36840xec 0xa 0x10 0xd5
36850xec 0xb 0x10 0xd5
36860xec 0xc 0x10 0xd5
36870xec 0xd 0x10 0xd5
36880xec 0xe 0x10 0xd5
36890xec 0xf 0x10 0xd5
36900xc 0x10 0x12 0xd5
36910x8c 0x10 0x10 0xd5
36920x8c 0x13 0x10 0xd5
36930x8c 0x14 0x10 0xd5
36940xcc 0x78 0x10 0xd5
36950xcc 0x79 0x10 0xd5
36960xc 0x0 0x1a 0xd5
36970xc 0x0 0x1c 0xd5
36980xac 0x0 0x1c 0xd5
36990xc 0x10 0x18 0xd5
37000xc 0x10 0x1c 0xd5
37010xc 0x10 0x1e 0xd5
37020x2c 0x10 0x18 0xd5
37030x2c 0x10 0x1c 0xd5
37040x2c 0x10 0x1e 0xd5
37050x4c 0x10 0x18 0xd5
37060xc 0x11 0x1c 0xd5
37070xc 0x11 0x1e 0xd5
37080x2c 0x11 0x1c 0xd5
37090x2c 0x11 0x1e 0xd5
37100x4c 0x11 0x1c 0xd5
37110x4c 0x11 0x1e 0xd5
37120x6c 0x11 0x1c 0xd5
37130xec 0x11 0x1c 0xd5
37140x2c 0x13 0x1e 0xd5
37150xc 0x20 0x18 0xd5
37160xc 0x20 0x1c 0xd5
37170xc 0x20 0x1e 0xd5
37180x2c 0x20 0x18 0xd5
37190x4c 0x20 0x18 0xd5
37200x4c 0x20 0x1c 0xd5
37210x4c 0x20 0x1e 0xd5
37220xc 0x21 0x1c 0xd5
37230x4c 0x21 0x1c 0xd5
37240xc 0x30 0x1c 0xd5
37250xc 0x40 0x18 0xd5
37260xc 0x40 0x1c 0xd5
37270xc 0x40 0x1e 0xd5
37280x2c 0x40 0x18 0xd5
37290x2c 0x40 0x1c 0xd5
37300x2c 0x40 0x1e 0xd5
37310xc 0x41 0x18 0xd5
37320xc 0x41 0x1c 0xd5
37330xc 0x41 0x1e 0xd5
37340xc 0x42 0x18 0xd5
37350xc 0x42 0x1b 0xd5
37360x2c 0x42 0x1b 0xd5
37370x4c 0x42 0x18 0xd5
37380xc 0x43 0x1c 0xd5
37390x2c 0x43 0x1c 0xd5
37400x4c 0x43 0x1c 0xd5
37410x6c 0x43 0x1c 0xd5
37420xc 0x44 0x1b 0xd5
37430x2c 0x44 0x1b 0xd5
37440xc 0x45 0x1b 0xd5
37450x2c 0x45 0x1b 0xd5
37460x2c 0x50 0x1c 0xd5
37470xc 0x51 0x18 0xd5
37480xc 0x51 0x1c 0xd5
37490xc 0x51 0x1e 0xd5
37500x2c 0x51 0x18 0xd5
37510x2c 0x51 0x1c 0xd5
37520x2c 0x51 0x1e 0xd5
37530xc 0x52 0x18 0xd5
37540xc 0x52 0x1c 0xd5
37550xc 0x52 0x1e 0xd5
37560xc 0x53 0x1c 0xd5
37570xc 0x60 0x18 0xd5
37580xc 0x60 0x1c 0xd5
37590xc 0x60 0x1e 0xd5
37600x8c 0x60 0x1c 0xd5
37610xc 0x74 0x18 0xd5
37620xc 0x9c 0x1b 0xd5
37630x2c 0x9c 0x1b 0xd5
37640x4c 0x9c 0x1b 0xd5
37650x6c 0x9c 0x1b 0xd5
37660xac 0x9c 0x1b 0xd5
37670xc 0x9d 0x1b 0xd5
37680x2c 0x9d 0x1b 0xd5
37690x4c 0x9d 0x1b 0xd5
37700xc 0x9e 0x1b 0xd5
37710x2c 0x9e 0x18 0xd5
37720x4c 0x9e 0x18 0xd5
37730x6c 0x9e 0x1b 0xd5
37740xc 0xa2 0x18 0xd5
37750xc 0xa2 0x1c 0xd5
37760xc 0xa2 0x1e 0xd5
37770xc 0xa3 0x18 0xd5
37780xc 0xa3 0x1c 0xd5
37790xc 0xa3 0x1e 0xd5
37800xc 0xc0 0x18 0xd5
37810xc 0xc0 0x1c 0xd5
37820xc 0xc0 0x1e 0xd5
37830x4c 0xc0 0x18 0xd5
37840x4c 0xc0 0x1c 0xd5
37850x4c 0xc0 0x1e 0xd5
37860x4c 0xd0 0x1b 0xd5
37870x4c 0xd0 0x1c 0xd5
37880x4c 0xd0 0x1e 0xd5
37890x6c 0xd0 0x1b 0xd5
37900x8c 0xd0 0x18 0xd5
37910xc 0xe0 0x1b 0xd5
37920x6c 0xe0 0x1c 0xd5
37930xc 0xe1 0x18 0xd5
37940xc 0xe1 0x1c 0xd5
37950xc 0xe2 0x1b 0xd5
37960xc 0xe2 0x1c 0xd5
37970xc 0xe2 0x1f 0xd5
37980x2c 0xe2 0x1b 0xd5
37990x2c 0xe2 0x1c 0xd5
38000x2c 0xe2 0x1f 0xd5
38010x4c 0xe2 0x1b 0xd5
38020x4c 0xe2 0x1c 0xd5
38030x4c 0xe2 0x1f 0xd5
38040xc 0xe3 0x1b 0xd5
38050x2c 0xe3 0x1b 0xd5
38060x4c 0xe3 0x1b 0xd5
38070xc 0xe8 0x1b 0xd5
38080x2c 0xe8 0x1b 0xd5
38090x4c 0xe8 0x1b 0xd5
38100x6c 0xe8 0x1b 0xd5
38110x8c 0xe8 0x1b 0xd5
38120xac 0xe8 0x1b 0xd5
38130xcc 0xe8 0x1b 0xd5
38140xec 0xe8 0x1b 0xd5
38150xc 0xe9 0x1b 0xd5
38160x2c 0xe9 0x1b 0xd5
38170x4c 0xe9 0x1b 0xd5
38180x6c 0xe9 0x1b 0xd5
38190x8c 0xe9 0x1b 0xd5
38200xac 0xe9 0x1b 0xd5
38210xcc 0xe9 0x1b 0xd5
38220xec 0xe9 0x1b 0xd5
38230xc 0xea 0x1b 0xd5
38240x2c 0xea 0x1b 0xd5
38250x4c 0xea 0x1b 0xd5
38260x6c 0xea 0x1b 0xd5
38270x8c 0xea 0x1b 0xd5
38280xac 0xea 0x1b 0xd5
38290xcc 0xea 0x1b 0xd5
38300xec 0xea 0x1b 0xd5
38310xc 0xeb 0x1b 0xd5
38320x2c 0xeb 0x1b 0xd5
38330x4c 0xeb 0x1b 0xd5
38340x6c 0xeb 0x1b 0xd5
38350x8c 0xeb 0x1b 0xd5
38360xac 0xeb 0x1b 0xd5
38370xcc 0xeb 0x1b 0xd5
38380xec 0xef 0x1b 0xd5
38390xc 0xec 0x1b 0xd5
38400x2c 0xec 0x1b 0xd5
38410x4c 0xec 0x1b 0xd5
38420x6c 0xec 0x1b 0xd5
38430x8c 0xec 0x1b 0xd5
38440xac 0xec 0x1b 0xd5
38450xcc 0xec 0x1b 0xd5
38460xec 0xec 0x1b 0xd5
38470xc 0xed 0x1b 0xd5
38480x2c 0xed 0x1b 0xd5
38490x4c 0xed 0x1b 0xd5
38500x6c 0xed 0x1b 0xd5
38510x8c 0xed 0x1b 0xd5
38520xac 0xed 0x1b 0xd5
38530xcc 0xed 0x1b 0xd5
38540xec 0xed 0x1b 0xd5
38550xc 0xee 0x1b 0xd5
38560x2c 0xee 0x1b 0xd5
38570x4c 0xee 0x1b 0xd5
38580x6c 0xee 0x1b 0xd5
38590x8c 0xee 0x1b 0xd5
38600xac 0xee 0x1b 0xd5
38610xcc 0xee 0x1b 0xd5
38620xec 0xee 0x1b 0xd5
38630xc 0xef 0x1b 0xd5
38640x2c 0xef 0x1b 0xd5
38650x4c 0xef 0x1b 0xd5
38660x6c 0xef 0x1b 0xd5
38670x8c 0xef 0x1b 0xd5
38680xac 0xef 0x1b 0xd5
38690xcc 0xef 0x1b 0xd5
38700x9 0x0 0x32 0xd5
38710x49 0x0 0x30 0xd5
38720x9 0x1 0x33 0xd5
38730x9 0x2 0x30 0xd5
38740x49 0x2 0x30 0xd5
38750x49 0x3 0x30 0xd5
38760x9 0x4 0x33 0xd5
38770x9 0x5 0x33 0xd5
38780x49 0x6 0x30 0xd5
38790x9 0x7 0x34 0xd5
38800x89 0x0 0x30 0xd5
38810x89 0x1 0x30 0xd5
38820x89 0x2 0x30 0xd5
38830x89 0x3 0x30 0xd5
38840x89 0x4 0x30 0xd5
38850x89 0x5 0x30 0xd5
38860x89 0x6 0x30 0xd5
38870x89 0x7 0x30 0xd5
38880x89 0x8 0x30 0xd5
38890x89 0x9 0x30 0xd5
38900x89 0xa 0x30 0xd5
38910x89 0xb 0x30 0xd5
38920x89 0xc 0x30 0xd5
38930x89 0xd 0x30 0xd5
38940x89 0xe 0x30 0xd5
38950x89 0xf 0x30 0xd5
38960xa9 0x0 0x30 0xd5
38970xa9 0x1 0x30 0xd5
38980xa9 0x2 0x30 0xd5
38990xa9 0x3 0x30 0xd5
39000xa9 0x4 0x30 0xd5
39010xa9 0x5 0x30 0xd5
39020xa9 0x6 0x30 0xd5
39030xa9 0x7 0x30 0xd5
39040xa9 0x8 0x30 0xd5
39050xa9 0x9 0x30 0xd5
39060xa9 0xa 0x30 0xd5
39070xa9 0xb 0x30 0xd5
39080xa9 0xc 0x30 0xd5
39090xa9 0xd 0x30 0xd5
39100xa9 0xe 0x30 0xd5
39110xa9 0xf 0x30 0xd5
39120xc9 0x0 0x30 0xd5
39130xc9 0x1 0x30 0xd5
39140xc9 0x2 0x30 0xd5
39150xc9 0x3 0x30 0xd5
39160xc9 0x4 0x30 0xd5
39170xc9 0x5 0x30 0xd5
39180xc9 0x6 0x30 0xd5
39190xc9 0x7 0x30 0xd5
39200xc9 0x8 0x30 0xd5
39210xc9 0x9 0x30 0xd5
39220xc9 0xa 0x30 0xd5
39230xc9 0xb 0x30 0xd5
39240xc9 0xc 0x30 0xd5
39250xc9 0xd 0x30 0xd5
39260xc9 0xe 0x30 0xd5
39270xc9 0xf 0x30 0xd5
39280xe9 0x0 0x30 0xd5
39290xe9 0x1 0x30 0xd5
39300xe9 0x2 0x30 0xd5
39310xe9 0x3 0x30 0xd5
39320xe9 0x4 0x30 0xd5
39330xe9 0x5 0x30 0xd5
39340xe9 0x6 0x30 0xd5
39350xe9 0x7 0x30 0xd5
39360xe9 0x8 0x30 0xd5
39370xe9 0x9 0x30 0xd5
39380xe9 0xa 0x30 0xd5
39390xe9 0xb 0x30 0xd5
39400xe9 0xc 0x30 0xd5
39410xe9 0xd 0x30 0xd5
39420xe9 0xe 0x30 0xd5
39430xe9 0xf 0x30 0xd5
39440x9 0x10 0x30 0xd5
39450x9 0x10 0x32 0xd5
39460x89 0x11 0x30 0xd5
39470x89 0x13 0x30 0xd5
39480x89 0x14 0x30 0xd5
39490xc9 0x78 0x30 0xd5
39500xc9 0x79 0x30 0xd5
39510xc9 0x7e 0x30 0xd5
39520x9 0x0 0x38 0xd5
39530x9 0x0 0x39 0xd5
39540x9 0x0 0x3a 0xd5
39550x9 0x0 0x3c 0xd5
39560x29 0x0 0x39 0xd5
39570x29 0x0 0x3b 0xd5
39580xa9 0x0 0x38 0xd5
39590xa9 0x0 0x3c 0xd5
39600xc9 0x0 0x38 0xd5
39610xe9 0x0 0x39 0xd5
39620xe9 0x0 0x3b 0xd5
39630x9 0x1 0x38 0xd5
39640x29 0x1 0x38 0xd5
39650x49 0x1 0x38 0xd5
39660x69 0x1 0x38 0xd5
39670x89 0x1 0x38 0xd5
39680xa9 0x1 0x38 0xd5
39690xc9 0x1 0x38 0xd5
39700xe9 0x1 0x38 0xd5
39710x9 0x2 0x38 0xd5
39720x29 0x2 0x38 0xd5
39730x49 0x2 0x38 0xd5
39740x69 0x2 0x38 0xd5
39750x89 0x2 0x38 0xd5
39760xa9 0x2 0x38 0xd5
39770x9 0x3 0x38 0xd5
39780x29 0x3 0x38 0xd5
39790x49 0x3 0x38 0xd5
39800x9 0x4 0x38 0xd5
39810x29 0x4 0x38 0xd5
39820x9 0x5 0x38 0xd5
39830x29 0x5 0x38 0xd5
39840x89 0x5 0x38 0xd5
39850xa9 0x5 0x38 0xd5
39860x9 0x6 0x38 0xd5
39870x29 0x6 0x38 0xd5
39880x9 0x7 0x38 0xd5
39890x29 0x7 0x38 0xd5
39900x9 0x10 0x38 0xd5
39910x9 0x10 0x3c 0xd5
39920x9 0x10 0x3e 0xd5
39930x29 0x10 0x38 0xd5
39940x29 0x10 0x3c 0xd5
39950x29 0x10 0x3e 0xd5
39960x49 0x10 0x38 0xd5
39970x9 0x11 0x3c 0xd5
39980x9 0x11 0x3e 0xd5
39990x29 0x11 0x3c 0xd5
40000x29 0x11 0x3e 0xd5
40010x49 0x11 0x3c 0xd5
40020x49 0x11 0x3e 0xd5
40030x69 0x11 0x3c 0xd5
40040xe9 0x11 0x3c 0xd5
40050x29 0x13 0x3e 0xd5
40060x9 0x20 0x38 0xd5
40070x9 0x20 0x3c 0xd5
40080x9 0x20 0x3e 0xd5
40090x29 0x20 0x38 0xd5
40100x49 0x20 0x38 0xd5
40110x49 0x20 0x3c 0xd5
40120x49 0x20 0x3e 0xd5
40130x9 0x21 0x3c 0xd5
40140x49 0x21 0x3c 0xd5
40150x9 0x30 0x3c 0xd5
40160x9 0x40 0x38 0xd5
40170x9 0x40 0x3c 0xd5
40180x9 0x40 0x3e 0xd5
40190x29 0x40 0x38 0xd5
40200x29 0x40 0x3c 0xd5
40210x29 0x40 0x3e 0xd5
40220x9 0x41 0x38 0xd5
40230x9 0x41 0x3c 0xd5
40240x9 0x41 0x3e 0xd5
40250x9 0x42 0x38 0xd5
40260x9 0x42 0x3b 0xd5
40270x29 0x42 0x3b 0xd5
40280x49 0x42 0x38 0xd5
40290x9 0x43 0x3c 0xd5
40300x29 0x43 0x3c 0xd5
40310x49 0x43 0x3c 0xd5
40320x69 0x43 0x3c 0xd5
40330x9 0x44 0x3b 0xd5
40340x29 0x44 0x3b 0xd5
40350x9 0x45 0x3b 0xd5
40360x29 0x45 0x3b 0xd5
40370x29 0x50 0x3c 0xd5
40380x9 0x51 0x38 0xd5
40390x9 0x51 0x3c 0xd5
40400x9 0x51 0x3e 0xd5
40410x29 0x51 0x38 0xd5
40420x29 0x51 0x3c 0xd5
40430x29 0x51 0x3e 0xd5
40440x9 0x52 0x38 0xd5
40450x9 0x52 0x3c 0xd5
40460x9 0x52 0x3e 0xd5
40470x9 0x53 0x3c 0xd5
40480x9 0x60 0x38 0xd5
40490x9 0x60 0x3c 0xd5
40500x9 0x60 0x3e 0xd5
40510x89 0x60 0x3c 0xd5
40520x9 0x74 0x38 0xd5
40530x9 0x9c 0x3b 0xd5
40540x29 0x9c 0x3b 0xd5
40550x49 0x9c 0x3b 0xd5
40560x69 0x9c 0x3b 0xd5
40570xa9 0x9c 0x3b 0xd5
40580xc9 0x9c 0x3b 0xd5
40590xe9 0x9c 0x3b 0xd5
40600x9 0x9d 0x3b 0xd5
40610x29 0x9d 0x3b 0xd5
40620x49 0x9d 0x3b 0xd5
40630x9 0x9e 0x3b 0xd5
40640x29 0x9e 0x38 0xd5
40650x49 0x9e 0x38 0xd5
40660x69 0x9e 0x3b 0xd5
40670x9 0xa2 0x38 0xd5
40680x9 0xa2 0x3c 0xd5
40690x9 0xa2 0x3e 0xd5
40700x9 0xa3 0x38 0xd5
40710x9 0xa3 0x3c 0xd5
40720x9 0xa3 0x3e 0xd5
40730x9 0xc0 0x38 0xd5
40740x9 0xc0 0x3c 0xd5
40750x9 0xc0 0x3e 0xd5
40760x29 0xc0 0x38 0xd5
40770x29 0xc0 0x3c 0xd5
40780x29 0xc0 0x3e 0xd5
40790x49 0xc0 0x38 0xd5
40800x49 0xc0 0x3c 0xd5
40810x49 0xc0 0x3e 0xd5
40820x9 0xc1 0x38 0xd5
40830x29 0xd0 0x38 0xd5
40840x49 0xd0 0x3b 0xd5
40850x49 0xd0 0x3c 0xd5
40860x49 0xd0 0x3e 0xd5
40870x69 0xd0 0x3b 0xd5
40880x89 0xd0 0x38 0xd5
40890x9 0xe0 0x3b 0xd5
40900x29 0xe0 0x3b 0xd5
40910x49 0xe0 0x3b 0xd5
40920x69 0xe0 0x3c 0xd5
40930x9 0xe1 0x38 0xd5
40940x9 0xe1 0x3c 0xd5
40950x9 0xe2 0x3b 0xd5
40960x9 0xe2 0x3c 0xd5
40970x9 0xe2 0x3f 0xd5
40980x29 0xe2 0x3b 0xd5
40990x29 0xe2 0x3c 0xd5
41000x29 0xe2 0x3f 0xd5
41010x49 0xe2 0x3b 0xd5
41020x49 0xe2 0x3c 0xd5
41030x49 0xe2 0x3f 0xd5
41040x9 0xe3 0x3b 0xd5
41050x29 0xe3 0x3b 0xd5
41060x49 0xe3 0x3b 0xd5
41070x9 0xe8 0x3b 0xd5
41080x29 0xe8 0x3b 0xd5
41090x49 0xe8 0x3b 0xd5
41100x69 0xe8 0x3b 0xd5
41110x89 0xe8 0x3b 0xd5
41120xa9 0xe8 0x3b 0xd5
41130xc9 0xe8 0x3b 0xd5
41140xe9 0xe8 0x3b 0xd5
41150x9 0xe9 0x3b 0xd5
41160x29 0xe9 0x3b 0xd5
41170x49 0xe9 0x3b 0xd5
41180x69 0xe9 0x3b 0xd5
41190x89 0xe9 0x3b 0xd5
41200xa9 0xe9 0x3b 0xd5
41210xc9 0xe9 0x3b 0xd5
41220xe9 0xe9 0x3b 0xd5
41230x9 0xea 0x3b 0xd5
41240x29 0xea 0x3b 0xd5
41250x49 0xea 0x3b 0xd5
41260x69 0xea 0x3b 0xd5
41270x89 0xea 0x3b 0xd5
41280xa9 0xea 0x3b 0xd5
41290xc9 0xea 0x3b 0xd5
41300xe9 0xea 0x3b 0xd5
41310x9 0xeb 0x3b 0xd5
41320x29 0xeb 0x3b 0xd5
41330x49 0xeb 0x3b 0xd5
41340x69 0xeb 0x3b 0xd5
41350x89 0xeb 0x3b 0xd5
41360xa9 0xeb 0x3b 0xd5
41370xc9 0xeb 0x3b 0xd5
41380xe9 0xef 0x3b 0xd5
41390x9 0xec 0x3b 0xd5
41400x29 0xec 0x3b 0xd5
41410x49 0xec 0x3b 0xd5
41420x69 0xec 0x3b 0xd5
41430x89 0xec 0x3b 0xd5
41440xa9 0xec 0x3b 0xd5
41450xc9 0xec 0x3b 0xd5
41460xe9 0xec 0x3b 0xd5
41470x9 0xed 0x3b 0xd5
41480x29 0xed 0x3b 0xd5
41490x49 0xed 0x3b 0xd5
41500x69 0xed 0x3b 0xd5
41510x89 0xed 0x3b 0xd5
41520xa9 0xed 0x3b 0xd5
41530xc9 0xed 0x3b 0xd5
41540xe9 0xed 0x3b 0xd5
41550x9 0xee 0x3b 0xd5
41560x29 0xee 0x3b 0xd5
41570x49 0xee 0x3b 0xd5
41580x69 0xee 0x3b 0xd5
41590x89 0xee 0x3b 0xd5
41600xa9 0xee 0x3b 0xd5
41610xc9 0xee 0x3b 0xd5
41620xe9 0xee 0x3b 0xd5
41630x9 0xef 0x3b 0xd5
41640x29 0xef 0x3b 0xd5
41650x49 0xef 0x3b 0xd5
41660x69 0xef 0x3b 0xd5
41670x89 0xef 0x3b 0xd5
41680xa9 0xef 0x3b 0xd5
41690xc9 0xef 0x3b 0xd5
4170
1a4d82fc
JJ
4171# CHECK: mrs x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4172# CHECK: mrs x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4173# CHECK: msr {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4174# CHECK: msr {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
970d7e83
LB
41750xac 0xf1 0x3f 0xd5
41760xed 0xbf 0x3a 0xd5
41770x0c 0xf0 0x18 0xd5
41780xe5 0xbd 0x1f 0xd5
4179
4180#------------------------------------------------------------------------------
4181# Test and branch (immediate)
4182#------------------------------------------------------------------------------
4183
4184# CHECK: tbz x12, #62, #0
4185# CHECK: tbz x12, #62, #4
4186# CHECK: tbz x12, #62, #-32768
4187# CHECK: tbnz x12, #60, #32764
41880x0c 0x00 0xf0 0xb6
41890x2c 0x00 0xf0 0xb6
41900x0c 0x00 0xf4 0xb6
41910xec 0xff 0xe3 0xb7
4192
4193#------------------------------------------------------------------------------
4194# Unconditional branch (immediate)
4195#------------------------------------------------------------------------------
4196
4197# CHECK: b #4
4198# CHECK: b #-4
4199# CHECK: b #134217724
42000x01 0x00 0x00 0x14
42010xff 0xff 0xff 0x17
42020xff 0xff 0xff 0x15
4203
4204#------------------------------------------------------------------------------
4205# Unconditional branch (register)
4206#------------------------------------------------------------------------------
4207
4208# CHECK: br x20
4209# CHECK: blr xzr
4210# CHECK: ret x10
42110x80 0x2 0x1f 0xd6
42120xe0 0x3 0x3f 0xd6
42130x40 0x1 0x5f 0xd6
4214
4215# CHECK: ret
4216# CHECK: eret
4217# CHECK: drps
42180xc0 0x3 0x5f 0xd6
42190xe0 0x3 0x9f 0xd6
42200xe0 0x3 0xbf 0xd6
4221