• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2# RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
3
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
191# CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
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
218# CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
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
245# CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
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
272# CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
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
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
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
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
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
447# CHECK: {{subs     w29, wzr|negs w29}}, w30
448# CHECK: {{subs     w30, wzr|negs w30}}, wzr
449# CHECK: cmp      wzr, w0
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
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
472# CHECK: {{subs     x29, xzr|negs x29}}, x30
473# CHECK: {{subs     x30, xzr|negs x30}}, xzr
474# CHECK: cmp      xzr, x0
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
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
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
9510xe3 0x17 0x9f 0x1a
9520xe9 0x47 0x9f 0x9a
9530xf4 0x3 0x9f 0x5a
9540xfe 0xb3 0x9f 0xda
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
9670xa3 0xd4 0x85 0x1a
9680x9f 0xc4 0x84 0x1a
9690xe9 0xa7 0x9f 0x1a
9700xa3 0xd4 0x85 0x9a
9710x9f 0xc4 0x84 0x9a
9720xe9 0xa7 0x9f 0x9a
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
9850xa3 0xd0 0x85 0x5a
9860x9f 0xc0 0x84 0x5a
9870xe9 0xa3 0x9f 0x5a
9880xa3 0xd0 0x85 0xda
9890x9f 0xc0 0x84 0xda
9900xe9 0xa3 0x9f 0xda
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
10030xa3 0xd4 0x85 0x5a
10040x9f 0xc4 0x84 0x5a
10050xe9 0xa7 0x9f 0x5a
10060xa3 0xd4 0x85 0xda
10070x9f 0xc4 0x84 0xda
10080xe9 0xa7 0x9f 0xda
10090x04,0xe5,0x88,0xda
10100x09,0xf1,0x88,0x5a
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
1267# CHECK: svc      #{{65535|0xffff}}
12680x1 0x0 0x0 0xd4
12690xe1 0xff 0x1f 0xd4
1270
1271# CHECK: hvc      #{{1|0x1}}
1272# CHECK: smc      #{{12000|0x2ee0}}
1273# CHECK: brk      #{{12|0xc}}
1274# CHECK: hlt      #{{123|0x7b}}
12750x22 0x0 0x0 0xd4
12760x3 0xdc 0x5 0xd4
12770x80 0x1 0x20 0xd4
12780x60 0xf 0x40 0xd4
1279
1280# CHECK: dcps1    #{{42|0x2a}}
1281# CHECK: dcps2    #{{9|0x9}}
1282# CHECK: dcps3    #{{1000|0x3e8}}
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
1308# CHECK: ror     x19, x23, #24
1309# CHECK: ror     x29, xzr, #63
1310# CHECK: ror     w9, w13, #31
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]
2377# CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2378# CHECK: prfm    pldl2keep, [x5, #16]
2379# CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2380# CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2381# CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2382# CHECK: prfm    plil1keep, [sp, #8]
2383# CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2384# CHECK: prfm    plil2keep, [x5, #16]
2385# CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2386# CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2387# CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2388# CHECK: prfm    pstl1keep, [sp, #8]
2389# CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2390# CHECK: prfm    pstl2keep, [x5, #16]
2391# CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2392# CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2393# CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
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
2746# CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
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
2753# CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2754# CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
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
2786# CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
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
2793# CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2794# CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
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
2882# CHECK: movz     w1, #{{65535|0xffff}}
2883# CHECK: movz     w2, #0, lsl #16
2884# CHECK: movn     w2, #{{1234|0x4d2}}
28850xe1 0xff 0x9f 0x52
28860x2 0x0 0xa0 0x52
28870x42 0x9a 0x80 0x12
2888
2889# CHECK: movz     x2, #{{1234|0x4d2}}, lsl #32
2890# CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
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
2930# CHECK: hint     #{{127|0x7f}}
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
3022# CHECK: msr      {{spsel|SPSEL}}, #0
3023# CHECK: msr      {{daifset|DAIFSET}}, #15
3024# CHECK: msr      {{daifclr|DAIFCLR}}, #12
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
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
30410x1f 0x71 0x8 0xd5
30420x1f 0x75 0x8 0xd5
30430x29 0x75 0xb 0xd5
3044
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
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
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}}
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
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
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
4222