1# RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2
3#------------------------------------------------------------------------------
4# Add/sub (immediate)
5#------------------------------------------------------------------------------
6# CHECK: add      w4, w5, #0
7# CHECK: add      w2, w3, #4095
8# CHECK: add      w30, w29, #1, lsl #12
9# CHECK: add      w13, w5, #4095, lsl #12
10# CHECK: add      x5, x7, #1638
110xa4 0x0 0x0 0x11
120x62 0xfc 0x3f 0x11
130xbe 0x7 0x40 0x11
140xad 0xfc 0x7f 0x11
150xe5 0x98 0x19 0x91
16
17# CHECK: add      w20, wsp, #801
18# CHECK: add      wsp, wsp, #1104
19# CHECK: add      wsp, w30, #4084
200xf4 0x87 0xc 0x11
210xff 0x43 0x11 0x11
220xdf 0xd3 0x3f 0x11
23
24# CHECK: add      x0, x24, #291
25# CHECK: add      x3, x24, #4095, lsl #12
26# CHECK: add      x8, sp, #1074
27# CHECK: add      sp, x29, #3816
280x0 0x8f 0x4 0x91
290x3 0xff 0x7f 0x91
300xe8 0xcb 0x10 0x91
310xbf 0xa3 0x3b 0x91
32
33# CHECK: sub      w0, wsp, #4077
34# CHECK: sub      w4, w20, #546, lsl #12
35# CHECK: sub      sp, sp, #288
36# CHECK: sub      wsp, w19, #16
370xe0 0xb7 0x3f 0x51
380x84 0x8a 0x48 0x51
390xff 0x83 0x4 0xd1
400x7f 0x42 0x0 0x51
41
42
43# CHECK: adds     w13, w23, #291, lsl #12
44# CHECK: cmn      w2, #4095
45# CHECK: adds     w20, wsp, #0
46# CHECK: cmn      x3, #1, lsl #12
470xed 0x8e 0x44 0x31
480x5f 0xfc 0x3f 0x31
490xf4 0x3 0x0 0x31
500x7f 0x4 0x40 0xb1
51
52# CHECK: cmp      sp, #20, lsl #12
53# CHECK: cmp      x30, #4095
54# CHECK: subs     x4, sp, #3822
550xff 0x53 0x40 0xf1
560xdf 0xff 0x3f 0xf1
570xe4 0xbb 0x3b 0xf1
58
59# These should really be CMN
60# CHECK: cmn      w3, #291, lsl #12
61# CHECK: cmn      wsp, #1365
62# CHECK: cmn      sp, #1092, lsl #12
630x7f 0x8c 0x44 0x31
640xff 0x57 0x15 0x31
650xff 0x13 0x51 0xb1
66
67# CHECK: mov      sp, x30
68# CHECK: mov      wsp, w20
69# CHECK: mov      x11, sp
70# CHECK: mov      w24, wsp
710xdf 0x3 0x0 0x91
720x9f 0x2 0x0 0x11
730xeb 0x3 0x0 0x91
740xf8 0x3 0x0 0x11
75
76#------------------------------------------------------------------------------
77# Add-subtract (shifted register)
78#------------------------------------------------------------------------------
79
80# CHECK: add      w3, w5, w7
81# CHECK: add      wzr, w3, w5
82# CHECK: add      w20, wzr, w4
83# CHECK: add      w4, w6, wzr
84# CHECK: add      w11, w13, w15
85# CHECK: add      w9, w3, wzr, lsl #10
86# CHECK: add      w17, w29, w20, lsl #31
87# CHECK: add      w21, w22, w23, lsr #0
88# CHECK: add      w24, w25, w26, lsr #18
89# CHECK: add      w27, w28, w29, lsr #31
90# CHECK: add      w2, w3, w4, asr #0
91# CHECK: add      w5, w6, w7, asr #21
92# CHECK: add      w8, w9, w10, asr #31
930xa3 0x0 0x7 0xb
940x7f 0x0 0x5 0xb
950xf4 0x3 0x4 0xb
960xc4 0x0 0x1f 0xb
970xab 0x1 0xf 0xb
980x69 0x28 0x1f 0xb
990xb1 0x7f 0x14 0xb
1000xd5 0x2 0x57 0xb
1010x38 0x4b 0x5a 0xb
1020x9b 0x7f 0x5d 0xb
1030x62 0x0 0x84 0xb
1040xc5 0x54 0x87 0xb
1050x28 0x7d 0x8a 0xb
106
107# CHECK: add      x3, x5, x7
108# CHECK: add      xzr, x3, x5
109# CHECK: add      x20, xzr, x4
110# CHECK: add      x4, x6, xzr
111# CHECK: add      x11, x13, x15
112# CHECK: add      x9, x3, xzr, lsl #10
113# CHECK: add      x17, x29, x20, lsl #63
114# CHECK: add      x21, x22, x23, lsr #0
115# CHECK: add      x24, x25, x26, lsr #18
116# CHECK: add      x27, x28, x29, lsr #63
117# CHECK: add      x2, x3, x4, asr #0
118# CHECK: add      x5, x6, x7, asr #21
119# CHECK: add      x8, x9, x10, asr #63
1200xa3 0x0 0x7 0x8b
1210x7f 0x0 0x5 0x8b
1220xf4 0x3 0x4 0x8b
1230xc4 0x0 0x1f 0x8b
1240xab 0x1 0xf 0x8b
1250x69 0x28 0x1f 0x8b
1260xb1 0xff 0x14 0x8b
1270xd5 0x2 0x57 0x8b
1280x38 0x4b 0x5a 0x8b
1290x9b 0xff 0x5d 0x8b
1300x62 0x0 0x84 0x8b
1310xc5 0x54 0x87 0x8b
1320x28 0xfd 0x8a 0x8b
133
134# CHECK: adds     w3, w5, w7
135# CHECK: cmn      w3, w5
136# CHECK: adds     w20, wzr, w4
137# CHECK: adds     w4, w6, wzr
138# CHECK: adds     w11, w13, w15
139# CHECK: adds     w9, w3, wzr, lsl #10
140# CHECK: adds     w17, w29, w20, lsl #31
141# CHECK: adds     w21, w22, w23, lsr #0
142# CHECK: adds     w24, w25, w26, lsr #18
143# CHECK: adds     w27, w28, w29, lsr #31
144# CHECK: adds     w2, w3, w4, asr #0
145# CHECK: adds     w5, w6, w7, asr #21
146# CHECK: adds     w8, w9, w10, asr #31
1470xa3 0x0 0x7 0x2b
1480x7f 0x0 0x5 0x2b
1490xf4 0x3 0x4 0x2b
1500xc4 0x0 0x1f 0x2b
1510xab 0x1 0xf 0x2b
1520x69 0x28 0x1f 0x2b
1530xb1 0x7f 0x14 0x2b
1540xd5 0x2 0x57 0x2b
1550x38 0x4b 0x5a 0x2b
1560x9b 0x7f 0x5d 0x2b
1570x62 0x0 0x84 0x2b
1580xc5 0x54 0x87 0x2b
1590x28 0x7d 0x8a 0x2b
160
161# CHECK: adds     x3, x5, x7
162# CHECK: cmn      x3, x5
163# CHECK: adds     x20, xzr, x4
164# CHECK: adds     x4, x6, xzr
165# CHECK: adds     x11, x13, x15
166# CHECK: adds     x9, x3, xzr, lsl #10
167# CHECK: adds     x17, x29, x20, lsl #63
168# CHECK: adds     x21, x22, x23, lsr #0
169# CHECK: adds     x24, x25, x26, lsr #18
170# CHECK: adds     x27, x28, x29, lsr #63
171# CHECK: adds     x2, x3, x4, asr #0
172# CHECK: adds     x5, x6, x7, asr #21
173# CHECK: adds     x8, x9, x10, asr #63
1740xa3 0x0 0x7 0xab
1750x7f 0x0 0x5 0xab
1760xf4 0x3 0x4 0xab
1770xc4 0x0 0x1f 0xab
1780xab 0x1 0xf 0xab
1790x69 0x28 0x1f 0xab
1800xb1 0xff 0x14 0xab
1810xd5 0x2 0x57 0xab
1820x38 0x4b 0x5a 0xab
1830x9b 0xff 0x5d 0xab
1840x62 0x0 0x84 0xab
1850xc5 0x54 0x87 0xab
1860x28 0xfd 0x8a 0xab
187
188# CHECK: sub      w3, w5, w7
189# CHECK: sub      wzr, w3, w5
190# CHECK: sub      w20, wzr, w4
191# CHECK: sub      w4, w6, wzr
192# CHECK: sub      w11, w13, w15
193# CHECK: sub      w9, w3, wzr, lsl #10
194# CHECK: sub      w17, w29, w20, lsl #31
195# CHECK: sub      w21, w22, w23, lsr #0
196# CHECK: sub      w24, w25, w26, lsr #18
197# CHECK: sub      w27, w28, w29, lsr #31
198# CHECK: sub      w2, w3, w4, asr #0
199# CHECK: sub      w5, w6, w7, asr #21
200# CHECK: sub      w8, w9, w10, asr #31
2010xa3 0x0 0x7 0x4b
2020x7f 0x0 0x5 0x4b
2030xf4 0x3 0x4 0x4b
2040xc4 0x0 0x1f 0x4b
2050xab 0x1 0xf 0x4b
2060x69 0x28 0x1f 0x4b
2070xb1 0x7f 0x14 0x4b
2080xd5 0x2 0x57 0x4b
2090x38 0x4b 0x5a 0x4b
2100x9b 0x7f 0x5d 0x4b
2110x62 0x0 0x84 0x4b
2120xc5 0x54 0x87 0x4b
2130x28 0x7d 0x8a 0x4b
214
215# CHECK: sub      x3, x5, x7
216# CHECK: sub      xzr, x3, x5
217# CHECK: sub      x20, xzr, x4
218# CHECK: sub      x4, x6, xzr
219# CHECK: sub      x11, x13, x15
220# CHECK: sub      x9, x3, xzr, lsl #10
221# CHECK: sub      x17, x29, x20, lsl #63
222# CHECK: sub      x21, x22, x23, lsr #0
223# CHECK: sub      x24, x25, x26, lsr #18
224# CHECK: sub      x27, x28, x29, lsr #63
225# CHECK: sub      x2, x3, x4, asr #0
226# CHECK: sub      x5, x6, x7, asr #21
227# CHECK: sub      x8, x9, x10, asr #63
2280xa3 0x0 0x7 0xcb
2290x7f 0x0 0x5 0xcb
2300xf4 0x3 0x4 0xcb
2310xc4 0x0 0x1f 0xcb
2320xab 0x1 0xf 0xcb
2330x69 0x28 0x1f 0xcb
2340xb1 0xff 0x14 0xcb
2350xd5 0x2 0x57 0xcb
2360x38 0x4b 0x5a 0xcb
2370x9b 0xff 0x5d 0xcb
2380x62 0x0 0x84 0xcb
2390xc5 0x54 0x87 0xcb
2400x28 0xfd 0x8a 0xcb
241
242# CHECK: subs     w3, w5, w7
243# CHECK: cmp      w3, w5
244# CHECK: subs     w20, wzr, w4
245# CHECK: subs     w4, w6, wzr
246# CHECK: subs     w11, w13, w15
247# CHECK: subs     w9, w3, wzr, lsl #10
248# CHECK: subs     w17, w29, w20, lsl #31
249# CHECK: subs     w21, w22, w23, lsr #0
250# CHECK: subs     w24, w25, w26, lsr #18
251# CHECK: subs     w27, w28, w29, lsr #31
252# CHECK: subs     w2, w3, w4, asr #0
253# CHECK: subs     w5, w6, w7, asr #21
254# CHECK: subs     w8, w9, w10, asr #31
2550xa3 0x0 0x7 0x6b
2560x7f 0x0 0x5 0x6b
2570xf4 0x3 0x4 0x6b
2580xc4 0x0 0x1f 0x6b
2590xab 0x1 0xf 0x6b
2600x69 0x28 0x1f 0x6b
2610xb1 0x7f 0x14 0x6b
2620xd5 0x2 0x57 0x6b
2630x38 0x4b 0x5a 0x6b
2640x9b 0x7f 0x5d 0x6b
2650x62 0x0 0x84 0x6b
2660xc5 0x54 0x87 0x6b
2670x28 0x7d 0x8a 0x6b
268
269# CHECK: subs     x3, x5, x7
270# CHECK: cmp      x3, x5
271# CHECK: subs     x20, xzr, x4
272# CHECK: subs     x4, x6, xzr
273# CHECK: subs     x11, x13, x15
274# CHECK: subs     x9, x3, xzr, lsl #10
275# CHECK: subs     x17, x29, x20, lsl #63
276# CHECK: subs     x21, x22, x23, lsr #0
277# CHECK: subs     x24, x25, x26, lsr #18
278# CHECK: subs     x27, x28, x29, lsr #63
279# CHECK: subs     x2, x3, x4, asr #0
280# CHECK: subs     x5, x6, x7, asr #21
281# CHECK: subs     x8, x9, x10, asr #63
2820xa3 0x0 0x7 0xeb
2830x7f 0x0 0x5 0xeb
2840xf4 0x3 0x4 0xeb
2850xc4 0x0 0x1f 0xeb
2860xab 0x1 0xf 0xeb
2870x69 0x28 0x1f 0xeb
2880xb1 0xff 0x14 0xeb
2890xd5 0x2 0x57 0xeb
2900x38 0x4b 0x5a 0xeb
2910x9b 0xff 0x5d 0xeb
2920x62 0x0 0x84 0xeb
2930xc5 0x54 0x87 0xeb
2940x28 0xfd 0x8a 0xeb
295
296# CHECK: cmn      w0, w3
297# CHECK: cmn      wzr, w4
298# CHECK: cmn      w5, wzr
299# CHECK: cmn      w6, w7
300# CHECK: cmn      w8, w9, lsl #15
301# CHECK: cmn      w10, w11, lsl #31
302# CHECK: cmn      w12, w13, lsr #0
303# CHECK: cmn      w14, w15, lsr #21
304# CHECK: cmn      w16, w17, lsr #31
305# CHECK: cmn      w18, w19, asr #0
306# CHECK: cmn      w20, w21, asr #22
307# CHECK: cmn      w22, w23, asr #31
3080x1f 0x0 0x3 0x2b
3090xff 0x3 0x4 0x2b
3100xbf 0x0 0x1f 0x2b
3110xdf 0x0 0x7 0x2b
3120x1f 0x3d 0x9 0x2b
3130x5f 0x7d 0xb 0x2b
3140x9f 0x1 0x4d 0x2b
3150xdf 0x55 0x4f 0x2b
3160x1f 0x7e 0x51 0x2b
3170x5f 0x2 0x93 0x2b
3180x9f 0x5a 0x95 0x2b
3190xdf 0x7e 0x97 0x2b
320
321# CHECK: cmn      x0, x3
322# CHECK: cmn      xzr, x4
323# CHECK: cmn      x5, xzr
324# CHECK: cmn      x6, x7
325# CHECK: cmn      x8, x9, lsl #15
326# CHECK: cmn      x10, x11, lsl #63
327# CHECK: cmn      x12, x13, lsr #0
328# CHECK: cmn      x14, x15, lsr #41
329# CHECK: cmn      x16, x17, lsr #63
330# CHECK: cmn      x18, x19, asr #0
331# CHECK: cmn      x20, x21, asr #55
332# CHECK: cmn      x22, x23, asr #63
3330x1f 0x0 0x3 0xab
3340xff 0x3 0x4 0xab
3350xbf 0x0 0x1f 0xab
3360xdf 0x0 0x7 0xab
3370x1f 0x3d 0x9 0xab
3380x5f 0xfd 0xb 0xab
3390x9f 0x1 0x4d 0xab
3400xdf 0xa5 0x4f 0xab
3410x1f 0xfe 0x51 0xab
3420x5f 0x2 0x93 0xab
3430x9f 0xde 0x95 0xab
3440xdf 0xfe 0x97 0xab
345
346# CHECK: cmp      w0, w3
347# CHECK: cmp      wzr, w4
348# CHECK: cmp      w5, wzr
349# CHECK: cmp      w6, w7
350# CHECK: cmp      w8, w9, lsl #15
351# CHECK: cmp      w10, w11, lsl #31
352# CHECK: cmp      w12, w13, lsr #0
353# CHECK: cmp      w14, w15, lsr #21
354# CHECK: cmp      w16, w17, lsr #31
355# CHECK: cmp      w18, w19, asr #0
356# CHECK: cmp      w20, w21, asr #22
357# CHECK: cmp      w22, w23, asr #31
3580x1f 0x0 0x3 0x6b
3590xff 0x3 0x4 0x6b
3600xbf 0x0 0x1f 0x6b
3610xdf 0x0 0x7 0x6b
3620x1f 0x3d 0x9 0x6b
3630x5f 0x7d 0xb 0x6b
3640x9f 0x1 0x4d 0x6b
3650xdf 0x55 0x4f 0x6b
3660x1f 0x7e 0x51 0x6b
3670x5f 0x2 0x93 0x6b
3680x9f 0x5a 0x95 0x6b
3690xdf 0x7e 0x97 0x6b
370
371# CHECK: cmp      x0, x3
372# CHECK: cmp      xzr, x4
373# CHECK: cmp      x5, xzr
374# CHECK: cmp      x6, x7
375# CHECK: cmp      x8, x9, lsl #15
376# CHECK: cmp      x10, x11, lsl #63
377# CHECK: cmp      x12, x13, lsr #0
378# CHECK: cmp      x14, x15, lsr #41
379# CHECK: cmp      x16, x17, lsr #63
380# CHECK: cmp      x18, x19, asr #0
381# CHECK: cmp      x20, x21, asr #55
382# CHECK: cmp      x22, x23, asr #63
3830x1f 0x0 0x3 0xeb
3840xff 0x3 0x4 0xeb
3850xbf 0x0 0x1f 0xeb
3860xdf 0x0 0x7 0xeb
3870x1f 0x3d 0x9 0xeb
3880x5f 0xfd 0xb 0xeb
3890x9f 0x1 0x4d 0xeb
3900xdf 0xa5 0x4f 0xeb
3910x1f 0xfe 0x51 0xeb
3920x5f 0x2 0x93 0xeb
3930x9f 0xde 0x95 0xeb
3940xdf 0xfe 0x97 0xeb
395
396# CHECK: sub      w29, wzr, w30
397# CHECK: sub      w30, wzr, wzr
398# CHECK: sub      wzr, wzr, w0
399# CHECK: sub      w28, wzr, w27
400# CHECK: sub      w26, wzr, w25, lsl #29
401# CHECK: sub      w24, wzr, w23, lsl #31
402# CHECK: sub      w22, wzr, w21, lsr #0
403# CHECK: sub      w20, wzr, w19, lsr #1
404# CHECK: sub      w18, wzr, w17, lsr #31
405# CHECK: sub      w16, wzr, w15, asr #0
406# CHECK: sub      w14, wzr, w13, asr #12
407# CHECK: sub      w12, wzr, w11, asr #31
4080xfd 0x3 0x1e 0x4b
4090xfe 0x3 0x1f 0x4b
4100xff 0x3 0x0 0x4b
4110xfc 0x3 0x1b 0x4b
4120xfa 0x77 0x19 0x4b
4130xf8 0x7f 0x17 0x4b
4140xf6 0x3 0x55 0x4b
4150xf4 0x7 0x53 0x4b
4160xf2 0x7f 0x51 0x4b
4170xf0 0x3 0x8f 0x4b
4180xee 0x33 0x8d 0x4b
4190xec 0x7f 0x8b 0x4b
420
421# CHECK: sub      x29, xzr, x30
422# CHECK: sub      x30, xzr, xzr
423# CHECK: sub      xzr, xzr, x0
424# CHECK: sub      x28, xzr, x27
425# CHECK: sub      x26, xzr, x25, lsl #29
426# CHECK: sub      x24, xzr, x23, lsl #31
427# CHECK: sub      x22, xzr, x21, lsr #0
428# CHECK: sub      x20, xzr, x19, lsr #1
429# CHECK: sub      x18, xzr, x17, lsr #31
430# CHECK: sub      x16, xzr, x15, asr #0
431# CHECK: sub      x14, xzr, x13, asr #12
432# CHECK: sub      x12, xzr, x11, asr #31
4330xfd 0x3 0x1e 0xcb
4340xfe 0x3 0x1f 0xcb
4350xff 0x3 0x0 0xcb
4360xfc 0x3 0x1b 0xcb
4370xfa 0x77 0x19 0xcb
4380xf8 0x7f 0x17 0xcb
4390xf6 0x3 0x55 0xcb
4400xf4 0x7 0x53 0xcb
4410xf2 0x7f 0x51 0xcb
4420xf0 0x3 0x8f 0xcb
4430xee 0x33 0x8d 0xcb
4440xec 0x7f 0x8b 0xcb
445
446# CHECK: subs     w29, wzr, w30
447# CHECK: subs     w30, wzr, wzr
448# CHECK: cmp      wzr, w0
449# CHECK: subs     w28, wzr, w27
450# CHECK: subs     w26, wzr, w25, lsl #29
451# CHECK: subs     w24, wzr, w23, lsl #31
452# CHECK: subs     w22, wzr, w21, lsr #0
453# CHECK: subs     w20, wzr, w19, lsr #1
454# CHECK: subs     w18, wzr, w17, lsr #31
455# CHECK: subs     w16, wzr, w15, asr #0
456# CHECK: subs     w14, wzr, w13, asr #12
457# CHECK: subs     w12, wzr, w11, asr #31
4580xfd 0x3 0x1e 0x6b
4590xfe 0x3 0x1f 0x6b
4600xff 0x3 0x0 0x6b
4610xfc 0x3 0x1b 0x6b
4620xfa 0x77 0x19 0x6b
4630xf8 0x7f 0x17 0x6b
4640xf6 0x3 0x55 0x6b
4650xf4 0x7 0x53 0x6b
4660xf2 0x7f 0x51 0x6b
4670xf0 0x3 0x8f 0x6b
4680xee 0x33 0x8d 0x6b
4690xec 0x7f 0x8b 0x6b
470
471# CHECK: subs     x29, xzr, x30
472# CHECK: subs     x30, xzr, xzr
473# CHECK: cmp      xzr, x0
474# CHECK: subs     x28, xzr, x27
475# CHECK: subs     x26, xzr, x25, lsl #29
476# CHECK: subs     x24, xzr, x23, lsl #31
477# CHECK: subs     x22, xzr, x21, lsr #0
478# CHECK: subs     x20, xzr, x19, lsr #1
479# CHECK: subs     x18, xzr, x17, lsr #31
480# CHECK: subs     x16, xzr, x15, asr #0
481# CHECK: subs     x14, xzr, x13, asr #12
482# CHECK: subs     x12, xzr, x11, asr #31
4830xfd 0x3 0x1e 0xeb
4840xfe 0x3 0x1f 0xeb
4850xff 0x3 0x0 0xeb
4860xfc 0x3 0x1b 0xeb
4870xfa 0x77 0x19 0xeb
4880xf8 0x7f 0x17 0xeb
4890xf6 0x3 0x55 0xeb
4900xf4 0x7 0x53 0xeb
4910xf2 0x7f 0x51 0xeb
4920xf0 0x3 0x8f 0xeb
4930xee 0x33 0x8d 0xeb
4940xec 0x7f 0x8b 0xeb
495
496#------------------------------------------------------------------------------
497# Add-subtract (shifted register)
498#------------------------------------------------------------------------------
499
500# CHECK: adc      w29, w27, w25
501# CHECK: adc      wzr, w3, w4
502# CHECK: adc      w9, wzr, w10
503# CHECK: adc      w20, w0, wzr
5040x7d 0x3 0x19 0x1a
5050x7f 0x0 0x4 0x1a
5060xe9 0x3 0xa 0x1a
5070x14 0x0 0x1f 0x1a
508
509# CHECK: adc      x29, x27, x25
510# CHECK: adc      xzr, x3, x4
511# CHECK: adc      x9, xzr, x10
512# CHECK: adc      x20, x0, xzr
5130x7d 0x3 0x19 0x9a
5140x7f 0x0 0x4 0x9a
5150xe9 0x3 0xa 0x9a
5160x14 0x0 0x1f 0x9a
517
518# CHECK: adcs     w29, w27, w25
519# CHECK: adcs     wzr, w3, w4
520# CHECK: adcs     w9, wzr, w10
521# CHECK: adcs     w20, w0, wzr
5220x7d 0x3 0x19 0x3a
5230x7f 0x0 0x4 0x3a
5240xe9 0x3 0xa 0x3a
5250x14 0x0 0x1f 0x3a
526
527# CHECK: adcs     x29, x27, x25
528# CHECK: adcs     xzr, x3, x4
529# CHECK: adcs     x9, xzr, x10
530# CHECK: adcs     x20, x0, xzr
5310x7d 0x3 0x19 0xba
5320x7f 0x0 0x4 0xba
5330xe9 0x3 0xa 0xba
5340x14 0x0 0x1f 0xba
535
536# CHECK: sbc      w29, w27, w25
537# CHECK: sbc      wzr, w3, w4
538# CHECK: ngc      w9, w10
539# CHECK: sbc      w20, w0, wzr
5400x7d 0x3 0x19 0x5a
5410x7f 0x0 0x4 0x5a
5420xe9 0x3 0xa 0x5a
5430x14 0x0 0x1f 0x5a
544
545# CHECK: sbc      x29, x27, x25
546# CHECK: sbc      xzr, x3, x4
547# CHECK: ngc      x9, x10
548# CHECK: sbc      x20, x0, xzr
5490x7d 0x3 0x19 0xda
5500x7f 0x0 0x4 0xda
5510xe9 0x3 0xa 0xda
5520x14 0x0 0x1f 0xda
553
554# CHECK: sbcs     w29, w27, w25
555# CHECK: sbcs     wzr, w3, w4
556# CHECK: ngcs     w9, w10
557# CHECK: sbcs     w20, w0, wzr
5580x7d 0x3 0x19 0x7a
5590x7f 0x0 0x4 0x7a
5600xe9 0x3 0xa 0x7a
5610x14 0x0 0x1f 0x7a
562
563# CHECK: sbcs     x29, x27, x25
564# CHECK: sbcs     xzr, x3, x4
565# CHECK: ngcs     x9, x10
566# CHECK: sbcs     x20, x0, xzr
5670x7d 0x3 0x19 0xfa
5680x7f 0x0 0x4 0xfa
5690xe9 0x3 0xa 0xfa
5700x14 0x0 0x1f 0xfa
571
572# CHECK: ngc      w3, w12
573# CHECK: ngc      wzr, w9
574# CHECK: ngc      w23, wzr
5750xe3 0x3 0xc 0x5a
5760xff 0x3 0x9 0x5a
5770xf7 0x3 0x1f 0x5a
578
579# CHECK: ngc      x29, x30
580# CHECK: ngc      xzr, x0
581# CHECK: ngc      x0, xzr
5820xfd 0x3 0x1e 0xda
5830xff 0x3 0x0 0xda
5840xe0 0x3 0x1f 0xda
585
586# CHECK: ngcs     w3, w12
587# CHECK: ngcs     wzr, w9
588# CHECK: ngcs     w23, wzr
5890xe3 0x3 0xc 0x7a
5900xff 0x3 0x9 0x7a
5910xf7 0x3 0x1f 0x7a
592
593# CHECK: ngcs     x29, x30
594# CHECK: ngcs     xzr, x0
595# CHECK: ngcs     x0, xzr
5960xfd 0x3 0x1e 0xfa
5970xff 0x3 0x0 0xfa
5980xe0 0x3 0x1f 0xfa
599
600#------------------------------------------------------------------------------
601# Compare and branch (immediate)
602#------------------------------------------------------------------------------
603
604# CHECK: sbfx     x1, x2, #3, #2
605# CHECK: asr      x3, x4, #63
606# CHECK: asr      wzr, wzr, #31
607# CHECK: sbfx     w12, w9, #0, #1
6080x41 0x10 0x43 0x93
6090x83 0xfc 0x7f 0x93
6100xff 0x7f 0x1f 0x13
6110x2c 0x1 0x0 0x13
612
613# CHECK: ubfiz    x4, x5, #52, #11
614# CHECK: ubfx     xzr, x4, #0, #1
615# CHECK: ubfiz    x4, xzr, #1, #6
616# CHECK: lsr      x5, x6, #12
6170xa4 0x28 0x4c 0xd3
6180x9f 0x0 0x40 0xd3
6190xe4 0x17 0x7f 0xd3
6200xc5 0xfc 0x4c 0xd3
621
622# CHECK: bfi      x4, x5, #52, #11
623# CHECK: bfxil    xzr, x4, #0, #1
624# CHECK: bfi      x4, xzr, #1, #6
625# CHECK: bfxil    x5, x6, #12, #52
6260xa4 0x28 0x4c 0xb3
6270x9f 0x0 0x40 0xb3
6280xe4 0x17 0x7f 0xb3
6290xc5 0xfc 0x4c 0xb3
630
631# CHECK: sxtb     w1, w2
632# CHECK: sxtb     xzr, w3
633# CHECK: sxth     w9, w10
634# CHECK: sxth     x0, w1
635# CHECK: sxtw     x3, w30
6360x41 0x1c 0x0 0x13
6370x7f 0x1c 0x40 0x93
6380x49 0x3d 0x0 0x13
6390x20 0x3c 0x40 0x93
6400xc3 0x7f 0x40 0x93
641
642# CHECK: uxtb     w1, w2
643# CHECK: uxth     w9, w10
644# CHECK: ubfx     x3, x30, #0, #32
6450x41 0x1c 0x0 0x53
6460x49 0x3d 0x0 0x53
6470xc3 0x7f 0x40 0xd3
648
649# CHECK: asr      w3, w2, #0
650# CHECK: asr      w9, w10, #31
651# CHECK: asr      x20, x21, #63
652# CHECK: asr      w1, wzr, #3
6530x43 0x7c 0x0 0x13
6540x49 0x7d 0x1f 0x13
6550xb4 0xfe 0x7f 0x93
6560xe1 0x7f 0x3 0x13
657
658# CHECK: lsr      w3, w2, #0
659# CHECK: lsr      w9, w10, #31
660# CHECK: lsr      x20, x21, #63
661# CHECK: lsr      wzr, wzr, #3
6620x43 0x7c 0x0 0x53
6630x49 0x7d 0x1f 0x53
6640xb4 0xfe 0x7f 0xd3
6650xff 0x7f 0x3 0x53
666
667# CHECK: lsr      w3, w2, #0
668# CHECK: lsl      w9, w10, #31
669# CHECK: lsl      x20, x21, #63
670# CHECK: lsl      w1, wzr, #3
6710x43 0x7c 0x0 0x53
6720x49 0x1 0x1 0x53
6730xb4 0x2 0x41 0xd3
6740xe1 0x73 0x1d 0x53
675
676# CHECK: sbfx     w9, w10, #0, #1
677# CHECK: sbfiz    x2, x3, #63, #1
678# CHECK: asr      x19, x20, #0
679# CHECK: sbfiz    x9, x10, #5, #59
680# CHECK: asr      w9, w10, #0
681# CHECK: sbfiz    w11, w12, #31, #1
682# CHECK: sbfiz    w13, w14, #29, #3
683# CHECK: sbfiz    xzr, xzr, #10, #11
6840x49 0x1 0x0 0x13
6850x62 0x0 0x41 0x93
6860x93 0xfe 0x40 0x93
6870x49 0xe9 0x7b 0x93
6880x49 0x7d 0x0 0x13
6890x8b 0x1 0x1 0x13
6900xcd 0x9 0x3 0x13
6910xff 0x2b 0x76 0x93
692
693# CHECK: sbfx     w9, w10, #0, #1
694# CHECK: asr      x2, x3, #63
695# CHECK: asr      x19, x20, #0
696# CHECK: asr      x9, x10, #5
697# CHECK: asr      w9, w10, #0
698# CHECK: asr      w11, w12, #31
699# CHECK: asr      w13, w14, #29
700# CHECK: sbfx     xzr, xzr, #10, #11
7010x49 0x1 0x0 0x13
7020x62 0xfc 0x7f 0x93
7030x93 0xfe 0x40 0x93
7040x49 0xfd 0x45 0x93
7050x49 0x7d 0x0 0x13
7060x8b 0x7d 0x1f 0x13
7070xcd 0x7d 0x1d 0x13
7080xff 0x53 0x4a 0x93
709
710# CHECK: bfxil    w9, w10, #0, #1
711# CHECK: bfi      x2, x3, #63, #1
712# CHECK: bfxil    x19, x20, #0, #64
713# CHECK: bfi      x9, x10, #5, #59
714# CHECK: bfxil    w9, w10, #0, #32
715# CHECK: bfi      w11, w12, #31, #1
716# CHECK: bfi      w13, w14, #29, #3
717# CHECK: bfi      xzr, xzr, #10, #11
7180x49 0x1 0x0 0x33
7190x62 0x0 0x41 0xb3
7200x93 0xfe 0x40 0xb3
7210x49 0xe9 0x7b 0xb3
7220x49 0x7d 0x0 0x33
7230x8b 0x1 0x1 0x33
7240xcd 0x9 0x3 0x33
7250xff 0x2b 0x76 0xb3
726
727# CHECK: bfxil    w9, w10, #0, #1
728# CHECK: bfxil    x2, x3, #63, #1
729# CHECK: bfxil    x19, x20, #0, #64
730# CHECK: bfxil    x9, x10, #5, #59
731# CHECK: bfxil    w9, w10, #0, #32
732# CHECK: bfxil    w11, w12, #31, #1
733# CHECK: bfxil    w13, w14, #29, #3
734# CHECK: bfxil    xzr, xzr, #10, #11
7350x49 0x1 0x0 0x33
7360x62 0xfc 0x7f 0xb3
7370x93 0xfe 0x40 0xb3
7380x49 0xfd 0x45 0xb3
7390x49 0x7d 0x0 0x33
7400x8b 0x7d 0x1f 0x33
7410xcd 0x7d 0x1d 0x33
7420xff 0x53 0x4a 0xb3
743
744# CHECK: ubfx     w9, w10, #0, #1
745# CHECK: lsl      x2, x3, #63
746# CHECK: lsr      x19, x20, #0
747# CHECK: lsl      x9, x10, #5
748# CHECK: lsr      w9, w10, #0
749# CHECK: lsl      w11, w12, #31
750# CHECK: lsl      w13, w14, #29
751# CHECK: ubfiz    xzr, xzr, #10, #11
7520x49 0x1 0x0 0x53
7530x62 0x0 0x41 0xd3
7540x93 0xfe 0x40 0xd3
7550x49 0xe9 0x7b 0xd3
7560x49 0x7d 0x0 0x53
7570x8b 0x1 0x1 0x53
7580xcd 0x9 0x3 0x53
7590xff 0x2b 0x76 0xd3
760
761# CHECK: ubfx     w9, w10, #0, #1
762# CHECK: lsr      x2, x3, #63
763# CHECK: lsr      x19, x20, #0
764# CHECK: lsr      x9, x10, #5
765# CHECK: lsr      w9, w10, #0
766# CHECK: lsr      w11, w12, #31
767# CHECK: lsr      w13, w14, #29
768# CHECK: ubfx     xzr, xzr, #10, #11
7690x49 0x1 0x0 0x53
7700x62 0xfc 0x7f 0xd3
7710x93 0xfe 0x40 0xd3
7720x49 0xfd 0x45 0xd3
7730x49 0x7d 0x0 0x53
7740x8b 0x7d 0x1f 0x53
7750xcd 0x7d 0x1d 0x53
7760xff 0x53 0x4a 0xd3
777
778
779#------------------------------------------------------------------------------
780# Compare and branch (immediate)
781#------------------------------------------------------------------------------
782
783# CHECK: cbz      w5, #4
784# CHECK: cbz      x5, #0
785# CHECK: cbnz     x2, #-4
786# CHECK: cbnz     x26, #1048572
7870x25 0x0 0x0 0x34
7880x05 0x0 0x0 0xb4
7890xe2 0xff 0xff 0xb5
7900xfa 0xff 0x7f 0xb5
791
792# CHECK: cbz      wzr, #0
793# CHECK: cbnz     xzr, #0
7940x1f 0x0 0x0 0x34
7950x1f 0x0 0x0 0xb5
796
797#------------------------------------------------------------------------------
798# Conditional branch (immediate)
799#------------------------------------------------------------------------------
800
801# CHECK: b.ne #4
802# CHECK: b.ge #1048572
803# CHECK: b.ge #-4
8040x21 0x00 0x00 0x54
8050xea 0xff 0x7f 0x54
8060xea 0xff 0xff 0x54
807
808#------------------------------------------------------------------------------
809# Conditional compare (immediate)
810#------------------------------------------------------------------------------
811
812# CHECK: ccmp w1, #31, #0, eq
813# CHECK: ccmp w3, #0, #15, hs
814# CHECK: ccmp wzr, #15, #13, hs
8150x20 0x08 0x5f 0x7a
8160x6f 0x28 0x40 0x7a
8170xed 0x2b 0x4f 0x7a
818
819# CHECK: ccmp x9, #31, #0, le
820# CHECK: ccmp x3, #0, #15, gt
821# CHECK: ccmp xzr, #5, #7, ne
8220x20 0xd9 0x5f 0xfa
8230x6f 0xc8 0x40 0xfa
8240xe7 0x1b 0x45 0xfa
825
826# CHECK: ccmn w1, #31, #0, eq
827# CHECK: ccmn w3, #0, #15, hs
828# CHECK: ccmn wzr, #15, #13, hs
8290x20 0x08 0x5f 0x3a
8300x6f 0x28 0x40 0x3a
8310xed 0x2b 0x4f 0x3a
832
833# CHECK: ccmn x9, #31, #0, le
834# CHECK: ccmn x3, #0, #15, gt
835# CHECK: ccmn xzr, #5, #7, ne
8360x20 0xd9 0x5f 0xba
8370x6f 0xc8 0x40 0xba
8380xe7 0x1b 0x45 0xba
839
840#------------------------------------------------------------------------------
841# Conditional compare (register)
842#------------------------------------------------------------------------------
843
844# CHECK: ccmp w1, wzr, #0, eq
845# CHECK: ccmp w3, w0, #15, hs
846# CHECK: ccmp wzr, w15, #13, hs
8470x20 0x00 0x5f 0x7a
8480x6f 0x20 0x40 0x7a
8490xed 0x23 0x4f 0x7a
850
851# CHECK: ccmp x9, xzr, #0, le
852# CHECK: ccmp x3, x0, #15, gt
853# CHECK: ccmp xzr, x5, #7, ne
8540x20 0xd1 0x5f 0xfa
8550x6f 0xc0 0x40 0xfa
8560xe7 0x13 0x45 0xfa
857
858# CHECK: ccmn w1, wzr, #0, eq
859# CHECK: ccmn w3, w0, #15, hs
860# CHECK: ccmn wzr, w15, #13, hs
8610x20 0x00 0x5f 0x3a
8620x6f 0x20 0x40 0x3a
8630xed 0x23 0x4f 0x3a
864
865# CHECK: ccmn x9, xzr, #0, le
866# CHECK: ccmn x3, x0, #15, gt
867# CHECK: ccmn xzr, x5, #7, ne
8680x20 0xd1 0x5f 0xba
8690x6f 0xc0 0x40 0xba
8700xe7 0x13 0x45 0xba
871
872#------------------------------------------------------------------------------
873# Conditional branch (immediate)
874#------------------------------------------------------------------------------
875# CHECK: csel     w1, w0, w19, ne
876# CHECK: csel     wzr, w5, w9, eq
877# CHECK: csel     w9, wzr, w30, gt
878# CHECK: csel     w1, w28, wzr, mi
879# CHECK: csel     x19, x23, x29, lt
880# CHECK: csel     xzr, x3, x4, ge
881# CHECK: csel     x5, xzr, x6, hs
882# CHECK: csel     x7, x8, xzr, lo
8830x1 0x10 0x93 0x1a
8840xbf 0x0 0x89 0x1a
8850xe9 0xc3 0x9e 0x1a
8860x81 0x43 0x9f 0x1a
8870xf3 0xb2 0x9d 0x9a
8880x7f 0xa0 0x84 0x9a
8890xe5 0x23 0x86 0x9a
8900x7 0x31 0x9f 0x9a
891
892# CHECK: csinc    w1, w0, w19, ne
893# CHECK: csinc    wzr, w5, w9, eq
894# CHECK: csinc    w9, wzr, w30, gt
895# CHECK: csinc    w1, w28, wzr, mi
896# CHECK: csinc    x19, x23, x29, lt
897# CHECK: csinc    xzr, x3, x4, ge
898# CHECK: csinc    x5, xzr, x6, hs
899# CHECK: csinc    x7, x8, xzr, lo
9000x1 0x14 0x93 0x1a
9010xbf 0x4 0x89 0x1a
9020xe9 0xc7 0x9e 0x1a
9030x81 0x47 0x9f 0x1a
9040xf3 0xb6 0x9d 0x9a
9050x7f 0xa4 0x84 0x9a
9060xe5 0x27 0x86 0x9a
9070x7 0x35 0x9f 0x9a
908
909# CHECK: csinv    w1, w0, w19, ne
910# CHECK: csinv    wzr, w5, w9, eq
911# CHECK: csinv    w9, wzr, w30, gt
912# CHECK: csinv    w1, w28, wzr, mi
913# CHECK: csinv    x19, x23, x29, lt
914# CHECK: csinv    xzr, x3, x4, ge
915# CHECK: csinv    x5, xzr, x6, hs
916# CHECK: csinv    x7, x8, xzr, lo
9170x1 0x10 0x93 0x5a
9180xbf 0x0 0x89 0x5a
9190xe9 0xc3 0x9e 0x5a
9200x81 0x43 0x9f 0x5a
9210xf3 0xb2 0x9d 0xda
9220x7f 0xa0 0x84 0xda
9230xe5 0x23 0x86 0xda
9240x7 0x31 0x9f 0xda
925
926# CHECK: csneg    w1, w0, w19, ne
927# CHECK: csneg    wzr, w5, w9, eq
928# CHECK: csneg    w9, wzr, w30, gt
929# CHECK: csneg    w1, w28, wzr, mi
930# CHECK: csneg    x19, x23, x29, lt
931# CHECK: csneg    xzr, x3, x4, ge
932# CHECK: csneg    x5, xzr, x6, hs
933# CHECK: csneg    x7, x8, xzr, lo
9340x1 0x14 0x93 0x5a
9350xbf 0x4 0x89 0x5a
9360xe9 0xc7 0x9e 0x5a
9370x81 0x47 0x9f 0x5a
9380xf3 0xb6 0x9d 0xda
9390x7f 0xa4 0x84 0xda
9400xe5 0x27 0x86 0xda
9410x7 0x35 0x9f 0xda
942
943# CHECK: csinc    w3, wzr, wzr, ne
944# CHECK: csinc    x9, xzr, xzr, mi
945# CHECK: csinv    w20, wzr, wzr, eq
946# CHECK: csinv    x30, xzr, xzr, lt
9470xe3 0x17 0x9f 0x1a
9480xe9 0x47 0x9f 0x9a
9490xf4 0x3 0x9f 0x5a
9500xfe 0xb3 0x9f 0xda
951
952# CHECK: csinc    w3, w5, w5, le
953# CHECK: csinc    wzr, w4, w4, gt
954# CHECK: csinc    w9, wzr, wzr, ge
955# CHECK: csinc    x3, x5, x5, le
956# CHECK: csinc    xzr, x4, x4, gt
957# CHECK: csinc    x9, xzr, xzr, ge
9580xa3 0xd4 0x85 0x1a
9590x9f 0xc4 0x84 0x1a
9600xe9 0xa7 0x9f 0x1a
9610xa3 0xd4 0x85 0x9a
9620x9f 0xc4 0x84 0x9a
9630xe9 0xa7 0x9f 0x9a
964
965# CHECK: csinv    w3, w5, w5, le
966# CHECK: csinv    wzr, w4, w4, gt
967# CHECK: csinv    w9, wzr, wzr, ge
968# CHECK: csinv    x3, x5, x5, le
969# CHECK: csinv    xzr, x4, x4, gt
970# CHECK: csinv    x9, xzr, xzr, ge
9710xa3 0xd0 0x85 0x5a
9720x9f 0xc0 0x84 0x5a
9730xe9 0xa3 0x9f 0x5a
9740xa3 0xd0 0x85 0xda
9750x9f 0xc0 0x84 0xda
9760xe9 0xa3 0x9f 0xda
977
978# CHECK: csneg     w3, w5, w5, le
979# CHECK: csneg     wzr, w4, w4, gt
980# CHECK: csneg     w9, wzr, wzr, ge
981# CHECK: csneg     x3, x5, x5, le
982# CHECK: csneg     xzr, x4, x4, gt
983# CHECK: csneg     x9, xzr, xzr, ge
9840xa3 0xd4 0x85 0x5a
9850x9f 0xc4 0x84 0x5a
9860xe9 0xa7 0x9f 0x5a
9870xa3 0xd4 0x85 0xda
9880x9f 0xc4 0x84 0xda
9890xe9 0xa7 0x9f 0xda
990
991#------------------------------------------------------------------------------
992# Data-processing (1 source)
993#------------------------------------------------------------------------------
994
995# CHECK: rbit	w0, w7
996# CHECK: rbit   x18, x3
997# CHECK: rev16	w17, w1
998# CHECK: rev16	x5, x2
999# CHECK: rev	w18, w0
1000# CHECK: rev32	x20, x1
10010xe0 0x00 0xc0 0x5a
10020x72 0x00 0xc0 0xda
10030x31 0x04 0xc0 0x5a
10040x45 0x04 0xc0 0xda
10050x12 0x08 0xc0 0x5a
10060x34 0x08 0xc0 0xda
1007
1008# CHECK: rev	x22, x2
1009# CHECK: clz	w24, w3
1010# CHECK: clz	x26, x4
1011# CHECK: cls	w3, w5
1012# CHECK: cls	x20, x5
10130x56 0x0c 0xc0 0xda
10140x78 0x10 0xc0 0x5a
10150x9a 0x10 0xc0 0xda
10160xa3 0x14 0xc0 0x5a
10170xb4 0x14 0xc0 0xda
1018
1019#------------------------------------------------------------------------------
1020# Data-processing (2 source)
1021#------------------------------------------------------------------------------
1022
1023# CHECK: crc32b  w5, w7, w20
1024# CHECK: crc32h  w28, wzr, w30
1025# CHECK: crc32w  w0, w1, w2
1026# CHECK: crc32x  w7, w9, x20
1027# CHECK: crc32cb w9, w5, w4
1028# CHECK: crc32ch w13, w17, w25
1029# CHECK: crc32cw wzr, w3, w5
1030# CHECK: crc32cx w18, w16, xzr
10310xe5 0x40 0xd4 0x1a
10320xfc 0x47 0xde 0x1a
10330x20 0x48 0xc2 0x1a
10340x27 0x4d 0xd4 0x9a
10350xa9 0x50 0xc4 0x1a
10360x2d 0x56 0xd9 0x1a
10370x7f 0x58 0xc5 0x1a
10380x12 0x5e 0xdf 0x9a
1039
1040# CHECK: udiv	w0, w7, w10
1041# CHECK: udiv	x9, x22, x4
1042# CHECK: sdiv	w12, w21, w0
1043# CHECK: sdiv	x13, x2, x1
1044# CHECK: lsl	w11, w12, w13
1045# CHECK: lsl	x14, x15, x16
1046# CHECK: lsr	w17, w18, w19
1047# CHECK: lsr	x20, x21, x22
1048# CHECK: asr	w23, w24, w25
1049# CHECK: asr	x26, x27, x28
1050# CHECK: ror	w0, w1, w2
1051# CHECK: ror    x3, x4, x5
10520xe0 0x08 0xca 0x1a
10530xc9 0x0a 0xc4 0x9a
10540xac 0x0e 0xc0 0x1a
10550x4d 0x0c 0xc1 0x9a
10560x8b 0x21 0xcd 0x1a
10570xee 0x21 0xd0 0x9a
10580x51 0x26 0xd3 0x1a
10590xb4 0x26 0xd6 0x9a
10600x17 0x2b 0xd9 0x1a
10610x7a 0x2b 0xdc 0x9a
10620x20 0x2c 0xc2 0x1a
10630x83 0x2c 0xc5 0x9a
1064
1065# CHECK: lsl	w6, w7, w8
1066# CHECK: lsl	x9, x10, x11
1067# CHECK: lsr	w12, w13, w14
1068# CHECK: lsr	x15, x16, x17
1069# CHECK: asr	w18, w19, w20
1070# CHECK: asr	x21, x22, x23
1071# CHECK: ror	w24, w25, w26
1072# CHECK: ror	x27, x28, x29
10730xe6 0x20 0xc8 0x1a
10740x49 0x21 0xcb 0x9a
10750xac 0x25 0xce 0x1a
10760x0f 0x26 0xd1 0x9a
10770x72 0x2a 0xd4 0x1a
10780xd5 0x2a 0xd7 0x9a
10790x38 0x2f 0xda 0x1a
10800x9b 0x2f 0xdd 0x9a
1081
1082#------------------------------------------------------------------------------
1083# Data-processing (3 sources)
1084#------------------------------------------------------------------------------
1085
1086# First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1087# and smulh have them).
1088
1089# CHECK: smulh    x30, x29, x28
1090# CHECK: smulh    xzr, x27, x26
1091# CHECK: umulh    x30, x29, x28
1092# CHECK: umulh    x23, x30, xzr
10930xbe 0x73 0x5c 0x9b
10940x7f 0x2f 0x5a 0x9b
10950xbe 0x3f 0xdc 0x9b
10960xd7 0x77 0xdf 0x9b
1097
1098# Now onto the boilerplate stuff
1099
1100# CHECK: madd     w1, w3, w7, w4
1101# CHECK: madd     wzr, w0, w9, w11
1102# CHECK: madd     w13, wzr, w4, w4
1103# CHECK: madd     w19, w30, wzr, w29
1104# CHECK: mul      w4, w5, w6
11050x61 0x10 0x7 0x1b
11060x1f 0x2c 0x9 0x1b
11070xed 0x13 0x4 0x1b
11080xd3 0x77 0x1f 0x1b
11090xa4 0x7c 0x6 0x1b
1110
1111# CHECK: madd     x1, x3, x7, x4
1112# CHECK: madd     xzr, x0, x9, x11
1113# CHECK: madd     x13, xzr, x4, x4
1114# CHECK: madd     x19, x30, xzr, x29
1115# CHECK: mul      x4, x5, x6
11160x61 0x10 0x7 0x9b
11170x1f 0x2c 0x9 0x9b
11180xed 0x13 0x4 0x9b
11190xd3 0x77 0x1f 0x9b
11200xa4 0x7c 0x6 0x9b
1121
1122# CHECK: msub     w1, w3, w7, w4
1123# CHECK: msub     wzr, w0, w9, w11
1124# CHECK: msub     w13, wzr, w4, w4
1125# CHECK: msub     w19, w30, wzr, w29
1126# CHECK: mneg     w4, w5, w6
11270x61 0x90 0x7 0x1b
11280x1f 0xac 0x9 0x1b
11290xed 0x93 0x4 0x1b
11300xd3 0xf7 0x1f 0x1b
11310xa4 0xfc 0x6 0x1b
1132
1133# CHECK: msub     x1, x3, x7, x4
1134# CHECK: msub     xzr, x0, x9, x11
1135# CHECK: msub     x13, xzr, x4, x4
1136# CHECK: msub     x19, x30, xzr, x29
1137# CHECK: mneg     x4, x5, x6
11380x61 0x90 0x7 0x9b
11390x1f 0xac 0x9 0x9b
11400xed 0x93 0x4 0x9b
11410xd3 0xf7 0x1f 0x9b
11420xa4 0xfc 0x6 0x9b
1143
1144# CHECK: smaddl   x3, w5, w2, x9
1145# CHECK: smaddl   xzr, w10, w11, x12
1146# CHECK: smaddl   x13, wzr, w14, x15
1147# CHECK: smaddl   x16, w17, wzr, x18
1148# CHECK: smull    x19, w20, w21
11490xa3 0x24 0x22 0x9b
11500x5f 0x31 0x2b 0x9b
11510xed 0x3f 0x2e 0x9b
11520x30 0x4a 0x3f 0x9b
11530x93 0x7e 0x35 0x9b
1154
1155# CHECK: smsubl   x3, w5, w2, x9
1156# CHECK: smsubl   xzr, w10, w11, x12
1157# CHECK: smsubl   x13, wzr, w14, x15
1158# CHECK: smsubl   x16, w17, wzr, x18
1159# CHECK: smnegl   x19, w20, w21
11600xa3 0xa4 0x22 0x9b
11610x5f 0xb1 0x2b 0x9b
11620xed 0xbf 0x2e 0x9b
11630x30 0xca 0x3f 0x9b
11640x93 0xfe 0x35 0x9b
1165
1166# CHECK: umaddl   x3, w5, w2, x9
1167# CHECK: umaddl   xzr, w10, w11, x12
1168# CHECK: umaddl   x13, wzr, w14, x15
1169# CHECK: umaddl   x16, w17, wzr, x18
1170# CHECK: umull    x19, w20, w21
11710xa3 0x24 0xa2 0x9b
11720x5f 0x31 0xab 0x9b
11730xed 0x3f 0xae 0x9b
11740x30 0x4a 0xbf 0x9b
11750x93 0x7e 0xb5 0x9b
1176
1177# CHECK: umsubl   x3, w5, w2, x9
1178# CHECK: umsubl   xzr, w10, w11, x12
1179# CHECK: umsubl   x13, wzr, w14, x15
1180# CHECK: umsubl   x16, w17, wzr, x18
1181# CHECK: umnegl   x19, w20, w21
11820xa3 0xa4 0xa2 0x9b
11830x5f 0xb1 0xab 0x9b
11840xed 0xbf 0xae 0x9b
11850x30 0xca 0xbf 0x9b
11860x93 0xfe 0xb5 0x9b
1187
1188# CHECK: smulh    x30, x29, x28
1189# CHECK: smulh    xzr, x27, x26
1190# CHECK: smulh    x25, xzr, x24
1191# CHECK: smulh    x23, x22, xzr
11920xbe 0x7f 0x5c 0x9b
11930x7f 0x7f 0x5a 0x9b
11940xf9 0x7f 0x58 0x9b
11950xd7 0x7e 0x5f 0x9b
1196
1197# CHECK: umulh    x30, x29, x28
1198# CHECK: umulh    xzr, x27, x26
1199# CHECK: umulh    x25, xzr, x24
1200# CHECK: umulh    x23, x22, xzr
12010xbe 0x7f 0xdc 0x9b
12020x7f 0x7f 0xda 0x9b
12030xf9 0x7f 0xd8 0x9b
12040xd7 0x7e 0xdf 0x9b
1205
1206# CHECK: mul      w3, w4, w5
1207# CHECK: mul      wzr, w6, w7
1208# CHECK: mul      w8, wzr, w9
1209# CHECK: mul      w10, w11, wzr
1210# CHECK: mul      x12, x13, x14
1211# CHECK: mul      xzr, x15, x16
1212# CHECK: mul      x17, xzr, x18
1213# CHECK: mul      x19, x20, xzr
12140x83 0x7c 0x5 0x1b
12150xdf 0x7c 0x7 0x1b
12160xe8 0x7f 0x9 0x1b
12170x6a 0x7d 0x1f 0x1b
12180xac 0x7d 0xe 0x9b
12190xff 0x7d 0x10 0x9b
12200xf1 0x7f 0x12 0x9b
12210x93 0x7e 0x1f 0x9b
1222
1223# CHECK: mneg     w21, w22, w23
1224# CHECK: mneg     wzr, w24, w25
1225# CHECK: mneg     w26, wzr, w27
1226# CHECK: mneg     w28, w29, wzr
12270xd5 0xfe 0x17 0x1b
12280x1f 0xff 0x19 0x1b
12290xfa 0xff 0x1b 0x1b
12300xbc 0xff 0x1f 0x1b
1231
1232# CHECK: smull    x11, w13, w17
1233# CHECK: umull    x11, w13, w17
1234# CHECK: smnegl   x11, w13, w17
1235# CHECK: umnegl   x11, w13, w17
12360xab 0x7d 0x31 0x9b
12370xab 0x7d 0xb1 0x9b
12380xab 0xfd 0x31 0x9b
12390xab 0xfd 0xb1 0x9b
1240
1241#------------------------------------------------------------------------------
1242# Exception generation
1243#------------------------------------------------------------------------------
1244
1245# CHECK: svc      #0
1246# CHECK: svc      #65535
12470x1 0x0 0x0 0xd4
12480xe1 0xff 0x1f 0xd4
1249
1250# CHECK: hvc      #1
1251# CHECK: smc      #12000
1252# CHECK: brk      #12
1253# CHECK: hlt      #123
12540x22 0x0 0x0 0xd4
12550x3 0xdc 0x5 0xd4
12560x80 0x1 0x20 0xd4
12570x60 0xf 0x40 0xd4
1258
1259# CHECK: dcps1    #42
1260# CHECK: dcps2    #9
1261# CHECK: dcps3    #1000
12620x41 0x5 0xa0 0xd4
12630x22 0x1 0xa0 0xd4
12640x3 0x7d 0xa0 0xd4
1265
1266# CHECK: dcps1
1267# CHECK: dcps2
1268# CHECK: dcps3
12690x1 0x0 0xa0 0xd4
12700x2 0x0 0xa0 0xd4
12710x3 0x0 0xa0 0xd4
1272
1273#------------------------------------------------------------------------------
1274# Extract (immediate)
1275#------------------------------------------------------------------------------
1276
1277# CHECK: extr     w3, w5, w7, #0
1278# CHECK: extr     w11, w13, w17, #31
12790xa3 0x0 0x87 0x13
12800xab 0x7d 0x91 0x13
1281
1282# CHECK: extr     x3, x5, x7, #15
1283# CHECK: extr     x11, x13, x17, #63
12840xa3 0x3c 0xc7 0x93
12850xab 0xfd 0xd1 0x93
1286
1287# CHECK: extr     x19, x23, x23, #24
1288# CHECK: extr     x29, xzr, xzr, #63
1289# CHECK: extr     w9, w13, w13, #31
12900xf3 0x62 0xd7 0x93
12910xfd 0xff 0xdf 0x93
12920xa9 0x7d 0x8d 0x13
1293
1294#------------------------------------------------------------------------------
1295# Floating-point compare
1296#------------------------------------------------------------------------------
1297
1298# CHECK: fcmp    s3, s5
1299# CHECK: fcmp    s31, #0.0
1300# CHECK: fcmp    s31, #0.0
13010x60 0x20 0x25 0x1e
13020xe8 0x23 0x20 0x1e
13030xe8 0x23 0x3f 0x1e
1304
1305# CHECK: fcmpe   s29, s30
1306# CHECK: fcmpe   s15, #0.0
1307# CHECK: fcmpe   s15, #0.0
13080xb0 0x23 0x3e 0x1e
13090xf8 0x21 0x20 0x1e
13100xf8 0x21 0x2f 0x1e
1311
1312# CHECK: fcmp    d4, d12
1313# CHECK: fcmp    d23, #0.0
1314# CHECK: fcmp    d23, #0.0
13150x80 0x20 0x6c 0x1e
13160xe8 0x22 0x60 0x1e
13170xe8 0x22 0x77 0x1e
1318
1319# CHECK: fcmpe   d26, d22
1320# CHECK: fcmpe   d29, #0.0
1321# CHECK: fcmpe   d29, #0.0
13220x50 0x23 0x76 0x1e
13230xb8 0x23 0x60 0x1e
13240xb8 0x23 0x6d 0x1e
1325
1326#------------------------------------------------------------------------------
1327# Floating-point conditional compare
1328#------------------------------------------------------------------------------
1329
1330# CHECK: fccmp s1, s31, #0, eq
1331# CHECK: fccmp s3, s0, #15, hs
1332# CHECK: fccmp s31, s15, #13, hs
13330x20 0x04 0x3f 0x1e
13340x6f 0x24 0x20 0x1e
13350xed 0x27 0x2f 0x1e
1336
1337# CHECK: fccmp d9, d31, #0, le
1338# CHECK: fccmp d3, d0, #15, gt
1339# CHECK: fccmp d31, d5, #7, ne
13400x20 0xd5 0x7f 0x1e
13410x6f 0xc4 0x60 0x1e
13420xe7 0x17 0x65 0x1e
1343
1344# CHECK: fccmpe s1, s31, #0, eq
1345# CHECK: fccmpe s3, s0, #15, hs
1346# CHECK: fccmpe s31, s15, #13, hs
13470x30 0x04 0x3f 0x1e
13480x7f 0x24 0x20 0x1e
13490xfd 0x27 0x2f 0x1e
1350
1351# CHECK: fccmpe d9, d31, #0, le
1352# CHECK: fccmpe d3, d0, #15, gt
1353# CHECK: fccmpe d31, d5, #7, ne
13540x30 0xd5 0x7f 0x1e
13550x7f 0xc4 0x60 0x1e
13560xf7 0x17 0x65 0x1e
1357
1358#-------------------------------------------------------------------------------
1359# Floating-point conditional compare
1360#-------------------------------------------------------------------------------
1361
1362# CHECK: fcsel s3, s20, s9, pl
1363# CHECK: fcsel d9, d10, d11, mi
13640x83 0x5e 0x29 0x1e
13650x49 0x4d 0x6b 0x1e
1366
1367#------------------------------------------------------------------------------
1368# Floating-point data-processing (1 source)
1369#------------------------------------------------------------------------------
1370
1371# CHECK: fmov     s0, s1
1372# CHECK: fabs     s2, s3
1373# CHECK: fneg     s4, s5
1374# CHECK: fsqrt    s6, s7
1375# CHECK: fcvt     d8, s9
1376# CHECK: fcvt     h10, s11
1377# CHECK: frintn   s12, s13
1378# CHECK: frintp   s14, s15
1379# CHECK: frintm   s16, s17
1380# CHECK: frintz   s18, s19
1381# CHECK: frinta   s20, s21
1382# CHECK: frintx   s22, s23
1383# CHECK: frinti   s24, s25
13840x20 0x40 0x20 0x1e
13850x62 0xc0 0x20 0x1e
13860xa4 0x40 0x21 0x1e
13870xe6 0xc0 0x21 0x1e
13880x28 0xc1 0x22 0x1e
13890x6a 0xc1 0x23 0x1e
13900xac 0x41 0x24 0x1e
13910xee 0xc1 0x24 0x1e
13920x30 0x42 0x25 0x1e
13930x72 0xc2 0x25 0x1e
13940xb4 0x42 0x26 0x1e
13950xf6 0x42 0x27 0x1e
13960x38 0xc3 0x27 0x1e
1397
1398# CHECK: fmov     d0, d1
1399# CHECK: fabs     d2, d3
1400# CHECK: fneg     d4, d5
1401# CHECK: fsqrt    d6, d7
1402# CHECK: fcvt     s8, d9
1403# CHECK: fcvt     h10, d11
1404# CHECK: frintn   d12, d13
1405# CHECK: frintp   d14, d15
1406# CHECK: frintm   d16, d17
1407# CHECK: frintz   d18, d19
1408# CHECK: frinta   d20, d21
1409# CHECK: frintx   d22, d23
1410# CHECK: frinti   d24, d25
14110x20 0x40 0x60 0x1e
14120x62 0xc0 0x60 0x1e
14130xa4 0x40 0x61 0x1e
14140xe6 0xc0 0x61 0x1e
14150x28 0x41 0x62 0x1e
14160x6a 0xc1 0x63 0x1e
14170xac 0x41 0x64 0x1e
14180xee 0xc1 0x64 0x1e
14190x30 0x42 0x65 0x1e
14200x72 0xc2 0x65 0x1e
14210xb4 0x42 0x66 0x1e
14220xf6 0x42 0x67 0x1e
14230x38 0xc3 0x67 0x1e
1424
1425# CHECK: fcvt     s26, h27
1426# CHECK: fcvt     d28, h29
14270x7a 0x43 0xe2 0x1e
14280xbc 0xc3 0xe2 0x1e
1429
1430#------------------------------------------------------------------------------
1431# Floating-point data-processing (2 sources)
1432#------------------------------------------------------------------------------
1433
1434# CHECK: fmul     s20, s19, s17
1435# CHECK: fdiv     s1, s2, s3
1436# CHECK: fadd     s4, s5, s6
1437# CHECK: fsub     s7, s8, s9
1438# CHECK: fmax     s10, s11, s12
1439# CHECK: fmin     s13, s14, s15
1440# CHECK: fmaxnm   s16, s17, s18
1441# CHECK: fminnm   s19, s20, s21
1442# CHECK: fnmul    s22, s23, s2
14430x74 0xa 0x31 0x1e
14440x41 0x18 0x23 0x1e
14450xa4 0x28 0x26 0x1e
14460x7 0x39 0x29 0x1e
14470x6a 0x49 0x2c 0x1e
14480xcd 0x59 0x2f 0x1e
14490x30 0x6a 0x32 0x1e
14500x93 0x7a 0x35 0x1e
14510xf6 0x8a 0x38 0x1e
1452
1453
1454# CHECK: fmul     d20, d19, d17
1455# CHECK: fdiv     d1, d2, d3
1456# CHECK: fadd     d4, d5, d6
1457# CHECK: fsub     d7, d8, d9
1458# CHECK: fmax     d10, d11, d12
1459# CHECK: fmin     d13, d14, d15
1460# CHECK: fmaxnm   d16, d17, d18
1461# CHECK: fminnm   d19, d20, d21
1462# CHECK: fnmul    d22, d23, d24
14630x74 0xa 0x71 0x1e
14640x41 0x18 0x63 0x1e
14650xa4 0x28 0x66 0x1e
14660x7 0x39 0x69 0x1e
14670x6a 0x49 0x6c 0x1e
14680xcd 0x59 0x6f 0x1e
14690x30 0x6a 0x72 0x1e
14700x93 0x7a 0x75 0x1e
14710xf6 0x8a 0x78 0x1e
1472
1473#------------------------------------------------------------------------------
1474# Floating-point data-processing (1 source)
1475#------------------------------------------------------------------------------
1476
1477# CHECK: fmadd s3, s5, s6, s31
1478# CHECK: fmadd d3, d13, d0, d23
1479# CHECK: fmsub s3, s5, s6, s31
1480# CHECK: fmsub d3, d13, d0, d23
1481# CHECK: fnmadd s3, s5, s6, s31
1482# CHECK: fnmadd d3, d13, d0, d23
1483# CHECK: fnmsub s3, s5, s6, s31
1484# CHECK: fnmsub d3, d13, d0, d23
14850xa3 0x7c 0x06 0x1f
14860xa3 0x5d 0x40 0x1f
14870xa3 0xfc 0x06 0x1f
14880xa3 0xdd 0x40 0x1f
14890xa3 0x7c 0x26 0x1f
14900xa3 0x5d 0x60 0x1f
14910xa3 0xfc 0x26 0x1f
14920xa3 0xdd 0x60 0x1f
1493
1494#------------------------------------------------------------------------------
1495# Floating-point <-> fixed-point conversion
1496#------------------------------------------------------------------------------
1497
1498# CHECK: fcvtzs  w3, s5, #1
1499# CHECK: fcvtzs  wzr, s20, #13
1500# CHECK: fcvtzs  w19, s0, #32
15010xa3 0xfc 0x18 0x1e
15020x9f 0xce 0x18 0x1e
15030x13 0x80 0x18 0x1e
1504
1505# CHECK: fcvtzs  x3, s5, #1
1506# CHECK: fcvtzs  x12, s30, #45
1507# CHECK: fcvtzs  x19, s0, #64
15080xa3 0xfc 0x18 0x9e
15090xcc 0x4f 0x18 0x9e
15100x13 0x00 0x18 0x9e
1511
1512# CHECK: fcvtzs  w3, d5, #1
1513# CHECK: fcvtzs  wzr, d20, #13
1514# CHECK: fcvtzs  w19, d0, #32
15150xa3 0xfc 0x58 0x1e
15160x9f 0xce 0x58 0x1e
15170x13 0x80 0x58 0x1e
1518
1519# CHECK: fcvtzs  x3, d5, #1
1520# CHECK: fcvtzs  x12, d30, #45
1521# CHECK: fcvtzs  x19, d0, #64
15220xa3 0xfc 0x58 0x9e
15230xcc 0x4f 0x58 0x9e
15240x13 0x00 0x58 0x9e
1525
1526# CHECK: fcvtzu  w3, s5, #1
1527# CHECK: fcvtzu  wzr, s20, #13
1528# CHECK: fcvtzu  w19, s0, #32
15290xa3 0xfc 0x19 0x1e
15300x9f 0xce 0x19 0x1e
15310x13 0x80 0x19 0x1e
1532
1533# CHECK: fcvtzu  x3, s5, #1
1534# CHECK: fcvtzu  x12, s30, #45
1535# CHECK: fcvtzu  x19, s0, #64
15360xa3 0xfc 0x19 0x9e
15370xcc 0x4f 0x19 0x9e
15380x13 0x00 0x19 0x9e
1539
1540# CHECK: fcvtzu  w3, d5, #1
1541# CHECK: fcvtzu  wzr, d20, #13
1542# CHECK: fcvtzu  w19, d0, #32
15430xa3 0xfc 0x59 0x1e
15440x9f 0xce 0x59 0x1e
15450x13 0x80 0x59 0x1e
1546
1547# CHECK: fcvtzu  x3, d5, #1
1548# CHECK: fcvtzu  x12, d30, #45
1549# CHECK: fcvtzu  x19, d0, #64
15500xa3 0xfc 0x59 0x9e
15510xcc 0x4f 0x59 0x9e
15520x13 0x00 0x59 0x9e
1553
1554# CHECK: scvtf   s23, w19, #1
1555# CHECK: scvtf   s31, wzr, #20
1556# CHECK: scvtf   s14, w0, #32
15570x77 0xfe 0x02 0x1e
15580xff 0xb3 0x02 0x1e
15590x0e 0x80 0x02 0x1e
1560
1561# CHECK: scvtf   s23, x19, #1
1562# CHECK: scvtf   s31, xzr, #20
1563# CHECK: scvtf   s14, x0, #64
15640x77 0xfe 0x02 0x9e
15650xff 0xb3 0x02 0x9e
15660x0e 0x00 0x02 0x9e
1567
1568# CHECK: scvtf   d23, w19, #1
1569# CHECK: scvtf   d31, wzr, #20
1570# CHECK: scvtf   d14, w0, #32
15710x77 0xfe 0x42 0x1e
15720xff 0xb3 0x42 0x1e
15730x0e 0x80 0x42 0x1e
1574
1575# CHECK: scvtf   d23, x19, #1
1576# CHECK: scvtf   d31, xzr, #20
1577# CHECK: scvtf   d14, x0, #64
15780x77 0xfe 0x42 0x9e
15790xff 0xb3 0x42 0x9e
15800x0e 0x00 0x42 0x9e
1581
1582# CHECK: ucvtf   s23, w19, #1
1583# CHECK: ucvtf   s31, wzr, #20
1584# CHECK: ucvtf   s14, w0, #32
15850x77 0xfe 0x03 0x1e
15860xff 0xb3 0x03 0x1e
15870x0e 0x80 0x03 0x1e
1588
1589# CHECK: ucvtf   s23, x19, #1
1590# CHECK: ucvtf   s31, xzr, #20
1591# CHECK: ucvtf   s14, x0, #64
15920x77 0xfe 0x03 0x9e
15930xff 0xb3 0x03 0x9e
15940x0e 0x00 0x03 0x9e
1595
1596# CHECK: ucvtf   d23, w19, #1
1597# CHECK: ucvtf   d31, wzr, #20
1598# CHECK: ucvtf   d14, w0, #32
15990x77 0xfe 0x43 0x1e
16000xff 0xb3 0x43 0x1e
16010x0e 0x80 0x43 0x1e
1602
1603# CHECK: ucvtf   d23, x19, #1
1604# CHECK: ucvtf   d31, xzr, #20
1605# CHECK: ucvtf   d14, x0, #64
16060x77 0xfe 0x43 0x9e
16070xff 0xb3 0x43 0x9e
16080x0e 0x00 0x43 0x9e
1609
1610#------------------------------------------------------------------------------
1611# Floating-point <-> integer conversion
1612#------------------------------------------------------------------------------
1613# CHECK: fcvtns   w3, s31
1614# CHECK: fcvtns   xzr, s12
1615# CHECK: fcvtnu   wzr, s12
1616# CHECK: fcvtnu   x0, s0
16170xe3 0x3 0x20 0x1e
16180x9f 0x1 0x20 0x9e
16190x9f 0x1 0x21 0x1e
16200x0 0x0 0x21 0x9e
1621
1622# CHECK: fcvtps   wzr, s9
1623# CHECK: fcvtps   x12, s20
1624# CHECK: fcvtpu   w30, s23
1625# CHECK: fcvtpu   x29, s3
16260x3f 0x1 0x28 0x1e
16270x8c 0x2 0x28 0x9e
16280xfe 0x2 0x29 0x1e
16290x7d 0x0 0x29 0x9e
1630
1631# CHECK: fcvtms   w2, s3
1632# CHECK: fcvtms   x4, s5
1633# CHECK: fcvtmu   w6, s7
1634# CHECK: fcvtmu   x8, s9
16350x62 0x0 0x30 0x1e
16360xa4 0x0 0x30 0x9e
16370xe6 0x0 0x31 0x1e
16380x28 0x1 0x31 0x9e
1639
1640# CHECK: fcvtzs   w10, s11
1641# CHECK: fcvtzs   x12, s13
1642# CHECK: fcvtzu   w14, s15
1643# CHECK: fcvtzu   x15, s16
16440x6a 0x1 0x38 0x1e
16450xac 0x1 0x38 0x9e
16460xee 0x1 0x39 0x1e
16470xf 0x2 0x39 0x9e
1648
1649# CHECK: scvtf    s17, w18
1650# CHECK: scvtf    s19, x20
1651# CHECK: ucvtf    s21, w22
1652# CHECK: scvtf    s23, x24
16530x51 0x2 0x22 0x1e
16540x93 0x2 0x22 0x9e
16550xd5 0x2 0x23 0x1e
16560x17 0x3 0x22 0x9e
1657
1658# CHECK: fcvtas   w25, s26
1659# CHECK: fcvtas   x27, s28
1660# CHECK: fcvtau   w29, s30
1661# CHECK: fcvtau   xzr, s0
16620x59 0x3 0x24 0x1e
16630x9b 0x3 0x24 0x9e
16640xdd 0x3 0x25 0x1e
16650x1f 0x0 0x25 0x9e
1666
1667# CHECK: fcvtns   w3, d31
1668# CHECK: fcvtns   xzr, d12
1669# CHECK: fcvtnu   wzr, d12
1670# CHECK: fcvtnu   x0, d0
16710xe3 0x3 0x60 0x1e
16720x9f 0x1 0x60 0x9e
16730x9f 0x1 0x61 0x1e
16740x0 0x0 0x61 0x9e
1675
1676# CHECK: fcvtps   wzr, d9
1677# CHECK: fcvtps   x12, d20
1678# CHECK: fcvtpu   w30, d23
1679# CHECK: fcvtpu   x29, d3
16800x3f 0x1 0x68 0x1e
16810x8c 0x2 0x68 0x9e
16820xfe 0x2 0x69 0x1e
16830x7d 0x0 0x69 0x9e
1684
1685# CHECK: fcvtms   w2, d3
1686# CHECK: fcvtms   x4, d5
1687# CHECK: fcvtmu   w6, d7
1688# CHECK: fcvtmu   x8, d9
16890x62 0x0 0x70 0x1e
16900xa4 0x0 0x70 0x9e
16910xe6 0x0 0x71 0x1e
16920x28 0x1 0x71 0x9e
1693
1694# CHECK: fcvtzs   w10, d11
1695# CHECK: fcvtzs   x12, d13
1696# CHECK: fcvtzu   w14, d15
1697# CHECK: fcvtzu   x15, d16
16980x6a 0x1 0x78 0x1e
16990xac 0x1 0x78 0x9e
17000xee 0x1 0x79 0x1e
17010xf 0x2 0x79 0x9e
1702
1703# CHECK: scvtf    d17, w18
1704# CHECK: scvtf    d19, x20
1705# CHECK: ucvtf    d21, w22
1706# CHECK: ucvtf    d23, x24
17070x51 0x2 0x62 0x1e
17080x93 0x2 0x62 0x9e
17090xd5 0x2 0x63 0x1e
17100x17 0x3 0x63 0x9e
1711
1712# CHECK: fcvtas   w25, d26
1713# CHECK: fcvtas   x27, d28
1714# CHECK: fcvtau   w29, d30
1715# CHECK: fcvtau   xzr, d0
17160x59 0x3 0x64 0x1e
17170x9b 0x3 0x64 0x9e
17180xdd 0x3 0x65 0x1e
17190x1f 0x0 0x65 0x9e
1720
1721# CHECK: fmov     w3, s9
1722# CHECK: fmov     s9, w3
17230x23 0x1 0x26 0x1e
17240x69 0x0 0x27 0x1e
1725
1726# CHECK: fmov     x20, d31
1727# CHECK: fmov     d1, x15
17280xf4 0x3 0x66 0x9e
17290xe1 0x1 0x67 0x9e
1730
1731# CHECK: fmov     x3, v12.d[1]
1732# CHECK: fmov     v1.d[1], x19
17330x83 0x1 0xae 0x9e
17340x61 0x2 0xaf 0x9e
1735
1736#------------------------------------------------------------------------------
1737# Floating-point immediate
1738#------------------------------------------------------------------------------
1739
1740# CHECK: fmov     s2, #0.12500000
1741# CHECK: fmov     s3, #1.00000000
1742# CHECK: fmov     d30, #16.00000000
17430x2 0x10 0x28 0x1e
17440x3 0x10 0x2e 0x1e
17450x1e 0x10 0x66 0x1e
1746
1747# CHECK: fmov     s4, #1.06250000
1748# CHECK: fmov     d10, #1.93750000
17490x4 0x30 0x2e 0x1e
17500xa 0xf0 0x6f 0x1e
1751
1752# CHECK: fmov     s12, #-1.00000000
17530xc 0x10 0x3e 0x1e
1754
1755# CHECK: fmov     d16, #8.50000000
17560x10 0x30 0x64 0x1e
1757
1758#------------------------------------------------------------------------------
1759# Load-register (literal)
1760#------------------------------------------------------------------------------
1761
1762# CHECK: ldr       w3, #0
1763# CHECK: ldr       x29, #4
1764# CHECK: ldrsw     xzr, #-4
17650x03 0x00 0x00 0x18
17660x3d 0x00 0x00 0x58
17670xff 0xff 0xff 0x98
1768
1769# CHECK: ldr       s0, #8
1770# CHECK: ldr       d0, #1048572
1771# CHECK: ldr       q0, #-1048576
17720x40 0x00 0x00 0x1c
17730xe0 0xff 0x7f 0x5c
17740x00 0x00 0x80 0x9c
1775
1776# CHECK: prfm      pldl1strm, #0
1777# CHECK: prfm      #22, #0
17780x01 0x00 0x00 0xd8
17790x16 0x00 0x00 0xd8
1780
1781#------------------------------------------------------------------------------
1782# Load/store exclusive
1783#------------------------------------------------------------------------------
1784
1785#CHECK: stxrb      w18, w8, [sp]
1786#CHECK: stxrh      w24, w15, [x16]
1787#CHECK: stxr       w5, w6, [x17]
1788#CHECK: stxr       w1, x10, [x21]
1789#CHECK: stxr       w1, x10, [x21]
17900xe8 0x7f 0x12 0x08
17910x0f 0x7e 0x18 0x48
17920x26 0x7e 0x05 0x88
17930xaa 0x7e 0x01 0xc8
17940xaa 0x7a 0x01 0xc8
1795
1796#CHECK: ldxrb      w30, [x0]
1797#CHECK: ldxrh      w17, [x4]
1798#CHECK: ldxr       w22, [sp]
1799#CHECK: ldxr       x11, [x29]
1800#CHECK: ldxr       x11, [x29]
1801#CHECK: ldxr       x11, [x29]
18020x1e 0x7c 0x5f 0x08
18030x91 0x7c 0x5f 0x48
18040xf6 0x7f 0x5f 0x88
18050xab 0x7f 0x5f 0xc8
18060xab 0x6f 0x5f 0xc8
18070xab 0x7f 0x5e 0xc8
1808
1809#CHECK: stxp       w12, w11, w10, [sp]
1810#CHECK: stxp       wzr, x27, x9, [x12]
18110xeb 0x2b 0x2c 0x88
18120x9b 0x25 0x3f 0xc8
1813
1814#CHECK: ldxp       w0, wzr, [sp]
1815#CHECK: ldxp       x17, x0, [x18]
1816#CHECK: ldxp       x17, x0, [x18]
18170xe0 0x7f 0x7f 0x88
18180x51 0x02 0x7f 0xc8
18190x51 0x02 0x7e 0xc8
1820
1821#CHECK: stlxrb     w12, w22, [x0]
1822#CHECK: stlxrh     w10, w1, [x1]
1823#CHECK: stlxr      w9, w2, [x2]
1824#CHECK: stlxr      w9, x3, [sp]
1825
18260x16 0xfc 0x0c 0x08
18270x21 0xfc 0x0a 0x48
18280x42 0xfc 0x09 0x88
18290xe3 0xff 0x09 0xc8
1830
1831#CHECK: ldaxrb     w8, [x4]
1832#CHECK: ldaxrh     w7, [x5]
1833#CHECK: ldaxr      w6, [sp]
1834#CHECK: ldaxr      x5, [x6]
1835#CHECK: ldaxr      x5, [x6]
1836#CHECK: ldaxr      x5, [x6]
18370x88 0xfc 0x5f 0x08
18380xa7 0xfc 0x5f 0x48
18390xe6 0xff 0x5f 0x88
18400xc5 0xfc 0x5f 0xc8
18410xc5 0xec 0x5f 0xc8
18420xc5 0xfc 0x5e 0xc8
1843
1844#CHECK: stlxp      w4, w5, w6, [sp]
1845#CHECK: stlxp      wzr, x6, x7, [x1]
18460xe5 0x9b 0x24 0x88
18470x26 0x9c 0x3f 0xc8
1848
1849#CHECK: ldaxp      w5, w18, [sp]
1850#CHECK: ldaxp      x6, x19, [x22]
1851#CHECK: ldaxp      x6, x19, [x22]
18520xe5 0xcb 0x7f 0x88
18530xc6 0xce 0x7f 0xc8
18540xc6 0xce 0x7e 0xc8
1855
1856#CHECK: stlrb      w24, [sp]
1857#CHECK: stlrh      w25, [x30]
1858#CHECK: stlr       w26, [x29]
1859#CHECK: stlr       x27, [x28]
1860#CHECK: stlr       x27, [x28]
1861#CHECK: stlr       x27, [x28]
18620xf8 0xff 0x9f 0x08
18630xd9 0xff 0x9f 0x48
18640xba 0xff 0x9f 0x88
18650x9b 0xff 0x9f 0xc8
18660x9b 0xef 0x9f 0xc8
18670x9b 0xff 0x9e 0xc8
1868
1869#CHECK: ldarb      w23, [sp]
1870#CHECK: ldarh      w22, [x30]
1871#CHECK: ldar       wzr, [x29]
1872#CHECK: ldar       x21, [x28]
1873#CHECK: ldar       x21, [x28]
1874#CHECK: ldar       x21, [x28]
18750xf7 0xff 0xdf 0x08
18760xd6 0xff 0xdf 0x48
18770xbf 0xff 0xdf 0x88
18780x95 0xff 0xdf 0xc8
18790x95 0xef 0xdf 0xc8
18800x95 0xff 0xde 0xc8
1881
1882#------------------------------------------------------------------------------
1883# Load/store (unscaled  immediate)
1884#------------------------------------------------------------------------------
1885
1886# CHECK: sturb    w9, [sp]
1887# CHECK: sturh    wzr, [x12, #255]
1888# CHECK: stur     w16, [x0, #-256]
1889# CHECK: stur     x28, [x14, #1]
18900xe9 0x3 0x0 0x38
18910x9f 0xf1 0xf 0x78
18920x10 0x0 0x10 0xb8
18930xdc 0x11 0x0 0xf8
1894
1895# CHECK: ldurb    w1, [x20, #255]
1896# CHECK: ldurh    w20, [x1, #255]
1897# CHECK: ldur     w12, [sp, #255]
1898# CHECK: ldur     xzr, [x12, #255]
18990x81 0xf2 0x4f 0x38
19000x34 0xf0 0x4f 0x78
19010xec 0xf3 0x4f 0xb8
19020x9f 0xf1 0x4f 0xf8
1903
1904# CHECK: ldursb   x9, [x7, #-256]
1905# CHECK: ldursh   x17, [x19, #-256]
1906# CHECK: ldursw   x20, [x15, #-256]
1907# CHECK: prfum    pldl2keep, [sp, #-256]
1908# CHECK: ldursb   w19, [x1, #-256]
1909# CHECK: ldursh   w15, [x21, #-256]
19100xe9 0x0 0x90 0x38
19110x71 0x2 0x90 0x78
19120xf4 0x1 0x90 0xb8
19130xe2 0x3 0x90 0xf8
19140x33 0x0 0xd0 0x38
19150xaf 0x2 0xd0 0x78
1916
1917# CHECK: stur     b0, [sp, #1]
1918# CHECK: stur     h12, [x12, #-1]
1919# CHECK: stur     s15, [x0, #255]
1920# CHECK: stur     d31, [x5, #25]
1921# CHECK: stur     q9, [x5]
19220xe0 0x13 0x0 0x3c
19230x8c 0xf1 0x1f 0x7c
19240xf 0xf0 0xf 0xbc
19250xbf 0x90 0x1 0xfc
19260xa9 0x0 0x80 0x3c
1927
1928# CHECK: ldur     b3, [sp]
1929# CHECK: ldur     h5, [x4, #-256]
1930# CHECK: ldur     s7, [x12, #-1]
1931# CHECK: ldur     d11, [x19, #4]
1932# CHECK: ldur     q13, [x1, #2]
19330xe3 0x3 0x40 0x3c
19340x85 0x0 0x50 0x7c
19350x87 0xf1 0x5f 0xbc
19360x6b 0x42 0x40 0xfc
19370x2d 0x20 0xc0 0x3c
1938
1939#------------------------------------------------------------------------------
1940# Load/store (immediate post-indexed)
1941#------------------------------------------------------------------------------
1942
1943# E.g. "str xzr, [sp], #4" is *not* unpredictable
1944# CHECK-NOT: warning: potentially undefined instruction encoding
19450xff 0x47 0x40 0xb8
1946
1947# CHECK: strb     w9, [x2], #255
1948# CHECK: strb     w10, [x3], #1
1949# CHECK: strb     w10, [x3], #-256
1950# CHECK: strh     w9, [x2], #255
1951# CHECK: strh     w9, [x2], #1
1952# CHECK: strh     w10, [x3], #-256
19530x49 0xf4 0xf 0x38
19540x6a 0x14 0x0 0x38
19550x6a 0x4 0x10 0x38
19560x49 0xf4 0xf 0x78
19570x49 0x14 0x0 0x78
19580x6a 0x4 0x10 0x78
1959
1960# CHECK: str      w19, [sp], #255
1961# CHECK: str      w20, [x30], #1
1962# CHECK: str      w21, [x12], #-256
1963# CHECK: str      xzr, [x9], #255
1964# CHECK: str      x2, [x3], #1
1965# CHECK: str      x19, [x12], #-256
19660xf3 0xf7 0xf 0xb8
19670xd4 0x17 0x0 0xb8
19680x95 0x5 0x10 0xb8
19690x3f 0xf5 0xf 0xf8
19700x62 0x14 0x0 0xf8
19710x93 0x5 0x10 0xf8
1972
1973# CHECK: ldrb     w9, [x2], #255
1974# CHECK: ldrb     w10, [x3], #1
1975# CHECK: ldrb     w10, [x3], #-256
1976# CHECK: ldrh     w9, [x2], #255
1977# CHECK: ldrh     w9, [x2], #1
1978# CHECK: ldrh     w10, [x3], #-256
19790x49 0xf4 0x4f 0x38
19800x6a 0x14 0x40 0x38
19810x6a 0x4 0x50 0x38
19820x49 0xf4 0x4f 0x78
19830x49 0x14 0x40 0x78
19840x6a 0x4 0x50 0x78
1985
1986# CHECK: ldr      w19, [sp], #255
1987# CHECK: ldr      w20, [x30], #1
1988# CHECK: ldr      w21, [x12], #-256
1989# CHECK: ldr      xzr, [x9], #255
1990# CHECK: ldr      x2, [x3], #1
1991# CHECK: ldr      x19, [x12], #-256
19920xf3 0xf7 0x4f 0xb8
19930xd4 0x17 0x40 0xb8
19940x95 0x5 0x50 0xb8
19950x3f 0xf5 0x4f 0xf8
19960x62 0x14 0x40 0xf8
19970x93 0x5 0x50 0xf8
1998
1999# CHECK: ldrsb    xzr, [x9], #255
2000# CHECK: ldrsb    x2, [x3], #1
2001# CHECK: ldrsb    x19, [x12], #-256
2002# CHECK: ldrsh    xzr, [x9], #255
2003# CHECK: ldrsh    x2, [x3], #1
2004# CHECK: ldrsh    x19, [x12], #-256
2005# CHECK: ldrsw    xzr, [x9], #255
2006# CHECK: ldrsw    x2, [x3], #1
2007# CHECK: ldrsw    x19, [x12], #-256
20080x3f 0xf5 0x8f 0x38
20090x62 0x14 0x80 0x38
20100x93 0x5 0x90 0x38
20110x3f 0xf5 0x8f 0x78
20120x62 0x14 0x80 0x78
20130x93 0x5 0x90 0x78
20140x3f 0xf5 0x8f 0xb8
20150x62 0x14 0x80 0xb8
20160x93 0x5 0x90 0xb8
2017
2018# CHECK: ldrsb    wzr, [x9], #255
2019# CHECK: ldrsb    w2, [x3], #1
2020# CHECK: ldrsb    w19, [x12], #-256
2021# CHECK: ldrsh    wzr, [x9], #255
2022# CHECK: ldrsh    w2, [x3], #1
2023# CHECK: ldrsh    w19, [x12], #-256
20240x3f 0xf5 0xcf 0x38
20250x62 0x14 0xc0 0x38
20260x93 0x5 0xd0 0x38
20270x3f 0xf5 0xcf 0x78
20280x62 0x14 0xc0 0x78
20290x93 0x5 0xd0 0x78
2030
2031# CHECK: str      b0, [x0], #255
2032# CHECK: str      b3, [x3], #1
2033# CHECK: str      b5, [sp], #-256
2034# CHECK: str      h10, [x10], #255
2035# CHECK: str      h13, [x23], #1
2036# CHECK: str      h15, [sp], #-256
2037# CHECK: str      s20, [x20], #255
2038# CHECK: str      s23, [x23], #1
2039# CHECK: str      s25, [x0], #-256
2040# CHECK: str      d20, [x20], #255
2041# CHECK: str      d23, [x23], #1
2042# CHECK: str      d25, [x0], #-256
20430x0 0xf4 0xf 0x3c
20440x63 0x14 0x0 0x3c
20450xe5 0x7 0x10 0x3c
20460x4a 0xf5 0xf 0x7c
20470xed 0x16 0x0 0x7c
20480xef 0x7 0x10 0x7c
20490x94 0xf6 0xf 0xbc
20500xf7 0x16 0x0 0xbc
20510x19 0x4 0x10 0xbc
20520x94 0xf6 0xf 0xfc
20530xf7 0x16 0x0 0xfc
20540x19 0x4 0x10 0xfc
2055
2056# CHECK: ldr      b0, [x0], #255
2057# CHECK: ldr      b3, [x3], #1
2058# CHECK: ldr      b5, [sp], #-256
2059# CHECK: ldr      h10, [x10], #255
2060# CHECK: ldr      h13, [x23], #1
2061# CHECK: ldr      h15, [sp], #-256
2062# CHECK: ldr      s20, [x20], #255
2063# CHECK: ldr      s23, [x23], #1
2064# CHECK: ldr      s25, [x0], #-256
2065# CHECK: ldr      d20, [x20], #255
2066# CHECK: ldr      d23, [x23], #1
2067# CHECK: ldr      d25, [x0], #-256
20680x0 0xf4 0x4f 0x3c
20690x63 0x14 0x40 0x3c
20700xe5 0x7 0x50 0x3c
20710x4a 0xf5 0x4f 0x7c
20720xed 0x16 0x40 0x7c
20730xef 0x7 0x50 0x7c
20740x94 0xf6 0x4f 0xbc
20750xf7 0x16 0x40 0xbc
20760x19 0x4 0x50 0xbc
20770x94 0xf6 0x4f 0xfc
20780xf7 0x16 0x40 0xfc
20790x19 0x4 0x50 0xfc
20800x34 0xf4 0xcf 0x3c
2081
2082# CHECK: ldr      q20, [x1], #255
2083# CHECK: ldr      q23, [x9], #1
2084# CHECK: ldr      q25, [x20], #-256
2085# CHECK: str      q10, [x1], #255
2086# CHECK: str      q22, [sp], #1
2087# CHECK: str      q21, [x20], #-256
20880x37 0x15 0xc0 0x3c
20890x99 0x6 0xd0 0x3c
20900x2a 0xf4 0x8f 0x3c
20910xf6 0x17 0x80 0x3c
20920x95 0x6 0x90 0x3c
2093
2094#-------------------------------------------------------------------------------
2095# Load-store register (immediate pre-indexed)
2096#-------------------------------------------------------------------------------
2097
2098# E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2099# CHECK-NOT: warning: potentially undefined instruction encoding
21000xff 0xf 0x40 0xf8
2101
2102# CHECK: ldr      x3, [x4, #0]!
21030x83 0xc 0x40 0xf8
2104
2105# CHECK: strb     w9, [x2, #255]!
2106# CHECK: strb     w10, [x3, #1]!
2107# CHECK: strb     w10, [x3, #-256]!
2108# CHECK: strh     w9, [x2, #255]!
2109# CHECK: strh     w9, [x2, #1]!
2110# CHECK: strh     w10, [x3, #-256]!
21110x49 0xfc 0xf 0x38
21120x6a 0x1c 0x0 0x38
21130x6a 0xc 0x10 0x38
21140x49 0xfc 0xf 0x78
21150x49 0x1c 0x0 0x78
21160x6a 0xc 0x10 0x78
2117
2118# CHECK: str      w19, [sp, #255]!
2119# CHECK: str      w20, [x30, #1]!
2120# CHECK: str      w21, [x12, #-256]!
2121# CHECK: str      xzr, [x9, #255]!
2122# CHECK: str      x2, [x3, #1]!
2123# CHECK: str      x19, [x12, #-256]!
21240xf3 0xff 0xf 0xb8
21250xd4 0x1f 0x0 0xb8
21260x95 0xd 0x10 0xb8
21270x3f 0xfd 0xf 0xf8
21280x62 0x1c 0x0 0xf8
21290x93 0xd 0x10 0xf8
2130
2131# CHECK: ldrb     w9, [x2, #255]!
2132# CHECK: ldrb     w10, [x3, #1]!
2133# CHECK: ldrb     w10, [x3, #-256]!
2134# CHECK: ldrh     w9, [x2, #255]!
2135# CHECK: ldrh     w9, [x2, #1]!
2136# CHECK: ldrh     w10, [x3, #-256]!
21370x49 0xfc 0x4f 0x38
21380x6a 0x1c 0x40 0x38
21390x6a 0xc 0x50 0x38
21400x49 0xfc 0x4f 0x78
21410x49 0x1c 0x40 0x78
21420x6a 0xc 0x50 0x78
2143
2144# CHECK: ldr      w19, [sp, #255]!
2145# CHECK: ldr      w20, [x30, #1]!
2146# CHECK: ldr      w21, [x12, #-256]!
2147# CHECK: ldr      xzr, [x9, #255]!
2148# CHECK: ldr      x2, [x3, #1]!
2149# CHECK: ldr      x19, [x12, #-256]!
21500xf3 0xff 0x4f 0xb8
21510xd4 0x1f 0x40 0xb8
21520x95 0xd 0x50 0xb8
21530x3f 0xfd 0x4f 0xf8
21540x62 0x1c 0x40 0xf8
21550x93 0xd 0x50 0xf8
2156
2157# CHECK: ldrsb    xzr, [x9, #255]!
2158# CHECK: ldrsb    x2, [x3, #1]!
2159# CHECK: ldrsb    x19, [x12, #-256]!
2160# CHECK: ldrsh    xzr, [x9, #255]!
2161# CHECK: ldrsh    x2, [x3, #1]!
2162# CHECK: ldrsh    x19, [x12, #-256]!
2163# CHECK: ldrsw    xzr, [x9, #255]!
2164# CHECK: ldrsw    x2, [x3, #1]!
2165# CHECK: ldrsw    x19, [x12, #-256]!
21660x3f 0xfd 0x8f 0x38
21670x62 0x1c 0x80 0x38
21680x93 0xd 0x90 0x38
21690x3f 0xfd 0x8f 0x78
21700x62 0x1c 0x80 0x78
21710x93 0xd 0x90 0x78
21720x3f 0xfd 0x8f 0xb8
21730x62 0x1c 0x80 0xb8
21740x93 0xd 0x90 0xb8
2175
2176# CHECK: ldrsb    wzr, [x9, #255]!
2177# CHECK: ldrsb    w2, [x3, #1]!
2178# CHECK: ldrsb    w19, [x12, #-256]!
2179# CHECK: ldrsh    wzr, [x9, #255]!
2180# CHECK: ldrsh    w2, [x3, #1]!
2181# CHECK: ldrsh    w19, [x12, #-256]!
21820x3f 0xfd 0xcf 0x38
21830x62 0x1c 0xc0 0x38
21840x93 0xd 0xd0 0x38
21850x3f 0xfd 0xcf 0x78
21860x62 0x1c 0xc0 0x78
21870x93 0xd 0xd0 0x78
2188
2189# CHECK: str      b0, [x0, #255]!
2190# CHECK: str      b3, [x3, #1]!
2191# CHECK: str      b5, [sp, #-256]!
2192# CHECK: str      h10, [x10, #255]!
2193# CHECK: str      h13, [x23, #1]!
2194# CHECK: str      h15, [sp, #-256]!
2195# CHECK: str      s20, [x20, #255]!
2196# CHECK: str      s23, [x23, #1]!
2197# CHECK: str      s25, [x0, #-256]!
2198# CHECK: str      d20, [x20, #255]!
2199# CHECK: str      d23, [x23, #1]!
2200# CHECK: str      d25, [x0, #-256]!
22010x0 0xfc 0xf 0x3c
22020x63 0x1c 0x0 0x3c
22030xe5 0xf 0x10 0x3c
22040x4a 0xfd 0xf 0x7c
22050xed 0x1e 0x0 0x7c
22060xef 0xf 0x10 0x7c
22070x94 0xfe 0xf 0xbc
22080xf7 0x1e 0x0 0xbc
22090x19 0xc 0x10 0xbc
22100x94 0xfe 0xf 0xfc
22110xf7 0x1e 0x0 0xfc
22120x19 0xc 0x10 0xfc
2213
2214# CHECK: ldr      b0, [x0, #255]!
2215# CHECK: ldr      b3, [x3, #1]!
2216# CHECK: ldr      b5, [sp, #-256]!
2217# CHECK: ldr      h10, [x10, #255]!
2218# CHECK: ldr      h13, [x23, #1]!
2219# CHECK: ldr      h15, [sp, #-256]!
2220# CHECK: ldr      s20, [x20, #255]!
2221# CHECK: ldr      s23, [x23, #1]!
2222# CHECK: ldr      s25, [x0, #-256]!
2223# CHECK: ldr      d20, [x20, #255]!
2224# CHECK: ldr      d23, [x23, #1]!
2225# CHECK: ldr      d25, [x0, #-256]!
22260x0 0xfc 0x4f 0x3c
22270x63 0x1c 0x40 0x3c
22280xe5 0xf 0x50 0x3c
22290x4a 0xfd 0x4f 0x7c
22300xed 0x1e 0x40 0x7c
22310xef 0xf 0x50 0x7c
22320x94 0xfe 0x4f 0xbc
22330xf7 0x1e 0x40 0xbc
22340x19 0xc 0x50 0xbc
22350x94 0xfe 0x4f 0xfc
22360xf7 0x1e 0x40 0xfc
22370x19 0xc 0x50 0xfc
2238
2239# CHECK: ldr      q20, [x1, #255]!
2240# CHECK: ldr      q23, [x9, #1]!
2241# CHECK: ldr      q25, [x20, #-256]!
2242# CHECK: str      q10, [x1, #255]!
2243# CHECK: str      q22, [sp, #1]!
2244# CHECK: str      q21, [x20, #-256]!
22450x34 0xfc 0xcf 0x3c
22460x37 0x1d 0xc0 0x3c
22470x99 0xe 0xd0 0x3c
22480x2a 0xfc 0x8f 0x3c
22490xf6 0x1f 0x80 0x3c
22500x95 0xe 0x90 0x3c
2251
2252#------------------------------------------------------------------------------
2253# Load/store (unprivileged)
2254#------------------------------------------------------------------------------
2255
2256# CHECK: sttrb    w9, [sp]
2257# CHECK: sttrh    wzr, [x12, #255]
2258# CHECK: sttr     w16, [x0, #-256]
2259# CHECK: sttr     x28, [x14, #1]
22600xe9 0x0b 0x0 0x38
22610x9f 0xf9 0xf 0x78
22620x10 0x08 0x10 0xb8
22630xdc 0x19 0x0 0xf8
2264
2265# CHECK: ldtrb    w1, [x20, #255]
2266# CHECK: ldtrh    w20, [x1, #255]
2267# CHECK: ldtr     w12, [sp, #255]
2268# CHECK: ldtr     xzr, [x12, #255]
22690x81 0xfa 0x4f 0x38
22700x34 0xf8 0x4f 0x78
22710xec 0xfb 0x4f 0xb8
22720x9f 0xf9 0x4f 0xf8
2273
2274# CHECK: ldtrsb   x9, [x7, #-256]
2275# CHECK: ldtrsh   x17, [x19, #-256]
2276# CHECK: ldtrsw   x20, [x15, #-256]
2277# CHECK: ldtrsb   w19, [x1, #-256]
2278# CHECK: ldtrsh   w15, [x21, #-256]
22790xe9 0x08 0x90 0x38
22800x71 0x0a 0x90 0x78
22810xf4 0x09 0x90 0xb8
22820x33 0x08 0xd0 0x38
22830xaf 0x0a 0xd0 0x78
2284
2285#------------------------------------------------------------------------------
2286# Load/store (unsigned  immediate)
2287#------------------------------------------------------------------------------
2288
2289# CHECK: ldr      x0, [x0]
2290# CHECK: ldr      x4, [x29]
2291# CHECK: ldr      x30, [x12, #32760]
2292# CHECK: ldr      x20, [sp, #8]
22930x0 0x0 0x40 0xf9
22940xa4 0x3 0x40 0xf9
22950x9e 0xfd 0x7f 0xf9
22960xf4 0x7 0x40 0xf9
2297
2298# CHECK: ldr      xzr, [sp]
22990xff 0x3 0x40 0xf9
2300
2301# CHECK: ldr      w2, [sp]
2302# CHECK: ldr      w17, [sp, #16380]
2303# CHECK: ldr      w13, [x2, #4]
23040xe2 0x3 0x40 0xb9
23050xf1 0xff 0x7f 0xb9
23060x4d 0x4 0x40 0xb9
2307
2308# CHECK: ldrsw    x2, [x5, #4]
2309# CHECK: ldrsw    x23, [sp, #16380]
23100xa2 0x4 0x80 0xb9
23110xf7 0xff 0xbf 0xb9
2312
2313# CHECK: ldrh     w2, [x4]
2314# CHECK: ldrsh    w23, [x6, #8190]
2315# CHECK: ldrsh    wzr, [sp, #2]
2316# CHECK: ldrsh    x29, [x2, #2]
23170x82 0x0 0x40 0x79
23180xd7 0xfc 0xff 0x79
23190xff 0x7 0xc0 0x79
23200x5d 0x4 0x80 0x79
2321
2322# CHECK: ldrb     w26, [x3, #121]
2323# CHECK: ldrb     w12, [x2]
2324# CHECK: ldrsb    w27, [sp, #4095]
2325# CHECK: ldrsb    xzr, [x15]
23260x7a 0xe4 0x41 0x39
23270x4c 0x0 0x40 0x39
23280xfb 0xff 0xff 0x39
23290xff 0x1 0x80 0x39
2330
2331# CHECK: str      x30, [sp]
2332# CHECK: str      w20, [x4, #16380]
2333# CHECK: strh     w20, [x10, #14]
2334# CHECK: strh     w17, [sp, #8190]
2335# CHECK: strb     w23, [x3, #4095]
2336# CHECK: strb     wzr, [x2]
23370xfe 0x3 0x0 0xf9
23380x94 0xfc 0x3f 0xb9
23390x54 0x1d 0x0 0x79
23400xf1 0xff 0x3f 0x79
23410x77 0xfc 0x3f 0x39
23420x5f 0x0 0x0 0x39
2343
2344# CHECK: ldr      b31, [sp, #4095]
2345# CHECK: ldr      h20, [x2, #8190]
2346# CHECK: ldr      s10, [x19, #16380]
2347# CHECK: ldr      d3, [x10, #32760]
2348# CHECK: str      q12, [sp, #65520]
23490xff 0xff 0x7f 0x3d
23500x54 0xfc 0x7f 0x7d
23510x6a 0xfe 0x7f 0xbd
23520x43 0xfd 0x7f 0xfd
23530xec 0xff 0xbf 0x3d
2354
2355# CHECK: prfm    pldl1keep, [sp, #8]
2356# CHECK: prfm    pldl1strm, [x3, #0]
2357# CHECK: prfm    pldl2keep, [x5, #16]
2358# CHECK: prfm    pldl2strm, [x2, #0]
2359# CHECK: prfm    pldl3keep, [x5, #0]
2360# CHECK: prfm    pldl3strm, [x6, #0]
2361# CHECK: prfm    plil1keep, [sp, #8]
2362# CHECK: prfm    plil1strm, [x3, #0]
2363# CHECK: prfm    plil2keep, [x5, #16]
2364# CHECK: prfm    plil2strm, [x2, #0]
2365# CHECK: prfm    plil3keep, [x5, #0]
2366# CHECK: prfm    plil3strm, [x6, #0]
2367# CHECK: prfm    pstl1keep, [sp, #8]
2368# CHECK: prfm    pstl1strm, [x3, #0]
2369# CHECK: prfm    pstl2keep, [x5, #16]
2370# CHECK: prfm    pstl2strm, [x2, #0]
2371# CHECK: prfm    pstl3keep, [x5, #0]
2372# CHECK: prfm    pstl3strm, [x6, #0]
23730xe0 0x07 0x80 0xf9
23740x61 0x00 0x80 0xf9
23750xa2 0x08 0x80 0xf9
23760x43 0x00 0x80 0xf9
23770xa4 0x00 0x80 0xf9
23780xc5 0x00 0x80 0xf9
23790xe8 0x07 0x80 0xf9
23800x69 0x00 0x80 0xf9
23810xaa 0x08 0x80 0xf9
23820x4b 0x00 0x80 0xf9
23830xac 0x00 0x80 0xf9
23840xcd 0x00 0x80 0xf9
23850xf0 0x07 0x80 0xf9
23860x71 0x00 0x80 0xf9
23870xb2 0x08 0x80 0xf9
23880x53 0x00 0x80 0xf9
23890xb4 0x00 0x80 0xf9
23900xd5 0x00 0x80 0xf9
2391
2392
2393#------------------------------------------------------------------------------
2394# Load/store (register offset)
2395#------------------------------------------------------------------------------
2396
2397# CHECK: ldrb     w3, [sp, x5]
2398# CHECK: ldrb     w9, [x27, x6]
2399# CHECK: ldrsb    w10, [x30, x7]
2400# CHECK: ldrb     w11, [x29, x3, sxtx]
2401# CHECK: strb     w12, [x28, xzr, sxtx]
2402# CHECK: ldrb     w14, [x26, w6, uxtw]
2403# CHECK: ldrsb    w15, [x25, w7, uxtw]
2404# CHECK: ldrb     w17, [x23, w9, sxtw]
2405# CHECK: ldrsb    x18, [x22, w10, sxtw]
24060xe3 0x6b 0x65 0x38
24070x69 0x6b 0x66 0x38
24080xca 0x6b 0xe7 0x38
24090xab 0xeb 0x63 0x38
24100x8c 0xeb 0x3f 0x38
24110x4e 0x4b 0x66 0x38
24120x2f 0x4b 0xe7 0x38
24130xf1 0xca 0x69 0x38
24140xd2 0xca 0xaa 0x38
2415
2416# CHECK: ldrsh    w3, [sp, x5]
2417# CHECK: ldrsh    w9, [x27, x6]
2418# CHECK: ldrh     w10, [x30, x7, lsl #1]
2419# CHECK: strh     w11, [x29, x3, sxtx]
2420# CHECK: ldrh     w12, [x28, xzr, sxtx]
2421# CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2422# CHECK: ldrh     w14, [x26, w6, uxtw]
2423# CHECK: ldrh     w15, [x25, w7, uxtw]
2424# CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2425# CHECK: ldrh     w17, [x23, w9, sxtw]
2426# CHECK: ldrh     w18, [x22, w10, sxtw]
2427# CHECK: strh     w19, [x21, wzr, sxtw #1]
24280xe3 0x6b 0xe5 0x78
24290x69 0x6b 0xe6 0x78
24300xca 0x7b 0x67 0x78
24310xab 0xeb 0x23 0x78
24320x8c 0xeb 0x7f 0x78
24330x6d 0xfb 0xa5 0x78
24340x4e 0x4b 0x66 0x78
24350x2f 0x4b 0x67 0x78
24360x10 0x5b 0xe8 0x78
24370xf1 0xca 0x69 0x78
24380xd2 0xca 0x6a 0x78
24390xb3 0xda 0x3f 0x78
2440
2441# CHECK: ldr      w3, [sp, x5]
2442# CHECK: ldr      s9, [x27, x6]
2443# CHECK: ldr      w10, [x30, x7, lsl #2]
2444# CHECK: ldr      w11, [x29, x3, sxtx]
2445# CHECK: str      s12, [x28, xzr, sxtx]
2446# CHECK: str      w13, [x27, x5, sxtx #2]
2447# CHECK: str      w14, [x26, w6, uxtw]
2448# CHECK: ldr      w15, [x25, w7, uxtw]
2449# CHECK: ldr      w16, [x24, w8, uxtw #2]
2450# CHECK: ldrsw    x17, [x23, w9, sxtw]
2451# CHECK: ldr      w18, [x22, w10, sxtw]
2452# CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
24530xe3 0x6b 0x65 0xb8
24540x69 0x6b 0x66 0xbc
24550xca 0x7b 0x67 0xb8
24560xab 0xeb 0x63 0xb8
24570x8c 0xeb 0x3f 0xbc
24580x6d 0xfb 0x25 0xb8
24590x4e 0x4b 0x26 0xb8
24600x2f 0x4b 0x67 0xb8
24610x10 0x5b 0x68 0xb8
24620xf1 0xca 0xa9 0xb8
24630xd2 0xca 0x6a 0xb8
24640xb3 0xda 0xbf 0xb8
2465
2466# CHECK: ldr      x3, [sp, x5]
2467# CHECK: str      x9, [x27, x6]
2468# CHECK: ldr      d10, [x30, x7, lsl #3]
2469# CHECK: str      x11, [x29, x3, sxtx]
2470# CHECK: ldr      x12, [x28, xzr, sxtx]
2471# CHECK: ldr      x13, [x27, x5, sxtx #3]
2472# CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2473# CHECK: ldr      x15, [x25, w7, uxtw]
2474# CHECK: ldr      x16, [x24, w8, uxtw #3]
2475# CHECK: ldr      x17, [x23, w9, sxtw]
2476# CHECK: ldr      x18, [x22, w10, sxtw]
2477# CHECK: str      d19, [x21, wzr, sxtw #3]
24780xe3 0x6b 0x65 0xf8
24790x69 0x6b 0x26 0xf8
24800xca 0x7b 0x67 0xfc
24810xab 0xeb 0x23 0xf8
24820x8c 0xeb 0x7f 0xf8
24830x6d 0xfb 0x65 0xf8
24840x40 0x4b 0xa6 0xf8
24850x2f 0x4b 0x67 0xf8
24860x10 0x5b 0x68 0xf8
24870xf1 0xca 0x69 0xf8
24880xd2 0xca 0x6a 0xf8
24890xb3 0xda 0x3f 0xfc
2490
2491# CHECK: ldr      q3, [sp, x5]
2492# CHECK: ldr      q9, [x27, x6]
2493# CHECK: ldr      q10, [x30, x7, lsl #4]
2494# CHECK: str      q11, [x29, x3, sxtx]
2495# CHECK: str      q12, [x28, xzr, sxtx]
2496# CHECK: str      q13, [x27, x5, sxtx #4]
2497# CHECK: ldr      q14, [x26, w6, uxtw]
2498# CHECK: ldr      q15, [x25, w7, uxtw]
2499# CHECK: ldr      q16, [x24, w8, uxtw #4]
2500# CHECK: ldr      q17, [x23, w9, sxtw]
2501# CHECK: str      q18, [x22, w10, sxtw]
2502# CHECK: ldr      q19, [x21, wzr, sxtw #4]
25030xe3 0x6b 0xe5 0x3c
25040x69 0x6b 0xe6 0x3c
25050xca 0x7b 0xe7 0x3c
25060xab 0xeb 0xa3 0x3c
25070x8c 0xeb 0xbf 0x3c
25080x6d 0xfb 0xa5 0x3c
25090x4e 0x4b 0xe6 0x3c
25100x2f 0x4b 0xe7 0x3c
25110x10 0x5b 0xe8 0x3c
25120xf1 0xca 0xe9 0x3c
25130xd2 0xca 0xaa 0x3c
25140xb3 0xda 0xff 0x3c
2515
2516#------------------------------------------------------------------------------
2517# Load/store register pair (offset)
2518#------------------------------------------------------------------------------
2519
2520# CHECK: ldp      w3, w5, [sp]
2521# CHECK: stp      wzr, w9, [sp, #252]
2522# CHECK: ldp      w2, wzr, [sp, #-256]
2523# CHECK: ldp      w9, w10, [sp, #4]
25240xe3 0x17 0x40 0x29
25250xff 0xa7 0x1f 0x29
25260xe2 0x7f 0x60 0x29
25270xe9 0xab 0x40 0x29
2528
2529# CHECK: ldpsw    x9, x10, [sp, #4]
2530# CHECK: ldpsw    x9, x10, [x2, #-256]
2531# CHECK: ldpsw    x20, x30, [sp, #252]
25320xe9 0xab 0x40 0x69
25330x49 0x28 0x60 0x69
25340xf4 0xfb 0x5f 0x69
2535
2536# CHECK: ldp      x21, x29, [x2, #504]
2537# CHECK: ldp      x22, x23, [x3, #-512]
2538# CHECK: ldp      x24, x25, [x4, #8]
25390x55 0xf4 0x5f 0xa9
25400x76 0x5c 0x60 0xa9
25410x98 0xe4 0x40 0xa9
2542
2543# CHECK: ldp      s29, s28, [sp, #252]
2544# CHECK: stp      s27, s26, [sp, #-256]
2545# CHECK: ldp      s1, s2, [x3, #44]
25460xfd 0xf3 0x5f 0x2d
25470xfb 0x6b 0x20 0x2d
25480x61 0x88 0x45 0x2d
2549
2550# CHECK: stp      d3, d5, [x9, #504]
2551# CHECK: stp      d7, d11, [x10, #-512]
2552# CHECK: ldp      d2, d3, [x30, #-8]
25530x23 0x95 0x1f 0x6d
25540x47 0x2d 0x20 0x6d
25550xc2 0x8f 0x7f 0x6d
2556
2557# CHECK: stp      q3, q5, [sp]
2558# CHECK: stp      q17, q19, [sp, #1008]
2559# CHECK: ldp      q23, q29, [x1, #-1024]
25600xe3 0x17 0x0 0xad
25610xf1 0xcf 0x1f 0xad
25620x37 0x74 0x60 0xad
2563
2564#------------------------------------------------------------------------------
2565# Load/store register pair (post-indexed)
2566#------------------------------------------------------------------------------
2567
2568# CHECK: ldp      w3, w5, [sp], #0
2569# CHECK: stp      wzr, w9, [sp], #252
2570# CHECK: ldp      w2, wzr, [sp], #-256
2571# CHECK: ldp      w9, w10, [sp], #4
25720xe3 0x17 0xc0 0x28
25730xff 0xa7 0x9f 0x28
25740xe2 0x7f 0xe0 0x28
25750xe9 0xab 0xc0 0x28
2576
2577# CHECK: ldpsw    x9, x10, [sp], #4
2578# CHECK: ldpsw    x9, x10, [x2], #-256
2579# CHECK: ldpsw    x20, x30, [sp], #252
25800xe9 0xab 0xc0 0x68
25810x49 0x28 0xe0 0x68
25820xf4 0xfb 0xdf 0x68
2583
2584# CHECK: ldp      x21, x29, [x2], #504
2585# CHECK: ldp      x22, x23, [x3], #-512
2586# CHECK: ldp      x24, x25, [x4], #8
25870x55 0xf4 0xdf 0xa8
25880x76 0x5c 0xe0 0xa8
25890x98 0xe4 0xc0 0xa8
2590
2591# CHECK: ldp      s29, s28, [sp], #252
2592# CHECK: stp      s27, s26, [sp], #-256
2593# CHECK: ldp      s1, s2, [x3], #44
25940xfd 0xf3 0xdf 0x2c
25950xfb 0x6b 0xa0 0x2c
25960x61 0x88 0xc5 0x2c
2597
2598# CHECK: stp      d3, d5, [x9], #504
2599# CHECK: stp      d7, d11, [x10], #-512
2600# CHECK: ldp      d2, d3, [x30], #-8
26010x23 0x95 0x9f 0x6c
26020x47 0x2d 0xa0 0x6c
26030xc2 0x8f 0xff 0x6c
2604
2605# CHECK: stp      q3, q5, [sp], #0
2606# CHECK: stp      q17, q19, [sp], #1008
2607# CHECK: ldp      q23, q29, [x1], #-1024
26080xe3 0x17 0x80 0xac
26090xf1 0xcf 0x9f 0xac
26100x37 0x74 0xe0 0xac
2611
2612#------------------------------------------------------------------------------
2613# Load/store register pair (pre-indexed)
2614#------------------------------------------------------------------------------
2615
2616# CHECK: ldp      w3, w5, [sp, #0]!
2617# CHECK: stp      wzr, w9, [sp, #252]!
2618# CHECK: ldp      w2, wzr, [sp, #-256]!
2619# CHECK: ldp      w9, w10, [sp, #4]!
26200xe3 0x17 0xc0 0x29
26210xff 0xa7 0x9f 0x29
26220xe2 0x7f 0xe0 0x29
26230xe9 0xab 0xc0 0x29
2624
2625# CHECK: ldpsw    x9, x10, [sp, #4]!
2626# CHECK: ldpsw    x9, x10, [x2, #-256]!
2627# CHECK: ldpsw    x20, x30, [sp, #252]!
26280xe9 0xab 0xc0 0x69
26290x49 0x28 0xe0 0x69
26300xf4 0xfb 0xdf 0x69
2631
2632# CHECK: ldp      x21, x29, [x2, #504]!
2633# CHECK: ldp      x22, x23, [x3, #-512]!
2634# CHECK: ldp      x24, x25, [x4, #8]!
26350x55 0xf4 0xdf 0xa9
26360x76 0x5c 0xe0 0xa9
26370x98 0xe4 0xc0 0xa9
2638
2639# CHECK: ldp      s29, s28, [sp, #252]!
2640# CHECK: stp      s27, s26, [sp, #-256]!
2641# CHECK: ldp      s1, s2, [x3, #44]!
26420xfd 0xf3 0xdf 0x2d
26430xfb 0x6b 0xa0 0x2d
26440x61 0x88 0xc5 0x2d
2645
2646# CHECK: stp      d3, d5, [x9, #504]!
2647# CHECK: stp      d7, d11, [x10, #-512]!
2648# CHECK: ldp      d2, d3, [x30, #-8]!
26490x23 0x95 0x9f 0x6d
26500x47 0x2d 0xa0 0x6d
26510xc2 0x8f 0xff 0x6d
2652
2653# CHECK: stp      q3, q5, [sp, #0]!
2654# CHECK: stp      q17, q19, [sp, #1008]!
2655# CHECK: ldp      q23, q29, [x1, #-1024]!
26560xe3 0x17 0x80 0xad
26570xf1 0xcf 0x9f 0xad
26580x37 0x74 0xe0 0xad
2659
2660#------------------------------------------------------------------------------
2661# Load/store register pair (offset)
2662#------------------------------------------------------------------------------
2663
2664# CHECK: ldnp      w3, w5, [sp]
2665# CHECK: stnp      wzr, w9, [sp, #252]
2666# CHECK: ldnp      w2, wzr, [sp, #-256]
2667# CHECK: ldnp      w9, w10, [sp, #4]
26680xe3 0x17 0x40 0x28
26690xff 0xa7 0x1f 0x28
26700xe2 0x7f 0x60 0x28
26710xe9 0xab 0x40 0x28
2672
2673# CHECK: ldnp      x21, x29, [x2, #504]
2674# CHECK: ldnp      x22, x23, [x3, #-512]
2675# CHECK: ldnp      x24, x25, [x4, #8]
26760x55 0xf4 0x5f 0xa8
26770x76 0x5c 0x60 0xa8
26780x98 0xe4 0x40 0xa8
2679
2680# CHECK: ldnp      s29, s28, [sp, #252]
2681# CHECK: stnp      s27, s26, [sp, #-256]
2682# CHECK: ldnp      s1, s2, [x3, #44]
26830xfd 0xf3 0x5f 0x2c
26840xfb 0x6b 0x20 0x2c
26850x61 0x88 0x45 0x2c
2686
2687# CHECK: stnp      d3, d5, [x9, #504]
2688# CHECK: stnp      d7, d11, [x10, #-512]
2689# CHECK: ldnp      d2, d3, [x30, #-8]
26900x23 0x95 0x1f 0x6c
26910x47 0x2d 0x20 0x6c
26920xc2 0x8f 0x7f 0x6c
2693
2694# CHECK: stnp      q3, q5, [sp]
2695# CHECK: stnp      q17, q19, [sp, #1008]
2696# CHECK: ldnp      q23, q29, [x1, #-1024]
26970xe3 0x17 0x0 0xac
26980xf1 0xcf 0x1f 0xac
26990x37 0x74 0x60 0xac
2700
2701#------------------------------------------------------------------------------
2702# Logical (immediate)
2703#------------------------------------------------------------------------------
2704# CHECK: orr      w3, w9, #0xffff0000
2705# CHECK: orr      wsp, w10, #0xe00000ff
2706# CHECK: orr      w9, w10, #0x3ff
27070x23 0x3d 0x10 0x32
27080x5f 0x29 0x3 0x32
27090x49 0x25 0x0 0x32
2710
2711# CHECK: and      w14, w15, #0x80008000
2712# CHECK: and      w12, w13, #0xffc3ffc3
2713# CHECK: and      w11, wzr, #0x30003
27140xee 0x81 0x1 0x12
27150xac 0xad 0xa 0x12
27160xeb 0x87 0x0 0x12
2717
2718# CHECK: eor      w3, w6, #0xe0e0e0e0
2719# CHECK: eor      wsp, wzr, #0x3030303
2720# CHECK: eor      w16, w17, #0x81818181
27210xc3 0xc8 0x3 0x52
27220xff 0xc7 0x0 0x52
27230x30 0xc6 0x1 0x52
2724
2725# CHECK: ands     wzr, w18, #0xcccccccc
2726# CHECK: ands     w19, w20, #0x33333333
2727# CHECK: ands     w21, w22, #0x99999999
27280x5f 0xe6 0x2 0x72
27290x93 0xe6 0x0 0x72
27300xd5 0xe6 0x1 0x72
2731
2732# CHECK: ands     wzr, w3, #0xaaaaaaaa
2733# CHECK: ands     wzr, wzr, #0x55555555
27340x7f 0xf0 0x1 0x72
27350xff 0xf3 0x0 0x72
2736
2737# CHECK: eor      x3, x5, #0xffffffffc000000
2738# CHECK: and      x9, x10, #0x7fffffffffff
2739# CHECK: orr      x11, x12, #0x8000000000000fff
27400xa3 0x84 0x66 0xd2
27410x49 0xb9 0x40 0x92
27420x8b 0x31 0x41 0xb2
2743
2744# CHECK: orr      x3, x9, #0xffff0000ffff0000
2745# CHECK: orr      sp, x10, #0xe00000ffe00000ff
2746# CHECK: orr      x9, x10, #0x3ff000003ff
27470x23 0x3d 0x10 0xb2
27480x5f 0x29 0x3 0xb2
27490x49 0x25 0x0 0xb2
2750
2751# CHECK: and      x14, x15, #0x8000800080008000
2752# CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2753# CHECK: and      x11, xzr, #0x3000300030003
27540xee 0x81 0x1 0x92
27550xac 0xad 0xa 0x92
27560xeb 0x87 0x0 0x92
2757
2758# CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2759# CHECK: eor      sp, xzr, #0x303030303030303
2760# CHECK: eor      x16, x17, #0x8181818181818181
27610xc3 0xc8 0x3 0xd2
27620xff 0xc7 0x0 0xd2
27630x30 0xc6 0x1 0xd2
2764
2765# CHECK: ands     xzr, x18, #0xcccccccccccccccc
2766# CHECK: ands     x19, x20, #0x3333333333333333
2767# CHECK: ands     x21, x22, #0x9999999999999999
27680x5f 0xe6 0x2 0xf2
27690x93 0xe6 0x0 0xf2
27700xd5 0xe6 0x1 0xf2
2771
2772# CHECK: ands     xzr, x3, #0xaaaaaaaaaaaaaaaa
2773# CHECK: ands     xzr, xzr, #0x5555555555555555
27740x7f 0xf0 0x1 0xf2
27750xff 0xf3 0x0 0xf2
2776
2777# CHECK: orr      w3, wzr, #0xf000f
2778# CHECK: orr      x10, xzr, #0xaaaaaaaaaaaaaaaa
27790xe3 0x8f 0x0 0x32
27800xea 0xf3 0x1 0xb2
2781
2782# CHECK: orr      w3, wzr, #0xffff
2783# CHECK: orr      x9, xzr, #0xffff00000000
27840xe3 0x3f 0x0 0x32
27850xe9 0x3f 0x60 0xb2
2786
2787#------------------------------------------------------------------------------
2788# Logical (shifted register)
2789#------------------------------------------------------------------------------
2790
2791# CHECK: and      w12, w23, w21
2792# CHECK: and      w16, w15, w1, lsl #1
2793# CHECK: and      w9, w4, w10, lsl #31
2794# CHECK: and      w3, w30, w11
2795# CHECK: and      x3, x5, x7, lsl #63
27960xec 0x2 0x15 0xa
27970xf0 0x5 0x1 0xa
27980x89 0x7c 0xa 0xa
27990xc3 0x3 0xb 0xa
28000xa3 0xfc 0x7 0x8a
2801
2802# CHECK: and      x5, x14, x19, asr #4
2803# CHECK: and      w3, w17, w19, ror #31
2804# CHECK: and      w0, w2, wzr, lsr #17
2805# CHECK: and      w3, w30, w11, asr
28060xc5 0x11 0x93 0x8a
28070x23 0x7e 0xd3 0xa
28080x40 0x44 0x5f 0xa
28090xc3 0x3 0x8b 0xa
2810
2811# CHECK: and      xzr, x4, x26
2812# CHECK: and      w3, wzr, w20, ror
2813# CHECK: and      x7, x20, xzr, asr #63
28140x9f 0x0 0x1a 0x8a
28150xe3 0x3 0xd4 0xa
28160x87 0xfe 0x9f 0x8a
2817
2818# CHECK: bic      x13, x20, x14, lsl #47
2819# CHECK: bic      w2, w7, w9
2820# CHECK: orr      w2, w7, w0, asr #31
2821# CHECK: orr      x8, x9, x10, lsl #12
2822# CHECK: orn      x3, x5, x7, asr
2823# CHECK: orn      w2, w5, w29
28240x8d 0xbe 0x2e 0x8a
28250xe2 0x0 0x29 0xa
28260xe2 0x7c 0x80 0x2a
28270x28 0x31 0xa 0xaa
28280xa3 0x0 0xa7 0xaa
28290xa2 0x0 0x3d 0x2a
2830
2831# CHECK: ands     w7, wzr, w9, lsl #1
2832# CHECK: ands     x3, x5, x20, ror #63
2833# CHECK: bics     w3, w5, w7
2834# CHECK: bics     x3, xzr, x3, lsl #1
2835# CHECK: tst      w3, w7, lsl #31
2836# CHECK: tst      x2, x20, asr
28370xe7 0x7 0x9 0x6a
28380xa3 0xfc 0xd4 0xea
28390xa3 0x0 0x27 0x6a
28400xe3 0x7 0x23 0xea
28410x7f 0x7c 0x7 0x6a
28420x5f 0x0 0x94 0xea
2843
2844# CHECK: mov      x3, x6
2845# CHECK: mov      x3, xzr
2846# CHECK: mov      wzr, w2
2847# CHECK: mov      w3, w5
28480xe3 0x3 0x6 0xaa
28490xe3 0x3 0x1f 0xaa
28500xff 0x3 0x2 0x2a
28510xe3 0x3 0x5 0x2a
2852
2853#------------------------------------------------------------------------------
2854# Move wide (immediate)
2855#------------------------------------------------------------------------------
2856
2857# N.b. (FIXME) canonical aliases aren't produced here because of
2858# limitation in InstAlias. Lots of the "mov[nz]" instructions should
2859# be "mov".
2860
2861# CHECK: movz     w1, #65535
2862# CHECK: movz     w2, #0, lsl #16
2863# CHECK: movn     w2, #1234
28640xe1 0xff 0x9f 0x52
28650x2 0x0 0xa0 0x52
28660x42 0x9a 0x80 0x12
2867
2868# CHECK: movz     x2, #1234, lsl #32
2869# CHECK: movk     xzr, #4321, lsl #48
28700x42 0x9a 0xc0 0xd2
28710x3f 0x1c 0xe2 0xf2
2872
2873# CHECK: movz     x2, #0
2874# CHECK: movk     w3, #0
2875# CHECK: movz     x4, #0, lsl #16
2876# CHECK: movk     w5, #0, lsl #16
2877# CHECK: movz     x6, #0, lsl #32
2878# CHECK: movk     x7, #0, lsl #32
2879# CHECK: movz     x8, #0, lsl #48
2880# CHECK: movk     x9, #0, lsl #48
28810x2 0x0 0x80 0xd2
28820x3 0x0 0x80 0x72
28830x4 0x0 0xa0 0xd2
28840x5 0x0 0xa0 0x72
28850x6 0x0 0xc0 0xd2
28860x7 0x0 0xc0 0xf2
28870x8 0x0 0xe0 0xd2
28880x9 0x0 0xe0 0xf2
2889
2890#------------------------------------------------------------------------------
2891# PC-relative addressing
2892#------------------------------------------------------------------------------
2893
2894# It's slightly dodgy using immediates here, but harmless enough when
2895# it's all that's available.
2896
2897# CHECK: adr      x2, #1600
2898# CHECK: adrp     x21, #6553600
2899# CHECK: adr      x0, #262144
29000x02 0x32 0x00 0x10
29010x15 0x32 0x00 0x90
29020x00 0x00 0x20 0x10
2903
2904#------------------------------------------------------------------------------
2905# System
2906#------------------------------------------------------------------------------
2907
2908# CHECK: nop
2909# CHECK: hint     #127
2910# CHECK: nop
2911# CHECK: yield
2912# CHECK: wfe
2913# CHECK: wfi
2914# CHECK: sev
2915# CHECK: sevl
29160x1f 0x20 0x3 0xd5
29170xff 0x2f 0x3 0xd5
29180x1f 0x20 0x3 0xd5
29190x3f 0x20 0x3 0xd5
29200x5f 0x20 0x3 0xd5
29210x7f 0x20 0x3 0xd5
29220x9f 0x20 0x3 0xd5
29230xbf 0x20 0x3 0xd5
2924
2925# CHECK: clrex
2926# CHECK: clrex    #0
2927# CHECK: clrex    #7
2928# CHECK: clrex
29290x5f 0x3f 0x3 0xd5
29300x5f 0x30 0x3 0xd5
29310x5f 0x37 0x3 0xd5
29320x5f 0x3f 0x3 0xd5
2933
2934# CHECK: dsb      #0
2935# CHECK: dsb      #12
2936# CHECK: dsb      sy
2937# CHECK: dsb      oshld
2938# CHECK: dsb      oshst
2939# CHECK: dsb      osh
2940# CHECK: dsb      nshld
2941# CHECK: dsb      nshst
2942# CHECK: dsb      nsh
2943# CHECK: dsb      ishld
2944# CHECK: dsb      ishst
2945# CHECK: dsb      ish
2946# CHECK: dsb      ld
2947# CHECK: dsb      st
2948# CHECK: dsb      sy
29490x9f 0x30 0x3 0xd5
29500x9f 0x3c 0x3 0xd5
29510x9f 0x3f 0x3 0xd5
29520x9f 0x31 0x3 0xd5
29530x9f 0x32 0x3 0xd5
29540x9f 0x33 0x3 0xd5
29550x9f 0x35 0x3 0xd5
29560x9f 0x36 0x3 0xd5
29570x9f 0x37 0x3 0xd5
29580x9f 0x39 0x3 0xd5
29590x9f 0x3a 0x3 0xd5
29600x9f 0x3b 0x3 0xd5
29610x9f 0x3d 0x3 0xd5
29620x9f 0x3e 0x3 0xd5
29630x9f 0x3f 0x3 0xd5
2964
2965# CHECK: dmb      #0
2966# CHECK: dmb      #12
2967# CHECK: dmb      sy
2968# CHECK: dmb      oshld
2969# CHECK: dmb      oshst
2970# CHECK: dmb      osh
2971# CHECK: dmb      nshld
2972# CHECK: dmb      nshst
2973# CHECK: dmb      nsh
2974# CHECK: dmb      ishld
2975# CHECK: dmb      ishst
2976# CHECK: dmb      ish
2977# CHECK: dmb      ld
2978# CHECK: dmb      st
2979# CHECK: dmb      sy
29800xbf 0x30 0x3 0xd5
29810xbf 0x3c 0x3 0xd5
29820xbf 0x3f 0x3 0xd5
29830xbf 0x31 0x3 0xd5
29840xbf 0x32 0x3 0xd5
29850xbf 0x33 0x3 0xd5
29860xbf 0x35 0x3 0xd5
29870xbf 0x36 0x3 0xd5
29880xbf 0x37 0x3 0xd5
29890xbf 0x39 0x3 0xd5
29900xbf 0x3a 0x3 0xd5
29910xbf 0x3b 0x3 0xd5
29920xbf 0x3d 0x3 0xd5
29930xbf 0x3e 0x3 0xd5
29940xbf 0x3f 0x3 0xd5
2995
2996# CHECK: isb
2997# CHECK: isb      #12
29980xdf 0x3f 0x3 0xd5
29990xdf 0x3c 0x3 0xd5
3000
3001# CHECK: msr      spsel, #0
3002# CHECK: msr      daifset, #15
3003# CHECK: msr      daifclr, #12
30040xbf 0x40 0x0 0xd5
30050xdf 0x4f 0x3 0xd5
30060xff 0x4c 0x3 0xd5
3007
3008# CHECK: sys      #7, c5, c9, #7, x5
3009# CHECK: sys      #0, c15, c15, #2
3010# CHECK: sysl     x9, #7, c5, c9, #7
3011# CHECK: sysl     x1, #0, c15, c15, #2
30120xe5 0x59 0xf 0xd5
30130x5f 0xff 0x8 0xd5
30140xe9 0x59 0x2f 0xd5
30150x41 0xff 0x28 0xd5
3016
3017# CHECK: sys     #0, c7, c1, #0, xzr
3018# CHECK: sys     #0, c7, c5, #0, xzr
3019# CHECK: sys     #3, c7, c5, #1, x9
30200x1f 0x71 0x8 0xd5
30210x1f 0x75 0x8 0xd5
30220x29 0x75 0xb 0xd5
3023
3024# CHECK: sys     #3, c7, c4, #1, x12
3025# CHECK: sys     #0, c7, c6, #1, xzr
3026# CHECK: sys     #0, c7, c6, #2, x2
3027# CHECK: sys     #3, c7, c10, #1, x9
3028# CHECK: sys     #0, c7, c10, #2, x10
3029# CHECK: sys     #3, c7, c11, #1, x0
3030# CHECK: sys     #3, c7, c14, #1, x3
3031# CHECK: sys     #0, c7, c14, #2, x30
30320x2c 0x74 0xb 0xd5
30330x3f 0x76 0x8 0xd5
30340x42 0x76 0x8 0xd5
30350x29 0x7a 0xb 0xd5
30360x4a 0x7a 0x8 0xd5
30370x20 0x7b 0xb 0xd5
30380x23 0x7e 0xb 0xd5
30390x5e 0x7e 0x8 0xd5
3040
3041
3042# CHECK: msr      teecr32_el1, x12
3043# CHECK: msr      osdtrrx_el1, x12
3044# CHECK: msr      mdccint_el1, x12
3045# CHECK: msr      mdscr_el1, x12
3046# CHECK: msr      osdtrtx_el1, x12
3047# CHECK: msr      dbgdtr_el0, x12
3048# CHECK: msr      dbgdtrtx_el0, x12
3049# CHECK: msr      oseccr_el1, x12
3050# CHECK: msr      dbgvcr32_el2, x12
3051# CHECK: msr      dbgbvr0_el1, x12
3052# CHECK: msr      dbgbvr1_el1, x12
3053# CHECK: msr      dbgbvr2_el1, x12
3054# CHECK: msr      dbgbvr3_el1, x12
3055# CHECK: msr      dbgbvr4_el1, x12
3056# CHECK: msr      dbgbvr5_el1, x12
3057# CHECK: msr      dbgbvr6_el1, x12
3058# CHECK: msr      dbgbvr7_el1, x12
3059# CHECK: msr      dbgbvr8_el1, x12
3060# CHECK: msr      dbgbvr9_el1, x12
3061# CHECK: msr      dbgbvr10_el1, x12
3062# CHECK: msr      dbgbvr11_el1, x12
3063# CHECK: msr      dbgbvr12_el1, x12
3064# CHECK: msr      dbgbvr13_el1, x12
3065# CHECK: msr      dbgbvr14_el1, x12
3066# CHECK: msr      dbgbvr15_el1, x12
3067# CHECK: msr      dbgbcr0_el1, x12
3068# CHECK: msr      dbgbcr1_el1, x12
3069# CHECK: msr      dbgbcr2_el1, x12
3070# CHECK: msr      dbgbcr3_el1, x12
3071# CHECK: msr      dbgbcr4_el1, x12
3072# CHECK: msr      dbgbcr5_el1, x12
3073# CHECK: msr      dbgbcr6_el1, x12
3074# CHECK: msr      dbgbcr7_el1, x12
3075# CHECK: msr      dbgbcr8_el1, x12
3076# CHECK: msr      dbgbcr9_el1, x12
3077# CHECK: msr      dbgbcr10_el1, x12
3078# CHECK: msr      dbgbcr11_el1, x12
3079# CHECK: msr      dbgbcr12_el1, x12
3080# CHECK: msr      dbgbcr13_el1, x12
3081# CHECK: msr      dbgbcr14_el1, x12
3082# CHECK: msr      dbgbcr15_el1, x12
3083# CHECK: msr      dbgwvr0_el1, x12
3084# CHECK: msr      dbgwvr1_el1, x12
3085# CHECK: msr      dbgwvr2_el1, x12
3086# CHECK: msr      dbgwvr3_el1, x12
3087# CHECK: msr      dbgwvr4_el1, x12
3088# CHECK: msr      dbgwvr5_el1, x12
3089# CHECK: msr      dbgwvr6_el1, x12
3090# CHECK: msr      dbgwvr7_el1, x12
3091# CHECK: msr      dbgwvr8_el1, x12
3092# CHECK: msr      dbgwvr9_el1, x12
3093# CHECK: msr      dbgwvr10_el1, x12
3094# CHECK: msr      dbgwvr11_el1, x12
3095# CHECK: msr      dbgwvr12_el1, x12
3096# CHECK: msr      dbgwvr13_el1, x12
3097# CHECK: msr      dbgwvr14_el1, x12
3098# CHECK: msr      dbgwvr15_el1, x12
3099# CHECK: msr      dbgwcr0_el1, x12
3100# CHECK: msr      dbgwcr1_el1, x12
3101# CHECK: msr      dbgwcr2_el1, x12
3102# CHECK: msr      dbgwcr3_el1, x12
3103# CHECK: msr      dbgwcr4_el1, x12
3104# CHECK: msr      dbgwcr5_el1, x12
3105# CHECK: msr      dbgwcr6_el1, x12
3106# CHECK: msr      dbgwcr7_el1, x12
3107# CHECK: msr      dbgwcr8_el1, x12
3108# CHECK: msr      dbgwcr9_el1, x12
3109# CHECK: msr      dbgwcr10_el1, x12
3110# CHECK: msr      dbgwcr11_el1, x12
3111# CHECK: msr      dbgwcr12_el1, x12
3112# CHECK: msr      dbgwcr13_el1, x12
3113# CHECK: msr      dbgwcr14_el1, x12
3114# CHECK: msr      dbgwcr15_el1, x12
3115# CHECK: msr      teehbr32_el1, x12
3116# CHECK: msr      oslar_el1, x12
3117# CHECK: msr      osdlr_el1, x12
3118# CHECK: msr      dbgprcr_el1, x12
3119# CHECK: msr      dbgclaimset_el1, x12
3120# CHECK: msr      dbgclaimclr_el1, x12
3121# CHECK: msr      csselr_el1, x12
3122# CHECK: msr      vpidr_el2, x12
3123# CHECK: msr      vmpidr_el2, x12
3124# CHECK: msr      sctlr_el1, x12
3125# CHECK: msr      sctlr_el2, x12
3126# CHECK: msr      sctlr_el3, x12
3127# CHECK: msr      actlr_el1, x12
3128# CHECK: msr      actlr_el2, x12
3129# CHECK: msr      actlr_el3, x12
3130# CHECK: msr      cpacr_el1, x12
3131# CHECK: msr      hcr_el2, x12
3132# CHECK: msr      scr_el3, x12
3133# CHECK: msr      mdcr_el2, x12
3134# CHECK: msr      sder32_el3, x12
3135# CHECK: msr      cptr_el2, x12
3136# CHECK: msr      cptr_el3, x12
3137# CHECK: msr      hstr_el2, x12
3138# CHECK: msr      hacr_el2, x12
3139# CHECK: msr      mdcr_el3, x12
3140# CHECK: msr      ttbr0_el1, x12
3141# CHECK: msr      ttbr0_el2, x12
3142# CHECK: msr      ttbr0_el3, x12
3143# CHECK: msr      ttbr1_el1, x12
3144# CHECK: msr      tcr_el1, x12
3145# CHECK: msr      tcr_el2, x12
3146# CHECK: msr      tcr_el3, x12
3147# CHECK: msr      vttbr_el2, x12
3148# CHECK: msr      vtcr_el2, x12
3149# CHECK: msr      dacr32_el2, x12
3150# CHECK: msr      spsr_el1, x12
3151# CHECK: msr      spsr_el2, x12
3152# CHECK: msr      spsr_el3, x12
3153# CHECK: msr      elr_el1, x12
3154# CHECK: msr      elr_el2, x12
3155# CHECK: msr      elr_el3, x12
3156# CHECK: msr      sp_el0, x12
3157# CHECK: msr      sp_el1, x12
3158# CHECK: msr      sp_el2, x12
3159# CHECK: msr      spsel, x12
3160# CHECK: msr      nzcv, x12
3161# CHECK: msr      daif, x12
3162# CHECK: msr      currentel, x12
3163# CHECK: msr      spsr_irq, x12
3164# CHECK: msr      spsr_abt, x12
3165# CHECK: msr      spsr_und, x12
3166# CHECK: msr      spsr_fiq, x12
3167# CHECK: msr      fpcr, x12
3168# CHECK: msr      fpsr, x12
3169# CHECK: msr      dspsr_el0, x12
3170# CHECK: msr      dlr_el0, x12
3171# CHECK: msr      ifsr32_el2, x12
3172# CHECK: msr      afsr0_el1, x12
3173# CHECK: msr      afsr0_el2, x12
3174# CHECK: msr      afsr0_el3, x12
3175# CHECK: msr      afsr1_el1, x12
3176# CHECK: msr      afsr1_el2, x12
3177# CHECK: msr      afsr1_el3, x12
3178# CHECK: msr      esr_el1, x12
3179# CHECK: msr      esr_el2, x12
3180# CHECK: msr      esr_el3, x12
3181# CHECK: msr      fpexc32_el2, x12
3182# CHECK: msr      far_el1, x12
3183# CHECK: msr      far_el2, x12
3184# CHECK: msr      far_el3, x12
3185# CHECK: msr      hpfar_el2, x12
3186# CHECK: msr      par_el1, x12
3187# CHECK: msr      pmcr_el0, x12
3188# CHECK: msr      pmcntenset_el0, x12
3189# CHECK: msr      pmcntenclr_el0, x12
3190# CHECK: msr      pmovsclr_el0, x12
3191# CHECK: msr      pmselr_el0, x12
3192# CHECK: msr      pmccntr_el0, x12
3193# CHECK: msr      pmxevtyper_el0, x12
3194# CHECK: msr      pmxevcntr_el0, x12
3195# CHECK: msr      pmuserenr_el0, x12
3196# CHECK: msr      pmintenset_el1, x12
3197# CHECK: msr      pmintenclr_el1, x12
3198# CHECK: msr      pmovsset_el0, x12
3199# CHECK: msr      mair_el1, x12
3200# CHECK: msr      mair_el2, x12
3201# CHECK: msr      mair_el3, x12
3202# CHECK: msr      amair_el1, x12
3203# CHECK: msr      amair_el2, x12
3204# CHECK: msr      amair_el3, x12
3205# CHECK: msr      vbar_el1, x12
3206# CHECK: msr      vbar_el2, x12
3207# CHECK: msr      vbar_el3, x12
3208# CHECK: msr      rmr_el1, x12
3209# CHECK: msr      rmr_el2, x12
3210# CHECK: msr      rmr_el3, x12
3211# CHECK: msr      tpidr_el0, x12
3212# CHECK: msr      tpidr_el2, x12
3213# CHECK: msr      tpidr_el3, x12
3214# CHECK: msr      tpidrro_el0, x12
3215# CHECK: msr      tpidr_el1, x12
3216# CHECK: msr      cntfrq_el0, x12
3217# CHECK: msr      cntvoff_el2, x12
3218# CHECK: msr      cntkctl_el1, x12
3219# CHECK: msr      cnthctl_el2, x12
3220# CHECK: msr      cntp_tval_el0, x12
3221# CHECK: msr      cnthp_tval_el2, x12
3222# CHECK: msr      cntps_tval_el1, x12
3223# CHECK: msr      cntp_ctl_el0, x12
3224# CHECK: msr      cnthp_ctl_el2, x12
3225# CHECK: msr      cntps_ctl_el1, x12
3226# CHECK: msr      cntp_cval_el0, x12
3227# CHECK: msr      cnthp_cval_el2, x12
3228# CHECK: msr      cntps_cval_el1, x12
3229# CHECK: msr      cntv_tval_el0, x12
3230# CHECK: msr      cntv_ctl_el0, x12
3231# CHECK: msr      cntv_cval_el0, x12
3232# CHECK: msr      pmevcntr0_el0, x12
3233# CHECK: msr      pmevcntr1_el0, x12
3234# CHECK: msr      pmevcntr2_el0, x12
3235# CHECK: msr      pmevcntr3_el0, x12
3236# CHECK: msr      pmevcntr4_el0, x12
3237# CHECK: msr      pmevcntr5_el0, x12
3238# CHECK: msr      pmevcntr6_el0, x12
3239# CHECK: msr      pmevcntr7_el0, x12
3240# CHECK: msr      pmevcntr8_el0, x12
3241# CHECK: msr      pmevcntr9_el0, x12
3242# CHECK: msr      pmevcntr10_el0, x12
3243# CHECK: msr      pmevcntr11_el0, x12
3244# CHECK: msr      pmevcntr12_el0, x12
3245# CHECK: msr      pmevcntr13_el0, x12
3246# CHECK: msr      pmevcntr14_el0, x12
3247# CHECK: msr      pmevcntr15_el0, x12
3248# CHECK: msr      pmevcntr16_el0, x12
3249# CHECK: msr      pmevcntr17_el0, x12
3250# CHECK: msr      pmevcntr18_el0, x12
3251# CHECK: msr      pmevcntr19_el0, x12
3252# CHECK: msr      pmevcntr20_el0, x12
3253# CHECK: msr      pmevcntr21_el0, x12
3254# CHECK: msr      pmevcntr22_el0, x12
3255# CHECK: msr      pmevcntr23_el0, x12
3256# CHECK: msr      pmevcntr24_el0, x12
3257# CHECK: msr      pmevcntr25_el0, x12
3258# CHECK: msr      pmevcntr26_el0, x12
3259# CHECK: msr      pmevcntr27_el0, x12
3260# CHECK: msr      pmevcntr28_el0, x12
3261# CHECK: msr      pmevcntr29_el0, x12
3262# CHECK: msr      pmevcntr30_el0, x12
3263# CHECK: msr      pmccfiltr_el0, x12
3264# CHECK: msr      pmevtyper0_el0, x12
3265# CHECK: msr      pmevtyper1_el0, x12
3266# CHECK: msr      pmevtyper2_el0, x12
3267# CHECK: msr      pmevtyper3_el0, x12
3268# CHECK: msr      pmevtyper4_el0, x12
3269# CHECK: msr      pmevtyper5_el0, x12
3270# CHECK: msr      pmevtyper6_el0, x12
3271# CHECK: msr      pmevtyper7_el0, x12
3272# CHECK: msr      pmevtyper8_el0, x12
3273# CHECK: msr      pmevtyper9_el0, x12
3274# CHECK: msr      pmevtyper10_el0, x12
3275# CHECK: msr      pmevtyper11_el0, x12
3276# CHECK: msr      pmevtyper12_el0, x12
3277# CHECK: msr      pmevtyper13_el0, x12
3278# CHECK: msr      pmevtyper14_el0, x12
3279# CHECK: msr      pmevtyper15_el0, x12
3280# CHECK: msr      pmevtyper16_el0, x12
3281# CHECK: msr      pmevtyper17_el0, x12
3282# CHECK: msr      pmevtyper18_el0, x12
3283# CHECK: msr      pmevtyper19_el0, x12
3284# CHECK: msr      pmevtyper20_el0, x12
3285# CHECK: msr      pmevtyper21_el0, x12
3286# CHECK: msr      pmevtyper22_el0, x12
3287# CHECK: msr      pmevtyper23_el0, x12
3288# CHECK: msr      pmevtyper24_el0, x12
3289# CHECK: msr      pmevtyper25_el0, x12
3290# CHECK: msr      pmevtyper26_el0, x12
3291# CHECK: msr      pmevtyper27_el0, x12
3292# CHECK: msr      pmevtyper28_el0, x12
3293# CHECK: msr      pmevtyper29_el0, x12
3294# CHECK: msr      pmevtyper30_el0, x12
3295# CHECK: mrs      x9, teecr32_el1
3296# CHECK: mrs      x9, osdtrrx_el1
3297# CHECK: mrs      x9, mdccsr_el0
3298# CHECK: mrs      x9, mdccint_el1
3299# CHECK: mrs      x9, mdscr_el1
3300# CHECK: mrs      x9, osdtrtx_el1
3301# CHECK: mrs      x9, dbgdtr_el0
3302# CHECK: mrs      x9, dbgdtrrx_el0
3303# CHECK: mrs      x9, oseccr_el1
3304# CHECK: mrs      x9, dbgvcr32_el2
3305# CHECK: mrs      x9, dbgbvr0_el1
3306# CHECK: mrs      x9, dbgbvr1_el1
3307# CHECK: mrs      x9, dbgbvr2_el1
3308# CHECK: mrs      x9, dbgbvr3_el1
3309# CHECK: mrs      x9, dbgbvr4_el1
3310# CHECK: mrs      x9, dbgbvr5_el1
3311# CHECK: mrs      x9, dbgbvr6_el1
3312# CHECK: mrs      x9, dbgbvr7_el1
3313# CHECK: mrs      x9, dbgbvr8_el1
3314# CHECK: mrs      x9, dbgbvr9_el1
3315# CHECK: mrs      x9, dbgbvr10_el1
3316# CHECK: mrs      x9, dbgbvr11_el1
3317# CHECK: mrs      x9, dbgbvr12_el1
3318# CHECK: mrs      x9, dbgbvr13_el1
3319# CHECK: mrs      x9, dbgbvr14_el1
3320# CHECK: mrs      x9, dbgbvr15_el1
3321# CHECK: mrs      x9, dbgbcr0_el1
3322# CHECK: mrs      x9, dbgbcr1_el1
3323# CHECK: mrs      x9, dbgbcr2_el1
3324# CHECK: mrs      x9, dbgbcr3_el1
3325# CHECK: mrs      x9, dbgbcr4_el1
3326# CHECK: mrs      x9, dbgbcr5_el1
3327# CHECK: mrs      x9, dbgbcr6_el1
3328# CHECK: mrs      x9, dbgbcr7_el1
3329# CHECK: mrs      x9, dbgbcr8_el1
3330# CHECK: mrs      x9, dbgbcr9_el1
3331# CHECK: mrs      x9, dbgbcr10_el1
3332# CHECK: mrs      x9, dbgbcr11_el1
3333# CHECK: mrs      x9, dbgbcr12_el1
3334# CHECK: mrs      x9, dbgbcr13_el1
3335# CHECK: mrs      x9, dbgbcr14_el1
3336# CHECK: mrs      x9, dbgbcr15_el1
3337# CHECK: mrs      x9, dbgwvr0_el1
3338# CHECK: mrs      x9, dbgwvr1_el1
3339# CHECK: mrs      x9, dbgwvr2_el1
3340# CHECK: mrs      x9, dbgwvr3_el1
3341# CHECK: mrs      x9, dbgwvr4_el1
3342# CHECK: mrs      x9, dbgwvr5_el1
3343# CHECK: mrs      x9, dbgwvr6_el1
3344# CHECK: mrs      x9, dbgwvr7_el1
3345# CHECK: mrs      x9, dbgwvr8_el1
3346# CHECK: mrs      x9, dbgwvr9_el1
3347# CHECK: mrs      x9, dbgwvr10_el1
3348# CHECK: mrs      x9, dbgwvr11_el1
3349# CHECK: mrs      x9, dbgwvr12_el1
3350# CHECK: mrs      x9, dbgwvr13_el1
3351# CHECK: mrs      x9, dbgwvr14_el1
3352# CHECK: mrs      x9, dbgwvr15_el1
3353# CHECK: mrs      x9, dbgwcr0_el1
3354# CHECK: mrs      x9, dbgwcr1_el1
3355# CHECK: mrs      x9, dbgwcr2_el1
3356# CHECK: mrs      x9, dbgwcr3_el1
3357# CHECK: mrs      x9, dbgwcr4_el1
3358# CHECK: mrs      x9, dbgwcr5_el1
3359# CHECK: mrs      x9, dbgwcr6_el1
3360# CHECK: mrs      x9, dbgwcr7_el1
3361# CHECK: mrs      x9, dbgwcr8_el1
3362# CHECK: mrs      x9, dbgwcr9_el1
3363# CHECK: mrs      x9, dbgwcr10_el1
3364# CHECK: mrs      x9, dbgwcr11_el1
3365# CHECK: mrs      x9, dbgwcr12_el1
3366# CHECK: mrs      x9, dbgwcr13_el1
3367# CHECK: mrs      x9, dbgwcr14_el1
3368# CHECK: mrs      x9, dbgwcr15_el1
3369# CHECK: mrs      x9, mdrar_el1
3370# CHECK: mrs      x9, teehbr32_el1
3371# CHECK: mrs      x9, oslsr_el1
3372# CHECK: mrs      x9, osdlr_el1
3373# CHECK: mrs      x9, dbgprcr_el1
3374# CHECK: mrs      x9, dbgclaimset_el1
3375# CHECK: mrs      x9, dbgclaimclr_el1
3376# CHECK: mrs      x9, dbgauthstatus_el1
3377# CHECK: mrs      x9, midr_el1
3378# CHECK: mrs      x9, ccsidr_el1
3379# CHECK: mrs      x9, csselr_el1
3380# CHECK: mrs      x9, vpidr_el2
3381# CHECK: mrs      x9, clidr_el1
3382# CHECK: mrs      x9, ctr_el0
3383# CHECK: mrs      x9, mpidr_el1
3384# CHECK: mrs      x9, vmpidr_el2
3385# CHECK: mrs      x9, revidr_el1
3386# CHECK: mrs      x9, aidr_el1
3387# CHECK: mrs      x9, dczid_el0
3388# CHECK: mrs      x9, id_pfr0_el1
3389# CHECK: mrs      x9, id_pfr1_el1
3390# CHECK: mrs      x9, id_dfr0_el1
3391# CHECK: mrs      x9, id_afr0_el1
3392# CHECK: mrs      x9, id_mmfr0_el1
3393# CHECK: mrs      x9, id_mmfr1_el1
3394# CHECK: mrs      x9, id_mmfr2_el1
3395# CHECK: mrs      x9, id_mmfr3_el1
3396# CHECK: mrs      x9, id_isar0_el1
3397# CHECK: mrs      x9, id_isar1_el1
3398# CHECK: mrs      x9, id_isar2_el1
3399# CHECK: mrs      x9, id_isar3_el1
3400# CHECK: mrs      x9, id_isar4_el1
3401# CHECK: mrs      x9, id_isar5_el1
3402# CHECK: mrs      x9, mvfr0_el1
3403# CHECK: mrs      x9, mvfr1_el1
3404# CHECK: mrs      x9, mvfr2_el1
3405# CHECK: mrs      x9, id_aa64pfr0_el1
3406# CHECK: mrs      x9, id_aa64pfr1_el1
3407# CHECK: mrs      x9, id_aa64dfr0_el1
3408# CHECK: mrs      x9, id_aa64dfr1_el1
3409# CHECK: mrs      x9, id_aa64afr0_el1
3410# CHECK: mrs      x9, id_aa64afr1_el1
3411# CHECK: mrs      x9, id_aa64isar0_el1
3412# CHECK: mrs      x9, id_aa64isar1_el1
3413# CHECK: mrs      x9, id_aa64mmfr0_el1
3414# CHECK: mrs      x9, id_aa64mmfr1_el1
3415# CHECK: mrs      x9, sctlr_el1
3416# CHECK: mrs      x9, sctlr_el2
3417# CHECK: mrs      x9, sctlr_el3
3418# CHECK: mrs      x9, actlr_el1
3419# CHECK: mrs      x9, actlr_el2
3420# CHECK: mrs      x9, actlr_el3
3421# CHECK: mrs      x9, cpacr_el1
3422# CHECK: mrs      x9, hcr_el2
3423# CHECK: mrs      x9, scr_el3
3424# CHECK: mrs      x9, mdcr_el2
3425# CHECK: mrs      x9, sder32_el3
3426# CHECK: mrs      x9, cptr_el2
3427# CHECK: mrs      x9, cptr_el3
3428# CHECK: mrs      x9, hstr_el2
3429# CHECK: mrs      x9, hacr_el2
3430# CHECK: mrs      x9, mdcr_el3
3431# CHECK: mrs      x9, ttbr0_el1
3432# CHECK: mrs      x9, ttbr0_el2
3433# CHECK: mrs      x9, ttbr0_el3
3434# CHECK: mrs      x9, ttbr1_el1
3435# CHECK: mrs      x9, tcr_el1
3436# CHECK: mrs      x9, tcr_el2
3437# CHECK: mrs      x9, tcr_el3
3438# CHECK: mrs      x9, vttbr_el2
3439# CHECK: mrs      x9, vtcr_el2
3440# CHECK: mrs      x9, dacr32_el2
3441# CHECK: mrs      x9, spsr_el1
3442# CHECK: mrs      x9, spsr_el2
3443# CHECK: mrs      x9, spsr_el3
3444# CHECK: mrs      x9, elr_el1
3445# CHECK: mrs      x9, elr_el2
3446# CHECK: mrs      x9, elr_el3
3447# CHECK: mrs      x9, sp_el0
3448# CHECK: mrs      x9, sp_el1
3449# CHECK: mrs      x9, sp_el2
3450# CHECK: mrs      x9, spsel
3451# CHECK: mrs      x9, nzcv
3452# CHECK: mrs      x9, daif
3453# CHECK: mrs      x9, currentel
3454# CHECK: mrs      x9, spsr_irq
3455# CHECK: mrs      x9, spsr_abt
3456# CHECK: mrs      x9, spsr_und
3457# CHECK: mrs      x9, spsr_fiq
3458# CHECK: mrs      x9, fpcr
3459# CHECK: mrs      x9, fpsr
3460# CHECK: mrs      x9, dspsr_el0
3461# CHECK: mrs      x9, dlr_el0
3462# CHECK: mrs      x9, ifsr32_el2
3463# CHECK: mrs      x9, afsr0_el1
3464# CHECK: mrs      x9, afsr0_el2
3465# CHECK: mrs      x9, afsr0_el3
3466# CHECK: mrs      x9, afsr1_el1
3467# CHECK: mrs      x9, afsr1_el2
3468# CHECK: mrs      x9, afsr1_el3
3469# CHECK: mrs      x9, esr_el1
3470# CHECK: mrs      x9, esr_el2
3471# CHECK: mrs      x9, esr_el3
3472# CHECK: mrs      x9, fpexc32_el2
3473# CHECK: mrs      x9, far_el1
3474# CHECK: mrs      x9, far_el2
3475# CHECK: mrs      x9, far_el3
3476# CHECK: mrs      x9, hpfar_el2
3477# CHECK: mrs      x9, par_el1
3478# CHECK: mrs      x9, pmcr_el0
3479# CHECK: mrs      x9, pmcntenset_el0
3480# CHECK: mrs      x9, pmcntenclr_el0
3481# CHECK: mrs      x9, pmovsclr_el0
3482# CHECK: mrs      x9, pmselr_el0
3483# CHECK: mrs      x9, pmceid0_el0
3484# CHECK: mrs      x9, pmceid1_el0
3485# CHECK: mrs      x9, pmccntr_el0
3486# CHECK: mrs      x9, pmxevtyper_el0
3487# CHECK: mrs      x9, pmxevcntr_el0
3488# CHECK: mrs      x9, pmuserenr_el0
3489# CHECK: mrs      x9, pmintenset_el1
3490# CHECK: mrs      x9, pmintenclr_el1
3491# CHECK: mrs      x9, pmovsset_el0
3492# CHECK: mrs      x9, mair_el1
3493# CHECK: mrs      x9, mair_el2
3494# CHECK: mrs      x9, mair_el3
3495# CHECK: mrs      x9, amair_el1
3496# CHECK: mrs      x9, amair_el2
3497# CHECK: mrs      x9, amair_el3
3498# CHECK: mrs      x9, vbar_el1
3499# CHECK: mrs      x9, vbar_el2
3500# CHECK: mrs      x9, vbar_el3
3501# CHECK: mrs      x9, rvbar_el1
3502# CHECK: mrs      x9, rvbar_el2
3503# CHECK: mrs      x9, rvbar_el3
3504# CHECK: mrs      x9, rmr_el1
3505# CHECK: mrs      x9, rmr_el2
3506# CHECK: mrs      x9, rmr_el3
3507# CHECK: mrs      x9, isr_el1
3508# CHECK: mrs      x9, contextidr_el1
3509# CHECK: mrs      x9, tpidr_el0
3510# CHECK: mrs      x9, tpidr_el2
3511# CHECK: mrs      x9, tpidr_el3
3512# CHECK: mrs      x9, tpidrro_el0
3513# CHECK: mrs      x9, tpidr_el1
3514# CHECK: mrs      x9, cntfrq_el0
3515# CHECK: mrs      x9, cntpct_el0
3516# CHECK: mrs      x9, cntvct_el0
3517# CHECK: mrs      x9, cntvoff_el2
3518# CHECK: mrs      x9, cntkctl_el1
3519# CHECK: mrs      x9, cnthctl_el2
3520# CHECK: mrs      x9, cntp_tval_el0
3521# CHECK: mrs      x9, cnthp_tval_el2
3522# CHECK: mrs      x9, cntps_tval_el1
3523# CHECK: mrs      x9, cntp_ctl_el0
3524# CHECK: mrs      x9, cnthp_ctl_el2
3525# CHECK: mrs      x9, cntps_ctl_el1
3526# CHECK: mrs      x9, cntp_cval_el0
3527# CHECK: mrs      x9, cnthp_cval_el2
3528# CHECK: mrs      x9, cntps_cval_el1
3529# CHECK: mrs      x9, cntv_tval_el0
3530# CHECK: mrs      x9, cntv_ctl_el0
3531# CHECK: mrs      x9, cntv_cval_el0
3532# CHECK: mrs      x9, pmevcntr0_el0
3533# CHECK: mrs      x9, pmevcntr1_el0
3534# CHECK: mrs      x9, pmevcntr2_el0
3535# CHECK: mrs      x9, pmevcntr3_el0
3536# CHECK: mrs      x9, pmevcntr4_el0
3537# CHECK: mrs      x9, pmevcntr5_el0
3538# CHECK: mrs      x9, pmevcntr6_el0
3539# CHECK: mrs      x9, pmevcntr7_el0
3540# CHECK: mrs      x9, pmevcntr8_el0
3541# CHECK: mrs      x9, pmevcntr9_el0
3542# CHECK: mrs      x9, pmevcntr10_el0
3543# CHECK: mrs      x9, pmevcntr11_el0
3544# CHECK: mrs      x9, pmevcntr12_el0
3545# CHECK: mrs      x9, pmevcntr13_el0
3546# CHECK: mrs      x9, pmevcntr14_el0
3547# CHECK: mrs      x9, pmevcntr15_el0
3548# CHECK: mrs      x9, pmevcntr16_el0
3549# CHECK: mrs      x9, pmevcntr17_el0
3550# CHECK: mrs      x9, pmevcntr18_el0
3551# CHECK: mrs      x9, pmevcntr19_el0
3552# CHECK: mrs      x9, pmevcntr20_el0
3553# CHECK: mrs      x9, pmevcntr21_el0
3554# CHECK: mrs      x9, pmevcntr22_el0
3555# CHECK: mrs      x9, pmevcntr23_el0
3556# CHECK: mrs      x9, pmevcntr24_el0
3557# CHECK: mrs      x9, pmevcntr25_el0
3558# CHECK: mrs      x9, pmevcntr26_el0
3559# CHECK: mrs      x9, pmevcntr27_el0
3560# CHECK: mrs      x9, pmevcntr28_el0
3561# CHECK: mrs      x9, pmevcntr29_el0
3562# CHECK: mrs      x9, pmevcntr30_el0
3563# CHECK: mrs      x9, pmccfiltr_el0
3564# CHECK: mrs      x9, pmevtyper0_el0
3565# CHECK: mrs      x9, pmevtyper1_el0
3566# CHECK: mrs      x9, pmevtyper2_el0
3567# CHECK: mrs      x9, pmevtyper3_el0
3568# CHECK: mrs      x9, pmevtyper4_el0
3569# CHECK: mrs      x9, pmevtyper5_el0
3570# CHECK: mrs      x9, pmevtyper6_el0
3571# CHECK: mrs      x9, pmevtyper7_el0
3572# CHECK: mrs      x9, pmevtyper8_el0
3573# CHECK: mrs      x9, pmevtyper9_el0
3574# CHECK: mrs      x9, pmevtyper10_el0
3575# CHECK: mrs      x9, pmevtyper11_el0
3576# CHECK: mrs      x9, pmevtyper12_el0
3577# CHECK: mrs      x9, pmevtyper13_el0
3578# CHECK: mrs      x9, pmevtyper14_el0
3579# CHECK: mrs      x9, pmevtyper15_el0
3580# CHECK: mrs      x9, pmevtyper16_el0
3581# CHECK: mrs      x9, pmevtyper17_el0
3582# CHECK: mrs      x9, pmevtyper18_el0
3583# CHECK: mrs      x9, pmevtyper19_el0
3584# CHECK: mrs      x9, pmevtyper20_el0
3585# CHECK: mrs      x9, pmevtyper21_el0
3586# CHECK: mrs      x9, pmevtyper22_el0
3587# CHECK: mrs      x9, pmevtyper23_el0
3588# CHECK: mrs      x9, pmevtyper24_el0
3589# CHECK: mrs      x9, pmevtyper25_el0
3590# CHECK: mrs      x9, pmevtyper26_el0
3591# CHECK: mrs      x9, pmevtyper27_el0
3592# CHECK: mrs      x9, pmevtyper28_el0
3593# CHECK: mrs      x9, pmevtyper29_el0
3594# CHECK: mrs      x9, pmevtyper30_el0
3595
35960xc 0x0 0x12 0xd5
35970x4c 0x0 0x10 0xd5
35980xc 0x2 0x10 0xd5
35990x4c 0x2 0x10 0xd5
36000x4c 0x3 0x10 0xd5
36010xc 0x4 0x13 0xd5
36020xc 0x5 0x13 0xd5
36030x4c 0x6 0x10 0xd5
36040xc 0x7 0x14 0xd5
36050x8c 0x0 0x10 0xd5
36060x8c 0x1 0x10 0xd5
36070x8c 0x2 0x10 0xd5
36080x8c 0x3 0x10 0xd5
36090x8c 0x4 0x10 0xd5
36100x8c 0x5 0x10 0xd5
36110x8c 0x6 0x10 0xd5
36120x8c 0x7 0x10 0xd5
36130x8c 0x8 0x10 0xd5
36140x8c 0x9 0x10 0xd5
36150x8c 0xa 0x10 0xd5
36160x8c 0xb 0x10 0xd5
36170x8c 0xc 0x10 0xd5
36180x8c 0xd 0x10 0xd5
36190x8c 0xe 0x10 0xd5
36200x8c 0xf 0x10 0xd5
36210xac 0x0 0x10 0xd5
36220xac 0x1 0x10 0xd5
36230xac 0x2 0x10 0xd5
36240xac 0x3 0x10 0xd5
36250xac 0x4 0x10 0xd5
36260xac 0x5 0x10 0xd5
36270xac 0x6 0x10 0xd5
36280xac 0x7 0x10 0xd5
36290xac 0x8 0x10 0xd5
36300xac 0x9 0x10 0xd5
36310xac 0xa 0x10 0xd5
36320xac 0xb 0x10 0xd5
36330xac 0xc 0x10 0xd5
36340xac 0xd 0x10 0xd5
36350xac 0xe 0x10 0xd5
36360xac 0xf 0x10 0xd5
36370xcc 0x0 0x10 0xd5
36380xcc 0x1 0x10 0xd5
36390xcc 0x2 0x10 0xd5
36400xcc 0x3 0x10 0xd5
36410xcc 0x4 0x10 0xd5
36420xcc 0x5 0x10 0xd5
36430xcc 0x6 0x10 0xd5
36440xcc 0x7 0x10 0xd5
36450xcc 0x8 0x10 0xd5
36460xcc 0x9 0x10 0xd5
36470xcc 0xa 0x10 0xd5
36480xcc 0xb 0x10 0xd5
36490xcc 0xc 0x10 0xd5
36500xcc 0xd 0x10 0xd5
36510xcc 0xe 0x10 0xd5
36520xcc 0xf 0x10 0xd5
36530xec 0x0 0x10 0xd5
36540xec 0x1 0x10 0xd5
36550xec 0x2 0x10 0xd5
36560xec 0x3 0x10 0xd5
36570xec 0x4 0x10 0xd5
36580xec 0x5 0x10 0xd5
36590xec 0x6 0x10 0xd5
36600xec 0x7 0x10 0xd5
36610xec 0x8 0x10 0xd5
36620xec 0x9 0x10 0xd5
36630xec 0xa 0x10 0xd5
36640xec 0xb 0x10 0xd5
36650xec 0xc 0x10 0xd5
36660xec 0xd 0x10 0xd5
36670xec 0xe 0x10 0xd5
36680xec 0xf 0x10 0xd5
36690xc 0x10 0x12 0xd5
36700x8c 0x10 0x10 0xd5
36710x8c 0x13 0x10 0xd5
36720x8c 0x14 0x10 0xd5
36730xcc 0x78 0x10 0xd5
36740xcc 0x79 0x10 0xd5
36750xc 0x0 0x1a 0xd5
36760xc 0x0 0x1c 0xd5
36770xac 0x0 0x1c 0xd5
36780xc 0x10 0x18 0xd5
36790xc 0x10 0x1c 0xd5
36800xc 0x10 0x1e 0xd5
36810x2c 0x10 0x18 0xd5
36820x2c 0x10 0x1c 0xd5
36830x2c 0x10 0x1e 0xd5
36840x4c 0x10 0x18 0xd5
36850xc 0x11 0x1c 0xd5
36860xc 0x11 0x1e 0xd5
36870x2c 0x11 0x1c 0xd5
36880x2c 0x11 0x1e 0xd5
36890x4c 0x11 0x1c 0xd5
36900x4c 0x11 0x1e 0xd5
36910x6c 0x11 0x1c 0xd5
36920xec 0x11 0x1c 0xd5
36930x2c 0x13 0x1e 0xd5
36940xc 0x20 0x18 0xd5
36950xc 0x20 0x1c 0xd5
36960xc 0x20 0x1e 0xd5
36970x2c 0x20 0x18 0xd5
36980x4c 0x20 0x18 0xd5
36990x4c 0x20 0x1c 0xd5
37000x4c 0x20 0x1e 0xd5
37010xc 0x21 0x1c 0xd5
37020x4c 0x21 0x1c 0xd5
37030xc 0x30 0x1c 0xd5
37040xc 0x40 0x18 0xd5
37050xc 0x40 0x1c 0xd5
37060xc 0x40 0x1e 0xd5
37070x2c 0x40 0x18 0xd5
37080x2c 0x40 0x1c 0xd5
37090x2c 0x40 0x1e 0xd5
37100xc 0x41 0x18 0xd5
37110xc 0x41 0x1c 0xd5
37120xc 0x41 0x1e 0xd5
37130xc 0x42 0x18 0xd5
37140xc 0x42 0x1b 0xd5
37150x2c 0x42 0x1b 0xd5
37160x4c 0x42 0x18 0xd5
37170xc 0x43 0x1c 0xd5
37180x2c 0x43 0x1c 0xd5
37190x4c 0x43 0x1c 0xd5
37200x6c 0x43 0x1c 0xd5
37210xc 0x44 0x1b 0xd5
37220x2c 0x44 0x1b 0xd5
37230xc 0x45 0x1b 0xd5
37240x2c 0x45 0x1b 0xd5
37250x2c 0x50 0x1c 0xd5
37260xc 0x51 0x18 0xd5
37270xc 0x51 0x1c 0xd5
37280xc 0x51 0x1e 0xd5
37290x2c 0x51 0x18 0xd5
37300x2c 0x51 0x1c 0xd5
37310x2c 0x51 0x1e 0xd5
37320xc 0x52 0x18 0xd5
37330xc 0x52 0x1c 0xd5
37340xc 0x52 0x1e 0xd5
37350xc 0x53 0x1c 0xd5
37360xc 0x60 0x18 0xd5
37370xc 0x60 0x1c 0xd5
37380xc 0x60 0x1e 0xd5
37390x8c 0x60 0x1c 0xd5
37400xc 0x74 0x18 0xd5
37410xc 0x9c 0x1b 0xd5
37420x2c 0x9c 0x1b 0xd5
37430x4c 0x9c 0x1b 0xd5
37440x6c 0x9c 0x1b 0xd5
37450xac 0x9c 0x1b 0xd5
37460xc 0x9d 0x1b 0xd5
37470x2c 0x9d 0x1b 0xd5
37480x4c 0x9d 0x1b 0xd5
37490xc 0x9e 0x1b 0xd5
37500x2c 0x9e 0x18 0xd5
37510x4c 0x9e 0x18 0xd5
37520x6c 0x9e 0x1b 0xd5
37530xc 0xa2 0x18 0xd5
37540xc 0xa2 0x1c 0xd5
37550xc 0xa2 0x1e 0xd5
37560xc 0xa3 0x18 0xd5
37570xc 0xa3 0x1c 0xd5
37580xc 0xa3 0x1e 0xd5
37590xc 0xc0 0x18 0xd5
37600xc 0xc0 0x1c 0xd5
37610xc 0xc0 0x1e 0xd5
37620x4c 0xc0 0x18 0xd5
37630x4c 0xc0 0x1c 0xd5
37640x4c 0xc0 0x1e 0xd5
37650x4c 0xd0 0x1b 0xd5
37660x4c 0xd0 0x1c 0xd5
37670x4c 0xd0 0x1e 0xd5
37680x6c 0xd0 0x1b 0xd5
37690x8c 0xd0 0x18 0xd5
37700xc 0xe0 0x1b 0xd5
37710x6c 0xe0 0x1c 0xd5
37720xc 0xe1 0x18 0xd5
37730xc 0xe1 0x1c 0xd5
37740xc 0xe2 0x1b 0xd5
37750xc 0xe2 0x1c 0xd5
37760xc 0xe2 0x1f 0xd5
37770x2c 0xe2 0x1b 0xd5
37780x2c 0xe2 0x1c 0xd5
37790x2c 0xe2 0x1f 0xd5
37800x4c 0xe2 0x1b 0xd5
37810x4c 0xe2 0x1c 0xd5
37820x4c 0xe2 0x1f 0xd5
37830xc 0xe3 0x1b 0xd5
37840x2c 0xe3 0x1b 0xd5
37850x4c 0xe3 0x1b 0xd5
37860xc 0xe8 0x1b 0xd5
37870x2c 0xe8 0x1b 0xd5
37880x4c 0xe8 0x1b 0xd5
37890x6c 0xe8 0x1b 0xd5
37900x8c 0xe8 0x1b 0xd5
37910xac 0xe8 0x1b 0xd5
37920xcc 0xe8 0x1b 0xd5
37930xec 0xe8 0x1b 0xd5
37940xc 0xe9 0x1b 0xd5
37950x2c 0xe9 0x1b 0xd5
37960x4c 0xe9 0x1b 0xd5
37970x6c 0xe9 0x1b 0xd5
37980x8c 0xe9 0x1b 0xd5
37990xac 0xe9 0x1b 0xd5
38000xcc 0xe9 0x1b 0xd5
38010xec 0xe9 0x1b 0xd5
38020xc 0xea 0x1b 0xd5
38030x2c 0xea 0x1b 0xd5
38040x4c 0xea 0x1b 0xd5
38050x6c 0xea 0x1b 0xd5
38060x8c 0xea 0x1b 0xd5
38070xac 0xea 0x1b 0xd5
38080xcc 0xea 0x1b 0xd5
38090xec 0xea 0x1b 0xd5
38100xc 0xeb 0x1b 0xd5
38110x2c 0xeb 0x1b 0xd5
38120x4c 0xeb 0x1b 0xd5
38130x6c 0xeb 0x1b 0xd5
38140x8c 0xeb 0x1b 0xd5
38150xac 0xeb 0x1b 0xd5
38160xcc 0xeb 0x1b 0xd5
38170xec 0xef 0x1b 0xd5
38180xc 0xec 0x1b 0xd5
38190x2c 0xec 0x1b 0xd5
38200x4c 0xec 0x1b 0xd5
38210x6c 0xec 0x1b 0xd5
38220x8c 0xec 0x1b 0xd5
38230xac 0xec 0x1b 0xd5
38240xcc 0xec 0x1b 0xd5
38250xec 0xec 0x1b 0xd5
38260xc 0xed 0x1b 0xd5
38270x2c 0xed 0x1b 0xd5
38280x4c 0xed 0x1b 0xd5
38290x6c 0xed 0x1b 0xd5
38300x8c 0xed 0x1b 0xd5
38310xac 0xed 0x1b 0xd5
38320xcc 0xed 0x1b 0xd5
38330xec 0xed 0x1b 0xd5
38340xc 0xee 0x1b 0xd5
38350x2c 0xee 0x1b 0xd5
38360x4c 0xee 0x1b 0xd5
38370x6c 0xee 0x1b 0xd5
38380x8c 0xee 0x1b 0xd5
38390xac 0xee 0x1b 0xd5
38400xcc 0xee 0x1b 0xd5
38410xec 0xee 0x1b 0xd5
38420xc 0xef 0x1b 0xd5
38430x2c 0xef 0x1b 0xd5
38440x4c 0xef 0x1b 0xd5
38450x6c 0xef 0x1b 0xd5
38460x8c 0xef 0x1b 0xd5
38470xac 0xef 0x1b 0xd5
38480xcc 0xef 0x1b 0xd5
38490x9 0x0 0x32 0xd5
38500x49 0x0 0x30 0xd5
38510x9 0x1 0x33 0xd5
38520x9 0x2 0x30 0xd5
38530x49 0x2 0x30 0xd5
38540x49 0x3 0x30 0xd5
38550x9 0x4 0x33 0xd5
38560x9 0x5 0x33 0xd5
38570x49 0x6 0x30 0xd5
38580x9 0x7 0x34 0xd5
38590x89 0x0 0x30 0xd5
38600x89 0x1 0x30 0xd5
38610x89 0x2 0x30 0xd5
38620x89 0x3 0x30 0xd5
38630x89 0x4 0x30 0xd5
38640x89 0x5 0x30 0xd5
38650x89 0x6 0x30 0xd5
38660x89 0x7 0x30 0xd5
38670x89 0x8 0x30 0xd5
38680x89 0x9 0x30 0xd5
38690x89 0xa 0x30 0xd5
38700x89 0xb 0x30 0xd5
38710x89 0xc 0x30 0xd5
38720x89 0xd 0x30 0xd5
38730x89 0xe 0x30 0xd5
38740x89 0xf 0x30 0xd5
38750xa9 0x0 0x30 0xd5
38760xa9 0x1 0x30 0xd5
38770xa9 0x2 0x30 0xd5
38780xa9 0x3 0x30 0xd5
38790xa9 0x4 0x30 0xd5
38800xa9 0x5 0x30 0xd5
38810xa9 0x6 0x30 0xd5
38820xa9 0x7 0x30 0xd5
38830xa9 0x8 0x30 0xd5
38840xa9 0x9 0x30 0xd5
38850xa9 0xa 0x30 0xd5
38860xa9 0xb 0x30 0xd5
38870xa9 0xc 0x30 0xd5
38880xa9 0xd 0x30 0xd5
38890xa9 0xe 0x30 0xd5
38900xa9 0xf 0x30 0xd5
38910xc9 0x0 0x30 0xd5
38920xc9 0x1 0x30 0xd5
38930xc9 0x2 0x30 0xd5
38940xc9 0x3 0x30 0xd5
38950xc9 0x4 0x30 0xd5
38960xc9 0x5 0x30 0xd5
38970xc9 0x6 0x30 0xd5
38980xc9 0x7 0x30 0xd5
38990xc9 0x8 0x30 0xd5
39000xc9 0x9 0x30 0xd5
39010xc9 0xa 0x30 0xd5
39020xc9 0xb 0x30 0xd5
39030xc9 0xc 0x30 0xd5
39040xc9 0xd 0x30 0xd5
39050xc9 0xe 0x30 0xd5
39060xc9 0xf 0x30 0xd5
39070xe9 0x0 0x30 0xd5
39080xe9 0x1 0x30 0xd5
39090xe9 0x2 0x30 0xd5
39100xe9 0x3 0x30 0xd5
39110xe9 0x4 0x30 0xd5
39120xe9 0x5 0x30 0xd5
39130xe9 0x6 0x30 0xd5
39140xe9 0x7 0x30 0xd5
39150xe9 0x8 0x30 0xd5
39160xe9 0x9 0x30 0xd5
39170xe9 0xa 0x30 0xd5
39180xe9 0xb 0x30 0xd5
39190xe9 0xc 0x30 0xd5
39200xe9 0xd 0x30 0xd5
39210xe9 0xe 0x30 0xd5
39220xe9 0xf 0x30 0xd5
39230x9 0x10 0x30 0xd5
39240x9 0x10 0x32 0xd5
39250x89 0x11 0x30 0xd5
39260x89 0x13 0x30 0xd5
39270x89 0x14 0x30 0xd5
39280xc9 0x78 0x30 0xd5
39290xc9 0x79 0x30 0xd5
39300xc9 0x7e 0x30 0xd5
39310x9 0x0 0x38 0xd5
39320x9 0x0 0x39 0xd5
39330x9 0x0 0x3a 0xd5
39340x9 0x0 0x3c 0xd5
39350x29 0x0 0x39 0xd5
39360x29 0x0 0x3b 0xd5
39370xa9 0x0 0x38 0xd5
39380xa9 0x0 0x3c 0xd5
39390xc9 0x0 0x38 0xd5
39400xe9 0x0 0x39 0xd5
39410xe9 0x0 0x3b 0xd5
39420x9 0x1 0x38 0xd5
39430x29 0x1 0x38 0xd5
39440x49 0x1 0x38 0xd5
39450x69 0x1 0x38 0xd5
39460x89 0x1 0x38 0xd5
39470xa9 0x1 0x38 0xd5
39480xc9 0x1 0x38 0xd5
39490xe9 0x1 0x38 0xd5
39500x9 0x2 0x38 0xd5
39510x29 0x2 0x38 0xd5
39520x49 0x2 0x38 0xd5
39530x69 0x2 0x38 0xd5
39540x89 0x2 0x38 0xd5
39550xa9 0x2 0x38 0xd5
39560x9 0x3 0x38 0xd5
39570x29 0x3 0x38 0xd5
39580x49 0x3 0x38 0xd5
39590x9 0x4 0x38 0xd5
39600x29 0x4 0x38 0xd5
39610x9 0x5 0x38 0xd5
39620x29 0x5 0x38 0xd5
39630x89 0x5 0x38 0xd5
39640xa9 0x5 0x38 0xd5
39650x9 0x6 0x38 0xd5
39660x29 0x6 0x38 0xd5
39670x9 0x7 0x38 0xd5
39680x29 0x7 0x38 0xd5
39690x9 0x10 0x38 0xd5
39700x9 0x10 0x3c 0xd5
39710x9 0x10 0x3e 0xd5
39720x29 0x10 0x38 0xd5
39730x29 0x10 0x3c 0xd5
39740x29 0x10 0x3e 0xd5
39750x49 0x10 0x38 0xd5
39760x9 0x11 0x3c 0xd5
39770x9 0x11 0x3e 0xd5
39780x29 0x11 0x3c 0xd5
39790x29 0x11 0x3e 0xd5
39800x49 0x11 0x3c 0xd5
39810x49 0x11 0x3e 0xd5
39820x69 0x11 0x3c 0xd5
39830xe9 0x11 0x3c 0xd5
39840x29 0x13 0x3e 0xd5
39850x9 0x20 0x38 0xd5
39860x9 0x20 0x3c 0xd5
39870x9 0x20 0x3e 0xd5
39880x29 0x20 0x38 0xd5
39890x49 0x20 0x38 0xd5
39900x49 0x20 0x3c 0xd5
39910x49 0x20 0x3e 0xd5
39920x9 0x21 0x3c 0xd5
39930x49 0x21 0x3c 0xd5
39940x9 0x30 0x3c 0xd5
39950x9 0x40 0x38 0xd5
39960x9 0x40 0x3c 0xd5
39970x9 0x40 0x3e 0xd5
39980x29 0x40 0x38 0xd5
39990x29 0x40 0x3c 0xd5
40000x29 0x40 0x3e 0xd5
40010x9 0x41 0x38 0xd5
40020x9 0x41 0x3c 0xd5
40030x9 0x41 0x3e 0xd5
40040x9 0x42 0x38 0xd5
40050x9 0x42 0x3b 0xd5
40060x29 0x42 0x3b 0xd5
40070x49 0x42 0x38 0xd5
40080x9 0x43 0x3c 0xd5
40090x29 0x43 0x3c 0xd5
40100x49 0x43 0x3c 0xd5
40110x69 0x43 0x3c 0xd5
40120x9 0x44 0x3b 0xd5
40130x29 0x44 0x3b 0xd5
40140x9 0x45 0x3b 0xd5
40150x29 0x45 0x3b 0xd5
40160x29 0x50 0x3c 0xd5
40170x9 0x51 0x38 0xd5
40180x9 0x51 0x3c 0xd5
40190x9 0x51 0x3e 0xd5
40200x29 0x51 0x38 0xd5
40210x29 0x51 0x3c 0xd5
40220x29 0x51 0x3e 0xd5
40230x9 0x52 0x38 0xd5
40240x9 0x52 0x3c 0xd5
40250x9 0x52 0x3e 0xd5
40260x9 0x53 0x3c 0xd5
40270x9 0x60 0x38 0xd5
40280x9 0x60 0x3c 0xd5
40290x9 0x60 0x3e 0xd5
40300x89 0x60 0x3c 0xd5
40310x9 0x74 0x38 0xd5
40320x9 0x9c 0x3b 0xd5
40330x29 0x9c 0x3b 0xd5
40340x49 0x9c 0x3b 0xd5
40350x69 0x9c 0x3b 0xd5
40360xa9 0x9c 0x3b 0xd5
40370xc9 0x9c 0x3b 0xd5
40380xe9 0x9c 0x3b 0xd5
40390x9 0x9d 0x3b 0xd5
40400x29 0x9d 0x3b 0xd5
40410x49 0x9d 0x3b 0xd5
40420x9 0x9e 0x3b 0xd5
40430x29 0x9e 0x38 0xd5
40440x49 0x9e 0x38 0xd5
40450x69 0x9e 0x3b 0xd5
40460x9 0xa2 0x38 0xd5
40470x9 0xa2 0x3c 0xd5
40480x9 0xa2 0x3e 0xd5
40490x9 0xa3 0x38 0xd5
40500x9 0xa3 0x3c 0xd5
40510x9 0xa3 0x3e 0xd5
40520x9 0xc0 0x38 0xd5
40530x9 0xc0 0x3c 0xd5
40540x9 0xc0 0x3e 0xd5
40550x29 0xc0 0x38 0xd5
40560x29 0xc0 0x3c 0xd5
40570x29 0xc0 0x3e 0xd5
40580x49 0xc0 0x38 0xd5
40590x49 0xc0 0x3c 0xd5
40600x49 0xc0 0x3e 0xd5
40610x9 0xc1 0x38 0xd5
40620x29 0xd0 0x38 0xd5
40630x49 0xd0 0x3b 0xd5
40640x49 0xd0 0x3c 0xd5
40650x49 0xd0 0x3e 0xd5
40660x69 0xd0 0x3b 0xd5
40670x89 0xd0 0x38 0xd5
40680x9 0xe0 0x3b 0xd5
40690x29 0xe0 0x3b 0xd5
40700x49 0xe0 0x3b 0xd5
40710x69 0xe0 0x3c 0xd5
40720x9 0xe1 0x38 0xd5
40730x9 0xe1 0x3c 0xd5
40740x9 0xe2 0x3b 0xd5
40750x9 0xe2 0x3c 0xd5
40760x9 0xe2 0x3f 0xd5
40770x29 0xe2 0x3b 0xd5
40780x29 0xe2 0x3c 0xd5
40790x29 0xe2 0x3f 0xd5
40800x49 0xe2 0x3b 0xd5
40810x49 0xe2 0x3c 0xd5
40820x49 0xe2 0x3f 0xd5
40830x9 0xe3 0x3b 0xd5
40840x29 0xe3 0x3b 0xd5
40850x49 0xe3 0x3b 0xd5
40860x9 0xe8 0x3b 0xd5
40870x29 0xe8 0x3b 0xd5
40880x49 0xe8 0x3b 0xd5
40890x69 0xe8 0x3b 0xd5
40900x89 0xe8 0x3b 0xd5
40910xa9 0xe8 0x3b 0xd5
40920xc9 0xe8 0x3b 0xd5
40930xe9 0xe8 0x3b 0xd5
40940x9 0xe9 0x3b 0xd5
40950x29 0xe9 0x3b 0xd5
40960x49 0xe9 0x3b 0xd5
40970x69 0xe9 0x3b 0xd5
40980x89 0xe9 0x3b 0xd5
40990xa9 0xe9 0x3b 0xd5
41000xc9 0xe9 0x3b 0xd5
41010xe9 0xe9 0x3b 0xd5
41020x9 0xea 0x3b 0xd5
41030x29 0xea 0x3b 0xd5
41040x49 0xea 0x3b 0xd5
41050x69 0xea 0x3b 0xd5
41060x89 0xea 0x3b 0xd5
41070xa9 0xea 0x3b 0xd5
41080xc9 0xea 0x3b 0xd5
41090xe9 0xea 0x3b 0xd5
41100x9 0xeb 0x3b 0xd5
41110x29 0xeb 0x3b 0xd5
41120x49 0xeb 0x3b 0xd5
41130x69 0xeb 0x3b 0xd5
41140x89 0xeb 0x3b 0xd5
41150xa9 0xeb 0x3b 0xd5
41160xc9 0xeb 0x3b 0xd5
41170xe9 0xef 0x3b 0xd5
41180x9 0xec 0x3b 0xd5
41190x29 0xec 0x3b 0xd5
41200x49 0xec 0x3b 0xd5
41210x69 0xec 0x3b 0xd5
41220x89 0xec 0x3b 0xd5
41230xa9 0xec 0x3b 0xd5
41240xc9 0xec 0x3b 0xd5
41250xe9 0xec 0x3b 0xd5
41260x9 0xed 0x3b 0xd5
41270x29 0xed 0x3b 0xd5
41280x49 0xed 0x3b 0xd5
41290x69 0xed 0x3b 0xd5
41300x89 0xed 0x3b 0xd5
41310xa9 0xed 0x3b 0xd5
41320xc9 0xed 0x3b 0xd5
41330xe9 0xed 0x3b 0xd5
41340x9 0xee 0x3b 0xd5
41350x29 0xee 0x3b 0xd5
41360x49 0xee 0x3b 0xd5
41370x69 0xee 0x3b 0xd5
41380x89 0xee 0x3b 0xd5
41390xa9 0xee 0x3b 0xd5
41400xc9 0xee 0x3b 0xd5
41410xe9 0xee 0x3b 0xd5
41420x9 0xef 0x3b 0xd5
41430x29 0xef 0x3b 0xd5
41440x49 0xef 0x3b 0xd5
41450x69 0xef 0x3b 0xd5
41460x89 0xef 0x3b 0xd5
41470xa9 0xef 0x3b 0xd5
41480xc9 0xef 0x3b 0xd5
4149
4150# CHECK: mrs     x12, s3_7_c15_c1_5
4151# CHECK: mrs     x13, s3_2_c11_c15_7
4152# CHECK: msr     s3_0_c15_c0_0, x12
4153# CHECK: msr     s3_7_c11_c13_7, x5
41540xac 0xf1 0x3f 0xd5
41550xed 0xbf 0x3a 0xd5
41560x0c 0xf0 0x18 0xd5
41570xe5 0xbd 0x1f 0xd5
4158
4159#------------------------------------------------------------------------------
4160# Test and branch (immediate)
4161#------------------------------------------------------------------------------
4162
4163# CHECK: tbz     x12, #62, #0
4164# CHECK: tbz     x12, #62, #4
4165# CHECK: tbz     x12, #62, #-32768
4166# CHECK: tbnz    x12, #60, #32764
41670x0c 0x00 0xf0 0xb6
41680x2c 0x00 0xf0 0xb6
41690x0c 0x00 0xf4 0xb6
41700xec 0xff 0xe3 0xb7
4171
4172#------------------------------------------------------------------------------
4173# Unconditional branch (immediate)
4174#------------------------------------------------------------------------------
4175
4176# CHECK: b        #4
4177# CHECK: b        #-4
4178# CHECK: b        #134217724
41790x01 0x00 0x00 0x14
41800xff 0xff 0xff 0x17
41810xff 0xff 0xff 0x15
4182
4183#------------------------------------------------------------------------------
4184# Unconditional branch (register)
4185#------------------------------------------------------------------------------
4186
4187# CHECK: br       x20
4188# CHECK: blr      xzr
4189# CHECK: ret      x10
41900x80 0x2 0x1f 0xd6
41910xe0 0x3 0x3f 0xd6
41920x40 0x1 0x5f 0xd6
4193
4194# CHECK: ret
4195# CHECK: eret
4196# CHECK: drps
41970xc0 0x3 0x5f 0xd6
41980xe0 0x3 0x9f 0xd6
41990xe0 0x3 0xbf 0xd6
4200
4201