• 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# RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8,+fullfp16 -disassemble < %s | FileCheck %s --check-prefix=CHECK --check-prefix=FP16
4# RUN: llvm-mc -triple=arm64 -mattr=+v8.3a -disassemble < %s | FileCheck %s --check-prefix=CHECK-V83
5
6#------------------------------------------------------------------------------
7# Add/sub (immediate)
8#------------------------------------------------------------------------------
9# CHECK: add      w4, w5, #0
10# CHECK: add      w2, w3, #4095
11# CHECK: add      w30, w29, #1, lsl #12
12# CHECK: add      w13, w5, #4095, lsl #12
13# CHECK: add      x5, x7, #1638
140xa4 0x0 0x0 0x11
150x62 0xfc 0x3f 0x11
160xbe 0x7 0x40 0x11
170xad 0xfc 0x7f 0x11
180xe5 0x98 0x19 0x91
19
20# CHECK: add      w20, wsp, #801
21# CHECK: add      wsp, wsp, #1104
22# CHECK: add      wsp, w30, #4084
230xf4 0x87 0xc 0x11
240xff 0x43 0x11 0x11
250xdf 0xd3 0x3f 0x11
26
27# CHECK: add      x0, x24, #291
28# CHECK: add      x3, x24, #4095, lsl #12
29# CHECK: add      x8, sp, #1074
30# CHECK: add      sp, x29, #3816
310x0 0x8f 0x4 0x91
320x3 0xff 0x7f 0x91
330xe8 0xcb 0x10 0x91
340xbf 0xa3 0x3b 0x91
35
36# CHECK: sub      w0, wsp, #4077
37# CHECK: sub      w4, w20, #546, lsl #12
38# CHECK: sub      sp, sp, #288
39# CHECK: sub      wsp, w19, #16
400xe0 0xb7 0x3f 0x51
410x84 0x8a 0x48 0x51
420xff 0x83 0x4 0xd1
430x7f 0x42 0x0 0x51
44
45
46# CHECK: adds     w13, w23, #291, lsl #12
47# CHECK: cmn      w2, #4095
48# CHECK: adds     w20, wsp, #0
49# CHECK: cmn      x3, #1, lsl #12
500xed 0x8e 0x44 0x31
510x5f 0xfc 0x3f 0x31
520xf4 0x3 0x0 0x31
530x7f 0x4 0x40 0xb1
54
55# CHECK: cmp      sp, #20, lsl #12
56# CHECK: cmp      x30, #4095
57# CHECK: subs     x4, sp, #3822
580xff 0x53 0x40 0xf1
590xdf 0xff 0x3f 0xf1
600xe4 0xbb 0x3b 0xf1
61
62# These should really be CMN
63# CHECK: cmn      w3, #291, lsl #12
64# CHECK: cmn      wsp, #1365
65# CHECK: cmn      sp, #1092, lsl #12
660x7f 0x8c 0x44 0x31
670xff 0x57 0x15 0x31
680xff 0x13 0x51 0xb1
69
70# CHECK: mov      sp, x30
71# CHECK: mov      wsp, w20
72# CHECK: mov      x11, sp
73# CHECK: mov      w24, wsp
740xdf 0x3 0x0 0x91
750x9f 0x2 0x0 0x11
760xeb 0x3 0x0 0x91
770xf8 0x3 0x0 0x11
78
79#------------------------------------------------------------------------------
80# Add-subtract (shifted register)
81#------------------------------------------------------------------------------
82
83# CHECK: add      w3, w5, w7
84# CHECK: add      wzr, w3, w5
85# CHECK: add      w20, wzr, w4
86# CHECK: add      w4, w6, wzr
87# CHECK: add      w11, w13, w15
88# CHECK: add      w9, w3, wzr, lsl #10
89# CHECK: add      w17, w29, w20, lsl #31
90# CHECK: add      w21, w22, w23, lsr #0
91# CHECK: add      w24, w25, w26, lsr #18
92# CHECK: add      w27, w28, w29, lsr #31
93# CHECK: add      w2, w3, w4, asr #0
94# CHECK: add      w5, w6, w7, asr #21
95# CHECK: add      w8, w9, w10, asr #31
960xa3 0x0 0x7 0xb
970x7f 0x0 0x5 0xb
980xf4 0x3 0x4 0xb
990xc4 0x0 0x1f 0xb
1000xab 0x1 0xf 0xb
1010x69 0x28 0x1f 0xb
1020xb1 0x7f 0x14 0xb
1030xd5 0x2 0x57 0xb
1040x38 0x4b 0x5a 0xb
1050x9b 0x7f 0x5d 0xb
1060x62 0x0 0x84 0xb
1070xc5 0x54 0x87 0xb
1080x28 0x7d 0x8a 0xb
109
110# CHECK: add      x3, x5, x7
111# CHECK: add      xzr, x3, x5
112# CHECK: add      x20, xzr, x4
113# CHECK: add      x4, x6, xzr
114# CHECK: add      x11, x13, x15
115# CHECK: add      x9, x3, xzr, lsl #10
116# CHECK: add      x17, x29, x20, lsl #63
117# CHECK: add      x21, x22, x23, lsr #0
118# CHECK: add      x24, x25, x26, lsr #18
119# CHECK: add      x27, x28, x29, lsr #63
120# CHECK: add      x2, x3, x4, asr #0
121# CHECK: add      x5, x6, x7, asr #21
122# CHECK: add      x8, x9, x10, asr #63
1230xa3 0x0 0x7 0x8b
1240x7f 0x0 0x5 0x8b
1250xf4 0x3 0x4 0x8b
1260xc4 0x0 0x1f 0x8b
1270xab 0x1 0xf 0x8b
1280x69 0x28 0x1f 0x8b
1290xb1 0xff 0x14 0x8b
1300xd5 0x2 0x57 0x8b
1310x38 0x4b 0x5a 0x8b
1320x9b 0xff 0x5d 0x8b
1330x62 0x0 0x84 0x8b
1340xc5 0x54 0x87 0x8b
1350x28 0xfd 0x8a 0x8b
136
137# CHECK: adds     w3, w5, w7
138# CHECK: cmn      w3, w5
139# CHECK: adds     w20, wzr, w4
140# CHECK: adds     w4, w6, wzr
141# CHECK: adds     w11, w13, w15
142# CHECK: adds     w9, w3, wzr, lsl #10
143# CHECK: adds     w17, w29, w20, lsl #31
144# CHECK: adds     w21, w22, w23, lsr #0
145# CHECK: adds     w24, w25, w26, lsr #18
146# CHECK: adds     w27, w28, w29, lsr #31
147# CHECK: adds     w2, w3, w4, asr #0
148# CHECK: adds     w5, w6, w7, asr #21
149# CHECK: adds     w8, w9, w10, asr #31
1500xa3 0x0 0x7 0x2b
1510x7f 0x0 0x5 0x2b
1520xf4 0x3 0x4 0x2b
1530xc4 0x0 0x1f 0x2b
1540xab 0x1 0xf 0x2b
1550x69 0x28 0x1f 0x2b
1560xb1 0x7f 0x14 0x2b
1570xd5 0x2 0x57 0x2b
1580x38 0x4b 0x5a 0x2b
1590x9b 0x7f 0x5d 0x2b
1600x62 0x0 0x84 0x2b
1610xc5 0x54 0x87 0x2b
1620x28 0x7d 0x8a 0x2b
163
164# CHECK: adds     x3, x5, x7
165# CHECK: cmn      x3, x5
166# CHECK: adds     x20, xzr, x4
167# CHECK: adds     x4, x6, xzr
168# CHECK: adds     x11, x13, x15
169# CHECK: adds     x9, x3, xzr, lsl #10
170# CHECK: adds     x17, x29, x20, lsl #63
171# CHECK: adds     x21, x22, x23, lsr #0
172# CHECK: adds     x24, x25, x26, lsr #18
173# CHECK: adds     x27, x28, x29, lsr #63
174# CHECK: adds     x2, x3, x4, asr #0
175# CHECK: adds     x5, x6, x7, asr #21
176# CHECK: adds     x8, x9, x10, asr #63
1770xa3 0x0 0x7 0xab
1780x7f 0x0 0x5 0xab
1790xf4 0x3 0x4 0xab
1800xc4 0x0 0x1f 0xab
1810xab 0x1 0xf 0xab
1820x69 0x28 0x1f 0xab
1830xb1 0xff 0x14 0xab
1840xd5 0x2 0x57 0xab
1850x38 0x4b 0x5a 0xab
1860x9b 0xff 0x5d 0xab
1870x62 0x0 0x84 0xab
1880xc5 0x54 0x87 0xab
1890x28 0xfd 0x8a 0xab
190
191# CHECK: sub      w3, w5, w7
192# CHECK: sub      wzr, w3, w5
193# CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
194# CHECK: sub      w4, w6, wzr
195# CHECK: sub      w11, w13, w15
196# CHECK: sub      w9, w3, wzr, lsl #10
197# CHECK: sub      w17, w29, w20, lsl #31
198# CHECK: sub      w21, w22, w23, lsr #0
199# CHECK: sub      w24, w25, w26, lsr #18
200# CHECK: sub      w27, w28, w29, lsr #31
201# CHECK: sub      w2, w3, w4, asr #0
202# CHECK: sub      w5, w6, w7, asr #21
203# CHECK: sub      w8, w9, w10, asr #31
2040xa3 0x0 0x7 0x4b
2050x7f 0x0 0x5 0x4b
2060xf4 0x3 0x4 0x4b
2070xc4 0x0 0x1f 0x4b
2080xab 0x1 0xf 0x4b
2090x69 0x28 0x1f 0x4b
2100xb1 0x7f 0x14 0x4b
2110xd5 0x2 0x57 0x4b
2120x38 0x4b 0x5a 0x4b
2130x9b 0x7f 0x5d 0x4b
2140x62 0x0 0x84 0x4b
2150xc5 0x54 0x87 0x4b
2160x28 0x7d 0x8a 0x4b
217
218# CHECK: sub      x3, x5, x7
219# CHECK: sub      xzr, x3, x5
220# CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
221# CHECK: sub      x4, x6, xzr
222# CHECK: sub      x11, x13, x15
223# CHECK: sub      x9, x3, xzr, lsl #10
224# CHECK: sub      x17, x29, x20, lsl #63
225# CHECK: sub      x21, x22, x23, lsr #0
226# CHECK: sub      x24, x25, x26, lsr #18
227# CHECK: sub      x27, x28, x29, lsr #63
228# CHECK: sub      x2, x3, x4, asr #0
229# CHECK: sub      x5, x6, x7, asr #21
230# CHECK: sub      x8, x9, x10, asr #63
2310xa3 0x0 0x7 0xcb
2320x7f 0x0 0x5 0xcb
2330xf4 0x3 0x4 0xcb
2340xc4 0x0 0x1f 0xcb
2350xab 0x1 0xf 0xcb
2360x69 0x28 0x1f 0xcb
2370xb1 0xff 0x14 0xcb
2380xd5 0x2 0x57 0xcb
2390x38 0x4b 0x5a 0xcb
2400x9b 0xff 0x5d 0xcb
2410x62 0x0 0x84 0xcb
2420xc5 0x54 0x87 0xcb
2430x28 0xfd 0x8a 0xcb
244
245# CHECK: subs     w3, w5, w7
246# CHECK: cmp      w3, w5
247# CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
248# CHECK: subs     w4, w6, wzr
249# CHECK: subs     w11, w13, w15
250# CHECK: subs     w9, w3, wzr, lsl #10
251# CHECK: subs     w17, w29, w20, lsl #31
252# CHECK: subs     w21, w22, w23, lsr #0
253# CHECK: subs     w24, w25, w26, lsr #18
254# CHECK: subs     w27, w28, w29, lsr #31
255# CHECK: subs     w2, w3, w4, asr #0
256# CHECK: subs     w5, w6, w7, asr #21
257# CHECK: subs     w8, w9, w10, asr #31
2580xa3 0x0 0x7 0x6b
2590x7f 0x0 0x5 0x6b
2600xf4 0x3 0x4 0x6b
2610xc4 0x0 0x1f 0x6b
2620xab 0x1 0xf 0x6b
2630x69 0x28 0x1f 0x6b
2640xb1 0x7f 0x14 0x6b
2650xd5 0x2 0x57 0x6b
2660x38 0x4b 0x5a 0x6b
2670x9b 0x7f 0x5d 0x6b
2680x62 0x0 0x84 0x6b
2690xc5 0x54 0x87 0x6b
2700x28 0x7d 0x8a 0x6b
271
272# CHECK: subs     x3, x5, x7
273# CHECK: cmp      x3, x5
274# CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
275# CHECK: subs     x4, x6, xzr
276# CHECK: subs     x11, x13, x15
277# CHECK: subs     x9, x3, xzr, lsl #10
278# CHECK: subs     x17, x29, x20, lsl #63
279# CHECK: subs     x21, x22, x23, lsr #0
280# CHECK: subs     x24, x25, x26, lsr #18
281# CHECK: subs     x27, x28, x29, lsr #63
282# CHECK: subs     x2, x3, x4, asr #0
283# CHECK: subs     x5, x6, x7, asr #21
284# CHECK: subs     x8, x9, x10, asr #63
2850xa3 0x0 0x7 0xeb
2860x7f 0x0 0x5 0xeb
2870xf4 0x3 0x4 0xeb
2880xc4 0x0 0x1f 0xeb
2890xab 0x1 0xf 0xeb
2900x69 0x28 0x1f 0xeb
2910xb1 0xff 0x14 0xeb
2920xd5 0x2 0x57 0xeb
2930x38 0x4b 0x5a 0xeb
2940x9b 0xff 0x5d 0xeb
2950x62 0x0 0x84 0xeb
2960xc5 0x54 0x87 0xeb
2970x28 0xfd 0x8a 0xeb
298
299# CHECK: cmn      w0, w3
300# CHECK: cmn      wzr, w4
301# CHECK: cmn      w5, wzr
302# CHECK: cmn      w6, w7
303# CHECK: cmn      w8, w9, lsl #15
304# CHECK: cmn      w10, w11, lsl #31
305# CHECK: cmn      w12, w13, lsr #0
306# CHECK: cmn      w14, w15, lsr #21
307# CHECK: cmn      w16, w17, lsr #31
308# CHECK: cmn      w18, w19, asr #0
309# CHECK: cmn      w20, w21, asr #22
310# CHECK: cmn      w22, w23, asr #31
3110x1f 0x0 0x3 0x2b
3120xff 0x3 0x4 0x2b
3130xbf 0x0 0x1f 0x2b
3140xdf 0x0 0x7 0x2b
3150x1f 0x3d 0x9 0x2b
3160x5f 0x7d 0xb 0x2b
3170x9f 0x1 0x4d 0x2b
3180xdf 0x55 0x4f 0x2b
3190x1f 0x7e 0x51 0x2b
3200x5f 0x2 0x93 0x2b
3210x9f 0x5a 0x95 0x2b
3220xdf 0x7e 0x97 0x2b
323
324# CHECK: cmn      x0, x3
325# CHECK: cmn      xzr, x4
326# CHECK: cmn      x5, xzr
327# CHECK: cmn      x6, x7
328# CHECK: cmn      x8, x9, lsl #15
329# CHECK: cmn      x10, x11, lsl #63
330# CHECK: cmn      x12, x13, lsr #0
331# CHECK: cmn      x14, x15, lsr #41
332# CHECK: cmn      x16, x17, lsr #63
333# CHECK: cmn      x18, x19, asr #0
334# CHECK: cmn      x20, x21, asr #55
335# CHECK: cmn      x22, x23, asr #63
3360x1f 0x0 0x3 0xab
3370xff 0x3 0x4 0xab
3380xbf 0x0 0x1f 0xab
3390xdf 0x0 0x7 0xab
3400x1f 0x3d 0x9 0xab
3410x5f 0xfd 0xb 0xab
3420x9f 0x1 0x4d 0xab
3430xdf 0xa5 0x4f 0xab
3440x1f 0xfe 0x51 0xab
3450x5f 0x2 0x93 0xab
3460x9f 0xde 0x95 0xab
3470xdf 0xfe 0x97 0xab
348
349# CHECK: cmp      w0, w3
350# CHECK: cmp      wzr, w4
351# CHECK: cmp      w5, wzr
352# CHECK: cmp      w6, w7
353# CHECK: cmp      w8, w9, lsl #15
354# CHECK: cmp      w10, w11, lsl #31
355# CHECK: cmp      w12, w13, lsr #0
356# CHECK: cmp      w14, w15, lsr #21
357# CHECK: cmp      w16, w17, lsr #31
358# CHECK: cmp      w18, w19, asr #0
359# CHECK: cmp      w20, w21, asr #22
360# CHECK: cmp      w22, w23, asr #31
3610x1f 0x0 0x3 0x6b
3620xff 0x3 0x4 0x6b
3630xbf 0x0 0x1f 0x6b
3640xdf 0x0 0x7 0x6b
3650x1f 0x3d 0x9 0x6b
3660x5f 0x7d 0xb 0x6b
3670x9f 0x1 0x4d 0x6b
3680xdf 0x55 0x4f 0x6b
3690x1f 0x7e 0x51 0x6b
3700x5f 0x2 0x93 0x6b
3710x9f 0x5a 0x95 0x6b
3720xdf 0x7e 0x97 0x6b
373
374# CHECK: cmp      x0, x3
375# CHECK: cmp      xzr, x4
376# CHECK: cmp      x5, xzr
377# CHECK: cmp      x6, x7
378# CHECK: cmp      x8, x9, lsl #15
379# CHECK: cmp      x10, x11, lsl #63
380# CHECK: cmp      x12, x13, lsr #0
381# CHECK: cmp      x14, x15, lsr #41
382# CHECK: cmp      x16, x17, lsr #63
383# CHECK: cmp      x18, x19, asr #0
384# CHECK: cmp      x20, x21, asr #55
385# CHECK: cmp      x22, x23, asr #63
3860x1f 0x0 0x3 0xeb
3870xff 0x3 0x4 0xeb
3880xbf 0x0 0x1f 0xeb
3890xdf 0x0 0x7 0xeb
3900x1f 0x3d 0x9 0xeb
3910x5f 0xfd 0xb 0xeb
3920x9f 0x1 0x4d 0xeb
3930xdf 0xa5 0x4f 0xeb
3940x1f 0xfe 0x51 0xeb
3950x5f 0x2 0x93 0xeb
3960x9f 0xde 0x95 0xeb
3970xdf 0xfe 0x97 0xeb
398
399# CHECK: {{sub      w29, wzr|neg w29}}, w30
400# CHECK: {{sub      w30, wzr|neg w30}}, wzr
401# CHECK: {{sub      wzr, wzr|neg wzr}}, w0
402# CHECK: {{sub      w28, wzr|neg w28}}, w27
403# CHECK: {{sub      w26, wzr|neg w26}}, w25, lsl #29
404# CHECK: {{sub      w24, wzr|neg w24}}, w23, lsl #31
405# CHECK: {{sub      w22, wzr|neg w22}}, w21, lsr #0
406# CHECK: {{sub      w20, wzr|neg w20}}, w19, lsr #1
407# CHECK: {{sub      w18, wzr|neg w18}}, w17, lsr #31
408# CHECK: {{sub      w16, wzr|neg w16}}, w15, asr #0
409# CHECK: {{sub      w14, wzr|neg w14}}, w13, asr #12
410# CHECK: {{sub      w12, wzr|neg w12}}, w11, asr #31
4110xfd 0x3 0x1e 0x4b
4120xfe 0x3 0x1f 0x4b
4130xff 0x3 0x0 0x4b
4140xfc 0x3 0x1b 0x4b
4150xfa 0x77 0x19 0x4b
4160xf8 0x7f 0x17 0x4b
4170xf6 0x3 0x55 0x4b
4180xf4 0x7 0x53 0x4b
4190xf2 0x7f 0x51 0x4b
4200xf0 0x3 0x8f 0x4b
4210xee 0x33 0x8d 0x4b
4220xec 0x7f 0x8b 0x4b
423
424# CHECK: {{sub      x29, xzr|neg x29}}, x30
425# CHECK: {{sub      x30, xzr|neg x30}}, xzr
426# CHECK: {{sub      xzr, xzr|neg xzr}}, x0
427# CHECK: {{sub      x28, xzr|neg x28}}, x27
428# CHECK: {{sub      x26, xzr|neg x26}}, x25, lsl #29
429# CHECK: {{sub      x24, xzr|neg x24}}, x23, lsl #31
430# CHECK: {{sub      x22, xzr|neg x22}}, x21, lsr #0
431# CHECK: {{sub      x20, xzr|neg x20}}, x19, lsr #1
432# CHECK: {{sub      x18, xzr|neg x18}}, x17, lsr #31
433# CHECK: {{sub      x16, xzr|neg x16}}, x15, asr #0
434# CHECK: {{sub      x14, xzr|neg x14}}, x13, asr #12
435# CHECK: {{sub      x12, xzr|neg x12}}, x11, asr #31
4360xfd 0x3 0x1e 0xcb
4370xfe 0x3 0x1f 0xcb
4380xff 0x3 0x0 0xcb
4390xfc 0x3 0x1b 0xcb
4400xfa 0x77 0x19 0xcb
4410xf8 0x7f 0x17 0xcb
4420xf6 0x3 0x55 0xcb
4430xf4 0x7 0x53 0xcb
4440xf2 0x7f 0x51 0xcb
4450xf0 0x3 0x8f 0xcb
4460xee 0x33 0x8d 0xcb
4470xec 0x7f 0x8b 0xcb
448
449# CHECK: {{subs     w29, wzr|negs w29}}, w30
450# CHECK: {{subs     w30, wzr|negs w30}}, wzr
451# CHECK: cmp      wzr, w0
452# CHECK: {{subs     w28, wzr|negs w28}}, w27
453# CHECK: {{subs     w26, wzr|negs w26}}, w25, lsl #29
454# CHECK: {{subs     w24, wzr|negs w24}}, w23, lsl #31
455# CHECK: {{subs     w22, wzr|negs w22}}, w21, lsr #0
456# CHECK: {{subs     w20, wzr|negs w20}}, w19, lsr #1
457# CHECK: {{subs     w18, wzr|negs w18}}, w17, lsr #31
458# CHECK: {{subs     w16, wzr|negs w16}}, w15, asr #0
459# CHECK: {{subs     w14, wzr|negs w14}}, w13, asr #12
460# CHECK: {{subs     w12, wzr|negs w12}}, w11, asr #31
4610xfd 0x3 0x1e 0x6b
4620xfe 0x3 0x1f 0x6b
4630xff 0x3 0x0 0x6b
4640xfc 0x3 0x1b 0x6b
4650xfa 0x77 0x19 0x6b
4660xf8 0x7f 0x17 0x6b
4670xf6 0x3 0x55 0x6b
4680xf4 0x7 0x53 0x6b
4690xf2 0x7f 0x51 0x6b
4700xf0 0x3 0x8f 0x6b
4710xee 0x33 0x8d 0x6b
4720xec 0x7f 0x8b 0x6b
473
474# CHECK: {{subs     x29, xzr|negs x29}}, x30
475# CHECK: {{subs     x30, xzr|negs x30}}, xzr
476# CHECK: cmp      xzr, x0
477# CHECK: {{subs     x28, xzr|negs x28}}, x27
478# CHECK: {{subs     x26, xzr|negs x26}}, x25, lsl #29
479# CHECK: {{subs     x24, xzr|negs x24}}, x23, lsl #31
480# CHECK: {{subs     x22, xzr|negs x22}}, x21, lsr #0
481# CHECK: {{subs     x20, xzr|negs x20}}, x19, lsr #1
482# CHECK: {{subs     x18, xzr|negs x18}}, x17, lsr #31
483# CHECK: {{subs     x16, xzr|negs x16}}, x15, asr #0
484# CHECK: {{subs     x14, xzr|negs x14}}, x13, asr #12
485# CHECK: {{subs     x12, xzr|negs x12}}, x11, asr #31
4860xfd 0x3 0x1e 0xeb
4870xfe 0x3 0x1f 0xeb
4880xff 0x3 0x0 0xeb
4890xfc 0x3 0x1b 0xeb
4900xfa 0x77 0x19 0xeb
4910xf8 0x7f 0x17 0xeb
4920xf6 0x3 0x55 0xeb
4930xf4 0x7 0x53 0xeb
4940xf2 0x7f 0x51 0xeb
4950xf0 0x3 0x8f 0xeb
4960xee 0x33 0x8d 0xeb
4970xec 0x7f 0x8b 0xeb
498
499#------------------------------------------------------------------------------
500# Add-subtract (shifted register)
501#------------------------------------------------------------------------------
502
503# CHECK: adc      w29, w27, w25
504# CHECK: adc      wzr, w3, w4
505# CHECK: adc      w9, wzr, w10
506# CHECK: adc      w20, w0, wzr
5070x7d 0x3 0x19 0x1a
5080x7f 0x0 0x4 0x1a
5090xe9 0x3 0xa 0x1a
5100x14 0x0 0x1f 0x1a
511
512# CHECK: adc      x29, x27, x25
513# CHECK: adc      xzr, x3, x4
514# CHECK: adc      x9, xzr, x10
515# CHECK: adc      x20, x0, xzr
5160x7d 0x3 0x19 0x9a
5170x7f 0x0 0x4 0x9a
5180xe9 0x3 0xa 0x9a
5190x14 0x0 0x1f 0x9a
520
521# CHECK: adcs     w29, w27, w25
522# CHECK: adcs     wzr, w3, w4
523# CHECK: adcs     w9, wzr, w10
524# CHECK: adcs     w20, w0, wzr
5250x7d 0x3 0x19 0x3a
5260x7f 0x0 0x4 0x3a
5270xe9 0x3 0xa 0x3a
5280x14 0x0 0x1f 0x3a
529
530# CHECK: adcs     x29, x27, x25
531# CHECK: adcs     xzr, x3, x4
532# CHECK: adcs     x9, xzr, x10
533# CHECK: adcs     x20, x0, xzr
5340x7d 0x3 0x19 0xba
5350x7f 0x0 0x4 0xba
5360xe9 0x3 0xa 0xba
5370x14 0x0 0x1f 0xba
538
539# CHECK: sbc      w29, w27, w25
540# CHECK: sbc      wzr, w3, w4
541# CHECK: ngc      w9, w10
542# CHECK: sbc      w20, w0, wzr
5430x7d 0x3 0x19 0x5a
5440x7f 0x0 0x4 0x5a
5450xe9 0x3 0xa 0x5a
5460x14 0x0 0x1f 0x5a
547
548# CHECK: sbc      x29, x27, x25
549# CHECK: sbc      xzr, x3, x4
550# CHECK: ngc      x9, x10
551# CHECK: sbc      x20, x0, xzr
5520x7d 0x3 0x19 0xda
5530x7f 0x0 0x4 0xda
5540xe9 0x3 0xa 0xda
5550x14 0x0 0x1f 0xda
556
557# CHECK: sbcs     w29, w27, w25
558# CHECK: sbcs     wzr, w3, w4
559# CHECK: ngcs     w9, w10
560# CHECK: sbcs     w20, w0, wzr
5610x7d 0x3 0x19 0x7a
5620x7f 0x0 0x4 0x7a
5630xe9 0x3 0xa 0x7a
5640x14 0x0 0x1f 0x7a
565
566# CHECK: sbcs     x29, x27, x25
567# CHECK: sbcs     xzr, x3, x4
568# CHECK: ngcs     x9, x10
569# CHECK: sbcs     x20, x0, xzr
5700x7d 0x3 0x19 0xfa
5710x7f 0x0 0x4 0xfa
5720xe9 0x3 0xa 0xfa
5730x14 0x0 0x1f 0xfa
574
575# CHECK: ngc      w3, w12
576# CHECK: ngc      wzr, w9
577# CHECK: ngc      w23, wzr
5780xe3 0x3 0xc 0x5a
5790xff 0x3 0x9 0x5a
5800xf7 0x3 0x1f 0x5a
581
582# CHECK: ngc      x29, x30
583# CHECK: ngc      xzr, x0
584# CHECK: ngc      x0, xzr
5850xfd 0x3 0x1e 0xda
5860xff 0x3 0x0 0xda
5870xe0 0x3 0x1f 0xda
588
589# CHECK: ngcs     w3, w12
590# CHECK: ngcs     wzr, w9
591# CHECK: ngcs     w23, wzr
5920xe3 0x3 0xc 0x7a
5930xff 0x3 0x9 0x7a
5940xf7 0x3 0x1f 0x7a
595
596# CHECK: ngcs     x29, x30
597# CHECK: ngcs     xzr, x0
598# CHECK: ngcs     x0, xzr
5990xfd 0x3 0x1e 0xfa
6000xff 0x3 0x0 0xfa
6010xe0 0x3 0x1f 0xfa
602
603#------------------------------------------------------------------------------
604# Compare and branch (immediate)
605#------------------------------------------------------------------------------
606
607# CHECK: sbfx     x1, x2, #3, #2
608# CHECK: asr      x3, x4, #63
609# CHECK: asr      wzr, wzr, #31
610# CHECK: sbfx     w12, w9, #0, #1
6110x41 0x10 0x43 0x93
6120x83 0xfc 0x7f 0x93
6130xff 0x7f 0x1f 0x13
6140x2c 0x1 0x0 0x13
615
616# CHECK: ubfiz    x4, x5, #52, #11
617# CHECK: ubfx     xzr, x4, #0, #1
618# CHECK: ubfiz    x4, xzr, #1, #6
619# CHECK: lsr      x5, x6, #12
6200xa4 0x28 0x4c 0xd3
6210x9f 0x0 0x40 0xd3
6220xe4 0x17 0x7f 0xd3
6230xc5 0xfc 0x4c 0xd3
624
625# CHECK: bfi      x4, x5, #52, #11
626# CHECK: bfxil    xzr, x4, #0, #1
627# CHECK: bfc      x4, #1, #6
628# CHECK: bfxil    x5, x6, #12, #52
6290xa4 0x28 0x4c 0xb3
6300x9f 0x0 0x40 0xb3
6310xe4 0x17 0x7f 0xb3
6320xc5 0xfc 0x4c 0xb3
633
634# CHECK: sxtb     w1, w2
635# CHECK: sxtb     xzr, w3
636# CHECK: sxth     w9, w10
637# CHECK: sxth     x0, w1
638# CHECK: sxtw     x3, w30
6390x41 0x1c 0x0 0x13
6400x7f 0x1c 0x40 0x93
6410x49 0x3d 0x0 0x13
6420x20 0x3c 0x40 0x93
6430xc3 0x7f 0x40 0x93
644
645# CHECK: uxtb     w1, w2
646# CHECK: uxth     w9, w10
647# CHECK: ubfx     x3, x30, #0, #32
6480x41 0x1c 0x0 0x53
6490x49 0x3d 0x0 0x53
6500xc3 0x7f 0x40 0xd3
651
652# CHECK: asr      w3, w2, #0
653# CHECK: asr      w9, w10, #31
654# CHECK: asr      x20, x21, #63
655# CHECK: asr      w1, wzr, #3
6560x43 0x7c 0x0 0x13
6570x49 0x7d 0x1f 0x13
6580xb4 0xfe 0x7f 0x93
6590xe1 0x7f 0x3 0x13
660
661# CHECK: lsr      w3, w2, #0
662# CHECK: lsr      w9, w10, #31
663# CHECK: lsr      x20, x21, #63
664# CHECK: lsr      wzr, wzr, #3
6650x43 0x7c 0x0 0x53
6660x49 0x7d 0x1f 0x53
6670xb4 0xfe 0x7f 0xd3
6680xff 0x7f 0x3 0x53
669
670# CHECK: lsr      w3, w2, #0
671# CHECK: lsl      w9, w10, #31
672# CHECK: lsl      x20, x21, #63
673# CHECK: lsl      w1, wzr, #3
6740x43 0x7c 0x0 0x53
6750x49 0x1 0x1 0x53
6760xb4 0x2 0x41 0xd3
6770xe1 0x73 0x1d 0x53
678
679# CHECK: sbfx     w9, w10, #0, #1
680# CHECK: sbfiz    x2, x3, #63, #1
681# CHECK: asr      x19, x20, #0
682# CHECK: sbfiz    x9, x10, #5, #59
683# CHECK: asr      w9, w10, #0
684# CHECK: sbfiz    w11, w12, #31, #1
685# CHECK: sbfiz    w13, w14, #29, #3
686# CHECK: sbfiz    xzr, xzr, #10, #11
6870x49 0x1 0x0 0x13
6880x62 0x0 0x41 0x93
6890x93 0xfe 0x40 0x93
6900x49 0xe9 0x7b 0x93
6910x49 0x7d 0x0 0x13
6920x8b 0x1 0x1 0x13
6930xcd 0x9 0x3 0x13
6940xff 0x2b 0x76 0x93
695
696# CHECK: sbfx     w9, w10, #0, #1
697# CHECK: asr      x2, x3, #63
698# CHECK: asr      x19, x20, #0
699# CHECK: asr      x9, x10, #5
700# CHECK: asr      w9, w10, #0
701# CHECK: asr      w11, w12, #31
702# CHECK: asr      w13, w14, #29
703# CHECK: sbfx     xzr, xzr, #10, #11
7040x49 0x1 0x0 0x13
7050x62 0xfc 0x7f 0x93
7060x93 0xfe 0x40 0x93
7070x49 0xfd 0x45 0x93
7080x49 0x7d 0x0 0x13
7090x8b 0x7d 0x1f 0x13
7100xcd 0x7d 0x1d 0x13
7110xff 0x53 0x4a 0x93
712
713# CHECK: bfxil    w9, w10, #0, #1
714# CHECK: bfi      x2, x3, #63, #1
715# CHECK: bfxil    x19, x20, #0, #64
716# CHECK: bfi      x9, x10, #5, #59
717# CHECK: bfxil    w9, w10, #0, #32
718# CHECK: bfi      w11, w12, #31, #1
719# CHECK: bfi      w13, w14, #29, #3
720# CHECK: bfc      xzr, #10, #11
7210x49 0x1 0x0 0x33
7220x62 0x0 0x41 0xb3
7230x93 0xfe 0x40 0xb3
7240x49 0xe9 0x7b 0xb3
7250x49 0x7d 0x0 0x33
7260x8b 0x1 0x1 0x33
7270xcd 0x9 0x3 0x33
7280xff 0x2b 0x76 0xb3
729
730# CHECK: bfxil    w9, w10, #0, #1
731# CHECK: bfxil    x2, x3, #63, #1
732# CHECK: bfxil    x19, x20, #0, #64
733# CHECK: bfxil    x9, x10, #5, #59
734# CHECK: bfxil    w9, w10, #0, #32
735# CHECK: bfxil    w11, w12, #31, #1
736# CHECK: bfxil    w13, w14, #29, #3
737# CHECK: bfxil    xzr, xzr, #10, #11
7380x49 0x1 0x0 0x33
7390x62 0xfc 0x7f 0xb3
7400x93 0xfe 0x40 0xb3
7410x49 0xfd 0x45 0xb3
7420x49 0x7d 0x0 0x33
7430x8b 0x7d 0x1f 0x33
7440xcd 0x7d 0x1d 0x33
7450xff 0x53 0x4a 0xb3
746
747# CHECK: ubfx     w9, w10, #0, #1
748# CHECK: lsl      x2, x3, #63
749# CHECK: lsr      x19, x20, #0
750# CHECK: lsl      x9, x10, #5
751# CHECK: lsr      w9, w10, #0
752# CHECK: lsl      w11, w12, #31
753# CHECK: lsl      w13, w14, #29
754# CHECK: ubfiz    xzr, xzr, #10, #11
7550x49 0x1 0x0 0x53
7560x62 0x0 0x41 0xd3
7570x93 0xfe 0x40 0xd3
7580x49 0xe9 0x7b 0xd3
7590x49 0x7d 0x0 0x53
7600x8b 0x1 0x1 0x53
7610xcd 0x9 0x3 0x53
7620xff 0x2b 0x76 0xd3
763
764# CHECK: ubfx     w9, w10, #0, #1
765# CHECK: lsr      x2, x3, #63
766# CHECK: lsr      x19, x20, #0
767# CHECK: lsr      x9, x10, #5
768# CHECK: lsr      w9, w10, #0
769# CHECK: lsr      w11, w12, #31
770# CHECK: lsr      w13, w14, #29
771# CHECK: ubfx     xzr, xzr, #10, #11
7720x49 0x1 0x0 0x53
7730x62 0xfc 0x7f 0xd3
7740x93 0xfe 0x40 0xd3
7750x49 0xfd 0x45 0xd3
7760x49 0x7d 0x0 0x53
7770x8b 0x7d 0x1f 0x53
7780xcd 0x7d 0x1d 0x53
7790xff 0x53 0x4a 0xd3
780
781
782#------------------------------------------------------------------------------
783# Compare and branch (immediate)
784#------------------------------------------------------------------------------
785
786# CHECK: cbz      w5, #4
787# CHECK: cbz      x5, #0
788# CHECK: cbnz     x2, #-4
789# CHECK: cbnz     x26, #1048572
7900x25 0x0 0x0 0x34
7910x05 0x0 0x0 0xb4
7920xe2 0xff 0xff 0xb5
7930xfa 0xff 0x7f 0xb5
794
795# CHECK: cbz      wzr, #0
796# CHECK: cbnz     xzr, #0
7970x1f 0x0 0x0 0x34
7980x1f 0x0 0x0 0xb5
799
800#------------------------------------------------------------------------------
801# Conditional branch (immediate)
802#------------------------------------------------------------------------------
803
804# CHECK: b.ne #4
805# CHECK: b.ge #1048572
806# CHECK: b.ge #-4
8070x21 0x00 0x00 0x54
8080xea 0xff 0x7f 0x54
8090xea 0xff 0xff 0x54
810
811#------------------------------------------------------------------------------
812# Conditional compare (immediate)
813#------------------------------------------------------------------------------
814
815# CHECK: ccmp w1, #31, #0, eq
816# CHECK: ccmp w3, #0, #15, hs
817# CHECK: ccmp wzr, #15, #13, hs
8180x20 0x08 0x5f 0x7a
8190x6f 0x28 0x40 0x7a
8200xed 0x2b 0x4f 0x7a
821
822# CHECK: ccmp x9, #31, #0, le
823# CHECK: ccmp x3, #0, #15, gt
824# CHECK: ccmp xzr, #5, #7, ne
8250x20 0xd9 0x5f 0xfa
8260x6f 0xc8 0x40 0xfa
8270xe7 0x1b 0x45 0xfa
828
829# CHECK: ccmn w1, #31, #0, eq
830# CHECK: ccmn w3, #0, #15, hs
831# CHECK: ccmn wzr, #15, #13, hs
8320x20 0x08 0x5f 0x3a
8330x6f 0x28 0x40 0x3a
8340xed 0x2b 0x4f 0x3a
835
836# CHECK: ccmn x9, #31, #0, le
837# CHECK: ccmn x3, #0, #15, gt
838# CHECK: ccmn xzr, #5, #7, ne
8390x20 0xd9 0x5f 0xba
8400x6f 0xc8 0x40 0xba
8410xe7 0x1b 0x45 0xba
842
843#------------------------------------------------------------------------------
844# Conditional compare (register)
845#------------------------------------------------------------------------------
846
847# CHECK: ccmp w1, wzr, #0, eq
848# CHECK: ccmp w3, w0, #15, hs
849# CHECK: ccmp wzr, w15, #13, hs
8500x20 0x00 0x5f 0x7a
8510x6f 0x20 0x40 0x7a
8520xed 0x23 0x4f 0x7a
853
854# CHECK: ccmp x9, xzr, #0, le
855# CHECK: ccmp x3, x0, #15, gt
856# CHECK: ccmp xzr, x5, #7, ne
8570x20 0xd1 0x5f 0xfa
8580x6f 0xc0 0x40 0xfa
8590xe7 0x13 0x45 0xfa
860
861# CHECK: ccmn w1, wzr, #0, eq
862# CHECK: ccmn w3, w0, #15, hs
863# CHECK: ccmn wzr, w15, #13, hs
8640x20 0x00 0x5f 0x3a
8650x6f 0x20 0x40 0x3a
8660xed 0x23 0x4f 0x3a
867
868# CHECK: ccmn x9, xzr, #0, le
869# CHECK: ccmn x3, x0, #15, gt
870# CHECK: ccmn xzr, x5, #7, ne
8710x20 0xd1 0x5f 0xba
8720x6f 0xc0 0x40 0xba
8730xe7 0x13 0x45 0xba
874
875#------------------------------------------------------------------------------
876# Conditional branch (immediate)
877#------------------------------------------------------------------------------
878# CHECK: csel     w1, w0, w19, ne
879# CHECK: csel     wzr, w5, w9, eq
880# CHECK: csel     w9, wzr, w30, gt
881# CHECK: csel     w1, w28, wzr, mi
882# CHECK: csel     x19, x23, x29, lt
883# CHECK: csel     xzr, x3, x4, ge
884# CHECK: csel     x5, xzr, x6, hs
885# CHECK: csel     x7, x8, xzr, lo
8860x1 0x10 0x93 0x1a
8870xbf 0x0 0x89 0x1a
8880xe9 0xc3 0x9e 0x1a
8890x81 0x43 0x9f 0x1a
8900xf3 0xb2 0x9d 0x9a
8910x7f 0xa0 0x84 0x9a
8920xe5 0x23 0x86 0x9a
8930x7 0x31 0x9f 0x9a
894
895# CHECK: csinc    w1, w0, w19, ne
896# CHECK: csinc    wzr, w5, w9, eq
897# CHECK: csinc    w9, wzr, w30, gt
898# CHECK: csinc    w1, w28, wzr, mi
899# CHECK: csinc    x19, x23, x29, lt
900# CHECK: csinc    xzr, x3, x4, ge
901# CHECK: csinc    x5, xzr, x6, hs
902# CHECK: csinc    x7, x8, xzr, lo
9030x1 0x14 0x93 0x1a
9040xbf 0x4 0x89 0x1a
9050xe9 0xc7 0x9e 0x1a
9060x81 0x47 0x9f 0x1a
9070xf3 0xb6 0x9d 0x9a
9080x7f 0xa4 0x84 0x9a
9090xe5 0x27 0x86 0x9a
9100x7 0x35 0x9f 0x9a
911
912# CHECK: csinv    w1, w0, w19, ne
913# CHECK: csinv    wzr, w5, w9, eq
914# CHECK: csinv    w9, wzr, w30, gt
915# CHECK: csinv    w1, w28, wzr, mi
916# CHECK: csinv    x19, x23, x29, lt
917# CHECK: csinv    xzr, x3, x4, ge
918# CHECK: csinv    x5, xzr, x6, hs
919# CHECK: csinv    x7, x8, xzr, lo
9200x1 0x10 0x93 0x5a
9210xbf 0x0 0x89 0x5a
9220xe9 0xc3 0x9e 0x5a
9230x81 0x43 0x9f 0x5a
9240xf3 0xb2 0x9d 0xda
9250x7f 0xa0 0x84 0xda
9260xe5 0x23 0x86 0xda
9270x7 0x31 0x9f 0xda
928
929# CHECK: csneg    w1, w0, w19, ne
930# CHECK: csneg    wzr, w5, w9, eq
931# CHECK: csneg    w9, wzr, w30, gt
932# CHECK: csneg    w1, w28, wzr, mi
933# CHECK: csneg    x19, x23, x29, lt
934# CHECK: csneg    xzr, x3, x4, ge
935# CHECK: csneg    x5, xzr, x6, hs
936# CHECK: csneg    x7, x8, xzr, lo
9370x1 0x14 0x93 0x5a
9380xbf 0x4 0x89 0x5a
9390xe9 0xc7 0x9e 0x5a
9400x81 0x47 0x9f 0x5a
9410xf3 0xb6 0x9d 0xda
9420x7f 0xa4 0x84 0xda
9430xe5 0x27 0x86 0xda
9440x7 0x35 0x9f 0xda
945
946# CHECK: cset    w3, eq
947# CHECK: cset    x9, pl
948# CHECK: csetm    w20, ne
949# CHECK: csetm    x30, ge
950# "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
951# CHECK: csinc    w2, wzr, wzr, al
952# CHECK: csinv    x3, xzr, xzr, nv
9530xe3 0x17 0x9f 0x1a
9540xe9 0x47 0x9f 0x9a
9550xf4 0x3 0x9f 0x5a
9560xfe 0xb3 0x9f 0xda
9570xe2,0xe7,0x9f,0x1a
9580xe3,0xf3,0x9f,0xda
959
960# CHECK: cinc    w3, w5, gt
961# CHECK: cinc    wzr, w4, le
962# CHECK: cset    w9, lt
963# CHECK: cinc    x3, x5, gt
964# CHECK: cinc    xzr, x4, le
965# CHECK: cset    x9, lt
966# "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
967# CHECK: csinc   w5, w6, w6, nv
968# CHECK: csinc   x1, x2, x2, al
9690xa3 0xd4 0x85 0x1a
9700x9f 0xc4 0x84 0x1a
9710xe9 0xa7 0x9f 0x1a
9720xa3 0xd4 0x85 0x9a
9730x9f 0xc4 0x84 0x9a
9740xe9 0xa7 0x9f 0x9a
9750xc5,0xf4,0x86,0x1a
9760x41,0xe4,0x82,0x9a
977
978# CHECK: cinv    w3, w5, gt
979# CHECK: cinv    wzr, w4, le
980# CHECK: csetm   w9, lt
981# CHECK: cinv    x3, x5, gt
982# CHECK: cinv    xzr, x4, le
983# CHECK: csetm   x9, lt
984# "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
985# CHECK: csinv   x1, x0, x0, al
986# CHECK: csinv   w9, w8, w8, nv
9870xa3 0xd0 0x85 0x5a
9880x9f 0xc0 0x84 0x5a
9890xe9 0xa3 0x9f 0x5a
9900xa3 0xd0 0x85 0xda
9910x9f 0xc0 0x84 0xda
9920xe9 0xa3 0x9f 0xda
9930x01 0xe0 0x80 0xda
9940x09,0xf1,0x88,0x5a
995
996# CHECK: cneg     w3, w5, gt
997# CHECK: cneg     wzr, w4, le
998# CHECK: cneg     w9, wzr, lt
999# CHECK: cneg     x3, x5, gt
1000# CHECK: cneg     xzr, x4, le
1001# CHECK: cneg     x9, xzr, lt
1002# "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1003# CHECK: csneg    x4, x8, x8, al
1004# CHECK: csinv    w9, w8, w8, nv
10050xa3 0xd4 0x85 0x5a
10060x9f 0xc4 0x84 0x5a
10070xe9 0xa7 0x9f 0x5a
10080xa3 0xd4 0x85 0xda
10090x9f 0xc4 0x84 0xda
10100xe9 0xa7 0x9f 0xda
10110x04,0xe5,0x88,0xda
10120x09,0xf1,0x88,0x5a
1013
1014#------------------------------------------------------------------------------
1015# Data-processing (1 source)
1016#------------------------------------------------------------------------------
1017
1018# CHECK: rbit	w0, w7
1019# CHECK: rbit   x18, x3
1020# CHECK: rev16	w17, w1
1021# CHECK: rev16	x5, x2
1022# CHECK: rev	w18, w0
1023# CHECK: rev32	x20, x1
10240xe0 0x00 0xc0 0x5a
10250x72 0x00 0xc0 0xda
10260x31 0x04 0xc0 0x5a
10270x45 0x04 0xc0 0xda
10280x12 0x08 0xc0 0x5a
10290x34 0x08 0xc0 0xda
1030
1031# CHECK: rev	x22, x2
1032# CHECK: clz	w24, w3
1033# CHECK: clz	x26, x4
1034# CHECK: cls	w3, w5
1035# CHECK: cls	x20, x5
10360x56 0x0c 0xc0 0xda
10370x78 0x10 0xc0 0x5a
10380x9a 0x10 0xc0 0xda
10390xa3 0x14 0xc0 0x5a
10400xb4 0x14 0xc0 0xda
1041
1042#------------------------------------------------------------------------------
1043# Data-processing (2 source)
1044#------------------------------------------------------------------------------
1045
1046# CHECK: udiv	w0, w7, w10
1047# CHECK: udiv	x9, x22, x4
1048# CHECK: sdiv	w12, w21, w0
1049# CHECK: sdiv	x13, x2, x1
1050# CHECK: lsl	w11, w12, w13
1051# CHECK: lsl	x14, x15, x16
1052# CHECK: lsr	w17, w18, w19
1053# CHECK: lsr	x20, x21, x22
1054# CHECK: asr	w23, w24, w25
1055# CHECK: asr	x26, x27, x28
1056# CHECK: ror	w0, w1, w2
1057# CHECK: ror    x3, x4, x5
10580xe0 0x08 0xca 0x1a
10590xc9 0x0a 0xc4 0x9a
10600xac 0x0e 0xc0 0x1a
10610x4d 0x0c 0xc1 0x9a
10620x8b 0x21 0xcd 0x1a
10630xee 0x21 0xd0 0x9a
10640x51 0x26 0xd3 0x1a
10650xb4 0x26 0xd6 0x9a
10660x17 0x2b 0xd9 0x1a
10670x7a 0x2b 0xdc 0x9a
10680x20 0x2c 0xc2 0x1a
10690x83 0x2c 0xc5 0x9a
1070
1071# CHECK: lsl	w6, w7, w8
1072# CHECK: lsl	x9, x10, x11
1073# CHECK: lsr	w12, w13, w14
1074# CHECK: lsr	x15, x16, x17
1075# CHECK: asr	w18, w19, w20
1076# CHECK: asr	x21, x22, x23
1077# CHECK: ror	w24, w25, w26
1078# CHECK: ror	x27, x28, x29
10790xe6 0x20 0xc8 0x1a
10800x49 0x21 0xcb 0x9a
10810xac 0x25 0xce 0x1a
10820x0f 0x26 0xd1 0x9a
10830x72 0x2a 0xd4 0x1a
10840xd5 0x2a 0xd7 0x9a
10850x38 0x2f 0xda 0x1a
10860x9b 0x2f 0xdd 0x9a
1087
1088#------------------------------------------------------------------------------
1089# Data-processing (3 sources)
1090#------------------------------------------------------------------------------
1091
1092# First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1093# and smulh have them).
1094
1095# CHECK: smulh    x30, x29, x28
1096# CHECK: smulh    xzr, x27, x26
1097# CHECK: umulh    x30, x29, x28
1098# CHECK: umulh    x23, x30, xzr
10990xbe 0x73 0x5c 0x9b
11000x7f 0x2f 0x5a 0x9b
11010xbe 0x3f 0xdc 0x9b
11020xd7 0x77 0xdf 0x9b
1103
1104# Now onto the boilerplate stuff
1105
1106# CHECK: madd     w1, w3, w7, w4
1107# CHECK: madd     wzr, w0, w9, w11
1108# CHECK: madd     w13, wzr, w4, w4
1109# CHECK: madd     w19, w30, wzr, w29
1110# CHECK: mul      w4, w5, w6
11110x61 0x10 0x7 0x1b
11120x1f 0x2c 0x9 0x1b
11130xed 0x13 0x4 0x1b
11140xd3 0x77 0x1f 0x1b
11150xa4 0x7c 0x6 0x1b
1116
1117# CHECK: madd     x1, x3, x7, x4
1118# CHECK: madd     xzr, x0, x9, x11
1119# CHECK: madd     x13, xzr, x4, x4
1120# CHECK: madd     x19, x30, xzr, x29
1121# CHECK: mul      x4, x5, x6
11220x61 0x10 0x7 0x9b
11230x1f 0x2c 0x9 0x9b
11240xed 0x13 0x4 0x9b
11250xd3 0x77 0x1f 0x9b
11260xa4 0x7c 0x6 0x9b
1127
1128# CHECK: msub     w1, w3, w7, w4
1129# CHECK: msub     wzr, w0, w9, w11
1130# CHECK: msub     w13, wzr, w4, w4
1131# CHECK: msub     w19, w30, wzr, w29
1132# CHECK: mneg     w4, w5, w6
11330x61 0x90 0x7 0x1b
11340x1f 0xac 0x9 0x1b
11350xed 0x93 0x4 0x1b
11360xd3 0xf7 0x1f 0x1b
11370xa4 0xfc 0x6 0x1b
1138
1139# CHECK: msub     x1, x3, x7, x4
1140# CHECK: msub     xzr, x0, x9, x11
1141# CHECK: msub     x13, xzr, x4, x4
1142# CHECK: msub     x19, x30, xzr, x29
1143# CHECK: mneg     x4, x5, x6
11440x61 0x90 0x7 0x9b
11450x1f 0xac 0x9 0x9b
11460xed 0x93 0x4 0x9b
11470xd3 0xf7 0x1f 0x9b
11480xa4 0xfc 0x6 0x9b
1149
1150# CHECK: smaddl   x3, w5, w2, x9
1151# CHECK: smaddl   xzr, w10, w11, x12
1152# CHECK: smaddl   x13, wzr, w14, x15
1153# CHECK: smaddl   x16, w17, wzr, x18
1154# CHECK: smull    x19, w20, w21
11550xa3 0x24 0x22 0x9b
11560x5f 0x31 0x2b 0x9b
11570xed 0x3f 0x2e 0x9b
11580x30 0x4a 0x3f 0x9b
11590x93 0x7e 0x35 0x9b
1160
1161# CHECK: smsubl   x3, w5, w2, x9
1162# CHECK: smsubl   xzr, w10, w11, x12
1163# CHECK: smsubl   x13, wzr, w14, x15
1164# CHECK: smsubl   x16, w17, wzr, x18
1165# CHECK: smnegl   x19, w20, w21
11660xa3 0xa4 0x22 0x9b
11670x5f 0xb1 0x2b 0x9b
11680xed 0xbf 0x2e 0x9b
11690x30 0xca 0x3f 0x9b
11700x93 0xfe 0x35 0x9b
1171
1172# CHECK: umaddl   x3, w5, w2, x9
1173# CHECK: umaddl   xzr, w10, w11, x12
1174# CHECK: umaddl   x13, wzr, w14, x15
1175# CHECK: umaddl   x16, w17, wzr, x18
1176# CHECK: umull    x19, w20, w21
11770xa3 0x24 0xa2 0x9b
11780x5f 0x31 0xab 0x9b
11790xed 0x3f 0xae 0x9b
11800x30 0x4a 0xbf 0x9b
11810x93 0x7e 0xb5 0x9b
1182
1183# CHECK: umsubl   x3, w5, w2, x9
1184# CHECK: umsubl   xzr, w10, w11, x12
1185# CHECK: umsubl   x13, wzr, w14, x15
1186# CHECK: umsubl   x16, w17, wzr, x18
1187# CHECK: umnegl   x19, w20, w21
11880xa3 0xa4 0xa2 0x9b
11890x5f 0xb1 0xab 0x9b
11900xed 0xbf 0xae 0x9b
11910x30 0xca 0xbf 0x9b
11920x93 0xfe 0xb5 0x9b
1193
1194# CHECK: smulh    x30, x29, x28
1195# CHECK: smulh    xzr, x27, x26
1196# CHECK: smulh    x25, xzr, x24
1197# CHECK: smulh    x23, x22, xzr
11980xbe 0x7f 0x5c 0x9b
11990x7f 0x7f 0x5a 0x9b
12000xf9 0x7f 0x58 0x9b
12010xd7 0x7e 0x5f 0x9b
1202
1203# CHECK: umulh    x30, x29, x28
1204# CHECK: umulh    xzr, x27, x26
1205# CHECK: umulh    x25, xzr, x24
1206# CHECK: umulh    x23, x22, xzr
12070xbe 0x7f 0xdc 0x9b
12080x7f 0x7f 0xda 0x9b
12090xf9 0x7f 0xd8 0x9b
12100xd7 0x7e 0xdf 0x9b
1211
1212# CHECK: mul      w3, w4, w5
1213# CHECK: mul      wzr, w6, w7
1214# CHECK: mul      w8, wzr, w9
1215# CHECK: mul      w10, w11, wzr
1216# CHECK: mul      x12, x13, x14
1217# CHECK: mul      xzr, x15, x16
1218# CHECK: mul      x17, xzr, x18
1219# CHECK: mul      x19, x20, xzr
12200x83 0x7c 0x5 0x1b
12210xdf 0x7c 0x7 0x1b
12220xe8 0x7f 0x9 0x1b
12230x6a 0x7d 0x1f 0x1b
12240xac 0x7d 0xe 0x9b
12250xff 0x7d 0x10 0x9b
12260xf1 0x7f 0x12 0x9b
12270x93 0x7e 0x1f 0x9b
1228
1229# CHECK: mneg     w21, w22, w23
1230# CHECK: mneg     wzr, w24, w25
1231# CHECK: mneg     w26, wzr, w27
1232# CHECK: mneg     w28, w29, wzr
12330xd5 0xfe 0x17 0x1b
12340x1f 0xff 0x19 0x1b
12350xfa 0xff 0x1b 0x1b
12360xbc 0xff 0x1f 0x1b
1237
1238# CHECK: smull    x11, w13, w17
1239# CHECK: umull    x11, w13, w17
1240# CHECK: smnegl   x11, w13, w17
1241# CHECK: umnegl   x11, w13, w17
12420xab 0x7d 0x31 0x9b
12430xab 0x7d 0xb1 0x9b
12440xab 0xfd 0x31 0x9b
12450xab 0xfd 0xb1 0x9b
1246
1247#------------------------------------------------------------------------------
1248# Exception generation
1249#------------------------------------------------------------------------------
1250
1251# CHECK: svc      #0
1252# CHECK: svc      #{{65535|0xffff}}
12530x1 0x0 0x0 0xd4
12540xe1 0xff 0x1f 0xd4
1255
1256# CHECK: hvc      #{{1|0x1}}
1257# CHECK: smc      #{{12000|0x2ee0}}
1258# CHECK: brk      #{{12|0xc}}
1259# CHECK: hlt      #{{123|0x7b}}
12600x22 0x0 0x0 0xd4
12610x3 0xdc 0x5 0xd4
12620x80 0x1 0x20 0xd4
12630x60 0xf 0x40 0xd4
1264
1265# CHECK: dcps1    #{{42|0x2a}}
1266# CHECK: dcps2    #{{9|0x9}}
1267# CHECK: dcps3    #{{1000|0x3e8}}
12680x41 0x5 0xa0 0xd4
12690x22 0x1 0xa0 0xd4
12700x3 0x7d 0xa0 0xd4
1271
1272# CHECK: dcps1
1273# CHECK: dcps2
1274# CHECK: dcps3
12750x1 0x0 0xa0 0xd4
12760x2 0x0 0xa0 0xd4
12770x3 0x0 0xa0 0xd4
1278
1279#------------------------------------------------------------------------------
1280# Extract (immediate)
1281#------------------------------------------------------------------------------
1282
1283# CHECK: extr     w3, w5, w7, #0
1284# CHECK: extr     w11, w13, w17, #31
12850xa3 0x0 0x87 0x13
12860xab 0x7d 0x91 0x13
1287
1288# CHECK: extr     x3, x5, x7, #15
1289# CHECK: extr     x11, x13, x17, #63
12900xa3 0x3c 0xc7 0x93
12910xab 0xfd 0xd1 0x93
1292
1293# CHECK: ror     x19, x23, #24
1294# CHECK: ror     x29, xzr, #63
1295# CHECK: ror     w9, w13, #31
12960xf3 0x62 0xd7 0x93
12970xfd 0xff 0xdf 0x93
12980xa9 0x7d 0x8d 0x13
1299
1300#------------------------------------------------------------------------------
1301# Floating-point compare
1302#------------------------------------------------------------------------------
1303
1304# CHECK: fcmp    s3, s5
1305# CHECK: fcmp    s31, #0.0
1306# CHECK: fcmp    s31, #0.0
13070x60 0x20 0x25 0x1e
13080xe8 0x23 0x20 0x1e
13090xe8 0x23 0x3f 0x1e
1310
1311# CHECK: fcmpe   s29, s30
1312# CHECK: fcmpe   s15, #0.0
1313# CHECK: fcmpe   s15, #0.0
13140xb0 0x23 0x3e 0x1e
13150xf8 0x21 0x20 0x1e
13160xf8 0x21 0x2f 0x1e
1317
1318# CHECK: fcmp    d4, d12
1319# CHECK: fcmp    d23, #0.0
1320# CHECK: fcmp    d23, #0.0
13210x80 0x20 0x6c 0x1e
13220xe8 0x22 0x60 0x1e
13230xe8 0x22 0x77 0x1e
1324
1325# CHECK: fcmpe   d26, d22
1326# CHECK: fcmpe   d29, #0.0
1327# CHECK: fcmpe   d29, #0.0
13280x50 0x23 0x76 0x1e
13290xb8 0x23 0x60 0x1e
13300xb8 0x23 0x6d 0x1e
1331
1332#------------------------------------------------------------------------------
1333# Floating-point conditional compare
1334#------------------------------------------------------------------------------
1335
1336# CHECK: fccmp s1, s31, #0, eq
1337# CHECK: fccmp s3, s0, #15, hs
1338# CHECK: fccmp s31, s15, #13, hs
13390x20 0x04 0x3f 0x1e
13400x6f 0x24 0x20 0x1e
13410xed 0x27 0x2f 0x1e
1342
1343# CHECK: fccmp d9, d31, #0, le
1344# CHECK: fccmp d3, d0, #15, gt
1345# CHECK: fccmp d31, d5, #7, ne
13460x20 0xd5 0x7f 0x1e
13470x6f 0xc4 0x60 0x1e
13480xe7 0x17 0x65 0x1e
1349
1350# CHECK: fccmpe s1, s31, #0, eq
1351# CHECK: fccmpe s3, s0, #15, hs
1352# CHECK: fccmpe s31, s15, #13, hs
13530x30 0x04 0x3f 0x1e
13540x7f 0x24 0x20 0x1e
13550xfd 0x27 0x2f 0x1e
1356
1357# CHECK: fccmpe d9, d31, #0, le
1358# CHECK: fccmpe d3, d0, #15, gt
1359# CHECK: fccmpe d31, d5, #7, ne
13600x30 0xd5 0x7f 0x1e
13610x7f 0xc4 0x60 0x1e
13620xf7 0x17 0x65 0x1e
1363
1364#-------------------------------------------------------------------------------
1365# Floating-point conditional compare
1366#-------------------------------------------------------------------------------
1367
1368# CHECK: fcsel s3, s20, s9, pl
1369# CHECK: fcsel d9, d10, d11, mi
13700x83 0x5e 0x29 0x1e
13710x49 0x4d 0x6b 0x1e
1372
1373#------------------------------------------------------------------------------
1374# Floating-point data-processing (1 source)
1375#------------------------------------------------------------------------------
1376
1377# CHECK: fmov     s0, s1
1378# CHECK: fabs     s2, s3
1379# CHECK: fneg     s4, s5
1380# CHECK: fsqrt    s6, s7
1381# CHECK: fcvt     d8, s9
1382# CHECK: fcvt     h10, s11
1383# CHECK: frintn   s12, s13
1384# CHECK: frintp   s14, s15
1385# CHECK: frintm   s16, s17
1386# CHECK: frintz   s18, s19
1387# CHECK: frinta   s20, s21
1388# CHECK: frintx   s22, s23
1389# CHECK: frinti   s24, s25
13900x20 0x40 0x20 0x1e
13910x62 0xc0 0x20 0x1e
13920xa4 0x40 0x21 0x1e
13930xe6 0xc0 0x21 0x1e
13940x28 0xc1 0x22 0x1e
13950x6a 0xc1 0x23 0x1e
13960xac 0x41 0x24 0x1e
13970xee 0xc1 0x24 0x1e
13980x30 0x42 0x25 0x1e
13990x72 0xc2 0x25 0x1e
14000xb4 0x42 0x26 0x1e
14010xf6 0x42 0x27 0x1e
14020x38 0xc3 0x27 0x1e
1403
1404# CHECK: fmov     d0, d1
1405# CHECK: fabs     d2, d3
1406# CHECK: fneg     d4, d5
1407# CHECK: fsqrt    d6, d7
1408# CHECK: fcvt     s8, d9
1409# CHECK: fcvt     h10, d11
1410# CHECK: frintn   d12, d13
1411# CHECK: frintp   d14, d15
1412# CHECK: frintm   d16, d17
1413# CHECK: frintz   d18, d19
1414# CHECK: frinta   d20, d21
1415# CHECK: frintx   d22, d23
1416# CHECK: frinti   d24, d25
14170x20 0x40 0x60 0x1e
14180x62 0xc0 0x60 0x1e
14190xa4 0x40 0x61 0x1e
14200xe6 0xc0 0x61 0x1e
14210x28 0x41 0x62 0x1e
14220x6a 0xc1 0x63 0x1e
14230xac 0x41 0x64 0x1e
14240xee 0xc1 0x64 0x1e
14250x30 0x42 0x65 0x1e
14260x72 0xc2 0x65 0x1e
14270xb4 0x42 0x66 0x1e
14280xf6 0x42 0x67 0x1e
14290x38 0xc3 0x67 0x1e
1430
1431# CHECK: fcvt     s26, h27
1432# CHECK: fcvt     d28, h29
14330x7a 0x43 0xe2 0x1e
14340xbc 0xc3 0xe2 0x1e
1435
1436#------------------------------------------------------------------------------
1437# Floating-point data-processing (2 sources)
1438#------------------------------------------------------------------------------
1439
1440# CHECK: fmul     s20, s19, s17
1441# CHECK: fdiv     s1, s2, s3
1442# CHECK: fadd     s4, s5, s6
1443# CHECK: fsub     s7, s8, s9
1444# CHECK: fmax     s10, s11, s12
1445# CHECK: fmin     s13, s14, s15
1446# CHECK: fmaxnm   s16, s17, s18
1447# CHECK: fminnm   s19, s20, s21
1448# CHECK: fnmul    s22, s23, s2
14490x74 0xa 0x31 0x1e
14500x41 0x18 0x23 0x1e
14510xa4 0x28 0x26 0x1e
14520x7 0x39 0x29 0x1e
14530x6a 0x49 0x2c 0x1e
14540xcd 0x59 0x2f 0x1e
14550x30 0x6a 0x32 0x1e
14560x93 0x7a 0x35 0x1e
14570xf6 0x8a 0x38 0x1e
1458
1459
1460# CHECK: fmul     d20, d19, d17
1461# CHECK: fdiv     d1, d2, d3
1462# CHECK: fadd     d4, d5, d6
1463# CHECK: fsub     d7, d8, d9
1464# CHECK: fmax     d10, d11, d12
1465# CHECK: fmin     d13, d14, d15
1466# CHECK: fmaxnm   d16, d17, d18
1467# CHECK: fminnm   d19, d20, d21
1468# CHECK: fnmul    d22, d23, d24
14690x74 0xa 0x71 0x1e
14700x41 0x18 0x63 0x1e
14710xa4 0x28 0x66 0x1e
14720x7 0x39 0x69 0x1e
14730x6a 0x49 0x6c 0x1e
14740xcd 0x59 0x6f 0x1e
14750x30 0x6a 0x72 0x1e
14760x93 0x7a 0x75 0x1e
14770xf6 0x8a 0x78 0x1e
1478
1479#------------------------------------------------------------------------------
1480# Floating-point data-processing (1 source)
1481#------------------------------------------------------------------------------
1482
1483# CHECK: fmadd s3, s5, s6, s31
1484# CHECK: fmadd d3, d13, d0, d23
1485# CHECK: fmsub s3, s5, s6, s31
1486# CHECK: fmsub d3, d13, d0, d23
1487# CHECK: fnmadd s3, s5, s6, s31
1488# CHECK: fnmadd d3, d13, d0, d23
1489# CHECK: fnmsub s3, s5, s6, s31
1490# CHECK: fnmsub d3, d13, d0, d23
14910xa3 0x7c 0x06 0x1f
14920xa3 0x5d 0x40 0x1f
14930xa3 0xfc 0x06 0x1f
14940xa3 0xdd 0x40 0x1f
14950xa3 0x7c 0x26 0x1f
14960xa3 0x5d 0x60 0x1f
14970xa3 0xfc 0x26 0x1f
14980xa3 0xdd 0x60 0x1f
1499
1500#------------------------------------------------------------------------------
1501# Floating-point <-> fixed-point conversion
1502#------------------------------------------------------------------------------
1503
1504# FP16: fcvtzs  w3, h5, #1
1505# FP16: fcvtzs  wzr, h20, #13
1506# FP16: fcvtzs  w19, h0, #32
15070xa3 0xfc 0xd8 0x1e
15080x9f 0xce 0xd8 0x1e
15090x13 0x80 0xd8 0x1e
1510
1511# FP16: fcvtzs  x3, h5, #1
1512# FP16: fcvtzs  x12, h30, #45
1513# FP16: fcvtzs  x19, h0, #64
15140xa3 0xfc 0xd8 0x9e
15150xcc 0x4f 0xd8 0x9e
15160x13 0x00 0xd8 0x9e
1517
1518# CHECK: fcvtzs  w3, s5, #1
1519# CHECK: fcvtzs  wzr, s20, #13
1520# CHECK: fcvtzs  w19, s0, #32
15210xa3 0xfc 0x18 0x1e
15220x9f 0xce 0x18 0x1e
15230x13 0x80 0x18 0x1e
1524
1525# CHECK: fcvtzs  x3, s5, #1
1526# CHECK: fcvtzs  x12, s30, #45
1527# CHECK: fcvtzs  x19, s0, #64
15280xa3 0xfc 0x18 0x9e
15290xcc 0x4f 0x18 0x9e
15300x13 0x00 0x18 0x9e
1531
1532# CHECK: fcvtzs  w3, d5, #1
1533# CHECK: fcvtzs  wzr, d20, #13
1534# CHECK: fcvtzs  w19, d0, #32
15350xa3 0xfc 0x58 0x1e
15360x9f 0xce 0x58 0x1e
15370x13 0x80 0x58 0x1e
1538
1539# CHECK: fcvtzs  x3, d5, #1
1540# CHECK: fcvtzs  x12, d30, #45
1541# CHECK: fcvtzs  x19, d0, #64
15420xa3 0xfc 0x58 0x9e
15430xcc 0x4f 0x58 0x9e
15440x13 0x00 0x58 0x9e
1545
1546# FP16: fcvtzu  w3, h5, #1
1547# FP16: fcvtzu  wzr, h20, #13
1548# FP16: fcvtzu  w19, h0, #32
15490xa3 0xfc 0xd9 0x1e
15500x9f 0xce 0xd9 0x1e
15510x13 0x80 0xd9 0x1e
1552
1553# FP16: fcvtzu  x3, h5, #1
1554# FP16: fcvtzu  x12, h30, #45
1555# FP16: fcvtzu  x19, h0, #64
15560xa3 0xfc 0xd9 0x9e
15570xcc 0x4f 0xd9 0x9e
15580x13 0x00 0xd9 0x9e
1559
1560# CHECK: fcvtzu  w3, s5, #1
1561# CHECK: fcvtzu  wzr, s20, #13
1562# CHECK: fcvtzu  w19, s0, #32
15630xa3 0xfc 0x19 0x1e
15640x9f 0xce 0x19 0x1e
15650x13 0x80 0x19 0x1e
1566
1567# CHECK: fcvtzu  x3, s5, #1
1568# CHECK: fcvtzu  x12, s30, #45
1569# CHECK: fcvtzu  x19, s0, #64
15700xa3 0xfc 0x19 0x9e
15710xcc 0x4f 0x19 0x9e
15720x13 0x00 0x19 0x9e
1573
1574# CHECK: fcvtzu  w3, d5, #1
1575# CHECK: fcvtzu  wzr, d20, #13
1576# CHECK: fcvtzu  w19, d0, #32
15770xa3 0xfc 0x59 0x1e
15780x9f 0xce 0x59 0x1e
15790x13 0x80 0x59 0x1e
1580
1581# CHECK: fcvtzu  x3, d5, #1
1582# CHECK: fcvtzu  x12, d30, #45
1583# CHECK: fcvtzu  x19, d0, #64
15840xa3 0xfc 0x59 0x9e
15850xcc 0x4f 0x59 0x9e
15860x13 0x00 0x59 0x9e
1587
1588# FP16: scvtf   h23, w19, #1
1589# FP16: scvtf   h31, wzr, #20
1590# FP16: scvtf   h14, w0, #32
15910x77 0xfe 0xc2 0x1e
15920xff 0xb3 0xc2 0x1e
15930x0e 0x80 0xc2 0x1e
1594
1595# FP16: scvtf   h23, x19, #1
1596# FP16: scvtf   h31, xzr, #20
1597# FP16: scvtf   h14, x0, #64
15980x77 0xfe 0xc2 0x9e
15990xff 0xb3 0xc2 0x9e
16000x0e 0x00 0xc2 0x9e
1601
1602# CHECK: scvtf   s23, w19, #1
1603# CHECK: scvtf   s31, wzr, #20
1604# CHECK: scvtf   s14, w0, #32
16050x77 0xfe 0x02 0x1e
16060xff 0xb3 0x02 0x1e
16070x0e 0x80 0x02 0x1e
1608
1609# CHECK: scvtf   s23, x19, #1
1610# CHECK: scvtf   s31, xzr, #20
1611# CHECK: scvtf   s14, x0, #64
16120x77 0xfe 0x02 0x9e
16130xff 0xb3 0x02 0x9e
16140x0e 0x00 0x02 0x9e
1615
1616# CHECK: scvtf   d23, w19, #1
1617# CHECK: scvtf   d31, wzr, #20
1618# CHECK: scvtf   d14, w0, #32
16190x77 0xfe 0x42 0x1e
16200xff 0xb3 0x42 0x1e
16210x0e 0x80 0x42 0x1e
1622
1623# CHECK: scvtf   d23, x19, #1
1624# CHECK: scvtf   d31, xzr, #20
1625# CHECK: scvtf   d14, x0, #64
16260x77 0xfe 0x42 0x9e
16270xff 0xb3 0x42 0x9e
16280x0e 0x00 0x42 0x9e
1629
1630# FP16: ucvtf   h23, w19, #1
1631# FP16: ucvtf   h31, wzr, #20
1632# FP16: ucvtf   h14, w0, #32
16330x77 0xfe 0xc3 0x1e
16340xff 0xb3 0xc3 0x1e
16350x0e 0x80 0xc3 0x1e
1636
1637# FP16: ucvtf   h23, x19, #1
1638# FP16: ucvtf   h31, xzr, #20
1639# FP16: ucvtf   h14, x0, #64
16400x77 0xfe 0xc3 0x9e
16410xff 0xb3 0xc3 0x9e
16420x0e 0x00 0xc3 0x9e
1643
1644# CHECK: ucvtf   s23, w19, #1
1645# CHECK: ucvtf   s31, wzr, #20
1646# CHECK: ucvtf   s14, w0, #32
16470x77 0xfe 0x03 0x1e
16480xff 0xb3 0x03 0x1e
16490x0e 0x80 0x03 0x1e
1650
1651# CHECK: ucvtf   s23, x19, #1
1652# CHECK: ucvtf   s31, xzr, #20
1653# CHECK: ucvtf   s14, x0, #64
16540x77 0xfe 0x03 0x9e
16550xff 0xb3 0x03 0x9e
16560x0e 0x00 0x03 0x9e
1657
1658# CHECK: ucvtf   d23, w19, #1
1659# CHECK: ucvtf   d31, wzr, #20
1660# CHECK: ucvtf   d14, w0, #32
16610x77 0xfe 0x43 0x1e
16620xff 0xb3 0x43 0x1e
16630x0e 0x80 0x43 0x1e
1664
1665# CHECK: ucvtf   d23, x19, #1
1666# CHECK: ucvtf   d31, xzr, #20
1667# CHECK: ucvtf   d14, x0, #64
16680x77 0xfe 0x43 0x9e
16690xff 0xb3 0x43 0x9e
16700x0e 0x00 0x43 0x9e
1671
1672#------------------------------------------------------------------------------
1673# Floating-point <-> integer conversion
1674#------------------------------------------------------------------------------
1675
1676# FP16: fcvtns   w3, h31
1677# FP16: fcvtns   xzr, h12
1678# FP16: fcvtnu   wzr, h12
1679# FP16: fcvtnu   x0, h0
16800xe3 0x3 0xe0 0x1e
16810x9f 0x1 0xe0 0x9e
16820x9f 0x1 0xe1 0x1e
16830x0 0x0 0xe1 0x9e
1684
1685# FP16: fcvtps   wzr, h9
1686# FP16: fcvtps   x12, h20
1687# FP16: fcvtpu   w30, h23
1688# FP16: fcvtpu   x29, h3
16890x3f 0x1 0xe8 0x1e
16900x8c 0x2 0xe8 0x9e
16910xfe 0x2 0xe9 0x1e
16920x7d 0x0 0xe9 0x9e
1693
1694# FP16: fcvtms   w2, h3
1695# FP16: fcvtms   x4, h5
1696# FP16: fcvtmu   w6, h7
1697# FP16: fcvtmu   x8, h9
16980x62 0x0 0xf0 0x1e
16990xa4 0x0 0xf0 0x9e
17000xe6 0x0 0xf1 0x1e
17010x28 0x1 0xf1 0x9e
1702
1703# FP16: fcvtzs   w10, h11
1704# FP16: fcvtzs   x12, h13
1705# FP16: fcvtzu   w14, h15
1706# FP16: fcvtzu   x15, h16
17070x6a 0x1 0xf8 0x1e
17080xac 0x1 0xf8 0x9e
17090xee 0x1 0xf9 0x1e
17100xf 0x2 0xf9 0x9e
1711
1712# FP16: scvtf    h17, w18
1713# FP16: scvtf    h19, x20
1714# FP16: ucvtf    h21, w22
1715# FP16: scvtf    h23, x24
17160x51 0x2 0xe2 0x1e
17170x93 0x2 0xe2 0x9e
17180xd5 0x2 0xe3 0x1e
17190x17 0x3 0xe2 0x9e
1720
1721# FP16: fcvtas   w25, h26
1722# FP16: fcvtas   x27, h28
1723# FP16: fcvtau   w29, h30
1724# FP16: fcvtau   xzr, h0
17250x59 0x3 0xe4 0x1e
17260x9b 0x3 0xe4 0x9e
17270xdd 0x3 0xe5 0x1e
17280x1f 0x0 0xe5 0x9e
1729
1730# CHECK: fcvtns   w3, s31
1731# CHECK: fcvtns   xzr, s12
1732# CHECK: fcvtnu   wzr, s12
1733# CHECK: fcvtnu   x0, s0
17340xe3 0x3 0x20 0x1e
17350x9f 0x1 0x20 0x9e
17360x9f 0x1 0x21 0x1e
17370x0 0x0 0x21 0x9e
1738
1739# CHECK: fcvtps   wzr, s9
1740# CHECK: fcvtps   x12, s20
1741# CHECK: fcvtpu   w30, s23
1742# CHECK: fcvtpu   x29, s3
17430x3f 0x1 0x28 0x1e
17440x8c 0x2 0x28 0x9e
17450xfe 0x2 0x29 0x1e
17460x7d 0x0 0x29 0x9e
1747
1748# CHECK: fcvtms   w2, s3
1749# CHECK: fcvtms   x4, s5
1750# CHECK: fcvtmu   w6, s7
1751# CHECK: fcvtmu   x8, s9
17520x62 0x0 0x30 0x1e
17530xa4 0x0 0x30 0x9e
17540xe6 0x0 0x31 0x1e
17550x28 0x1 0x31 0x9e
1756
1757# CHECK: fcvtzs   w10, s11
1758# CHECK: fcvtzs   x12, s13
1759# CHECK: fcvtzu   w14, s15
1760# CHECK: fcvtzu   x15, s16
17610x6a 0x1 0x38 0x1e
17620xac 0x1 0x38 0x9e
17630xee 0x1 0x39 0x1e
17640xf 0x2 0x39 0x9e
1765
1766# CHECK: scvtf    s17, w18
1767# CHECK: scvtf    s19, x20
1768# CHECK: ucvtf    s21, w22
1769# CHECK: scvtf    s23, x24
17700x51 0x2 0x22 0x1e
17710x93 0x2 0x22 0x9e
17720xd5 0x2 0x23 0x1e
17730x17 0x3 0x22 0x9e
1774
1775# CHECK: fcvtas   w25, s26
1776# CHECK: fcvtas   x27, s28
1777# CHECK: fcvtau   w29, s30
1778# CHECK: fcvtau   xzr, s0
17790x59 0x3 0x24 0x1e
17800x9b 0x3 0x24 0x9e
17810xdd 0x3 0x25 0x1e
17820x1f 0x0 0x25 0x9e
1783
1784# CHECK: fcvtns   w3, d31
1785# CHECK: fcvtns   xzr, d12
1786# CHECK: fcvtnu   wzr, d12
1787# CHECK: fcvtnu   x0, d0
17880xe3 0x3 0x60 0x1e
17890x9f 0x1 0x60 0x9e
17900x9f 0x1 0x61 0x1e
17910x0 0x0 0x61 0x9e
1792
1793# CHECK: fcvtps   wzr, d9
1794# CHECK: fcvtps   x12, d20
1795# CHECK: fcvtpu   w30, d23
1796# CHECK: fcvtpu   x29, d3
17970x3f 0x1 0x68 0x1e
17980x8c 0x2 0x68 0x9e
17990xfe 0x2 0x69 0x1e
18000x7d 0x0 0x69 0x9e
1801
1802# CHECK: fcvtms   w2, d3
1803# CHECK: fcvtms   x4, d5
1804# CHECK: fcvtmu   w6, d7
1805# CHECK: fcvtmu   x8, d9
18060x62 0x0 0x70 0x1e
18070xa4 0x0 0x70 0x9e
18080xe6 0x0 0x71 0x1e
18090x28 0x1 0x71 0x9e
1810
1811# CHECK: fcvtzs   w10, d11
1812# CHECK: fcvtzs   x12, d13
1813# CHECK: fcvtzu   w14, d15
1814# CHECK: fcvtzu   x15, d16
18150x6a 0x1 0x78 0x1e
18160xac 0x1 0x78 0x9e
18170xee 0x1 0x79 0x1e
18180xf 0x2 0x79 0x9e
1819
1820# CHECK: scvtf    d17, w18
1821# CHECK: scvtf    d19, x20
1822# CHECK: ucvtf    d21, w22
1823# CHECK: ucvtf    d23, x24
18240x51 0x2 0x62 0x1e
18250x93 0x2 0x62 0x9e
18260xd5 0x2 0x63 0x1e
18270x17 0x3 0x63 0x9e
1828
1829# CHECK: fcvtas   w25, d26
1830# CHECK: fcvtas   x27, d28
1831# CHECK: fcvtau   w29, d30
1832# CHECK: fcvtau   xzr, d0
18330x59 0x3 0x64 0x1e
18340x9b 0x3 0x64 0x9e
18350xdd 0x3 0x65 0x1e
18360x1f 0x0 0x65 0x9e
1837
1838# CHECK: fmov     w3, s9
1839# CHECK: fmov     s9, w3
18400x23 0x1 0x26 0x1e
18410x69 0x0 0x27 0x1e
1842
1843# CHECK: fmov     x20, d31
1844# CHECK: fmov     d1, x15
18450xf4 0x3 0x66 0x9e
18460xe1 0x1 0x67 0x9e
1847
1848# CHECK: fmov     x3, v12.d[1]
1849# CHECK: fmov     v1.d[1], x19
18500x83 0x1 0xae 0x9e
18510x61 0x2 0xaf 0x9e
1852
1853#------------------------------------------------------------------------------
1854# Floating-point immediate
1855#------------------------------------------------------------------------------
1856
1857# CHECK: fmov     s2, #0.12500000
1858# CHECK: fmov     s3, #1.00000000
1859# CHECK: fmov     d30, #16.00000000
18600x2 0x10 0x28 0x1e
18610x3 0x10 0x2e 0x1e
18620x1e 0x10 0x66 0x1e
1863
1864# CHECK: fmov     s4, #1.06250000
1865# CHECK: fmov     d10, #1.93750000
18660x4 0x30 0x2e 0x1e
18670xa 0xf0 0x6f 0x1e
1868
1869# CHECK: fmov     s12, #-1.00000000
18700xc 0x10 0x3e 0x1e
1871
1872# CHECK: fmov     d16, #8.50000000
18730x10 0x30 0x64 0x1e
1874
1875#------------------------------------------------------------------------------
1876# Load-register (literal)
1877#------------------------------------------------------------------------------
1878
1879# CHECK: ldr       w3, #0
1880# CHECK: ldr       x29, #4
1881# CHECK: ldrsw     xzr, #-4
18820x03 0x00 0x00 0x18
18830x3d 0x00 0x00 0x58
18840xff 0xff 0xff 0x98
1885
1886# CHECK: ldr       s0, #8
1887# CHECK: ldr       d0, #1048572
1888# CHECK: ldr       q0, #-1048576
18890x40 0x00 0x00 0x1c
18900xe0 0xff 0x7f 0x5c
18910x00 0x00 0x80 0x9c
1892
1893# CHECK: prfm      pldl1strm, #0
1894# CHECK: prfm      #22, #0
18950x01 0x00 0x00 0xd8
18960x16 0x00 0x00 0xd8
1897
1898#------------------------------------------------------------------------------
1899# Load/store exclusive
1900#------------------------------------------------------------------------------
1901
1902#CHECK: stxrb      w18, w8, [sp]
1903#CHECK: stxrh      w24, w15, [x16]
1904#CHECK: stxr       w5, w6, [x17]
1905#CHECK: stxr       w1, x10, [x21]
1906#CHECK: stxr       w1, x10, [x21]
19070xe8 0x7f 0x12 0x08
19080x0f 0x7e 0x18 0x48
19090x26 0x7e 0x05 0x88
19100xaa 0x7e 0x01 0xc8
19110xaa 0x7a 0x01 0xc8
1912
1913#CHECK: ldxrb      w30, [x0]
1914#CHECK: ldxrh      w17, [x4]
1915#CHECK: ldxr       w22, [sp]
1916#CHECK: ldxr       x11, [x29]
1917#CHECK: ldxr       x11, [x29]
1918#CHECK: ldxr       x11, [x29]
19190x1e 0x7c 0x5f 0x08
19200x91 0x7c 0x5f 0x48
19210xf6 0x7f 0x5f 0x88
19220xab 0x7f 0x5f 0xc8
19230xab 0x6f 0x5f 0xc8
19240xab 0x7f 0x5e 0xc8
1925
1926#CHECK: stxp       w12, w11, w10, [sp]
1927#CHECK: stxp       wzr, x27, x9, [x12]
19280xeb 0x2b 0x2c 0x88
19290x9b 0x25 0x3f 0xc8
1930
1931#CHECK: ldxp       w0, wzr, [sp]
1932#CHECK: ldxp       x17, x0, [x18]
1933#CHECK: ldxp       x17, x0, [x18]
19340xe0 0x7f 0x7f 0x88
19350x51 0x02 0x7f 0xc8
19360x51 0x02 0x7e 0xc8
1937
1938#CHECK: stlxrb     w12, w22, [x0]
1939#CHECK: stlxrh     w10, w1, [x1]
1940#CHECK: stlxr      w9, w2, [x2]
1941#CHECK: stlxr      w9, x3, [sp]
1942
19430x16 0xfc 0x0c 0x08
19440x21 0xfc 0x0a 0x48
19450x42 0xfc 0x09 0x88
19460xe3 0xff 0x09 0xc8
1947
1948#CHECK: ldaxrb     w8, [x4]
1949#CHECK: ldaxrh     w7, [x5]
1950#CHECK: ldaxr      w6, [sp]
1951#CHECK: ldaxr      x5, [x6]
1952#CHECK: ldaxr      x5, [x6]
1953#CHECK: ldaxr      x5, [x6]
19540x88 0xfc 0x5f 0x08
19550xa7 0xfc 0x5f 0x48
19560xe6 0xff 0x5f 0x88
19570xc5 0xfc 0x5f 0xc8
19580xc5 0xec 0x5f 0xc8
19590xc5 0xfc 0x5e 0xc8
1960
1961#CHECK: stlxp      w4, w5, w6, [sp]
1962#CHECK: stlxp      wzr, x6, x7, [x1]
19630xe5 0x9b 0x24 0x88
19640x26 0x9c 0x3f 0xc8
1965
1966#CHECK: ldaxp      w5, w18, [sp]
1967#CHECK: ldaxp      x6, x19, [x22]
1968#CHECK: ldaxp      x6, x19, [x22]
19690xe5 0xcb 0x7f 0x88
19700xc6 0xce 0x7f 0xc8
19710xc6 0xce 0x7e 0xc8
1972
1973#CHECK: stlrb      w24, [sp]
1974#CHECK: stlrh      w25, [x30]
1975#CHECK: stlr       w26, [x29]
1976#CHECK: stlr       x27, [x28]
1977#CHECK: stlr       x27, [x28]
1978#CHECK: stlr       x27, [x28]
19790xf8 0xff 0x9f 0x08
19800xd9 0xff 0x9f 0x48
19810xba 0xff 0x9f 0x88
19820x9b 0xff 0x9f 0xc8
19830x9b 0xef 0x9f 0xc8
19840x9b 0xff 0x9e 0xc8
1985
1986#CHECK: ldarb      w23, [sp]
1987#CHECK: ldarh      w22, [x30]
1988#CHECK: ldar       wzr, [x29]
1989#CHECK: ldar       x21, [x28]
1990#CHECK: ldar       x21, [x28]
1991#CHECK: ldar       x21, [x28]
19920xf7 0xff 0xdf 0x08
19930xd6 0xff 0xdf 0x48
19940xbf 0xff 0xdf 0x88
19950x95 0xff 0xdf 0xc8
19960x95 0xef 0xdf 0xc8
19970x95 0xff 0xde 0xc8
1998
1999#------------------------------------------------------------------------------
2000# Load/store (unscaled  immediate)
2001#------------------------------------------------------------------------------
2002
2003# CHECK: sturb    w9, [sp]
2004# CHECK: sturh    wzr, [x12, #255]
2005# CHECK: stur     w16, [x0, #-256]
2006# CHECK: stur     x28, [x14, #1]
20070xe9 0x3 0x0 0x38
20080x9f 0xf1 0xf 0x78
20090x10 0x0 0x10 0xb8
20100xdc 0x11 0x0 0xf8
2011
2012# CHECK: ldurb    w1, [x20, #255]
2013# CHECK: ldurh    w20, [x1, #255]
2014# CHECK: ldur     w12, [sp, #255]
2015# CHECK: ldur     xzr, [x12, #255]
20160x81 0xf2 0x4f 0x38
20170x34 0xf0 0x4f 0x78
20180xec 0xf3 0x4f 0xb8
20190x9f 0xf1 0x4f 0xf8
2020
2021# CHECK: ldursb   x9, [x7, #-256]
2022# CHECK: ldursh   x17, [x19, #-256]
2023# CHECK: ldursw   x20, [x15, #-256]
2024# CHECK: prfum    pldl2keep, [sp, #-256]
2025# CHECK: ldursb   w19, [x1, #-256]
2026# CHECK: ldursh   w15, [x21, #-256]
20270xe9 0x0 0x90 0x38
20280x71 0x2 0x90 0x78
20290xf4 0x1 0x90 0xb8
20300xe2 0x3 0x90 0xf8
20310x33 0x0 0xd0 0x38
20320xaf 0x2 0xd0 0x78
2033
2034# CHECK: stur     b0, [sp, #1]
2035# CHECK: stur     h12, [x12, #-1]
2036# CHECK: stur     s15, [x0, #255]
2037# CHECK: stur     d31, [x5, #25]
2038# CHECK: stur     q9, [x5]
20390xe0 0x13 0x0 0x3c
20400x8c 0xf1 0x1f 0x7c
20410xf 0xf0 0xf 0xbc
20420xbf 0x90 0x1 0xfc
20430xa9 0x0 0x80 0x3c
2044
2045# CHECK: ldur     b3, [sp]
2046# CHECK: ldur     h5, [x4, #-256]
2047# CHECK: ldur     s7, [x12, #-1]
2048# CHECK: ldur     d11, [x19, #4]
2049# CHECK: ldur     q13, [x1, #2]
20500xe3 0x3 0x40 0x3c
20510x85 0x0 0x50 0x7c
20520x87 0xf1 0x5f 0xbc
20530x6b 0x42 0x40 0xfc
20540x2d 0x20 0xc0 0x3c
2055
2056#------------------------------------------------------------------------------
2057# Load/store (immediate post-indexed)
2058#------------------------------------------------------------------------------
2059
2060# E.g. "str xzr, [sp], #4" is *not* unpredictable
2061# CHECK-NOT: warning: potentially undefined instruction encoding
20620xff 0x47 0x40 0xb8
2063
2064# CHECK: strb     w9, [x2], #255
2065# CHECK: strb     w10, [x3], #1
2066# CHECK: strb     w10, [x3], #-256
2067# CHECK: strh     w9, [x2], #255
2068# CHECK: strh     w9, [x2], #1
2069# CHECK: strh     w10, [x3], #-256
20700x49 0xf4 0xf 0x38
20710x6a 0x14 0x0 0x38
20720x6a 0x4 0x10 0x38
20730x49 0xf4 0xf 0x78
20740x49 0x14 0x0 0x78
20750x6a 0x4 0x10 0x78
2076
2077# CHECK: str      w19, [sp], #255
2078# CHECK: str      w20, [x30], #1
2079# CHECK: str      w21, [x12], #-256
2080# CHECK: str      xzr, [x9], #255
2081# CHECK: str      x2, [x3], #1
2082# CHECK: str      x19, [x12], #-256
20830xf3 0xf7 0xf 0xb8
20840xd4 0x17 0x0 0xb8
20850x95 0x5 0x10 0xb8
20860x3f 0xf5 0xf 0xf8
20870x62 0x14 0x0 0xf8
20880x93 0x5 0x10 0xf8
2089
2090# CHECK: ldrb     w9, [x2], #255
2091# CHECK: ldrb     w10, [x3], #1
2092# CHECK: ldrb     w10, [x3], #-256
2093# CHECK: ldrh     w9, [x2], #255
2094# CHECK: ldrh     w9, [x2], #1
2095# CHECK: ldrh     w10, [x3], #-256
20960x49 0xf4 0x4f 0x38
20970x6a 0x14 0x40 0x38
20980x6a 0x4 0x50 0x38
20990x49 0xf4 0x4f 0x78
21000x49 0x14 0x40 0x78
21010x6a 0x4 0x50 0x78
2102
2103# CHECK: ldr      w19, [sp], #255
2104# CHECK: ldr      w20, [x30], #1
2105# CHECK: ldr      w21, [x12], #-256
2106# CHECK: ldr      xzr, [x9], #255
2107# CHECK: ldr      x2, [x3], #1
2108# CHECK: ldr      x19, [x12], #-256
21090xf3 0xf7 0x4f 0xb8
21100xd4 0x17 0x40 0xb8
21110x95 0x5 0x50 0xb8
21120x3f 0xf5 0x4f 0xf8
21130x62 0x14 0x40 0xf8
21140x93 0x5 0x50 0xf8
2115
2116# CHECK: ldrsb    xzr, [x9], #255
2117# CHECK: ldrsb    x2, [x3], #1
2118# CHECK: ldrsb    x19, [x12], #-256
2119# CHECK: ldrsh    xzr, [x9], #255
2120# CHECK: ldrsh    x2, [x3], #1
2121# CHECK: ldrsh    x19, [x12], #-256
2122# CHECK: ldrsw    xzr, [x9], #255
2123# CHECK: ldrsw    x2, [x3], #1
2124# CHECK: ldrsw    x19, [x12], #-256
21250x3f 0xf5 0x8f 0x38
21260x62 0x14 0x80 0x38
21270x93 0x5 0x90 0x38
21280x3f 0xf5 0x8f 0x78
21290x62 0x14 0x80 0x78
21300x93 0x5 0x90 0x78
21310x3f 0xf5 0x8f 0xb8
21320x62 0x14 0x80 0xb8
21330x93 0x5 0x90 0xb8
2134
2135# CHECK: ldrsb    wzr, [x9], #255
2136# CHECK: ldrsb    w2, [x3], #1
2137# CHECK: ldrsb    w19, [x12], #-256
2138# CHECK: ldrsh    wzr, [x9], #255
2139# CHECK: ldrsh    w2, [x3], #1
2140# CHECK: ldrsh    w19, [x12], #-256
21410x3f 0xf5 0xcf 0x38
21420x62 0x14 0xc0 0x38
21430x93 0x5 0xd0 0x38
21440x3f 0xf5 0xcf 0x78
21450x62 0x14 0xc0 0x78
21460x93 0x5 0xd0 0x78
2147
2148# CHECK: str      b0, [x0], #255
2149# CHECK: str      b3, [x3], #1
2150# CHECK: str      b5, [sp], #-256
2151# CHECK: str      h10, [x10], #255
2152# CHECK: str      h13, [x23], #1
2153# CHECK: str      h15, [sp], #-256
2154# CHECK: str      s20, [x20], #255
2155# CHECK: str      s23, [x23], #1
2156# CHECK: str      s25, [x0], #-256
2157# CHECK: str      d20, [x20], #255
2158# CHECK: str      d23, [x23], #1
2159# CHECK: str      d25, [x0], #-256
21600x0 0xf4 0xf 0x3c
21610x63 0x14 0x0 0x3c
21620xe5 0x7 0x10 0x3c
21630x4a 0xf5 0xf 0x7c
21640xed 0x16 0x0 0x7c
21650xef 0x7 0x10 0x7c
21660x94 0xf6 0xf 0xbc
21670xf7 0x16 0x0 0xbc
21680x19 0x4 0x10 0xbc
21690x94 0xf6 0xf 0xfc
21700xf7 0x16 0x0 0xfc
21710x19 0x4 0x10 0xfc
2172
2173# CHECK: ldr      b0, [x0], #255
2174# CHECK: ldr      b3, [x3], #1
2175# CHECK: ldr      b5, [sp], #-256
2176# CHECK: ldr      h10, [x10], #255
2177# CHECK: ldr      h13, [x23], #1
2178# CHECK: ldr      h15, [sp], #-256
2179# CHECK: ldr      s20, [x20], #255
2180# CHECK: ldr      s23, [x23], #1
2181# CHECK: ldr      s25, [x0], #-256
2182# CHECK: ldr      d20, [x20], #255
2183# CHECK: ldr      d23, [x23], #1
2184# CHECK: ldr      d25, [x0], #-256
21850x0 0xf4 0x4f 0x3c
21860x63 0x14 0x40 0x3c
21870xe5 0x7 0x50 0x3c
21880x4a 0xf5 0x4f 0x7c
21890xed 0x16 0x40 0x7c
21900xef 0x7 0x50 0x7c
21910x94 0xf6 0x4f 0xbc
21920xf7 0x16 0x40 0xbc
21930x19 0x4 0x50 0xbc
21940x94 0xf6 0x4f 0xfc
21950xf7 0x16 0x40 0xfc
21960x19 0x4 0x50 0xfc
21970x34 0xf4 0xcf 0x3c
2198
2199# CHECK: ldr      q20, [x1], #255
2200# CHECK: ldr      q23, [x9], #1
2201# CHECK: ldr      q25, [x20], #-256
2202# CHECK: str      q10, [x1], #255
2203# CHECK: str      q22, [sp], #1
2204# CHECK: str      q21, [x20], #-256
22050x37 0x15 0xc0 0x3c
22060x99 0x6 0xd0 0x3c
22070x2a 0xf4 0x8f 0x3c
22080xf6 0x17 0x80 0x3c
22090x95 0x6 0x90 0x3c
2210
2211#-------------------------------------------------------------------------------
2212# Load-store register (immediate pre-indexed)
2213#-------------------------------------------------------------------------------
2214
2215# E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2216# CHECK-NOT: warning: potentially undefined instruction encoding
22170xff 0xf 0x40 0xf8
2218
2219# CHECK: ldr      x3, [x4, #0]!
22200x83 0xc 0x40 0xf8
2221
2222# CHECK: strb     w9, [x2, #255]!
2223# CHECK: strb     w10, [x3, #1]!
2224# CHECK: strb     w10, [x3, #-256]!
2225# CHECK: strh     w9, [x2, #255]!
2226# CHECK: strh     w9, [x2, #1]!
2227# CHECK: strh     w10, [x3, #-256]!
22280x49 0xfc 0xf 0x38
22290x6a 0x1c 0x0 0x38
22300x6a 0xc 0x10 0x38
22310x49 0xfc 0xf 0x78
22320x49 0x1c 0x0 0x78
22330x6a 0xc 0x10 0x78
2234
2235# CHECK: str      w19, [sp, #255]!
2236# CHECK: str      w20, [x30, #1]!
2237# CHECK: str      w21, [x12, #-256]!
2238# CHECK: str      xzr, [x9, #255]!
2239# CHECK: str      x2, [x3, #1]!
2240# CHECK: str      x19, [x12, #-256]!
22410xf3 0xff 0xf 0xb8
22420xd4 0x1f 0x0 0xb8
22430x95 0xd 0x10 0xb8
22440x3f 0xfd 0xf 0xf8
22450x62 0x1c 0x0 0xf8
22460x93 0xd 0x10 0xf8
2247
2248# CHECK: ldrb     w9, [x2, #255]!
2249# CHECK: ldrb     w10, [x3, #1]!
2250# CHECK: ldrb     w10, [x3, #-256]!
2251# CHECK: ldrh     w9, [x2, #255]!
2252# CHECK: ldrh     w9, [x2, #1]!
2253# CHECK: ldrh     w10, [x3, #-256]!
22540x49 0xfc 0x4f 0x38
22550x6a 0x1c 0x40 0x38
22560x6a 0xc 0x50 0x38
22570x49 0xfc 0x4f 0x78
22580x49 0x1c 0x40 0x78
22590x6a 0xc 0x50 0x78
2260
2261# CHECK: ldr      w19, [sp, #255]!
2262# CHECK: ldr      w20, [x30, #1]!
2263# CHECK: ldr      w21, [x12, #-256]!
2264# CHECK: ldr      xzr, [x9, #255]!
2265# CHECK: ldr      x2, [x3, #1]!
2266# CHECK: ldr      x19, [x12, #-256]!
22670xf3 0xff 0x4f 0xb8
22680xd4 0x1f 0x40 0xb8
22690x95 0xd 0x50 0xb8
22700x3f 0xfd 0x4f 0xf8
22710x62 0x1c 0x40 0xf8
22720x93 0xd 0x50 0xf8
2273
2274# CHECK: ldrsb    xzr, [x9, #255]!
2275# CHECK: ldrsb    x2, [x3, #1]!
2276# CHECK: ldrsb    x19, [x12, #-256]!
2277# CHECK: ldrsh    xzr, [x9, #255]!
2278# CHECK: ldrsh    x2, [x3, #1]!
2279# CHECK: ldrsh    x19, [x12, #-256]!
2280# CHECK: ldrsw    xzr, [x9, #255]!
2281# CHECK: ldrsw    x2, [x3, #1]!
2282# CHECK: ldrsw    x19, [x12, #-256]!
22830x3f 0xfd 0x8f 0x38
22840x62 0x1c 0x80 0x38
22850x93 0xd 0x90 0x38
22860x3f 0xfd 0x8f 0x78
22870x62 0x1c 0x80 0x78
22880x93 0xd 0x90 0x78
22890x3f 0xfd 0x8f 0xb8
22900x62 0x1c 0x80 0xb8
22910x93 0xd 0x90 0xb8
2292
2293# CHECK: ldrsb    wzr, [x9, #255]!
2294# CHECK: ldrsb    w2, [x3, #1]!
2295# CHECK: ldrsb    w19, [x12, #-256]!
2296# CHECK: ldrsh    wzr, [x9, #255]!
2297# CHECK: ldrsh    w2, [x3, #1]!
2298# CHECK: ldrsh    w19, [x12, #-256]!
22990x3f 0xfd 0xcf 0x38
23000x62 0x1c 0xc0 0x38
23010x93 0xd 0xd0 0x38
23020x3f 0xfd 0xcf 0x78
23030x62 0x1c 0xc0 0x78
23040x93 0xd 0xd0 0x78
2305
2306# CHECK: str      b0, [x0, #255]!
2307# CHECK: str      b3, [x3, #1]!
2308# CHECK: str      b5, [sp, #-256]!
2309# CHECK: str      h10, [x10, #255]!
2310# CHECK: str      h13, [x23, #1]!
2311# CHECK: str      h15, [sp, #-256]!
2312# CHECK: str      s20, [x20, #255]!
2313# CHECK: str      s23, [x23, #1]!
2314# CHECK: str      s25, [x0, #-256]!
2315# CHECK: str      d20, [x20, #255]!
2316# CHECK: str      d23, [x23, #1]!
2317# CHECK: str      d25, [x0, #-256]!
23180x0 0xfc 0xf 0x3c
23190x63 0x1c 0x0 0x3c
23200xe5 0xf 0x10 0x3c
23210x4a 0xfd 0xf 0x7c
23220xed 0x1e 0x0 0x7c
23230xef 0xf 0x10 0x7c
23240x94 0xfe 0xf 0xbc
23250xf7 0x1e 0x0 0xbc
23260x19 0xc 0x10 0xbc
23270x94 0xfe 0xf 0xfc
23280xf7 0x1e 0x0 0xfc
23290x19 0xc 0x10 0xfc
2330
2331# CHECK: ldr      b0, [x0, #255]!
2332# CHECK: ldr      b3, [x3, #1]!
2333# CHECK: ldr      b5, [sp, #-256]!
2334# CHECK: ldr      h10, [x10, #255]!
2335# CHECK: ldr      h13, [x23, #1]!
2336# CHECK: ldr      h15, [sp, #-256]!
2337# CHECK: ldr      s20, [x20, #255]!
2338# CHECK: ldr      s23, [x23, #1]!
2339# CHECK: ldr      s25, [x0, #-256]!
2340# CHECK: ldr      d20, [x20, #255]!
2341# CHECK: ldr      d23, [x23, #1]!
2342# CHECK: ldr      d25, [x0, #-256]!
23430x0 0xfc 0x4f 0x3c
23440x63 0x1c 0x40 0x3c
23450xe5 0xf 0x50 0x3c
23460x4a 0xfd 0x4f 0x7c
23470xed 0x1e 0x40 0x7c
23480xef 0xf 0x50 0x7c
23490x94 0xfe 0x4f 0xbc
23500xf7 0x1e 0x40 0xbc
23510x19 0xc 0x50 0xbc
23520x94 0xfe 0x4f 0xfc
23530xf7 0x1e 0x40 0xfc
23540x19 0xc 0x50 0xfc
2355
2356# CHECK: ldr      q20, [x1, #255]!
2357# CHECK: ldr      q23, [x9, #1]!
2358# CHECK: ldr      q25, [x20, #-256]!
2359# CHECK: str      q10, [x1, #255]!
2360# CHECK: str      q22, [sp, #1]!
2361# CHECK: str      q21, [x20, #-256]!
23620x34 0xfc 0xcf 0x3c
23630x37 0x1d 0xc0 0x3c
23640x99 0xe 0xd0 0x3c
23650x2a 0xfc 0x8f 0x3c
23660xf6 0x1f 0x80 0x3c
23670x95 0xe 0x90 0x3c
2368
2369#------------------------------------------------------------------------------
2370# Load/store (unprivileged)
2371#------------------------------------------------------------------------------
2372
2373# CHECK: sttrb    w9, [sp]
2374# CHECK: sttrh    wzr, [x12, #255]
2375# CHECK: sttr     w16, [x0, #-256]
2376# CHECK: sttr     x28, [x14, #1]
23770xe9 0x0b 0x0 0x38
23780x9f 0xf9 0xf 0x78
23790x10 0x08 0x10 0xb8
23800xdc 0x19 0x0 0xf8
2381
2382# CHECK: ldtrb    w1, [x20, #255]
2383# CHECK: ldtrh    w20, [x1, #255]
2384# CHECK: ldtr     w12, [sp, #255]
2385# CHECK: ldtr     xzr, [x12, #255]
23860x81 0xfa 0x4f 0x38
23870x34 0xf8 0x4f 0x78
23880xec 0xfb 0x4f 0xb8
23890x9f 0xf9 0x4f 0xf8
2390
2391# CHECK: ldtrsb   x9, [x7, #-256]
2392# CHECK: ldtrsh   x17, [x19, #-256]
2393# CHECK: ldtrsw   x20, [x15, #-256]
2394# CHECK: ldtrsb   w19, [x1, #-256]
2395# CHECK: ldtrsh   w15, [x21, #-256]
23960xe9 0x08 0x90 0x38
23970x71 0x0a 0x90 0x78
23980xf4 0x09 0x90 0xb8
23990x33 0x08 0xd0 0x38
24000xaf 0x0a 0xd0 0x78
2401
2402#------------------------------------------------------------------------------
2403# Load/store (unsigned  immediate)
2404#------------------------------------------------------------------------------
2405
2406# CHECK: ldr      x0, [x0]
2407# CHECK: ldr      x4, [x29]
2408# CHECK: ldr      x30, [x12, #32760]
2409# CHECK: ldr      x20, [sp, #8]
24100x0 0x0 0x40 0xf9
24110xa4 0x3 0x40 0xf9
24120x9e 0xfd 0x7f 0xf9
24130xf4 0x7 0x40 0xf9
2414
2415# CHECK: ldr      xzr, [sp]
24160xff 0x3 0x40 0xf9
2417
2418# CHECK: ldr      w2, [sp]
2419# CHECK: ldr      w17, [sp, #16380]
2420# CHECK: ldr      w13, [x2, #4]
24210xe2 0x3 0x40 0xb9
24220xf1 0xff 0x7f 0xb9
24230x4d 0x4 0x40 0xb9
2424
2425# CHECK: ldrsw    x2, [x5, #4]
2426# CHECK: ldrsw    x23, [sp, #16380]
24270xa2 0x4 0x80 0xb9
24280xf7 0xff 0xbf 0xb9
2429
2430# CHECK: ldrh     w2, [x4]
2431# CHECK: ldrsh    w23, [x6, #8190]
2432# CHECK: ldrsh    wzr, [sp, #2]
2433# CHECK: ldrsh    x29, [x2, #2]
24340x82 0x0 0x40 0x79
24350xd7 0xfc 0xff 0x79
24360xff 0x7 0xc0 0x79
24370x5d 0x4 0x80 0x79
2438
2439# CHECK: ldrb     w26, [x3, #121]
2440# CHECK: ldrb     w12, [x2]
2441# CHECK: ldrsb    w27, [sp, #4095]
2442# CHECK: ldrsb    xzr, [x15]
24430x7a 0xe4 0x41 0x39
24440x4c 0x0 0x40 0x39
24450xfb 0xff 0xff 0x39
24460xff 0x1 0x80 0x39
2447
2448# CHECK: str      x30, [sp]
2449# CHECK: str      w20, [x4, #16380]
2450# CHECK: strh     w20, [x10, #14]
2451# CHECK: strh     w17, [sp, #8190]
2452# CHECK: strb     w23, [x3, #4095]
2453# CHECK: strb     wzr, [x2]
24540xfe 0x3 0x0 0xf9
24550x94 0xfc 0x3f 0xb9
24560x54 0x1d 0x0 0x79
24570xf1 0xff 0x3f 0x79
24580x77 0xfc 0x3f 0x39
24590x5f 0x0 0x0 0x39
2460
2461# CHECK: ldr      b31, [sp, #4095]
2462# CHECK: ldr      h20, [x2, #8190]
2463# CHECK: ldr      s10, [x19, #16380]
2464# CHECK: ldr      d3, [x10, #32760]
2465# CHECK: str      q12, [sp, #65520]
24660xff 0xff 0x7f 0x3d
24670x54 0xfc 0x7f 0x7d
24680x6a 0xfe 0x7f 0xbd
24690x43 0xfd 0x7f 0xfd
24700xec 0xff 0xbf 0x3d
2471
2472# CHECK: prfm    pldl1keep, [sp, #8]
2473# CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2474# CHECK: prfm    pldl2keep, [x5, #16]
2475# CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2476# CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2477# CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2478# CHECK: prfm    plil1keep, [sp, #8]
2479# CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2480# CHECK: prfm    plil2keep, [x5, #16]
2481# CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2482# CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2483# CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2484# CHECK: prfm    pstl1keep, [sp, #8]
2485# CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2486# CHECK: prfm    pstl2keep, [x5, #16]
2487# CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2488# CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2489# CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
24900xe0 0x07 0x80 0xf9
24910x61 0x00 0x80 0xf9
24920xa2 0x08 0x80 0xf9
24930x43 0x00 0x80 0xf9
24940xa4 0x00 0x80 0xf9
24950xc5 0x00 0x80 0xf9
24960xe8 0x07 0x80 0xf9
24970x69 0x00 0x80 0xf9
24980xaa 0x08 0x80 0xf9
24990x4b 0x00 0x80 0xf9
25000xac 0x00 0x80 0xf9
25010xcd 0x00 0x80 0xf9
25020xf0 0x07 0x80 0xf9
25030x71 0x00 0x80 0xf9
25040xb2 0x08 0x80 0xf9
25050x53 0x00 0x80 0xf9
25060xb4 0x00 0x80 0xf9
25070xd5 0x00 0x80 0xf9
2508
2509
2510#------------------------------------------------------------------------------
2511# Load/store (register offset)
2512#------------------------------------------------------------------------------
2513
2514# CHECK: ldrb     w3, [sp, x5]
2515# CHECK: ldrb     w9, [x27, x6]
2516# CHECK: ldrsb    w10, [x30, x7]
2517# CHECK: ldrb     w11, [x29, x3, sxtx]
2518# CHECK: strb     w12, [x28, xzr, sxtx]
2519# CHECK: ldrb     w14, [x26, w6, uxtw]
2520# CHECK: ldrsb    w15, [x25, w7, uxtw]
2521# CHECK: ldrb     w17, [x23, w9, sxtw]
2522# CHECK: ldrsb    x18, [x22, w10, sxtw]
25230xe3 0x6b 0x65 0x38
25240x69 0x6b 0x66 0x38
25250xca 0x6b 0xe7 0x38
25260xab 0xeb 0x63 0x38
25270x8c 0xeb 0x3f 0x38
25280x4e 0x4b 0x66 0x38
25290x2f 0x4b 0xe7 0x38
25300xf1 0xca 0x69 0x38
25310xd2 0xca 0xaa 0x38
2532
2533# CHECK: ldrsh    w3, [sp, x5]
2534# CHECK: ldrsh    w9, [x27, x6]
2535# CHECK: ldrh     w10, [x30, x7, lsl #1]
2536# CHECK: strh     w11, [x29, x3, sxtx]
2537# CHECK: ldrh     w12, [x28, xzr, sxtx]
2538# CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2539# CHECK: ldrh     w14, [x26, w6, uxtw]
2540# CHECK: ldrh     w15, [x25, w7, uxtw]
2541# CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2542# CHECK: ldrh     w17, [x23, w9, sxtw]
2543# CHECK: ldrh     w18, [x22, w10, sxtw]
2544# CHECK: strh     w19, [x21, wzr, sxtw #1]
25450xe3 0x6b 0xe5 0x78
25460x69 0x6b 0xe6 0x78
25470xca 0x7b 0x67 0x78
25480xab 0xeb 0x23 0x78
25490x8c 0xeb 0x7f 0x78
25500x6d 0xfb 0xa5 0x78
25510x4e 0x4b 0x66 0x78
25520x2f 0x4b 0x67 0x78
25530x10 0x5b 0xe8 0x78
25540xf1 0xca 0x69 0x78
25550xd2 0xca 0x6a 0x78
25560xb3 0xda 0x3f 0x78
2557
2558# CHECK: ldr      w3, [sp, x5]
2559# CHECK: ldr      s9, [x27, x6]
2560# CHECK: ldr      w10, [x30, x7, lsl #2]
2561# CHECK: ldr      w11, [x29, x3, sxtx]
2562# CHECK: str      s12, [x28, xzr, sxtx]
2563# CHECK: str      w13, [x27, x5, sxtx #2]
2564# CHECK: str      w14, [x26, w6, uxtw]
2565# CHECK: ldr      w15, [x25, w7, uxtw]
2566# CHECK: ldr      w16, [x24, w8, uxtw #2]
2567# CHECK: ldrsw    x17, [x23, w9, sxtw]
2568# CHECK: ldr      w18, [x22, w10, sxtw]
2569# CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
25700xe3 0x6b 0x65 0xb8
25710x69 0x6b 0x66 0xbc
25720xca 0x7b 0x67 0xb8
25730xab 0xeb 0x63 0xb8
25740x8c 0xeb 0x3f 0xbc
25750x6d 0xfb 0x25 0xb8
25760x4e 0x4b 0x26 0xb8
25770x2f 0x4b 0x67 0xb8
25780x10 0x5b 0x68 0xb8
25790xf1 0xca 0xa9 0xb8
25800xd2 0xca 0x6a 0xb8
25810xb3 0xda 0xbf 0xb8
2582
2583# CHECK: ldr      x3, [sp, x5]
2584# CHECK: str      x9, [x27, x6]
2585# CHECK: ldr      d10, [x30, x7, lsl #3]
2586# CHECK: str      x11, [x29, x3, sxtx]
2587# CHECK: ldr      x12, [x28, xzr, sxtx]
2588# CHECK: ldr      x13, [x27, x5, sxtx #3]
2589# CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2590# CHECK: ldr      x15, [x25, w7, uxtw]
2591# CHECK: ldr      x16, [x24, w8, uxtw #3]
2592# CHECK: ldr      x17, [x23, w9, sxtw]
2593# CHECK: ldr      x18, [x22, w10, sxtw]
2594# CHECK: str      d19, [x21, wzr, sxtw #3]
25950xe3 0x6b 0x65 0xf8
25960x69 0x6b 0x26 0xf8
25970xca 0x7b 0x67 0xfc
25980xab 0xeb 0x23 0xf8
25990x8c 0xeb 0x7f 0xf8
26000x6d 0xfb 0x65 0xf8
26010x40 0x4b 0xa6 0xf8
26020x2f 0x4b 0x67 0xf8
26030x10 0x5b 0x68 0xf8
26040xf1 0xca 0x69 0xf8
26050xd2 0xca 0x6a 0xf8
26060xb3 0xda 0x3f 0xfc
2607
2608# CHECK: ldr      q3, [sp, x5]
2609# CHECK: ldr      q9, [x27, x6]
2610# CHECK: ldr      q10, [x30, x7, lsl #4]
2611# CHECK: str      q11, [x29, x3, sxtx]
2612# CHECK: str      q12, [x28, xzr, sxtx]
2613# CHECK: str      q13, [x27, x5, sxtx #4]
2614# CHECK: ldr      q14, [x26, w6, uxtw]
2615# CHECK: ldr      q15, [x25, w7, uxtw]
2616# CHECK: ldr      q16, [x24, w8, uxtw #4]
2617# CHECK: ldr      q17, [x23, w9, sxtw]
2618# CHECK: str      q18, [x22, w10, sxtw]
2619# CHECK: ldr      q19, [x21, wzr, sxtw #4]
26200xe3 0x6b 0xe5 0x3c
26210x69 0x6b 0xe6 0x3c
26220xca 0x7b 0xe7 0x3c
26230xab 0xeb 0xa3 0x3c
26240x8c 0xeb 0xbf 0x3c
26250x6d 0xfb 0xa5 0x3c
26260x4e 0x4b 0xe6 0x3c
26270x2f 0x4b 0xe7 0x3c
26280x10 0x5b 0xe8 0x3c
26290xf1 0xca 0xe9 0x3c
26300xd2 0xca 0xaa 0x3c
26310xb3 0xda 0xff 0x3c
2632
2633#------------------------------------------------------------------------------
2634# Load/store register pair (offset)
2635#------------------------------------------------------------------------------
2636
2637# CHECK: ldp      w3, w5, [sp]
2638# CHECK: stp      wzr, w9, [sp, #252]
2639# CHECK: ldp      w2, wzr, [sp, #-256]
2640# CHECK: ldp      w9, w10, [sp, #4]
26410xe3 0x17 0x40 0x29
26420xff 0xa7 0x1f 0x29
26430xe2 0x7f 0x60 0x29
26440xe9 0xab 0x40 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 0x40 0x69
26500x49 0x28 0x60 0x69
26510xf4 0xfb 0x5f 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 0x5f 0xa9
26570x76 0x5c 0x60 0xa9
26580x98 0xe4 0x40 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 0x5f 0x2d
26640xfb 0x6b 0x20 0x2d
26650x61 0x88 0x45 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 0x1f 0x6d
26710x47 0x2d 0x20 0x6d
26720xc2 0x8f 0x7f 0x6d
2673
2674# CHECK: stp      q3, q5, [sp]
2675# CHECK: stp      q17, q19, [sp, #1008]
2676# CHECK: ldp      q23, q29, [x1, #-1024]
26770xe3 0x17 0x0 0xad
26780xf1 0xcf 0x1f 0xad
26790x37 0x74 0x60 0xad
2680
2681#------------------------------------------------------------------------------
2682# Load/store register pair (post-indexed)
2683#------------------------------------------------------------------------------
2684
2685# CHECK: ldp      w3, w5, [sp], #0
2686# CHECK: stp      wzr, w9, [sp], #252
2687# CHECK: ldp      w2, wzr, [sp], #-256
2688# CHECK: ldp      w9, w10, [sp], #4
26890xe3 0x17 0xc0 0x28
26900xff 0xa7 0x9f 0x28
26910xe2 0x7f 0xe0 0x28
26920xe9 0xab 0xc0 0x28
2693
2694# CHECK: ldpsw    x9, x10, [sp], #4
2695# CHECK: ldpsw    x9, x10, [x2], #-256
2696# CHECK: ldpsw    x20, x30, [sp], #252
26970xe9 0xab 0xc0 0x68
26980x49 0x28 0xe0 0x68
26990xf4 0xfb 0xdf 0x68
2700
2701# CHECK: ldp      x21, x29, [x2], #504
2702# CHECK: ldp      x22, x23, [x3], #-512
2703# CHECK: ldp      x24, x25, [x4], #8
27040x55 0xf4 0xdf 0xa8
27050x76 0x5c 0xe0 0xa8
27060x98 0xe4 0xc0 0xa8
2707
2708# CHECK: ldp      s29, s28, [sp], #252
2709# CHECK: stp      s27, s26, [sp], #-256
2710# CHECK: ldp      s1, s2, [x3], #44
27110xfd 0xf3 0xdf 0x2c
27120xfb 0x6b 0xa0 0x2c
27130x61 0x88 0xc5 0x2c
2714
2715# CHECK: stp      d3, d5, [x9], #504
2716# CHECK: stp      d7, d11, [x10], #-512
2717# CHECK: ldp      d2, d3, [x30], #-8
27180x23 0x95 0x9f 0x6c
27190x47 0x2d 0xa0 0x6c
27200xc2 0x8f 0xff 0x6c
2721
2722# CHECK: stp      q3, q5, [sp], #0
2723# CHECK: stp      q17, q19, [sp], #1008
2724# CHECK: ldp      q23, q29, [x1], #-1024
27250xe3 0x17 0x80 0xac
27260xf1 0xcf 0x9f 0xac
27270x37 0x74 0xe0 0xac
2728
2729#------------------------------------------------------------------------------
2730# Load/store register pair (pre-indexed)
2731#------------------------------------------------------------------------------
2732
2733# CHECK: ldp      w3, w5, [sp, #0]!
2734# CHECK: stp      wzr, w9, [sp, #252]!
2735# CHECK: ldp      w2, wzr, [sp, #-256]!
2736# CHECK: ldp      w9, w10, [sp, #4]!
27370xe3 0x17 0xc0 0x29
27380xff 0xa7 0x9f 0x29
27390xe2 0x7f 0xe0 0x29
27400xe9 0xab 0xc0 0x29
2741
2742# CHECK: ldpsw    x9, x10, [sp, #4]!
2743# CHECK: ldpsw    x9, x10, [x2, #-256]!
2744# CHECK: ldpsw    x20, x30, [sp, #252]!
27450xe9 0xab 0xc0 0x69
27460x49 0x28 0xe0 0x69
27470xf4 0xfb 0xdf 0x69
2748
2749# CHECK: ldp      x21, x29, [x2, #504]!
2750# CHECK: ldp      x22, x23, [x3, #-512]!
2751# CHECK: ldp      x24, x25, [x4, #8]!
27520x55 0xf4 0xdf 0xa9
27530x76 0x5c 0xe0 0xa9
27540x98 0xe4 0xc0 0xa9
2755
2756# CHECK: ldp      s29, s28, [sp, #252]!
2757# CHECK: stp      s27, s26, [sp, #-256]!
2758# CHECK: ldp      s1, s2, [x3, #44]!
27590xfd 0xf3 0xdf 0x2d
27600xfb 0x6b 0xa0 0x2d
27610x61 0x88 0xc5 0x2d
2762
2763# CHECK: stp      d3, d5, [x9, #504]!
2764# CHECK: stp      d7, d11, [x10, #-512]!
2765# CHECK: ldp      d2, d3, [x30, #-8]!
27660x23 0x95 0x9f 0x6d
27670x47 0x2d 0xa0 0x6d
27680xc2 0x8f 0xff 0x6d
2769
2770# CHECK: stp      q3, q5, [sp, #0]!
2771# CHECK: stp      q17, q19, [sp, #1008]!
2772# CHECK: ldp      q23, q29, [x1, #-1024]!
27730xe3 0x17 0x80 0xad
27740xf1 0xcf 0x9f 0xad
27750x37 0x74 0xe0 0xad
2776
2777#------------------------------------------------------------------------------
2778# Load/store register pair (offset)
2779#------------------------------------------------------------------------------
2780
2781# CHECK: ldnp      w3, w5, [sp]
2782# CHECK: stnp      wzr, w9, [sp, #252]
2783# CHECK: ldnp      w2, wzr, [sp, #-256]
2784# CHECK: ldnp      w9, w10, [sp, #4]
27850xe3 0x17 0x40 0x28
27860xff 0xa7 0x1f 0x28
27870xe2 0x7f 0x60 0x28
27880xe9 0xab 0x40 0x28
2789
2790# CHECK: ldnp      x21, x29, [x2, #504]
2791# CHECK: ldnp      x22, x23, [x3, #-512]
2792# CHECK: ldnp      x24, x25, [x4, #8]
27930x55 0xf4 0x5f 0xa8
27940x76 0x5c 0x60 0xa8
27950x98 0xe4 0x40 0xa8
2796
2797# CHECK: ldnp      s29, s28, [sp, #252]
2798# CHECK: stnp      s27, s26, [sp, #-256]
2799# CHECK: ldnp      s1, s2, [x3, #44]
28000xfd 0xf3 0x5f 0x2c
28010xfb 0x6b 0x20 0x2c
28020x61 0x88 0x45 0x2c
2803
2804# CHECK: stnp      d3, d5, [x9, #504]
2805# CHECK: stnp      d7, d11, [x10, #-512]
2806# CHECK: ldnp      d2, d3, [x30, #-8]
28070x23 0x95 0x1f 0x6c
28080x47 0x2d 0x20 0x6c
28090xc2 0x8f 0x7f 0x6c
2810
2811# CHECK: stnp      q3, q5, [sp]
2812# CHECK: stnp      q17, q19, [sp, #1008]
2813# CHECK: ldnp      q23, q29, [x1, #-1024]
28140xe3 0x17 0x0 0xac
28150xf1 0xcf 0x1f 0xac
28160x37 0x74 0x60 0xac
2817
2818#------------------------------------------------------------------------------
2819# Logical (immediate)
2820#------------------------------------------------------------------------------
2821# CHECK: orr      w3, w9, #0xffff0000
2822# CHECK: orr      wsp, w10, #0xe00000ff
2823# CHECK: orr      w9, w10, #0x3ff
28240x23 0x3d 0x10 0x32
28250x5f 0x29 0x3 0x32
28260x49 0x25 0x0 0x32
2827
2828# CHECK: and      w14, w15, #0x80008000
2829# CHECK: and      w12, w13, #0xffc3ffc3
2830# CHECK: and      w11, wzr, #0x30003
28310xee 0x81 0x1 0x12
28320xac 0xad 0xa 0x12
28330xeb 0x87 0x0 0x12
2834
2835# CHECK: eor      w3, w6, #0xe0e0e0e0
2836# CHECK: eor      wsp, wzr, #0x3030303
2837# CHECK: eor      w16, w17, #0x81818181
28380xc3 0xc8 0x3 0x52
28390xff 0xc7 0x0 0x52
28400x30 0xc6 0x1 0x52
2841
2842# CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
2843# CHECK: ands     w19, w20, #0x33333333
2844# CHECK: ands     w21, w22, #0x99999999
28450x5f 0xe6 0x2 0x72
28460x93 0xe6 0x0 0x72
28470xd5 0xe6 0x1 0x72
2848
2849# CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2850# CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
28510x7f 0xf0 0x1 0x72
28520xff 0xf3 0x0 0x72
2853
2854# CHECK: eor      x3, x5, #0xffffffffc000000
2855# CHECK: and      x9, x10, #0x7fffffffffff
2856# CHECK: orr      x11, x12, #0x8000000000000fff
28570xa3 0x84 0x66 0xd2
28580x49 0xb9 0x40 0x92
28590x8b 0x31 0x41 0xb2
2860
2861# CHECK: orr      x3, x9, #0xffff0000ffff0000
2862# CHECK: orr      sp, x10, #0xe00000ffe00000ff
2863# CHECK: orr      x9, x10, #0x3ff000003ff
28640x23 0x3d 0x10 0xb2
28650x5f 0x29 0x3 0xb2
28660x49 0x25 0x0 0xb2
2867
2868# CHECK: and      x14, x15, #0x8000800080008000
2869# CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2870# CHECK: and      x11, xzr, #0x3000300030003
28710xee 0x81 0x1 0x92
28720xac 0xad 0xa 0x92
28730xeb 0x87 0x0 0x92
2874
2875# CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2876# CHECK: eor      sp, xzr, #0x303030303030303
2877# CHECK: eor      x16, x17, #0x8181818181818181
28780xc3 0xc8 0x3 0xd2
28790xff 0xc7 0x0 0xd2
28800x30 0xc6 0x1 0xd2
2881
2882# CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
2883# CHECK: ands     x19, x20, #0x3333333333333333
2884# CHECK: ands     x21, x22, #0x9999999999999999
28850x5f 0xe6 0x2 0xf2
28860x93 0xe6 0x0 0xf2
28870xd5 0xe6 0x1 0xf2
2888
2889# CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2890# CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
28910x7f 0xf0 0x1 0xf2
28920xff 0xf3 0x0 0xf2
2893
2894# CHECK: mov      w3, #983055
2895# CHECK: mov      x10, #-6148914691236517206
28960xe3 0x8f 0x0 0x32
28970xea 0xf3 0x1 0xb2
2898
2899# CHECK: orr      w3, wzr, #0xffff
2900# CHECK: orr      x9, xzr, #0xffff00000000
29010xe3 0x3f 0x0 0x32
29020xe9 0x3f 0x60 0xb2
2903
2904#------------------------------------------------------------------------------
2905# Logical (shifted register)
2906#------------------------------------------------------------------------------
2907
2908# CHECK: and      w12, w23, w21
2909# CHECK: and      w16, w15, w1, lsl #1
2910# CHECK: and      w9, w4, w10, lsl #31
2911# CHECK: and      w3, w30, w11
2912# CHECK: and      x3, x5, x7, lsl #63
29130xec 0x2 0x15 0xa
29140xf0 0x5 0x1 0xa
29150x89 0x7c 0xa 0xa
29160xc3 0x3 0xb 0xa
29170xa3 0xfc 0x7 0x8a
2918
2919# CHECK: and      x5, x14, x19, asr #4
2920# CHECK: and      w3, w17, w19, ror #31
2921# CHECK: and      w0, w2, wzr, lsr #17
2922# CHECK: and      w3, w30, w11, asr
29230xc5 0x11 0x93 0x8a
29240x23 0x7e 0xd3 0xa
29250x40 0x44 0x5f 0xa
29260xc3 0x3 0x8b 0xa
2927
2928# CHECK: and      xzr, x4, x26
2929# CHECK: and      w3, wzr, w20, ror
2930# CHECK: and      x7, x20, xzr, asr #63
29310x9f 0x0 0x1a 0x8a
29320xe3 0x3 0xd4 0xa
29330x87 0xfe 0x9f 0x8a
2934
2935# CHECK: bic      x13, x20, x14, lsl #47
2936# CHECK: bic      w2, w7, w9
2937# CHECK: orr      w2, w7, w0, asr #31
2938# CHECK: orr      x8, x9, x10, lsl #12
2939# CHECK: orn      x3, x5, x7, asr
2940# CHECK: orn      w2, w5, w29
29410x8d 0xbe 0x2e 0x8a
29420xe2 0x0 0x29 0xa
29430xe2 0x7c 0x80 0x2a
29440x28 0x31 0xa 0xaa
29450xa3 0x0 0xa7 0xaa
29460xa2 0x0 0x3d 0x2a
2947
2948# CHECK: ands     w7, wzr, w9, lsl #1
2949# CHECK: ands     x3, x5, x20, ror #63
2950# CHECK: bics     w3, w5, w7
2951# CHECK: bics     x3, xzr, x3, lsl #1
2952# CHECK: tst      w3, w7, lsl #31
2953# CHECK: tst      x2, x20, asr
29540xe7 0x7 0x9 0x6a
29550xa3 0xfc 0xd4 0xea
29560xa3 0x0 0x27 0x6a
29570xe3 0x7 0x23 0xea
29580x7f 0x7c 0x7 0x6a
29590x5f 0x0 0x94 0xea
2960
2961# CHECK: mov      x3, x6
2962# CHECK: mov      x3, xzr
2963# CHECK: mov      wzr, w2
2964# CHECK: mov      w3, w5
29650xe3 0x3 0x6 0xaa
29660xe3 0x3 0x1f 0xaa
29670xff 0x3 0x2 0x2a
29680xe3 0x3 0x5 0x2a
2969
2970#------------------------------------------------------------------------------
2971# Move wide (immediate)
2972#------------------------------------------------------------------------------
2973
2974# N.b. (FIXME) canonical aliases aren't produced here because of
2975# limitation in InstAlias. Lots of the "mov[nz]" instructions should
2976# be "mov".
2977
2978# CHECK: mov     w1, #{{65535|0xffff}}
2979# CHECK: movz     w2, #0, lsl #16
2980# CHECK: mov     w2, #-1235
29810xe1 0xff 0x9f 0x52
29820x2 0x0 0xa0 0x52
29830x42 0x9a 0x80 0x12
2984
2985# CHECK: mov     x2, #5299989643264
2986# CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
29870x42 0x9a 0xc0 0xd2
29880x3f 0x1c 0xe2 0xf2
2989
2990# CHECK: mov      x2, #0
2991# CHECK: movk     w3, #0
2992# CHECK: movz     x4, #0, lsl #16
2993# CHECK: movk     w5, #0, lsl #16
2994# CHECK: movz     x6, #0, lsl #32
2995# CHECK: movk     x7, #0, lsl #32
2996# CHECK: movz     x8, #0, lsl #48
2997# CHECK: movk     x9, #0, lsl #48
29980x2 0x0 0x80 0xd2
29990x3 0x0 0x80 0x72
30000x4 0x0 0xa0 0xd2
30010x5 0x0 0xa0 0x72
30020x6 0x0 0xc0 0xd2
30030x7 0x0 0xc0 0xf2
30040x8 0x0 0xe0 0xd2
30050x9 0x0 0xe0 0xf2
3006
3007#------------------------------------------------------------------------------
3008# PC-relative addressing
3009#------------------------------------------------------------------------------
3010
3011# It's slightly dodgy using immediates here, but harmless enough when
3012# it's all that's available.
3013
3014# CHECK: adr      x2, #1600
3015# CHECK: adrp     x21, #6553600
3016# CHECK: adr      x0, #262144
30170x02 0x32 0x00 0x10
30180x15 0x32 0x00 0x90
30190x00 0x00 0x20 0x10
3020
3021#------------------------------------------------------------------------------
3022# System
3023#------------------------------------------------------------------------------
3024
3025# CHECK: nop
3026# CHECK: hint     #{{127|0x7f}}
3027# CHECK: nop
3028# CHECK: yield
3029# CHECK: wfe
3030# CHECK: wfi
3031# CHECK: sev
3032# CHECK: sevl
30330x1f 0x20 0x3 0xd5
30340xff 0x2f 0x3 0xd5
30350x1f 0x20 0x3 0xd5
30360x3f 0x20 0x3 0xd5
30370x5f 0x20 0x3 0xd5
30380x7f 0x20 0x3 0xd5
30390x9f 0x20 0x3 0xd5
30400xbf 0x20 0x3 0xd5
3041
3042# CHECK: clrex
3043# CHECK: clrex    #0
3044# CHECK: clrex    #7
3045# CHECK: clrex
30460x5f 0x3f 0x3 0xd5
30470x5f 0x30 0x3 0xd5
30480x5f 0x37 0x3 0xd5
30490x5f 0x3f 0x3 0xd5
3050
3051# CHECK: dsb      #0
3052# CHECK: dsb      #12
3053# CHECK: dsb      sy
3054# CHECK: dsb      oshld
3055# CHECK: dsb      oshst
3056# CHECK: dsb      osh
3057# CHECK: dsb      nshld
3058# CHECK: dsb      nshst
3059# CHECK: dsb      nsh
3060# CHECK: dsb      ishld
3061# CHECK: dsb      ishst
3062# CHECK: dsb      ish
3063# CHECK: dsb      ld
3064# CHECK: dsb      st
3065# CHECK: dsb      sy
30660x9f 0x30 0x3 0xd5
30670x9f 0x3c 0x3 0xd5
30680x9f 0x3f 0x3 0xd5
30690x9f 0x31 0x3 0xd5
30700x9f 0x32 0x3 0xd5
30710x9f 0x33 0x3 0xd5
30720x9f 0x35 0x3 0xd5
30730x9f 0x36 0x3 0xd5
30740x9f 0x37 0x3 0xd5
30750x9f 0x39 0x3 0xd5
30760x9f 0x3a 0x3 0xd5
30770x9f 0x3b 0x3 0xd5
30780x9f 0x3d 0x3 0xd5
30790x9f 0x3e 0x3 0xd5
30800x9f 0x3f 0x3 0xd5
3081
3082# CHECK: dmb      #0
3083# CHECK: dmb      #12
3084# CHECK: dmb      sy
3085# CHECK: dmb      oshld
3086# CHECK: dmb      oshst
3087# CHECK: dmb      osh
3088# CHECK: dmb      nshld
3089# CHECK: dmb      nshst
3090# CHECK: dmb      nsh
3091# CHECK: dmb      ishld
3092# CHECK: dmb      ishst
3093# CHECK: dmb      ish
3094# CHECK: dmb      ld
3095# CHECK: dmb      st
3096# CHECK: dmb      sy
30970xbf 0x30 0x3 0xd5
30980xbf 0x3c 0x3 0xd5
30990xbf 0x3f 0x3 0xd5
31000xbf 0x31 0x3 0xd5
31010xbf 0x32 0x3 0xd5
31020xbf 0x33 0x3 0xd5
31030xbf 0x35 0x3 0xd5
31040xbf 0x36 0x3 0xd5
31050xbf 0x37 0x3 0xd5
31060xbf 0x39 0x3 0xd5
31070xbf 0x3a 0x3 0xd5
31080xbf 0x3b 0x3 0xd5
31090xbf 0x3d 0x3 0xd5
31100xbf 0x3e 0x3 0xd5
31110xbf 0x3f 0x3 0xd5
3112
3113# CHECK: isb
3114# CHECK: isb      #12
31150xdf 0x3f 0x3 0xd5
31160xdf 0x3c 0x3 0xd5
3117
3118# CHECK: msr      {{SPSel|SPSEL}}, #0
3119# CHECK: msr      {{DAIFSet|DAIFSET}}, #15
3120# CHECK: msr      {{DAIFClr|DAIFCLR}}, #12
31210xbf 0x40 0x0 0xd5
31220xdf 0x4f 0x3 0xd5
31230xff 0x4c 0x3 0xd5
3124
3125# CHECK: sys      #7, c5, c9, #7, x5
3126# CHECK: sys      #0, c15, c15, #2
3127# CHECK: sysl     x9, #7, c5, c9, #7
3128# CHECK: sysl     x1, #0, c15, c15, #2
31290xe5 0x59 0xf 0xd5
31300x5f 0xff 0x8 0xd5
31310xe9 0x59 0x2f 0xd5
31320x41 0xff 0x28 0xd5
3133
3134# CHECK: {{sys     #0, c7, c1, #0|ic ialluis}}
3135# CHECK: {{sys     #0, c7, c5, #0|ic iallu}}
3136# CHECK: {{sys     #3, c7, c5, #1|ic ivau}}, x9
31370x1f 0x71 0x8 0xd5
31380x1f 0x75 0x8 0xd5
31390x29 0x75 0xb 0xd5
3140
3141# CHECK: {{sys     #3, c7, c4, #1|dc zva}}, x12
3142# CHECK: {{sys     #0, c7, c6, #1|dc ivac}}
3143# CHECK: {{sys     #0, c7, c6, #2|dc isw}}, x2
3144# CHECK: {{sys     #3, c7, c10, #1|dc cvac}}, x9
3145# CHECK: {{sys     #0, c7, c10, #2|dc csw}}, x10
3146# CHECK: {{sys     #3, c7, c11, #1|dc cvau}}, x0
3147# CHECK: {{sys     #3, c7, c14, #1|dc civac}}, x3
3148# CHECK: {{sys     #0, c7, c14, #2|dc cisw}}, x30
31490x2c 0x74 0xb 0xd5
31500x3f 0x76 0x8 0xd5
31510x42 0x76 0x8 0xd5
31520x29 0x7a 0xb 0xd5
31530x4a 0x7a 0x8 0xd5
31540x20 0x7b 0xb 0xd5
31550x23 0x7e 0xb 0xd5
31560x5e 0x7e 0x8 0xd5
3157
3158
3159# CHECK: msr      {{teecr32_el1|TEECR32_EL1}}, x12
3160# CHECK: msr      {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3161# CHECK: msr      {{mdccint_el1|MDCCINT_EL1}}, x12
3162# CHECK: msr      {{mdscr_el1|MDSCR_EL1}}, x12
3163# CHECK: msr      {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3164# CHECK: msr      {{dbgdtr_el0|DBGDTR_EL0}}, x12
3165# CHECK: msr      {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3166# CHECK: msr      {{oseccr_el1|OSECCR_EL1}}, x12
3167# CHECK: msr      {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3168# CHECK: msr      {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3169# CHECK: msr      {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3170# CHECK: msr      {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3171# CHECK: msr      {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3172# CHECK: msr      {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3173# CHECK: msr      {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3174# CHECK: msr      {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3175# CHECK: msr      {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3176# CHECK: msr      {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3177# CHECK: msr      {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3178# CHECK: msr      {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3179# CHECK: msr      {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3180# CHECK: msr      {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3181# CHECK: msr      {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3182# CHECK: msr      {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3183# CHECK: msr      {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3184# CHECK: msr      {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3185# CHECK: msr      {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3186# CHECK: msr      {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3187# CHECK: msr      {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3188# CHECK: msr      {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3189# CHECK: msr      {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3190# CHECK: msr      {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3191# CHECK: msr      {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3192# CHECK: msr      {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3193# CHECK: msr      {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3194# CHECK: msr      {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3195# CHECK: msr      {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3196# CHECK: msr      {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3197# CHECK: msr      {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3198# CHECK: msr      {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3199# CHECK: msr      {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3200# CHECK: msr      {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3201# CHECK: msr      {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3202# CHECK: msr      {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3203# CHECK: msr      {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3204# CHECK: msr      {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3205# CHECK: msr      {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3206# CHECK: msr      {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3207# CHECK: msr      {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3208# CHECK: msr      {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3209# CHECK: msr      {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3210# CHECK: msr      {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3211# CHECK: msr      {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3212# CHECK: msr      {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3213# CHECK: msr      {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3214# CHECK: msr      {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3215# CHECK: msr      {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3216# CHECK: msr      {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3217# CHECK: msr      {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3218# CHECK: msr      {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3219# CHECK: msr      {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3220# CHECK: msr      {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3221# CHECK: msr      {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3222# CHECK: msr      {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3223# CHECK: msr      {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3224# CHECK: msr      {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3225# CHECK: msr      {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3226# CHECK: msr      {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3227# CHECK: msr      {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3228# CHECK: msr      {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3229# CHECK: msr      {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3230# CHECK: msr      {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3231# CHECK: msr      {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3232# CHECK: msr      {{teehbr32_el1|TEEHBR32_EL1}}, x12
3233# CHECK: msr      {{oslar_el1|OSLAR_EL1}}, x12
3234# CHECK: msr      {{osdlr_el1|OSDLR_EL1}}, x12
3235# CHECK: msr      {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3236# CHECK: msr      {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3237# CHECK: msr      {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3238# CHECK: msr      {{csselr_el1|CSSELR_EL1}}, x12
3239# CHECK: msr      {{vpidr_el2|VPIDR_EL2}}, x12
3240# CHECK: msr      {{vmpidr_el2|VMPIDR_EL2}}, x12
3241# CHECK: msr      {{sctlr_el1|SCTLR_EL1}}, x12
3242# CHECK: msr      {{sctlr_el2|SCTLR_EL2}}, x12
3243# CHECK: msr      {{sctlr_el3|SCTLR_EL3}}, x12
3244# CHECK: msr      {{actlr_el1|ACTLR_EL1}}, x12
3245# CHECK: msr      {{actlr_el2|ACTLR_EL2}}, x12
3246# CHECK: msr      {{actlr_el3|ACTLR_EL3}}, x12
3247# CHECK: msr      {{cpacr_el1|CPACR_EL1}}, x12
3248# CHECK: msr      {{hcr_el2|HCR_EL2}}, x12
3249# CHECK: msr      {{scr_el3|SCR_EL3}}, x12
3250# CHECK: msr      {{mdcr_el2|MDCR_EL2}}, x12
3251# CHECK: msr      {{sder32_el3|SDER32_EL3}}, x12
3252# CHECK: msr      {{cptr_el2|CPTR_EL2}}, x12
3253# CHECK: msr      {{cptr_el3|CPTR_EL3}}, x12
3254# CHECK: msr      {{hstr_el2|HSTR_EL2}}, x12
3255# CHECK: msr      {{hacr_el2|HACR_EL2}}, x12
3256# CHECK: msr      {{mdcr_el3|MDCR_EL3}}, x12
3257# CHECK: msr      {{ttbr0_el1|TTBR0_EL1}}, x12
3258# CHECK: msr      {{ttbr0_el2|TTBR0_EL2}}, x12
3259# CHECK: msr      {{ttbr0_el3|TTBR0_EL3}}, x12
3260# CHECK: msr      {{ttbr1_el1|TTBR1_EL1}}, x12
3261# CHECK: msr      {{tcr_el1|TCR_EL1}}, x12
3262# CHECK: msr      {{tcr_el2|TCR_EL2}}, x12
3263# CHECK: msr      {{tcr_el3|TCR_EL3}}, x12
3264# CHECK: msr      {{vttbr_el2|VTTBR_EL2}}, x12
3265# CHECK: msr      {{vtcr_el2|VTCR_EL2}}, x12
3266# CHECK: msr      {{dacr32_el2|DACR32_EL2}}, x12
3267# CHECK: msr      {{spsr_el1|SPSR_EL1}}, x12
3268# CHECK: msr      {{spsr_el2|SPSR_EL2}}, x12
3269# CHECK: msr      {{spsr_el3|SPSR_EL3}}, x12
3270# CHECK: msr      {{elr_el1|ELR_EL1}}, x12
3271# CHECK: msr      {{elr_el2|ELR_EL2}}, x12
3272# CHECK: msr      {{elr_el3|ELR_EL3}}, x12
3273# CHECK: msr      {{sp_el0|SP_EL0}}, x12
3274# CHECK: msr      {{sp_el1|SP_EL1}}, x12
3275# CHECK: msr      {{sp_el2|SP_EL2}}, x12
3276# CHECK: msr      {{SPSel|SPSEL}}, x12
3277# CHECK: msr      {{nzcv|NZCV}}, x12
3278# CHECK: msr      {{daif|DAIF}}, x12
3279# CHECK: msr      {{CurrentEL|CURRENTEL}}, x12
3280# CHECK: msr      {{SPSR_irq|SPSR_IRQ}}, x12
3281# CHECK: msr      {{SPSR_abt|SPSR_ABT}}, x12
3282# CHECK: msr      {{SPSR_und|SPSR_UND}}, x12
3283# CHECK: msr      {{SPSR_fiq|SPSR_FIQ}}, x12
3284# CHECK: msr      {{fpcr|FPCR}}, x12
3285# CHECK: msr      {{fpsr|FPSR}}, x12
3286# CHECK: msr      {{dspsr_el0|DSPSR_EL0}}, x12
3287# CHECK: msr      {{dlr_el0|DLR_EL0}}, x12
3288# CHECK: msr      {{ifsr32_el2|IFSR32_EL2}}, x12
3289# CHECK: msr      {{afsr0_el1|AFSR0_EL1}}, x12
3290# CHECK: msr      {{afsr0_el2|AFSR0_EL2}}, x12
3291# CHECK: msr      {{afsr0_el3|AFSR0_EL3}}, x12
3292# CHECK: msr      {{afsr1_el1|AFSR1_EL1}}, x12
3293# CHECK: msr      {{afsr1_el2|AFSR1_EL2}}, x12
3294# CHECK: msr      {{afsr1_el3|AFSR1_EL3}}, x12
3295# CHECK: msr      {{esr_el1|ESR_EL1}}, x12
3296# CHECK: msr      {{esr_el2|ESR_EL2}}, x12
3297# CHECK: msr      {{esr_el3|ESR_EL3}}, x12
3298# CHECK: msr      {{fpexc32_el2|FPEXC32_EL2}}, x12
3299# CHECK: msr      {{far_el1|FAR_EL1}}, x12
3300# CHECK: msr      {{far_el2|FAR_EL2}}, x12
3301# CHECK: msr      {{far_el3|FAR_EL3}}, x12
3302# CHECK: msr      {{hpfar_el2|HPFAR_EL2}}, x12
3303# CHECK: msr      {{par_el1|PAR_EL1}}, x12
3304# CHECK: msr      {{pmcr_el0|PMCR_EL0}}, x12
3305# CHECK: msr      {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3306# CHECK: msr      {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3307# CHECK: msr      {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3308# CHECK: msr      {{pmselr_el0|PMSELR_EL0}}, x12
3309# CHECK: msr      {{pmccntr_el0|PMCCNTR_EL0}}, x12
3310# CHECK: msr      {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3311# CHECK: msr      {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3312# CHECK: msr      {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3313# CHECK: msr      {{pmintenset_el1|PMINTENSET_EL1}}, x12
3314# CHECK: msr      {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3315# CHECK: msr      {{pmovsset_el0|PMOVSSET_EL0}}, x12
3316# CHECK: msr      {{mair_el1|MAIR_EL1}}, x12
3317# CHECK: msr      {{mair_el2|MAIR_EL2}}, x12
3318# CHECK: msr      {{mair_el3|MAIR_EL3}}, x12
3319# CHECK: msr      {{amair_el1|AMAIR_EL1}}, x12
3320# CHECK: msr      {{amair_el2|AMAIR_EL2}}, x12
3321# CHECK: msr      {{amair_el3|AMAIR_EL3}}, x12
3322# CHECK: msr      {{vbar_el1|VBAR_EL1}}, x12
3323# CHECK: msr      {{vbar_el2|VBAR_EL2}}, x12
3324# CHECK: msr      {{vbar_el3|VBAR_EL3}}, x12
3325# CHECK: msr      {{rmr_el1|RMR_EL1}}, x12
3326# CHECK: msr      {{rmr_el2|RMR_EL2}}, x12
3327# CHECK: msr      {{rmr_el3|RMR_EL3}}, x12
3328# CHECK: msr      {{tpidr_el0|TPIDR_EL0}}, x12
3329# CHECK: msr      {{tpidr_el2|TPIDR_EL2}}, x12
3330# CHECK: msr      {{tpidr_el3|TPIDR_EL3}}, x12
3331# CHECK: msr      {{tpidrro_el0|TPIDRRO_EL0}}, x12
3332# CHECK: msr      {{tpidr_el1|TPIDR_EL1}}, x12
3333# CHECK: msr      {{cntfrq_el0|CNTFRQ_EL0}}, x12
3334# CHECK: msr      {{cntvoff_el2|CNTVOFF_EL2}}, x12
3335# CHECK: msr      {{cntkctl_el1|CNTKCTL_EL1}}, x12
3336# CHECK: msr      {{cnthctl_el2|CNTHCTL_EL2}}, x12
3337# CHECK: msr      {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3338# CHECK: msr      {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3339# CHECK: msr      {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3340# CHECK: msr      {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3341# CHECK: msr      {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3342# CHECK: msr      {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3343# CHECK: msr      {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3344# CHECK: msr      {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3345# CHECK: msr      {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3346# CHECK: msr      {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3347# CHECK: msr      {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3348# CHECK: msr      {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3349# CHECK: msr      {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3350# CHECK: msr      {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3351# CHECK: msr      {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3352# CHECK: msr      {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3353# CHECK: msr      {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3354# CHECK: msr      {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3355# CHECK: msr      {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3356# CHECK: msr      {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3357# CHECK: msr      {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3358# CHECK: msr      {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3359# CHECK: msr      {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3360# CHECK: msr      {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3361# CHECK: msr      {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3362# CHECK: msr      {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3363# CHECK: msr      {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3364# CHECK: msr      {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3365# CHECK: msr      {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3366# CHECK: msr      {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3367# CHECK: msr      {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3368# CHECK: msr      {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3369# CHECK: msr      {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3370# CHECK: msr      {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3371# CHECK: msr      {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3372# CHECK: msr      {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3373# CHECK: msr      {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3374# CHECK: msr      {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3375# CHECK: msr      {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3376# CHECK: msr      {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3377# CHECK: msr      {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3378# CHECK: msr      {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3379# CHECK: msr      {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3380# CHECK: msr      {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3381# CHECK: msr      {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3382# CHECK: msr      {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3383# CHECK: msr      {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3384# CHECK: msr      {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3385# CHECK: msr      {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3386# CHECK: msr      {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3387# CHECK: msr      {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3388# CHECK: msr      {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3389# CHECK: msr      {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3390# CHECK: msr      {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3391# CHECK: msr      {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3392# CHECK: msr      {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3393# CHECK: msr      {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3394# CHECK: msr      {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3395# CHECK: msr      {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3396# CHECK: msr      {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3397# CHECK: msr      {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3398# CHECK: msr      {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3399# CHECK: msr      {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3400# CHECK: msr      {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3401# CHECK: msr      {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3402# CHECK: msr      {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3403# CHECK: msr      {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3404# CHECK: msr      {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3405# CHECK: msr      {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3406# CHECK: msr      {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3407# CHECK: msr      {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3408# CHECK: msr      {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3409# CHECK: msr      {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3410# CHECK: msr      {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3411# CHECK: msr      {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3412# CHECK: mrs      x9, {{teecr32_el1|TEECR32_EL1}}
3413# CHECK: mrs      x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3414# CHECK: mrs      x9, {{mdccsr_el0|MDCCSR_EL0}}
3415# CHECK: mrs      x9, {{mdccint_el1|MDCCINT_EL1}}
3416# CHECK: mrs      x9, {{mdscr_el1|MDSCR_EL1}}
3417# CHECK: mrs      x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3418# CHECK: mrs      x9, {{dbgdtr_el0|DBGDTR_EL0}}
3419# CHECK: mrs      x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3420# CHECK: mrs      x9, {{oseccr_el1|OSECCR_EL1}}
3421# CHECK: mrs      x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3422# CHECK: mrs      x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3423# CHECK: mrs      x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3424# CHECK: mrs      x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3425# CHECK: mrs      x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3426# CHECK: mrs      x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3427# CHECK: mrs      x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3428# CHECK: mrs      x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3429# CHECK: mrs      x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3430# CHECK: mrs      x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3431# CHECK: mrs      x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3432# CHECK: mrs      x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3433# CHECK: mrs      x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3434# CHECK: mrs      x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3435# CHECK: mrs      x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3436# CHECK: mrs      x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3437# CHECK: mrs      x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3438# CHECK: mrs      x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3439# CHECK: mrs      x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3440# CHECK: mrs      x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3441# CHECK: mrs      x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3442# CHECK: mrs      x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3443# CHECK: mrs      x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3444# CHECK: mrs      x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3445# CHECK: mrs      x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3446# CHECK: mrs      x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3447# CHECK: mrs      x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3448# CHECK: mrs      x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3449# CHECK: mrs      x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3450# CHECK: mrs      x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3451# CHECK: mrs      x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3452# CHECK: mrs      x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3453# CHECK: mrs      x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3454# CHECK: mrs      x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3455# CHECK: mrs      x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3456# CHECK: mrs      x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3457# CHECK: mrs      x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3458# CHECK: mrs      x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3459# CHECK: mrs      x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3460# CHECK: mrs      x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3461# CHECK: mrs      x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3462# CHECK: mrs      x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3463# CHECK: mrs      x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3464# CHECK: mrs      x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3465# CHECK: mrs      x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3466# CHECK: mrs      x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3467# CHECK: mrs      x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3468# CHECK: mrs      x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3469# CHECK: mrs      x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3470# CHECK: mrs      x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3471# CHECK: mrs      x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3472# CHECK: mrs      x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3473# CHECK: mrs      x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3474# CHECK: mrs      x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3475# CHECK: mrs      x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3476# CHECK: mrs      x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3477# CHECK: mrs      x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3478# CHECK: mrs      x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3479# CHECK: mrs      x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3480# CHECK: mrs      x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3481# CHECK: mrs      x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3482# CHECK: mrs      x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3483# CHECK: mrs      x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3484# CHECK: mrs      x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3485# CHECK: mrs      x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3486# CHECK: mrs      x9, {{mdrar_el1|MDRAR_EL1}}
3487# CHECK: mrs      x9, {{teehbr32_el1|TEEHBR32_EL1}}
3488# CHECK: mrs      x9, {{oslsr_el1|OSLSR_EL1}}
3489# CHECK: mrs      x9, {{osdlr_el1|OSDLR_EL1}}
3490# CHECK: mrs      x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3491# CHECK: mrs      x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3492# CHECK: mrs      x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3493# CHECK: mrs      x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3494# CHECK: mrs      x9, {{midr_el1|MIDR_EL1}}
3495# CHECK: mrs      x9, {{ccsidr_el1|CCSIDR_EL1}}
3496# CHECK: mrs      x9, {{csselr_el1|CSSELR_EL1}}
3497# CHECK-V83: mrs  x9, {{ccsidr2_el1|CCSIDR2_EL1}}
3498# CHECK: mrs      x9, {{vpidr_el2|VPIDR_EL2}}
3499# CHECK: mrs      x9, {{clidr_el1|CLIDR_EL1}}
3500# CHECK: mrs      x9, {{ctr_el0|CTR_EL0}}
3501# CHECK: mrs      x9, {{mpidr_el1|MPIDR_EL1}}
3502# CHECK: mrs      x9, {{vmpidr_el2|VMPIDR_EL2}}
3503# CHECK: mrs      x9, {{revidr_el1|REVIDR_EL1}}
3504# CHECK: mrs      x9, {{aidr_el1|AIDR_EL1}}
3505# CHECK: mrs      x9, {{dczid_el0|DCZID_EL0}}
3506# CHECK: mrs      x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3507# CHECK: mrs      x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3508# CHECK: mrs      x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3509# CHECK: mrs      x9, {{id_afr0_el1|ID_AFR0_EL1}}
3510# CHECK: mrs      x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3511# CHECK: mrs      x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3512# CHECK: mrs      x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3513# CHECK: mrs      x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3514# CHECK: mrs      x9, {{id_mmfr4_el1|ID_MMFR4_EL1}}
3515# CHECK: mrs      x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3516# CHECK: mrs      x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3517# CHECK: mrs      x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3518# CHECK: mrs      x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3519# CHECK: mrs      x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3520# CHECK: mrs      x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3521# CHECK: mrs      x9, {{mvfr0_el1|MVFR0_EL1}}
3522# CHECK: mrs      x9, {{mvfr1_el1|MVFR1_EL1}}
3523# CHECK: mrs      x9, {{mvfr2_el1|MVFR2_EL1}}
3524# CHECK: mrs      x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3525# CHECK: mrs      x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3526# CHECK: mrs      x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3527# CHECK: mrs      x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3528# CHECK: mrs      x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3529# CHECK: mrs      x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3530# CHECK: mrs      x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3531# CHECK: mrs      x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3532# CHECK: mrs      x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3533# CHECK: mrs      x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3534# CHECK: mrs      x9, {{sctlr_el1|SCTLR_EL1}}
3535# CHECK: mrs      x9, {{sctlr_el2|SCTLR_EL2}}
3536# CHECK: mrs      x9, {{sctlr_el3|SCTLR_EL3}}
3537# CHECK: mrs      x9, {{actlr_el1|ACTLR_EL1}}
3538# CHECK: mrs      x9, {{actlr_el2|ACTLR_EL2}}
3539# CHECK: mrs      x9, {{actlr_el3|ACTLR_EL3}}
3540# CHECK: mrs      x9, {{cpacr_el1|CPACR_EL1}}
3541# CHECK: mrs      x9, {{hcr_el2|HCR_EL2}}
3542# CHECK: mrs      x9, {{scr_el3|SCR_EL3}}
3543# CHECK: mrs      x9, {{mdcr_el2|MDCR_EL2}}
3544# CHECK: mrs      x9, {{sder32_el3|SDER32_EL3}}
3545# CHECK: mrs      x9, {{cptr_el2|CPTR_EL2}}
3546# CHECK: mrs      x9, {{cptr_el3|CPTR_EL3}}
3547# CHECK: mrs      x9, {{hstr_el2|HSTR_EL2}}
3548# CHECK: mrs      x9, {{hacr_el2|HACR_EL2}}
3549# CHECK: mrs      x9, {{mdcr_el3|MDCR_EL3}}
3550# CHECK: mrs      x9, {{ttbr0_el1|TTBR0_EL1}}
3551# CHECK: mrs      x9, {{ttbr0_el2|TTBR0_EL2}}
3552# CHECK: mrs      x9, {{ttbr0_el3|TTBR0_EL3}}
3553# CHECK: mrs      x9, {{ttbr1_el1|TTBR1_EL1}}
3554# CHECK: mrs      x9, {{tcr_el1|TCR_EL1}}
3555# CHECK: mrs      x9, {{tcr_el2|TCR_EL2}}
3556# CHECK: mrs      x9, {{tcr_el3|TCR_EL3}}
3557# CHECK: mrs      x9, {{vttbr_el2|VTTBR_EL2}}
3558# CHECK: mrs      x9, {{vtcr_el2|VTCR_EL2}}
3559# CHECK: mrs      x9, {{dacr32_el2|DACR32_EL2}}
3560# CHECK: mrs      x9, {{spsr_el1|SPSR_EL1}}
3561# CHECK: mrs      x9, {{spsr_el2|SPSR_EL2}}
3562# CHECK: mrs      x9, {{spsr_el3|SPSR_EL3}}
3563# CHECK: mrs      x9, {{elr_el1|ELR_EL1}}
3564# CHECK: mrs      x9, {{elr_el2|ELR_EL2}}
3565# CHECK: mrs      x9, {{elr_el3|ELR_EL3}}
3566# CHECK: mrs      x9, {{sp_el0|SP_EL0}}
3567# CHECK: mrs      x9, {{sp_el1|SP_EL1}}
3568# CHECK: mrs      x9, {{sp_el2|SP_EL2}}
3569# CHECK: mrs      x9, {{SPSel|SPSEL}}
3570# CHECK: mrs      x9, {{nzcv|NZCV}}
3571# CHECK: mrs      x9, {{daif|DAIF}}
3572# CHECK: mrs      x9, {{CurrentEL|CURRENTEL}}
3573# CHECK: mrs      x9, {{SPSR_irq|SPSR_IRQ}}
3574# CHECK: mrs      x9, {{SPSR_abt|SPSR_ABT}}
3575# CHECK: mrs      x9, {{SPSR_und|SPSR_UND}}
3576# CHECK: mrs      x9, {{SPSR_fiq|SPSR_FIQ}}
3577# CHECK: mrs      x9, {{fpcr|FPCR}}
3578# CHECK: mrs      x9, {{fpsr|FPSR}}
3579# CHECK: mrs      x9, {{dspsr_el0|DSPSR_EL0}}
3580# CHECK: mrs      x9, {{dlr_el0|DLR_EL0}}
3581# CHECK: mrs      x9, {{ifsr32_el2|IFSR32_EL2}}
3582# CHECK: mrs      x9, {{afsr0_el1|AFSR0_EL1}}
3583# CHECK: mrs      x9, {{afsr0_el2|AFSR0_EL2}}
3584# CHECK: mrs      x9, {{afsr0_el3|AFSR0_EL3}}
3585# CHECK: mrs      x9, {{afsr1_el1|AFSR1_EL1}}
3586# CHECK: mrs      x9, {{afsr1_el2|AFSR1_EL2}}
3587# CHECK: mrs      x9, {{afsr1_el3|AFSR1_EL3}}
3588# CHECK: mrs      x9, {{esr_el1|ESR_EL1}}
3589# CHECK: mrs      x9, {{esr_el2|ESR_EL2}}
3590# CHECK: mrs      x9, {{esr_el3|ESR_EL3}}
3591# CHECK: mrs      x9, {{fpexc32_el2|FPEXC32_EL2}}
3592# CHECK: mrs      x9, {{far_el1|FAR_EL1}}
3593# CHECK: mrs      x9, {{far_el2|FAR_EL2}}
3594# CHECK: mrs      x9, {{far_el3|FAR_EL3}}
3595# CHECK: mrs      x9, {{hpfar_el2|HPFAR_EL2}}
3596# CHECK: mrs      x9, {{par_el1|PAR_EL1}}
3597# CHECK: mrs      x9, {{pmcr_el0|PMCR_EL0}}
3598# CHECK: mrs      x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3599# CHECK: mrs      x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3600# CHECK: mrs      x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3601# CHECK: mrs      x9, {{pmselr_el0|PMSELR_EL0}}
3602# CHECK: mrs      x9, {{pmceid0_el0|PMCEID0_EL0}}
3603# CHECK: mrs      x9, {{pmceid1_el0|PMCEID1_EL0}}
3604# CHECK: mrs      x9, {{pmccntr_el0|PMCCNTR_EL0}}
3605# CHECK: mrs      x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3606# CHECK: mrs      x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3607# CHECK: mrs      x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3608# CHECK: mrs      x9, {{pmintenset_el1|PMINTENSET_EL1}}
3609# CHECK: mrs      x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3610# CHECK: mrs      x9, {{pmovsset_el0|PMOVSSET_EL0}}
3611# CHECK: mrs      x9, {{mair_el1|MAIR_EL1}}
3612# CHECK: mrs      x9, {{mair_el2|MAIR_EL2}}
3613# CHECK: mrs      x9, {{mair_el3|MAIR_EL3}}
3614# CHECK: mrs      x9, {{amair_el1|AMAIR_EL1}}
3615# CHECK: mrs      x9, {{amair_el2|AMAIR_EL2}}
3616# CHECK: mrs      x9, {{amair_el3|AMAIR_EL3}}
3617# CHECK: mrs      x9, {{vbar_el1|VBAR_EL1}}
3618# CHECK: mrs      x9, {{vbar_el2|VBAR_EL2}}
3619# CHECK: mrs      x9, {{vbar_el3|VBAR_EL3}}
3620# CHECK: mrs      x9, {{rvbar_el1|RVBAR_EL1}}
3621# CHECK: mrs      x9, {{rvbar_el2|RVBAR_EL2}}
3622# CHECK: mrs      x9, {{rvbar_el3|RVBAR_EL3}}
3623# CHECK: mrs      x9, {{rmr_el1|RMR_EL1}}
3624# CHECK: mrs      x9, {{rmr_el2|RMR_EL2}}
3625# CHECK: mrs      x9, {{rmr_el3|RMR_EL3}}
3626# CHECK: mrs      x9, {{isr_el1|ISR_EL1}}
3627# CHECK: mrs      x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3628# CHECK: mrs      x9, {{tpidr_el0|TPIDR_EL0}}
3629# CHECK: mrs      x9, {{tpidr_el2|TPIDR_EL2}}
3630# CHECK: mrs      x9, {{tpidr_el3|TPIDR_EL3}}
3631# CHECK: mrs      x9, {{tpidrro_el0|TPIDRRO_EL0}}
3632# CHECK: mrs      x9, {{tpidr_el1|TPIDR_EL1}}
3633# CHECK: mrs      x9, {{cntfrq_el0|CNTFRQ_EL0}}
3634# CHECK: mrs      x9, {{cntpct_el0|CNTPCT_EL0}}
3635# CHECK: mrs      x9, {{cntvct_el0|CNTVCT_EL0}}
3636# CHECK: mrs      x9, {{cntvoff_el2|CNTVOFF_EL2}}
3637# CHECK: mrs      x9, {{cntkctl_el1|CNTKCTL_EL1}}
3638# CHECK: mrs      x9, {{cnthctl_el2|CNTHCTL_EL2}}
3639# CHECK: mrs      x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3640# CHECK: mrs      x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3641# CHECK: mrs      x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3642# CHECK: mrs      x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3643# CHECK: mrs      x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3644# CHECK: mrs      x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3645# CHECK: mrs      x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3646# CHECK: mrs      x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3647# CHECK: mrs      x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3648# CHECK: mrs      x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3649# CHECK: mrs      x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3650# CHECK: mrs      x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3651# CHECK: mrs      x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3652# CHECK: mrs      x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3653# CHECK: mrs      x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3654# CHECK: mrs      x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3655# CHECK: mrs      x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3656# CHECK: mrs      x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3657# CHECK: mrs      x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3658# CHECK: mrs      x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3659# CHECK: mrs      x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3660# CHECK: mrs      x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3661# CHECK: mrs      x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3662# CHECK: mrs      x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3663# CHECK: mrs      x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3664# CHECK: mrs      x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3665# CHECK: mrs      x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3666# CHECK: mrs      x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3667# CHECK: mrs      x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3668# CHECK: mrs      x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3669# CHECK: mrs      x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3670# CHECK: mrs      x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3671# CHECK: mrs      x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3672# CHECK: mrs      x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3673# CHECK: mrs      x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3674# CHECK: mrs      x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3675# CHECK: mrs      x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3676# CHECK: mrs      x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3677# CHECK: mrs      x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3678# CHECK: mrs      x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3679# CHECK: mrs      x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3680# CHECK: mrs      x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3681# CHECK: mrs      x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3682# CHECK: mrs      x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3683# CHECK: mrs      x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3684# CHECK: mrs      x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3685# CHECK: mrs      x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3686# CHECK: mrs      x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3687# CHECK: mrs      x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3688# CHECK: mrs      x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3689# CHECK: mrs      x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3690# CHECK: mrs      x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3691# CHECK: mrs      x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3692# CHECK: mrs      x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3693# CHECK: mrs      x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3694# CHECK: mrs      x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3695# CHECK: mrs      x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3696# CHECK: mrs      x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3697# CHECK: mrs      x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3698# CHECK: mrs      x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3699# CHECK: mrs      x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3700# CHECK: mrs      x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3701# CHECK: mrs      x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3702# CHECK: mrs      x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3703# CHECK: mrs      x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3704# CHECK: mrs      x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3705# CHECK: mrs      x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3706# CHECK: mrs      x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3707# CHECK: mrs      x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3708# CHECK: mrs      x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3709# CHECK: mrs      x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3710# CHECK: mrs      x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3711# CHECK: mrs      x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3712# CHECK: mrs      x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3713# CHECK: mrs      x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3714
37150xc 0x0 0x12 0xd5
37160x4c 0x0 0x10 0xd5
37170xc 0x2 0x10 0xd5
37180x4c 0x2 0x10 0xd5
37190x4c 0x3 0x10 0xd5
37200xc 0x4 0x13 0xd5
37210xc 0x5 0x13 0xd5
37220x4c 0x6 0x10 0xd5
37230xc 0x7 0x14 0xd5
37240x8c 0x0 0x10 0xd5
37250x8c 0x1 0x10 0xd5
37260x8c 0x2 0x10 0xd5
37270x8c 0x3 0x10 0xd5
37280x8c 0x4 0x10 0xd5
37290x8c 0x5 0x10 0xd5
37300x8c 0x6 0x10 0xd5
37310x8c 0x7 0x10 0xd5
37320x8c 0x8 0x10 0xd5
37330x8c 0x9 0x10 0xd5
37340x8c 0xa 0x10 0xd5
37350x8c 0xb 0x10 0xd5
37360x8c 0xc 0x10 0xd5
37370x8c 0xd 0x10 0xd5
37380x8c 0xe 0x10 0xd5
37390x8c 0xf 0x10 0xd5
37400xac 0x0 0x10 0xd5
37410xac 0x1 0x10 0xd5
37420xac 0x2 0x10 0xd5
37430xac 0x3 0x10 0xd5
37440xac 0x4 0x10 0xd5
37450xac 0x5 0x10 0xd5
37460xac 0x6 0x10 0xd5
37470xac 0x7 0x10 0xd5
37480xac 0x8 0x10 0xd5
37490xac 0x9 0x10 0xd5
37500xac 0xa 0x10 0xd5
37510xac 0xb 0x10 0xd5
37520xac 0xc 0x10 0xd5
37530xac 0xd 0x10 0xd5
37540xac 0xe 0x10 0xd5
37550xac 0xf 0x10 0xd5
37560xcc 0x0 0x10 0xd5
37570xcc 0x1 0x10 0xd5
37580xcc 0x2 0x10 0xd5
37590xcc 0x3 0x10 0xd5
37600xcc 0x4 0x10 0xd5
37610xcc 0x5 0x10 0xd5
37620xcc 0x6 0x10 0xd5
37630xcc 0x7 0x10 0xd5
37640xcc 0x8 0x10 0xd5
37650xcc 0x9 0x10 0xd5
37660xcc 0xa 0x10 0xd5
37670xcc 0xb 0x10 0xd5
37680xcc 0xc 0x10 0xd5
37690xcc 0xd 0x10 0xd5
37700xcc 0xe 0x10 0xd5
37710xcc 0xf 0x10 0xd5
37720xec 0x0 0x10 0xd5
37730xec 0x1 0x10 0xd5
37740xec 0x2 0x10 0xd5
37750xec 0x3 0x10 0xd5
37760xec 0x4 0x10 0xd5
37770xec 0x5 0x10 0xd5
37780xec 0x6 0x10 0xd5
37790xec 0x7 0x10 0xd5
37800xec 0x8 0x10 0xd5
37810xec 0x9 0x10 0xd5
37820xec 0xa 0x10 0xd5
37830xec 0xb 0x10 0xd5
37840xec 0xc 0x10 0xd5
37850xec 0xd 0x10 0xd5
37860xec 0xe 0x10 0xd5
37870xec 0xf 0x10 0xd5
37880xc 0x10 0x12 0xd5
37890x8c 0x10 0x10 0xd5
37900x8c 0x13 0x10 0xd5
37910x8c 0x14 0x10 0xd5
37920xcc 0x78 0x10 0xd5
37930xcc 0x79 0x10 0xd5
37940xc 0x0 0x1a 0xd5
37950xc 0x0 0x1c 0xd5
37960xac 0x0 0x1c 0xd5
37970xc 0x10 0x18 0xd5
37980xc 0x10 0x1c 0xd5
37990xc 0x10 0x1e 0xd5
38000x2c 0x10 0x18 0xd5
38010x2c 0x10 0x1c 0xd5
38020x2c 0x10 0x1e 0xd5
38030x4c 0x10 0x18 0xd5
38040xc 0x11 0x1c 0xd5
38050xc 0x11 0x1e 0xd5
38060x2c 0x11 0x1c 0xd5
38070x2c 0x11 0x1e 0xd5
38080x4c 0x11 0x1c 0xd5
38090x4c 0x11 0x1e 0xd5
38100x6c 0x11 0x1c 0xd5
38110xec 0x11 0x1c 0xd5
38120x2c 0x13 0x1e 0xd5
38130xc 0x20 0x18 0xd5
38140xc 0x20 0x1c 0xd5
38150xc 0x20 0x1e 0xd5
38160x2c 0x20 0x18 0xd5
38170x4c 0x20 0x18 0xd5
38180x4c 0x20 0x1c 0xd5
38190x4c 0x20 0x1e 0xd5
38200xc 0x21 0x1c 0xd5
38210x4c 0x21 0x1c 0xd5
38220xc 0x30 0x1c 0xd5
38230xc 0x40 0x18 0xd5
38240xc 0x40 0x1c 0xd5
38250xc 0x40 0x1e 0xd5
38260x2c 0x40 0x18 0xd5
38270x2c 0x40 0x1c 0xd5
38280x2c 0x40 0x1e 0xd5
38290xc 0x41 0x18 0xd5
38300xc 0x41 0x1c 0xd5
38310xc 0x41 0x1e 0xd5
38320xc 0x42 0x18 0xd5
38330xc 0x42 0x1b 0xd5
38340x2c 0x42 0x1b 0xd5
38350x4c 0x42 0x18 0xd5
38360xc 0x43 0x1c 0xd5
38370x2c 0x43 0x1c 0xd5
38380x4c 0x43 0x1c 0xd5
38390x6c 0x43 0x1c 0xd5
38400xc 0x44 0x1b 0xd5
38410x2c 0x44 0x1b 0xd5
38420xc 0x45 0x1b 0xd5
38430x2c 0x45 0x1b 0xd5
38440x2c 0x50 0x1c 0xd5
38450xc 0x51 0x18 0xd5
38460xc 0x51 0x1c 0xd5
38470xc 0x51 0x1e 0xd5
38480x2c 0x51 0x18 0xd5
38490x2c 0x51 0x1c 0xd5
38500x2c 0x51 0x1e 0xd5
38510xc 0x52 0x18 0xd5
38520xc 0x52 0x1c 0xd5
38530xc 0x52 0x1e 0xd5
38540xc 0x53 0x1c 0xd5
38550xc 0x60 0x18 0xd5
38560xc 0x60 0x1c 0xd5
38570xc 0x60 0x1e 0xd5
38580x8c 0x60 0x1c 0xd5
38590xc 0x74 0x18 0xd5
38600xc 0x9c 0x1b 0xd5
38610x2c 0x9c 0x1b 0xd5
38620x4c 0x9c 0x1b 0xd5
38630x6c 0x9c 0x1b 0xd5
38640xac 0x9c 0x1b 0xd5
38650xc 0x9d 0x1b 0xd5
38660x2c 0x9d 0x1b 0xd5
38670x4c 0x9d 0x1b 0xd5
38680xc 0x9e 0x1b 0xd5
38690x2c 0x9e 0x18 0xd5
38700x4c 0x9e 0x18 0xd5
38710x6c 0x9e 0x1b 0xd5
38720xc 0xa2 0x18 0xd5
38730xc 0xa2 0x1c 0xd5
38740xc 0xa2 0x1e 0xd5
38750xc 0xa3 0x18 0xd5
38760xc 0xa3 0x1c 0xd5
38770xc 0xa3 0x1e 0xd5
38780xc 0xc0 0x18 0xd5
38790xc 0xc0 0x1c 0xd5
38800xc 0xc0 0x1e 0xd5
38810x4c 0xc0 0x18 0xd5
38820x4c 0xc0 0x1c 0xd5
38830x4c 0xc0 0x1e 0xd5
38840x4c 0xd0 0x1b 0xd5
38850x4c 0xd0 0x1c 0xd5
38860x4c 0xd0 0x1e 0xd5
38870x6c 0xd0 0x1b 0xd5
38880x8c 0xd0 0x18 0xd5
38890xc 0xe0 0x1b 0xd5
38900x6c 0xe0 0x1c 0xd5
38910xc 0xe1 0x18 0xd5
38920xc 0xe1 0x1c 0xd5
38930xc 0xe2 0x1b 0xd5
38940xc 0xe2 0x1c 0xd5
38950xc 0xe2 0x1f 0xd5
38960x2c 0xe2 0x1b 0xd5
38970x2c 0xe2 0x1c 0xd5
38980x2c 0xe2 0x1f 0xd5
38990x4c 0xe2 0x1b 0xd5
39000x4c 0xe2 0x1c 0xd5
39010x4c 0xe2 0x1f 0xd5
39020xc 0xe3 0x1b 0xd5
39030x2c 0xe3 0x1b 0xd5
39040x4c 0xe3 0x1b 0xd5
39050xc 0xe8 0x1b 0xd5
39060x2c 0xe8 0x1b 0xd5
39070x4c 0xe8 0x1b 0xd5
39080x6c 0xe8 0x1b 0xd5
39090x8c 0xe8 0x1b 0xd5
39100xac 0xe8 0x1b 0xd5
39110xcc 0xe8 0x1b 0xd5
39120xec 0xe8 0x1b 0xd5
39130xc 0xe9 0x1b 0xd5
39140x2c 0xe9 0x1b 0xd5
39150x4c 0xe9 0x1b 0xd5
39160x6c 0xe9 0x1b 0xd5
39170x8c 0xe9 0x1b 0xd5
39180xac 0xe9 0x1b 0xd5
39190xcc 0xe9 0x1b 0xd5
39200xec 0xe9 0x1b 0xd5
39210xc 0xea 0x1b 0xd5
39220x2c 0xea 0x1b 0xd5
39230x4c 0xea 0x1b 0xd5
39240x6c 0xea 0x1b 0xd5
39250x8c 0xea 0x1b 0xd5
39260xac 0xea 0x1b 0xd5
39270xcc 0xea 0x1b 0xd5
39280xec 0xea 0x1b 0xd5
39290xc 0xeb 0x1b 0xd5
39300x2c 0xeb 0x1b 0xd5
39310x4c 0xeb 0x1b 0xd5
39320x6c 0xeb 0x1b 0xd5
39330x8c 0xeb 0x1b 0xd5
39340xac 0xeb 0x1b 0xd5
39350xcc 0xeb 0x1b 0xd5
39360xec 0xef 0x1b 0xd5
39370xc 0xec 0x1b 0xd5
39380x2c 0xec 0x1b 0xd5
39390x4c 0xec 0x1b 0xd5
39400x6c 0xec 0x1b 0xd5
39410x8c 0xec 0x1b 0xd5
39420xac 0xec 0x1b 0xd5
39430xcc 0xec 0x1b 0xd5
39440xec 0xec 0x1b 0xd5
39450xc 0xed 0x1b 0xd5
39460x2c 0xed 0x1b 0xd5
39470x4c 0xed 0x1b 0xd5
39480x6c 0xed 0x1b 0xd5
39490x8c 0xed 0x1b 0xd5
39500xac 0xed 0x1b 0xd5
39510xcc 0xed 0x1b 0xd5
39520xec 0xed 0x1b 0xd5
39530xc 0xee 0x1b 0xd5
39540x2c 0xee 0x1b 0xd5
39550x4c 0xee 0x1b 0xd5
39560x6c 0xee 0x1b 0xd5
39570x8c 0xee 0x1b 0xd5
39580xac 0xee 0x1b 0xd5
39590xcc 0xee 0x1b 0xd5
39600xec 0xee 0x1b 0xd5
39610xc 0xef 0x1b 0xd5
39620x2c 0xef 0x1b 0xd5
39630x4c 0xef 0x1b 0xd5
39640x6c 0xef 0x1b 0xd5
39650x8c 0xef 0x1b 0xd5
39660xac 0xef 0x1b 0xd5
39670xcc 0xef 0x1b 0xd5
39680x9 0x0 0x32 0xd5
39690x49 0x0 0x30 0xd5
39700x9 0x1 0x33 0xd5
39710x9 0x2 0x30 0xd5
39720x49 0x2 0x30 0xd5
39730x49 0x3 0x30 0xd5
39740x9 0x4 0x33 0xd5
39750x9 0x5 0x33 0xd5
39760x49 0x6 0x30 0xd5
39770x9 0x7 0x34 0xd5
39780x89 0x0 0x30 0xd5
39790x89 0x1 0x30 0xd5
39800x89 0x2 0x30 0xd5
39810x89 0x3 0x30 0xd5
39820x89 0x4 0x30 0xd5
39830x89 0x5 0x30 0xd5
39840x89 0x6 0x30 0xd5
39850x89 0x7 0x30 0xd5
39860x89 0x8 0x30 0xd5
39870x89 0x9 0x30 0xd5
39880x89 0xa 0x30 0xd5
39890x89 0xb 0x30 0xd5
39900x89 0xc 0x30 0xd5
39910x89 0xd 0x30 0xd5
39920x89 0xe 0x30 0xd5
39930x89 0xf 0x30 0xd5
39940xa9 0x0 0x30 0xd5
39950xa9 0x1 0x30 0xd5
39960xa9 0x2 0x30 0xd5
39970xa9 0x3 0x30 0xd5
39980xa9 0x4 0x30 0xd5
39990xa9 0x5 0x30 0xd5
40000xa9 0x6 0x30 0xd5
40010xa9 0x7 0x30 0xd5
40020xa9 0x8 0x30 0xd5
40030xa9 0x9 0x30 0xd5
40040xa9 0xa 0x30 0xd5
40050xa9 0xb 0x30 0xd5
40060xa9 0xc 0x30 0xd5
40070xa9 0xd 0x30 0xd5
40080xa9 0xe 0x30 0xd5
40090xa9 0xf 0x30 0xd5
40100xc9 0x0 0x30 0xd5
40110xc9 0x1 0x30 0xd5
40120xc9 0x2 0x30 0xd5
40130xc9 0x3 0x30 0xd5
40140xc9 0x4 0x30 0xd5
40150xc9 0x5 0x30 0xd5
40160xc9 0x6 0x30 0xd5
40170xc9 0x7 0x30 0xd5
40180xc9 0x8 0x30 0xd5
40190xc9 0x9 0x30 0xd5
40200xc9 0xa 0x30 0xd5
40210xc9 0xb 0x30 0xd5
40220xc9 0xc 0x30 0xd5
40230xc9 0xd 0x30 0xd5
40240xc9 0xe 0x30 0xd5
40250xc9 0xf 0x30 0xd5
40260xe9 0x0 0x30 0xd5
40270xe9 0x1 0x30 0xd5
40280xe9 0x2 0x30 0xd5
40290xe9 0x3 0x30 0xd5
40300xe9 0x4 0x30 0xd5
40310xe9 0x5 0x30 0xd5
40320xe9 0x6 0x30 0xd5
40330xe9 0x7 0x30 0xd5
40340xe9 0x8 0x30 0xd5
40350xe9 0x9 0x30 0xd5
40360xe9 0xa 0x30 0xd5
40370xe9 0xb 0x30 0xd5
40380xe9 0xc 0x30 0xd5
40390xe9 0xd 0x30 0xd5
40400xe9 0xe 0x30 0xd5
40410xe9 0xf 0x30 0xd5
40420x9 0x10 0x30 0xd5
40430x9 0x10 0x32 0xd5
40440x89 0x11 0x30 0xd5
40450x89 0x13 0x30 0xd5
40460x89 0x14 0x30 0xd5
40470xc9 0x78 0x30 0xd5
40480xc9 0x79 0x30 0xd5
40490xc9 0x7e 0x30 0xd5
40500x9 0x0 0x38 0xd5
40510x9 0x0 0x39 0xd5
40520x9 0x0 0x3a 0xd5
40530x49 0x0 0x39 0xd5
40540x9 0x0 0x3c 0xd5
40550x29 0x0 0x39 0xd5
40560x29 0x0 0x3b 0xd5
40570xa9 0x0 0x38 0xd5
40580xa9 0x0 0x3c 0xd5
40590xc9 0x0 0x38 0xd5
40600xe9 0x0 0x39 0xd5
40610xe9 0x0 0x3b 0xd5
40620x9 0x1 0x38 0xd5
40630x29 0x1 0x38 0xd5
40640x49 0x1 0x38 0xd5
40650x69 0x1 0x38 0xd5
40660x89 0x1 0x38 0xd5
40670xa9 0x1 0x38 0xd5
40680xc9 0x1 0x38 0xd5
40690xe9 0x1 0x38 0xd5
40700xc9 0x2 0x38 0xd5
40710x9 0x2 0x38 0xd5
40720x29 0x2 0x38 0xd5
40730x49 0x2 0x38 0xd5
40740x69 0x2 0x38 0xd5
40750x89 0x2 0x38 0xd5
40760xa9 0x2 0x38 0xd5
40770x9 0x3 0x38 0xd5
40780x29 0x3 0x38 0xd5
40790x49 0x3 0x38 0xd5
40800x9 0x4 0x38 0xd5
40810x29 0x4 0x38 0xd5
40820x9 0x5 0x38 0xd5
40830x29 0x5 0x38 0xd5
40840x89 0x5 0x38 0xd5
40850xa9 0x5 0x38 0xd5
40860x9 0x6 0x38 0xd5
40870x29 0x6 0x38 0xd5
40880x9 0x7 0x38 0xd5
40890x29 0x7 0x38 0xd5
40900x9 0x10 0x38 0xd5
40910x9 0x10 0x3c 0xd5
40920x9 0x10 0x3e 0xd5
40930x29 0x10 0x38 0xd5
40940x29 0x10 0x3c 0xd5
40950x29 0x10 0x3e 0xd5
40960x49 0x10 0x38 0xd5
40970x9 0x11 0x3c 0xd5
40980x9 0x11 0x3e 0xd5
40990x29 0x11 0x3c 0xd5
41000x29 0x11 0x3e 0xd5
41010x49 0x11 0x3c 0xd5
41020x49 0x11 0x3e 0xd5
41030x69 0x11 0x3c 0xd5
41040xe9 0x11 0x3c 0xd5
41050x29 0x13 0x3e 0xd5
41060x9 0x20 0x38 0xd5
41070x9 0x20 0x3c 0xd5
41080x9 0x20 0x3e 0xd5
41090x29 0x20 0x38 0xd5
41100x49 0x20 0x38 0xd5
41110x49 0x20 0x3c 0xd5
41120x49 0x20 0x3e 0xd5
41130x9 0x21 0x3c 0xd5
41140x49 0x21 0x3c 0xd5
41150x9 0x30 0x3c 0xd5
41160x9 0x40 0x38 0xd5
41170x9 0x40 0x3c 0xd5
41180x9 0x40 0x3e 0xd5
41190x29 0x40 0x38 0xd5
41200x29 0x40 0x3c 0xd5
41210x29 0x40 0x3e 0xd5
41220x9 0x41 0x38 0xd5
41230x9 0x41 0x3c 0xd5
41240x9 0x41 0x3e 0xd5
41250x9 0x42 0x38 0xd5
41260x9 0x42 0x3b 0xd5
41270x29 0x42 0x3b 0xd5
41280x49 0x42 0x38 0xd5
41290x9 0x43 0x3c 0xd5
41300x29 0x43 0x3c 0xd5
41310x49 0x43 0x3c 0xd5
41320x69 0x43 0x3c 0xd5
41330x9 0x44 0x3b 0xd5
41340x29 0x44 0x3b 0xd5
41350x9 0x45 0x3b 0xd5
41360x29 0x45 0x3b 0xd5
41370x29 0x50 0x3c 0xd5
41380x9 0x51 0x38 0xd5
41390x9 0x51 0x3c 0xd5
41400x9 0x51 0x3e 0xd5
41410x29 0x51 0x38 0xd5
41420x29 0x51 0x3c 0xd5
41430x29 0x51 0x3e 0xd5
41440x9 0x52 0x38 0xd5
41450x9 0x52 0x3c 0xd5
41460x9 0x52 0x3e 0xd5
41470x9 0x53 0x3c 0xd5
41480x9 0x60 0x38 0xd5
41490x9 0x60 0x3c 0xd5
41500x9 0x60 0x3e 0xd5
41510x89 0x60 0x3c 0xd5
41520x9 0x74 0x38 0xd5
41530x9 0x9c 0x3b 0xd5
41540x29 0x9c 0x3b 0xd5
41550x49 0x9c 0x3b 0xd5
41560x69 0x9c 0x3b 0xd5
41570xa9 0x9c 0x3b 0xd5
41580xc9 0x9c 0x3b 0xd5
41590xe9 0x9c 0x3b 0xd5
41600x9 0x9d 0x3b 0xd5
41610x29 0x9d 0x3b 0xd5
41620x49 0x9d 0x3b 0xd5
41630x9 0x9e 0x3b 0xd5
41640x29 0x9e 0x38 0xd5
41650x49 0x9e 0x38 0xd5
41660x69 0x9e 0x3b 0xd5
41670x9 0xa2 0x38 0xd5
41680x9 0xa2 0x3c 0xd5
41690x9 0xa2 0x3e 0xd5
41700x9 0xa3 0x38 0xd5
41710x9 0xa3 0x3c 0xd5
41720x9 0xa3 0x3e 0xd5
41730x9 0xc0 0x38 0xd5
41740x9 0xc0 0x3c 0xd5
41750x9 0xc0 0x3e 0xd5
41760x29 0xc0 0x38 0xd5
41770x29 0xc0 0x3c 0xd5
41780x29 0xc0 0x3e 0xd5
41790x49 0xc0 0x38 0xd5
41800x49 0xc0 0x3c 0xd5
41810x49 0xc0 0x3e 0xd5
41820x9 0xc1 0x38 0xd5
41830x29 0xd0 0x38 0xd5
41840x49 0xd0 0x3b 0xd5
41850x49 0xd0 0x3c 0xd5
41860x49 0xd0 0x3e 0xd5
41870x69 0xd0 0x3b 0xd5
41880x89 0xd0 0x38 0xd5
41890x9 0xe0 0x3b 0xd5
41900x29 0xe0 0x3b 0xd5
41910x49 0xe0 0x3b 0xd5
41920x69 0xe0 0x3c 0xd5
41930x9 0xe1 0x38 0xd5
41940x9 0xe1 0x3c 0xd5
41950x9 0xe2 0x3b 0xd5
41960x9 0xe2 0x3c 0xd5
41970x9 0xe2 0x3f 0xd5
41980x29 0xe2 0x3b 0xd5
41990x29 0xe2 0x3c 0xd5
42000x29 0xe2 0x3f 0xd5
42010x49 0xe2 0x3b 0xd5
42020x49 0xe2 0x3c 0xd5
42030x49 0xe2 0x3f 0xd5
42040x9 0xe3 0x3b 0xd5
42050x29 0xe3 0x3b 0xd5
42060x49 0xe3 0x3b 0xd5
42070x9 0xe8 0x3b 0xd5
42080x29 0xe8 0x3b 0xd5
42090x49 0xe8 0x3b 0xd5
42100x69 0xe8 0x3b 0xd5
42110x89 0xe8 0x3b 0xd5
42120xa9 0xe8 0x3b 0xd5
42130xc9 0xe8 0x3b 0xd5
42140xe9 0xe8 0x3b 0xd5
42150x9 0xe9 0x3b 0xd5
42160x29 0xe9 0x3b 0xd5
42170x49 0xe9 0x3b 0xd5
42180x69 0xe9 0x3b 0xd5
42190x89 0xe9 0x3b 0xd5
42200xa9 0xe9 0x3b 0xd5
42210xc9 0xe9 0x3b 0xd5
42220xe9 0xe9 0x3b 0xd5
42230x9 0xea 0x3b 0xd5
42240x29 0xea 0x3b 0xd5
42250x49 0xea 0x3b 0xd5
42260x69 0xea 0x3b 0xd5
42270x89 0xea 0x3b 0xd5
42280xa9 0xea 0x3b 0xd5
42290xc9 0xea 0x3b 0xd5
42300xe9 0xea 0x3b 0xd5
42310x9 0xeb 0x3b 0xd5
42320x29 0xeb 0x3b 0xd5
42330x49 0xeb 0x3b 0xd5
42340x69 0xeb 0x3b 0xd5
42350x89 0xeb 0x3b 0xd5
42360xa9 0xeb 0x3b 0xd5
42370xc9 0xeb 0x3b 0xd5
42380xe9 0xef 0x3b 0xd5
42390x9 0xec 0x3b 0xd5
42400x29 0xec 0x3b 0xd5
42410x49 0xec 0x3b 0xd5
42420x69 0xec 0x3b 0xd5
42430x89 0xec 0x3b 0xd5
42440xa9 0xec 0x3b 0xd5
42450xc9 0xec 0x3b 0xd5
42460xe9 0xec 0x3b 0xd5
42470x9 0xed 0x3b 0xd5
42480x29 0xed 0x3b 0xd5
42490x49 0xed 0x3b 0xd5
42500x69 0xed 0x3b 0xd5
42510x89 0xed 0x3b 0xd5
42520xa9 0xed 0x3b 0xd5
42530xc9 0xed 0x3b 0xd5
42540xe9 0xed 0x3b 0xd5
42550x9 0xee 0x3b 0xd5
42560x29 0xee 0x3b 0xd5
42570x49 0xee 0x3b 0xd5
42580x69 0xee 0x3b 0xd5
42590x89 0xee 0x3b 0xd5
42600xa9 0xee 0x3b 0xd5
42610xc9 0xee 0x3b 0xd5
42620xe9 0xee 0x3b 0xd5
42630x9 0xef 0x3b 0xd5
42640x29 0xef 0x3b 0xd5
42650x49 0xef 0x3b 0xd5
42660x69 0xef 0x3b 0xd5
42670x89 0xef 0x3b 0xd5
42680xa9 0xef 0x3b 0xd5
42690xc9 0xef 0x3b 0xd5
4270
4271# CHECK: mrs     x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4272# CHECK: mrs     x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4273# CHECK: mrs     xzr, {{s0_0_c4_c0_0|S0_0_C4_C0_0}}
4274# CHECK: msr     {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4275# CHECK: msr     {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4276# CHECK: msr     {{s0_0_c4_c0_0|S0_0_C4_C0_0}}, xzr
42770xac 0xf1 0x3f 0xd5
42780xed 0xbf 0x3a 0xd5
42790x1f 0x40 0x20 0xd5
42800x0c 0xf0 0x18 0xd5
42810xe5 0xbd 0x1f 0xd5
42820x1f 0x40 0x00 0xd5
4283
4284#------------------------------------------------------------------------------
4285# Test and branch (immediate)
4286#------------------------------------------------------------------------------
4287
4288# CHECK: tbz     x12, #62, #0
4289# CHECK: tbz     x12, #62, #4
4290# CHECK: tbz     x12, #62, #-32768
4291# CHECK: tbnz    x12, #60, #32764
42920x0c 0x00 0xf0 0xb6
42930x2c 0x00 0xf0 0xb6
42940x0c 0x00 0xf4 0xb6
42950xec 0xff 0xe3 0xb7
4296
4297#------------------------------------------------------------------------------
4298# Unconditional branch (immediate)
4299#------------------------------------------------------------------------------
4300
4301# CHECK: b        #4
4302# CHECK: b        #-4
4303# CHECK: b        #134217724
43040x01 0x00 0x00 0x14
43050xff 0xff 0xff 0x17
43060xff 0xff 0xff 0x15
4307
4308#------------------------------------------------------------------------------
4309# Unconditional branch (register)
4310#------------------------------------------------------------------------------
4311
4312# CHECK: br       x20
4313# CHECK: blr      xzr
4314# CHECK: ret      x10
43150x80 0x2 0x1f 0xd6
43160xe0 0x3 0x3f 0xd6
43170x40 0x1 0x5f 0xd6
4318
4319# CHECK: ret
4320# CHECK: eret
4321# CHECK: drps
43220xc0 0x3 0x5f 0xd6
43230xe0 0x3 0x9f 0xd6
43240xe0 0x3 0xbf 0xd6
4325
4326