• 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
5#------------------------------------------------------------------------------
6# Add/sub (immediate)
7#------------------------------------------------------------------------------
8# CHECK: add      w4, w5, #0
9# CHECK: add      w2, w3, #4095
10# CHECK: add      w30, w29, #1, lsl #12
11# CHECK: add      w13, w5, #4095, lsl #12
12# CHECK: add      x5, x7, #1638
130xa4 0x0 0x0 0x11
140x62 0xfc 0x3f 0x11
150xbe 0x7 0x40 0x11
160xad 0xfc 0x7f 0x11
170xe5 0x98 0x19 0x91
18
19# CHECK: add      w20, wsp, #801
20# CHECK: add      wsp, wsp, #1104
21# CHECK: add      wsp, w30, #4084
220xf4 0x87 0xc 0x11
230xff 0x43 0x11 0x11
240xdf 0xd3 0x3f 0x11
25
26# CHECK: add      x0, x24, #291
27# CHECK: add      x3, x24, #4095, lsl #12
28# CHECK: add      x8, sp, #1074
29# CHECK: add      sp, x29, #3816
300x0 0x8f 0x4 0x91
310x3 0xff 0x7f 0x91
320xe8 0xcb 0x10 0x91
330xbf 0xa3 0x3b 0x91
34
35# CHECK: sub      w0, wsp, #4077
36# CHECK: sub      w4, w20, #546, lsl #12
37# CHECK: sub      sp, sp, #288
38# CHECK: sub      wsp, w19, #16
390xe0 0xb7 0x3f 0x51
400x84 0x8a 0x48 0x51
410xff 0x83 0x4 0xd1
420x7f 0x42 0x0 0x51
43
44
45# CHECK: adds     w13, w23, #291, lsl #12
46# CHECK: cmn      w2, #4095
47# CHECK: adds     w20, wsp, #0
48# CHECK: cmn      x3, #1, lsl #12
490xed 0x8e 0x44 0x31
500x5f 0xfc 0x3f 0x31
510xf4 0x3 0x0 0x31
520x7f 0x4 0x40 0xb1
53
54# CHECK: cmp      sp, #20, lsl #12
55# CHECK: cmp      x30, #4095
56# CHECK: subs     x4, sp, #3822
570xff 0x53 0x40 0xf1
580xdf 0xff 0x3f 0xf1
590xe4 0xbb 0x3b 0xf1
60
61# These should really be CMN
62# CHECK: cmn      w3, #291, lsl #12
63# CHECK: cmn      wsp, #1365
64# CHECK: cmn      sp, #1092, lsl #12
650x7f 0x8c 0x44 0x31
660xff 0x57 0x15 0x31
670xff 0x13 0x51 0xb1
68
69# CHECK: mov      sp, x30
70# CHECK: mov      wsp, w20
71# CHECK: mov      x11, sp
72# CHECK: mov      w24, wsp
730xdf 0x3 0x0 0x91
740x9f 0x2 0x0 0x11
750xeb 0x3 0x0 0x91
760xf8 0x3 0x0 0x11
77
78#------------------------------------------------------------------------------
79# Add-subtract (shifted register)
80#------------------------------------------------------------------------------
81
82# CHECK: add      w3, w5, w7
83# CHECK: add      wzr, w3, w5
84# CHECK: add      w20, wzr, w4
85# CHECK: add      w4, w6, wzr
86# CHECK: add      w11, w13, w15
87# CHECK: add      w9, w3, wzr, lsl #10
88# CHECK: add      w17, w29, w20, lsl #31
89# CHECK: add      w21, w22, w23, lsr #0
90# CHECK: add      w24, w25, w26, lsr #18
91# CHECK: add      w27, w28, w29, lsr #31
92# CHECK: add      w2, w3, w4, asr #0
93# CHECK: add      w5, w6, w7, asr #21
94# CHECK: add      w8, w9, w10, asr #31
950xa3 0x0 0x7 0xb
960x7f 0x0 0x5 0xb
970xf4 0x3 0x4 0xb
980xc4 0x0 0x1f 0xb
990xab 0x1 0xf 0xb
1000x69 0x28 0x1f 0xb
1010xb1 0x7f 0x14 0xb
1020xd5 0x2 0x57 0xb
1030x38 0x4b 0x5a 0xb
1040x9b 0x7f 0x5d 0xb
1050x62 0x0 0x84 0xb
1060xc5 0x54 0x87 0xb
1070x28 0x7d 0x8a 0xb
108
109# CHECK: add      x3, x5, x7
110# CHECK: add      xzr, x3, x5
111# CHECK: add      x20, xzr, x4
112# CHECK: add      x4, x6, xzr
113# CHECK: add      x11, x13, x15
114# CHECK: add      x9, x3, xzr, lsl #10
115# CHECK: add      x17, x29, x20, lsl #63
116# CHECK: add      x21, x22, x23, lsr #0
117# CHECK: add      x24, x25, x26, lsr #18
118# CHECK: add      x27, x28, x29, lsr #63
119# CHECK: add      x2, x3, x4, asr #0
120# CHECK: add      x5, x6, x7, asr #21
121# CHECK: add      x8, x9, x10, asr #63
1220xa3 0x0 0x7 0x8b
1230x7f 0x0 0x5 0x8b
1240xf4 0x3 0x4 0x8b
1250xc4 0x0 0x1f 0x8b
1260xab 0x1 0xf 0x8b
1270x69 0x28 0x1f 0x8b
1280xb1 0xff 0x14 0x8b
1290xd5 0x2 0x57 0x8b
1300x38 0x4b 0x5a 0x8b
1310x9b 0xff 0x5d 0x8b
1320x62 0x0 0x84 0x8b
1330xc5 0x54 0x87 0x8b
1340x28 0xfd 0x8a 0x8b
135
136# CHECK: adds     w3, w5, w7
137# CHECK: cmn      w3, w5
138# CHECK: adds     w20, wzr, w4
139# CHECK: adds     w4, w6, wzr
140# CHECK: adds     w11, w13, w15
141# CHECK: adds     w9, w3, wzr, lsl #10
142# CHECK: adds     w17, w29, w20, lsl #31
143# CHECK: adds     w21, w22, w23, lsr #0
144# CHECK: adds     w24, w25, w26, lsr #18
145# CHECK: adds     w27, w28, w29, lsr #31
146# CHECK: adds     w2, w3, w4, asr #0
147# CHECK: adds     w5, w6, w7, asr #21
148# CHECK: adds     w8, w9, w10, asr #31
1490xa3 0x0 0x7 0x2b
1500x7f 0x0 0x5 0x2b
1510xf4 0x3 0x4 0x2b
1520xc4 0x0 0x1f 0x2b
1530xab 0x1 0xf 0x2b
1540x69 0x28 0x1f 0x2b
1550xb1 0x7f 0x14 0x2b
1560xd5 0x2 0x57 0x2b
1570x38 0x4b 0x5a 0x2b
1580x9b 0x7f 0x5d 0x2b
1590x62 0x0 0x84 0x2b
1600xc5 0x54 0x87 0x2b
1610x28 0x7d 0x8a 0x2b
162
163# CHECK: adds     x3, x5, x7
164# CHECK: cmn      x3, x5
165# CHECK: adds     x20, xzr, x4
166# CHECK: adds     x4, x6, xzr
167# CHECK: adds     x11, x13, x15
168# CHECK: adds     x9, x3, xzr, lsl #10
169# CHECK: adds     x17, x29, x20, lsl #63
170# CHECK: adds     x21, x22, x23, lsr #0
171# CHECK: adds     x24, x25, x26, lsr #18
172# CHECK: adds     x27, x28, x29, lsr #63
173# CHECK: adds     x2, x3, x4, asr #0
174# CHECK: adds     x5, x6, x7, asr #21
175# CHECK: adds     x8, x9, x10, asr #63
1760xa3 0x0 0x7 0xab
1770x7f 0x0 0x5 0xab
1780xf4 0x3 0x4 0xab
1790xc4 0x0 0x1f 0xab
1800xab 0x1 0xf 0xab
1810x69 0x28 0x1f 0xab
1820xb1 0xff 0x14 0xab
1830xd5 0x2 0x57 0xab
1840x38 0x4b 0x5a 0xab
1850x9b 0xff 0x5d 0xab
1860x62 0x0 0x84 0xab
1870xc5 0x54 0x87 0xab
1880x28 0xfd 0x8a 0xab
189
190# CHECK: sub      w3, w5, w7
191# CHECK: sub      wzr, w3, w5
192# CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
193# CHECK: sub      w4, w6, wzr
194# CHECK: sub      w11, w13, w15
195# CHECK: sub      w9, w3, wzr, lsl #10
196# CHECK: sub      w17, w29, w20, lsl #31
197# CHECK: sub      w21, w22, w23, lsr #0
198# CHECK: sub      w24, w25, w26, lsr #18
199# CHECK: sub      w27, w28, w29, lsr #31
200# CHECK: sub      w2, w3, w4, asr #0
201# CHECK: sub      w5, w6, w7, asr #21
202# CHECK: sub      w8, w9, w10, asr #31
2030xa3 0x0 0x7 0x4b
2040x7f 0x0 0x5 0x4b
2050xf4 0x3 0x4 0x4b
2060xc4 0x0 0x1f 0x4b
2070xab 0x1 0xf 0x4b
2080x69 0x28 0x1f 0x4b
2090xb1 0x7f 0x14 0x4b
2100xd5 0x2 0x57 0x4b
2110x38 0x4b 0x5a 0x4b
2120x9b 0x7f 0x5d 0x4b
2130x62 0x0 0x84 0x4b
2140xc5 0x54 0x87 0x4b
2150x28 0x7d 0x8a 0x4b
216
217# CHECK: sub      x3, x5, x7
218# CHECK: sub      xzr, x3, x5
219# CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
220# CHECK: sub      x4, x6, xzr
221# CHECK: sub      x11, x13, x15
222# CHECK: sub      x9, x3, xzr, lsl #10
223# CHECK: sub      x17, x29, x20, lsl #63
224# CHECK: sub      x21, x22, x23, lsr #0
225# CHECK: sub      x24, x25, x26, lsr #18
226# CHECK: sub      x27, x28, x29, lsr #63
227# CHECK: sub      x2, x3, x4, asr #0
228# CHECK: sub      x5, x6, x7, asr #21
229# CHECK: sub      x8, x9, x10, asr #63
2300xa3 0x0 0x7 0xcb
2310x7f 0x0 0x5 0xcb
2320xf4 0x3 0x4 0xcb
2330xc4 0x0 0x1f 0xcb
2340xab 0x1 0xf 0xcb
2350x69 0x28 0x1f 0xcb
2360xb1 0xff 0x14 0xcb
2370xd5 0x2 0x57 0xcb
2380x38 0x4b 0x5a 0xcb
2390x9b 0xff 0x5d 0xcb
2400x62 0x0 0x84 0xcb
2410xc5 0x54 0x87 0xcb
2420x28 0xfd 0x8a 0xcb
243
244# CHECK: subs     w3, w5, w7
245# CHECK: cmp      w3, w5
246# CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
247# CHECK: subs     w4, w6, wzr
248# CHECK: subs     w11, w13, w15
249# CHECK: subs     w9, w3, wzr, lsl #10
250# CHECK: subs     w17, w29, w20, lsl #31
251# CHECK: subs     w21, w22, w23, lsr #0
252# CHECK: subs     w24, w25, w26, lsr #18
253# CHECK: subs     w27, w28, w29, lsr #31
254# CHECK: subs     w2, w3, w4, asr #0
255# CHECK: subs     w5, w6, w7, asr #21
256# CHECK: subs     w8, w9, w10, asr #31
2570xa3 0x0 0x7 0x6b
2580x7f 0x0 0x5 0x6b
2590xf4 0x3 0x4 0x6b
2600xc4 0x0 0x1f 0x6b
2610xab 0x1 0xf 0x6b
2620x69 0x28 0x1f 0x6b
2630xb1 0x7f 0x14 0x6b
2640xd5 0x2 0x57 0x6b
2650x38 0x4b 0x5a 0x6b
2660x9b 0x7f 0x5d 0x6b
2670x62 0x0 0x84 0x6b
2680xc5 0x54 0x87 0x6b
2690x28 0x7d 0x8a 0x6b
270
271# CHECK: subs     x3, x5, x7
272# CHECK: cmp      x3, x5
273# CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
274# CHECK: subs     x4, x6, xzr
275# CHECK: subs     x11, x13, x15
276# CHECK: subs     x9, x3, xzr, lsl #10
277# CHECK: subs     x17, x29, x20, lsl #63
278# CHECK: subs     x21, x22, x23, lsr #0
279# CHECK: subs     x24, x25, x26, lsr #18
280# CHECK: subs     x27, x28, x29, lsr #63
281# CHECK: subs     x2, x3, x4, asr #0
282# CHECK: subs     x5, x6, x7, asr #21
283# CHECK: subs     x8, x9, x10, asr #63
2840xa3 0x0 0x7 0xeb
2850x7f 0x0 0x5 0xeb
2860xf4 0x3 0x4 0xeb
2870xc4 0x0 0x1f 0xeb
2880xab 0x1 0xf 0xeb
2890x69 0x28 0x1f 0xeb
2900xb1 0xff 0x14 0xeb
2910xd5 0x2 0x57 0xeb
2920x38 0x4b 0x5a 0xeb
2930x9b 0xff 0x5d 0xeb
2940x62 0x0 0x84 0xeb
2950xc5 0x54 0x87 0xeb
2960x28 0xfd 0x8a 0xeb
297
298# CHECK: cmn      w0, w3
299# CHECK: cmn      wzr, w4
300# CHECK: cmn      w5, wzr
301# CHECK: cmn      w6, w7
302# CHECK: cmn      w8, w9, lsl #15
303# CHECK: cmn      w10, w11, lsl #31
304# CHECK: cmn      w12, w13, lsr #0
305# CHECK: cmn      w14, w15, lsr #21
306# CHECK: cmn      w16, w17, lsr #31
307# CHECK: cmn      w18, w19, asr #0
308# CHECK: cmn      w20, w21, asr #22
309# CHECK: cmn      w22, w23, asr #31
3100x1f 0x0 0x3 0x2b
3110xff 0x3 0x4 0x2b
3120xbf 0x0 0x1f 0x2b
3130xdf 0x0 0x7 0x2b
3140x1f 0x3d 0x9 0x2b
3150x5f 0x7d 0xb 0x2b
3160x9f 0x1 0x4d 0x2b
3170xdf 0x55 0x4f 0x2b
3180x1f 0x7e 0x51 0x2b
3190x5f 0x2 0x93 0x2b
3200x9f 0x5a 0x95 0x2b
3210xdf 0x7e 0x97 0x2b
322
323# CHECK: cmn      x0, x3
324# CHECK: cmn      xzr, x4
325# CHECK: cmn      x5, xzr
326# CHECK: cmn      x6, x7
327# CHECK: cmn      x8, x9, lsl #15
328# CHECK: cmn      x10, x11, lsl #63
329# CHECK: cmn      x12, x13, lsr #0
330# CHECK: cmn      x14, x15, lsr #41
331# CHECK: cmn      x16, x17, lsr #63
332# CHECK: cmn      x18, x19, asr #0
333# CHECK: cmn      x20, x21, asr #55
334# CHECK: cmn      x22, x23, asr #63
3350x1f 0x0 0x3 0xab
3360xff 0x3 0x4 0xab
3370xbf 0x0 0x1f 0xab
3380xdf 0x0 0x7 0xab
3390x1f 0x3d 0x9 0xab
3400x5f 0xfd 0xb 0xab
3410x9f 0x1 0x4d 0xab
3420xdf 0xa5 0x4f 0xab
3430x1f 0xfe 0x51 0xab
3440x5f 0x2 0x93 0xab
3450x9f 0xde 0x95 0xab
3460xdf 0xfe 0x97 0xab
347
348# CHECK: cmp      w0, w3
349# CHECK: cmp      wzr, w4
350# CHECK: cmp      w5, wzr
351# CHECK: cmp      w6, w7
352# CHECK: cmp      w8, w9, lsl #15
353# CHECK: cmp      w10, w11, lsl #31
354# CHECK: cmp      w12, w13, lsr #0
355# CHECK: cmp      w14, w15, lsr #21
356# CHECK: cmp      w16, w17, lsr #31
357# CHECK: cmp      w18, w19, asr #0
358# CHECK: cmp      w20, w21, asr #22
359# CHECK: cmp      w22, w23, asr #31
3600x1f 0x0 0x3 0x6b
3610xff 0x3 0x4 0x6b
3620xbf 0x0 0x1f 0x6b
3630xdf 0x0 0x7 0x6b
3640x1f 0x3d 0x9 0x6b
3650x5f 0x7d 0xb 0x6b
3660x9f 0x1 0x4d 0x6b
3670xdf 0x55 0x4f 0x6b
3680x1f 0x7e 0x51 0x6b
3690x5f 0x2 0x93 0x6b
3700x9f 0x5a 0x95 0x6b
3710xdf 0x7e 0x97 0x6b
372
373# CHECK: cmp      x0, x3
374# CHECK: cmp      xzr, x4
375# CHECK: cmp      x5, xzr
376# CHECK: cmp      x6, x7
377# CHECK: cmp      x8, x9, lsl #15
378# CHECK: cmp      x10, x11, lsl #63
379# CHECK: cmp      x12, x13, lsr #0
380# CHECK: cmp      x14, x15, lsr #41
381# CHECK: cmp      x16, x17, lsr #63
382# CHECK: cmp      x18, x19, asr #0
383# CHECK: cmp      x20, x21, asr #55
384# CHECK: cmp      x22, x23, asr #63
3850x1f 0x0 0x3 0xeb
3860xff 0x3 0x4 0xeb
3870xbf 0x0 0x1f 0xeb
3880xdf 0x0 0x7 0xeb
3890x1f 0x3d 0x9 0xeb
3900x5f 0xfd 0xb 0xeb
3910x9f 0x1 0x4d 0xeb
3920xdf 0xa5 0x4f 0xeb
3930x1f 0xfe 0x51 0xeb
3940x5f 0x2 0x93 0xeb
3950x9f 0xde 0x95 0xeb
3960xdf 0xfe 0x97 0xeb
397
398# CHECK: {{sub      w29, wzr|neg w29}}, w30
399# CHECK: {{sub      w30, wzr|neg w30}}, wzr
400# CHECK: {{sub      wzr, wzr|neg wzr}}, w0
401# CHECK: {{sub      w28, wzr|neg w28}}, w27
402# CHECK: {{sub      w26, wzr|neg w26}}, w25, lsl #29
403# CHECK: {{sub      w24, wzr|neg w24}}, w23, lsl #31
404# CHECK: {{sub      w22, wzr|neg w22}}, w21, lsr #0
405# CHECK: {{sub      w20, wzr|neg w20}}, w19, lsr #1
406# CHECK: {{sub      w18, wzr|neg w18}}, w17, lsr #31
407# CHECK: {{sub      w16, wzr|neg w16}}, w15, asr #0
408# CHECK: {{sub      w14, wzr|neg w14}}, w13, asr #12
409# CHECK: {{sub      w12, wzr|neg w12}}, w11, asr #31
4100xfd 0x3 0x1e 0x4b
4110xfe 0x3 0x1f 0x4b
4120xff 0x3 0x0 0x4b
4130xfc 0x3 0x1b 0x4b
4140xfa 0x77 0x19 0x4b
4150xf8 0x7f 0x17 0x4b
4160xf6 0x3 0x55 0x4b
4170xf4 0x7 0x53 0x4b
4180xf2 0x7f 0x51 0x4b
4190xf0 0x3 0x8f 0x4b
4200xee 0x33 0x8d 0x4b
4210xec 0x7f 0x8b 0x4b
422
423# CHECK: {{sub      x29, xzr|neg x29}}, x30
424# CHECK: {{sub      x30, xzr|neg x30}}, xzr
425# CHECK: {{sub      xzr, xzr|neg xzr}}, x0
426# CHECK: {{sub      x28, xzr|neg x28}}, x27
427# CHECK: {{sub      x26, xzr|neg x26}}, x25, lsl #29
428# CHECK: {{sub      x24, xzr|neg x24}}, x23, lsl #31
429# CHECK: {{sub      x22, xzr|neg x22}}, x21, lsr #0
430# CHECK: {{sub      x20, xzr|neg x20}}, x19, lsr #1
431# CHECK: {{sub      x18, xzr|neg x18}}, x17, lsr #31
432# CHECK: {{sub      x16, xzr|neg x16}}, x15, asr #0
433# CHECK: {{sub      x14, xzr|neg x14}}, x13, asr #12
434# CHECK: {{sub      x12, xzr|neg x12}}, x11, asr #31
4350xfd 0x3 0x1e 0xcb
4360xfe 0x3 0x1f 0xcb
4370xff 0x3 0x0 0xcb
4380xfc 0x3 0x1b 0xcb
4390xfa 0x77 0x19 0xcb
4400xf8 0x7f 0x17 0xcb
4410xf6 0x3 0x55 0xcb
4420xf4 0x7 0x53 0xcb
4430xf2 0x7f 0x51 0xcb
4440xf0 0x3 0x8f 0xcb
4450xee 0x33 0x8d 0xcb
4460xec 0x7f 0x8b 0xcb
447
448# CHECK: {{subs     w29, wzr|negs w29}}, w30
449# CHECK: {{subs     w30, wzr|negs w30}}, wzr
450# CHECK: cmp      wzr, w0
451# CHECK: {{subs     w28, wzr|negs w28}}, w27
452# CHECK: {{subs     w26, wzr|negs w26}}, w25, lsl #29
453# CHECK: {{subs     w24, wzr|negs w24}}, w23, lsl #31
454# CHECK: {{subs     w22, wzr|negs w22}}, w21, lsr #0
455# CHECK: {{subs     w20, wzr|negs w20}}, w19, lsr #1
456# CHECK: {{subs     w18, wzr|negs w18}}, w17, lsr #31
457# CHECK: {{subs     w16, wzr|negs w16}}, w15, asr #0
458# CHECK: {{subs     w14, wzr|negs w14}}, w13, asr #12
459# CHECK: {{subs     w12, wzr|negs w12}}, w11, asr #31
4600xfd 0x3 0x1e 0x6b
4610xfe 0x3 0x1f 0x6b
4620xff 0x3 0x0 0x6b
4630xfc 0x3 0x1b 0x6b
4640xfa 0x77 0x19 0x6b
4650xf8 0x7f 0x17 0x6b
4660xf6 0x3 0x55 0x6b
4670xf4 0x7 0x53 0x6b
4680xf2 0x7f 0x51 0x6b
4690xf0 0x3 0x8f 0x6b
4700xee 0x33 0x8d 0x6b
4710xec 0x7f 0x8b 0x6b
472
473# CHECK: {{subs     x29, xzr|negs x29}}, x30
474# CHECK: {{subs     x30, xzr|negs x30}}, xzr
475# CHECK: cmp      xzr, x0
476# CHECK: {{subs     x28, xzr|negs x28}}, x27
477# CHECK: {{subs     x26, xzr|negs x26}}, x25, lsl #29
478# CHECK: {{subs     x24, xzr|negs x24}}, x23, lsl #31
479# CHECK: {{subs     x22, xzr|negs x22}}, x21, lsr #0
480# CHECK: {{subs     x20, xzr|negs x20}}, x19, lsr #1
481# CHECK: {{subs     x18, xzr|negs x18}}, x17, lsr #31
482# CHECK: {{subs     x16, xzr|negs x16}}, x15, asr #0
483# CHECK: {{subs     x14, xzr|negs x14}}, x13, asr #12
484# CHECK: {{subs     x12, xzr|negs x12}}, x11, asr #31
4850xfd 0x3 0x1e 0xeb
4860xfe 0x3 0x1f 0xeb
4870xff 0x3 0x0 0xeb
4880xfc 0x3 0x1b 0xeb
4890xfa 0x77 0x19 0xeb
4900xf8 0x7f 0x17 0xeb
4910xf6 0x3 0x55 0xeb
4920xf4 0x7 0x53 0xeb
4930xf2 0x7f 0x51 0xeb
4940xf0 0x3 0x8f 0xeb
4950xee 0x33 0x8d 0xeb
4960xec 0x7f 0x8b 0xeb
497
498#------------------------------------------------------------------------------
499# Add-subtract (shifted register)
500#------------------------------------------------------------------------------
501
502# CHECK: adc      w29, w27, w25
503# CHECK: adc      wzr, w3, w4
504# CHECK: adc      w9, wzr, w10
505# CHECK: adc      w20, w0, wzr
5060x7d 0x3 0x19 0x1a
5070x7f 0x0 0x4 0x1a
5080xe9 0x3 0xa 0x1a
5090x14 0x0 0x1f 0x1a
510
511# CHECK: adc      x29, x27, x25
512# CHECK: adc      xzr, x3, x4
513# CHECK: adc      x9, xzr, x10
514# CHECK: adc      x20, x0, xzr
5150x7d 0x3 0x19 0x9a
5160x7f 0x0 0x4 0x9a
5170xe9 0x3 0xa 0x9a
5180x14 0x0 0x1f 0x9a
519
520# CHECK: adcs     w29, w27, w25
521# CHECK: adcs     wzr, w3, w4
522# CHECK: adcs     w9, wzr, w10
523# CHECK: adcs     w20, w0, wzr
5240x7d 0x3 0x19 0x3a
5250x7f 0x0 0x4 0x3a
5260xe9 0x3 0xa 0x3a
5270x14 0x0 0x1f 0x3a
528
529# CHECK: adcs     x29, x27, x25
530# CHECK: adcs     xzr, x3, x4
531# CHECK: adcs     x9, xzr, x10
532# CHECK: adcs     x20, x0, xzr
5330x7d 0x3 0x19 0xba
5340x7f 0x0 0x4 0xba
5350xe9 0x3 0xa 0xba
5360x14 0x0 0x1f 0xba
537
538# CHECK: sbc      w29, w27, w25
539# CHECK: sbc      wzr, w3, w4
540# CHECK: ngc      w9, w10
541# CHECK: sbc      w20, w0, wzr
5420x7d 0x3 0x19 0x5a
5430x7f 0x0 0x4 0x5a
5440xe9 0x3 0xa 0x5a
5450x14 0x0 0x1f 0x5a
546
547# CHECK: sbc      x29, x27, x25
548# CHECK: sbc      xzr, x3, x4
549# CHECK: ngc      x9, x10
550# CHECK: sbc      x20, x0, xzr
5510x7d 0x3 0x19 0xda
5520x7f 0x0 0x4 0xda
5530xe9 0x3 0xa 0xda
5540x14 0x0 0x1f 0xda
555
556# CHECK: sbcs     w29, w27, w25
557# CHECK: sbcs     wzr, w3, w4
558# CHECK: ngcs     w9, w10
559# CHECK: sbcs     w20, w0, wzr
5600x7d 0x3 0x19 0x7a
5610x7f 0x0 0x4 0x7a
5620xe9 0x3 0xa 0x7a
5630x14 0x0 0x1f 0x7a
564
565# CHECK: sbcs     x29, x27, x25
566# CHECK: sbcs     xzr, x3, x4
567# CHECK: ngcs     x9, x10
568# CHECK: sbcs     x20, x0, xzr
5690x7d 0x3 0x19 0xfa
5700x7f 0x0 0x4 0xfa
5710xe9 0x3 0xa 0xfa
5720x14 0x0 0x1f 0xfa
573
574# CHECK: ngc      w3, w12
575# CHECK: ngc      wzr, w9
576# CHECK: ngc      w23, wzr
5770xe3 0x3 0xc 0x5a
5780xff 0x3 0x9 0x5a
5790xf7 0x3 0x1f 0x5a
580
581# CHECK: ngc      x29, x30
582# CHECK: ngc      xzr, x0
583# CHECK: ngc      x0, xzr
5840xfd 0x3 0x1e 0xda
5850xff 0x3 0x0 0xda
5860xe0 0x3 0x1f 0xda
587
588# CHECK: ngcs     w3, w12
589# CHECK: ngcs     wzr, w9
590# CHECK: ngcs     w23, wzr
5910xe3 0x3 0xc 0x7a
5920xff 0x3 0x9 0x7a
5930xf7 0x3 0x1f 0x7a
594
595# CHECK: ngcs     x29, x30
596# CHECK: ngcs     xzr, x0
597# CHECK: ngcs     x0, xzr
5980xfd 0x3 0x1e 0xfa
5990xff 0x3 0x0 0xfa
6000xe0 0x3 0x1f 0xfa
601
602#------------------------------------------------------------------------------
603# Compare and branch (immediate)
604#------------------------------------------------------------------------------
605
606# CHECK: sbfx     x1, x2, #3, #2
607# CHECK: asr      x3, x4, #63
608# CHECK: asr      wzr, wzr, #31
609# CHECK: sbfx     w12, w9, #0, #1
6100x41 0x10 0x43 0x93
6110x83 0xfc 0x7f 0x93
6120xff 0x7f 0x1f 0x13
6130x2c 0x1 0x0 0x13
614
615# CHECK: ubfiz    x4, x5, #52, #11
616# CHECK: ubfx     xzr, x4, #0, #1
617# CHECK: ubfiz    x4, xzr, #1, #6
618# CHECK: lsr      x5, x6, #12
6190xa4 0x28 0x4c 0xd3
6200x9f 0x0 0x40 0xd3
6210xe4 0x17 0x7f 0xd3
6220xc5 0xfc 0x4c 0xd3
623
624# CHECK: bfi      x4, x5, #52, #11
625# CHECK: bfxil    xzr, x4, #0, #1
626# CHECK: bfc      x4, #1, #6
627# CHECK: bfxil    x5, x6, #12, #52
6280xa4 0x28 0x4c 0xb3
6290x9f 0x0 0x40 0xb3
6300xe4 0x17 0x7f 0xb3
6310xc5 0xfc 0x4c 0xb3
632
633# CHECK: sxtb     w1, w2
634# CHECK: sxtb     xzr, w3
635# CHECK: sxth     w9, w10
636# CHECK: sxth     x0, w1
637# CHECK: sxtw     x3, w30
6380x41 0x1c 0x0 0x13
6390x7f 0x1c 0x40 0x93
6400x49 0x3d 0x0 0x13
6410x20 0x3c 0x40 0x93
6420xc3 0x7f 0x40 0x93
643
644# CHECK: uxtb     w1, w2
645# CHECK: uxth     w9, w10
646# CHECK: ubfx     x3, x30, #0, #32
6470x41 0x1c 0x0 0x53
6480x49 0x3d 0x0 0x53
6490xc3 0x7f 0x40 0xd3
650
651# CHECK: asr      w3, w2, #0
652# CHECK: asr      w9, w10, #31
653# CHECK: asr      x20, x21, #63
654# CHECK: asr      w1, wzr, #3
6550x43 0x7c 0x0 0x13
6560x49 0x7d 0x1f 0x13
6570xb4 0xfe 0x7f 0x93
6580xe1 0x7f 0x3 0x13
659
660# CHECK: lsr      w3, w2, #0
661# CHECK: lsr      w9, w10, #31
662# CHECK: lsr      x20, x21, #63
663# CHECK: lsr      wzr, wzr, #3
6640x43 0x7c 0x0 0x53
6650x49 0x7d 0x1f 0x53
6660xb4 0xfe 0x7f 0xd3
6670xff 0x7f 0x3 0x53
668
669# CHECK: lsr      w3, w2, #0
670# CHECK: lsl      w9, w10, #31
671# CHECK: lsl      x20, x21, #63
672# CHECK: lsl      w1, wzr, #3
6730x43 0x7c 0x0 0x53
6740x49 0x1 0x1 0x53
6750xb4 0x2 0x41 0xd3
6760xe1 0x73 0x1d 0x53
677
678# CHECK: sbfx     w9, w10, #0, #1
679# CHECK: sbfiz    x2, x3, #63, #1
680# CHECK: asr      x19, x20, #0
681# CHECK: sbfiz    x9, x10, #5, #59
682# CHECK: asr      w9, w10, #0
683# CHECK: sbfiz    w11, w12, #31, #1
684# CHECK: sbfiz    w13, w14, #29, #3
685# CHECK: sbfiz    xzr, xzr, #10, #11
6860x49 0x1 0x0 0x13
6870x62 0x0 0x41 0x93
6880x93 0xfe 0x40 0x93
6890x49 0xe9 0x7b 0x93
6900x49 0x7d 0x0 0x13
6910x8b 0x1 0x1 0x13
6920xcd 0x9 0x3 0x13
6930xff 0x2b 0x76 0x93
694
695# CHECK: sbfx     w9, w10, #0, #1
696# CHECK: asr      x2, x3, #63
697# CHECK: asr      x19, x20, #0
698# CHECK: asr      x9, x10, #5
699# CHECK: asr      w9, w10, #0
700# CHECK: asr      w11, w12, #31
701# CHECK: asr      w13, w14, #29
702# CHECK: sbfx     xzr, xzr, #10, #11
7030x49 0x1 0x0 0x13
7040x62 0xfc 0x7f 0x93
7050x93 0xfe 0x40 0x93
7060x49 0xfd 0x45 0x93
7070x49 0x7d 0x0 0x13
7080x8b 0x7d 0x1f 0x13
7090xcd 0x7d 0x1d 0x13
7100xff 0x53 0x4a 0x93
711
712# CHECK: bfxil    w9, w10, #0, #1
713# CHECK: bfi      x2, x3, #63, #1
714# CHECK: bfxil    x19, x20, #0, #64
715# CHECK: bfi      x9, x10, #5, #59
716# CHECK: bfxil    w9, w10, #0, #32
717# CHECK: bfi      w11, w12, #31, #1
718# CHECK: bfi      w13, w14, #29, #3
719# CHECK: bfc      xzr, #10, #11
7200x49 0x1 0x0 0x33
7210x62 0x0 0x41 0xb3
7220x93 0xfe 0x40 0xb3
7230x49 0xe9 0x7b 0xb3
7240x49 0x7d 0x0 0x33
7250x8b 0x1 0x1 0x33
7260xcd 0x9 0x3 0x33
7270xff 0x2b 0x76 0xb3
728
729# CHECK: bfxil    w9, w10, #0, #1
730# CHECK: bfxil    x2, x3, #63, #1
731# CHECK: bfxil    x19, x20, #0, #64
732# CHECK: bfxil    x9, x10, #5, #59
733# CHECK: bfxil    w9, w10, #0, #32
734# CHECK: bfxil    w11, w12, #31, #1
735# CHECK: bfxil    w13, w14, #29, #3
736# CHECK: bfxil    xzr, xzr, #10, #11
7370x49 0x1 0x0 0x33
7380x62 0xfc 0x7f 0xb3
7390x93 0xfe 0x40 0xb3
7400x49 0xfd 0x45 0xb3
7410x49 0x7d 0x0 0x33
7420x8b 0x7d 0x1f 0x33
7430xcd 0x7d 0x1d 0x33
7440xff 0x53 0x4a 0xb3
745
746# CHECK: ubfx     w9, w10, #0, #1
747# CHECK: lsl      x2, x3, #63
748# CHECK: lsr      x19, x20, #0
749# CHECK: lsl      x9, x10, #5
750# CHECK: lsr      w9, w10, #0
751# CHECK: lsl      w11, w12, #31
752# CHECK: lsl      w13, w14, #29
753# CHECK: ubfiz    xzr, xzr, #10, #11
7540x49 0x1 0x0 0x53
7550x62 0x0 0x41 0xd3
7560x93 0xfe 0x40 0xd3
7570x49 0xe9 0x7b 0xd3
7580x49 0x7d 0x0 0x53
7590x8b 0x1 0x1 0x53
7600xcd 0x9 0x3 0x53
7610xff 0x2b 0x76 0xd3
762
763# CHECK: ubfx     w9, w10, #0, #1
764# CHECK: lsr      x2, x3, #63
765# CHECK: lsr      x19, x20, #0
766# CHECK: lsr      x9, x10, #5
767# CHECK: lsr      w9, w10, #0
768# CHECK: lsr      w11, w12, #31
769# CHECK: lsr      w13, w14, #29
770# CHECK: ubfx     xzr, xzr, #10, #11
7710x49 0x1 0x0 0x53
7720x62 0xfc 0x7f 0xd3
7730x93 0xfe 0x40 0xd3
7740x49 0xfd 0x45 0xd3
7750x49 0x7d 0x0 0x53
7760x8b 0x7d 0x1f 0x53
7770xcd 0x7d 0x1d 0x53
7780xff 0x53 0x4a 0xd3
779
780
781#------------------------------------------------------------------------------
782# Compare and branch (immediate)
783#------------------------------------------------------------------------------
784
785# CHECK: cbz      w5, #4
786# CHECK: cbz      x5, #0
787# CHECK: cbnz     x2, #-4
788# CHECK: cbnz     x26, #1048572
7890x25 0x0 0x0 0x34
7900x05 0x0 0x0 0xb4
7910xe2 0xff 0xff 0xb5
7920xfa 0xff 0x7f 0xb5
793
794# CHECK: cbz      wzr, #0
795# CHECK: cbnz     xzr, #0
7960x1f 0x0 0x0 0x34
7970x1f 0x0 0x0 0xb5
798
799#------------------------------------------------------------------------------
800# Conditional branch (immediate)
801#------------------------------------------------------------------------------
802
803# CHECK: b.ne #4
804# CHECK: b.ge #1048572
805# CHECK: b.ge #-4
8060x21 0x00 0x00 0x54
8070xea 0xff 0x7f 0x54
8080xea 0xff 0xff 0x54
809
810#------------------------------------------------------------------------------
811# Conditional compare (immediate)
812#------------------------------------------------------------------------------
813
814# CHECK: ccmp w1, #31, #0, eq
815# CHECK: ccmp w3, #0, #15, hs
816# CHECK: ccmp wzr, #15, #13, hs
8170x20 0x08 0x5f 0x7a
8180x6f 0x28 0x40 0x7a
8190xed 0x2b 0x4f 0x7a
820
821# CHECK: ccmp x9, #31, #0, le
822# CHECK: ccmp x3, #0, #15, gt
823# CHECK: ccmp xzr, #5, #7, ne
8240x20 0xd9 0x5f 0xfa
8250x6f 0xc8 0x40 0xfa
8260xe7 0x1b 0x45 0xfa
827
828# CHECK: ccmn w1, #31, #0, eq
829# CHECK: ccmn w3, #0, #15, hs
830# CHECK: ccmn wzr, #15, #13, hs
8310x20 0x08 0x5f 0x3a
8320x6f 0x28 0x40 0x3a
8330xed 0x2b 0x4f 0x3a
834
835# CHECK: ccmn x9, #31, #0, le
836# CHECK: ccmn x3, #0, #15, gt
837# CHECK: ccmn xzr, #5, #7, ne
8380x20 0xd9 0x5f 0xba
8390x6f 0xc8 0x40 0xba
8400xe7 0x1b 0x45 0xba
841
842#------------------------------------------------------------------------------
843# Conditional compare (register)
844#------------------------------------------------------------------------------
845
846# CHECK: ccmp w1, wzr, #0, eq
847# CHECK: ccmp w3, w0, #15, hs
848# CHECK: ccmp wzr, w15, #13, hs
8490x20 0x00 0x5f 0x7a
8500x6f 0x20 0x40 0x7a
8510xed 0x23 0x4f 0x7a
852
853# CHECK: ccmp x9, xzr, #0, le
854# CHECK: ccmp x3, x0, #15, gt
855# CHECK: ccmp xzr, x5, #7, ne
8560x20 0xd1 0x5f 0xfa
8570x6f 0xc0 0x40 0xfa
8580xe7 0x13 0x45 0xfa
859
860# CHECK: ccmn w1, wzr, #0, eq
861# CHECK: ccmn w3, w0, #15, hs
862# CHECK: ccmn wzr, w15, #13, hs
8630x20 0x00 0x5f 0x3a
8640x6f 0x20 0x40 0x3a
8650xed 0x23 0x4f 0x3a
866
867# CHECK: ccmn x9, xzr, #0, le
868# CHECK: ccmn x3, x0, #15, gt
869# CHECK: ccmn xzr, x5, #7, ne
8700x20 0xd1 0x5f 0xba
8710x6f 0xc0 0x40 0xba
8720xe7 0x13 0x45 0xba
873
874#------------------------------------------------------------------------------
875# Conditional branch (immediate)
876#------------------------------------------------------------------------------
877# CHECK: csel     w1, w0, w19, ne
878# CHECK: csel     wzr, w5, w9, eq
879# CHECK: csel     w9, wzr, w30, gt
880# CHECK: csel     w1, w28, wzr, mi
881# CHECK: csel     x19, x23, x29, lt
882# CHECK: csel     xzr, x3, x4, ge
883# CHECK: csel     x5, xzr, x6, hs
884# CHECK: csel     x7, x8, xzr, lo
8850x1 0x10 0x93 0x1a
8860xbf 0x0 0x89 0x1a
8870xe9 0xc3 0x9e 0x1a
8880x81 0x43 0x9f 0x1a
8890xf3 0xb2 0x9d 0x9a
8900x7f 0xa0 0x84 0x9a
8910xe5 0x23 0x86 0x9a
8920x7 0x31 0x9f 0x9a
893
894# CHECK: csinc    w1, w0, w19, ne
895# CHECK: csinc    wzr, w5, w9, eq
896# CHECK: csinc    w9, wzr, w30, gt
897# CHECK: csinc    w1, w28, wzr, mi
898# CHECK: csinc    x19, x23, x29, lt
899# CHECK: csinc    xzr, x3, x4, ge
900# CHECK: csinc    x5, xzr, x6, hs
901# CHECK: csinc    x7, x8, xzr, lo
9020x1 0x14 0x93 0x1a
9030xbf 0x4 0x89 0x1a
9040xe9 0xc7 0x9e 0x1a
9050x81 0x47 0x9f 0x1a
9060xf3 0xb6 0x9d 0x9a
9070x7f 0xa4 0x84 0x9a
9080xe5 0x27 0x86 0x9a
9090x7 0x35 0x9f 0x9a
910
911# CHECK: csinv    w1, w0, w19, ne
912# CHECK: csinv    wzr, w5, w9, eq
913# CHECK: csinv    w9, wzr, w30, gt
914# CHECK: csinv    w1, w28, wzr, mi
915# CHECK: csinv    x19, x23, x29, lt
916# CHECK: csinv    xzr, x3, x4, ge
917# CHECK: csinv    x5, xzr, x6, hs
918# CHECK: csinv    x7, x8, xzr, lo
9190x1 0x10 0x93 0x5a
9200xbf 0x0 0x89 0x5a
9210xe9 0xc3 0x9e 0x5a
9220x81 0x43 0x9f 0x5a
9230xf3 0xb2 0x9d 0xda
9240x7f 0xa0 0x84 0xda
9250xe5 0x23 0x86 0xda
9260x7 0x31 0x9f 0xda
927
928# CHECK: csneg    w1, w0, w19, ne
929# CHECK: csneg    wzr, w5, w9, eq
930# CHECK: csneg    w9, wzr, w30, gt
931# CHECK: csneg    w1, w28, wzr, mi
932# CHECK: csneg    x19, x23, x29, lt
933# CHECK: csneg    xzr, x3, x4, ge
934# CHECK: csneg    x5, xzr, x6, hs
935# CHECK: csneg    x7, x8, xzr, lo
9360x1 0x14 0x93 0x5a
9370xbf 0x4 0x89 0x5a
9380xe9 0xc7 0x9e 0x5a
9390x81 0x47 0x9f 0x5a
9400xf3 0xb6 0x9d 0xda
9410x7f 0xa4 0x84 0xda
9420xe5 0x27 0x86 0xda
9430x7 0x35 0x9f 0xda
944
945# CHECK: cset    w3, eq
946# CHECK: cset    x9, pl
947# CHECK: csetm    w20, ne
948# CHECK: csetm    x30, ge
949# "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
950# CHECK: csinc    w2, wzr, wzr, al
951# CHECK: csinv    x3, xzr, xzr, nv
9520xe3 0x17 0x9f 0x1a
9530xe9 0x47 0x9f 0x9a
9540xf4 0x3 0x9f 0x5a
9550xfe 0xb3 0x9f 0xda
9560xe2,0xe7,0x9f,0x1a
9570xe3,0xf3,0x9f,0xda
958
959# CHECK: cinc    w3, w5, gt
960# CHECK: cinc    wzr, w4, le
961# CHECK: cset    w9, lt
962# CHECK: cinc    x3, x5, gt
963# CHECK: cinc    xzr, x4, le
964# CHECK: cset    x9, lt
965# "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
966# CHECK: csinc   w5, w6, w6, nv
967# CHECK: csinc   x1, x2, x2, al
9680xa3 0xd4 0x85 0x1a
9690x9f 0xc4 0x84 0x1a
9700xe9 0xa7 0x9f 0x1a
9710xa3 0xd4 0x85 0x9a
9720x9f 0xc4 0x84 0x9a
9730xe9 0xa7 0x9f 0x9a
9740xc5,0xf4,0x86,0x1a
9750x41,0xe4,0x82,0x9a
976
977# CHECK: cinv    w3, w5, gt
978# CHECK: cinv    wzr, w4, le
979# CHECK: csetm   w9, lt
980# CHECK: cinv    x3, x5, gt
981# CHECK: cinv    xzr, x4, le
982# CHECK: csetm   x9, lt
983# "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
984# CHECK: csinv   x1, x0, x0, al
985# CHECK: csinv   w9, w8, w8, nv
9860xa3 0xd0 0x85 0x5a
9870x9f 0xc0 0x84 0x5a
9880xe9 0xa3 0x9f 0x5a
9890xa3 0xd0 0x85 0xda
9900x9f 0xc0 0x84 0xda
9910xe9 0xa3 0x9f 0xda
9920x01 0xe0 0x80 0xda
9930x09,0xf1,0x88,0x5a
994
995# CHECK: cneg     w3, w5, gt
996# CHECK: cneg     wzr, w4, le
997# CHECK: cneg     w9, wzr, lt
998# CHECK: cneg     x3, x5, gt
999# CHECK: cneg     xzr, x4, le
1000# CHECK: cneg     x9, xzr, lt
1001# "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1002# CHECK: csneg    x4, x8, x8, al
1003# CHECK: csinv    w9, w8, w8, nv
10040xa3 0xd4 0x85 0x5a
10050x9f 0xc4 0x84 0x5a
10060xe9 0xa7 0x9f 0x5a
10070xa3 0xd4 0x85 0xda
10080x9f 0xc4 0x84 0xda
10090xe9 0xa7 0x9f 0xda
10100x04,0xe5,0x88,0xda
10110x09,0xf1,0x88,0x5a
1012
1013#------------------------------------------------------------------------------
1014# Data-processing (1 source)
1015#------------------------------------------------------------------------------
1016
1017# CHECK: rbit	w0, w7
1018# CHECK: rbit   x18, x3
1019# CHECK: rev16	w17, w1
1020# CHECK: rev16	x5, x2
1021# CHECK: rev	w18, w0
1022# CHECK: rev32	x20, x1
10230xe0 0x00 0xc0 0x5a
10240x72 0x00 0xc0 0xda
10250x31 0x04 0xc0 0x5a
10260x45 0x04 0xc0 0xda
10270x12 0x08 0xc0 0x5a
10280x34 0x08 0xc0 0xda
1029
1030# CHECK: rev	x22, x2
1031# CHECK: clz	w24, w3
1032# CHECK: clz	x26, x4
1033# CHECK: cls	w3, w5
1034# CHECK: cls	x20, x5
10350x56 0x0c 0xc0 0xda
10360x78 0x10 0xc0 0x5a
10370x9a 0x10 0xc0 0xda
10380xa3 0x14 0xc0 0x5a
10390xb4 0x14 0xc0 0xda
1040
1041#------------------------------------------------------------------------------
1042# Data-processing (2 source)
1043#------------------------------------------------------------------------------
1044
1045# CHECK: crc32b  w5, w7, w20
1046# CHECK: crc32h  w28, wzr, w30
1047# CHECK: crc32w  w0, w1, w2
1048# CHECK: crc32x  w7, w9, x20
1049# CHECK: crc32cb w9, w5, w4
1050# CHECK: crc32ch w13, w17, w25
1051# CHECK: crc32cw wzr, w3, w5
1052# CHECK: crc32cx w18, w16, xzr
10530xe5 0x40 0xd4 0x1a
10540xfc 0x47 0xde 0x1a
10550x20 0x48 0xc2 0x1a
10560x27 0x4d 0xd4 0x9a
10570xa9 0x50 0xc4 0x1a
10580x2d 0x56 0xd9 0x1a
10590x7f 0x58 0xc5 0x1a
10600x12 0x5e 0xdf 0x9a
1061
1062# CHECK: udiv	w0, w7, w10
1063# CHECK: udiv	x9, x22, x4
1064# CHECK: sdiv	w12, w21, w0
1065# CHECK: sdiv	x13, x2, x1
1066# CHECK: lsl	w11, w12, w13
1067# CHECK: lsl	x14, x15, x16
1068# CHECK: lsr	w17, w18, w19
1069# CHECK: lsr	x20, x21, x22
1070# CHECK: asr	w23, w24, w25
1071# CHECK: asr	x26, x27, x28
1072# CHECK: ror	w0, w1, w2
1073# CHECK: ror    x3, x4, x5
10740xe0 0x08 0xca 0x1a
10750xc9 0x0a 0xc4 0x9a
10760xac 0x0e 0xc0 0x1a
10770x4d 0x0c 0xc1 0x9a
10780x8b 0x21 0xcd 0x1a
10790xee 0x21 0xd0 0x9a
10800x51 0x26 0xd3 0x1a
10810xb4 0x26 0xd6 0x9a
10820x17 0x2b 0xd9 0x1a
10830x7a 0x2b 0xdc 0x9a
10840x20 0x2c 0xc2 0x1a
10850x83 0x2c 0xc5 0x9a
1086
1087# CHECK: lsl	w6, w7, w8
1088# CHECK: lsl	x9, x10, x11
1089# CHECK: lsr	w12, w13, w14
1090# CHECK: lsr	x15, x16, x17
1091# CHECK: asr	w18, w19, w20
1092# CHECK: asr	x21, x22, x23
1093# CHECK: ror	w24, w25, w26
1094# CHECK: ror	x27, x28, x29
10950xe6 0x20 0xc8 0x1a
10960x49 0x21 0xcb 0x9a
10970xac 0x25 0xce 0x1a
10980x0f 0x26 0xd1 0x9a
10990x72 0x2a 0xd4 0x1a
11000xd5 0x2a 0xd7 0x9a
11010x38 0x2f 0xda 0x1a
11020x9b 0x2f 0xdd 0x9a
1103
1104#------------------------------------------------------------------------------
1105# Data-processing (3 sources)
1106#------------------------------------------------------------------------------
1107
1108# First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1109# and smulh have them).
1110
1111# CHECK: smulh    x30, x29, x28
1112# CHECK: smulh    xzr, x27, x26
1113# CHECK: umulh    x30, x29, x28
1114# CHECK: umulh    x23, x30, xzr
11150xbe 0x73 0x5c 0x9b
11160x7f 0x2f 0x5a 0x9b
11170xbe 0x3f 0xdc 0x9b
11180xd7 0x77 0xdf 0x9b
1119
1120# Now onto the boilerplate stuff
1121
1122# CHECK: madd     w1, w3, w7, w4
1123# CHECK: madd     wzr, w0, w9, w11
1124# CHECK: madd     w13, wzr, w4, w4
1125# CHECK: madd     w19, w30, wzr, w29
1126# CHECK: mul      w4, w5, w6
11270x61 0x10 0x7 0x1b
11280x1f 0x2c 0x9 0x1b
11290xed 0x13 0x4 0x1b
11300xd3 0x77 0x1f 0x1b
11310xa4 0x7c 0x6 0x1b
1132
1133# CHECK: madd     x1, x3, x7, x4
1134# CHECK: madd     xzr, x0, x9, x11
1135# CHECK: madd     x13, xzr, x4, x4
1136# CHECK: madd     x19, x30, xzr, x29
1137# CHECK: mul      x4, x5, x6
11380x61 0x10 0x7 0x9b
11390x1f 0x2c 0x9 0x9b
11400xed 0x13 0x4 0x9b
11410xd3 0x77 0x1f 0x9b
11420xa4 0x7c 0x6 0x9b
1143
1144# CHECK: msub     w1, w3, w7, w4
1145# CHECK: msub     wzr, w0, w9, w11
1146# CHECK: msub     w13, wzr, w4, w4
1147# CHECK: msub     w19, w30, wzr, w29
1148# CHECK: mneg     w4, w5, w6
11490x61 0x90 0x7 0x1b
11500x1f 0xac 0x9 0x1b
11510xed 0x93 0x4 0x1b
11520xd3 0xf7 0x1f 0x1b
11530xa4 0xfc 0x6 0x1b
1154
1155# CHECK: msub     x1, x3, x7, x4
1156# CHECK: msub     xzr, x0, x9, x11
1157# CHECK: msub     x13, xzr, x4, x4
1158# CHECK: msub     x19, x30, xzr, x29
1159# CHECK: mneg     x4, x5, x6
11600x61 0x90 0x7 0x9b
11610x1f 0xac 0x9 0x9b
11620xed 0x93 0x4 0x9b
11630xd3 0xf7 0x1f 0x9b
11640xa4 0xfc 0x6 0x9b
1165
1166# CHECK: smaddl   x3, w5, w2, x9
1167# CHECK: smaddl   xzr, w10, w11, x12
1168# CHECK: smaddl   x13, wzr, w14, x15
1169# CHECK: smaddl   x16, w17, wzr, x18
1170# CHECK: smull    x19, w20, w21
11710xa3 0x24 0x22 0x9b
11720x5f 0x31 0x2b 0x9b
11730xed 0x3f 0x2e 0x9b
11740x30 0x4a 0x3f 0x9b
11750x93 0x7e 0x35 0x9b
1176
1177# CHECK: smsubl   x3, w5, w2, x9
1178# CHECK: smsubl   xzr, w10, w11, x12
1179# CHECK: smsubl   x13, wzr, w14, x15
1180# CHECK: smsubl   x16, w17, wzr, x18
1181# CHECK: smnegl   x19, w20, w21
11820xa3 0xa4 0x22 0x9b
11830x5f 0xb1 0x2b 0x9b
11840xed 0xbf 0x2e 0x9b
11850x30 0xca 0x3f 0x9b
11860x93 0xfe 0x35 0x9b
1187
1188# CHECK: umaddl   x3, w5, w2, x9
1189# CHECK: umaddl   xzr, w10, w11, x12
1190# CHECK: umaddl   x13, wzr, w14, x15
1191# CHECK: umaddl   x16, w17, wzr, x18
1192# CHECK: umull    x19, w20, w21
11930xa3 0x24 0xa2 0x9b
11940x5f 0x31 0xab 0x9b
11950xed 0x3f 0xae 0x9b
11960x30 0x4a 0xbf 0x9b
11970x93 0x7e 0xb5 0x9b
1198
1199# CHECK: umsubl   x3, w5, w2, x9
1200# CHECK: umsubl   xzr, w10, w11, x12
1201# CHECK: umsubl   x13, wzr, w14, x15
1202# CHECK: umsubl   x16, w17, wzr, x18
1203# CHECK: umnegl   x19, w20, w21
12040xa3 0xa4 0xa2 0x9b
12050x5f 0xb1 0xab 0x9b
12060xed 0xbf 0xae 0x9b
12070x30 0xca 0xbf 0x9b
12080x93 0xfe 0xb5 0x9b
1209
1210# CHECK: smulh    x30, x29, x28
1211# CHECK: smulh    xzr, x27, x26
1212# CHECK: smulh    x25, xzr, x24
1213# CHECK: smulh    x23, x22, xzr
12140xbe 0x7f 0x5c 0x9b
12150x7f 0x7f 0x5a 0x9b
12160xf9 0x7f 0x58 0x9b
12170xd7 0x7e 0x5f 0x9b
1218
1219# CHECK: umulh    x30, x29, x28
1220# CHECK: umulh    xzr, x27, x26
1221# CHECK: umulh    x25, xzr, x24
1222# CHECK: umulh    x23, x22, xzr
12230xbe 0x7f 0xdc 0x9b
12240x7f 0x7f 0xda 0x9b
12250xf9 0x7f 0xd8 0x9b
12260xd7 0x7e 0xdf 0x9b
1227
1228# CHECK: mul      w3, w4, w5
1229# CHECK: mul      wzr, w6, w7
1230# CHECK: mul      w8, wzr, w9
1231# CHECK: mul      w10, w11, wzr
1232# CHECK: mul      x12, x13, x14
1233# CHECK: mul      xzr, x15, x16
1234# CHECK: mul      x17, xzr, x18
1235# CHECK: mul      x19, x20, xzr
12360x83 0x7c 0x5 0x1b
12370xdf 0x7c 0x7 0x1b
12380xe8 0x7f 0x9 0x1b
12390x6a 0x7d 0x1f 0x1b
12400xac 0x7d 0xe 0x9b
12410xff 0x7d 0x10 0x9b
12420xf1 0x7f 0x12 0x9b
12430x93 0x7e 0x1f 0x9b
1244
1245# CHECK: mneg     w21, w22, w23
1246# CHECK: mneg     wzr, w24, w25
1247# CHECK: mneg     w26, wzr, w27
1248# CHECK: mneg     w28, w29, wzr
12490xd5 0xfe 0x17 0x1b
12500x1f 0xff 0x19 0x1b
12510xfa 0xff 0x1b 0x1b
12520xbc 0xff 0x1f 0x1b
1253
1254# CHECK: smull    x11, w13, w17
1255# CHECK: umull    x11, w13, w17
1256# CHECK: smnegl   x11, w13, w17
1257# CHECK: umnegl   x11, w13, w17
12580xab 0x7d 0x31 0x9b
12590xab 0x7d 0xb1 0x9b
12600xab 0xfd 0x31 0x9b
12610xab 0xfd 0xb1 0x9b
1262
1263#------------------------------------------------------------------------------
1264# Exception generation
1265#------------------------------------------------------------------------------
1266
1267# CHECK: svc      #0
1268# CHECK: svc      #{{65535|0xffff}}
12690x1 0x0 0x0 0xd4
12700xe1 0xff 0x1f 0xd4
1271
1272# CHECK: hvc      #{{1|0x1}}
1273# CHECK: smc      #{{12000|0x2ee0}}
1274# CHECK: brk      #{{12|0xc}}
1275# CHECK: hlt      #{{123|0x7b}}
12760x22 0x0 0x0 0xd4
12770x3 0xdc 0x5 0xd4
12780x80 0x1 0x20 0xd4
12790x60 0xf 0x40 0xd4
1280
1281# CHECK: dcps1    #{{42|0x2a}}
1282# CHECK: dcps2    #{{9|0x9}}
1283# CHECK: dcps3    #{{1000|0x3e8}}
12840x41 0x5 0xa0 0xd4
12850x22 0x1 0xa0 0xd4
12860x3 0x7d 0xa0 0xd4
1287
1288# CHECK: dcps1
1289# CHECK: dcps2
1290# CHECK: dcps3
12910x1 0x0 0xa0 0xd4
12920x2 0x0 0xa0 0xd4
12930x3 0x0 0xa0 0xd4
1294
1295#------------------------------------------------------------------------------
1296# Extract (immediate)
1297#------------------------------------------------------------------------------
1298
1299# CHECK: extr     w3, w5, w7, #0
1300# CHECK: extr     w11, w13, w17, #31
13010xa3 0x0 0x87 0x13
13020xab 0x7d 0x91 0x13
1303
1304# CHECK: extr     x3, x5, x7, #15
1305# CHECK: extr     x11, x13, x17, #63
13060xa3 0x3c 0xc7 0x93
13070xab 0xfd 0xd1 0x93
1308
1309# CHECK: ror     x19, x23, #24
1310# CHECK: ror     x29, xzr, #63
1311# CHECK: ror     w9, w13, #31
13120xf3 0x62 0xd7 0x93
13130xfd 0xff 0xdf 0x93
13140xa9 0x7d 0x8d 0x13
1315
1316#------------------------------------------------------------------------------
1317# Floating-point compare
1318#------------------------------------------------------------------------------
1319
1320# CHECK: fcmp    s3, s5
1321# CHECK: fcmp    s31, #0.0
1322# CHECK: fcmp    s31, #0.0
13230x60 0x20 0x25 0x1e
13240xe8 0x23 0x20 0x1e
13250xe8 0x23 0x3f 0x1e
1326
1327# CHECK: fcmpe   s29, s30
1328# CHECK: fcmpe   s15, #0.0
1329# CHECK: fcmpe   s15, #0.0
13300xb0 0x23 0x3e 0x1e
13310xf8 0x21 0x20 0x1e
13320xf8 0x21 0x2f 0x1e
1333
1334# CHECK: fcmp    d4, d12
1335# CHECK: fcmp    d23, #0.0
1336# CHECK: fcmp    d23, #0.0
13370x80 0x20 0x6c 0x1e
13380xe8 0x22 0x60 0x1e
13390xe8 0x22 0x77 0x1e
1340
1341# CHECK: fcmpe   d26, d22
1342# CHECK: fcmpe   d29, #0.0
1343# CHECK: fcmpe   d29, #0.0
13440x50 0x23 0x76 0x1e
13450xb8 0x23 0x60 0x1e
13460xb8 0x23 0x6d 0x1e
1347
1348#------------------------------------------------------------------------------
1349# Floating-point conditional compare
1350#------------------------------------------------------------------------------
1351
1352# CHECK: fccmp s1, s31, #0, eq
1353# CHECK: fccmp s3, s0, #15, hs
1354# CHECK: fccmp s31, s15, #13, hs
13550x20 0x04 0x3f 0x1e
13560x6f 0x24 0x20 0x1e
13570xed 0x27 0x2f 0x1e
1358
1359# CHECK: fccmp d9, d31, #0, le
1360# CHECK: fccmp d3, d0, #15, gt
1361# CHECK: fccmp d31, d5, #7, ne
13620x20 0xd5 0x7f 0x1e
13630x6f 0xc4 0x60 0x1e
13640xe7 0x17 0x65 0x1e
1365
1366# CHECK: fccmpe s1, s31, #0, eq
1367# CHECK: fccmpe s3, s0, #15, hs
1368# CHECK: fccmpe s31, s15, #13, hs
13690x30 0x04 0x3f 0x1e
13700x7f 0x24 0x20 0x1e
13710xfd 0x27 0x2f 0x1e
1372
1373# CHECK: fccmpe d9, d31, #0, le
1374# CHECK: fccmpe d3, d0, #15, gt
1375# CHECK: fccmpe d31, d5, #7, ne
13760x30 0xd5 0x7f 0x1e
13770x7f 0xc4 0x60 0x1e
13780xf7 0x17 0x65 0x1e
1379
1380#-------------------------------------------------------------------------------
1381# Floating-point conditional compare
1382#-------------------------------------------------------------------------------
1383
1384# CHECK: fcsel s3, s20, s9, pl
1385# CHECK: fcsel d9, d10, d11, mi
13860x83 0x5e 0x29 0x1e
13870x49 0x4d 0x6b 0x1e
1388
1389#------------------------------------------------------------------------------
1390# Floating-point data-processing (1 source)
1391#------------------------------------------------------------------------------
1392
1393# CHECK: fmov     s0, s1
1394# CHECK: fabs     s2, s3
1395# CHECK: fneg     s4, s5
1396# CHECK: fsqrt    s6, s7
1397# CHECK: fcvt     d8, s9
1398# CHECK: fcvt     h10, s11
1399# CHECK: frintn   s12, s13
1400# CHECK: frintp   s14, s15
1401# CHECK: frintm   s16, s17
1402# CHECK: frintz   s18, s19
1403# CHECK: frinta   s20, s21
1404# CHECK: frintx   s22, s23
1405# CHECK: frinti   s24, s25
14060x20 0x40 0x20 0x1e
14070x62 0xc0 0x20 0x1e
14080xa4 0x40 0x21 0x1e
14090xe6 0xc0 0x21 0x1e
14100x28 0xc1 0x22 0x1e
14110x6a 0xc1 0x23 0x1e
14120xac 0x41 0x24 0x1e
14130xee 0xc1 0x24 0x1e
14140x30 0x42 0x25 0x1e
14150x72 0xc2 0x25 0x1e
14160xb4 0x42 0x26 0x1e
14170xf6 0x42 0x27 0x1e
14180x38 0xc3 0x27 0x1e
1419
1420# CHECK: fmov     d0, d1
1421# CHECK: fabs     d2, d3
1422# CHECK: fneg     d4, d5
1423# CHECK: fsqrt    d6, d7
1424# CHECK: fcvt     s8, d9
1425# CHECK: fcvt     h10, d11
1426# CHECK: frintn   d12, d13
1427# CHECK: frintp   d14, d15
1428# CHECK: frintm   d16, d17
1429# CHECK: frintz   d18, d19
1430# CHECK: frinta   d20, d21
1431# CHECK: frintx   d22, d23
1432# CHECK: frinti   d24, d25
14330x20 0x40 0x60 0x1e
14340x62 0xc0 0x60 0x1e
14350xa4 0x40 0x61 0x1e
14360xe6 0xc0 0x61 0x1e
14370x28 0x41 0x62 0x1e
14380x6a 0xc1 0x63 0x1e
14390xac 0x41 0x64 0x1e
14400xee 0xc1 0x64 0x1e
14410x30 0x42 0x65 0x1e
14420x72 0xc2 0x65 0x1e
14430xb4 0x42 0x66 0x1e
14440xf6 0x42 0x67 0x1e
14450x38 0xc3 0x67 0x1e
1446
1447# CHECK: fcvt     s26, h27
1448# CHECK: fcvt     d28, h29
14490x7a 0x43 0xe2 0x1e
14500xbc 0xc3 0xe2 0x1e
1451
1452#------------------------------------------------------------------------------
1453# Floating-point data-processing (2 sources)
1454#------------------------------------------------------------------------------
1455
1456# CHECK: fmul     s20, s19, s17
1457# CHECK: fdiv     s1, s2, s3
1458# CHECK: fadd     s4, s5, s6
1459# CHECK: fsub     s7, s8, s9
1460# CHECK: fmax     s10, s11, s12
1461# CHECK: fmin     s13, s14, s15
1462# CHECK: fmaxnm   s16, s17, s18
1463# CHECK: fminnm   s19, s20, s21
1464# CHECK: fnmul    s22, s23, s2
14650x74 0xa 0x31 0x1e
14660x41 0x18 0x23 0x1e
14670xa4 0x28 0x26 0x1e
14680x7 0x39 0x29 0x1e
14690x6a 0x49 0x2c 0x1e
14700xcd 0x59 0x2f 0x1e
14710x30 0x6a 0x32 0x1e
14720x93 0x7a 0x35 0x1e
14730xf6 0x8a 0x38 0x1e
1474
1475
1476# CHECK: fmul     d20, d19, d17
1477# CHECK: fdiv     d1, d2, d3
1478# CHECK: fadd     d4, d5, d6
1479# CHECK: fsub     d7, d8, d9
1480# CHECK: fmax     d10, d11, d12
1481# CHECK: fmin     d13, d14, d15
1482# CHECK: fmaxnm   d16, d17, d18
1483# CHECK: fminnm   d19, d20, d21
1484# CHECK: fnmul    d22, d23, d24
14850x74 0xa 0x71 0x1e
14860x41 0x18 0x63 0x1e
14870xa4 0x28 0x66 0x1e
14880x7 0x39 0x69 0x1e
14890x6a 0x49 0x6c 0x1e
14900xcd 0x59 0x6f 0x1e
14910x30 0x6a 0x72 0x1e
14920x93 0x7a 0x75 0x1e
14930xf6 0x8a 0x78 0x1e
1494
1495#------------------------------------------------------------------------------
1496# Floating-point data-processing (1 source)
1497#------------------------------------------------------------------------------
1498
1499# CHECK: fmadd s3, s5, s6, s31
1500# CHECK: fmadd d3, d13, d0, d23
1501# CHECK: fmsub s3, s5, s6, s31
1502# CHECK: fmsub d3, d13, d0, d23
1503# CHECK: fnmadd s3, s5, s6, s31
1504# CHECK: fnmadd d3, d13, d0, d23
1505# CHECK: fnmsub s3, s5, s6, s31
1506# CHECK: fnmsub d3, d13, d0, d23
15070xa3 0x7c 0x06 0x1f
15080xa3 0x5d 0x40 0x1f
15090xa3 0xfc 0x06 0x1f
15100xa3 0xdd 0x40 0x1f
15110xa3 0x7c 0x26 0x1f
15120xa3 0x5d 0x60 0x1f
15130xa3 0xfc 0x26 0x1f
15140xa3 0xdd 0x60 0x1f
1515
1516#------------------------------------------------------------------------------
1517# Floating-point <-> fixed-point conversion
1518#------------------------------------------------------------------------------
1519
1520# FP16: fcvtzs  w3, h5, #1
1521# FP16: fcvtzs  wzr, h20, #13
1522# FP16: fcvtzs  w19, h0, #32
15230xa3 0xfc 0xd8 0x1e
15240x9f 0xce 0xd8 0x1e
15250x13 0x80 0xd8 0x1e
1526
1527# FP16: fcvtzs  x3, h5, #1
1528# FP16: fcvtzs  x12, h30, #45
1529# FP16: fcvtzs  x19, h0, #64
15300xa3 0xfc 0xd8 0x9e
15310xcc 0x4f 0xd8 0x9e
15320x13 0x00 0xd8 0x9e
1533
1534# CHECK: fcvtzs  w3, s5, #1
1535# CHECK: fcvtzs  wzr, s20, #13
1536# CHECK: fcvtzs  w19, s0, #32
15370xa3 0xfc 0x18 0x1e
15380x9f 0xce 0x18 0x1e
15390x13 0x80 0x18 0x1e
1540
1541# CHECK: fcvtzs  x3, s5, #1
1542# CHECK: fcvtzs  x12, s30, #45
1543# CHECK: fcvtzs  x19, s0, #64
15440xa3 0xfc 0x18 0x9e
15450xcc 0x4f 0x18 0x9e
15460x13 0x00 0x18 0x9e
1547
1548# CHECK: fcvtzs  w3, d5, #1
1549# CHECK: fcvtzs  wzr, d20, #13
1550# CHECK: fcvtzs  w19, d0, #32
15510xa3 0xfc 0x58 0x1e
15520x9f 0xce 0x58 0x1e
15530x13 0x80 0x58 0x1e
1554
1555# CHECK: fcvtzs  x3, d5, #1
1556# CHECK: fcvtzs  x12, d30, #45
1557# CHECK: fcvtzs  x19, d0, #64
15580xa3 0xfc 0x58 0x9e
15590xcc 0x4f 0x58 0x9e
15600x13 0x00 0x58 0x9e
1561
1562# FP16: fcvtzu  w3, h5, #1
1563# FP16: fcvtzu  wzr, h20, #13
1564# FP16: fcvtzu  w19, h0, #32
15650xa3 0xfc 0xd9 0x1e
15660x9f 0xce 0xd9 0x1e
15670x13 0x80 0xd9 0x1e
1568
1569# FP16: fcvtzu  x3, h5, #1
1570# FP16: fcvtzu  x12, h30, #45
1571# FP16: fcvtzu  x19, h0, #64
15720xa3 0xfc 0xd9 0x9e
15730xcc 0x4f 0xd9 0x9e
15740x13 0x00 0xd9 0x9e
1575
1576# CHECK: fcvtzu  w3, s5, #1
1577# CHECK: fcvtzu  wzr, s20, #13
1578# CHECK: fcvtzu  w19, s0, #32
15790xa3 0xfc 0x19 0x1e
15800x9f 0xce 0x19 0x1e
15810x13 0x80 0x19 0x1e
1582
1583# CHECK: fcvtzu  x3, s5, #1
1584# CHECK: fcvtzu  x12, s30, #45
1585# CHECK: fcvtzu  x19, s0, #64
15860xa3 0xfc 0x19 0x9e
15870xcc 0x4f 0x19 0x9e
15880x13 0x00 0x19 0x9e
1589
1590# CHECK: fcvtzu  w3, d5, #1
1591# CHECK: fcvtzu  wzr, d20, #13
1592# CHECK: fcvtzu  w19, d0, #32
15930xa3 0xfc 0x59 0x1e
15940x9f 0xce 0x59 0x1e
15950x13 0x80 0x59 0x1e
1596
1597# CHECK: fcvtzu  x3, d5, #1
1598# CHECK: fcvtzu  x12, d30, #45
1599# CHECK: fcvtzu  x19, d0, #64
16000xa3 0xfc 0x59 0x9e
16010xcc 0x4f 0x59 0x9e
16020x13 0x00 0x59 0x9e
1603
1604# FP16: scvtf   h23, w19, #1
1605# FP16: scvtf   h31, wzr, #20
1606# FP16: scvtf   h14, w0, #32
16070x77 0xfe 0xc2 0x1e
16080xff 0xb3 0xc2 0x1e
16090x0e 0x80 0xc2 0x1e
1610
1611# FP16: scvtf   h23, x19, #1
1612# FP16: scvtf   h31, xzr, #20
1613# FP16: scvtf   h14, x0, #64
16140x77 0xfe 0xc2 0x9e
16150xff 0xb3 0xc2 0x9e
16160x0e 0x00 0xc2 0x9e
1617
1618# CHECK: scvtf   s23, w19, #1
1619# CHECK: scvtf   s31, wzr, #20
1620# CHECK: scvtf   s14, w0, #32
16210x77 0xfe 0x02 0x1e
16220xff 0xb3 0x02 0x1e
16230x0e 0x80 0x02 0x1e
1624
1625# CHECK: scvtf   s23, x19, #1
1626# CHECK: scvtf   s31, xzr, #20
1627# CHECK: scvtf   s14, x0, #64
16280x77 0xfe 0x02 0x9e
16290xff 0xb3 0x02 0x9e
16300x0e 0x00 0x02 0x9e
1631
1632# CHECK: scvtf   d23, w19, #1
1633# CHECK: scvtf   d31, wzr, #20
1634# CHECK: scvtf   d14, w0, #32
16350x77 0xfe 0x42 0x1e
16360xff 0xb3 0x42 0x1e
16370x0e 0x80 0x42 0x1e
1638
1639# CHECK: scvtf   d23, x19, #1
1640# CHECK: scvtf   d31, xzr, #20
1641# CHECK: scvtf   d14, x0, #64
16420x77 0xfe 0x42 0x9e
16430xff 0xb3 0x42 0x9e
16440x0e 0x00 0x42 0x9e
1645
1646# FP16: ucvtf   h23, w19, #1
1647# FP16: ucvtf   h31, wzr, #20
1648# FP16: ucvtf   h14, w0, #32
16490x77 0xfe 0xc3 0x1e
16500xff 0xb3 0xc3 0x1e
16510x0e 0x80 0xc3 0x1e
1652
1653# FP16: ucvtf   h23, x19, #1
1654# FP16: ucvtf   h31, xzr, #20
1655# FP16: ucvtf   h14, x0, #64
16560x77 0xfe 0xc3 0x9e
16570xff 0xb3 0xc3 0x9e
16580x0e 0x00 0xc3 0x9e
1659
1660# CHECK: ucvtf   s23, w19, #1
1661# CHECK: ucvtf   s31, wzr, #20
1662# CHECK: ucvtf   s14, w0, #32
16630x77 0xfe 0x03 0x1e
16640xff 0xb3 0x03 0x1e
16650x0e 0x80 0x03 0x1e
1666
1667# CHECK: ucvtf   s23, x19, #1
1668# CHECK: ucvtf   s31, xzr, #20
1669# CHECK: ucvtf   s14, x0, #64
16700x77 0xfe 0x03 0x9e
16710xff 0xb3 0x03 0x9e
16720x0e 0x00 0x03 0x9e
1673
1674# CHECK: ucvtf   d23, w19, #1
1675# CHECK: ucvtf   d31, wzr, #20
1676# CHECK: ucvtf   d14, w0, #32
16770x77 0xfe 0x43 0x1e
16780xff 0xb3 0x43 0x1e
16790x0e 0x80 0x43 0x1e
1680
1681# CHECK: ucvtf   d23, x19, #1
1682# CHECK: ucvtf   d31, xzr, #20
1683# CHECK: ucvtf   d14, x0, #64
16840x77 0xfe 0x43 0x9e
16850xff 0xb3 0x43 0x9e
16860x0e 0x00 0x43 0x9e
1687
1688#------------------------------------------------------------------------------
1689# Floating-point <-> integer conversion
1690#------------------------------------------------------------------------------
1691
1692# FP16: fcvtns   w3, h31
1693# FP16: fcvtns   xzr, h12
1694# FP16: fcvtnu   wzr, h12
1695# FP16: fcvtnu   x0, h0
16960xe3 0x3 0xe0 0x1e
16970x9f 0x1 0xe0 0x9e
16980x9f 0x1 0xe1 0x1e
16990x0 0x0 0xe1 0x9e
1700
1701# FP16: fcvtps   wzr, h9
1702# FP16: fcvtps   x12, h20
1703# FP16: fcvtpu   w30, h23
1704# FP16: fcvtpu   x29, h3
17050x3f 0x1 0xe8 0x1e
17060x8c 0x2 0xe8 0x9e
17070xfe 0x2 0xe9 0x1e
17080x7d 0x0 0xe9 0x9e
1709
1710# FP16: fcvtms   w2, h3
1711# FP16: fcvtms   x4, h5
1712# FP16: fcvtmu   w6, h7
1713# FP16: fcvtmu   x8, h9
17140x62 0x0 0xf0 0x1e
17150xa4 0x0 0xf0 0x9e
17160xe6 0x0 0xf1 0x1e
17170x28 0x1 0xf1 0x9e
1718
1719# FP16: fcvtzs   w10, h11
1720# FP16: fcvtzs   x12, h13
1721# FP16: fcvtzu   w14, h15
1722# FP16: fcvtzu   x15, h16
17230x6a 0x1 0xf8 0x1e
17240xac 0x1 0xf8 0x9e
17250xee 0x1 0xf9 0x1e
17260xf 0x2 0xf9 0x9e
1727
1728# FP16: scvtf    h17, w18
1729# FP16: scvtf    h19, x20
1730# FP16: ucvtf    h21, w22
1731# FP16: scvtf    h23, x24
17320x51 0x2 0xe2 0x1e
17330x93 0x2 0xe2 0x9e
17340xd5 0x2 0xe3 0x1e
17350x17 0x3 0xe2 0x9e
1736
1737# FP16: fcvtas   w25, h26
1738# FP16: fcvtas   x27, h28
1739# FP16: fcvtau   w29, h30
1740# FP16: fcvtau   xzr, h0
17410x59 0x3 0xe4 0x1e
17420x9b 0x3 0xe4 0x9e
17430xdd 0x3 0xe5 0x1e
17440x1f 0x0 0xe5 0x9e
1745
1746# CHECK: fcvtns   w3, s31
1747# CHECK: fcvtns   xzr, s12
1748# CHECK: fcvtnu   wzr, s12
1749# CHECK: fcvtnu   x0, s0
17500xe3 0x3 0x20 0x1e
17510x9f 0x1 0x20 0x9e
17520x9f 0x1 0x21 0x1e
17530x0 0x0 0x21 0x9e
1754
1755# CHECK: fcvtps   wzr, s9
1756# CHECK: fcvtps   x12, s20
1757# CHECK: fcvtpu   w30, s23
1758# CHECK: fcvtpu   x29, s3
17590x3f 0x1 0x28 0x1e
17600x8c 0x2 0x28 0x9e
17610xfe 0x2 0x29 0x1e
17620x7d 0x0 0x29 0x9e
1763
1764# CHECK: fcvtms   w2, s3
1765# CHECK: fcvtms   x4, s5
1766# CHECK: fcvtmu   w6, s7
1767# CHECK: fcvtmu   x8, s9
17680x62 0x0 0x30 0x1e
17690xa4 0x0 0x30 0x9e
17700xe6 0x0 0x31 0x1e
17710x28 0x1 0x31 0x9e
1772
1773# CHECK: fcvtzs   w10, s11
1774# CHECK: fcvtzs   x12, s13
1775# CHECK: fcvtzu   w14, s15
1776# CHECK: fcvtzu   x15, s16
17770x6a 0x1 0x38 0x1e
17780xac 0x1 0x38 0x9e
17790xee 0x1 0x39 0x1e
17800xf 0x2 0x39 0x9e
1781
1782# CHECK: scvtf    s17, w18
1783# CHECK: scvtf    s19, x20
1784# CHECK: ucvtf    s21, w22
1785# CHECK: scvtf    s23, x24
17860x51 0x2 0x22 0x1e
17870x93 0x2 0x22 0x9e
17880xd5 0x2 0x23 0x1e
17890x17 0x3 0x22 0x9e
1790
1791# CHECK: fcvtas   w25, s26
1792# CHECK: fcvtas   x27, s28
1793# CHECK: fcvtau   w29, s30
1794# CHECK: fcvtau   xzr, s0
17950x59 0x3 0x24 0x1e
17960x9b 0x3 0x24 0x9e
17970xdd 0x3 0x25 0x1e
17980x1f 0x0 0x25 0x9e
1799
1800# CHECK: fcvtns   w3, d31
1801# CHECK: fcvtns   xzr, d12
1802# CHECK: fcvtnu   wzr, d12
1803# CHECK: fcvtnu   x0, d0
18040xe3 0x3 0x60 0x1e
18050x9f 0x1 0x60 0x9e
18060x9f 0x1 0x61 0x1e
18070x0 0x0 0x61 0x9e
1808
1809# CHECK: fcvtps   wzr, d9
1810# CHECK: fcvtps   x12, d20
1811# CHECK: fcvtpu   w30, d23
1812# CHECK: fcvtpu   x29, d3
18130x3f 0x1 0x68 0x1e
18140x8c 0x2 0x68 0x9e
18150xfe 0x2 0x69 0x1e
18160x7d 0x0 0x69 0x9e
1817
1818# CHECK: fcvtms   w2, d3
1819# CHECK: fcvtms   x4, d5
1820# CHECK: fcvtmu   w6, d7
1821# CHECK: fcvtmu   x8, d9
18220x62 0x0 0x70 0x1e
18230xa4 0x0 0x70 0x9e
18240xe6 0x0 0x71 0x1e
18250x28 0x1 0x71 0x9e
1826
1827# CHECK: fcvtzs   w10, d11
1828# CHECK: fcvtzs   x12, d13
1829# CHECK: fcvtzu   w14, d15
1830# CHECK: fcvtzu   x15, d16
18310x6a 0x1 0x78 0x1e
18320xac 0x1 0x78 0x9e
18330xee 0x1 0x79 0x1e
18340xf 0x2 0x79 0x9e
1835
1836# CHECK: scvtf    d17, w18
1837# CHECK: scvtf    d19, x20
1838# CHECK: ucvtf    d21, w22
1839# CHECK: ucvtf    d23, x24
18400x51 0x2 0x62 0x1e
18410x93 0x2 0x62 0x9e
18420xd5 0x2 0x63 0x1e
18430x17 0x3 0x63 0x9e
1844
1845# CHECK: fcvtas   w25, d26
1846# CHECK: fcvtas   x27, d28
1847# CHECK: fcvtau   w29, d30
1848# CHECK: fcvtau   xzr, d0
18490x59 0x3 0x64 0x1e
18500x9b 0x3 0x64 0x9e
18510xdd 0x3 0x65 0x1e
18520x1f 0x0 0x65 0x9e
1853
1854# CHECK: fmov     w3, s9
1855# CHECK: fmov     s9, w3
18560x23 0x1 0x26 0x1e
18570x69 0x0 0x27 0x1e
1858
1859# CHECK: fmov     x20, d31
1860# CHECK: fmov     d1, x15
18610xf4 0x3 0x66 0x9e
18620xe1 0x1 0x67 0x9e
1863
1864# CHECK: fmov     x3, v12.d[1]
1865# CHECK: fmov     v1.d[1], x19
18660x83 0x1 0xae 0x9e
18670x61 0x2 0xaf 0x9e
1868
1869#------------------------------------------------------------------------------
1870# Floating-point immediate
1871#------------------------------------------------------------------------------
1872
1873# CHECK: fmov     s2, #0.12500000
1874# CHECK: fmov     s3, #1.00000000
1875# CHECK: fmov     d30, #16.00000000
18760x2 0x10 0x28 0x1e
18770x3 0x10 0x2e 0x1e
18780x1e 0x10 0x66 0x1e
1879
1880# CHECK: fmov     s4, #1.06250000
1881# CHECK: fmov     d10, #1.93750000
18820x4 0x30 0x2e 0x1e
18830xa 0xf0 0x6f 0x1e
1884
1885# CHECK: fmov     s12, #-1.00000000
18860xc 0x10 0x3e 0x1e
1887
1888# CHECK: fmov     d16, #8.50000000
18890x10 0x30 0x64 0x1e
1890
1891#------------------------------------------------------------------------------
1892# Load-register (literal)
1893#------------------------------------------------------------------------------
1894
1895# CHECK: ldr       w3, #0
1896# CHECK: ldr       x29, #4
1897# CHECK: ldrsw     xzr, #-4
18980x03 0x00 0x00 0x18
18990x3d 0x00 0x00 0x58
19000xff 0xff 0xff 0x98
1901
1902# CHECK: ldr       s0, #8
1903# CHECK: ldr       d0, #1048572
1904# CHECK: ldr       q0, #-1048576
19050x40 0x00 0x00 0x1c
19060xe0 0xff 0x7f 0x5c
19070x00 0x00 0x80 0x9c
1908
1909# CHECK: prfm      pldl1strm, #0
1910# CHECK: prfm      #22, #0
19110x01 0x00 0x00 0xd8
19120x16 0x00 0x00 0xd8
1913
1914#------------------------------------------------------------------------------
1915# Load/store exclusive
1916#------------------------------------------------------------------------------
1917
1918#CHECK: stxrb      w18, w8, [sp]
1919#CHECK: stxrh      w24, w15, [x16]
1920#CHECK: stxr       w5, w6, [x17]
1921#CHECK: stxr       w1, x10, [x21]
1922#CHECK: stxr       w1, x10, [x21]
19230xe8 0x7f 0x12 0x08
19240x0f 0x7e 0x18 0x48
19250x26 0x7e 0x05 0x88
19260xaa 0x7e 0x01 0xc8
19270xaa 0x7a 0x01 0xc8
1928
1929#CHECK: ldxrb      w30, [x0]
1930#CHECK: ldxrh      w17, [x4]
1931#CHECK: ldxr       w22, [sp]
1932#CHECK: ldxr       x11, [x29]
1933#CHECK: ldxr       x11, [x29]
1934#CHECK: ldxr       x11, [x29]
19350x1e 0x7c 0x5f 0x08
19360x91 0x7c 0x5f 0x48
19370xf6 0x7f 0x5f 0x88
19380xab 0x7f 0x5f 0xc8
19390xab 0x6f 0x5f 0xc8
19400xab 0x7f 0x5e 0xc8
1941
1942#CHECK: stxp       w12, w11, w10, [sp]
1943#CHECK: stxp       wzr, x27, x9, [x12]
19440xeb 0x2b 0x2c 0x88
19450x9b 0x25 0x3f 0xc8
1946
1947#CHECK: ldxp       w0, wzr, [sp]
1948#CHECK: ldxp       x17, x0, [x18]
1949#CHECK: ldxp       x17, x0, [x18]
19500xe0 0x7f 0x7f 0x88
19510x51 0x02 0x7f 0xc8
19520x51 0x02 0x7e 0xc8
1953
1954#CHECK: stlxrb     w12, w22, [x0]
1955#CHECK: stlxrh     w10, w1, [x1]
1956#CHECK: stlxr      w9, w2, [x2]
1957#CHECK: stlxr      w9, x3, [sp]
1958
19590x16 0xfc 0x0c 0x08
19600x21 0xfc 0x0a 0x48
19610x42 0xfc 0x09 0x88
19620xe3 0xff 0x09 0xc8
1963
1964#CHECK: ldaxrb     w8, [x4]
1965#CHECK: ldaxrh     w7, [x5]
1966#CHECK: ldaxr      w6, [sp]
1967#CHECK: ldaxr      x5, [x6]
1968#CHECK: ldaxr      x5, [x6]
1969#CHECK: ldaxr      x5, [x6]
19700x88 0xfc 0x5f 0x08
19710xa7 0xfc 0x5f 0x48
19720xe6 0xff 0x5f 0x88
19730xc5 0xfc 0x5f 0xc8
19740xc5 0xec 0x5f 0xc8
19750xc5 0xfc 0x5e 0xc8
1976
1977#CHECK: stlxp      w4, w5, w6, [sp]
1978#CHECK: stlxp      wzr, x6, x7, [x1]
19790xe5 0x9b 0x24 0x88
19800x26 0x9c 0x3f 0xc8
1981
1982#CHECK: ldaxp      w5, w18, [sp]
1983#CHECK: ldaxp      x6, x19, [x22]
1984#CHECK: ldaxp      x6, x19, [x22]
19850xe5 0xcb 0x7f 0x88
19860xc6 0xce 0x7f 0xc8
19870xc6 0xce 0x7e 0xc8
1988
1989#CHECK: stlrb      w24, [sp]
1990#CHECK: stlrh      w25, [x30]
1991#CHECK: stlr       w26, [x29]
1992#CHECK: stlr       x27, [x28]
1993#CHECK: stlr       x27, [x28]
1994#CHECK: stlr       x27, [x28]
19950xf8 0xff 0x9f 0x08
19960xd9 0xff 0x9f 0x48
19970xba 0xff 0x9f 0x88
19980x9b 0xff 0x9f 0xc8
19990x9b 0xef 0x9f 0xc8
20000x9b 0xff 0x9e 0xc8
2001
2002#CHECK: ldarb      w23, [sp]
2003#CHECK: ldarh      w22, [x30]
2004#CHECK: ldar       wzr, [x29]
2005#CHECK: ldar       x21, [x28]
2006#CHECK: ldar       x21, [x28]
2007#CHECK: ldar       x21, [x28]
20080xf7 0xff 0xdf 0x08
20090xd6 0xff 0xdf 0x48
20100xbf 0xff 0xdf 0x88
20110x95 0xff 0xdf 0xc8
20120x95 0xef 0xdf 0xc8
20130x95 0xff 0xde 0xc8
2014
2015#------------------------------------------------------------------------------
2016# Load/store (unscaled  immediate)
2017#------------------------------------------------------------------------------
2018
2019# CHECK: sturb    w9, [sp]
2020# CHECK: sturh    wzr, [x12, #255]
2021# CHECK: stur     w16, [x0, #-256]
2022# CHECK: stur     x28, [x14, #1]
20230xe9 0x3 0x0 0x38
20240x9f 0xf1 0xf 0x78
20250x10 0x0 0x10 0xb8
20260xdc 0x11 0x0 0xf8
2027
2028# CHECK: ldurb    w1, [x20, #255]
2029# CHECK: ldurh    w20, [x1, #255]
2030# CHECK: ldur     w12, [sp, #255]
2031# CHECK: ldur     xzr, [x12, #255]
20320x81 0xf2 0x4f 0x38
20330x34 0xf0 0x4f 0x78
20340xec 0xf3 0x4f 0xb8
20350x9f 0xf1 0x4f 0xf8
2036
2037# CHECK: ldursb   x9, [x7, #-256]
2038# CHECK: ldursh   x17, [x19, #-256]
2039# CHECK: ldursw   x20, [x15, #-256]
2040# CHECK: prfum    pldl2keep, [sp, #-256]
2041# CHECK: ldursb   w19, [x1, #-256]
2042# CHECK: ldursh   w15, [x21, #-256]
20430xe9 0x0 0x90 0x38
20440x71 0x2 0x90 0x78
20450xf4 0x1 0x90 0xb8
20460xe2 0x3 0x90 0xf8
20470x33 0x0 0xd0 0x38
20480xaf 0x2 0xd0 0x78
2049
2050# CHECK: stur     b0, [sp, #1]
2051# CHECK: stur     h12, [x12, #-1]
2052# CHECK: stur     s15, [x0, #255]
2053# CHECK: stur     d31, [x5, #25]
2054# CHECK: stur     q9, [x5]
20550xe0 0x13 0x0 0x3c
20560x8c 0xf1 0x1f 0x7c
20570xf 0xf0 0xf 0xbc
20580xbf 0x90 0x1 0xfc
20590xa9 0x0 0x80 0x3c
2060
2061# CHECK: ldur     b3, [sp]
2062# CHECK: ldur     h5, [x4, #-256]
2063# CHECK: ldur     s7, [x12, #-1]
2064# CHECK: ldur     d11, [x19, #4]
2065# CHECK: ldur     q13, [x1, #2]
20660xe3 0x3 0x40 0x3c
20670x85 0x0 0x50 0x7c
20680x87 0xf1 0x5f 0xbc
20690x6b 0x42 0x40 0xfc
20700x2d 0x20 0xc0 0x3c
2071
2072#------------------------------------------------------------------------------
2073# Load/store (immediate post-indexed)
2074#------------------------------------------------------------------------------
2075
2076# E.g. "str xzr, [sp], #4" is *not* unpredictable
2077# CHECK-NOT: warning: potentially undefined instruction encoding
20780xff 0x47 0x40 0xb8
2079
2080# CHECK: strb     w9, [x2], #255
2081# CHECK: strb     w10, [x3], #1
2082# CHECK: strb     w10, [x3], #-256
2083# CHECK: strh     w9, [x2], #255
2084# CHECK: strh     w9, [x2], #1
2085# CHECK: strh     w10, [x3], #-256
20860x49 0xf4 0xf 0x38
20870x6a 0x14 0x0 0x38
20880x6a 0x4 0x10 0x38
20890x49 0xf4 0xf 0x78
20900x49 0x14 0x0 0x78
20910x6a 0x4 0x10 0x78
2092
2093# CHECK: str      w19, [sp], #255
2094# CHECK: str      w20, [x30], #1
2095# CHECK: str      w21, [x12], #-256
2096# CHECK: str      xzr, [x9], #255
2097# CHECK: str      x2, [x3], #1
2098# CHECK: str      x19, [x12], #-256
20990xf3 0xf7 0xf 0xb8
21000xd4 0x17 0x0 0xb8
21010x95 0x5 0x10 0xb8
21020x3f 0xf5 0xf 0xf8
21030x62 0x14 0x0 0xf8
21040x93 0x5 0x10 0xf8
2105
2106# CHECK: ldrb     w9, [x2], #255
2107# CHECK: ldrb     w10, [x3], #1
2108# CHECK: ldrb     w10, [x3], #-256
2109# CHECK: ldrh     w9, [x2], #255
2110# CHECK: ldrh     w9, [x2], #1
2111# CHECK: ldrh     w10, [x3], #-256
21120x49 0xf4 0x4f 0x38
21130x6a 0x14 0x40 0x38
21140x6a 0x4 0x50 0x38
21150x49 0xf4 0x4f 0x78
21160x49 0x14 0x40 0x78
21170x6a 0x4 0x50 0x78
2118
2119# CHECK: ldr      w19, [sp], #255
2120# CHECK: ldr      w20, [x30], #1
2121# CHECK: ldr      w21, [x12], #-256
2122# CHECK: ldr      xzr, [x9], #255
2123# CHECK: ldr      x2, [x3], #1
2124# CHECK: ldr      x19, [x12], #-256
21250xf3 0xf7 0x4f 0xb8
21260xd4 0x17 0x40 0xb8
21270x95 0x5 0x50 0xb8
21280x3f 0xf5 0x4f 0xf8
21290x62 0x14 0x40 0xf8
21300x93 0x5 0x50 0xf8
2131
2132# CHECK: ldrsb    xzr, [x9], #255
2133# CHECK: ldrsb    x2, [x3], #1
2134# CHECK: ldrsb    x19, [x12], #-256
2135# CHECK: ldrsh    xzr, [x9], #255
2136# CHECK: ldrsh    x2, [x3], #1
2137# CHECK: ldrsh    x19, [x12], #-256
2138# CHECK: ldrsw    xzr, [x9], #255
2139# CHECK: ldrsw    x2, [x3], #1
2140# CHECK: ldrsw    x19, [x12], #-256
21410x3f 0xf5 0x8f 0x38
21420x62 0x14 0x80 0x38
21430x93 0x5 0x90 0x38
21440x3f 0xf5 0x8f 0x78
21450x62 0x14 0x80 0x78
21460x93 0x5 0x90 0x78
21470x3f 0xf5 0x8f 0xb8
21480x62 0x14 0x80 0xb8
21490x93 0x5 0x90 0xb8
2150
2151# CHECK: ldrsb    wzr, [x9], #255
2152# CHECK: ldrsb    w2, [x3], #1
2153# CHECK: ldrsb    w19, [x12], #-256
2154# CHECK: ldrsh    wzr, [x9], #255
2155# CHECK: ldrsh    w2, [x3], #1
2156# CHECK: ldrsh    w19, [x12], #-256
21570x3f 0xf5 0xcf 0x38
21580x62 0x14 0xc0 0x38
21590x93 0x5 0xd0 0x38
21600x3f 0xf5 0xcf 0x78
21610x62 0x14 0xc0 0x78
21620x93 0x5 0xd0 0x78
2163
2164# CHECK: str      b0, [x0], #255
2165# CHECK: str      b3, [x3], #1
2166# CHECK: str      b5, [sp], #-256
2167# CHECK: str      h10, [x10], #255
2168# CHECK: str      h13, [x23], #1
2169# CHECK: str      h15, [sp], #-256
2170# CHECK: str      s20, [x20], #255
2171# CHECK: str      s23, [x23], #1
2172# CHECK: str      s25, [x0], #-256
2173# CHECK: str      d20, [x20], #255
2174# CHECK: str      d23, [x23], #1
2175# CHECK: str      d25, [x0], #-256
21760x0 0xf4 0xf 0x3c
21770x63 0x14 0x0 0x3c
21780xe5 0x7 0x10 0x3c
21790x4a 0xf5 0xf 0x7c
21800xed 0x16 0x0 0x7c
21810xef 0x7 0x10 0x7c
21820x94 0xf6 0xf 0xbc
21830xf7 0x16 0x0 0xbc
21840x19 0x4 0x10 0xbc
21850x94 0xf6 0xf 0xfc
21860xf7 0x16 0x0 0xfc
21870x19 0x4 0x10 0xfc
2188
2189# CHECK: ldr      b0, [x0], #255
2190# CHECK: ldr      b3, [x3], #1
2191# CHECK: ldr      b5, [sp], #-256
2192# CHECK: ldr      h10, [x10], #255
2193# CHECK: ldr      h13, [x23], #1
2194# CHECK: ldr      h15, [sp], #-256
2195# CHECK: ldr      s20, [x20], #255
2196# CHECK: ldr      s23, [x23], #1
2197# CHECK: ldr      s25, [x0], #-256
2198# CHECK: ldr      d20, [x20], #255
2199# CHECK: ldr      d23, [x23], #1
2200# CHECK: ldr      d25, [x0], #-256
22010x0 0xf4 0x4f 0x3c
22020x63 0x14 0x40 0x3c
22030xe5 0x7 0x50 0x3c
22040x4a 0xf5 0x4f 0x7c
22050xed 0x16 0x40 0x7c
22060xef 0x7 0x50 0x7c
22070x94 0xf6 0x4f 0xbc
22080xf7 0x16 0x40 0xbc
22090x19 0x4 0x50 0xbc
22100x94 0xf6 0x4f 0xfc
22110xf7 0x16 0x40 0xfc
22120x19 0x4 0x50 0xfc
22130x34 0xf4 0xcf 0x3c
2214
2215# CHECK: ldr      q20, [x1], #255
2216# CHECK: ldr      q23, [x9], #1
2217# CHECK: ldr      q25, [x20], #-256
2218# CHECK: str      q10, [x1], #255
2219# CHECK: str      q22, [sp], #1
2220# CHECK: str      q21, [x20], #-256
22210x37 0x15 0xc0 0x3c
22220x99 0x6 0xd0 0x3c
22230x2a 0xf4 0x8f 0x3c
22240xf6 0x17 0x80 0x3c
22250x95 0x6 0x90 0x3c
2226
2227#-------------------------------------------------------------------------------
2228# Load-store register (immediate pre-indexed)
2229#-------------------------------------------------------------------------------
2230
2231# E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2232# CHECK-NOT: warning: potentially undefined instruction encoding
22330xff 0xf 0x40 0xf8
2234
2235# CHECK: ldr      x3, [x4, #0]!
22360x83 0xc 0x40 0xf8
2237
2238# CHECK: strb     w9, [x2, #255]!
2239# CHECK: strb     w10, [x3, #1]!
2240# CHECK: strb     w10, [x3, #-256]!
2241# CHECK: strh     w9, [x2, #255]!
2242# CHECK: strh     w9, [x2, #1]!
2243# CHECK: strh     w10, [x3, #-256]!
22440x49 0xfc 0xf 0x38
22450x6a 0x1c 0x0 0x38
22460x6a 0xc 0x10 0x38
22470x49 0xfc 0xf 0x78
22480x49 0x1c 0x0 0x78
22490x6a 0xc 0x10 0x78
2250
2251# CHECK: str      w19, [sp, #255]!
2252# CHECK: str      w20, [x30, #1]!
2253# CHECK: str      w21, [x12, #-256]!
2254# CHECK: str      xzr, [x9, #255]!
2255# CHECK: str      x2, [x3, #1]!
2256# CHECK: str      x19, [x12, #-256]!
22570xf3 0xff 0xf 0xb8
22580xd4 0x1f 0x0 0xb8
22590x95 0xd 0x10 0xb8
22600x3f 0xfd 0xf 0xf8
22610x62 0x1c 0x0 0xf8
22620x93 0xd 0x10 0xf8
2263
2264# CHECK: ldrb     w9, [x2, #255]!
2265# CHECK: ldrb     w10, [x3, #1]!
2266# CHECK: ldrb     w10, [x3, #-256]!
2267# CHECK: ldrh     w9, [x2, #255]!
2268# CHECK: ldrh     w9, [x2, #1]!
2269# CHECK: ldrh     w10, [x3, #-256]!
22700x49 0xfc 0x4f 0x38
22710x6a 0x1c 0x40 0x38
22720x6a 0xc 0x50 0x38
22730x49 0xfc 0x4f 0x78
22740x49 0x1c 0x40 0x78
22750x6a 0xc 0x50 0x78
2276
2277# CHECK: ldr      w19, [sp, #255]!
2278# CHECK: ldr      w20, [x30, #1]!
2279# CHECK: ldr      w21, [x12, #-256]!
2280# CHECK: ldr      xzr, [x9, #255]!
2281# CHECK: ldr      x2, [x3, #1]!
2282# CHECK: ldr      x19, [x12, #-256]!
22830xf3 0xff 0x4f 0xb8
22840xd4 0x1f 0x40 0xb8
22850x95 0xd 0x50 0xb8
22860x3f 0xfd 0x4f 0xf8
22870x62 0x1c 0x40 0xf8
22880x93 0xd 0x50 0xf8
2289
2290# CHECK: ldrsb    xzr, [x9, #255]!
2291# CHECK: ldrsb    x2, [x3, #1]!
2292# CHECK: ldrsb    x19, [x12, #-256]!
2293# CHECK: ldrsh    xzr, [x9, #255]!
2294# CHECK: ldrsh    x2, [x3, #1]!
2295# CHECK: ldrsh    x19, [x12, #-256]!
2296# CHECK: ldrsw    xzr, [x9, #255]!
2297# CHECK: ldrsw    x2, [x3, #1]!
2298# CHECK: ldrsw    x19, [x12, #-256]!
22990x3f 0xfd 0x8f 0x38
23000x62 0x1c 0x80 0x38
23010x93 0xd 0x90 0x38
23020x3f 0xfd 0x8f 0x78
23030x62 0x1c 0x80 0x78
23040x93 0xd 0x90 0x78
23050x3f 0xfd 0x8f 0xb8
23060x62 0x1c 0x80 0xb8
23070x93 0xd 0x90 0xb8
2308
2309# CHECK: ldrsb    wzr, [x9, #255]!
2310# CHECK: ldrsb    w2, [x3, #1]!
2311# CHECK: ldrsb    w19, [x12, #-256]!
2312# CHECK: ldrsh    wzr, [x9, #255]!
2313# CHECK: ldrsh    w2, [x3, #1]!
2314# CHECK: ldrsh    w19, [x12, #-256]!
23150x3f 0xfd 0xcf 0x38
23160x62 0x1c 0xc0 0x38
23170x93 0xd 0xd0 0x38
23180x3f 0xfd 0xcf 0x78
23190x62 0x1c 0xc0 0x78
23200x93 0xd 0xd0 0x78
2321
2322# CHECK: str      b0, [x0, #255]!
2323# CHECK: str      b3, [x3, #1]!
2324# CHECK: str      b5, [sp, #-256]!
2325# CHECK: str      h10, [x10, #255]!
2326# CHECK: str      h13, [x23, #1]!
2327# CHECK: str      h15, [sp, #-256]!
2328# CHECK: str      s20, [x20, #255]!
2329# CHECK: str      s23, [x23, #1]!
2330# CHECK: str      s25, [x0, #-256]!
2331# CHECK: str      d20, [x20, #255]!
2332# CHECK: str      d23, [x23, #1]!
2333# CHECK: str      d25, [x0, #-256]!
23340x0 0xfc 0xf 0x3c
23350x63 0x1c 0x0 0x3c
23360xe5 0xf 0x10 0x3c
23370x4a 0xfd 0xf 0x7c
23380xed 0x1e 0x0 0x7c
23390xef 0xf 0x10 0x7c
23400x94 0xfe 0xf 0xbc
23410xf7 0x1e 0x0 0xbc
23420x19 0xc 0x10 0xbc
23430x94 0xfe 0xf 0xfc
23440xf7 0x1e 0x0 0xfc
23450x19 0xc 0x10 0xfc
2346
2347# CHECK: ldr      b0, [x0, #255]!
2348# CHECK: ldr      b3, [x3, #1]!
2349# CHECK: ldr      b5, [sp, #-256]!
2350# CHECK: ldr      h10, [x10, #255]!
2351# CHECK: ldr      h13, [x23, #1]!
2352# CHECK: ldr      h15, [sp, #-256]!
2353# CHECK: ldr      s20, [x20, #255]!
2354# CHECK: ldr      s23, [x23, #1]!
2355# CHECK: ldr      s25, [x0, #-256]!
2356# CHECK: ldr      d20, [x20, #255]!
2357# CHECK: ldr      d23, [x23, #1]!
2358# CHECK: ldr      d25, [x0, #-256]!
23590x0 0xfc 0x4f 0x3c
23600x63 0x1c 0x40 0x3c
23610xe5 0xf 0x50 0x3c
23620x4a 0xfd 0x4f 0x7c
23630xed 0x1e 0x40 0x7c
23640xef 0xf 0x50 0x7c
23650x94 0xfe 0x4f 0xbc
23660xf7 0x1e 0x40 0xbc
23670x19 0xc 0x50 0xbc
23680x94 0xfe 0x4f 0xfc
23690xf7 0x1e 0x40 0xfc
23700x19 0xc 0x50 0xfc
2371
2372# CHECK: ldr      q20, [x1, #255]!
2373# CHECK: ldr      q23, [x9, #1]!
2374# CHECK: ldr      q25, [x20, #-256]!
2375# CHECK: str      q10, [x1, #255]!
2376# CHECK: str      q22, [sp, #1]!
2377# CHECK: str      q21, [x20, #-256]!
23780x34 0xfc 0xcf 0x3c
23790x37 0x1d 0xc0 0x3c
23800x99 0xe 0xd0 0x3c
23810x2a 0xfc 0x8f 0x3c
23820xf6 0x1f 0x80 0x3c
23830x95 0xe 0x90 0x3c
2384
2385#------------------------------------------------------------------------------
2386# Load/store (unprivileged)
2387#------------------------------------------------------------------------------
2388
2389# CHECK: sttrb    w9, [sp]
2390# CHECK: sttrh    wzr, [x12, #255]
2391# CHECK: sttr     w16, [x0, #-256]
2392# CHECK: sttr     x28, [x14, #1]
23930xe9 0x0b 0x0 0x38
23940x9f 0xf9 0xf 0x78
23950x10 0x08 0x10 0xb8
23960xdc 0x19 0x0 0xf8
2397
2398# CHECK: ldtrb    w1, [x20, #255]
2399# CHECK: ldtrh    w20, [x1, #255]
2400# CHECK: ldtr     w12, [sp, #255]
2401# CHECK: ldtr     xzr, [x12, #255]
24020x81 0xfa 0x4f 0x38
24030x34 0xf8 0x4f 0x78
24040xec 0xfb 0x4f 0xb8
24050x9f 0xf9 0x4f 0xf8
2406
2407# CHECK: ldtrsb   x9, [x7, #-256]
2408# CHECK: ldtrsh   x17, [x19, #-256]
2409# CHECK: ldtrsw   x20, [x15, #-256]
2410# CHECK: ldtrsb   w19, [x1, #-256]
2411# CHECK: ldtrsh   w15, [x21, #-256]
24120xe9 0x08 0x90 0x38
24130x71 0x0a 0x90 0x78
24140xf4 0x09 0x90 0xb8
24150x33 0x08 0xd0 0x38
24160xaf 0x0a 0xd0 0x78
2417
2418#------------------------------------------------------------------------------
2419# Load/store (unsigned  immediate)
2420#------------------------------------------------------------------------------
2421
2422# CHECK: ldr      x0, [x0]
2423# CHECK: ldr      x4, [x29]
2424# CHECK: ldr      x30, [x12, #32760]
2425# CHECK: ldr      x20, [sp, #8]
24260x0 0x0 0x40 0xf9
24270xa4 0x3 0x40 0xf9
24280x9e 0xfd 0x7f 0xf9
24290xf4 0x7 0x40 0xf9
2430
2431# CHECK: ldr      xzr, [sp]
24320xff 0x3 0x40 0xf9
2433
2434# CHECK: ldr      w2, [sp]
2435# CHECK: ldr      w17, [sp, #16380]
2436# CHECK: ldr      w13, [x2, #4]
24370xe2 0x3 0x40 0xb9
24380xf1 0xff 0x7f 0xb9
24390x4d 0x4 0x40 0xb9
2440
2441# CHECK: ldrsw    x2, [x5, #4]
2442# CHECK: ldrsw    x23, [sp, #16380]
24430xa2 0x4 0x80 0xb9
24440xf7 0xff 0xbf 0xb9
2445
2446# CHECK: ldrh     w2, [x4]
2447# CHECK: ldrsh    w23, [x6, #8190]
2448# CHECK: ldrsh    wzr, [sp, #2]
2449# CHECK: ldrsh    x29, [x2, #2]
24500x82 0x0 0x40 0x79
24510xd7 0xfc 0xff 0x79
24520xff 0x7 0xc0 0x79
24530x5d 0x4 0x80 0x79
2454
2455# CHECK: ldrb     w26, [x3, #121]
2456# CHECK: ldrb     w12, [x2]
2457# CHECK: ldrsb    w27, [sp, #4095]
2458# CHECK: ldrsb    xzr, [x15]
24590x7a 0xe4 0x41 0x39
24600x4c 0x0 0x40 0x39
24610xfb 0xff 0xff 0x39
24620xff 0x1 0x80 0x39
2463
2464# CHECK: str      x30, [sp]
2465# CHECK: str      w20, [x4, #16380]
2466# CHECK: strh     w20, [x10, #14]
2467# CHECK: strh     w17, [sp, #8190]
2468# CHECK: strb     w23, [x3, #4095]
2469# CHECK: strb     wzr, [x2]
24700xfe 0x3 0x0 0xf9
24710x94 0xfc 0x3f 0xb9
24720x54 0x1d 0x0 0x79
24730xf1 0xff 0x3f 0x79
24740x77 0xfc 0x3f 0x39
24750x5f 0x0 0x0 0x39
2476
2477# CHECK: ldr      b31, [sp, #4095]
2478# CHECK: ldr      h20, [x2, #8190]
2479# CHECK: ldr      s10, [x19, #16380]
2480# CHECK: ldr      d3, [x10, #32760]
2481# CHECK: str      q12, [sp, #65520]
24820xff 0xff 0x7f 0x3d
24830x54 0xfc 0x7f 0x7d
24840x6a 0xfe 0x7f 0xbd
24850x43 0xfd 0x7f 0xfd
24860xec 0xff 0xbf 0x3d
2487
2488# CHECK: prfm    pldl1keep, [sp, #8]
2489# CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2490# CHECK: prfm    pldl2keep, [x5, #16]
2491# CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2492# CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2493# CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2494# CHECK: prfm    plil1keep, [sp, #8]
2495# CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2496# CHECK: prfm    plil2keep, [x5, #16]
2497# CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2498# CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2499# CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2500# CHECK: prfm    pstl1keep, [sp, #8]
2501# CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2502# CHECK: prfm    pstl2keep, [x5, #16]
2503# CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2504# CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2505# CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
25060xe0 0x07 0x80 0xf9
25070x61 0x00 0x80 0xf9
25080xa2 0x08 0x80 0xf9
25090x43 0x00 0x80 0xf9
25100xa4 0x00 0x80 0xf9
25110xc5 0x00 0x80 0xf9
25120xe8 0x07 0x80 0xf9
25130x69 0x00 0x80 0xf9
25140xaa 0x08 0x80 0xf9
25150x4b 0x00 0x80 0xf9
25160xac 0x00 0x80 0xf9
25170xcd 0x00 0x80 0xf9
25180xf0 0x07 0x80 0xf9
25190x71 0x00 0x80 0xf9
25200xb2 0x08 0x80 0xf9
25210x53 0x00 0x80 0xf9
25220xb4 0x00 0x80 0xf9
25230xd5 0x00 0x80 0xf9
2524
2525
2526#------------------------------------------------------------------------------
2527# Load/store (register offset)
2528#------------------------------------------------------------------------------
2529
2530# CHECK: ldrb     w3, [sp, x5]
2531# CHECK: ldrb     w9, [x27, x6]
2532# CHECK: ldrsb    w10, [x30, x7]
2533# CHECK: ldrb     w11, [x29, x3, sxtx]
2534# CHECK: strb     w12, [x28, xzr, sxtx]
2535# CHECK: ldrb     w14, [x26, w6, uxtw]
2536# CHECK: ldrsb    w15, [x25, w7, uxtw]
2537# CHECK: ldrb     w17, [x23, w9, sxtw]
2538# CHECK: ldrsb    x18, [x22, w10, sxtw]
25390xe3 0x6b 0x65 0x38
25400x69 0x6b 0x66 0x38
25410xca 0x6b 0xe7 0x38
25420xab 0xeb 0x63 0x38
25430x8c 0xeb 0x3f 0x38
25440x4e 0x4b 0x66 0x38
25450x2f 0x4b 0xe7 0x38
25460xf1 0xca 0x69 0x38
25470xd2 0xca 0xaa 0x38
2548
2549# CHECK: ldrsh    w3, [sp, x5]
2550# CHECK: ldrsh    w9, [x27, x6]
2551# CHECK: ldrh     w10, [x30, x7, lsl #1]
2552# CHECK: strh     w11, [x29, x3, sxtx]
2553# CHECK: ldrh     w12, [x28, xzr, sxtx]
2554# CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2555# CHECK: ldrh     w14, [x26, w6, uxtw]
2556# CHECK: ldrh     w15, [x25, w7, uxtw]
2557# CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2558# CHECK: ldrh     w17, [x23, w9, sxtw]
2559# CHECK: ldrh     w18, [x22, w10, sxtw]
2560# CHECK: strh     w19, [x21, wzr, sxtw #1]
25610xe3 0x6b 0xe5 0x78
25620x69 0x6b 0xe6 0x78
25630xca 0x7b 0x67 0x78
25640xab 0xeb 0x23 0x78
25650x8c 0xeb 0x7f 0x78
25660x6d 0xfb 0xa5 0x78
25670x4e 0x4b 0x66 0x78
25680x2f 0x4b 0x67 0x78
25690x10 0x5b 0xe8 0x78
25700xf1 0xca 0x69 0x78
25710xd2 0xca 0x6a 0x78
25720xb3 0xda 0x3f 0x78
2573
2574# CHECK: ldr      w3, [sp, x5]
2575# CHECK: ldr      s9, [x27, x6]
2576# CHECK: ldr      w10, [x30, x7, lsl #2]
2577# CHECK: ldr      w11, [x29, x3, sxtx]
2578# CHECK: str      s12, [x28, xzr, sxtx]
2579# CHECK: str      w13, [x27, x5, sxtx #2]
2580# CHECK: str      w14, [x26, w6, uxtw]
2581# CHECK: ldr      w15, [x25, w7, uxtw]
2582# CHECK: ldr      w16, [x24, w8, uxtw #2]
2583# CHECK: ldrsw    x17, [x23, w9, sxtw]
2584# CHECK: ldr      w18, [x22, w10, sxtw]
2585# CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
25860xe3 0x6b 0x65 0xb8
25870x69 0x6b 0x66 0xbc
25880xca 0x7b 0x67 0xb8
25890xab 0xeb 0x63 0xb8
25900x8c 0xeb 0x3f 0xbc
25910x6d 0xfb 0x25 0xb8
25920x4e 0x4b 0x26 0xb8
25930x2f 0x4b 0x67 0xb8
25940x10 0x5b 0x68 0xb8
25950xf1 0xca 0xa9 0xb8
25960xd2 0xca 0x6a 0xb8
25970xb3 0xda 0xbf 0xb8
2598
2599# CHECK: ldr      x3, [sp, x5]
2600# CHECK: str      x9, [x27, x6]
2601# CHECK: ldr      d10, [x30, x7, lsl #3]
2602# CHECK: str      x11, [x29, x3, sxtx]
2603# CHECK: ldr      x12, [x28, xzr, sxtx]
2604# CHECK: ldr      x13, [x27, x5, sxtx #3]
2605# CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2606# CHECK: ldr      x15, [x25, w7, uxtw]
2607# CHECK: ldr      x16, [x24, w8, uxtw #3]
2608# CHECK: ldr      x17, [x23, w9, sxtw]
2609# CHECK: ldr      x18, [x22, w10, sxtw]
2610# CHECK: str      d19, [x21, wzr, sxtw #3]
26110xe3 0x6b 0x65 0xf8
26120x69 0x6b 0x26 0xf8
26130xca 0x7b 0x67 0xfc
26140xab 0xeb 0x23 0xf8
26150x8c 0xeb 0x7f 0xf8
26160x6d 0xfb 0x65 0xf8
26170x40 0x4b 0xa6 0xf8
26180x2f 0x4b 0x67 0xf8
26190x10 0x5b 0x68 0xf8
26200xf1 0xca 0x69 0xf8
26210xd2 0xca 0x6a 0xf8
26220xb3 0xda 0x3f 0xfc
2623
2624# CHECK: ldr      q3, [sp, x5]
2625# CHECK: ldr      q9, [x27, x6]
2626# CHECK: ldr      q10, [x30, x7, lsl #4]
2627# CHECK: str      q11, [x29, x3, sxtx]
2628# CHECK: str      q12, [x28, xzr, sxtx]
2629# CHECK: str      q13, [x27, x5, sxtx #4]
2630# CHECK: ldr      q14, [x26, w6, uxtw]
2631# CHECK: ldr      q15, [x25, w7, uxtw]
2632# CHECK: ldr      q16, [x24, w8, uxtw #4]
2633# CHECK: ldr      q17, [x23, w9, sxtw]
2634# CHECK: str      q18, [x22, w10, sxtw]
2635# CHECK: ldr      q19, [x21, wzr, sxtw #4]
26360xe3 0x6b 0xe5 0x3c
26370x69 0x6b 0xe6 0x3c
26380xca 0x7b 0xe7 0x3c
26390xab 0xeb 0xa3 0x3c
26400x8c 0xeb 0xbf 0x3c
26410x6d 0xfb 0xa5 0x3c
26420x4e 0x4b 0xe6 0x3c
26430x2f 0x4b 0xe7 0x3c
26440x10 0x5b 0xe8 0x3c
26450xf1 0xca 0xe9 0x3c
26460xd2 0xca 0xaa 0x3c
26470xb3 0xda 0xff 0x3c
2648
2649#------------------------------------------------------------------------------
2650# Load/store register pair (offset)
2651#------------------------------------------------------------------------------
2652
2653# CHECK: ldp      w3, w5, [sp]
2654# CHECK: stp      wzr, w9, [sp, #252]
2655# CHECK: ldp      w2, wzr, [sp, #-256]
2656# CHECK: ldp      w9, w10, [sp, #4]
26570xe3 0x17 0x40 0x29
26580xff 0xa7 0x1f 0x29
26590xe2 0x7f 0x60 0x29
26600xe9 0xab 0x40 0x29
2661
2662# CHECK: ldpsw    x9, x10, [sp, #4]
2663# CHECK: ldpsw    x9, x10, [x2, #-256]
2664# CHECK: ldpsw    x20, x30, [sp, #252]
26650xe9 0xab 0x40 0x69
26660x49 0x28 0x60 0x69
26670xf4 0xfb 0x5f 0x69
2668
2669# CHECK: ldp      x21, x29, [x2, #504]
2670# CHECK: ldp      x22, x23, [x3, #-512]
2671# CHECK: ldp      x24, x25, [x4, #8]
26720x55 0xf4 0x5f 0xa9
26730x76 0x5c 0x60 0xa9
26740x98 0xe4 0x40 0xa9
2675
2676# CHECK: ldp      s29, s28, [sp, #252]
2677# CHECK: stp      s27, s26, [sp, #-256]
2678# CHECK: ldp      s1, s2, [x3, #44]
26790xfd 0xf3 0x5f 0x2d
26800xfb 0x6b 0x20 0x2d
26810x61 0x88 0x45 0x2d
2682
2683# CHECK: stp      d3, d5, [x9, #504]
2684# CHECK: stp      d7, d11, [x10, #-512]
2685# CHECK: ldp      d2, d3, [x30, #-8]
26860x23 0x95 0x1f 0x6d
26870x47 0x2d 0x20 0x6d
26880xc2 0x8f 0x7f 0x6d
2689
2690# CHECK: stp      q3, q5, [sp]
2691# CHECK: stp      q17, q19, [sp, #1008]
2692# CHECK: ldp      q23, q29, [x1, #-1024]
26930xe3 0x17 0x0 0xad
26940xf1 0xcf 0x1f 0xad
26950x37 0x74 0x60 0xad
2696
2697#------------------------------------------------------------------------------
2698# Load/store register pair (post-indexed)
2699#------------------------------------------------------------------------------
2700
2701# CHECK: ldp      w3, w5, [sp], #0
2702# CHECK: stp      wzr, w9, [sp], #252
2703# CHECK: ldp      w2, wzr, [sp], #-256
2704# CHECK: ldp      w9, w10, [sp], #4
27050xe3 0x17 0xc0 0x28
27060xff 0xa7 0x9f 0x28
27070xe2 0x7f 0xe0 0x28
27080xe9 0xab 0xc0 0x28
2709
2710# CHECK: ldpsw    x9, x10, [sp], #4
2711# CHECK: ldpsw    x9, x10, [x2], #-256
2712# CHECK: ldpsw    x20, x30, [sp], #252
27130xe9 0xab 0xc0 0x68
27140x49 0x28 0xe0 0x68
27150xf4 0xfb 0xdf 0x68
2716
2717# CHECK: ldp      x21, x29, [x2], #504
2718# CHECK: ldp      x22, x23, [x3], #-512
2719# CHECK: ldp      x24, x25, [x4], #8
27200x55 0xf4 0xdf 0xa8
27210x76 0x5c 0xe0 0xa8
27220x98 0xe4 0xc0 0xa8
2723
2724# CHECK: ldp      s29, s28, [sp], #252
2725# CHECK: stp      s27, s26, [sp], #-256
2726# CHECK: ldp      s1, s2, [x3], #44
27270xfd 0xf3 0xdf 0x2c
27280xfb 0x6b 0xa0 0x2c
27290x61 0x88 0xc5 0x2c
2730
2731# CHECK: stp      d3, d5, [x9], #504
2732# CHECK: stp      d7, d11, [x10], #-512
2733# CHECK: ldp      d2, d3, [x30], #-8
27340x23 0x95 0x9f 0x6c
27350x47 0x2d 0xa0 0x6c
27360xc2 0x8f 0xff 0x6c
2737
2738# CHECK: stp      q3, q5, [sp], #0
2739# CHECK: stp      q17, q19, [sp], #1008
2740# CHECK: ldp      q23, q29, [x1], #-1024
27410xe3 0x17 0x80 0xac
27420xf1 0xcf 0x9f 0xac
27430x37 0x74 0xe0 0xac
2744
2745#------------------------------------------------------------------------------
2746# Load/store register pair (pre-indexed)
2747#------------------------------------------------------------------------------
2748
2749# CHECK: ldp      w3, w5, [sp, #0]!
2750# CHECK: stp      wzr, w9, [sp, #252]!
2751# CHECK: ldp      w2, wzr, [sp, #-256]!
2752# CHECK: ldp      w9, w10, [sp, #4]!
27530xe3 0x17 0xc0 0x29
27540xff 0xa7 0x9f 0x29
27550xe2 0x7f 0xe0 0x29
27560xe9 0xab 0xc0 0x29
2757
2758# CHECK: ldpsw    x9, x10, [sp, #4]!
2759# CHECK: ldpsw    x9, x10, [x2, #-256]!
2760# CHECK: ldpsw    x20, x30, [sp, #252]!
27610xe9 0xab 0xc0 0x69
27620x49 0x28 0xe0 0x69
27630xf4 0xfb 0xdf 0x69
2764
2765# CHECK: ldp      x21, x29, [x2, #504]!
2766# CHECK: ldp      x22, x23, [x3, #-512]!
2767# CHECK: ldp      x24, x25, [x4, #8]!
27680x55 0xf4 0xdf 0xa9
27690x76 0x5c 0xe0 0xa9
27700x98 0xe4 0xc0 0xa9
2771
2772# CHECK: ldp      s29, s28, [sp, #252]!
2773# CHECK: stp      s27, s26, [sp, #-256]!
2774# CHECK: ldp      s1, s2, [x3, #44]!
27750xfd 0xf3 0xdf 0x2d
27760xfb 0x6b 0xa0 0x2d
27770x61 0x88 0xc5 0x2d
2778
2779# CHECK: stp      d3, d5, [x9, #504]!
2780# CHECK: stp      d7, d11, [x10, #-512]!
2781# CHECK: ldp      d2, d3, [x30, #-8]!
27820x23 0x95 0x9f 0x6d
27830x47 0x2d 0xa0 0x6d
27840xc2 0x8f 0xff 0x6d
2785
2786# CHECK: stp      q3, q5, [sp, #0]!
2787# CHECK: stp      q17, q19, [sp, #1008]!
2788# CHECK: ldp      q23, q29, [x1, #-1024]!
27890xe3 0x17 0x80 0xad
27900xf1 0xcf 0x9f 0xad
27910x37 0x74 0xe0 0xad
2792
2793#------------------------------------------------------------------------------
2794# Load/store register pair (offset)
2795#------------------------------------------------------------------------------
2796
2797# CHECK: ldnp      w3, w5, [sp]
2798# CHECK: stnp      wzr, w9, [sp, #252]
2799# CHECK: ldnp      w2, wzr, [sp, #-256]
2800# CHECK: ldnp      w9, w10, [sp, #4]
28010xe3 0x17 0x40 0x28
28020xff 0xa7 0x1f 0x28
28030xe2 0x7f 0x60 0x28
28040xe9 0xab 0x40 0x28
2805
2806# CHECK: ldnp      x21, x29, [x2, #504]
2807# CHECK: ldnp      x22, x23, [x3, #-512]
2808# CHECK: ldnp      x24, x25, [x4, #8]
28090x55 0xf4 0x5f 0xa8
28100x76 0x5c 0x60 0xa8
28110x98 0xe4 0x40 0xa8
2812
2813# CHECK: ldnp      s29, s28, [sp, #252]
2814# CHECK: stnp      s27, s26, [sp, #-256]
2815# CHECK: ldnp      s1, s2, [x3, #44]
28160xfd 0xf3 0x5f 0x2c
28170xfb 0x6b 0x20 0x2c
28180x61 0x88 0x45 0x2c
2819
2820# CHECK: stnp      d3, d5, [x9, #504]
2821# CHECK: stnp      d7, d11, [x10, #-512]
2822# CHECK: ldnp      d2, d3, [x30, #-8]
28230x23 0x95 0x1f 0x6c
28240x47 0x2d 0x20 0x6c
28250xc2 0x8f 0x7f 0x6c
2826
2827# CHECK: stnp      q3, q5, [sp]
2828# CHECK: stnp      q17, q19, [sp, #1008]
2829# CHECK: ldnp      q23, q29, [x1, #-1024]
28300xe3 0x17 0x0 0xac
28310xf1 0xcf 0x1f 0xac
28320x37 0x74 0x60 0xac
2833
2834#------------------------------------------------------------------------------
2835# Logical (immediate)
2836#------------------------------------------------------------------------------
2837# CHECK: orr      w3, w9, #0xffff0000
2838# CHECK: orr      wsp, w10, #0xe00000ff
2839# CHECK: orr      w9, w10, #0x3ff
28400x23 0x3d 0x10 0x32
28410x5f 0x29 0x3 0x32
28420x49 0x25 0x0 0x32
2843
2844# CHECK: and      w14, w15, #0x80008000
2845# CHECK: and      w12, w13, #0xffc3ffc3
2846# CHECK: and      w11, wzr, #0x30003
28470xee 0x81 0x1 0x12
28480xac 0xad 0xa 0x12
28490xeb 0x87 0x0 0x12
2850
2851# CHECK: eor      w3, w6, #0xe0e0e0e0
2852# CHECK: eor      wsp, wzr, #0x3030303
2853# CHECK: eor      w16, w17, #0x81818181
28540xc3 0xc8 0x3 0x52
28550xff 0xc7 0x0 0x52
28560x30 0xc6 0x1 0x52
2857
2858# CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
2859# CHECK: ands     w19, w20, #0x33333333
2860# CHECK: ands     w21, w22, #0x99999999
28610x5f 0xe6 0x2 0x72
28620x93 0xe6 0x0 0x72
28630xd5 0xe6 0x1 0x72
2864
2865# CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2866# CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
28670x7f 0xf0 0x1 0x72
28680xff 0xf3 0x0 0x72
2869
2870# CHECK: eor      x3, x5, #0xffffffffc000000
2871# CHECK: and      x9, x10, #0x7fffffffffff
2872# CHECK: orr      x11, x12, #0x8000000000000fff
28730xa3 0x84 0x66 0xd2
28740x49 0xb9 0x40 0x92
28750x8b 0x31 0x41 0xb2
2876
2877# CHECK: orr      x3, x9, #0xffff0000ffff0000
2878# CHECK: orr      sp, x10, #0xe00000ffe00000ff
2879# CHECK: orr      x9, x10, #0x3ff000003ff
28800x23 0x3d 0x10 0xb2
28810x5f 0x29 0x3 0xb2
28820x49 0x25 0x0 0xb2
2883
2884# CHECK: and      x14, x15, #0x8000800080008000
2885# CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2886# CHECK: and      x11, xzr, #0x3000300030003
28870xee 0x81 0x1 0x92
28880xac 0xad 0xa 0x92
28890xeb 0x87 0x0 0x92
2890
2891# CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2892# CHECK: eor      sp, xzr, #0x303030303030303
2893# CHECK: eor      x16, x17, #0x8181818181818181
28940xc3 0xc8 0x3 0xd2
28950xff 0xc7 0x0 0xd2
28960x30 0xc6 0x1 0xd2
2897
2898# CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
2899# CHECK: ands     x19, x20, #0x3333333333333333
2900# CHECK: ands     x21, x22, #0x9999999999999999
29010x5f 0xe6 0x2 0xf2
29020x93 0xe6 0x0 0xf2
29030xd5 0xe6 0x1 0xf2
2904
2905# CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2906# CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
29070x7f 0xf0 0x1 0xf2
29080xff 0xf3 0x0 0xf2
2909
2910# CHECK: mov      w3, #983055
2911# CHECK: mov      x10, #-6148914691236517206
29120xe3 0x8f 0x0 0x32
29130xea 0xf3 0x1 0xb2
2914
2915# CHECK: orr      w3, wzr, #0xffff
2916# CHECK: orr      x9, xzr, #0xffff00000000
29170xe3 0x3f 0x0 0x32
29180xe9 0x3f 0x60 0xb2
2919
2920#------------------------------------------------------------------------------
2921# Logical (shifted register)
2922#------------------------------------------------------------------------------
2923
2924# CHECK: and      w12, w23, w21
2925# CHECK: and      w16, w15, w1, lsl #1
2926# CHECK: and      w9, w4, w10, lsl #31
2927# CHECK: and      w3, w30, w11
2928# CHECK: and      x3, x5, x7, lsl #63
29290xec 0x2 0x15 0xa
29300xf0 0x5 0x1 0xa
29310x89 0x7c 0xa 0xa
29320xc3 0x3 0xb 0xa
29330xa3 0xfc 0x7 0x8a
2934
2935# CHECK: and      x5, x14, x19, asr #4
2936# CHECK: and      w3, w17, w19, ror #31
2937# CHECK: and      w0, w2, wzr, lsr #17
2938# CHECK: and      w3, w30, w11, asr
29390xc5 0x11 0x93 0x8a
29400x23 0x7e 0xd3 0xa
29410x40 0x44 0x5f 0xa
29420xc3 0x3 0x8b 0xa
2943
2944# CHECK: and      xzr, x4, x26
2945# CHECK: and      w3, wzr, w20, ror
2946# CHECK: and      x7, x20, xzr, asr #63
29470x9f 0x0 0x1a 0x8a
29480xe3 0x3 0xd4 0xa
29490x87 0xfe 0x9f 0x8a
2950
2951# CHECK: bic      x13, x20, x14, lsl #47
2952# CHECK: bic      w2, w7, w9
2953# CHECK: orr      w2, w7, w0, asr #31
2954# CHECK: orr      x8, x9, x10, lsl #12
2955# CHECK: orn      x3, x5, x7, asr
2956# CHECK: orn      w2, w5, w29
29570x8d 0xbe 0x2e 0x8a
29580xe2 0x0 0x29 0xa
29590xe2 0x7c 0x80 0x2a
29600x28 0x31 0xa 0xaa
29610xa3 0x0 0xa7 0xaa
29620xa2 0x0 0x3d 0x2a
2963
2964# CHECK: ands     w7, wzr, w9, lsl #1
2965# CHECK: ands     x3, x5, x20, ror #63
2966# CHECK: bics     w3, w5, w7
2967# CHECK: bics     x3, xzr, x3, lsl #1
2968# CHECK: tst      w3, w7, lsl #31
2969# CHECK: tst      x2, x20, asr
29700xe7 0x7 0x9 0x6a
29710xa3 0xfc 0xd4 0xea
29720xa3 0x0 0x27 0x6a
29730xe3 0x7 0x23 0xea
29740x7f 0x7c 0x7 0x6a
29750x5f 0x0 0x94 0xea
2976
2977# CHECK: mov      x3, x6
2978# CHECK: mov      x3, xzr
2979# CHECK: mov      wzr, w2
2980# CHECK: mov      w3, w5
29810xe3 0x3 0x6 0xaa
29820xe3 0x3 0x1f 0xaa
29830xff 0x3 0x2 0x2a
29840xe3 0x3 0x5 0x2a
2985
2986#------------------------------------------------------------------------------
2987# Move wide (immediate)
2988#------------------------------------------------------------------------------
2989
2990# N.b. (FIXME) canonical aliases aren't produced here because of
2991# limitation in InstAlias. Lots of the "mov[nz]" instructions should
2992# be "mov".
2993
2994# CHECK: mov     w1, #{{65535|0xffff}}
2995# CHECK: movz     w2, #0, lsl #16
2996# CHECK: mov     w2, #-1235
29970xe1 0xff 0x9f 0x52
29980x2 0x0 0xa0 0x52
29990x42 0x9a 0x80 0x12
3000
3001# CHECK: mov     x2, #5299989643264
3002# CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
30030x42 0x9a 0xc0 0xd2
30040x3f 0x1c 0xe2 0xf2
3005
3006# CHECK: mov      x2, #0
3007# CHECK: movk     w3, #0
3008# CHECK: movz     x4, #0, lsl #16
3009# CHECK: movk     w5, #0, lsl #16
3010# CHECK: movz     x6, #0, lsl #32
3011# CHECK: movk     x7, #0, lsl #32
3012# CHECK: movz     x8, #0, lsl #48
3013# CHECK: movk     x9, #0, lsl #48
30140x2 0x0 0x80 0xd2
30150x3 0x0 0x80 0x72
30160x4 0x0 0xa0 0xd2
30170x5 0x0 0xa0 0x72
30180x6 0x0 0xc0 0xd2
30190x7 0x0 0xc0 0xf2
30200x8 0x0 0xe0 0xd2
30210x9 0x0 0xe0 0xf2
3022
3023#------------------------------------------------------------------------------
3024# PC-relative addressing
3025#------------------------------------------------------------------------------
3026
3027# It's slightly dodgy using immediates here, but harmless enough when
3028# it's all that's available.
3029
3030# CHECK: adr      x2, #1600
3031# CHECK: adrp     x21, #6553600
3032# CHECK: adr      x0, #262144
30330x02 0x32 0x00 0x10
30340x15 0x32 0x00 0x90
30350x00 0x00 0x20 0x10
3036
3037#------------------------------------------------------------------------------
3038# System
3039#------------------------------------------------------------------------------
3040
3041# CHECK: nop
3042# CHECK: hint     #{{127|0x7f}}
3043# CHECK: nop
3044# CHECK: yield
3045# CHECK: wfe
3046# CHECK: wfi
3047# CHECK: sev
3048# CHECK: sevl
30490x1f 0x20 0x3 0xd5
30500xff 0x2f 0x3 0xd5
30510x1f 0x20 0x3 0xd5
30520x3f 0x20 0x3 0xd5
30530x5f 0x20 0x3 0xd5
30540x7f 0x20 0x3 0xd5
30550x9f 0x20 0x3 0xd5
30560xbf 0x20 0x3 0xd5
3057
3058# CHECK: clrex
3059# CHECK: clrex    #0
3060# CHECK: clrex    #7
3061# CHECK: clrex
30620x5f 0x3f 0x3 0xd5
30630x5f 0x30 0x3 0xd5
30640x5f 0x37 0x3 0xd5
30650x5f 0x3f 0x3 0xd5
3066
3067# CHECK: dsb      #0
3068# CHECK: dsb      #12
3069# CHECK: dsb      sy
3070# CHECK: dsb      oshld
3071# CHECK: dsb      oshst
3072# CHECK: dsb      osh
3073# CHECK: dsb      nshld
3074# CHECK: dsb      nshst
3075# CHECK: dsb      nsh
3076# CHECK: dsb      ishld
3077# CHECK: dsb      ishst
3078# CHECK: dsb      ish
3079# CHECK: dsb      ld
3080# CHECK: dsb      st
3081# CHECK: dsb      sy
30820x9f 0x30 0x3 0xd5
30830x9f 0x3c 0x3 0xd5
30840x9f 0x3f 0x3 0xd5
30850x9f 0x31 0x3 0xd5
30860x9f 0x32 0x3 0xd5
30870x9f 0x33 0x3 0xd5
30880x9f 0x35 0x3 0xd5
30890x9f 0x36 0x3 0xd5
30900x9f 0x37 0x3 0xd5
30910x9f 0x39 0x3 0xd5
30920x9f 0x3a 0x3 0xd5
30930x9f 0x3b 0x3 0xd5
30940x9f 0x3d 0x3 0xd5
30950x9f 0x3e 0x3 0xd5
30960x9f 0x3f 0x3 0xd5
3097
3098# CHECK: dmb      #0
3099# CHECK: dmb      #12
3100# CHECK: dmb      sy
3101# CHECK: dmb      oshld
3102# CHECK: dmb      oshst
3103# CHECK: dmb      osh
3104# CHECK: dmb      nshld
3105# CHECK: dmb      nshst
3106# CHECK: dmb      nsh
3107# CHECK: dmb      ishld
3108# CHECK: dmb      ishst
3109# CHECK: dmb      ish
3110# CHECK: dmb      ld
3111# CHECK: dmb      st
3112# CHECK: dmb      sy
31130xbf 0x30 0x3 0xd5
31140xbf 0x3c 0x3 0xd5
31150xbf 0x3f 0x3 0xd5
31160xbf 0x31 0x3 0xd5
31170xbf 0x32 0x3 0xd5
31180xbf 0x33 0x3 0xd5
31190xbf 0x35 0x3 0xd5
31200xbf 0x36 0x3 0xd5
31210xbf 0x37 0x3 0xd5
31220xbf 0x39 0x3 0xd5
31230xbf 0x3a 0x3 0xd5
31240xbf 0x3b 0x3 0xd5
31250xbf 0x3d 0x3 0xd5
31260xbf 0x3e 0x3 0xd5
31270xbf 0x3f 0x3 0xd5
3128
3129# CHECK: isb
3130# CHECK: isb      #12
31310xdf 0x3f 0x3 0xd5
31320xdf 0x3c 0x3 0xd5
3133
3134# CHECK: msr      {{SPSel|SPSEL}}, #0
3135# CHECK: msr      {{DAIFSet|DAIFSET}}, #15
3136# CHECK: msr      {{DAIFClr|DAIFCLR}}, #12
31370xbf 0x40 0x0 0xd5
31380xdf 0x4f 0x3 0xd5
31390xff 0x4c 0x3 0xd5
3140
3141# CHECK: sys      #7, c5, c9, #7, x5
3142# CHECK: sys      #0, c15, c15, #2
3143# CHECK: sysl     x9, #7, c5, c9, #7
3144# CHECK: sysl     x1, #0, c15, c15, #2
31450xe5 0x59 0xf 0xd5
31460x5f 0xff 0x8 0xd5
31470xe9 0x59 0x2f 0xd5
31480x41 0xff 0x28 0xd5
3149
3150# CHECK: {{sys     #0, c7, c1, #0|ic ialluis}}
3151# CHECK: {{sys     #0, c7, c5, #0|ic iallu}}
3152# CHECK: {{sys     #3, c7, c5, #1|ic ivau}}, x9
31530x1f 0x71 0x8 0xd5
31540x1f 0x75 0x8 0xd5
31550x29 0x75 0xb 0xd5
3156
3157# CHECK: {{sys     #3, c7, c4, #1|dc zva}}, x12
3158# CHECK: {{sys     #0, c7, c6, #1|dc ivac}}
3159# CHECK: {{sys     #0, c7, c6, #2|dc isw}}, x2
3160# CHECK: {{sys     #3, c7, c10, #1|dc cvac}}, x9
3161# CHECK: {{sys     #0, c7, c10, #2|dc csw}}, x10
3162# CHECK: {{sys     #3, c7, c11, #1|dc cvau}}, x0
3163# CHECK: {{sys     #3, c7, c14, #1|dc civac}}, x3
3164# CHECK: {{sys     #0, c7, c14, #2|dc cisw}}, x30
31650x2c 0x74 0xb 0xd5
31660x3f 0x76 0x8 0xd5
31670x42 0x76 0x8 0xd5
31680x29 0x7a 0xb 0xd5
31690x4a 0x7a 0x8 0xd5
31700x20 0x7b 0xb 0xd5
31710x23 0x7e 0xb 0xd5
31720x5e 0x7e 0x8 0xd5
3173
3174
3175# CHECK: msr      {{teecr32_el1|TEECR32_EL1}}, x12
3176# CHECK: msr      {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3177# CHECK: msr      {{mdccint_el1|MDCCINT_EL1}}, x12
3178# CHECK: msr      {{mdscr_el1|MDSCR_EL1}}, x12
3179# CHECK: msr      {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3180# CHECK: msr      {{dbgdtr_el0|DBGDTR_EL0}}, x12
3181# CHECK: msr      {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3182# CHECK: msr      {{oseccr_el1|OSECCR_EL1}}, x12
3183# CHECK: msr      {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3184# CHECK: msr      {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3185# CHECK: msr      {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3186# CHECK: msr      {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3187# CHECK: msr      {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3188# CHECK: msr      {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3189# CHECK: msr      {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3190# CHECK: msr      {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3191# CHECK: msr      {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3192# CHECK: msr      {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3193# CHECK: msr      {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3194# CHECK: msr      {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3195# CHECK: msr      {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3196# CHECK: msr      {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3197# CHECK: msr      {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3198# CHECK: msr      {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3199# CHECK: msr      {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3200# CHECK: msr      {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3201# CHECK: msr      {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3202# CHECK: msr      {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3203# CHECK: msr      {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3204# CHECK: msr      {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3205# CHECK: msr      {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3206# CHECK: msr      {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3207# CHECK: msr      {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3208# CHECK: msr      {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3209# CHECK: msr      {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3210# CHECK: msr      {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3211# CHECK: msr      {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3212# CHECK: msr      {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3213# CHECK: msr      {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3214# CHECK: msr      {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3215# CHECK: msr      {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3216# CHECK: msr      {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3217# CHECK: msr      {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3218# CHECK: msr      {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3219# CHECK: msr      {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3220# CHECK: msr      {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3221# CHECK: msr      {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3222# CHECK: msr      {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3223# CHECK: msr      {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3224# CHECK: msr      {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3225# CHECK: msr      {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3226# CHECK: msr      {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3227# CHECK: msr      {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3228# CHECK: msr      {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3229# CHECK: msr      {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3230# CHECK: msr      {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3231# CHECK: msr      {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3232# CHECK: msr      {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3233# CHECK: msr      {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3234# CHECK: msr      {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3235# CHECK: msr      {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3236# CHECK: msr      {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3237# CHECK: msr      {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3238# CHECK: msr      {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3239# CHECK: msr      {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3240# CHECK: msr      {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3241# CHECK: msr      {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3242# CHECK: msr      {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3243# CHECK: msr      {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3244# CHECK: msr      {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3245# CHECK: msr      {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3246# CHECK: msr      {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3247# CHECK: msr      {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3248# CHECK: msr      {{teehbr32_el1|TEEHBR32_EL1}}, x12
3249# CHECK: msr      {{oslar_el1|OSLAR_EL1}}, x12
3250# CHECK: msr      {{osdlr_el1|OSDLR_EL1}}, x12
3251# CHECK: msr      {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3252# CHECK: msr      {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3253# CHECK: msr      {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3254# CHECK: msr      {{csselr_el1|CSSELR_EL1}}, x12
3255# CHECK: msr      {{vpidr_el2|VPIDR_EL2}}, x12
3256# CHECK: msr      {{vmpidr_el2|VMPIDR_EL2}}, x12
3257# CHECK: msr      {{sctlr_el1|SCTLR_EL1}}, x12
3258# CHECK: msr      {{sctlr_el2|SCTLR_EL2}}, x12
3259# CHECK: msr      {{sctlr_el3|SCTLR_EL3}}, x12
3260# CHECK: msr      {{actlr_el1|ACTLR_EL1}}, x12
3261# CHECK: msr      {{actlr_el2|ACTLR_EL2}}, x12
3262# CHECK: msr      {{actlr_el3|ACTLR_EL3}}, x12
3263# CHECK: msr      {{cpacr_el1|CPACR_EL1}}, x12
3264# CHECK: msr      {{hcr_el2|HCR_EL2}}, x12
3265# CHECK: msr      {{scr_el3|SCR_EL3}}, x12
3266# CHECK: msr      {{mdcr_el2|MDCR_EL2}}, x12
3267# CHECK: msr      {{sder32_el3|SDER32_EL3}}, x12
3268# CHECK: msr      {{cptr_el2|CPTR_EL2}}, x12
3269# CHECK: msr      {{cptr_el3|CPTR_EL3}}, x12
3270# CHECK: msr      {{hstr_el2|HSTR_EL2}}, x12
3271# CHECK: msr      {{hacr_el2|HACR_EL2}}, x12
3272# CHECK: msr      {{mdcr_el3|MDCR_EL3}}, x12
3273# CHECK: msr      {{ttbr0_el1|TTBR0_EL1}}, x12
3274# CHECK: msr      {{ttbr0_el2|TTBR0_EL2}}, x12
3275# CHECK: msr      {{ttbr0_el3|TTBR0_EL3}}, x12
3276# CHECK: msr      {{ttbr1_el1|TTBR1_EL1}}, x12
3277# CHECK: msr      {{tcr_el1|TCR_EL1}}, x12
3278# CHECK: msr      {{tcr_el2|TCR_EL2}}, x12
3279# CHECK: msr      {{tcr_el3|TCR_EL3}}, x12
3280# CHECK: msr      {{vttbr_el2|VTTBR_EL2}}, x12
3281# CHECK: msr      {{vtcr_el2|VTCR_EL2}}, x12
3282# CHECK: msr      {{dacr32_el2|DACR32_EL2}}, x12
3283# CHECK: msr      {{spsr_el1|SPSR_EL1}}, x12
3284# CHECK: msr      {{spsr_el2|SPSR_EL2}}, x12
3285# CHECK: msr      {{spsr_el3|SPSR_EL3}}, x12
3286# CHECK: msr      {{elr_el1|ELR_EL1}}, x12
3287# CHECK: msr      {{elr_el2|ELR_EL2}}, x12
3288# CHECK: msr      {{elr_el3|ELR_EL3}}, x12
3289# CHECK: msr      {{sp_el0|SP_EL0}}, x12
3290# CHECK: msr      {{sp_el1|SP_EL1}}, x12
3291# CHECK: msr      {{sp_el2|SP_EL2}}, x12
3292# CHECK: msr      {{SPSel|SPSEL}}, x12
3293# CHECK: msr      {{nzcv|NZCV}}, x12
3294# CHECK: msr      {{daif|DAIF}}, x12
3295# CHECK: msr      {{CurrentEL|CURRENTEL}}, x12
3296# CHECK: msr      {{SPSR_irq|SPSR_IRQ}}, x12
3297# CHECK: msr      {{SPSR_abt|SPSR_ABT}}, x12
3298# CHECK: msr      {{SPSR_und|SPSR_UND}}, x12
3299# CHECK: msr      {{SPSR_fiq|SPSR_FIQ}}, x12
3300# CHECK: msr      {{fpcr|FPCR}}, x12
3301# CHECK: msr      {{fpsr|FPSR}}, x12
3302# CHECK: msr      {{dspsr_el0|DSPSR_EL0}}, x12
3303# CHECK: msr      {{dlr_el0|DLR_EL0}}, x12
3304# CHECK: msr      {{ifsr32_el2|IFSR32_EL2}}, x12
3305# CHECK: msr      {{afsr0_el1|AFSR0_EL1}}, x12
3306# CHECK: msr      {{afsr0_el2|AFSR0_EL2}}, x12
3307# CHECK: msr      {{afsr0_el3|AFSR0_EL3}}, x12
3308# CHECK: msr      {{afsr1_el1|AFSR1_EL1}}, x12
3309# CHECK: msr      {{afsr1_el2|AFSR1_EL2}}, x12
3310# CHECK: msr      {{afsr1_el3|AFSR1_EL3}}, x12
3311# CHECK: msr      {{esr_el1|ESR_EL1}}, x12
3312# CHECK: msr      {{esr_el2|ESR_EL2}}, x12
3313# CHECK: msr      {{esr_el3|ESR_EL3}}, x12
3314# CHECK: msr      {{fpexc32_el2|FPEXC32_EL2}}, x12
3315# CHECK: msr      {{far_el1|FAR_EL1}}, x12
3316# CHECK: msr      {{far_el2|FAR_EL2}}, x12
3317# CHECK: msr      {{far_el3|FAR_EL3}}, x12
3318# CHECK: msr      {{hpfar_el2|HPFAR_EL2}}, x12
3319# CHECK: msr      {{par_el1|PAR_EL1}}, x12
3320# CHECK: msr      {{pmcr_el0|PMCR_EL0}}, x12
3321# CHECK: msr      {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3322# CHECK: msr      {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3323# CHECK: msr      {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3324# CHECK: msr      {{pmselr_el0|PMSELR_EL0}}, x12
3325# CHECK: msr      {{pmccntr_el0|PMCCNTR_EL0}}, x12
3326# CHECK: msr      {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3327# CHECK: msr      {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3328# CHECK: msr      {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3329# CHECK: msr      {{pmintenset_el1|PMINTENSET_EL1}}, x12
3330# CHECK: msr      {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3331# CHECK: msr      {{pmovsset_el0|PMOVSSET_EL0}}, x12
3332# CHECK: msr      {{mair_el1|MAIR_EL1}}, x12
3333# CHECK: msr      {{mair_el2|MAIR_EL2}}, x12
3334# CHECK: msr      {{mair_el3|MAIR_EL3}}, x12
3335# CHECK: msr      {{amair_el1|AMAIR_EL1}}, x12
3336# CHECK: msr      {{amair_el2|AMAIR_EL2}}, x12
3337# CHECK: msr      {{amair_el3|AMAIR_EL3}}, x12
3338# CHECK: msr      {{vbar_el1|VBAR_EL1}}, x12
3339# CHECK: msr      {{vbar_el2|VBAR_EL2}}, x12
3340# CHECK: msr      {{vbar_el3|VBAR_EL3}}, x12
3341# CHECK: msr      {{rmr_el1|RMR_EL1}}, x12
3342# CHECK: msr      {{rmr_el2|RMR_EL2}}, x12
3343# CHECK: msr      {{rmr_el3|RMR_EL3}}, x12
3344# CHECK: msr      {{tpidr_el0|TPIDR_EL0}}, x12
3345# CHECK: msr      {{tpidr_el2|TPIDR_EL2}}, x12
3346# CHECK: msr      {{tpidr_el3|TPIDR_EL3}}, x12
3347# CHECK: msr      {{tpidrro_el0|TPIDRRO_EL0}}, x12
3348# CHECK: msr      {{tpidr_el1|TPIDR_EL1}}, x12
3349# CHECK: msr      {{cntfrq_el0|CNTFRQ_EL0}}, x12
3350# CHECK: msr      {{cntvoff_el2|CNTVOFF_EL2}}, x12
3351# CHECK: msr      {{cntkctl_el1|CNTKCTL_EL1}}, x12
3352# CHECK: msr      {{cnthctl_el2|CNTHCTL_EL2}}, x12
3353# CHECK: msr      {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3354# CHECK: msr      {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3355# CHECK: msr      {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3356# CHECK: msr      {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3357# CHECK: msr      {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3358# CHECK: msr      {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3359# CHECK: msr      {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3360# CHECK: msr      {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3361# CHECK: msr      {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3362# CHECK: msr      {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3363# CHECK: msr      {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3364# CHECK: msr      {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3365# CHECK: msr      {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3366# CHECK: msr      {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3367# CHECK: msr      {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3368# CHECK: msr      {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3369# CHECK: msr      {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3370# CHECK: msr      {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3371# CHECK: msr      {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3372# CHECK: msr      {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3373# CHECK: msr      {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3374# CHECK: msr      {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3375# CHECK: msr      {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3376# CHECK: msr      {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3377# CHECK: msr      {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3378# CHECK: msr      {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3379# CHECK: msr      {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3380# CHECK: msr      {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3381# CHECK: msr      {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3382# CHECK: msr      {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3383# CHECK: msr      {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3384# CHECK: msr      {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3385# CHECK: msr      {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3386# CHECK: msr      {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3387# CHECK: msr      {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3388# CHECK: msr      {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3389# CHECK: msr      {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3390# CHECK: msr      {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3391# CHECK: msr      {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3392# CHECK: msr      {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3393# CHECK: msr      {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3394# CHECK: msr      {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3395# CHECK: msr      {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3396# CHECK: msr      {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3397# CHECK: msr      {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3398# CHECK: msr      {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3399# CHECK: msr      {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3400# CHECK: msr      {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3401# CHECK: msr      {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3402# CHECK: msr      {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3403# CHECK: msr      {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3404# CHECK: msr      {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3405# CHECK: msr      {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3406# CHECK: msr      {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3407# CHECK: msr      {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3408# CHECK: msr      {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3409# CHECK: msr      {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3410# CHECK: msr      {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3411# CHECK: msr      {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3412# CHECK: msr      {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3413# CHECK: msr      {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3414# CHECK: msr      {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3415# CHECK: msr      {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3416# CHECK: msr      {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3417# CHECK: msr      {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3418# CHECK: msr      {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3419# CHECK: msr      {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3420# CHECK: msr      {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3421# CHECK: msr      {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3422# CHECK: msr      {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3423# CHECK: msr      {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3424# CHECK: msr      {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3425# CHECK: msr      {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3426# CHECK: msr      {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3427# CHECK: msr      {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3428# CHECK: mrs      x9, {{teecr32_el1|TEECR32_EL1}}
3429# CHECK: mrs      x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3430# CHECK: mrs      x9, {{mdccsr_el0|MDCCSR_EL0}}
3431# CHECK: mrs      x9, {{mdccint_el1|MDCCINT_EL1}}
3432# CHECK: mrs      x9, {{mdscr_el1|MDSCR_EL1}}
3433# CHECK: mrs      x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3434# CHECK: mrs      x9, {{dbgdtr_el0|DBGDTR_EL0}}
3435# CHECK: mrs      x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3436# CHECK: mrs      x9, {{oseccr_el1|OSECCR_EL1}}
3437# CHECK: mrs      x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3438# CHECK: mrs      x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3439# CHECK: mrs      x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3440# CHECK: mrs      x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3441# CHECK: mrs      x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3442# CHECK: mrs      x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3443# CHECK: mrs      x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3444# CHECK: mrs      x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3445# CHECK: mrs      x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3446# CHECK: mrs      x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3447# CHECK: mrs      x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3448# CHECK: mrs      x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3449# CHECK: mrs      x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3450# CHECK: mrs      x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3451# CHECK: mrs      x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3452# CHECK: mrs      x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3453# CHECK: mrs      x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3454# CHECK: mrs      x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3455# CHECK: mrs      x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3456# CHECK: mrs      x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3457# CHECK: mrs      x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3458# CHECK: mrs      x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3459# CHECK: mrs      x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3460# CHECK: mrs      x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3461# CHECK: mrs      x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3462# CHECK: mrs      x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3463# CHECK: mrs      x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3464# CHECK: mrs      x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3465# CHECK: mrs      x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3466# CHECK: mrs      x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3467# CHECK: mrs      x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3468# CHECK: mrs      x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3469# CHECK: mrs      x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3470# CHECK: mrs      x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3471# CHECK: mrs      x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3472# CHECK: mrs      x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3473# CHECK: mrs      x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3474# CHECK: mrs      x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3475# CHECK: mrs      x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3476# CHECK: mrs      x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3477# CHECK: mrs      x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3478# CHECK: mrs      x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3479# CHECK: mrs      x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3480# CHECK: mrs      x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3481# CHECK: mrs      x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3482# CHECK: mrs      x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3483# CHECK: mrs      x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3484# CHECK: mrs      x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3485# CHECK: mrs      x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3486# CHECK: mrs      x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3487# CHECK: mrs      x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3488# CHECK: mrs      x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3489# CHECK: mrs      x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3490# CHECK: mrs      x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3491# CHECK: mrs      x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3492# CHECK: mrs      x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3493# CHECK: mrs      x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3494# CHECK: mrs      x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3495# CHECK: mrs      x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3496# CHECK: mrs      x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3497# CHECK: mrs      x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3498# CHECK: mrs      x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3499# CHECK: mrs      x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3500# CHECK: mrs      x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3501# CHECK: mrs      x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3502# CHECK: mrs      x9, {{mdrar_el1|MDRAR_EL1}}
3503# CHECK: mrs      x9, {{teehbr32_el1|TEEHBR32_EL1}}
3504# CHECK: mrs      x9, {{oslsr_el1|OSLSR_EL1}}
3505# CHECK: mrs      x9, {{osdlr_el1|OSDLR_EL1}}
3506# CHECK: mrs      x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3507# CHECK: mrs      x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3508# CHECK: mrs      x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3509# CHECK: mrs      x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3510# CHECK: mrs      x9, {{midr_el1|MIDR_EL1}}
3511# CHECK: mrs      x9, {{ccsidr_el1|CCSIDR_EL1}}
3512# CHECK: mrs      x9, {{csselr_el1|CSSELR_EL1}}
3513# CHECK: mrs      x9, {{vpidr_el2|VPIDR_EL2}}
3514# CHECK: mrs      x9, {{clidr_el1|CLIDR_EL1}}
3515# CHECK: mrs      x9, {{ctr_el0|CTR_EL0}}
3516# CHECK: mrs      x9, {{mpidr_el1|MPIDR_EL1}}
3517# CHECK: mrs      x9, {{vmpidr_el2|VMPIDR_EL2}}
3518# CHECK: mrs      x9, {{revidr_el1|REVIDR_EL1}}
3519# CHECK: mrs      x9, {{aidr_el1|AIDR_EL1}}
3520# CHECK: mrs      x9, {{dczid_el0|DCZID_EL0}}
3521# CHECK: mrs      x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3522# CHECK: mrs      x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3523# CHECK: mrs      x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3524# CHECK: mrs      x9, {{id_afr0_el1|ID_AFR0_EL1}}
3525# CHECK: mrs      x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3526# CHECK: mrs      x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3527# CHECK: mrs      x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3528# CHECK: mrs      x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3529# CHECK: mrs      x9, {{id_mmfr4_el1|ID_MMFR4_EL1}}
3530# CHECK: mrs      x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3531# CHECK: mrs      x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3532# CHECK: mrs      x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3533# CHECK: mrs      x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3534# CHECK: mrs      x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3535# CHECK: mrs      x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3536# CHECK: mrs      x9, {{mvfr0_el1|MVFR0_EL1}}
3537# CHECK: mrs      x9, {{mvfr1_el1|MVFR1_EL1}}
3538# CHECK: mrs      x9, {{mvfr2_el1|MVFR2_EL1}}
3539# CHECK: mrs      x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3540# CHECK: mrs      x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3541# CHECK: mrs      x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3542# CHECK: mrs      x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3543# CHECK: mrs      x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3544# CHECK: mrs      x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3545# CHECK: mrs      x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3546# CHECK: mrs      x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3547# CHECK: mrs      x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3548# CHECK: mrs      x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3549# CHECK: mrs      x9, {{sctlr_el1|SCTLR_EL1}}
3550# CHECK: mrs      x9, {{sctlr_el2|SCTLR_EL2}}
3551# CHECK: mrs      x9, {{sctlr_el3|SCTLR_EL3}}
3552# CHECK: mrs      x9, {{actlr_el1|ACTLR_EL1}}
3553# CHECK: mrs      x9, {{actlr_el2|ACTLR_EL2}}
3554# CHECK: mrs      x9, {{actlr_el3|ACTLR_EL3}}
3555# CHECK: mrs      x9, {{cpacr_el1|CPACR_EL1}}
3556# CHECK: mrs      x9, {{hcr_el2|HCR_EL2}}
3557# CHECK: mrs      x9, {{scr_el3|SCR_EL3}}
3558# CHECK: mrs      x9, {{mdcr_el2|MDCR_EL2}}
3559# CHECK: mrs      x9, {{sder32_el3|SDER32_EL3}}
3560# CHECK: mrs      x9, {{cptr_el2|CPTR_EL2}}
3561# CHECK: mrs      x9, {{cptr_el3|CPTR_EL3}}
3562# CHECK: mrs      x9, {{hstr_el2|HSTR_EL2}}
3563# CHECK: mrs      x9, {{hacr_el2|HACR_EL2}}
3564# CHECK: mrs      x9, {{mdcr_el3|MDCR_EL3}}
3565# CHECK: mrs      x9, {{ttbr0_el1|TTBR0_EL1}}
3566# CHECK: mrs      x9, {{ttbr0_el2|TTBR0_EL2}}
3567# CHECK: mrs      x9, {{ttbr0_el3|TTBR0_EL3}}
3568# CHECK: mrs      x9, {{ttbr1_el1|TTBR1_EL1}}
3569# CHECK: mrs      x9, {{tcr_el1|TCR_EL1}}
3570# CHECK: mrs      x9, {{tcr_el2|TCR_EL2}}
3571# CHECK: mrs      x9, {{tcr_el3|TCR_EL3}}
3572# CHECK: mrs      x9, {{vttbr_el2|VTTBR_EL2}}
3573# CHECK: mrs      x9, {{vtcr_el2|VTCR_EL2}}
3574# CHECK: mrs      x9, {{dacr32_el2|DACR32_EL2}}
3575# CHECK: mrs      x9, {{spsr_el1|SPSR_EL1}}
3576# CHECK: mrs      x9, {{spsr_el2|SPSR_EL2}}
3577# CHECK: mrs      x9, {{spsr_el3|SPSR_EL3}}
3578# CHECK: mrs      x9, {{elr_el1|ELR_EL1}}
3579# CHECK: mrs      x9, {{elr_el2|ELR_EL2}}
3580# CHECK: mrs      x9, {{elr_el3|ELR_EL3}}
3581# CHECK: mrs      x9, {{sp_el0|SP_EL0}}
3582# CHECK: mrs      x9, {{sp_el1|SP_EL1}}
3583# CHECK: mrs      x9, {{sp_el2|SP_EL2}}
3584# CHECK: mrs      x9, {{SPSel|SPSEL}}
3585# CHECK: mrs      x9, {{nzcv|NZCV}}
3586# CHECK: mrs      x9, {{daif|DAIF}}
3587# CHECK: mrs      x9, {{CurrentEL|CURRENTEL}}
3588# CHECK: mrs      x9, {{SPSR_irq|SPSR_IRQ}}
3589# CHECK: mrs      x9, {{SPSR_abt|SPSR_ABT}}
3590# CHECK: mrs      x9, {{SPSR_und|SPSR_UND}}
3591# CHECK: mrs      x9, {{SPSR_fiq|SPSR_FIQ}}
3592# CHECK: mrs      x9, {{fpcr|FPCR}}
3593# CHECK: mrs      x9, {{fpsr|FPSR}}
3594# CHECK: mrs      x9, {{dspsr_el0|DSPSR_EL0}}
3595# CHECK: mrs      x9, {{dlr_el0|DLR_EL0}}
3596# CHECK: mrs      x9, {{ifsr32_el2|IFSR32_EL2}}
3597# CHECK: mrs      x9, {{afsr0_el1|AFSR0_EL1}}
3598# CHECK: mrs      x9, {{afsr0_el2|AFSR0_EL2}}
3599# CHECK: mrs      x9, {{afsr0_el3|AFSR0_EL3}}
3600# CHECK: mrs      x9, {{afsr1_el1|AFSR1_EL1}}
3601# CHECK: mrs      x9, {{afsr1_el2|AFSR1_EL2}}
3602# CHECK: mrs      x9, {{afsr1_el3|AFSR1_EL3}}
3603# CHECK: mrs      x9, {{esr_el1|ESR_EL1}}
3604# CHECK: mrs      x9, {{esr_el2|ESR_EL2}}
3605# CHECK: mrs      x9, {{esr_el3|ESR_EL3}}
3606# CHECK: mrs      x9, {{fpexc32_el2|FPEXC32_EL2}}
3607# CHECK: mrs      x9, {{far_el1|FAR_EL1}}
3608# CHECK: mrs      x9, {{far_el2|FAR_EL2}}
3609# CHECK: mrs      x9, {{far_el3|FAR_EL3}}
3610# CHECK: mrs      x9, {{hpfar_el2|HPFAR_EL2}}
3611# CHECK: mrs      x9, {{par_el1|PAR_EL1}}
3612# CHECK: mrs      x9, {{pmcr_el0|PMCR_EL0}}
3613# CHECK: mrs      x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3614# CHECK: mrs      x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3615# CHECK: mrs      x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3616# CHECK: mrs      x9, {{pmselr_el0|PMSELR_EL0}}
3617# CHECK: mrs      x9, {{pmceid0_el0|PMCEID0_EL0}}
3618# CHECK: mrs      x9, {{pmceid1_el0|PMCEID1_EL0}}
3619# CHECK: mrs      x9, {{pmccntr_el0|PMCCNTR_EL0}}
3620# CHECK: mrs      x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3621# CHECK: mrs      x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3622# CHECK: mrs      x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3623# CHECK: mrs      x9, {{pmintenset_el1|PMINTENSET_EL1}}
3624# CHECK: mrs      x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3625# CHECK: mrs      x9, {{pmovsset_el0|PMOVSSET_EL0}}
3626# CHECK: mrs      x9, {{mair_el1|MAIR_EL1}}
3627# CHECK: mrs      x9, {{mair_el2|MAIR_EL2}}
3628# CHECK: mrs      x9, {{mair_el3|MAIR_EL3}}
3629# CHECK: mrs      x9, {{amair_el1|AMAIR_EL1}}
3630# CHECK: mrs      x9, {{amair_el2|AMAIR_EL2}}
3631# CHECK: mrs      x9, {{amair_el3|AMAIR_EL3}}
3632# CHECK: mrs      x9, {{vbar_el1|VBAR_EL1}}
3633# CHECK: mrs      x9, {{vbar_el2|VBAR_EL2}}
3634# CHECK: mrs      x9, {{vbar_el3|VBAR_EL3}}
3635# CHECK: mrs      x9, {{rvbar_el1|RVBAR_EL1}}
3636# CHECK: mrs      x9, {{rvbar_el2|RVBAR_EL2}}
3637# CHECK: mrs      x9, {{rvbar_el3|RVBAR_EL3}}
3638# CHECK: mrs      x9, {{rmr_el1|RMR_EL1}}
3639# CHECK: mrs      x9, {{rmr_el2|RMR_EL2}}
3640# CHECK: mrs      x9, {{rmr_el3|RMR_EL3}}
3641# CHECK: mrs      x9, {{isr_el1|ISR_EL1}}
3642# CHECK: mrs      x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3643# CHECK: mrs      x9, {{tpidr_el0|TPIDR_EL0}}
3644# CHECK: mrs      x9, {{tpidr_el2|TPIDR_EL2}}
3645# CHECK: mrs      x9, {{tpidr_el3|TPIDR_EL3}}
3646# CHECK: mrs      x9, {{tpidrro_el0|TPIDRRO_EL0}}
3647# CHECK: mrs      x9, {{tpidr_el1|TPIDR_EL1}}
3648# CHECK: mrs      x9, {{cntfrq_el0|CNTFRQ_EL0}}
3649# CHECK: mrs      x9, {{cntpct_el0|CNTPCT_EL0}}
3650# CHECK: mrs      x9, {{cntvct_el0|CNTVCT_EL0}}
3651# CHECK: mrs      x9, {{cntvoff_el2|CNTVOFF_EL2}}
3652# CHECK: mrs      x9, {{cntkctl_el1|CNTKCTL_EL1}}
3653# CHECK: mrs      x9, {{cnthctl_el2|CNTHCTL_EL2}}
3654# CHECK: mrs      x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3655# CHECK: mrs      x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3656# CHECK: mrs      x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3657# CHECK: mrs      x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3658# CHECK: mrs      x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3659# CHECK: mrs      x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3660# CHECK: mrs      x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3661# CHECK: mrs      x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3662# CHECK: mrs      x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3663# CHECK: mrs      x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3664# CHECK: mrs      x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3665# CHECK: mrs      x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3666# CHECK: mrs      x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3667# CHECK: mrs      x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3668# CHECK: mrs      x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3669# CHECK: mrs      x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3670# CHECK: mrs      x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3671# CHECK: mrs      x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3672# CHECK: mrs      x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3673# CHECK: mrs      x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3674# CHECK: mrs      x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3675# CHECK: mrs      x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3676# CHECK: mrs      x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3677# CHECK: mrs      x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3678# CHECK: mrs      x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3679# CHECK: mrs      x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3680# CHECK: mrs      x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3681# CHECK: mrs      x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3682# CHECK: mrs      x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3683# CHECK: mrs      x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3684# CHECK: mrs      x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3685# CHECK: mrs      x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3686# CHECK: mrs      x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3687# CHECK: mrs      x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3688# CHECK: mrs      x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3689# CHECK: mrs      x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3690# CHECK: mrs      x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3691# CHECK: mrs      x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3692# CHECK: mrs      x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3693# CHECK: mrs      x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3694# CHECK: mrs      x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3695# CHECK: mrs      x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3696# CHECK: mrs      x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3697# CHECK: mrs      x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3698# CHECK: mrs      x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3699# CHECK: mrs      x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3700# CHECK: mrs      x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3701# CHECK: mrs      x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3702# CHECK: mrs      x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3703# CHECK: mrs      x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3704# CHECK: mrs      x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3705# CHECK: mrs      x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3706# CHECK: mrs      x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3707# CHECK: mrs      x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3708# CHECK: mrs      x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3709# CHECK: mrs      x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3710# CHECK: mrs      x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3711# CHECK: mrs      x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3712# CHECK: mrs      x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3713# CHECK: mrs      x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3714# CHECK: mrs      x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3715# CHECK: mrs      x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3716# CHECK: mrs      x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3717# CHECK: mrs      x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3718# CHECK: mrs      x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3719# CHECK: mrs      x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3720# CHECK: mrs      x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3721# CHECK: mrs      x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3722# CHECK: mrs      x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3723# CHECK: mrs      x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3724# CHECK: mrs      x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3725# CHECK: mrs      x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3726# CHECK: mrs      x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3727# CHECK: mrs      x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3728# CHECK: mrs      x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3729
37300xc 0x0 0x12 0xd5
37310x4c 0x0 0x10 0xd5
37320xc 0x2 0x10 0xd5
37330x4c 0x2 0x10 0xd5
37340x4c 0x3 0x10 0xd5
37350xc 0x4 0x13 0xd5
37360xc 0x5 0x13 0xd5
37370x4c 0x6 0x10 0xd5
37380xc 0x7 0x14 0xd5
37390x8c 0x0 0x10 0xd5
37400x8c 0x1 0x10 0xd5
37410x8c 0x2 0x10 0xd5
37420x8c 0x3 0x10 0xd5
37430x8c 0x4 0x10 0xd5
37440x8c 0x5 0x10 0xd5
37450x8c 0x6 0x10 0xd5
37460x8c 0x7 0x10 0xd5
37470x8c 0x8 0x10 0xd5
37480x8c 0x9 0x10 0xd5
37490x8c 0xa 0x10 0xd5
37500x8c 0xb 0x10 0xd5
37510x8c 0xc 0x10 0xd5
37520x8c 0xd 0x10 0xd5
37530x8c 0xe 0x10 0xd5
37540x8c 0xf 0x10 0xd5
37550xac 0x0 0x10 0xd5
37560xac 0x1 0x10 0xd5
37570xac 0x2 0x10 0xd5
37580xac 0x3 0x10 0xd5
37590xac 0x4 0x10 0xd5
37600xac 0x5 0x10 0xd5
37610xac 0x6 0x10 0xd5
37620xac 0x7 0x10 0xd5
37630xac 0x8 0x10 0xd5
37640xac 0x9 0x10 0xd5
37650xac 0xa 0x10 0xd5
37660xac 0xb 0x10 0xd5
37670xac 0xc 0x10 0xd5
37680xac 0xd 0x10 0xd5
37690xac 0xe 0x10 0xd5
37700xac 0xf 0x10 0xd5
37710xcc 0x0 0x10 0xd5
37720xcc 0x1 0x10 0xd5
37730xcc 0x2 0x10 0xd5
37740xcc 0x3 0x10 0xd5
37750xcc 0x4 0x10 0xd5
37760xcc 0x5 0x10 0xd5
37770xcc 0x6 0x10 0xd5
37780xcc 0x7 0x10 0xd5
37790xcc 0x8 0x10 0xd5
37800xcc 0x9 0x10 0xd5
37810xcc 0xa 0x10 0xd5
37820xcc 0xb 0x10 0xd5
37830xcc 0xc 0x10 0xd5
37840xcc 0xd 0x10 0xd5
37850xcc 0xe 0x10 0xd5
37860xcc 0xf 0x10 0xd5
37870xec 0x0 0x10 0xd5
37880xec 0x1 0x10 0xd5
37890xec 0x2 0x10 0xd5
37900xec 0x3 0x10 0xd5
37910xec 0x4 0x10 0xd5
37920xec 0x5 0x10 0xd5
37930xec 0x6 0x10 0xd5
37940xec 0x7 0x10 0xd5
37950xec 0x8 0x10 0xd5
37960xec 0x9 0x10 0xd5
37970xec 0xa 0x10 0xd5
37980xec 0xb 0x10 0xd5
37990xec 0xc 0x10 0xd5
38000xec 0xd 0x10 0xd5
38010xec 0xe 0x10 0xd5
38020xec 0xf 0x10 0xd5
38030xc 0x10 0x12 0xd5
38040x8c 0x10 0x10 0xd5
38050x8c 0x13 0x10 0xd5
38060x8c 0x14 0x10 0xd5
38070xcc 0x78 0x10 0xd5
38080xcc 0x79 0x10 0xd5
38090xc 0x0 0x1a 0xd5
38100xc 0x0 0x1c 0xd5
38110xac 0x0 0x1c 0xd5
38120xc 0x10 0x18 0xd5
38130xc 0x10 0x1c 0xd5
38140xc 0x10 0x1e 0xd5
38150x2c 0x10 0x18 0xd5
38160x2c 0x10 0x1c 0xd5
38170x2c 0x10 0x1e 0xd5
38180x4c 0x10 0x18 0xd5
38190xc 0x11 0x1c 0xd5
38200xc 0x11 0x1e 0xd5
38210x2c 0x11 0x1c 0xd5
38220x2c 0x11 0x1e 0xd5
38230x4c 0x11 0x1c 0xd5
38240x4c 0x11 0x1e 0xd5
38250x6c 0x11 0x1c 0xd5
38260xec 0x11 0x1c 0xd5
38270x2c 0x13 0x1e 0xd5
38280xc 0x20 0x18 0xd5
38290xc 0x20 0x1c 0xd5
38300xc 0x20 0x1e 0xd5
38310x2c 0x20 0x18 0xd5
38320x4c 0x20 0x18 0xd5
38330x4c 0x20 0x1c 0xd5
38340x4c 0x20 0x1e 0xd5
38350xc 0x21 0x1c 0xd5
38360x4c 0x21 0x1c 0xd5
38370xc 0x30 0x1c 0xd5
38380xc 0x40 0x18 0xd5
38390xc 0x40 0x1c 0xd5
38400xc 0x40 0x1e 0xd5
38410x2c 0x40 0x18 0xd5
38420x2c 0x40 0x1c 0xd5
38430x2c 0x40 0x1e 0xd5
38440xc 0x41 0x18 0xd5
38450xc 0x41 0x1c 0xd5
38460xc 0x41 0x1e 0xd5
38470xc 0x42 0x18 0xd5
38480xc 0x42 0x1b 0xd5
38490x2c 0x42 0x1b 0xd5
38500x4c 0x42 0x18 0xd5
38510xc 0x43 0x1c 0xd5
38520x2c 0x43 0x1c 0xd5
38530x4c 0x43 0x1c 0xd5
38540x6c 0x43 0x1c 0xd5
38550xc 0x44 0x1b 0xd5
38560x2c 0x44 0x1b 0xd5
38570xc 0x45 0x1b 0xd5
38580x2c 0x45 0x1b 0xd5
38590x2c 0x50 0x1c 0xd5
38600xc 0x51 0x18 0xd5
38610xc 0x51 0x1c 0xd5
38620xc 0x51 0x1e 0xd5
38630x2c 0x51 0x18 0xd5
38640x2c 0x51 0x1c 0xd5
38650x2c 0x51 0x1e 0xd5
38660xc 0x52 0x18 0xd5
38670xc 0x52 0x1c 0xd5
38680xc 0x52 0x1e 0xd5
38690xc 0x53 0x1c 0xd5
38700xc 0x60 0x18 0xd5
38710xc 0x60 0x1c 0xd5
38720xc 0x60 0x1e 0xd5
38730x8c 0x60 0x1c 0xd5
38740xc 0x74 0x18 0xd5
38750xc 0x9c 0x1b 0xd5
38760x2c 0x9c 0x1b 0xd5
38770x4c 0x9c 0x1b 0xd5
38780x6c 0x9c 0x1b 0xd5
38790xac 0x9c 0x1b 0xd5
38800xc 0x9d 0x1b 0xd5
38810x2c 0x9d 0x1b 0xd5
38820x4c 0x9d 0x1b 0xd5
38830xc 0x9e 0x1b 0xd5
38840x2c 0x9e 0x18 0xd5
38850x4c 0x9e 0x18 0xd5
38860x6c 0x9e 0x1b 0xd5
38870xc 0xa2 0x18 0xd5
38880xc 0xa2 0x1c 0xd5
38890xc 0xa2 0x1e 0xd5
38900xc 0xa3 0x18 0xd5
38910xc 0xa3 0x1c 0xd5
38920xc 0xa3 0x1e 0xd5
38930xc 0xc0 0x18 0xd5
38940xc 0xc0 0x1c 0xd5
38950xc 0xc0 0x1e 0xd5
38960x4c 0xc0 0x18 0xd5
38970x4c 0xc0 0x1c 0xd5
38980x4c 0xc0 0x1e 0xd5
38990x4c 0xd0 0x1b 0xd5
39000x4c 0xd0 0x1c 0xd5
39010x4c 0xd0 0x1e 0xd5
39020x6c 0xd0 0x1b 0xd5
39030x8c 0xd0 0x18 0xd5
39040xc 0xe0 0x1b 0xd5
39050x6c 0xe0 0x1c 0xd5
39060xc 0xe1 0x18 0xd5
39070xc 0xe1 0x1c 0xd5
39080xc 0xe2 0x1b 0xd5
39090xc 0xe2 0x1c 0xd5
39100xc 0xe2 0x1f 0xd5
39110x2c 0xe2 0x1b 0xd5
39120x2c 0xe2 0x1c 0xd5
39130x2c 0xe2 0x1f 0xd5
39140x4c 0xe2 0x1b 0xd5
39150x4c 0xe2 0x1c 0xd5
39160x4c 0xe2 0x1f 0xd5
39170xc 0xe3 0x1b 0xd5
39180x2c 0xe3 0x1b 0xd5
39190x4c 0xe3 0x1b 0xd5
39200xc 0xe8 0x1b 0xd5
39210x2c 0xe8 0x1b 0xd5
39220x4c 0xe8 0x1b 0xd5
39230x6c 0xe8 0x1b 0xd5
39240x8c 0xe8 0x1b 0xd5
39250xac 0xe8 0x1b 0xd5
39260xcc 0xe8 0x1b 0xd5
39270xec 0xe8 0x1b 0xd5
39280xc 0xe9 0x1b 0xd5
39290x2c 0xe9 0x1b 0xd5
39300x4c 0xe9 0x1b 0xd5
39310x6c 0xe9 0x1b 0xd5
39320x8c 0xe9 0x1b 0xd5
39330xac 0xe9 0x1b 0xd5
39340xcc 0xe9 0x1b 0xd5
39350xec 0xe9 0x1b 0xd5
39360xc 0xea 0x1b 0xd5
39370x2c 0xea 0x1b 0xd5
39380x4c 0xea 0x1b 0xd5
39390x6c 0xea 0x1b 0xd5
39400x8c 0xea 0x1b 0xd5
39410xac 0xea 0x1b 0xd5
39420xcc 0xea 0x1b 0xd5
39430xec 0xea 0x1b 0xd5
39440xc 0xeb 0x1b 0xd5
39450x2c 0xeb 0x1b 0xd5
39460x4c 0xeb 0x1b 0xd5
39470x6c 0xeb 0x1b 0xd5
39480x8c 0xeb 0x1b 0xd5
39490xac 0xeb 0x1b 0xd5
39500xcc 0xeb 0x1b 0xd5
39510xec 0xef 0x1b 0xd5
39520xc 0xec 0x1b 0xd5
39530x2c 0xec 0x1b 0xd5
39540x4c 0xec 0x1b 0xd5
39550x6c 0xec 0x1b 0xd5
39560x8c 0xec 0x1b 0xd5
39570xac 0xec 0x1b 0xd5
39580xcc 0xec 0x1b 0xd5
39590xec 0xec 0x1b 0xd5
39600xc 0xed 0x1b 0xd5
39610x2c 0xed 0x1b 0xd5
39620x4c 0xed 0x1b 0xd5
39630x6c 0xed 0x1b 0xd5
39640x8c 0xed 0x1b 0xd5
39650xac 0xed 0x1b 0xd5
39660xcc 0xed 0x1b 0xd5
39670xec 0xed 0x1b 0xd5
39680xc 0xee 0x1b 0xd5
39690x2c 0xee 0x1b 0xd5
39700x4c 0xee 0x1b 0xd5
39710x6c 0xee 0x1b 0xd5
39720x8c 0xee 0x1b 0xd5
39730xac 0xee 0x1b 0xd5
39740xcc 0xee 0x1b 0xd5
39750xec 0xee 0x1b 0xd5
39760xc 0xef 0x1b 0xd5
39770x2c 0xef 0x1b 0xd5
39780x4c 0xef 0x1b 0xd5
39790x6c 0xef 0x1b 0xd5
39800x8c 0xef 0x1b 0xd5
39810xac 0xef 0x1b 0xd5
39820xcc 0xef 0x1b 0xd5
39830x9 0x0 0x32 0xd5
39840x49 0x0 0x30 0xd5
39850x9 0x1 0x33 0xd5
39860x9 0x2 0x30 0xd5
39870x49 0x2 0x30 0xd5
39880x49 0x3 0x30 0xd5
39890x9 0x4 0x33 0xd5
39900x9 0x5 0x33 0xd5
39910x49 0x6 0x30 0xd5
39920x9 0x7 0x34 0xd5
39930x89 0x0 0x30 0xd5
39940x89 0x1 0x30 0xd5
39950x89 0x2 0x30 0xd5
39960x89 0x3 0x30 0xd5
39970x89 0x4 0x30 0xd5
39980x89 0x5 0x30 0xd5
39990x89 0x6 0x30 0xd5
40000x89 0x7 0x30 0xd5
40010x89 0x8 0x30 0xd5
40020x89 0x9 0x30 0xd5
40030x89 0xa 0x30 0xd5
40040x89 0xb 0x30 0xd5
40050x89 0xc 0x30 0xd5
40060x89 0xd 0x30 0xd5
40070x89 0xe 0x30 0xd5
40080x89 0xf 0x30 0xd5
40090xa9 0x0 0x30 0xd5
40100xa9 0x1 0x30 0xd5
40110xa9 0x2 0x30 0xd5
40120xa9 0x3 0x30 0xd5
40130xa9 0x4 0x30 0xd5
40140xa9 0x5 0x30 0xd5
40150xa9 0x6 0x30 0xd5
40160xa9 0x7 0x30 0xd5
40170xa9 0x8 0x30 0xd5
40180xa9 0x9 0x30 0xd5
40190xa9 0xa 0x30 0xd5
40200xa9 0xb 0x30 0xd5
40210xa9 0xc 0x30 0xd5
40220xa9 0xd 0x30 0xd5
40230xa9 0xe 0x30 0xd5
40240xa9 0xf 0x30 0xd5
40250xc9 0x0 0x30 0xd5
40260xc9 0x1 0x30 0xd5
40270xc9 0x2 0x30 0xd5
40280xc9 0x3 0x30 0xd5
40290xc9 0x4 0x30 0xd5
40300xc9 0x5 0x30 0xd5
40310xc9 0x6 0x30 0xd5
40320xc9 0x7 0x30 0xd5
40330xc9 0x8 0x30 0xd5
40340xc9 0x9 0x30 0xd5
40350xc9 0xa 0x30 0xd5
40360xc9 0xb 0x30 0xd5
40370xc9 0xc 0x30 0xd5
40380xc9 0xd 0x30 0xd5
40390xc9 0xe 0x30 0xd5
40400xc9 0xf 0x30 0xd5
40410xe9 0x0 0x30 0xd5
40420xe9 0x1 0x30 0xd5
40430xe9 0x2 0x30 0xd5
40440xe9 0x3 0x30 0xd5
40450xe9 0x4 0x30 0xd5
40460xe9 0x5 0x30 0xd5
40470xe9 0x6 0x30 0xd5
40480xe9 0x7 0x30 0xd5
40490xe9 0x8 0x30 0xd5
40500xe9 0x9 0x30 0xd5
40510xe9 0xa 0x30 0xd5
40520xe9 0xb 0x30 0xd5
40530xe9 0xc 0x30 0xd5
40540xe9 0xd 0x30 0xd5
40550xe9 0xe 0x30 0xd5
40560xe9 0xf 0x30 0xd5
40570x9 0x10 0x30 0xd5
40580x9 0x10 0x32 0xd5
40590x89 0x11 0x30 0xd5
40600x89 0x13 0x30 0xd5
40610x89 0x14 0x30 0xd5
40620xc9 0x78 0x30 0xd5
40630xc9 0x79 0x30 0xd5
40640xc9 0x7e 0x30 0xd5
40650x9 0x0 0x38 0xd5
40660x9 0x0 0x39 0xd5
40670x9 0x0 0x3a 0xd5
40680x9 0x0 0x3c 0xd5
40690x29 0x0 0x39 0xd5
40700x29 0x0 0x3b 0xd5
40710xa9 0x0 0x38 0xd5
40720xa9 0x0 0x3c 0xd5
40730xc9 0x0 0x38 0xd5
40740xe9 0x0 0x39 0xd5
40750xe9 0x0 0x3b 0xd5
40760x9 0x1 0x38 0xd5
40770x29 0x1 0x38 0xd5
40780x49 0x1 0x38 0xd5
40790x69 0x1 0x38 0xd5
40800x89 0x1 0x38 0xd5
40810xa9 0x1 0x38 0xd5
40820xc9 0x1 0x38 0xd5
40830xe9 0x1 0x38 0xd5
40840xc9 0x2 0x38 0xd5
40850x9 0x2 0x38 0xd5
40860x29 0x2 0x38 0xd5
40870x49 0x2 0x38 0xd5
40880x69 0x2 0x38 0xd5
40890x89 0x2 0x38 0xd5
40900xa9 0x2 0x38 0xd5
40910x9 0x3 0x38 0xd5
40920x29 0x3 0x38 0xd5
40930x49 0x3 0x38 0xd5
40940x9 0x4 0x38 0xd5
40950x29 0x4 0x38 0xd5
40960x9 0x5 0x38 0xd5
40970x29 0x5 0x38 0xd5
40980x89 0x5 0x38 0xd5
40990xa9 0x5 0x38 0xd5
41000x9 0x6 0x38 0xd5
41010x29 0x6 0x38 0xd5
41020x9 0x7 0x38 0xd5
41030x29 0x7 0x38 0xd5
41040x9 0x10 0x38 0xd5
41050x9 0x10 0x3c 0xd5
41060x9 0x10 0x3e 0xd5
41070x29 0x10 0x38 0xd5
41080x29 0x10 0x3c 0xd5
41090x29 0x10 0x3e 0xd5
41100x49 0x10 0x38 0xd5
41110x9 0x11 0x3c 0xd5
41120x9 0x11 0x3e 0xd5
41130x29 0x11 0x3c 0xd5
41140x29 0x11 0x3e 0xd5
41150x49 0x11 0x3c 0xd5
41160x49 0x11 0x3e 0xd5
41170x69 0x11 0x3c 0xd5
41180xe9 0x11 0x3c 0xd5
41190x29 0x13 0x3e 0xd5
41200x9 0x20 0x38 0xd5
41210x9 0x20 0x3c 0xd5
41220x9 0x20 0x3e 0xd5
41230x29 0x20 0x38 0xd5
41240x49 0x20 0x38 0xd5
41250x49 0x20 0x3c 0xd5
41260x49 0x20 0x3e 0xd5
41270x9 0x21 0x3c 0xd5
41280x49 0x21 0x3c 0xd5
41290x9 0x30 0x3c 0xd5
41300x9 0x40 0x38 0xd5
41310x9 0x40 0x3c 0xd5
41320x9 0x40 0x3e 0xd5
41330x29 0x40 0x38 0xd5
41340x29 0x40 0x3c 0xd5
41350x29 0x40 0x3e 0xd5
41360x9 0x41 0x38 0xd5
41370x9 0x41 0x3c 0xd5
41380x9 0x41 0x3e 0xd5
41390x9 0x42 0x38 0xd5
41400x9 0x42 0x3b 0xd5
41410x29 0x42 0x3b 0xd5
41420x49 0x42 0x38 0xd5
41430x9 0x43 0x3c 0xd5
41440x29 0x43 0x3c 0xd5
41450x49 0x43 0x3c 0xd5
41460x69 0x43 0x3c 0xd5
41470x9 0x44 0x3b 0xd5
41480x29 0x44 0x3b 0xd5
41490x9 0x45 0x3b 0xd5
41500x29 0x45 0x3b 0xd5
41510x29 0x50 0x3c 0xd5
41520x9 0x51 0x38 0xd5
41530x9 0x51 0x3c 0xd5
41540x9 0x51 0x3e 0xd5
41550x29 0x51 0x38 0xd5
41560x29 0x51 0x3c 0xd5
41570x29 0x51 0x3e 0xd5
41580x9 0x52 0x38 0xd5
41590x9 0x52 0x3c 0xd5
41600x9 0x52 0x3e 0xd5
41610x9 0x53 0x3c 0xd5
41620x9 0x60 0x38 0xd5
41630x9 0x60 0x3c 0xd5
41640x9 0x60 0x3e 0xd5
41650x89 0x60 0x3c 0xd5
41660x9 0x74 0x38 0xd5
41670x9 0x9c 0x3b 0xd5
41680x29 0x9c 0x3b 0xd5
41690x49 0x9c 0x3b 0xd5
41700x69 0x9c 0x3b 0xd5
41710xa9 0x9c 0x3b 0xd5
41720xc9 0x9c 0x3b 0xd5
41730xe9 0x9c 0x3b 0xd5
41740x9 0x9d 0x3b 0xd5
41750x29 0x9d 0x3b 0xd5
41760x49 0x9d 0x3b 0xd5
41770x9 0x9e 0x3b 0xd5
41780x29 0x9e 0x38 0xd5
41790x49 0x9e 0x38 0xd5
41800x69 0x9e 0x3b 0xd5
41810x9 0xa2 0x38 0xd5
41820x9 0xa2 0x3c 0xd5
41830x9 0xa2 0x3e 0xd5
41840x9 0xa3 0x38 0xd5
41850x9 0xa3 0x3c 0xd5
41860x9 0xa3 0x3e 0xd5
41870x9 0xc0 0x38 0xd5
41880x9 0xc0 0x3c 0xd5
41890x9 0xc0 0x3e 0xd5
41900x29 0xc0 0x38 0xd5
41910x29 0xc0 0x3c 0xd5
41920x29 0xc0 0x3e 0xd5
41930x49 0xc0 0x38 0xd5
41940x49 0xc0 0x3c 0xd5
41950x49 0xc0 0x3e 0xd5
41960x9 0xc1 0x38 0xd5
41970x29 0xd0 0x38 0xd5
41980x49 0xd0 0x3b 0xd5
41990x49 0xd0 0x3c 0xd5
42000x49 0xd0 0x3e 0xd5
42010x69 0xd0 0x3b 0xd5
42020x89 0xd0 0x38 0xd5
42030x9 0xe0 0x3b 0xd5
42040x29 0xe0 0x3b 0xd5
42050x49 0xe0 0x3b 0xd5
42060x69 0xe0 0x3c 0xd5
42070x9 0xe1 0x38 0xd5
42080x9 0xe1 0x3c 0xd5
42090x9 0xe2 0x3b 0xd5
42100x9 0xe2 0x3c 0xd5
42110x9 0xe2 0x3f 0xd5
42120x29 0xe2 0x3b 0xd5
42130x29 0xe2 0x3c 0xd5
42140x29 0xe2 0x3f 0xd5
42150x49 0xe2 0x3b 0xd5
42160x49 0xe2 0x3c 0xd5
42170x49 0xe2 0x3f 0xd5
42180x9 0xe3 0x3b 0xd5
42190x29 0xe3 0x3b 0xd5
42200x49 0xe3 0x3b 0xd5
42210x9 0xe8 0x3b 0xd5
42220x29 0xe8 0x3b 0xd5
42230x49 0xe8 0x3b 0xd5
42240x69 0xe8 0x3b 0xd5
42250x89 0xe8 0x3b 0xd5
42260xa9 0xe8 0x3b 0xd5
42270xc9 0xe8 0x3b 0xd5
42280xe9 0xe8 0x3b 0xd5
42290x9 0xe9 0x3b 0xd5
42300x29 0xe9 0x3b 0xd5
42310x49 0xe9 0x3b 0xd5
42320x69 0xe9 0x3b 0xd5
42330x89 0xe9 0x3b 0xd5
42340xa9 0xe9 0x3b 0xd5
42350xc9 0xe9 0x3b 0xd5
42360xe9 0xe9 0x3b 0xd5
42370x9 0xea 0x3b 0xd5
42380x29 0xea 0x3b 0xd5
42390x49 0xea 0x3b 0xd5
42400x69 0xea 0x3b 0xd5
42410x89 0xea 0x3b 0xd5
42420xa9 0xea 0x3b 0xd5
42430xc9 0xea 0x3b 0xd5
42440xe9 0xea 0x3b 0xd5
42450x9 0xeb 0x3b 0xd5
42460x29 0xeb 0x3b 0xd5
42470x49 0xeb 0x3b 0xd5
42480x69 0xeb 0x3b 0xd5
42490x89 0xeb 0x3b 0xd5
42500xa9 0xeb 0x3b 0xd5
42510xc9 0xeb 0x3b 0xd5
42520xe9 0xef 0x3b 0xd5
42530x9 0xec 0x3b 0xd5
42540x29 0xec 0x3b 0xd5
42550x49 0xec 0x3b 0xd5
42560x69 0xec 0x3b 0xd5
42570x89 0xec 0x3b 0xd5
42580xa9 0xec 0x3b 0xd5
42590xc9 0xec 0x3b 0xd5
42600xe9 0xec 0x3b 0xd5
42610x9 0xed 0x3b 0xd5
42620x29 0xed 0x3b 0xd5
42630x49 0xed 0x3b 0xd5
42640x69 0xed 0x3b 0xd5
42650x89 0xed 0x3b 0xd5
42660xa9 0xed 0x3b 0xd5
42670xc9 0xed 0x3b 0xd5
42680xe9 0xed 0x3b 0xd5
42690x9 0xee 0x3b 0xd5
42700x29 0xee 0x3b 0xd5
42710x49 0xee 0x3b 0xd5
42720x69 0xee 0x3b 0xd5
42730x89 0xee 0x3b 0xd5
42740xa9 0xee 0x3b 0xd5
42750xc9 0xee 0x3b 0xd5
42760xe9 0xee 0x3b 0xd5
42770x9 0xef 0x3b 0xd5
42780x29 0xef 0x3b 0xd5
42790x49 0xef 0x3b 0xd5
42800x69 0xef 0x3b 0xd5
42810x89 0xef 0x3b 0xd5
42820xa9 0xef 0x3b 0xd5
42830xc9 0xef 0x3b 0xd5
4284
4285# CHECK: mrs     x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4286# CHECK: mrs     x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4287# CHECK: mrs     xzr, {{s0_0_c4_c0_0|S0_0_C4_C0_0}}
4288# CHECK: msr     {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4289# CHECK: msr     {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4290# CHECK: msr     {{s0_0_c4_c0_0|S0_0_C4_C0_0}}, xzr
42910xac 0xf1 0x3f 0xd5
42920xed 0xbf 0x3a 0xd5
42930x1f 0x40 0x20 0xd5
42940x0c 0xf0 0x18 0xd5
42950xe5 0xbd 0x1f 0xd5
42960x1f 0x40 0x00 0xd5
4297
4298#------------------------------------------------------------------------------
4299# Test and branch (immediate)
4300#------------------------------------------------------------------------------
4301
4302# CHECK: tbz     x12, #62, #0
4303# CHECK: tbz     x12, #62, #4
4304# CHECK: tbz     x12, #62, #-32768
4305# CHECK: tbnz    x12, #60, #32764
43060x0c 0x00 0xf0 0xb6
43070x2c 0x00 0xf0 0xb6
43080x0c 0x00 0xf4 0xb6
43090xec 0xff 0xe3 0xb7
4310
4311#------------------------------------------------------------------------------
4312# Unconditional branch (immediate)
4313#------------------------------------------------------------------------------
4314
4315# CHECK: b        #4
4316# CHECK: b        #-4
4317# CHECK: b        #134217724
43180x01 0x00 0x00 0x14
43190xff 0xff 0xff 0x17
43200xff 0xff 0xff 0x15
4321
4322#------------------------------------------------------------------------------
4323# Unconditional branch (register)
4324#------------------------------------------------------------------------------
4325
4326# CHECK: br       x20
4327# CHECK: blr      xzr
4328# CHECK: ret      x10
43290x80 0x2 0x1f 0xd6
43300xe0 0x3 0x3f 0xd6
43310x40 0x1 0x5f 0xd6
4332
4333# CHECK: ret
4334# CHECK: eret
4335# CHECK: drps
43360xc0 0x3 0x5f 0xd6
43370xe0 0x3 0x9f 0xd6
43380xe0 0x3 0xbf 0xd6
4339
4340