]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Vendor import of llvm trunk r239412:
[FreeBSD/FreeBSD.git] / test / MC / Disassembler / AArch64 / basic-a64-instructions.txt
1 # RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2 # RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
3
4 #------------------------------------------------------------------------------
5 # Add/sub (immediate)
6 #------------------------------------------------------------------------------
7 # CHECK: add      w4, w5, #0
8 # CHECK: add      w2, w3, #4095
9 # CHECK: add      w30, w29, #1, lsl #12
10 # CHECK: add      w13, w5, #4095, lsl #12
11 # CHECK: add      x5, x7, #1638
12 0xa4 0x0 0x0 0x11
13 0x62 0xfc 0x3f 0x11
14 0xbe 0x7 0x40 0x11
15 0xad 0xfc 0x7f 0x11
16 0xe5 0x98 0x19 0x91
17
18 # CHECK: add      w20, wsp, #801
19 # CHECK: add      wsp, wsp, #1104
20 # CHECK: add      wsp, w30, #4084
21 0xf4 0x87 0xc 0x11
22 0xff 0x43 0x11 0x11
23 0xdf 0xd3 0x3f 0x11
24
25 # CHECK: add      x0, x24, #291
26 # CHECK: add      x3, x24, #4095, lsl #12
27 # CHECK: add      x8, sp, #1074
28 # CHECK: add      sp, x29, #3816
29 0x0 0x8f 0x4 0x91
30 0x3 0xff 0x7f 0x91
31 0xe8 0xcb 0x10 0x91
32 0xbf 0xa3 0x3b 0x91
33
34 # CHECK: sub      w0, wsp, #4077
35 # CHECK: sub      w4, w20, #546, lsl #12
36 # CHECK: sub      sp, sp, #288
37 # CHECK: sub      wsp, w19, #16
38 0xe0 0xb7 0x3f 0x51
39 0x84 0x8a 0x48 0x51
40 0xff 0x83 0x4 0xd1
41 0x7f 0x42 0x0 0x51
42
43
44 # CHECK: adds     w13, w23, #291, lsl #12
45 # CHECK: cmn      w2, #4095
46 # CHECK: adds     w20, wsp, #0
47 # CHECK: cmn      x3, #1, lsl #12
48 0xed 0x8e 0x44 0x31
49 0x5f 0xfc 0x3f 0x31
50 0xf4 0x3 0x0 0x31
51 0x7f 0x4 0x40 0xb1
52
53 # CHECK: cmp      sp, #20, lsl #12
54 # CHECK: cmp      x30, #4095
55 # CHECK: subs     x4, sp, #3822
56 0xff 0x53 0x40 0xf1
57 0xdf 0xff 0x3f 0xf1
58 0xe4 0xbb 0x3b 0xf1
59
60 # These should really be CMN
61 # CHECK: cmn      w3, #291, lsl #12
62 # CHECK: cmn      wsp, #1365
63 # CHECK: cmn      sp, #1092, lsl #12
64 0x7f 0x8c 0x44 0x31
65 0xff 0x57 0x15 0x31
66 0xff 0x13 0x51 0xb1
67
68 # CHECK: mov      sp, x30
69 # CHECK: mov      wsp, w20
70 # CHECK: mov      x11, sp
71 # CHECK: mov      w24, wsp
72 0xdf 0x3 0x0 0x91
73 0x9f 0x2 0x0 0x11
74 0xeb 0x3 0x0 0x91
75 0xf8 0x3 0x0 0x11
76
77 #------------------------------------------------------------------------------
78 # Add-subtract (shifted register)
79 #------------------------------------------------------------------------------
80
81 # CHECK: add      w3, w5, w7
82 # CHECK: add      wzr, w3, w5
83 # CHECK: add      w20, wzr, w4
84 # CHECK: add      w4, w6, wzr
85 # CHECK: add      w11, w13, w15
86 # CHECK: add      w9, w3, wzr, lsl #10
87 # CHECK: add      w17, w29, w20, lsl #31
88 # CHECK: add      w21, w22, w23, lsr #0
89 # CHECK: add      w24, w25, w26, lsr #18
90 # CHECK: add      w27, w28, w29, lsr #31
91 # CHECK: add      w2, w3, w4, asr #0
92 # CHECK: add      w5, w6, w7, asr #21
93 # CHECK: add      w8, w9, w10, asr #31
94 0xa3 0x0 0x7 0xb
95 0x7f 0x0 0x5 0xb
96 0xf4 0x3 0x4 0xb
97 0xc4 0x0 0x1f 0xb
98 0xab 0x1 0xf 0xb
99 0x69 0x28 0x1f 0xb
100 0xb1 0x7f 0x14 0xb
101 0xd5 0x2 0x57 0xb
102 0x38 0x4b 0x5a 0xb
103 0x9b 0x7f 0x5d 0xb
104 0x62 0x0 0x84 0xb
105 0xc5 0x54 0x87 0xb
106 0x28 0x7d 0x8a 0xb
107
108 # CHECK: add      x3, x5, x7
109 # CHECK: add      xzr, x3, x5
110 # CHECK: add      x20, xzr, x4
111 # CHECK: add      x4, x6, xzr
112 # CHECK: add      x11, x13, x15
113 # CHECK: add      x9, x3, xzr, lsl #10
114 # CHECK: add      x17, x29, x20, lsl #63
115 # CHECK: add      x21, x22, x23, lsr #0
116 # CHECK: add      x24, x25, x26, lsr #18
117 # CHECK: add      x27, x28, x29, lsr #63
118 # CHECK: add      x2, x3, x4, asr #0
119 # CHECK: add      x5, x6, x7, asr #21
120 # CHECK: add      x8, x9, x10, asr #63
121 0xa3 0x0 0x7 0x8b
122 0x7f 0x0 0x5 0x8b
123 0xf4 0x3 0x4 0x8b
124 0xc4 0x0 0x1f 0x8b
125 0xab 0x1 0xf 0x8b
126 0x69 0x28 0x1f 0x8b
127 0xb1 0xff 0x14 0x8b
128 0xd5 0x2 0x57 0x8b
129 0x38 0x4b 0x5a 0x8b
130 0x9b 0xff 0x5d 0x8b
131 0x62 0x0 0x84 0x8b
132 0xc5 0x54 0x87 0x8b
133 0x28 0xfd 0x8a 0x8b
134
135 # CHECK: adds     w3, w5, w7
136 # CHECK: cmn      w3, w5
137 # CHECK: adds     w20, wzr, w4
138 # CHECK: adds     w4, w6, wzr
139 # CHECK: adds     w11, w13, w15
140 # CHECK: adds     w9, w3, wzr, lsl #10
141 # CHECK: adds     w17, w29, w20, lsl #31
142 # CHECK: adds     w21, w22, w23, lsr #0
143 # CHECK: adds     w24, w25, w26, lsr #18
144 # CHECK: adds     w27, w28, w29, lsr #31
145 # CHECK: adds     w2, w3, w4, asr #0
146 # CHECK: adds     w5, w6, w7, asr #21
147 # CHECK: adds     w8, w9, w10, asr #31
148 0xa3 0x0 0x7 0x2b
149 0x7f 0x0 0x5 0x2b
150 0xf4 0x3 0x4 0x2b
151 0xc4 0x0 0x1f 0x2b
152 0xab 0x1 0xf 0x2b
153 0x69 0x28 0x1f 0x2b
154 0xb1 0x7f 0x14 0x2b
155 0xd5 0x2 0x57 0x2b
156 0x38 0x4b 0x5a 0x2b
157 0x9b 0x7f 0x5d 0x2b
158 0x62 0x0 0x84 0x2b
159 0xc5 0x54 0x87 0x2b
160 0x28 0x7d 0x8a 0x2b
161
162 # CHECK: adds     x3, x5, x7
163 # CHECK: cmn      x3, x5
164 # CHECK: adds     x20, xzr, x4
165 # CHECK: adds     x4, x6, xzr
166 # CHECK: adds     x11, x13, x15
167 # CHECK: adds     x9, x3, xzr, lsl #10
168 # CHECK: adds     x17, x29, x20, lsl #63
169 # CHECK: adds     x21, x22, x23, lsr #0
170 # CHECK: adds     x24, x25, x26, lsr #18
171 # CHECK: adds     x27, x28, x29, lsr #63
172 # CHECK: adds     x2, x3, x4, asr #0
173 # CHECK: adds     x5, x6, x7, asr #21
174 # CHECK: adds     x8, x9, x10, asr #63
175 0xa3 0x0 0x7 0xab
176 0x7f 0x0 0x5 0xab
177 0xf4 0x3 0x4 0xab
178 0xc4 0x0 0x1f 0xab
179 0xab 0x1 0xf 0xab
180 0x69 0x28 0x1f 0xab
181 0xb1 0xff 0x14 0xab
182 0xd5 0x2 0x57 0xab
183 0x38 0x4b 0x5a 0xab
184 0x9b 0xff 0x5d 0xab
185 0x62 0x0 0x84 0xab
186 0xc5 0x54 0x87 0xab
187 0x28 0xfd 0x8a 0xab
188
189 # CHECK: sub      w3, w5, w7
190 # CHECK: sub      wzr, w3, w5
191 # CHECK: {{sub      w20, wzr, w4|neg w20, w4}}
192 # CHECK: sub      w4, w6, wzr
193 # CHECK: sub      w11, w13, w15
194 # CHECK: sub      w9, w3, wzr, lsl #10
195 # CHECK: sub      w17, w29, w20, lsl #31
196 # CHECK: sub      w21, w22, w23, lsr #0
197 # CHECK: sub      w24, w25, w26, lsr #18
198 # CHECK: sub      w27, w28, w29, lsr #31
199 # CHECK: sub      w2, w3, w4, asr #0
200 # CHECK: sub      w5, w6, w7, asr #21
201 # CHECK: sub      w8, w9, w10, asr #31
202 0xa3 0x0 0x7 0x4b
203 0x7f 0x0 0x5 0x4b
204 0xf4 0x3 0x4 0x4b
205 0xc4 0x0 0x1f 0x4b
206 0xab 0x1 0xf 0x4b
207 0x69 0x28 0x1f 0x4b
208 0xb1 0x7f 0x14 0x4b
209 0xd5 0x2 0x57 0x4b
210 0x38 0x4b 0x5a 0x4b
211 0x9b 0x7f 0x5d 0x4b
212 0x62 0x0 0x84 0x4b
213 0xc5 0x54 0x87 0x4b
214 0x28 0x7d 0x8a 0x4b
215
216 # CHECK: sub      x3, x5, x7
217 # CHECK: sub      xzr, x3, x5
218 # CHECK: {{sub      x20, xzr, x4|neg x20, x4}}
219 # CHECK: sub      x4, x6, xzr
220 # CHECK: sub      x11, x13, x15
221 # CHECK: sub      x9, x3, xzr, lsl #10
222 # CHECK: sub      x17, x29, x20, lsl #63
223 # CHECK: sub      x21, x22, x23, lsr #0
224 # CHECK: sub      x24, x25, x26, lsr #18
225 # CHECK: sub      x27, x28, x29, lsr #63
226 # CHECK: sub      x2, x3, x4, asr #0
227 # CHECK: sub      x5, x6, x7, asr #21
228 # CHECK: sub      x8, x9, x10, asr #63
229 0xa3 0x0 0x7 0xcb
230 0x7f 0x0 0x5 0xcb
231 0xf4 0x3 0x4 0xcb
232 0xc4 0x0 0x1f 0xcb
233 0xab 0x1 0xf 0xcb
234 0x69 0x28 0x1f 0xcb
235 0xb1 0xff 0x14 0xcb
236 0xd5 0x2 0x57 0xcb
237 0x38 0x4b 0x5a 0xcb
238 0x9b 0xff 0x5d 0xcb
239 0x62 0x0 0x84 0xcb
240 0xc5 0x54 0x87 0xcb
241 0x28 0xfd 0x8a 0xcb
242
243 # CHECK: subs     w3, w5, w7
244 # CHECK: cmp      w3, w5
245 # CHECK: {{subs     w20, wzr, w4|negs w20, w4}}
246 # CHECK: subs     w4, w6, wzr
247 # CHECK: subs     w11, w13, w15
248 # CHECK: subs     w9, w3, wzr, lsl #10
249 # CHECK: subs     w17, w29, w20, lsl #31
250 # CHECK: subs     w21, w22, w23, lsr #0
251 # CHECK: subs     w24, w25, w26, lsr #18
252 # CHECK: subs     w27, w28, w29, lsr #31
253 # CHECK: subs     w2, w3, w4, asr #0
254 # CHECK: subs     w5, w6, w7, asr #21
255 # CHECK: subs     w8, w9, w10, asr #31
256 0xa3 0x0 0x7 0x6b
257 0x7f 0x0 0x5 0x6b
258 0xf4 0x3 0x4 0x6b
259 0xc4 0x0 0x1f 0x6b
260 0xab 0x1 0xf 0x6b
261 0x69 0x28 0x1f 0x6b
262 0xb1 0x7f 0x14 0x6b
263 0xd5 0x2 0x57 0x6b
264 0x38 0x4b 0x5a 0x6b
265 0x9b 0x7f 0x5d 0x6b
266 0x62 0x0 0x84 0x6b
267 0xc5 0x54 0x87 0x6b
268 0x28 0x7d 0x8a 0x6b
269
270 # CHECK: subs     x3, x5, x7
271 # CHECK: cmp      x3, x5
272 # CHECK: {{subs     x20, xzr, x4|negs x20, x4}}
273 # CHECK: subs     x4, x6, xzr
274 # CHECK: subs     x11, x13, x15
275 # CHECK: subs     x9, x3, xzr, lsl #10
276 # CHECK: subs     x17, x29, x20, lsl #63
277 # CHECK: subs     x21, x22, x23, lsr #0
278 # CHECK: subs     x24, x25, x26, lsr #18
279 # CHECK: subs     x27, x28, x29, lsr #63
280 # CHECK: subs     x2, x3, x4, asr #0
281 # CHECK: subs     x5, x6, x7, asr #21
282 # CHECK: subs     x8, x9, x10, asr #63
283 0xa3 0x0 0x7 0xeb
284 0x7f 0x0 0x5 0xeb
285 0xf4 0x3 0x4 0xeb
286 0xc4 0x0 0x1f 0xeb
287 0xab 0x1 0xf 0xeb
288 0x69 0x28 0x1f 0xeb
289 0xb1 0xff 0x14 0xeb
290 0xd5 0x2 0x57 0xeb
291 0x38 0x4b 0x5a 0xeb
292 0x9b 0xff 0x5d 0xeb
293 0x62 0x0 0x84 0xeb
294 0xc5 0x54 0x87 0xeb
295 0x28 0xfd 0x8a 0xeb
296
297 # CHECK: cmn      w0, w3
298 # CHECK: cmn      wzr, w4
299 # CHECK: cmn      w5, wzr
300 # CHECK: cmn      w6, w7
301 # CHECK: cmn      w8, w9, lsl #15
302 # CHECK: cmn      w10, w11, lsl #31
303 # CHECK: cmn      w12, w13, lsr #0
304 # CHECK: cmn      w14, w15, lsr #21
305 # CHECK: cmn      w16, w17, lsr #31
306 # CHECK: cmn      w18, w19, asr #0
307 # CHECK: cmn      w20, w21, asr #22
308 # CHECK: cmn      w22, w23, asr #31
309 0x1f 0x0 0x3 0x2b
310 0xff 0x3 0x4 0x2b
311 0xbf 0x0 0x1f 0x2b
312 0xdf 0x0 0x7 0x2b
313 0x1f 0x3d 0x9 0x2b
314 0x5f 0x7d 0xb 0x2b
315 0x9f 0x1 0x4d 0x2b
316 0xdf 0x55 0x4f 0x2b
317 0x1f 0x7e 0x51 0x2b
318 0x5f 0x2 0x93 0x2b
319 0x9f 0x5a 0x95 0x2b
320 0xdf 0x7e 0x97 0x2b
321
322 # CHECK: cmn      x0, x3
323 # CHECK: cmn      xzr, x4
324 # CHECK: cmn      x5, xzr
325 # CHECK: cmn      x6, x7
326 # CHECK: cmn      x8, x9, lsl #15
327 # CHECK: cmn      x10, x11, lsl #63
328 # CHECK: cmn      x12, x13, lsr #0
329 # CHECK: cmn      x14, x15, lsr #41
330 # CHECK: cmn      x16, x17, lsr #63
331 # CHECK: cmn      x18, x19, asr #0
332 # CHECK: cmn      x20, x21, asr #55
333 # CHECK: cmn      x22, x23, asr #63
334 0x1f 0x0 0x3 0xab
335 0xff 0x3 0x4 0xab
336 0xbf 0x0 0x1f 0xab
337 0xdf 0x0 0x7 0xab
338 0x1f 0x3d 0x9 0xab
339 0x5f 0xfd 0xb 0xab
340 0x9f 0x1 0x4d 0xab
341 0xdf 0xa5 0x4f 0xab
342 0x1f 0xfe 0x51 0xab
343 0x5f 0x2 0x93 0xab
344 0x9f 0xde 0x95 0xab
345 0xdf 0xfe 0x97 0xab
346
347 # CHECK: cmp      w0, w3
348 # CHECK: cmp      wzr, w4
349 # CHECK: cmp      w5, wzr
350 # CHECK: cmp      w6, w7
351 # CHECK: cmp      w8, w9, lsl #15
352 # CHECK: cmp      w10, w11, lsl #31
353 # CHECK: cmp      w12, w13, lsr #0
354 # CHECK: cmp      w14, w15, lsr #21
355 # CHECK: cmp      w16, w17, lsr #31
356 # CHECK: cmp      w18, w19, asr #0
357 # CHECK: cmp      w20, w21, asr #22
358 # CHECK: cmp      w22, w23, asr #31
359 0x1f 0x0 0x3 0x6b
360 0xff 0x3 0x4 0x6b
361 0xbf 0x0 0x1f 0x6b
362 0xdf 0x0 0x7 0x6b
363 0x1f 0x3d 0x9 0x6b
364 0x5f 0x7d 0xb 0x6b
365 0x9f 0x1 0x4d 0x6b
366 0xdf 0x55 0x4f 0x6b
367 0x1f 0x7e 0x51 0x6b
368 0x5f 0x2 0x93 0x6b
369 0x9f 0x5a 0x95 0x6b
370 0xdf 0x7e 0x97 0x6b
371
372 # CHECK: cmp      x0, x3
373 # CHECK: cmp      xzr, x4
374 # CHECK: cmp      x5, xzr
375 # CHECK: cmp      x6, x7
376 # CHECK: cmp      x8, x9, lsl #15
377 # CHECK: cmp      x10, x11, lsl #63
378 # CHECK: cmp      x12, x13, lsr #0
379 # CHECK: cmp      x14, x15, lsr #41
380 # CHECK: cmp      x16, x17, lsr #63
381 # CHECK: cmp      x18, x19, asr #0
382 # CHECK: cmp      x20, x21, asr #55
383 # CHECK: cmp      x22, x23, asr #63
384 0x1f 0x0 0x3 0xeb
385 0xff 0x3 0x4 0xeb
386 0xbf 0x0 0x1f 0xeb
387 0xdf 0x0 0x7 0xeb
388 0x1f 0x3d 0x9 0xeb
389 0x5f 0xfd 0xb 0xeb
390 0x9f 0x1 0x4d 0xeb
391 0xdf 0xa5 0x4f 0xeb
392 0x1f 0xfe 0x51 0xeb
393 0x5f 0x2 0x93 0xeb
394 0x9f 0xde 0x95 0xeb
395 0xdf 0xfe 0x97 0xeb
396
397 # CHECK: {{sub      w29, wzr|neg w29}}, w30
398 # CHECK: {{sub      w30, wzr|neg w30}}, wzr
399 # CHECK: {{sub      wzr, wzr|neg wzr}}, w0
400 # CHECK: {{sub      w28, wzr|neg w28}}, w27
401 # CHECK: {{sub      w26, wzr|neg w26}}, w25, lsl #29
402 # CHECK: {{sub      w24, wzr|neg w24}}, w23, lsl #31
403 # CHECK: {{sub      w22, wzr|neg w22}}, w21, lsr #0
404 # CHECK: {{sub      w20, wzr|neg w20}}, w19, lsr #1
405 # CHECK: {{sub      w18, wzr|neg w18}}, w17, lsr #31
406 # CHECK: {{sub      w16, wzr|neg w16}}, w15, asr #0
407 # CHECK: {{sub      w14, wzr|neg w14}}, w13, asr #12
408 # CHECK: {{sub      w12, wzr|neg w12}}, w11, asr #31
409 0xfd 0x3 0x1e 0x4b
410 0xfe 0x3 0x1f 0x4b
411 0xff 0x3 0x0 0x4b
412 0xfc 0x3 0x1b 0x4b
413 0xfa 0x77 0x19 0x4b
414 0xf8 0x7f 0x17 0x4b
415 0xf6 0x3 0x55 0x4b
416 0xf4 0x7 0x53 0x4b
417 0xf2 0x7f 0x51 0x4b
418 0xf0 0x3 0x8f 0x4b
419 0xee 0x33 0x8d 0x4b
420 0xec 0x7f 0x8b 0x4b
421
422 # CHECK: {{sub      x29, xzr|neg x29}}, x30
423 # CHECK: {{sub      x30, xzr|neg x30}}, xzr
424 # CHECK: {{sub      xzr, xzr|neg xzr}}, x0
425 # CHECK: {{sub      x28, xzr|neg x28}}, x27
426 # CHECK: {{sub      x26, xzr|neg x26}}, x25, lsl #29
427 # CHECK: {{sub      x24, xzr|neg x24}}, x23, lsl #31
428 # CHECK: {{sub      x22, xzr|neg x22}}, x21, lsr #0
429 # CHECK: {{sub      x20, xzr|neg x20}}, x19, lsr #1
430 # CHECK: {{sub      x18, xzr|neg x18}}, x17, lsr #31
431 # CHECK: {{sub      x16, xzr|neg x16}}, x15, asr #0
432 # CHECK: {{sub      x14, xzr|neg x14}}, x13, asr #12
433 # CHECK: {{sub      x12, xzr|neg x12}}, x11, asr #31
434 0xfd 0x3 0x1e 0xcb
435 0xfe 0x3 0x1f 0xcb
436 0xff 0x3 0x0 0xcb
437 0xfc 0x3 0x1b 0xcb
438 0xfa 0x77 0x19 0xcb
439 0xf8 0x7f 0x17 0xcb
440 0xf6 0x3 0x55 0xcb
441 0xf4 0x7 0x53 0xcb
442 0xf2 0x7f 0x51 0xcb
443 0xf0 0x3 0x8f 0xcb
444 0xee 0x33 0x8d 0xcb
445 0xec 0x7f 0x8b 0xcb
446
447 # CHECK: {{subs     w29, wzr|negs w29}}, w30
448 # CHECK: {{subs     w30, wzr|negs w30}}, wzr
449 # CHECK: cmp      wzr, w0
450 # CHECK: {{subs     w28, wzr|negs w28}}, w27
451 # CHECK: {{subs     w26, wzr|negs w26}}, w25, lsl #29
452 # CHECK: {{subs     w24, wzr|negs w24}}, w23, lsl #31
453 # CHECK: {{subs     w22, wzr|negs w22}}, w21, lsr #0
454 # CHECK: {{subs     w20, wzr|negs w20}}, w19, lsr #1
455 # CHECK: {{subs     w18, wzr|negs w18}}, w17, lsr #31
456 # CHECK: {{subs     w16, wzr|negs w16}}, w15, asr #0
457 # CHECK: {{subs     w14, wzr|negs w14}}, w13, asr #12
458 # CHECK: {{subs     w12, wzr|negs w12}}, w11, asr #31
459 0xfd 0x3 0x1e 0x6b
460 0xfe 0x3 0x1f 0x6b
461 0xff 0x3 0x0 0x6b
462 0xfc 0x3 0x1b 0x6b
463 0xfa 0x77 0x19 0x6b
464 0xf8 0x7f 0x17 0x6b
465 0xf6 0x3 0x55 0x6b
466 0xf4 0x7 0x53 0x6b
467 0xf2 0x7f 0x51 0x6b
468 0xf0 0x3 0x8f 0x6b
469 0xee 0x33 0x8d 0x6b
470 0xec 0x7f 0x8b 0x6b
471
472 # CHECK: {{subs     x29, xzr|negs x29}}, x30
473 # CHECK: {{subs     x30, xzr|negs x30}}, xzr
474 # CHECK: cmp      xzr, x0
475 # CHECK: {{subs     x28, xzr|negs x28}}, x27
476 # CHECK: {{subs     x26, xzr|negs x26}}, x25, lsl #29
477 # CHECK: {{subs     x24, xzr|negs x24}}, x23, lsl #31
478 # CHECK: {{subs     x22, xzr|negs x22}}, x21, lsr #0
479 # CHECK: {{subs     x20, xzr|negs x20}}, x19, lsr #1
480 # CHECK: {{subs     x18, xzr|negs x18}}, x17, lsr #31
481 # CHECK: {{subs     x16, xzr|negs x16}}, x15, asr #0
482 # CHECK: {{subs     x14, xzr|negs x14}}, x13, asr #12
483 # CHECK: {{subs     x12, xzr|negs x12}}, x11, asr #31
484 0xfd 0x3 0x1e 0xeb
485 0xfe 0x3 0x1f 0xeb
486 0xff 0x3 0x0 0xeb
487 0xfc 0x3 0x1b 0xeb
488 0xfa 0x77 0x19 0xeb
489 0xf8 0x7f 0x17 0xeb
490 0xf6 0x3 0x55 0xeb
491 0xf4 0x7 0x53 0xeb
492 0xf2 0x7f 0x51 0xeb
493 0xf0 0x3 0x8f 0xeb
494 0xee 0x33 0x8d 0xeb
495 0xec 0x7f 0x8b 0xeb
496
497 #------------------------------------------------------------------------------
498 # Add-subtract (shifted register)
499 #------------------------------------------------------------------------------
500
501 # CHECK: adc      w29, w27, w25
502 # CHECK: adc      wzr, w3, w4
503 # CHECK: adc      w9, wzr, w10
504 # CHECK: adc      w20, w0, wzr
505 0x7d 0x3 0x19 0x1a
506 0x7f 0x0 0x4 0x1a
507 0xe9 0x3 0xa 0x1a
508 0x14 0x0 0x1f 0x1a
509
510 # CHECK: adc      x29, x27, x25
511 # CHECK: adc      xzr, x3, x4
512 # CHECK: adc      x9, xzr, x10
513 # CHECK: adc      x20, x0, xzr
514 0x7d 0x3 0x19 0x9a
515 0x7f 0x0 0x4 0x9a
516 0xe9 0x3 0xa 0x9a
517 0x14 0x0 0x1f 0x9a
518
519 # CHECK: adcs     w29, w27, w25
520 # CHECK: adcs     wzr, w3, w4
521 # CHECK: adcs     w9, wzr, w10
522 # CHECK: adcs     w20, w0, wzr
523 0x7d 0x3 0x19 0x3a
524 0x7f 0x0 0x4 0x3a
525 0xe9 0x3 0xa 0x3a
526 0x14 0x0 0x1f 0x3a
527
528 # CHECK: adcs     x29, x27, x25
529 # CHECK: adcs     xzr, x3, x4
530 # CHECK: adcs     x9, xzr, x10
531 # CHECK: adcs     x20, x0, xzr
532 0x7d 0x3 0x19 0xba
533 0x7f 0x0 0x4 0xba
534 0xe9 0x3 0xa 0xba
535 0x14 0x0 0x1f 0xba
536
537 # CHECK: sbc      w29, w27, w25
538 # CHECK: sbc      wzr, w3, w4
539 # CHECK: ngc      w9, w10
540 # CHECK: sbc      w20, w0, wzr
541 0x7d 0x3 0x19 0x5a
542 0x7f 0x0 0x4 0x5a
543 0xe9 0x3 0xa 0x5a
544 0x14 0x0 0x1f 0x5a
545
546 # CHECK: sbc      x29, x27, x25
547 # CHECK: sbc      xzr, x3, x4
548 # CHECK: ngc      x9, x10
549 # CHECK: sbc      x20, x0, xzr
550 0x7d 0x3 0x19 0xda
551 0x7f 0x0 0x4 0xda
552 0xe9 0x3 0xa 0xda
553 0x14 0x0 0x1f 0xda
554
555 # CHECK: sbcs     w29, w27, w25
556 # CHECK: sbcs     wzr, w3, w4
557 # CHECK: ngcs     w9, w10
558 # CHECK: sbcs     w20, w0, wzr
559 0x7d 0x3 0x19 0x7a
560 0x7f 0x0 0x4 0x7a
561 0xe9 0x3 0xa 0x7a
562 0x14 0x0 0x1f 0x7a
563
564 # CHECK: sbcs     x29, x27, x25
565 # CHECK: sbcs     xzr, x3, x4
566 # CHECK: ngcs     x9, x10
567 # CHECK: sbcs     x20, x0, xzr
568 0x7d 0x3 0x19 0xfa
569 0x7f 0x0 0x4 0xfa
570 0xe9 0x3 0xa 0xfa
571 0x14 0x0 0x1f 0xfa
572
573 # CHECK: ngc      w3, w12
574 # CHECK: ngc      wzr, w9
575 # CHECK: ngc      w23, wzr
576 0xe3 0x3 0xc 0x5a
577 0xff 0x3 0x9 0x5a
578 0xf7 0x3 0x1f 0x5a
579
580 # CHECK: ngc      x29, x30
581 # CHECK: ngc      xzr, x0
582 # CHECK: ngc      x0, xzr
583 0xfd 0x3 0x1e 0xda
584 0xff 0x3 0x0 0xda
585 0xe0 0x3 0x1f 0xda
586
587 # CHECK: ngcs     w3, w12
588 # CHECK: ngcs     wzr, w9
589 # CHECK: ngcs     w23, wzr
590 0xe3 0x3 0xc 0x7a
591 0xff 0x3 0x9 0x7a
592 0xf7 0x3 0x1f 0x7a
593
594 # CHECK: ngcs     x29, x30
595 # CHECK: ngcs     xzr, x0
596 # CHECK: ngcs     x0, xzr
597 0xfd 0x3 0x1e 0xfa
598 0xff 0x3 0x0 0xfa
599 0xe0 0x3 0x1f 0xfa
600
601 #------------------------------------------------------------------------------
602 # Compare and branch (immediate)
603 #------------------------------------------------------------------------------
604
605 # CHECK: sbfx     x1, x2, #3, #2
606 # CHECK: asr      x3, x4, #63
607 # CHECK: asr      wzr, wzr, #31
608 # CHECK: sbfx     w12, w9, #0, #1
609 0x41 0x10 0x43 0x93
610 0x83 0xfc 0x7f 0x93
611 0xff 0x7f 0x1f 0x13
612 0x2c 0x1 0x0 0x13
613
614 # CHECK: ubfiz    x4, x5, #52, #11
615 # CHECK: ubfx     xzr, x4, #0, #1
616 # CHECK: ubfiz    x4, xzr, #1, #6
617 # CHECK: lsr      x5, x6, #12
618 0xa4 0x28 0x4c 0xd3
619 0x9f 0x0 0x40 0xd3
620 0xe4 0x17 0x7f 0xd3
621 0xc5 0xfc 0x4c 0xd3
622
623 # CHECK: bfi      x4, x5, #52, #11
624 # CHECK: bfxil    xzr, x4, #0, #1
625 # CHECK: bfc      x4, #1, #6
626 # CHECK: bfxil    x5, x6, #12, #52
627 0xa4 0x28 0x4c 0xb3
628 0x9f 0x0 0x40 0xb3
629 0xe4 0x17 0x7f 0xb3
630 0xc5 0xfc 0x4c 0xb3
631
632 # CHECK: sxtb     w1, w2
633 # CHECK: sxtb     xzr, w3
634 # CHECK: sxth     w9, w10
635 # CHECK: sxth     x0, w1
636 # CHECK: sxtw     x3, w30
637 0x41 0x1c 0x0 0x13
638 0x7f 0x1c 0x40 0x93
639 0x49 0x3d 0x0 0x13
640 0x20 0x3c 0x40 0x93
641 0xc3 0x7f 0x40 0x93
642
643 # CHECK: uxtb     w1, w2
644 # CHECK: uxth     w9, w10
645 # CHECK: ubfx     x3, x30, #0, #32
646 0x41 0x1c 0x0 0x53
647 0x49 0x3d 0x0 0x53
648 0xc3 0x7f 0x40 0xd3
649
650 # CHECK: asr      w3, w2, #0
651 # CHECK: asr      w9, w10, #31
652 # CHECK: asr      x20, x21, #63
653 # CHECK: asr      w1, wzr, #3
654 0x43 0x7c 0x0 0x13
655 0x49 0x7d 0x1f 0x13
656 0xb4 0xfe 0x7f 0x93
657 0xe1 0x7f 0x3 0x13
658
659 # CHECK: lsr      w3, w2, #0
660 # CHECK: lsr      w9, w10, #31
661 # CHECK: lsr      x20, x21, #63
662 # CHECK: lsr      wzr, wzr, #3
663 0x43 0x7c 0x0 0x53
664 0x49 0x7d 0x1f 0x53
665 0xb4 0xfe 0x7f 0xd3
666 0xff 0x7f 0x3 0x53
667
668 # CHECK: lsr      w3, w2, #0
669 # CHECK: lsl      w9, w10, #31
670 # CHECK: lsl      x20, x21, #63
671 # CHECK: lsl      w1, wzr, #3
672 0x43 0x7c 0x0 0x53
673 0x49 0x1 0x1 0x53
674 0xb4 0x2 0x41 0xd3
675 0xe1 0x73 0x1d 0x53
676
677 # CHECK: sbfx     w9, w10, #0, #1
678 # CHECK: sbfiz    x2, x3, #63, #1
679 # CHECK: asr      x19, x20, #0
680 # CHECK: sbfiz    x9, x10, #5, #59
681 # CHECK: asr      w9, w10, #0
682 # CHECK: sbfiz    w11, w12, #31, #1
683 # CHECK: sbfiz    w13, w14, #29, #3
684 # CHECK: sbfiz    xzr, xzr, #10, #11
685 0x49 0x1 0x0 0x13
686 0x62 0x0 0x41 0x93
687 0x93 0xfe 0x40 0x93
688 0x49 0xe9 0x7b 0x93
689 0x49 0x7d 0x0 0x13
690 0x8b 0x1 0x1 0x13
691 0xcd 0x9 0x3 0x13
692 0xff 0x2b 0x76 0x93
693
694 # CHECK: sbfx     w9, w10, #0, #1
695 # CHECK: asr      x2, x3, #63
696 # CHECK: asr      x19, x20, #0
697 # CHECK: asr      x9, x10, #5
698 # CHECK: asr      w9, w10, #0
699 # CHECK: asr      w11, w12, #31
700 # CHECK: asr      w13, w14, #29
701 # CHECK: sbfx     xzr, xzr, #10, #11
702 0x49 0x1 0x0 0x13
703 0x62 0xfc 0x7f 0x93
704 0x93 0xfe 0x40 0x93
705 0x49 0xfd 0x45 0x93
706 0x49 0x7d 0x0 0x13
707 0x8b 0x7d 0x1f 0x13
708 0xcd 0x7d 0x1d 0x13
709 0xff 0x53 0x4a 0x93
710
711 # CHECK: bfxil    w9, w10, #0, #1
712 # CHECK: bfi      x2, x3, #63, #1
713 # CHECK: bfxil    x19, x20, #0, #64
714 # CHECK: bfi      x9, x10, #5, #59
715 # CHECK: bfxil    w9, w10, #0, #32
716 # CHECK: bfi      w11, w12, #31, #1
717 # CHECK: bfi      w13, w14, #29, #3
718 # CHECK: bfc      xzr, #10, #11
719 0x49 0x1 0x0 0x33
720 0x62 0x0 0x41 0xb3
721 0x93 0xfe 0x40 0xb3
722 0x49 0xe9 0x7b 0xb3
723 0x49 0x7d 0x0 0x33
724 0x8b 0x1 0x1 0x33
725 0xcd 0x9 0x3 0x33
726 0xff 0x2b 0x76 0xb3
727
728 # CHECK: bfxil    w9, w10, #0, #1
729 # CHECK: bfxil    x2, x3, #63, #1
730 # CHECK: bfxil    x19, x20, #0, #64
731 # CHECK: bfxil    x9, x10, #5, #59
732 # CHECK: bfxil    w9, w10, #0, #32
733 # CHECK: bfxil    w11, w12, #31, #1
734 # CHECK: bfxil    w13, w14, #29, #3
735 # CHECK: bfxil    xzr, xzr, #10, #11
736 0x49 0x1 0x0 0x33
737 0x62 0xfc 0x7f 0xb3
738 0x93 0xfe 0x40 0xb3
739 0x49 0xfd 0x45 0xb3
740 0x49 0x7d 0x0 0x33
741 0x8b 0x7d 0x1f 0x33
742 0xcd 0x7d 0x1d 0x33
743 0xff 0x53 0x4a 0xb3
744
745 # CHECK: ubfx     w9, w10, #0, #1
746 # CHECK: lsl      x2, x3, #63
747 # CHECK: lsr      x19, x20, #0
748 # CHECK: lsl      x9, x10, #5
749 # CHECK: lsr      w9, w10, #0
750 # CHECK: lsl      w11, w12, #31
751 # CHECK: lsl      w13, w14, #29
752 # CHECK: ubfiz    xzr, xzr, #10, #11
753 0x49 0x1 0x0 0x53
754 0x62 0x0 0x41 0xd3
755 0x93 0xfe 0x40 0xd3
756 0x49 0xe9 0x7b 0xd3
757 0x49 0x7d 0x0 0x53
758 0x8b 0x1 0x1 0x53
759 0xcd 0x9 0x3 0x53
760 0xff 0x2b 0x76 0xd3
761
762 # CHECK: ubfx     w9, w10, #0, #1
763 # CHECK: lsr      x2, x3, #63
764 # CHECK: lsr      x19, x20, #0
765 # CHECK: lsr      x9, x10, #5
766 # CHECK: lsr      w9, w10, #0
767 # CHECK: lsr      w11, w12, #31
768 # CHECK: lsr      w13, w14, #29
769 # CHECK: ubfx     xzr, xzr, #10, #11
770 0x49 0x1 0x0 0x53
771 0x62 0xfc 0x7f 0xd3
772 0x93 0xfe 0x40 0xd3
773 0x49 0xfd 0x45 0xd3
774 0x49 0x7d 0x0 0x53
775 0x8b 0x7d 0x1f 0x53
776 0xcd 0x7d 0x1d 0x53
777 0xff 0x53 0x4a 0xd3
778
779
780 #------------------------------------------------------------------------------
781 # Compare and branch (immediate)
782 #------------------------------------------------------------------------------
783
784 # CHECK: cbz      w5, #4
785 # CHECK: cbz      x5, #0
786 # CHECK: cbnz     x2, #-4
787 # CHECK: cbnz     x26, #1048572
788 0x25 0x0 0x0 0x34
789 0x05 0x0 0x0 0xb4
790 0xe2 0xff 0xff 0xb5
791 0xfa 0xff 0x7f 0xb5
792
793 # CHECK: cbz      wzr, #0
794 # CHECK: cbnz     xzr, #0
795 0x1f 0x0 0x0 0x34
796 0x1f 0x0 0x0 0xb5
797
798 #------------------------------------------------------------------------------
799 # Conditional branch (immediate)
800 #------------------------------------------------------------------------------
801
802 # CHECK: b.ne #4
803 # CHECK: b.ge #1048572
804 # CHECK: b.ge #-4
805 0x21 0x00 0x00 0x54
806 0xea 0xff 0x7f 0x54
807 0xea 0xff 0xff 0x54
808
809 #------------------------------------------------------------------------------
810 # Conditional compare (immediate)
811 #------------------------------------------------------------------------------
812
813 # CHECK: ccmp w1, #31, #0, eq
814 # CHECK: ccmp w3, #0, #15, hs
815 # CHECK: ccmp wzr, #15, #13, hs
816 0x20 0x08 0x5f 0x7a
817 0x6f 0x28 0x40 0x7a
818 0xed 0x2b 0x4f 0x7a
819
820 # CHECK: ccmp x9, #31, #0, le
821 # CHECK: ccmp x3, #0, #15, gt
822 # CHECK: ccmp xzr, #5, #7, ne
823 0x20 0xd9 0x5f 0xfa
824 0x6f 0xc8 0x40 0xfa
825 0xe7 0x1b 0x45 0xfa
826
827 # CHECK: ccmn w1, #31, #0, eq
828 # CHECK: ccmn w3, #0, #15, hs
829 # CHECK: ccmn wzr, #15, #13, hs
830 0x20 0x08 0x5f 0x3a
831 0x6f 0x28 0x40 0x3a
832 0xed 0x2b 0x4f 0x3a
833
834 # CHECK: ccmn x9, #31, #0, le
835 # CHECK: ccmn x3, #0, #15, gt
836 # CHECK: ccmn xzr, #5, #7, ne
837 0x20 0xd9 0x5f 0xba
838 0x6f 0xc8 0x40 0xba
839 0xe7 0x1b 0x45 0xba
840
841 #------------------------------------------------------------------------------
842 # Conditional compare (register)
843 #------------------------------------------------------------------------------
844
845 # CHECK: ccmp w1, wzr, #0, eq
846 # CHECK: ccmp w3, w0, #15, hs
847 # CHECK: ccmp wzr, w15, #13, hs
848 0x20 0x00 0x5f 0x7a
849 0x6f 0x20 0x40 0x7a
850 0xed 0x23 0x4f 0x7a
851
852 # CHECK: ccmp x9, xzr, #0, le
853 # CHECK: ccmp x3, x0, #15, gt
854 # CHECK: ccmp xzr, x5, #7, ne
855 0x20 0xd1 0x5f 0xfa
856 0x6f 0xc0 0x40 0xfa
857 0xe7 0x13 0x45 0xfa
858
859 # CHECK: ccmn w1, wzr, #0, eq
860 # CHECK: ccmn w3, w0, #15, hs
861 # CHECK: ccmn wzr, w15, #13, hs
862 0x20 0x00 0x5f 0x3a
863 0x6f 0x20 0x40 0x3a
864 0xed 0x23 0x4f 0x3a
865
866 # CHECK: ccmn x9, xzr, #0, le
867 # CHECK: ccmn x3, x0, #15, gt
868 # CHECK: ccmn xzr, x5, #7, ne
869 0x20 0xd1 0x5f 0xba
870 0x6f 0xc0 0x40 0xba
871 0xe7 0x13 0x45 0xba
872
873 #------------------------------------------------------------------------------
874 # Conditional branch (immediate)
875 #------------------------------------------------------------------------------
876 # CHECK: csel     w1, w0, w19, ne
877 # CHECK: csel     wzr, w5, w9, eq
878 # CHECK: csel     w9, wzr, w30, gt
879 # CHECK: csel     w1, w28, wzr, mi
880 # CHECK: csel     x19, x23, x29, lt
881 # CHECK: csel     xzr, x3, x4, ge
882 # CHECK: csel     x5, xzr, x6, hs
883 # CHECK: csel     x7, x8, xzr, lo
884 0x1 0x10 0x93 0x1a
885 0xbf 0x0 0x89 0x1a
886 0xe9 0xc3 0x9e 0x1a
887 0x81 0x43 0x9f 0x1a
888 0xf3 0xb2 0x9d 0x9a
889 0x7f 0xa0 0x84 0x9a
890 0xe5 0x23 0x86 0x9a
891 0x7 0x31 0x9f 0x9a
892
893 # CHECK: csinc    w1, w0, w19, ne
894 # CHECK: csinc    wzr, w5, w9, eq
895 # CHECK: csinc    w9, wzr, w30, gt
896 # CHECK: csinc    w1, w28, wzr, mi
897 # CHECK: csinc    x19, x23, x29, lt
898 # CHECK: csinc    xzr, x3, x4, ge
899 # CHECK: csinc    x5, xzr, x6, hs
900 # CHECK: csinc    x7, x8, xzr, lo
901 0x1 0x14 0x93 0x1a
902 0xbf 0x4 0x89 0x1a
903 0xe9 0xc7 0x9e 0x1a
904 0x81 0x47 0x9f 0x1a
905 0xf3 0xb6 0x9d 0x9a
906 0x7f 0xa4 0x84 0x9a
907 0xe5 0x27 0x86 0x9a
908 0x7 0x35 0x9f 0x9a
909
910 # CHECK: csinv    w1, w0, w19, ne
911 # CHECK: csinv    wzr, w5, w9, eq
912 # CHECK: csinv    w9, wzr, w30, gt
913 # CHECK: csinv    w1, w28, wzr, mi
914 # CHECK: csinv    x19, x23, x29, lt
915 # CHECK: csinv    xzr, x3, x4, ge
916 # CHECK: csinv    x5, xzr, x6, hs
917 # CHECK: csinv    x7, x8, xzr, lo
918 0x1 0x10 0x93 0x5a
919 0xbf 0x0 0x89 0x5a
920 0xe9 0xc3 0x9e 0x5a
921 0x81 0x43 0x9f 0x5a
922 0xf3 0xb2 0x9d 0xda
923 0x7f 0xa0 0x84 0xda
924 0xe5 0x23 0x86 0xda
925 0x7 0x31 0x9f 0xda
926
927 # CHECK: csneg    w1, w0, w19, ne
928 # CHECK: csneg    wzr, w5, w9, eq
929 # CHECK: csneg    w9, wzr, w30, gt
930 # CHECK: csneg    w1, w28, wzr, mi
931 # CHECK: csneg    x19, x23, x29, lt
932 # CHECK: csneg    xzr, x3, x4, ge
933 # CHECK: csneg    x5, xzr, x6, hs
934 # CHECK: csneg    x7, x8, xzr, lo
935 0x1 0x14 0x93 0x5a
936 0xbf 0x4 0x89 0x5a
937 0xe9 0xc7 0x9e 0x5a
938 0x81 0x47 0x9f 0x5a
939 0xf3 0xb6 0x9d 0xda
940 0x7f 0xa4 0x84 0xda
941 0xe5 0x27 0x86 0xda
942 0x7 0x35 0x9f 0xda
943
944 # CHECK: cset    w3, eq
945 # CHECK: cset    x9, pl
946 # CHECK: csetm    w20, ne
947 # CHECK: csetm    x30, ge
948 # "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
949 # CHECK: csinc    w2, wzr, wzr, al
950 # CHECK: csinv    x3, xzr, xzr, nv
951 0xe3 0x17 0x9f 0x1a
952 0xe9 0x47 0x9f 0x9a
953 0xf4 0x3 0x9f 0x5a
954 0xfe 0xb3 0x9f 0xda
955 0xe2,0xe7,0x9f,0x1a
956 0xe3,0xf3,0x9f,0xda
957
958 # CHECK: cinc    w3, w5, gt
959 # CHECK: cinc    wzr, w4, le
960 # CHECK: cset    w9, lt
961 # CHECK: cinc    x3, x5, gt
962 # CHECK: cinc    xzr, x4, le
963 # CHECK: cset    x9, lt
964 # "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
965 # CHECK: csinc   w5, w6, w6, nv
966 # CHECK: csinc   x1, x2, x2, al
967 0xa3 0xd4 0x85 0x1a
968 0x9f 0xc4 0x84 0x1a
969 0xe9 0xa7 0x9f 0x1a
970 0xa3 0xd4 0x85 0x9a
971 0x9f 0xc4 0x84 0x9a
972 0xe9 0xa7 0x9f 0x9a
973 0xc5,0xf4,0x86,0x1a
974 0x41,0xe4,0x82,0x9a
975
976 # CHECK: cinv    w3, w5, gt
977 # CHECK: cinv    wzr, w4, le
978 # CHECK: csetm   w9, lt
979 # CHECK: cinv    x3, x5, gt
980 # CHECK: cinv    xzr, x4, le
981 # CHECK: csetm   x9, lt
982 # "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
983 # CHECK: csinv   x1, x0, x0, al
984 # CHECK: csinv   w9, w8, w8, nv
985 0xa3 0xd0 0x85 0x5a
986 0x9f 0xc0 0x84 0x5a
987 0xe9 0xa3 0x9f 0x5a
988 0xa3 0xd0 0x85 0xda
989 0x9f 0xc0 0x84 0xda
990 0xe9 0xa3 0x9f 0xda
991 0x01 0xe0 0x80 0xda
992 0x09,0xf1,0x88,0x5a
993
994 # CHECK: cneg     w3, w5, gt
995 # CHECK: cneg     wzr, w4, le
996 # CHECK: cneg     w9, wzr, lt
997 # CHECK: cneg     x3, x5, gt
998 # CHECK: cneg     xzr, x4, le
999 # CHECK: cneg     x9, xzr, lt
1000 # "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1001 # CHECK: csneg    x4, x8, x8, al
1002 # CHECK: csinv    w9, w8, w8, nv
1003 0xa3 0xd4 0x85 0x5a
1004 0x9f 0xc4 0x84 0x5a
1005 0xe9 0xa7 0x9f 0x5a
1006 0xa3 0xd4 0x85 0xda
1007 0x9f 0xc4 0x84 0xda
1008 0xe9 0xa7 0x9f 0xda
1009 0x04,0xe5,0x88,0xda
1010 0x09,0xf1,0x88,0x5a
1011
1012 #------------------------------------------------------------------------------
1013 # Data-processing (1 source)
1014 #------------------------------------------------------------------------------
1015
1016 # CHECK: rbit   w0, w7
1017 # CHECK: rbit   x18, x3
1018 # CHECK: rev16  w17, w1
1019 # CHECK: rev16  x5, x2
1020 # CHECK: rev    w18, w0
1021 # CHECK: rev32  x20, x1
1022 0xe0 0x00 0xc0 0x5a
1023 0x72 0x00 0xc0 0xda
1024 0x31 0x04 0xc0 0x5a
1025 0x45 0x04 0xc0 0xda
1026 0x12 0x08 0xc0 0x5a
1027 0x34 0x08 0xc0 0xda
1028
1029 # CHECK: rev    x22, x2
1030 # CHECK: clz    w24, w3
1031 # CHECK: clz    x26, x4
1032 # CHECK: cls    w3, w5
1033 # CHECK: cls    x20, x5
1034 0x56 0x0c 0xc0 0xda
1035 0x78 0x10 0xc0 0x5a
1036 0x9a 0x10 0xc0 0xda
1037 0xa3 0x14 0xc0 0x5a
1038 0xb4 0x14 0xc0 0xda
1039
1040 #------------------------------------------------------------------------------
1041 # Data-processing (2 source)
1042 #------------------------------------------------------------------------------
1043
1044 # CHECK: crc32b  w5, w7, w20
1045 # CHECK: crc32h  w28, wzr, w30
1046 # CHECK: crc32w  w0, w1, w2
1047 # CHECK: crc32x  w7, w9, x20
1048 # CHECK: crc32cb w9, w5, w4
1049 # CHECK: crc32ch w13, w17, w25
1050 # CHECK: crc32cw wzr, w3, w5
1051 # CHECK: crc32cx w18, w16, xzr
1052 0xe5 0x40 0xd4 0x1a
1053 0xfc 0x47 0xde 0x1a
1054 0x20 0x48 0xc2 0x1a
1055 0x27 0x4d 0xd4 0x9a
1056 0xa9 0x50 0xc4 0x1a
1057 0x2d 0x56 0xd9 0x1a
1058 0x7f 0x58 0xc5 0x1a
1059 0x12 0x5e 0xdf 0x9a
1060
1061 # CHECK: udiv   w0, w7, w10
1062 # CHECK: udiv   x9, x22, x4
1063 # CHECK: sdiv   w12, w21, w0
1064 # CHECK: sdiv   x13, x2, x1
1065 # CHECK: lsl    w11, w12, w13
1066 # CHECK: lsl    x14, x15, x16
1067 # CHECK: lsr    w17, w18, w19
1068 # CHECK: lsr    x20, x21, x22
1069 # CHECK: asr    w23, w24, w25
1070 # CHECK: asr    x26, x27, x28
1071 # CHECK: ror    w0, w1, w2
1072 # CHECK: ror    x3, x4, x5
1073 0xe0 0x08 0xca 0x1a
1074 0xc9 0x0a 0xc4 0x9a
1075 0xac 0x0e 0xc0 0x1a
1076 0x4d 0x0c 0xc1 0x9a
1077 0x8b 0x21 0xcd 0x1a
1078 0xee 0x21 0xd0 0x9a
1079 0x51 0x26 0xd3 0x1a
1080 0xb4 0x26 0xd6 0x9a
1081 0x17 0x2b 0xd9 0x1a
1082 0x7a 0x2b 0xdc 0x9a
1083 0x20 0x2c 0xc2 0x1a
1084 0x83 0x2c 0xc5 0x9a
1085
1086 # CHECK: lsl    w6, w7, w8
1087 # CHECK: lsl    x9, x10, x11
1088 # CHECK: lsr    w12, w13, w14
1089 # CHECK: lsr    x15, x16, x17
1090 # CHECK: asr    w18, w19, w20
1091 # CHECK: asr    x21, x22, x23
1092 # CHECK: ror    w24, w25, w26
1093 # CHECK: ror    x27, x28, x29
1094 0xe6 0x20 0xc8 0x1a
1095 0x49 0x21 0xcb 0x9a
1096 0xac 0x25 0xce 0x1a
1097 0x0f 0x26 0xd1 0x9a
1098 0x72 0x2a 0xd4 0x1a
1099 0xd5 0x2a 0xd7 0x9a
1100 0x38 0x2f 0xda 0x1a
1101 0x9b 0x2f 0xdd 0x9a
1102
1103 #------------------------------------------------------------------------------
1104 # Data-processing (3 sources)
1105 #------------------------------------------------------------------------------
1106
1107 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1108 # and smulh have them).
1109
1110 # CHECK: smulh    x30, x29, x28
1111 # CHECK: smulh    xzr, x27, x26
1112 # CHECK: umulh    x30, x29, x28
1113 # CHECK: umulh    x23, x30, xzr
1114 0xbe 0x73 0x5c 0x9b
1115 0x7f 0x2f 0x5a 0x9b
1116 0xbe 0x3f 0xdc 0x9b
1117 0xd7 0x77 0xdf 0x9b
1118
1119 # Now onto the boilerplate stuff
1120
1121 # CHECK: madd     w1, w3, w7, w4
1122 # CHECK: madd     wzr, w0, w9, w11
1123 # CHECK: madd     w13, wzr, w4, w4
1124 # CHECK: madd     w19, w30, wzr, w29
1125 # CHECK: mul      w4, w5, w6
1126 0x61 0x10 0x7 0x1b
1127 0x1f 0x2c 0x9 0x1b
1128 0xed 0x13 0x4 0x1b
1129 0xd3 0x77 0x1f 0x1b
1130 0xa4 0x7c 0x6 0x1b
1131
1132 # CHECK: madd     x1, x3, x7, x4
1133 # CHECK: madd     xzr, x0, x9, x11
1134 # CHECK: madd     x13, xzr, x4, x4
1135 # CHECK: madd     x19, x30, xzr, x29
1136 # CHECK: mul      x4, x5, x6
1137 0x61 0x10 0x7 0x9b
1138 0x1f 0x2c 0x9 0x9b
1139 0xed 0x13 0x4 0x9b
1140 0xd3 0x77 0x1f 0x9b
1141 0xa4 0x7c 0x6 0x9b
1142
1143 # CHECK: msub     w1, w3, w7, w4
1144 # CHECK: msub     wzr, w0, w9, w11
1145 # CHECK: msub     w13, wzr, w4, w4
1146 # CHECK: msub     w19, w30, wzr, w29
1147 # CHECK: mneg     w4, w5, w6
1148 0x61 0x90 0x7 0x1b
1149 0x1f 0xac 0x9 0x1b
1150 0xed 0x93 0x4 0x1b
1151 0xd3 0xf7 0x1f 0x1b
1152 0xa4 0xfc 0x6 0x1b
1153
1154 # CHECK: msub     x1, x3, x7, x4
1155 # CHECK: msub     xzr, x0, x9, x11
1156 # CHECK: msub     x13, xzr, x4, x4
1157 # CHECK: msub     x19, x30, xzr, x29
1158 # CHECK: mneg     x4, x5, x6
1159 0x61 0x90 0x7 0x9b
1160 0x1f 0xac 0x9 0x9b
1161 0xed 0x93 0x4 0x9b
1162 0xd3 0xf7 0x1f 0x9b
1163 0xa4 0xfc 0x6 0x9b
1164
1165 # CHECK: smaddl   x3, w5, w2, x9
1166 # CHECK: smaddl   xzr, w10, w11, x12
1167 # CHECK: smaddl   x13, wzr, w14, x15
1168 # CHECK: smaddl   x16, w17, wzr, x18
1169 # CHECK: smull    x19, w20, w21
1170 0xa3 0x24 0x22 0x9b
1171 0x5f 0x31 0x2b 0x9b
1172 0xed 0x3f 0x2e 0x9b
1173 0x30 0x4a 0x3f 0x9b
1174 0x93 0x7e 0x35 0x9b
1175
1176 # CHECK: smsubl   x3, w5, w2, x9
1177 # CHECK: smsubl   xzr, w10, w11, x12
1178 # CHECK: smsubl   x13, wzr, w14, x15
1179 # CHECK: smsubl   x16, w17, wzr, x18
1180 # CHECK: smnegl   x19, w20, w21
1181 0xa3 0xa4 0x22 0x9b
1182 0x5f 0xb1 0x2b 0x9b
1183 0xed 0xbf 0x2e 0x9b
1184 0x30 0xca 0x3f 0x9b
1185 0x93 0xfe 0x35 0x9b
1186
1187 # CHECK: umaddl   x3, w5, w2, x9
1188 # CHECK: umaddl   xzr, w10, w11, x12
1189 # CHECK: umaddl   x13, wzr, w14, x15
1190 # CHECK: umaddl   x16, w17, wzr, x18
1191 # CHECK: umull    x19, w20, w21
1192 0xa3 0x24 0xa2 0x9b
1193 0x5f 0x31 0xab 0x9b
1194 0xed 0x3f 0xae 0x9b
1195 0x30 0x4a 0xbf 0x9b
1196 0x93 0x7e 0xb5 0x9b
1197
1198 # CHECK: umsubl   x3, w5, w2, x9
1199 # CHECK: umsubl   xzr, w10, w11, x12
1200 # CHECK: umsubl   x13, wzr, w14, x15
1201 # CHECK: umsubl   x16, w17, wzr, x18
1202 # CHECK: umnegl   x19, w20, w21
1203 0xa3 0xa4 0xa2 0x9b
1204 0x5f 0xb1 0xab 0x9b
1205 0xed 0xbf 0xae 0x9b
1206 0x30 0xca 0xbf 0x9b
1207 0x93 0xfe 0xb5 0x9b
1208
1209 # CHECK: smulh    x30, x29, x28
1210 # CHECK: smulh    xzr, x27, x26
1211 # CHECK: smulh    x25, xzr, x24
1212 # CHECK: smulh    x23, x22, xzr
1213 0xbe 0x7f 0x5c 0x9b
1214 0x7f 0x7f 0x5a 0x9b
1215 0xf9 0x7f 0x58 0x9b
1216 0xd7 0x7e 0x5f 0x9b
1217
1218 # CHECK: umulh    x30, x29, x28
1219 # CHECK: umulh    xzr, x27, x26
1220 # CHECK: umulh    x25, xzr, x24
1221 # CHECK: umulh    x23, x22, xzr
1222 0xbe 0x7f 0xdc 0x9b
1223 0x7f 0x7f 0xda 0x9b
1224 0xf9 0x7f 0xd8 0x9b
1225 0xd7 0x7e 0xdf 0x9b
1226
1227 # CHECK: mul      w3, w4, w5
1228 # CHECK: mul      wzr, w6, w7
1229 # CHECK: mul      w8, wzr, w9
1230 # CHECK: mul      w10, w11, wzr
1231 # CHECK: mul      x12, x13, x14
1232 # CHECK: mul      xzr, x15, x16
1233 # CHECK: mul      x17, xzr, x18
1234 # CHECK: mul      x19, x20, xzr
1235 0x83 0x7c 0x5 0x1b
1236 0xdf 0x7c 0x7 0x1b
1237 0xe8 0x7f 0x9 0x1b
1238 0x6a 0x7d 0x1f 0x1b
1239 0xac 0x7d 0xe 0x9b
1240 0xff 0x7d 0x10 0x9b
1241 0xf1 0x7f 0x12 0x9b
1242 0x93 0x7e 0x1f 0x9b
1243
1244 # CHECK: mneg     w21, w22, w23
1245 # CHECK: mneg     wzr, w24, w25
1246 # CHECK: mneg     w26, wzr, w27
1247 # CHECK: mneg     w28, w29, wzr
1248 0xd5 0xfe 0x17 0x1b
1249 0x1f 0xff 0x19 0x1b
1250 0xfa 0xff 0x1b 0x1b
1251 0xbc 0xff 0x1f 0x1b
1252
1253 # CHECK: smull    x11, w13, w17
1254 # CHECK: umull    x11, w13, w17
1255 # CHECK: smnegl   x11, w13, w17
1256 # CHECK: umnegl   x11, w13, w17
1257 0xab 0x7d 0x31 0x9b
1258 0xab 0x7d 0xb1 0x9b
1259 0xab 0xfd 0x31 0x9b
1260 0xab 0xfd 0xb1 0x9b
1261
1262 #------------------------------------------------------------------------------
1263 # Exception generation
1264 #------------------------------------------------------------------------------
1265
1266 # CHECK: svc      #0
1267 # CHECK: svc      #{{65535|0xffff}}
1268 0x1 0x0 0x0 0xd4
1269 0xe1 0xff 0x1f 0xd4
1270
1271 # CHECK: hvc      #{{1|0x1}}
1272 # CHECK: smc      #{{12000|0x2ee0}}
1273 # CHECK: brk      #{{12|0xc}}
1274 # CHECK: hlt      #{{123|0x7b}}
1275 0x22 0x0 0x0 0xd4
1276 0x3 0xdc 0x5 0xd4
1277 0x80 0x1 0x20 0xd4
1278 0x60 0xf 0x40 0xd4
1279
1280 # CHECK: dcps1    #{{42|0x2a}}
1281 # CHECK: dcps2    #{{9|0x9}}
1282 # CHECK: dcps3    #{{1000|0x3e8}}
1283 0x41 0x5 0xa0 0xd4
1284 0x22 0x1 0xa0 0xd4
1285 0x3 0x7d 0xa0 0xd4
1286
1287 # CHECK: dcps1
1288 # CHECK: dcps2
1289 # CHECK: dcps3
1290 0x1 0x0 0xa0 0xd4
1291 0x2 0x0 0xa0 0xd4
1292 0x3 0x0 0xa0 0xd4
1293
1294 #------------------------------------------------------------------------------
1295 # Extract (immediate)
1296 #------------------------------------------------------------------------------
1297
1298 # CHECK: extr     w3, w5, w7, #0
1299 # CHECK: extr     w11, w13, w17, #31
1300 0xa3 0x0 0x87 0x13
1301 0xab 0x7d 0x91 0x13
1302
1303 # CHECK: extr     x3, x5, x7, #15
1304 # CHECK: extr     x11, x13, x17, #63
1305 0xa3 0x3c 0xc7 0x93
1306 0xab 0xfd 0xd1 0x93
1307
1308 # CHECK: ror     x19, x23, #24
1309 # CHECK: ror     x29, xzr, #63
1310 # CHECK: ror     w9, w13, #31
1311 0xf3 0x62 0xd7 0x93
1312 0xfd 0xff 0xdf 0x93
1313 0xa9 0x7d 0x8d 0x13
1314
1315 #------------------------------------------------------------------------------
1316 # Floating-point compare
1317 #------------------------------------------------------------------------------
1318
1319 # CHECK: fcmp    s3, s5
1320 # CHECK: fcmp    s31, #0.0
1321 # CHECK: fcmp    s31, #0.0
1322 0x60 0x20 0x25 0x1e
1323 0xe8 0x23 0x20 0x1e
1324 0xe8 0x23 0x3f 0x1e
1325
1326 # CHECK: fcmpe   s29, s30
1327 # CHECK: fcmpe   s15, #0.0
1328 # CHECK: fcmpe   s15, #0.0
1329 0xb0 0x23 0x3e 0x1e
1330 0xf8 0x21 0x20 0x1e
1331 0xf8 0x21 0x2f 0x1e
1332
1333 # CHECK: fcmp    d4, d12
1334 # CHECK: fcmp    d23, #0.0
1335 # CHECK: fcmp    d23, #0.0
1336 0x80 0x20 0x6c 0x1e
1337 0xe8 0x22 0x60 0x1e
1338 0xe8 0x22 0x77 0x1e
1339
1340 # CHECK: fcmpe   d26, d22
1341 # CHECK: fcmpe   d29, #0.0
1342 # CHECK: fcmpe   d29, #0.0
1343 0x50 0x23 0x76 0x1e
1344 0xb8 0x23 0x60 0x1e
1345 0xb8 0x23 0x6d 0x1e
1346
1347 #------------------------------------------------------------------------------
1348 # Floating-point conditional compare
1349 #------------------------------------------------------------------------------
1350
1351 # CHECK: fccmp s1, s31, #0, eq
1352 # CHECK: fccmp s3, s0, #15, hs
1353 # CHECK: fccmp s31, s15, #13, hs
1354 0x20 0x04 0x3f 0x1e
1355 0x6f 0x24 0x20 0x1e
1356 0xed 0x27 0x2f 0x1e
1357
1358 # CHECK: fccmp d9, d31, #0, le
1359 # CHECK: fccmp d3, d0, #15, gt
1360 # CHECK: fccmp d31, d5, #7, ne
1361 0x20 0xd5 0x7f 0x1e
1362 0x6f 0xc4 0x60 0x1e
1363 0xe7 0x17 0x65 0x1e
1364
1365 # CHECK: fccmpe s1, s31, #0, eq
1366 # CHECK: fccmpe s3, s0, #15, hs
1367 # CHECK: fccmpe s31, s15, #13, hs
1368 0x30 0x04 0x3f 0x1e
1369 0x7f 0x24 0x20 0x1e
1370 0xfd 0x27 0x2f 0x1e
1371
1372 # CHECK: fccmpe d9, d31, #0, le
1373 # CHECK: fccmpe d3, d0, #15, gt
1374 # CHECK: fccmpe d31, d5, #7, ne
1375 0x30 0xd5 0x7f 0x1e
1376 0x7f 0xc4 0x60 0x1e
1377 0xf7 0x17 0x65 0x1e
1378
1379 #-------------------------------------------------------------------------------
1380 # Floating-point conditional compare
1381 #-------------------------------------------------------------------------------
1382
1383 # CHECK: fcsel s3, s20, s9, pl
1384 # CHECK: fcsel d9, d10, d11, mi
1385 0x83 0x5e 0x29 0x1e
1386 0x49 0x4d 0x6b 0x1e
1387
1388 #------------------------------------------------------------------------------
1389 # Floating-point data-processing (1 source)
1390 #------------------------------------------------------------------------------
1391
1392 # CHECK: fmov     s0, s1
1393 # CHECK: fabs     s2, s3
1394 # CHECK: fneg     s4, s5
1395 # CHECK: fsqrt    s6, s7
1396 # CHECK: fcvt     d8, s9
1397 # CHECK: fcvt     h10, s11
1398 # CHECK: frintn   s12, s13
1399 # CHECK: frintp   s14, s15
1400 # CHECK: frintm   s16, s17
1401 # CHECK: frintz   s18, s19
1402 # CHECK: frinta   s20, s21
1403 # CHECK: frintx   s22, s23
1404 # CHECK: frinti   s24, s25
1405 0x20 0x40 0x20 0x1e
1406 0x62 0xc0 0x20 0x1e
1407 0xa4 0x40 0x21 0x1e
1408 0xe6 0xc0 0x21 0x1e
1409 0x28 0xc1 0x22 0x1e
1410 0x6a 0xc1 0x23 0x1e
1411 0xac 0x41 0x24 0x1e
1412 0xee 0xc1 0x24 0x1e
1413 0x30 0x42 0x25 0x1e
1414 0x72 0xc2 0x25 0x1e
1415 0xb4 0x42 0x26 0x1e
1416 0xf6 0x42 0x27 0x1e
1417 0x38 0xc3 0x27 0x1e
1418
1419 # CHECK: fmov     d0, d1
1420 # CHECK: fabs     d2, d3
1421 # CHECK: fneg     d4, d5
1422 # CHECK: fsqrt    d6, d7
1423 # CHECK: fcvt     s8, d9
1424 # CHECK: fcvt     h10, d11
1425 # CHECK: frintn   d12, d13
1426 # CHECK: frintp   d14, d15
1427 # CHECK: frintm   d16, d17
1428 # CHECK: frintz   d18, d19
1429 # CHECK: frinta   d20, d21
1430 # CHECK: frintx   d22, d23
1431 # CHECK: frinti   d24, d25
1432 0x20 0x40 0x60 0x1e
1433 0x62 0xc0 0x60 0x1e
1434 0xa4 0x40 0x61 0x1e
1435 0xe6 0xc0 0x61 0x1e
1436 0x28 0x41 0x62 0x1e
1437 0x6a 0xc1 0x63 0x1e
1438 0xac 0x41 0x64 0x1e
1439 0xee 0xc1 0x64 0x1e
1440 0x30 0x42 0x65 0x1e
1441 0x72 0xc2 0x65 0x1e
1442 0xb4 0x42 0x66 0x1e
1443 0xf6 0x42 0x67 0x1e
1444 0x38 0xc3 0x67 0x1e
1445
1446 # CHECK: fcvt     s26, h27
1447 # CHECK: fcvt     d28, h29
1448 0x7a 0x43 0xe2 0x1e
1449 0xbc 0xc3 0xe2 0x1e
1450
1451 #------------------------------------------------------------------------------
1452 # Floating-point data-processing (2 sources)
1453 #------------------------------------------------------------------------------
1454
1455 # CHECK: fmul     s20, s19, s17
1456 # CHECK: fdiv     s1, s2, s3
1457 # CHECK: fadd     s4, s5, s6
1458 # CHECK: fsub     s7, s8, s9
1459 # CHECK: fmax     s10, s11, s12
1460 # CHECK: fmin     s13, s14, s15
1461 # CHECK: fmaxnm   s16, s17, s18
1462 # CHECK: fminnm   s19, s20, s21
1463 # CHECK: fnmul    s22, s23, s2
1464 0x74 0xa 0x31 0x1e
1465 0x41 0x18 0x23 0x1e
1466 0xa4 0x28 0x26 0x1e
1467 0x7 0x39 0x29 0x1e
1468 0x6a 0x49 0x2c 0x1e
1469 0xcd 0x59 0x2f 0x1e
1470 0x30 0x6a 0x32 0x1e
1471 0x93 0x7a 0x35 0x1e
1472 0xf6 0x8a 0x38 0x1e
1473
1474
1475 # CHECK: fmul     d20, d19, d17
1476 # CHECK: fdiv     d1, d2, d3
1477 # CHECK: fadd     d4, d5, d6
1478 # CHECK: fsub     d7, d8, d9
1479 # CHECK: fmax     d10, d11, d12
1480 # CHECK: fmin     d13, d14, d15
1481 # CHECK: fmaxnm   d16, d17, d18
1482 # CHECK: fminnm   d19, d20, d21
1483 # CHECK: fnmul    d22, d23, d24
1484 0x74 0xa 0x71 0x1e
1485 0x41 0x18 0x63 0x1e
1486 0xa4 0x28 0x66 0x1e
1487 0x7 0x39 0x69 0x1e
1488 0x6a 0x49 0x6c 0x1e
1489 0xcd 0x59 0x6f 0x1e
1490 0x30 0x6a 0x72 0x1e
1491 0x93 0x7a 0x75 0x1e
1492 0xf6 0x8a 0x78 0x1e
1493
1494 #------------------------------------------------------------------------------
1495 # Floating-point data-processing (1 source)
1496 #------------------------------------------------------------------------------
1497
1498 # CHECK: fmadd s3, s5, s6, s31
1499 # CHECK: fmadd d3, d13, d0, d23
1500 # CHECK: fmsub s3, s5, s6, s31
1501 # CHECK: fmsub d3, d13, d0, d23
1502 # CHECK: fnmadd s3, s5, s6, s31
1503 # CHECK: fnmadd d3, d13, d0, d23
1504 # CHECK: fnmsub s3, s5, s6, s31
1505 # CHECK: fnmsub d3, d13, d0, d23
1506 0xa3 0x7c 0x06 0x1f
1507 0xa3 0x5d 0x40 0x1f
1508 0xa3 0xfc 0x06 0x1f
1509 0xa3 0xdd 0x40 0x1f
1510 0xa3 0x7c 0x26 0x1f
1511 0xa3 0x5d 0x60 0x1f
1512 0xa3 0xfc 0x26 0x1f
1513 0xa3 0xdd 0x60 0x1f
1514
1515 #------------------------------------------------------------------------------
1516 # Floating-point <-> fixed-point conversion
1517 #------------------------------------------------------------------------------
1518
1519 # CHECK: fcvtzs  w3, s5, #1
1520 # CHECK: fcvtzs  wzr, s20, #13
1521 # CHECK: fcvtzs  w19, s0, #32
1522 0xa3 0xfc 0x18 0x1e
1523 0x9f 0xce 0x18 0x1e
1524 0x13 0x80 0x18 0x1e
1525
1526 # CHECK: fcvtzs  x3, s5, #1
1527 # CHECK: fcvtzs  x12, s30, #45
1528 # CHECK: fcvtzs  x19, s0, #64
1529 0xa3 0xfc 0x18 0x9e
1530 0xcc 0x4f 0x18 0x9e
1531 0x13 0x00 0x18 0x9e
1532
1533 # CHECK: fcvtzs  w3, d5, #1
1534 # CHECK: fcvtzs  wzr, d20, #13
1535 # CHECK: fcvtzs  w19, d0, #32
1536 0xa3 0xfc 0x58 0x1e
1537 0x9f 0xce 0x58 0x1e
1538 0x13 0x80 0x58 0x1e
1539
1540 # CHECK: fcvtzs  x3, d5, #1
1541 # CHECK: fcvtzs  x12, d30, #45
1542 # CHECK: fcvtzs  x19, d0, #64
1543 0xa3 0xfc 0x58 0x9e
1544 0xcc 0x4f 0x58 0x9e
1545 0x13 0x00 0x58 0x9e
1546
1547 # CHECK: fcvtzu  w3, s5, #1
1548 # CHECK: fcvtzu  wzr, s20, #13
1549 # CHECK: fcvtzu  w19, s0, #32
1550 0xa3 0xfc 0x19 0x1e
1551 0x9f 0xce 0x19 0x1e
1552 0x13 0x80 0x19 0x1e
1553
1554 # CHECK: fcvtzu  x3, s5, #1
1555 # CHECK: fcvtzu  x12, s30, #45
1556 # CHECK: fcvtzu  x19, s0, #64
1557 0xa3 0xfc 0x19 0x9e
1558 0xcc 0x4f 0x19 0x9e
1559 0x13 0x00 0x19 0x9e
1560
1561 # CHECK: fcvtzu  w3, d5, #1
1562 # CHECK: fcvtzu  wzr, d20, #13
1563 # CHECK: fcvtzu  w19, d0, #32
1564 0xa3 0xfc 0x59 0x1e
1565 0x9f 0xce 0x59 0x1e
1566 0x13 0x80 0x59 0x1e
1567
1568 # CHECK: fcvtzu  x3, d5, #1
1569 # CHECK: fcvtzu  x12, d30, #45
1570 # CHECK: fcvtzu  x19, d0, #64
1571 0xa3 0xfc 0x59 0x9e
1572 0xcc 0x4f 0x59 0x9e
1573 0x13 0x00 0x59 0x9e
1574
1575 # CHECK: scvtf   s23, w19, #1
1576 # CHECK: scvtf   s31, wzr, #20
1577 # CHECK: scvtf   s14, w0, #32
1578 0x77 0xfe 0x02 0x1e
1579 0xff 0xb3 0x02 0x1e
1580 0x0e 0x80 0x02 0x1e
1581
1582 # CHECK: scvtf   s23, x19, #1
1583 # CHECK: scvtf   s31, xzr, #20
1584 # CHECK: scvtf   s14, x0, #64
1585 0x77 0xfe 0x02 0x9e
1586 0xff 0xb3 0x02 0x9e
1587 0x0e 0x00 0x02 0x9e
1588
1589 # CHECK: scvtf   d23, w19, #1
1590 # CHECK: scvtf   d31, wzr, #20
1591 # CHECK: scvtf   d14, w0, #32
1592 0x77 0xfe 0x42 0x1e
1593 0xff 0xb3 0x42 0x1e
1594 0x0e 0x80 0x42 0x1e
1595
1596 # CHECK: scvtf   d23, x19, #1
1597 # CHECK: scvtf   d31, xzr, #20
1598 # CHECK: scvtf   d14, x0, #64
1599 0x77 0xfe 0x42 0x9e
1600 0xff 0xb3 0x42 0x9e
1601 0x0e 0x00 0x42 0x9e
1602
1603 # CHECK: ucvtf   s23, w19, #1
1604 # CHECK: ucvtf   s31, wzr, #20
1605 # CHECK: ucvtf   s14, w0, #32
1606 0x77 0xfe 0x03 0x1e
1607 0xff 0xb3 0x03 0x1e
1608 0x0e 0x80 0x03 0x1e
1609
1610 # CHECK: ucvtf   s23, x19, #1
1611 # CHECK: ucvtf   s31, xzr, #20
1612 # CHECK: ucvtf   s14, x0, #64
1613 0x77 0xfe 0x03 0x9e
1614 0xff 0xb3 0x03 0x9e
1615 0x0e 0x00 0x03 0x9e
1616
1617 # CHECK: ucvtf   d23, w19, #1
1618 # CHECK: ucvtf   d31, wzr, #20
1619 # CHECK: ucvtf   d14, w0, #32
1620 0x77 0xfe 0x43 0x1e
1621 0xff 0xb3 0x43 0x1e
1622 0x0e 0x80 0x43 0x1e
1623
1624 # CHECK: ucvtf   d23, x19, #1
1625 # CHECK: ucvtf   d31, xzr, #20
1626 # CHECK: ucvtf   d14, x0, #64
1627 0x77 0xfe 0x43 0x9e
1628 0xff 0xb3 0x43 0x9e
1629 0x0e 0x00 0x43 0x9e
1630
1631 #------------------------------------------------------------------------------
1632 # Floating-point <-> integer conversion
1633 #------------------------------------------------------------------------------
1634 # CHECK: fcvtns   w3, s31
1635 # CHECK: fcvtns   xzr, s12
1636 # CHECK: fcvtnu   wzr, s12
1637 # CHECK: fcvtnu   x0, s0
1638 0xe3 0x3 0x20 0x1e
1639 0x9f 0x1 0x20 0x9e
1640 0x9f 0x1 0x21 0x1e
1641 0x0 0x0 0x21 0x9e
1642
1643 # CHECK: fcvtps   wzr, s9
1644 # CHECK: fcvtps   x12, s20
1645 # CHECK: fcvtpu   w30, s23
1646 # CHECK: fcvtpu   x29, s3
1647 0x3f 0x1 0x28 0x1e
1648 0x8c 0x2 0x28 0x9e
1649 0xfe 0x2 0x29 0x1e
1650 0x7d 0x0 0x29 0x9e
1651
1652 # CHECK: fcvtms   w2, s3
1653 # CHECK: fcvtms   x4, s5
1654 # CHECK: fcvtmu   w6, s7
1655 # CHECK: fcvtmu   x8, s9
1656 0x62 0x0 0x30 0x1e
1657 0xa4 0x0 0x30 0x9e
1658 0xe6 0x0 0x31 0x1e
1659 0x28 0x1 0x31 0x9e
1660
1661 # CHECK: fcvtzs   w10, s11
1662 # CHECK: fcvtzs   x12, s13
1663 # CHECK: fcvtzu   w14, s15
1664 # CHECK: fcvtzu   x15, s16
1665 0x6a 0x1 0x38 0x1e
1666 0xac 0x1 0x38 0x9e
1667 0xee 0x1 0x39 0x1e
1668 0xf 0x2 0x39 0x9e
1669
1670 # CHECK: scvtf    s17, w18
1671 # CHECK: scvtf    s19, x20
1672 # CHECK: ucvtf    s21, w22
1673 # CHECK: scvtf    s23, x24
1674 0x51 0x2 0x22 0x1e
1675 0x93 0x2 0x22 0x9e
1676 0xd5 0x2 0x23 0x1e
1677 0x17 0x3 0x22 0x9e
1678
1679 # CHECK: fcvtas   w25, s26
1680 # CHECK: fcvtas   x27, s28
1681 # CHECK: fcvtau   w29, s30
1682 # CHECK: fcvtau   xzr, s0
1683 0x59 0x3 0x24 0x1e
1684 0x9b 0x3 0x24 0x9e
1685 0xdd 0x3 0x25 0x1e
1686 0x1f 0x0 0x25 0x9e
1687
1688 # CHECK: fcvtns   w3, d31
1689 # CHECK: fcvtns   xzr, d12
1690 # CHECK: fcvtnu   wzr, d12
1691 # CHECK: fcvtnu   x0, d0
1692 0xe3 0x3 0x60 0x1e
1693 0x9f 0x1 0x60 0x9e
1694 0x9f 0x1 0x61 0x1e
1695 0x0 0x0 0x61 0x9e
1696
1697 # CHECK: fcvtps   wzr, d9
1698 # CHECK: fcvtps   x12, d20
1699 # CHECK: fcvtpu   w30, d23
1700 # CHECK: fcvtpu   x29, d3
1701 0x3f 0x1 0x68 0x1e
1702 0x8c 0x2 0x68 0x9e
1703 0xfe 0x2 0x69 0x1e
1704 0x7d 0x0 0x69 0x9e
1705
1706 # CHECK: fcvtms   w2, d3
1707 # CHECK: fcvtms   x4, d5
1708 # CHECK: fcvtmu   w6, d7
1709 # CHECK: fcvtmu   x8, d9
1710 0x62 0x0 0x70 0x1e
1711 0xa4 0x0 0x70 0x9e
1712 0xe6 0x0 0x71 0x1e
1713 0x28 0x1 0x71 0x9e
1714
1715 # CHECK: fcvtzs   w10, d11
1716 # CHECK: fcvtzs   x12, d13
1717 # CHECK: fcvtzu   w14, d15
1718 # CHECK: fcvtzu   x15, d16
1719 0x6a 0x1 0x78 0x1e
1720 0xac 0x1 0x78 0x9e
1721 0xee 0x1 0x79 0x1e
1722 0xf 0x2 0x79 0x9e
1723
1724 # CHECK: scvtf    d17, w18
1725 # CHECK: scvtf    d19, x20
1726 # CHECK: ucvtf    d21, w22
1727 # CHECK: ucvtf    d23, x24
1728 0x51 0x2 0x62 0x1e
1729 0x93 0x2 0x62 0x9e
1730 0xd5 0x2 0x63 0x1e
1731 0x17 0x3 0x63 0x9e
1732
1733 # CHECK: fcvtas   w25, d26
1734 # CHECK: fcvtas   x27, d28
1735 # CHECK: fcvtau   w29, d30
1736 # CHECK: fcvtau   xzr, d0
1737 0x59 0x3 0x64 0x1e
1738 0x9b 0x3 0x64 0x9e
1739 0xdd 0x3 0x65 0x1e
1740 0x1f 0x0 0x65 0x9e
1741
1742 # CHECK: fmov     w3, s9
1743 # CHECK: fmov     s9, w3
1744 0x23 0x1 0x26 0x1e
1745 0x69 0x0 0x27 0x1e
1746
1747 # CHECK: fmov     x20, d31
1748 # CHECK: fmov     d1, x15
1749 0xf4 0x3 0x66 0x9e
1750 0xe1 0x1 0x67 0x9e
1751
1752 # CHECK: fmov     x3, v12.d[1]
1753 # CHECK: fmov     v1.d[1], x19
1754 0x83 0x1 0xae 0x9e
1755 0x61 0x2 0xaf 0x9e
1756
1757 #------------------------------------------------------------------------------
1758 # Floating-point immediate
1759 #------------------------------------------------------------------------------
1760
1761 # CHECK: fmov     s2, #0.12500000
1762 # CHECK: fmov     s3, #1.00000000
1763 # CHECK: fmov     d30, #16.00000000
1764 0x2 0x10 0x28 0x1e
1765 0x3 0x10 0x2e 0x1e
1766 0x1e 0x10 0x66 0x1e
1767
1768 # CHECK: fmov     s4, #1.06250000
1769 # CHECK: fmov     d10, #1.93750000
1770 0x4 0x30 0x2e 0x1e
1771 0xa 0xf0 0x6f 0x1e
1772
1773 # CHECK: fmov     s12, #-1.00000000
1774 0xc 0x10 0x3e 0x1e
1775
1776 # CHECK: fmov     d16, #8.50000000
1777 0x10 0x30 0x64 0x1e
1778
1779 #------------------------------------------------------------------------------
1780 # Load-register (literal)
1781 #------------------------------------------------------------------------------
1782
1783 # CHECK: ldr       w3, #0
1784 # CHECK: ldr       x29, #4
1785 # CHECK: ldrsw     xzr, #-4
1786 0x03 0x00 0x00 0x18
1787 0x3d 0x00 0x00 0x58
1788 0xff 0xff 0xff 0x98
1789
1790 # CHECK: ldr       s0, #8
1791 # CHECK: ldr       d0, #1048572
1792 # CHECK: ldr       q0, #-1048576
1793 0x40 0x00 0x00 0x1c
1794 0xe0 0xff 0x7f 0x5c
1795 0x00 0x00 0x80 0x9c
1796
1797 # CHECK: prfm      pldl1strm, #0
1798 # CHECK: prfm      #22, #0
1799 0x01 0x00 0x00 0xd8
1800 0x16 0x00 0x00 0xd8
1801
1802 #------------------------------------------------------------------------------
1803 # Load/store exclusive
1804 #------------------------------------------------------------------------------
1805
1806 #CHECK: stxrb      w18, w8, [sp]
1807 #CHECK: stxrh      w24, w15, [x16]
1808 #CHECK: stxr       w5, w6, [x17]
1809 #CHECK: stxr       w1, x10, [x21]
1810 #CHECK: stxr       w1, x10, [x21]
1811 0xe8 0x7f 0x12 0x08
1812 0x0f 0x7e 0x18 0x48
1813 0x26 0x7e 0x05 0x88
1814 0xaa 0x7e 0x01 0xc8
1815 0xaa 0x7a 0x01 0xc8
1816
1817 #CHECK: ldxrb      w30, [x0]
1818 #CHECK: ldxrh      w17, [x4]
1819 #CHECK: ldxr       w22, [sp]
1820 #CHECK: ldxr       x11, [x29]
1821 #CHECK: ldxr       x11, [x29]
1822 #CHECK: ldxr       x11, [x29]
1823 0x1e 0x7c 0x5f 0x08
1824 0x91 0x7c 0x5f 0x48
1825 0xf6 0x7f 0x5f 0x88
1826 0xab 0x7f 0x5f 0xc8
1827 0xab 0x6f 0x5f 0xc8
1828 0xab 0x7f 0x5e 0xc8
1829
1830 #CHECK: stxp       w12, w11, w10, [sp]
1831 #CHECK: stxp       wzr, x27, x9, [x12]
1832 0xeb 0x2b 0x2c 0x88
1833 0x9b 0x25 0x3f 0xc8
1834
1835 #CHECK: ldxp       w0, wzr, [sp]
1836 #CHECK: ldxp       x17, x0, [x18]
1837 #CHECK: ldxp       x17, x0, [x18]
1838 0xe0 0x7f 0x7f 0x88
1839 0x51 0x02 0x7f 0xc8
1840 0x51 0x02 0x7e 0xc8
1841
1842 #CHECK: stlxrb     w12, w22, [x0]
1843 #CHECK: stlxrh     w10, w1, [x1]
1844 #CHECK: stlxr      w9, w2, [x2]
1845 #CHECK: stlxr      w9, x3, [sp]
1846
1847 0x16 0xfc 0x0c 0x08
1848 0x21 0xfc 0x0a 0x48
1849 0x42 0xfc 0x09 0x88
1850 0xe3 0xff 0x09 0xc8
1851
1852 #CHECK: ldaxrb     w8, [x4]
1853 #CHECK: ldaxrh     w7, [x5]
1854 #CHECK: ldaxr      w6, [sp]
1855 #CHECK: ldaxr      x5, [x6]
1856 #CHECK: ldaxr      x5, [x6]
1857 #CHECK: ldaxr      x5, [x6]
1858 0x88 0xfc 0x5f 0x08
1859 0xa7 0xfc 0x5f 0x48
1860 0xe6 0xff 0x5f 0x88
1861 0xc5 0xfc 0x5f 0xc8
1862 0xc5 0xec 0x5f 0xc8
1863 0xc5 0xfc 0x5e 0xc8
1864
1865 #CHECK: stlxp      w4, w5, w6, [sp]
1866 #CHECK: stlxp      wzr, x6, x7, [x1]
1867 0xe5 0x9b 0x24 0x88
1868 0x26 0x9c 0x3f 0xc8
1869
1870 #CHECK: ldaxp      w5, w18, [sp]
1871 #CHECK: ldaxp      x6, x19, [x22]
1872 #CHECK: ldaxp      x6, x19, [x22]
1873 0xe5 0xcb 0x7f 0x88
1874 0xc6 0xce 0x7f 0xc8
1875 0xc6 0xce 0x7e 0xc8
1876
1877 #CHECK: stlrb      w24, [sp]
1878 #CHECK: stlrh      w25, [x30]
1879 #CHECK: stlr       w26, [x29]
1880 #CHECK: stlr       x27, [x28]
1881 #CHECK: stlr       x27, [x28]
1882 #CHECK: stlr       x27, [x28]
1883 0xf8 0xff 0x9f 0x08
1884 0xd9 0xff 0x9f 0x48
1885 0xba 0xff 0x9f 0x88
1886 0x9b 0xff 0x9f 0xc8
1887 0x9b 0xef 0x9f 0xc8
1888 0x9b 0xff 0x9e 0xc8
1889
1890 #CHECK: ldarb      w23, [sp]
1891 #CHECK: ldarh      w22, [x30]
1892 #CHECK: ldar       wzr, [x29]
1893 #CHECK: ldar       x21, [x28]
1894 #CHECK: ldar       x21, [x28]
1895 #CHECK: ldar       x21, [x28]
1896 0xf7 0xff 0xdf 0x08
1897 0xd6 0xff 0xdf 0x48
1898 0xbf 0xff 0xdf 0x88
1899 0x95 0xff 0xdf 0xc8
1900 0x95 0xef 0xdf 0xc8
1901 0x95 0xff 0xde 0xc8
1902
1903 #------------------------------------------------------------------------------
1904 # Load/store (unscaled  immediate)
1905 #------------------------------------------------------------------------------
1906
1907 # CHECK: sturb    w9, [sp]
1908 # CHECK: sturh    wzr, [x12, #255]
1909 # CHECK: stur     w16, [x0, #-256]
1910 # CHECK: stur     x28, [x14, #1]
1911 0xe9 0x3 0x0 0x38
1912 0x9f 0xf1 0xf 0x78
1913 0x10 0x0 0x10 0xb8
1914 0xdc 0x11 0x0 0xf8
1915
1916 # CHECK: ldurb    w1, [x20, #255]
1917 # CHECK: ldurh    w20, [x1, #255]
1918 # CHECK: ldur     w12, [sp, #255]
1919 # CHECK: ldur     xzr, [x12, #255]
1920 0x81 0xf2 0x4f 0x38
1921 0x34 0xf0 0x4f 0x78
1922 0xec 0xf3 0x4f 0xb8
1923 0x9f 0xf1 0x4f 0xf8
1924
1925 # CHECK: ldursb   x9, [x7, #-256]
1926 # CHECK: ldursh   x17, [x19, #-256]
1927 # CHECK: ldursw   x20, [x15, #-256]
1928 # CHECK: prfum    pldl2keep, [sp, #-256]
1929 # CHECK: ldursb   w19, [x1, #-256]
1930 # CHECK: ldursh   w15, [x21, #-256]
1931 0xe9 0x0 0x90 0x38
1932 0x71 0x2 0x90 0x78
1933 0xf4 0x1 0x90 0xb8
1934 0xe2 0x3 0x90 0xf8
1935 0x33 0x0 0xd0 0x38
1936 0xaf 0x2 0xd0 0x78
1937
1938 # CHECK: stur     b0, [sp, #1]
1939 # CHECK: stur     h12, [x12, #-1]
1940 # CHECK: stur     s15, [x0, #255]
1941 # CHECK: stur     d31, [x5, #25]
1942 # CHECK: stur     q9, [x5]
1943 0xe0 0x13 0x0 0x3c
1944 0x8c 0xf1 0x1f 0x7c
1945 0xf 0xf0 0xf 0xbc
1946 0xbf 0x90 0x1 0xfc
1947 0xa9 0x0 0x80 0x3c
1948
1949 # CHECK: ldur     b3, [sp]
1950 # CHECK: ldur     h5, [x4, #-256]
1951 # CHECK: ldur     s7, [x12, #-1]
1952 # CHECK: ldur     d11, [x19, #4]
1953 # CHECK: ldur     q13, [x1, #2]
1954 0xe3 0x3 0x40 0x3c
1955 0x85 0x0 0x50 0x7c
1956 0x87 0xf1 0x5f 0xbc
1957 0x6b 0x42 0x40 0xfc
1958 0x2d 0x20 0xc0 0x3c
1959
1960 #------------------------------------------------------------------------------
1961 # Load/store (immediate post-indexed)
1962 #------------------------------------------------------------------------------
1963
1964 # E.g. "str xzr, [sp], #4" is *not* unpredictable
1965 # CHECK-NOT: warning: potentially undefined instruction encoding
1966 0xff 0x47 0x40 0xb8
1967
1968 # CHECK: strb     w9, [x2], #255
1969 # CHECK: strb     w10, [x3], #1
1970 # CHECK: strb     w10, [x3], #-256
1971 # CHECK: strh     w9, [x2], #255
1972 # CHECK: strh     w9, [x2], #1
1973 # CHECK: strh     w10, [x3], #-256
1974 0x49 0xf4 0xf 0x38
1975 0x6a 0x14 0x0 0x38
1976 0x6a 0x4 0x10 0x38
1977 0x49 0xf4 0xf 0x78
1978 0x49 0x14 0x0 0x78
1979 0x6a 0x4 0x10 0x78
1980
1981 # CHECK: str      w19, [sp], #255
1982 # CHECK: str      w20, [x30], #1
1983 # CHECK: str      w21, [x12], #-256
1984 # CHECK: str      xzr, [x9], #255
1985 # CHECK: str      x2, [x3], #1
1986 # CHECK: str      x19, [x12], #-256
1987 0xf3 0xf7 0xf 0xb8
1988 0xd4 0x17 0x0 0xb8
1989 0x95 0x5 0x10 0xb8
1990 0x3f 0xf5 0xf 0xf8
1991 0x62 0x14 0x0 0xf8
1992 0x93 0x5 0x10 0xf8
1993
1994 # CHECK: ldrb     w9, [x2], #255
1995 # CHECK: ldrb     w10, [x3], #1
1996 # CHECK: ldrb     w10, [x3], #-256
1997 # CHECK: ldrh     w9, [x2], #255
1998 # CHECK: ldrh     w9, [x2], #1
1999 # CHECK: ldrh     w10, [x3], #-256
2000 0x49 0xf4 0x4f 0x38
2001 0x6a 0x14 0x40 0x38
2002 0x6a 0x4 0x50 0x38
2003 0x49 0xf4 0x4f 0x78
2004 0x49 0x14 0x40 0x78
2005 0x6a 0x4 0x50 0x78
2006
2007 # CHECK: ldr      w19, [sp], #255
2008 # CHECK: ldr      w20, [x30], #1
2009 # CHECK: ldr      w21, [x12], #-256
2010 # CHECK: ldr      xzr, [x9], #255
2011 # CHECK: ldr      x2, [x3], #1
2012 # CHECK: ldr      x19, [x12], #-256
2013 0xf3 0xf7 0x4f 0xb8
2014 0xd4 0x17 0x40 0xb8
2015 0x95 0x5 0x50 0xb8
2016 0x3f 0xf5 0x4f 0xf8
2017 0x62 0x14 0x40 0xf8
2018 0x93 0x5 0x50 0xf8
2019
2020 # CHECK: ldrsb    xzr, [x9], #255
2021 # CHECK: ldrsb    x2, [x3], #1
2022 # CHECK: ldrsb    x19, [x12], #-256
2023 # CHECK: ldrsh    xzr, [x9], #255
2024 # CHECK: ldrsh    x2, [x3], #1
2025 # CHECK: ldrsh    x19, [x12], #-256
2026 # CHECK: ldrsw    xzr, [x9], #255
2027 # CHECK: ldrsw    x2, [x3], #1
2028 # CHECK: ldrsw    x19, [x12], #-256
2029 0x3f 0xf5 0x8f 0x38
2030 0x62 0x14 0x80 0x38
2031 0x93 0x5 0x90 0x38
2032 0x3f 0xf5 0x8f 0x78
2033 0x62 0x14 0x80 0x78
2034 0x93 0x5 0x90 0x78
2035 0x3f 0xf5 0x8f 0xb8
2036 0x62 0x14 0x80 0xb8
2037 0x93 0x5 0x90 0xb8
2038
2039 # CHECK: ldrsb    wzr, [x9], #255
2040 # CHECK: ldrsb    w2, [x3], #1
2041 # CHECK: ldrsb    w19, [x12], #-256
2042 # CHECK: ldrsh    wzr, [x9], #255
2043 # CHECK: ldrsh    w2, [x3], #1
2044 # CHECK: ldrsh    w19, [x12], #-256
2045 0x3f 0xf5 0xcf 0x38
2046 0x62 0x14 0xc0 0x38
2047 0x93 0x5 0xd0 0x38
2048 0x3f 0xf5 0xcf 0x78
2049 0x62 0x14 0xc0 0x78
2050 0x93 0x5 0xd0 0x78
2051
2052 # CHECK: str      b0, [x0], #255
2053 # CHECK: str      b3, [x3], #1
2054 # CHECK: str      b5, [sp], #-256
2055 # CHECK: str      h10, [x10], #255
2056 # CHECK: str      h13, [x23], #1
2057 # CHECK: str      h15, [sp], #-256
2058 # CHECK: str      s20, [x20], #255
2059 # CHECK: str      s23, [x23], #1
2060 # CHECK: str      s25, [x0], #-256
2061 # CHECK: str      d20, [x20], #255
2062 # CHECK: str      d23, [x23], #1
2063 # CHECK: str      d25, [x0], #-256
2064 0x0 0xf4 0xf 0x3c
2065 0x63 0x14 0x0 0x3c
2066 0xe5 0x7 0x10 0x3c
2067 0x4a 0xf5 0xf 0x7c
2068 0xed 0x16 0x0 0x7c
2069 0xef 0x7 0x10 0x7c
2070 0x94 0xf6 0xf 0xbc
2071 0xf7 0x16 0x0 0xbc
2072 0x19 0x4 0x10 0xbc
2073 0x94 0xf6 0xf 0xfc
2074 0xf7 0x16 0x0 0xfc
2075 0x19 0x4 0x10 0xfc
2076
2077 # CHECK: ldr      b0, [x0], #255
2078 # CHECK: ldr      b3, [x3], #1
2079 # CHECK: ldr      b5, [sp], #-256
2080 # CHECK: ldr      h10, [x10], #255
2081 # CHECK: ldr      h13, [x23], #1
2082 # CHECK: ldr      h15, [sp], #-256
2083 # CHECK: ldr      s20, [x20], #255
2084 # CHECK: ldr      s23, [x23], #1
2085 # CHECK: ldr      s25, [x0], #-256
2086 # CHECK: ldr      d20, [x20], #255
2087 # CHECK: ldr      d23, [x23], #1
2088 # CHECK: ldr      d25, [x0], #-256
2089 0x0 0xf4 0x4f 0x3c
2090 0x63 0x14 0x40 0x3c
2091 0xe5 0x7 0x50 0x3c
2092 0x4a 0xf5 0x4f 0x7c
2093 0xed 0x16 0x40 0x7c
2094 0xef 0x7 0x50 0x7c
2095 0x94 0xf6 0x4f 0xbc
2096 0xf7 0x16 0x40 0xbc
2097 0x19 0x4 0x50 0xbc
2098 0x94 0xf6 0x4f 0xfc
2099 0xf7 0x16 0x40 0xfc
2100 0x19 0x4 0x50 0xfc
2101 0x34 0xf4 0xcf 0x3c
2102
2103 # CHECK: ldr      q20, [x1], #255
2104 # CHECK: ldr      q23, [x9], #1
2105 # CHECK: ldr      q25, [x20], #-256
2106 # CHECK: str      q10, [x1], #255
2107 # CHECK: str      q22, [sp], #1
2108 # CHECK: str      q21, [x20], #-256
2109 0x37 0x15 0xc0 0x3c
2110 0x99 0x6 0xd0 0x3c
2111 0x2a 0xf4 0x8f 0x3c
2112 0xf6 0x17 0x80 0x3c
2113 0x95 0x6 0x90 0x3c
2114
2115 #-------------------------------------------------------------------------------
2116 # Load-store register (immediate pre-indexed)
2117 #-------------------------------------------------------------------------------
2118
2119 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2120 # CHECK-NOT: warning: potentially undefined instruction encoding
2121 0xff 0xf 0x40 0xf8
2122
2123 # CHECK: ldr      x3, [x4, #0]!
2124 0x83 0xc 0x40 0xf8
2125
2126 # CHECK: strb     w9, [x2, #255]!
2127 # CHECK: strb     w10, [x3, #1]!
2128 # CHECK: strb     w10, [x3, #-256]!
2129 # CHECK: strh     w9, [x2, #255]!
2130 # CHECK: strh     w9, [x2, #1]!
2131 # CHECK: strh     w10, [x3, #-256]!
2132 0x49 0xfc 0xf 0x38
2133 0x6a 0x1c 0x0 0x38
2134 0x6a 0xc 0x10 0x38
2135 0x49 0xfc 0xf 0x78
2136 0x49 0x1c 0x0 0x78
2137 0x6a 0xc 0x10 0x78
2138
2139 # CHECK: str      w19, [sp, #255]!
2140 # CHECK: str      w20, [x30, #1]!
2141 # CHECK: str      w21, [x12, #-256]!
2142 # CHECK: str      xzr, [x9, #255]!
2143 # CHECK: str      x2, [x3, #1]!
2144 # CHECK: str      x19, [x12, #-256]!
2145 0xf3 0xff 0xf 0xb8
2146 0xd4 0x1f 0x0 0xb8
2147 0x95 0xd 0x10 0xb8
2148 0x3f 0xfd 0xf 0xf8
2149 0x62 0x1c 0x0 0xf8
2150 0x93 0xd 0x10 0xf8
2151
2152 # CHECK: ldrb     w9, [x2, #255]!
2153 # CHECK: ldrb     w10, [x3, #1]!
2154 # CHECK: ldrb     w10, [x3, #-256]!
2155 # CHECK: ldrh     w9, [x2, #255]!
2156 # CHECK: ldrh     w9, [x2, #1]!
2157 # CHECK: ldrh     w10, [x3, #-256]!
2158 0x49 0xfc 0x4f 0x38
2159 0x6a 0x1c 0x40 0x38
2160 0x6a 0xc 0x50 0x38
2161 0x49 0xfc 0x4f 0x78
2162 0x49 0x1c 0x40 0x78
2163 0x6a 0xc 0x50 0x78
2164
2165 # CHECK: ldr      w19, [sp, #255]!
2166 # CHECK: ldr      w20, [x30, #1]!
2167 # CHECK: ldr      w21, [x12, #-256]!
2168 # CHECK: ldr      xzr, [x9, #255]!
2169 # CHECK: ldr      x2, [x3, #1]!
2170 # CHECK: ldr      x19, [x12, #-256]!
2171 0xf3 0xff 0x4f 0xb8
2172 0xd4 0x1f 0x40 0xb8
2173 0x95 0xd 0x50 0xb8
2174 0x3f 0xfd 0x4f 0xf8
2175 0x62 0x1c 0x40 0xf8
2176 0x93 0xd 0x50 0xf8
2177
2178 # CHECK: ldrsb    xzr, [x9, #255]!
2179 # CHECK: ldrsb    x2, [x3, #1]!
2180 # CHECK: ldrsb    x19, [x12, #-256]!
2181 # CHECK: ldrsh    xzr, [x9, #255]!
2182 # CHECK: ldrsh    x2, [x3, #1]!
2183 # CHECK: ldrsh    x19, [x12, #-256]!
2184 # CHECK: ldrsw    xzr, [x9, #255]!
2185 # CHECK: ldrsw    x2, [x3, #1]!
2186 # CHECK: ldrsw    x19, [x12, #-256]!
2187 0x3f 0xfd 0x8f 0x38
2188 0x62 0x1c 0x80 0x38
2189 0x93 0xd 0x90 0x38
2190 0x3f 0xfd 0x8f 0x78
2191 0x62 0x1c 0x80 0x78
2192 0x93 0xd 0x90 0x78
2193 0x3f 0xfd 0x8f 0xb8
2194 0x62 0x1c 0x80 0xb8
2195 0x93 0xd 0x90 0xb8
2196
2197 # CHECK: ldrsb    wzr, [x9, #255]!
2198 # CHECK: ldrsb    w2, [x3, #1]!
2199 # CHECK: ldrsb    w19, [x12, #-256]!
2200 # CHECK: ldrsh    wzr, [x9, #255]!
2201 # CHECK: ldrsh    w2, [x3, #1]!
2202 # CHECK: ldrsh    w19, [x12, #-256]!
2203 0x3f 0xfd 0xcf 0x38
2204 0x62 0x1c 0xc0 0x38
2205 0x93 0xd 0xd0 0x38
2206 0x3f 0xfd 0xcf 0x78
2207 0x62 0x1c 0xc0 0x78
2208 0x93 0xd 0xd0 0x78
2209
2210 # CHECK: str      b0, [x0, #255]!
2211 # CHECK: str      b3, [x3, #1]!
2212 # CHECK: str      b5, [sp, #-256]!
2213 # CHECK: str      h10, [x10, #255]!
2214 # CHECK: str      h13, [x23, #1]!
2215 # CHECK: str      h15, [sp, #-256]!
2216 # CHECK: str      s20, [x20, #255]!
2217 # CHECK: str      s23, [x23, #1]!
2218 # CHECK: str      s25, [x0, #-256]!
2219 # CHECK: str      d20, [x20, #255]!
2220 # CHECK: str      d23, [x23, #1]!
2221 # CHECK: str      d25, [x0, #-256]!
2222 0x0 0xfc 0xf 0x3c
2223 0x63 0x1c 0x0 0x3c
2224 0xe5 0xf 0x10 0x3c
2225 0x4a 0xfd 0xf 0x7c
2226 0xed 0x1e 0x0 0x7c
2227 0xef 0xf 0x10 0x7c
2228 0x94 0xfe 0xf 0xbc
2229 0xf7 0x1e 0x0 0xbc
2230 0x19 0xc 0x10 0xbc
2231 0x94 0xfe 0xf 0xfc
2232 0xf7 0x1e 0x0 0xfc
2233 0x19 0xc 0x10 0xfc
2234
2235 # CHECK: ldr      b0, [x0, #255]!
2236 # CHECK: ldr      b3, [x3, #1]!
2237 # CHECK: ldr      b5, [sp, #-256]!
2238 # CHECK: ldr      h10, [x10, #255]!
2239 # CHECK: ldr      h13, [x23, #1]!
2240 # CHECK: ldr      h15, [sp, #-256]!
2241 # CHECK: ldr      s20, [x20, #255]!
2242 # CHECK: ldr      s23, [x23, #1]!
2243 # CHECK: ldr      s25, [x0, #-256]!
2244 # CHECK: ldr      d20, [x20, #255]!
2245 # CHECK: ldr      d23, [x23, #1]!
2246 # CHECK: ldr      d25, [x0, #-256]!
2247 0x0 0xfc 0x4f 0x3c
2248 0x63 0x1c 0x40 0x3c
2249 0xe5 0xf 0x50 0x3c
2250 0x4a 0xfd 0x4f 0x7c
2251 0xed 0x1e 0x40 0x7c
2252 0xef 0xf 0x50 0x7c
2253 0x94 0xfe 0x4f 0xbc
2254 0xf7 0x1e 0x40 0xbc
2255 0x19 0xc 0x50 0xbc
2256 0x94 0xfe 0x4f 0xfc
2257 0xf7 0x1e 0x40 0xfc
2258 0x19 0xc 0x50 0xfc
2259
2260 # CHECK: ldr      q20, [x1, #255]!
2261 # CHECK: ldr      q23, [x9, #1]!
2262 # CHECK: ldr      q25, [x20, #-256]!
2263 # CHECK: str      q10, [x1, #255]!
2264 # CHECK: str      q22, [sp, #1]!
2265 # CHECK: str      q21, [x20, #-256]!
2266 0x34 0xfc 0xcf 0x3c
2267 0x37 0x1d 0xc0 0x3c
2268 0x99 0xe 0xd0 0x3c
2269 0x2a 0xfc 0x8f 0x3c
2270 0xf6 0x1f 0x80 0x3c
2271 0x95 0xe 0x90 0x3c
2272
2273 #------------------------------------------------------------------------------
2274 # Load/store (unprivileged)
2275 #------------------------------------------------------------------------------
2276
2277 # CHECK: sttrb    w9, [sp]
2278 # CHECK: sttrh    wzr, [x12, #255]
2279 # CHECK: sttr     w16, [x0, #-256]
2280 # CHECK: sttr     x28, [x14, #1]
2281 0xe9 0x0b 0x0 0x38
2282 0x9f 0xf9 0xf 0x78
2283 0x10 0x08 0x10 0xb8
2284 0xdc 0x19 0x0 0xf8
2285
2286 # CHECK: ldtrb    w1, [x20, #255]
2287 # CHECK: ldtrh    w20, [x1, #255]
2288 # CHECK: ldtr     w12, [sp, #255]
2289 # CHECK: ldtr     xzr, [x12, #255]
2290 0x81 0xfa 0x4f 0x38
2291 0x34 0xf8 0x4f 0x78
2292 0xec 0xfb 0x4f 0xb8
2293 0x9f 0xf9 0x4f 0xf8
2294
2295 # CHECK: ldtrsb   x9, [x7, #-256]
2296 # CHECK: ldtrsh   x17, [x19, #-256]
2297 # CHECK: ldtrsw   x20, [x15, #-256]
2298 # CHECK: ldtrsb   w19, [x1, #-256]
2299 # CHECK: ldtrsh   w15, [x21, #-256]
2300 0xe9 0x08 0x90 0x38
2301 0x71 0x0a 0x90 0x78
2302 0xf4 0x09 0x90 0xb8
2303 0x33 0x08 0xd0 0x38
2304 0xaf 0x0a 0xd0 0x78
2305
2306 #------------------------------------------------------------------------------
2307 # Load/store (unsigned  immediate)
2308 #------------------------------------------------------------------------------
2309
2310 # CHECK: ldr      x0, [x0]
2311 # CHECK: ldr      x4, [x29]
2312 # CHECK: ldr      x30, [x12, #32760]
2313 # CHECK: ldr      x20, [sp, #8]
2314 0x0 0x0 0x40 0xf9
2315 0xa4 0x3 0x40 0xf9
2316 0x9e 0xfd 0x7f 0xf9
2317 0xf4 0x7 0x40 0xf9
2318
2319 # CHECK: ldr      xzr, [sp]
2320 0xff 0x3 0x40 0xf9
2321
2322 # CHECK: ldr      w2, [sp]
2323 # CHECK: ldr      w17, [sp, #16380]
2324 # CHECK: ldr      w13, [x2, #4]
2325 0xe2 0x3 0x40 0xb9
2326 0xf1 0xff 0x7f 0xb9
2327 0x4d 0x4 0x40 0xb9
2328
2329 # CHECK: ldrsw    x2, [x5, #4]
2330 # CHECK: ldrsw    x23, [sp, #16380]
2331 0xa2 0x4 0x80 0xb9
2332 0xf7 0xff 0xbf 0xb9
2333
2334 # CHECK: ldrh     w2, [x4]
2335 # CHECK: ldrsh    w23, [x6, #8190]
2336 # CHECK: ldrsh    wzr, [sp, #2]
2337 # CHECK: ldrsh    x29, [x2, #2]
2338 0x82 0x0 0x40 0x79
2339 0xd7 0xfc 0xff 0x79
2340 0xff 0x7 0xc0 0x79
2341 0x5d 0x4 0x80 0x79
2342
2343 # CHECK: ldrb     w26, [x3, #121]
2344 # CHECK: ldrb     w12, [x2]
2345 # CHECK: ldrsb    w27, [sp, #4095]
2346 # CHECK: ldrsb    xzr, [x15]
2347 0x7a 0xe4 0x41 0x39
2348 0x4c 0x0 0x40 0x39
2349 0xfb 0xff 0xff 0x39
2350 0xff 0x1 0x80 0x39
2351
2352 # CHECK: str      x30, [sp]
2353 # CHECK: str      w20, [x4, #16380]
2354 # CHECK: strh     w20, [x10, #14]
2355 # CHECK: strh     w17, [sp, #8190]
2356 # CHECK: strb     w23, [x3, #4095]
2357 # CHECK: strb     wzr, [x2]
2358 0xfe 0x3 0x0 0xf9
2359 0x94 0xfc 0x3f 0xb9
2360 0x54 0x1d 0x0 0x79
2361 0xf1 0xff 0x3f 0x79
2362 0x77 0xfc 0x3f 0x39
2363 0x5f 0x0 0x0 0x39
2364
2365 # CHECK: ldr      b31, [sp, #4095]
2366 # CHECK: ldr      h20, [x2, #8190]
2367 # CHECK: ldr      s10, [x19, #16380]
2368 # CHECK: ldr      d3, [x10, #32760]
2369 # CHECK: str      q12, [sp, #65520]
2370 0xff 0xff 0x7f 0x3d
2371 0x54 0xfc 0x7f 0x7d
2372 0x6a 0xfe 0x7f 0xbd
2373 0x43 0xfd 0x7f 0xfd
2374 0xec 0xff 0xbf 0x3d
2375
2376 # CHECK: prfm    pldl1keep, [sp, #8]
2377 # CHECK: prfm    pldl1strm, [x3{{(, #0)?}}]
2378 # CHECK: prfm    pldl2keep, [x5, #16]
2379 # CHECK: prfm    pldl2strm, [x2{{(, #0)?}}]
2380 # CHECK: prfm    pldl3keep, [x5{{(, #0)?}}]
2381 # CHECK: prfm    pldl3strm, [x6{{(, #0)?}}]
2382 # CHECK: prfm    plil1keep, [sp, #8]
2383 # CHECK: prfm    plil1strm, [x3{{(, #0)?}}]
2384 # CHECK: prfm    plil2keep, [x5, #16]
2385 # CHECK: prfm    plil2strm, [x2{{(, #0)?}}]
2386 # CHECK: prfm    plil3keep, [x5{{(, #0)?}}]
2387 # CHECK: prfm    plil3strm, [x6{{(, #0)?}}]
2388 # CHECK: prfm    pstl1keep, [sp, #8]
2389 # CHECK: prfm    pstl1strm, [x3{{(, #0)?}}]
2390 # CHECK: prfm    pstl2keep, [x5, #16]
2391 # CHECK: prfm    pstl2strm, [x2{{(, #0)?}}]
2392 # CHECK: prfm    pstl3keep, [x5{{(, #0)?}}]
2393 # CHECK: prfm    pstl3strm, [x6{{(, #0)?}}]
2394 0xe0 0x07 0x80 0xf9
2395 0x61 0x00 0x80 0xf9
2396 0xa2 0x08 0x80 0xf9
2397 0x43 0x00 0x80 0xf9
2398 0xa4 0x00 0x80 0xf9
2399 0xc5 0x00 0x80 0xf9
2400 0xe8 0x07 0x80 0xf9
2401 0x69 0x00 0x80 0xf9
2402 0xaa 0x08 0x80 0xf9
2403 0x4b 0x00 0x80 0xf9
2404 0xac 0x00 0x80 0xf9
2405 0xcd 0x00 0x80 0xf9
2406 0xf0 0x07 0x80 0xf9
2407 0x71 0x00 0x80 0xf9
2408 0xb2 0x08 0x80 0xf9
2409 0x53 0x00 0x80 0xf9
2410 0xb4 0x00 0x80 0xf9
2411 0xd5 0x00 0x80 0xf9
2412
2413
2414 #------------------------------------------------------------------------------
2415 # Load/store (register offset)
2416 #------------------------------------------------------------------------------
2417
2418 # CHECK: ldrb     w3, [sp, x5]
2419 # CHECK: ldrb     w9, [x27, x6]
2420 # CHECK: ldrsb    w10, [x30, x7]
2421 # CHECK: ldrb     w11, [x29, x3, sxtx]
2422 # CHECK: strb     w12, [x28, xzr, sxtx]
2423 # CHECK: ldrb     w14, [x26, w6, uxtw]
2424 # CHECK: ldrsb    w15, [x25, w7, uxtw]
2425 # CHECK: ldrb     w17, [x23, w9, sxtw]
2426 # CHECK: ldrsb    x18, [x22, w10, sxtw]
2427 0xe3 0x6b 0x65 0x38
2428 0x69 0x6b 0x66 0x38
2429 0xca 0x6b 0xe7 0x38
2430 0xab 0xeb 0x63 0x38
2431 0x8c 0xeb 0x3f 0x38
2432 0x4e 0x4b 0x66 0x38
2433 0x2f 0x4b 0xe7 0x38
2434 0xf1 0xca 0x69 0x38
2435 0xd2 0xca 0xaa 0x38
2436
2437 # CHECK: ldrsh    w3, [sp, x5]
2438 # CHECK: ldrsh    w9, [x27, x6]
2439 # CHECK: ldrh     w10, [x30, x7, lsl #1]
2440 # CHECK: strh     w11, [x29, x3, sxtx]
2441 # CHECK: ldrh     w12, [x28, xzr, sxtx]
2442 # CHECK: ldrsh    x13, [x27, x5, sxtx #1]
2443 # CHECK: ldrh     w14, [x26, w6, uxtw]
2444 # CHECK: ldrh     w15, [x25, w7, uxtw]
2445 # CHECK: ldrsh    w16, [x24, w8, uxtw #1]
2446 # CHECK: ldrh     w17, [x23, w9, sxtw]
2447 # CHECK: ldrh     w18, [x22, w10, sxtw]
2448 # CHECK: strh     w19, [x21, wzr, sxtw #1]
2449 0xe3 0x6b 0xe5 0x78
2450 0x69 0x6b 0xe6 0x78
2451 0xca 0x7b 0x67 0x78
2452 0xab 0xeb 0x23 0x78
2453 0x8c 0xeb 0x7f 0x78
2454 0x6d 0xfb 0xa5 0x78
2455 0x4e 0x4b 0x66 0x78
2456 0x2f 0x4b 0x67 0x78
2457 0x10 0x5b 0xe8 0x78
2458 0xf1 0xca 0x69 0x78
2459 0xd2 0xca 0x6a 0x78
2460 0xb3 0xda 0x3f 0x78
2461
2462 # CHECK: ldr      w3, [sp, x5]
2463 # CHECK: ldr      s9, [x27, x6]
2464 # CHECK: ldr      w10, [x30, x7, lsl #2]
2465 # CHECK: ldr      w11, [x29, x3, sxtx]
2466 # CHECK: str      s12, [x28, xzr, sxtx]
2467 # CHECK: str      w13, [x27, x5, sxtx #2]
2468 # CHECK: str      w14, [x26, w6, uxtw]
2469 # CHECK: ldr      w15, [x25, w7, uxtw]
2470 # CHECK: ldr      w16, [x24, w8, uxtw #2]
2471 # CHECK: ldrsw    x17, [x23, w9, sxtw]
2472 # CHECK: ldr      w18, [x22, w10, sxtw]
2473 # CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
2474 0xe3 0x6b 0x65 0xb8
2475 0x69 0x6b 0x66 0xbc
2476 0xca 0x7b 0x67 0xb8
2477 0xab 0xeb 0x63 0xb8
2478 0x8c 0xeb 0x3f 0xbc
2479 0x6d 0xfb 0x25 0xb8
2480 0x4e 0x4b 0x26 0xb8
2481 0x2f 0x4b 0x67 0xb8
2482 0x10 0x5b 0x68 0xb8
2483 0xf1 0xca 0xa9 0xb8
2484 0xd2 0xca 0x6a 0xb8
2485 0xb3 0xda 0xbf 0xb8
2486
2487 # CHECK: ldr      x3, [sp, x5]
2488 # CHECK: str      x9, [x27, x6]
2489 # CHECK: ldr      d10, [x30, x7, lsl #3]
2490 # CHECK: str      x11, [x29, x3, sxtx]
2491 # CHECK: ldr      x12, [x28, xzr, sxtx]
2492 # CHECK: ldr      x13, [x27, x5, sxtx #3]
2493 # CHECK: prfm     pldl1keep, [x26, w6, uxtw]
2494 # CHECK: ldr      x15, [x25, w7, uxtw]
2495 # CHECK: ldr      x16, [x24, w8, uxtw #3]
2496 # CHECK: ldr      x17, [x23, w9, sxtw]
2497 # CHECK: ldr      x18, [x22, w10, sxtw]
2498 # CHECK: str      d19, [x21, wzr, sxtw #3]
2499 0xe3 0x6b 0x65 0xf8
2500 0x69 0x6b 0x26 0xf8
2501 0xca 0x7b 0x67 0xfc
2502 0xab 0xeb 0x23 0xf8
2503 0x8c 0xeb 0x7f 0xf8
2504 0x6d 0xfb 0x65 0xf8
2505 0x40 0x4b 0xa6 0xf8
2506 0x2f 0x4b 0x67 0xf8
2507 0x10 0x5b 0x68 0xf8
2508 0xf1 0xca 0x69 0xf8
2509 0xd2 0xca 0x6a 0xf8
2510 0xb3 0xda 0x3f 0xfc
2511
2512 # CHECK: ldr      q3, [sp, x5]
2513 # CHECK: ldr      q9, [x27, x6]
2514 # CHECK: ldr      q10, [x30, x7, lsl #4]
2515 # CHECK: str      q11, [x29, x3, sxtx]
2516 # CHECK: str      q12, [x28, xzr, sxtx]
2517 # CHECK: str      q13, [x27, x5, sxtx #4]
2518 # CHECK: ldr      q14, [x26, w6, uxtw]
2519 # CHECK: ldr      q15, [x25, w7, uxtw]
2520 # CHECK: ldr      q16, [x24, w8, uxtw #4]
2521 # CHECK: ldr      q17, [x23, w9, sxtw]
2522 # CHECK: str      q18, [x22, w10, sxtw]
2523 # CHECK: ldr      q19, [x21, wzr, sxtw #4]
2524 0xe3 0x6b 0xe5 0x3c
2525 0x69 0x6b 0xe6 0x3c
2526 0xca 0x7b 0xe7 0x3c
2527 0xab 0xeb 0xa3 0x3c
2528 0x8c 0xeb 0xbf 0x3c
2529 0x6d 0xfb 0xa5 0x3c
2530 0x4e 0x4b 0xe6 0x3c
2531 0x2f 0x4b 0xe7 0x3c
2532 0x10 0x5b 0xe8 0x3c
2533 0xf1 0xca 0xe9 0x3c
2534 0xd2 0xca 0xaa 0x3c
2535 0xb3 0xda 0xff 0x3c
2536
2537 #------------------------------------------------------------------------------
2538 # Load/store register pair (offset)
2539 #------------------------------------------------------------------------------
2540
2541 # CHECK: ldp      w3, w5, [sp]
2542 # CHECK: stp      wzr, w9, [sp, #252]
2543 # CHECK: ldp      w2, wzr, [sp, #-256]
2544 # CHECK: ldp      w9, w10, [sp, #4]
2545 0xe3 0x17 0x40 0x29
2546 0xff 0xa7 0x1f 0x29
2547 0xe2 0x7f 0x60 0x29
2548 0xe9 0xab 0x40 0x29
2549
2550 # CHECK: ldpsw    x9, x10, [sp, #4]
2551 # CHECK: ldpsw    x9, x10, [x2, #-256]
2552 # CHECK: ldpsw    x20, x30, [sp, #252]
2553 0xe9 0xab 0x40 0x69
2554 0x49 0x28 0x60 0x69
2555 0xf4 0xfb 0x5f 0x69
2556
2557 # CHECK: ldp      x21, x29, [x2, #504]
2558 # CHECK: ldp      x22, x23, [x3, #-512]
2559 # CHECK: ldp      x24, x25, [x4, #8]
2560 0x55 0xf4 0x5f 0xa9
2561 0x76 0x5c 0x60 0xa9
2562 0x98 0xe4 0x40 0xa9
2563
2564 # CHECK: ldp      s29, s28, [sp, #252]
2565 # CHECK: stp      s27, s26, [sp, #-256]
2566 # CHECK: ldp      s1, s2, [x3, #44]
2567 0xfd 0xf3 0x5f 0x2d
2568 0xfb 0x6b 0x20 0x2d
2569 0x61 0x88 0x45 0x2d
2570
2571 # CHECK: stp      d3, d5, [x9, #504]
2572 # CHECK: stp      d7, d11, [x10, #-512]
2573 # CHECK: ldp      d2, d3, [x30, #-8]
2574 0x23 0x95 0x1f 0x6d
2575 0x47 0x2d 0x20 0x6d
2576 0xc2 0x8f 0x7f 0x6d
2577
2578 # CHECK: stp      q3, q5, [sp]
2579 # CHECK: stp      q17, q19, [sp, #1008]
2580 # CHECK: ldp      q23, q29, [x1, #-1024]
2581 0xe3 0x17 0x0 0xad
2582 0xf1 0xcf 0x1f 0xad
2583 0x37 0x74 0x60 0xad
2584
2585 #------------------------------------------------------------------------------
2586 # Load/store register pair (post-indexed)
2587 #------------------------------------------------------------------------------
2588
2589 # CHECK: ldp      w3, w5, [sp], #0
2590 # CHECK: stp      wzr, w9, [sp], #252
2591 # CHECK: ldp      w2, wzr, [sp], #-256
2592 # CHECK: ldp      w9, w10, [sp], #4
2593 0xe3 0x17 0xc0 0x28
2594 0xff 0xa7 0x9f 0x28
2595 0xe2 0x7f 0xe0 0x28
2596 0xe9 0xab 0xc0 0x28
2597
2598 # CHECK: ldpsw    x9, x10, [sp], #4
2599 # CHECK: ldpsw    x9, x10, [x2], #-256
2600 # CHECK: ldpsw    x20, x30, [sp], #252
2601 0xe9 0xab 0xc0 0x68
2602 0x49 0x28 0xe0 0x68
2603 0xf4 0xfb 0xdf 0x68
2604
2605 # CHECK: ldp      x21, x29, [x2], #504
2606 # CHECK: ldp      x22, x23, [x3], #-512
2607 # CHECK: ldp      x24, x25, [x4], #8
2608 0x55 0xf4 0xdf 0xa8
2609 0x76 0x5c 0xe0 0xa8
2610 0x98 0xe4 0xc0 0xa8
2611
2612 # CHECK: ldp      s29, s28, [sp], #252
2613 # CHECK: stp      s27, s26, [sp], #-256
2614 # CHECK: ldp      s1, s2, [x3], #44
2615 0xfd 0xf3 0xdf 0x2c
2616 0xfb 0x6b 0xa0 0x2c
2617 0x61 0x88 0xc5 0x2c
2618
2619 # CHECK: stp      d3, d5, [x9], #504
2620 # CHECK: stp      d7, d11, [x10], #-512
2621 # CHECK: ldp      d2, d3, [x30], #-8
2622 0x23 0x95 0x9f 0x6c
2623 0x47 0x2d 0xa0 0x6c
2624 0xc2 0x8f 0xff 0x6c
2625
2626 # CHECK: stp      q3, q5, [sp], #0
2627 # CHECK: stp      q17, q19, [sp], #1008
2628 # CHECK: ldp      q23, q29, [x1], #-1024
2629 0xe3 0x17 0x80 0xac
2630 0xf1 0xcf 0x9f 0xac
2631 0x37 0x74 0xe0 0xac
2632
2633 #------------------------------------------------------------------------------
2634 # Load/store register pair (pre-indexed)
2635 #------------------------------------------------------------------------------
2636
2637 # CHECK: ldp      w3, w5, [sp, #0]!
2638 # CHECK: stp      wzr, w9, [sp, #252]!
2639 # CHECK: ldp      w2, wzr, [sp, #-256]!
2640 # CHECK: ldp      w9, w10, [sp, #4]!
2641 0xe3 0x17 0xc0 0x29
2642 0xff 0xa7 0x9f 0x29
2643 0xe2 0x7f 0xe0 0x29
2644 0xe9 0xab 0xc0 0x29
2645
2646 # CHECK: ldpsw    x9, x10, [sp, #4]!
2647 # CHECK: ldpsw    x9, x10, [x2, #-256]!
2648 # CHECK: ldpsw    x20, x30, [sp, #252]!
2649 0xe9 0xab 0xc0 0x69
2650 0x49 0x28 0xe0 0x69
2651 0xf4 0xfb 0xdf 0x69
2652
2653 # CHECK: ldp      x21, x29, [x2, #504]!
2654 # CHECK: ldp      x22, x23, [x3, #-512]!
2655 # CHECK: ldp      x24, x25, [x4, #8]!
2656 0x55 0xf4 0xdf 0xa9
2657 0x76 0x5c 0xe0 0xa9
2658 0x98 0xe4 0xc0 0xa9
2659
2660 # CHECK: ldp      s29, s28, [sp, #252]!
2661 # CHECK: stp      s27, s26, [sp, #-256]!
2662 # CHECK: ldp      s1, s2, [x3, #44]!
2663 0xfd 0xf3 0xdf 0x2d
2664 0xfb 0x6b 0xa0 0x2d
2665 0x61 0x88 0xc5 0x2d
2666
2667 # CHECK: stp      d3, d5, [x9, #504]!
2668 # CHECK: stp      d7, d11, [x10, #-512]!
2669 # CHECK: ldp      d2, d3, [x30, #-8]!
2670 0x23 0x95 0x9f 0x6d
2671 0x47 0x2d 0xa0 0x6d
2672 0xc2 0x8f 0xff 0x6d
2673
2674 # CHECK: stp      q3, q5, [sp, #0]!
2675 # CHECK: stp      q17, q19, [sp, #1008]!
2676 # CHECK: ldp      q23, q29, [x1, #-1024]!
2677 0xe3 0x17 0x80 0xad
2678 0xf1 0xcf 0x9f 0xad
2679 0x37 0x74 0xe0 0xad
2680
2681 #------------------------------------------------------------------------------
2682 # Load/store register pair (offset)
2683 #------------------------------------------------------------------------------
2684
2685 # CHECK: ldnp      w3, w5, [sp]
2686 # CHECK: stnp      wzr, w9, [sp, #252]
2687 # CHECK: ldnp      w2, wzr, [sp, #-256]
2688 # CHECK: ldnp      w9, w10, [sp, #4]
2689 0xe3 0x17 0x40 0x28
2690 0xff 0xa7 0x1f 0x28
2691 0xe2 0x7f 0x60 0x28
2692 0xe9 0xab 0x40 0x28
2693
2694 # CHECK: ldnp      x21, x29, [x2, #504]
2695 # CHECK: ldnp      x22, x23, [x3, #-512]
2696 # CHECK: ldnp      x24, x25, [x4, #8]
2697 0x55 0xf4 0x5f 0xa8
2698 0x76 0x5c 0x60 0xa8
2699 0x98 0xe4 0x40 0xa8
2700
2701 # CHECK: ldnp      s29, s28, [sp, #252]
2702 # CHECK: stnp      s27, s26, [sp, #-256]
2703 # CHECK: ldnp      s1, s2, [x3, #44]
2704 0xfd 0xf3 0x5f 0x2c
2705 0xfb 0x6b 0x20 0x2c
2706 0x61 0x88 0x45 0x2c
2707
2708 # CHECK: stnp      d3, d5, [x9, #504]
2709 # CHECK: stnp      d7, d11, [x10, #-512]
2710 # CHECK: ldnp      d2, d3, [x30, #-8]
2711 0x23 0x95 0x1f 0x6c
2712 0x47 0x2d 0x20 0x6c
2713 0xc2 0x8f 0x7f 0x6c
2714
2715 # CHECK: stnp      q3, q5, [sp]
2716 # CHECK: stnp      q17, q19, [sp, #1008]
2717 # CHECK: ldnp      q23, q29, [x1, #-1024]
2718 0xe3 0x17 0x0 0xac
2719 0xf1 0xcf 0x1f 0xac
2720 0x37 0x74 0x60 0xac
2721
2722 #------------------------------------------------------------------------------
2723 # Logical (immediate)
2724 #------------------------------------------------------------------------------
2725 # CHECK: orr      w3, w9, #0xffff0000
2726 # CHECK: orr      wsp, w10, #0xe00000ff
2727 # CHECK: orr      w9, w10, #0x3ff
2728 0x23 0x3d 0x10 0x32
2729 0x5f 0x29 0x3 0x32
2730 0x49 0x25 0x0 0x32
2731
2732 # CHECK: and      w14, w15, #0x80008000
2733 # CHECK: and      w12, w13, #0xffc3ffc3
2734 # CHECK: and      w11, wzr, #0x30003
2735 0xee 0x81 0x1 0x12
2736 0xac 0xad 0xa 0x12
2737 0xeb 0x87 0x0 0x12
2738
2739 # CHECK: eor      w3, w6, #0xe0e0e0e0
2740 # CHECK: eor      wsp, wzr, #0x3030303
2741 # CHECK: eor      w16, w17, #0x81818181
2742 0xc3 0xc8 0x3 0x52
2743 0xff 0xc7 0x0 0x52
2744 0x30 0xc6 0x1 0x52
2745
2746 # CHECK: {{ands     wzr,|tst}} w18, #0xcccccccc
2747 # CHECK: ands     w19, w20, #0x33333333
2748 # CHECK: ands     w21, w22, #0x99999999
2749 0x5f 0xe6 0x2 0x72
2750 0x93 0xe6 0x0 0x72
2751 0xd5 0xe6 0x1 0x72
2752
2753 # CHECK: {{ands     wzr,|tst}} w3, #0xaaaaaaaa
2754 # CHECK: {{ands     wzr,|tst}} wzr, #0x55555555
2755 0x7f 0xf0 0x1 0x72
2756 0xff 0xf3 0x0 0x72
2757
2758 # CHECK: eor      x3, x5, #0xffffffffc000000
2759 # CHECK: and      x9, x10, #0x7fffffffffff
2760 # CHECK: orr      x11, x12, #0x8000000000000fff
2761 0xa3 0x84 0x66 0xd2
2762 0x49 0xb9 0x40 0x92
2763 0x8b 0x31 0x41 0xb2
2764
2765 # CHECK: orr      x3, x9, #0xffff0000ffff0000
2766 # CHECK: orr      sp, x10, #0xe00000ffe00000ff
2767 # CHECK: orr      x9, x10, #0x3ff000003ff
2768 0x23 0x3d 0x10 0xb2
2769 0x5f 0x29 0x3 0xb2
2770 0x49 0x25 0x0 0xb2
2771
2772 # CHECK: and      x14, x15, #0x8000800080008000
2773 # CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
2774 # CHECK: and      x11, xzr, #0x3000300030003
2775 0xee 0x81 0x1 0x92
2776 0xac 0xad 0xa 0x92
2777 0xeb 0x87 0x0 0x92
2778
2779 # CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
2780 # CHECK: eor      sp, xzr, #0x303030303030303
2781 # CHECK: eor      x16, x17, #0x8181818181818181
2782 0xc3 0xc8 0x3 0xd2
2783 0xff 0xc7 0x0 0xd2
2784 0x30 0xc6 0x1 0xd2
2785
2786 # CHECK: {{ands     xzr,|tst}} x18, #0xcccccccccccccccc
2787 # CHECK: ands     x19, x20, #0x3333333333333333
2788 # CHECK: ands     x21, x22, #0x9999999999999999
2789 0x5f 0xe6 0x2 0xf2
2790 0x93 0xe6 0x0 0xf2
2791 0xd5 0xe6 0x1 0xf2
2792
2793 # CHECK: {{ands     xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2794 # CHECK: {{ands     xzr,|tst}} xzr, #0x5555555555555555
2795 0x7f 0xf0 0x1 0xf2
2796 0xff 0xf3 0x0 0xf2
2797
2798 # CHECK: orr      w3, wzr, #0xf000f
2799 # CHECK: orr      x10, xzr, #0xaaaaaaaaaaaaaaaa
2800 0xe3 0x8f 0x0 0x32
2801 0xea 0xf3 0x1 0xb2
2802
2803 # CHECK: orr      w3, wzr, #0xffff
2804 # CHECK: orr      x9, xzr, #0xffff00000000
2805 0xe3 0x3f 0x0 0x32
2806 0xe9 0x3f 0x60 0xb2
2807
2808 #------------------------------------------------------------------------------
2809 # Logical (shifted register)
2810 #------------------------------------------------------------------------------
2811
2812 # CHECK: and      w12, w23, w21
2813 # CHECK: and      w16, w15, w1, lsl #1
2814 # CHECK: and      w9, w4, w10, lsl #31
2815 # CHECK: and      w3, w30, w11
2816 # CHECK: and      x3, x5, x7, lsl #63
2817 0xec 0x2 0x15 0xa
2818 0xf0 0x5 0x1 0xa
2819 0x89 0x7c 0xa 0xa
2820 0xc3 0x3 0xb 0xa
2821 0xa3 0xfc 0x7 0x8a
2822
2823 # CHECK: and      x5, x14, x19, asr #4
2824 # CHECK: and      w3, w17, w19, ror #31
2825 # CHECK: and      w0, w2, wzr, lsr #17
2826 # CHECK: and      w3, w30, w11, asr
2827 0xc5 0x11 0x93 0x8a
2828 0x23 0x7e 0xd3 0xa
2829 0x40 0x44 0x5f 0xa
2830 0xc3 0x3 0x8b 0xa
2831
2832 # CHECK: and      xzr, x4, x26
2833 # CHECK: and      w3, wzr, w20, ror
2834 # CHECK: and      x7, x20, xzr, asr #63
2835 0x9f 0x0 0x1a 0x8a
2836 0xe3 0x3 0xd4 0xa
2837 0x87 0xfe 0x9f 0x8a
2838
2839 # CHECK: bic      x13, x20, x14, lsl #47
2840 # CHECK: bic      w2, w7, w9
2841 # CHECK: orr      w2, w7, w0, asr #31
2842 # CHECK: orr      x8, x9, x10, lsl #12
2843 # CHECK: orn      x3, x5, x7, asr
2844 # CHECK: orn      w2, w5, w29
2845 0x8d 0xbe 0x2e 0x8a
2846 0xe2 0x0 0x29 0xa
2847 0xe2 0x7c 0x80 0x2a
2848 0x28 0x31 0xa 0xaa
2849 0xa3 0x0 0xa7 0xaa
2850 0xa2 0x0 0x3d 0x2a
2851
2852 # CHECK: ands     w7, wzr, w9, lsl #1
2853 # CHECK: ands     x3, x5, x20, ror #63
2854 # CHECK: bics     w3, w5, w7
2855 # CHECK: bics     x3, xzr, x3, lsl #1
2856 # CHECK: tst      w3, w7, lsl #31
2857 # CHECK: tst      x2, x20, asr
2858 0xe7 0x7 0x9 0x6a
2859 0xa3 0xfc 0xd4 0xea
2860 0xa3 0x0 0x27 0x6a
2861 0xe3 0x7 0x23 0xea
2862 0x7f 0x7c 0x7 0x6a
2863 0x5f 0x0 0x94 0xea
2864
2865 # CHECK: mov      x3, x6
2866 # CHECK: mov      x3, xzr
2867 # CHECK: mov      wzr, w2
2868 # CHECK: mov      w3, w5
2869 0xe3 0x3 0x6 0xaa
2870 0xe3 0x3 0x1f 0xaa
2871 0xff 0x3 0x2 0x2a
2872 0xe3 0x3 0x5 0x2a
2873
2874 #------------------------------------------------------------------------------
2875 # Move wide (immediate)
2876 #------------------------------------------------------------------------------
2877
2878 # N.b. (FIXME) canonical aliases aren't produced here because of
2879 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
2880 # be "mov".
2881
2882 # CHECK: movz     w1, #{{65535|0xffff}}
2883 # CHECK: movz     w2, #0, lsl #16
2884 # CHECK: movn     w2, #{{1234|0x4d2}}
2885 0xe1 0xff 0x9f 0x52
2886 0x2 0x0 0xa0 0x52
2887 0x42 0x9a 0x80 0x12
2888
2889 # CHECK: movz     x2, #{{1234|0x4d2}}, lsl #32
2890 # CHECK: movk     xzr, #{{4321|0x10e1}}, lsl #48
2891 0x42 0x9a 0xc0 0xd2
2892 0x3f 0x1c 0xe2 0xf2
2893
2894 # CHECK: movz     x2, #0
2895 # CHECK: movk     w3, #0
2896 # CHECK: movz     x4, #0, lsl #16
2897 # CHECK: movk     w5, #0, lsl #16
2898 # CHECK: movz     x6, #0, lsl #32
2899 # CHECK: movk     x7, #0, lsl #32
2900 # CHECK: movz     x8, #0, lsl #48
2901 # CHECK: movk     x9, #0, lsl #48
2902 0x2 0x0 0x80 0xd2
2903 0x3 0x0 0x80 0x72
2904 0x4 0x0 0xa0 0xd2
2905 0x5 0x0 0xa0 0x72
2906 0x6 0x0 0xc0 0xd2
2907 0x7 0x0 0xc0 0xf2
2908 0x8 0x0 0xe0 0xd2
2909 0x9 0x0 0xe0 0xf2
2910
2911 #------------------------------------------------------------------------------
2912 # PC-relative addressing
2913 #------------------------------------------------------------------------------
2914
2915 # It's slightly dodgy using immediates here, but harmless enough when
2916 # it's all that's available.
2917
2918 # CHECK: adr      x2, #1600
2919 # CHECK: adrp     x21, #6553600
2920 # CHECK: adr      x0, #262144
2921 0x02 0x32 0x00 0x10
2922 0x15 0x32 0x00 0x90
2923 0x00 0x00 0x20 0x10
2924
2925 #------------------------------------------------------------------------------
2926 # System
2927 #------------------------------------------------------------------------------
2928
2929 # CHECK: nop
2930 # CHECK: hint     #{{127|0x7f}}
2931 # CHECK: nop
2932 # CHECK: yield
2933 # CHECK: wfe
2934 # CHECK: wfi
2935 # CHECK: sev
2936 # CHECK: sevl
2937 0x1f 0x20 0x3 0xd5
2938 0xff 0x2f 0x3 0xd5
2939 0x1f 0x20 0x3 0xd5
2940 0x3f 0x20 0x3 0xd5
2941 0x5f 0x20 0x3 0xd5
2942 0x7f 0x20 0x3 0xd5
2943 0x9f 0x20 0x3 0xd5
2944 0xbf 0x20 0x3 0xd5
2945
2946 # CHECK: clrex
2947 # CHECK: clrex    #0
2948 # CHECK: clrex    #7
2949 # CHECK: clrex
2950 0x5f 0x3f 0x3 0xd5
2951 0x5f 0x30 0x3 0xd5
2952 0x5f 0x37 0x3 0xd5
2953 0x5f 0x3f 0x3 0xd5
2954
2955 # CHECK: dsb      #0
2956 # CHECK: dsb      #12
2957 # CHECK: dsb      sy
2958 # CHECK: dsb      oshld
2959 # CHECK: dsb      oshst
2960 # CHECK: dsb      osh
2961 # CHECK: dsb      nshld
2962 # CHECK: dsb      nshst
2963 # CHECK: dsb      nsh
2964 # CHECK: dsb      ishld
2965 # CHECK: dsb      ishst
2966 # CHECK: dsb      ish
2967 # CHECK: dsb      ld
2968 # CHECK: dsb      st
2969 # CHECK: dsb      sy
2970 0x9f 0x30 0x3 0xd5
2971 0x9f 0x3c 0x3 0xd5
2972 0x9f 0x3f 0x3 0xd5
2973 0x9f 0x31 0x3 0xd5
2974 0x9f 0x32 0x3 0xd5
2975 0x9f 0x33 0x3 0xd5
2976 0x9f 0x35 0x3 0xd5
2977 0x9f 0x36 0x3 0xd5
2978 0x9f 0x37 0x3 0xd5
2979 0x9f 0x39 0x3 0xd5
2980 0x9f 0x3a 0x3 0xd5
2981 0x9f 0x3b 0x3 0xd5
2982 0x9f 0x3d 0x3 0xd5
2983 0x9f 0x3e 0x3 0xd5
2984 0x9f 0x3f 0x3 0xd5
2985
2986 # CHECK: dmb      #0
2987 # CHECK: dmb      #12
2988 # CHECK: dmb      sy
2989 # CHECK: dmb      oshld
2990 # CHECK: dmb      oshst
2991 # CHECK: dmb      osh
2992 # CHECK: dmb      nshld
2993 # CHECK: dmb      nshst
2994 # CHECK: dmb      nsh
2995 # CHECK: dmb      ishld
2996 # CHECK: dmb      ishst
2997 # CHECK: dmb      ish
2998 # CHECK: dmb      ld
2999 # CHECK: dmb      st
3000 # CHECK: dmb      sy
3001 0xbf 0x30 0x3 0xd5
3002 0xbf 0x3c 0x3 0xd5
3003 0xbf 0x3f 0x3 0xd5
3004 0xbf 0x31 0x3 0xd5
3005 0xbf 0x32 0x3 0xd5
3006 0xbf 0x33 0x3 0xd5
3007 0xbf 0x35 0x3 0xd5
3008 0xbf 0x36 0x3 0xd5
3009 0xbf 0x37 0x3 0xd5
3010 0xbf 0x39 0x3 0xd5
3011 0xbf 0x3a 0x3 0xd5
3012 0xbf 0x3b 0x3 0xd5
3013 0xbf 0x3d 0x3 0xd5
3014 0xbf 0x3e 0x3 0xd5
3015 0xbf 0x3f 0x3 0xd5
3016
3017 # CHECK: isb
3018 # CHECK: isb      #12
3019 0xdf 0x3f 0x3 0xd5
3020 0xdf 0x3c 0x3 0xd5
3021
3022 # CHECK: msr      {{spsel|SPSEL}}, #0
3023 # CHECK: msr      {{daifset|DAIFSET}}, #15
3024 # CHECK: msr      {{daifclr|DAIFCLR}}, #12
3025 0xbf 0x40 0x0 0xd5
3026 0xdf 0x4f 0x3 0xd5
3027 0xff 0x4c 0x3 0xd5
3028
3029 # CHECK: sys      #7, c5, c9, #7, x5
3030 # CHECK: sys      #0, c15, c15, #2
3031 # CHECK: sysl     x9, #7, c5, c9, #7
3032 # CHECK: sysl     x1, #0, c15, c15, #2
3033 0xe5 0x59 0xf 0xd5
3034 0x5f 0xff 0x8 0xd5
3035 0xe9 0x59 0x2f 0xd5
3036 0x41 0xff 0x28 0xd5
3037
3038 # CHECK: {{sys     #0, c7, c1, #0|ic ialluis}}
3039 # CHECK: {{sys     #0, c7, c5, #0|ic iallu}}
3040 # CHECK: {{sys     #3, c7, c5, #1|ic ivau}}, x9
3041 0x1f 0x71 0x8 0xd5
3042 0x1f 0x75 0x8 0xd5
3043 0x29 0x75 0xb 0xd5
3044
3045 # CHECK: {{sys     #3, c7, c4, #1|dc zva}}, x12
3046 # CHECK: {{sys     #0, c7, c6, #1|dc ivac}}
3047 # CHECK: {{sys     #0, c7, c6, #2|dc isw}}, x2
3048 # CHECK: {{sys     #3, c7, c10, #1|dc cvac}}, x9
3049 # CHECK: {{sys     #0, c7, c10, #2|dc csw}}, x10
3050 # CHECK: {{sys     #3, c7, c11, #1|dc cvau}}, x0
3051 # CHECK: {{sys     #3, c7, c14, #1|dc civac}}, x3
3052 # CHECK: {{sys     #0, c7, c14, #2|dc cisw}}, x30
3053 0x2c 0x74 0xb 0xd5
3054 0x3f 0x76 0x8 0xd5
3055 0x42 0x76 0x8 0xd5
3056 0x29 0x7a 0xb 0xd5
3057 0x4a 0x7a 0x8 0xd5
3058 0x20 0x7b 0xb 0xd5
3059 0x23 0x7e 0xb 0xd5
3060 0x5e 0x7e 0x8 0xd5
3061
3062
3063 # CHECK: msr      {{teecr32_el1|TEECR32_EL1}}, x12
3064 # CHECK: msr      {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3065 # CHECK: msr      {{mdccint_el1|MDCCINT_EL1}}, x12
3066 # CHECK: msr      {{mdscr_el1|MDSCR_EL1}}, x12
3067 # CHECK: msr      {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3068 # CHECK: msr      {{dbgdtr_el0|DBGDTR_EL0}}, x12
3069 # CHECK: msr      {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3070 # CHECK: msr      {{oseccr_el1|OSECCR_EL1}}, x12
3071 # CHECK: msr      {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3072 # CHECK: msr      {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3073 # CHECK: msr      {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3074 # CHECK: msr      {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3075 # CHECK: msr      {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3076 # CHECK: msr      {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3077 # CHECK: msr      {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3078 # CHECK: msr      {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3079 # CHECK: msr      {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3080 # CHECK: msr      {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3081 # CHECK: msr      {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3082 # CHECK: msr      {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3083 # CHECK: msr      {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3084 # CHECK: msr      {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3085 # CHECK: msr      {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3086 # CHECK: msr      {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3087 # CHECK: msr      {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3088 # CHECK: msr      {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3089 # CHECK: msr      {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3090 # CHECK: msr      {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3091 # CHECK: msr      {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3092 # CHECK: msr      {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3093 # CHECK: msr      {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3094 # CHECK: msr      {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3095 # CHECK: msr      {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3096 # CHECK: msr      {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3097 # CHECK: msr      {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3098 # CHECK: msr      {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3099 # CHECK: msr      {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3100 # CHECK: msr      {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3101 # CHECK: msr      {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3102 # CHECK: msr      {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3103 # CHECK: msr      {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3104 # CHECK: msr      {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3105 # CHECK: msr      {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3106 # CHECK: msr      {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3107 # CHECK: msr      {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3108 # CHECK: msr      {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3109 # CHECK: msr      {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3110 # CHECK: msr      {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3111 # CHECK: msr      {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3112 # CHECK: msr      {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3113 # CHECK: msr      {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3114 # CHECK: msr      {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3115 # CHECK: msr      {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3116 # CHECK: msr      {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3117 # CHECK: msr      {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3118 # CHECK: msr      {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3119 # CHECK: msr      {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3120 # CHECK: msr      {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3121 # CHECK: msr      {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3122 # CHECK: msr      {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3123 # CHECK: msr      {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3124 # CHECK: msr      {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3125 # CHECK: msr      {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3126 # CHECK: msr      {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3127 # CHECK: msr      {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3128 # CHECK: msr      {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3129 # CHECK: msr      {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3130 # CHECK: msr      {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3131 # CHECK: msr      {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3132 # CHECK: msr      {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3133 # CHECK: msr      {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3134 # CHECK: msr      {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3135 # CHECK: msr      {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3136 # CHECK: msr      {{teehbr32_el1|TEEHBR32_EL1}}, x12
3137 # CHECK: msr      {{oslar_el1|OSLAR_EL1}}, x12
3138 # CHECK: msr      {{osdlr_el1|OSDLR_EL1}}, x12
3139 # CHECK: msr      {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3140 # CHECK: msr      {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3141 # CHECK: msr      {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3142 # CHECK: msr      {{csselr_el1|CSSELR_EL1}}, x12
3143 # CHECK: msr      {{vpidr_el2|VPIDR_EL2}}, x12
3144 # CHECK: msr      {{vmpidr_el2|VMPIDR_EL2}}, x12
3145 # CHECK: msr      {{sctlr_el1|SCTLR_EL1}}, x12
3146 # CHECK: msr      {{sctlr_el2|SCTLR_EL2}}, x12
3147 # CHECK: msr      {{sctlr_el3|SCTLR_EL3}}, x12
3148 # CHECK: msr      {{actlr_el1|ACTLR_EL1}}, x12
3149 # CHECK: msr      {{actlr_el2|ACTLR_EL2}}, x12
3150 # CHECK: msr      {{actlr_el3|ACTLR_EL3}}, x12
3151 # CHECK: msr      {{cpacr_el1|CPACR_EL1}}, x12
3152 # CHECK: msr      {{hcr_el2|HCR_EL2}}, x12
3153 # CHECK: msr      {{scr_el3|SCR_EL3}}, x12
3154 # CHECK: msr      {{mdcr_el2|MDCR_EL2}}, x12
3155 # CHECK: msr      {{sder32_el3|SDER32_EL3}}, x12
3156 # CHECK: msr      {{cptr_el2|CPTR_EL2}}, x12
3157 # CHECK: msr      {{cptr_el3|CPTR_EL3}}, x12
3158 # CHECK: msr      {{hstr_el2|HSTR_EL2}}, x12
3159 # CHECK: msr      {{hacr_el2|HACR_EL2}}, x12
3160 # CHECK: msr      {{mdcr_el3|MDCR_EL3}}, x12
3161 # CHECK: msr      {{ttbr0_el1|TTBR0_EL1}}, x12
3162 # CHECK: msr      {{ttbr0_el2|TTBR0_EL2}}, x12
3163 # CHECK: msr      {{ttbr0_el3|TTBR0_EL3}}, x12
3164 # CHECK: msr      {{ttbr1_el1|TTBR1_EL1}}, x12
3165 # CHECK: msr      {{tcr_el1|TCR_EL1}}, x12
3166 # CHECK: msr      {{tcr_el2|TCR_EL2}}, x12
3167 # CHECK: msr      {{tcr_el3|TCR_EL3}}, x12
3168 # CHECK: msr      {{vttbr_el2|VTTBR_EL2}}, x12
3169 # CHECK: msr      {{vtcr_el2|VTCR_EL2}}, x12
3170 # CHECK: msr      {{dacr32_el2|DACR32_EL2}}, x12
3171 # CHECK: msr      {{spsr_el1|SPSR_EL1}}, x12
3172 # CHECK: msr      {{spsr_el2|SPSR_EL2}}, x12
3173 # CHECK: msr      {{spsr_el3|SPSR_EL3}}, x12
3174 # CHECK: msr      {{elr_el1|ELR_EL1}}, x12
3175 # CHECK: msr      {{elr_el2|ELR_EL2}}, x12
3176 # CHECK: msr      {{elr_el3|ELR_EL3}}, x12
3177 # CHECK: msr      {{sp_el0|SP_EL0}}, x12
3178 # CHECK: msr      {{sp_el1|SP_EL1}}, x12
3179 # CHECK: msr      {{sp_el2|SP_EL2}}, x12
3180 # CHECK: msr      {{spsel|SPSEL}}, x12
3181 # CHECK: msr      {{nzcv|NZCV}}, x12
3182 # CHECK: msr      {{daif|DAIF}}, x12
3183 # CHECK: msr      {{currentel|CURRENTEL}}, x12
3184 # CHECK: msr      {{spsr_irq|SPSR_IRQ}}, x12
3185 # CHECK: msr      {{spsr_abt|SPSR_ABT}}, x12
3186 # CHECK: msr      {{spsr_und|SPSR_UND}}, x12
3187 # CHECK: msr      {{spsr_fiq|SPSR_FIQ}}, x12
3188 # CHECK: msr      {{fpcr|FPCR}}, x12
3189 # CHECK: msr      {{fpsr|FPSR}}, x12
3190 # CHECK: msr      {{dspsr_el0|DSPSR_EL0}}, x12
3191 # CHECK: msr      {{dlr_el0|DLR_EL0}}, x12
3192 # CHECK: msr      {{ifsr32_el2|IFSR32_EL2}}, x12
3193 # CHECK: msr      {{afsr0_el1|AFSR0_EL1}}, x12
3194 # CHECK: msr      {{afsr0_el2|AFSR0_EL2}}, x12
3195 # CHECK: msr      {{afsr0_el3|AFSR0_EL3}}, x12
3196 # CHECK: msr      {{afsr1_el1|AFSR1_EL1}}, x12
3197 # CHECK: msr      {{afsr1_el2|AFSR1_EL2}}, x12
3198 # CHECK: msr      {{afsr1_el3|AFSR1_EL3}}, x12
3199 # CHECK: msr      {{esr_el1|ESR_EL1}}, x12
3200 # CHECK: msr      {{esr_el2|ESR_EL2}}, x12
3201 # CHECK: msr      {{esr_el3|ESR_EL3}}, x12
3202 # CHECK: msr      {{fpexc32_el2|FPEXC32_EL2}}, x12
3203 # CHECK: msr      {{far_el1|FAR_EL1}}, x12
3204 # CHECK: msr      {{far_el2|FAR_EL2}}, x12
3205 # CHECK: msr      {{far_el3|FAR_EL3}}, x12
3206 # CHECK: msr      {{hpfar_el2|HPFAR_EL2}}, x12
3207 # CHECK: msr      {{par_el1|PAR_EL1}}, x12
3208 # CHECK: msr      {{pmcr_el0|PMCR_EL0}}, x12
3209 # CHECK: msr      {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3210 # CHECK: msr      {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3211 # CHECK: msr      {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3212 # CHECK: msr      {{pmselr_el0|PMSELR_EL0}}, x12
3213 # CHECK: msr      {{pmccntr_el0|PMCCNTR_EL0}}, x12
3214 # CHECK: msr      {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3215 # CHECK: msr      {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3216 # CHECK: msr      {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3217 # CHECK: msr      {{pmintenset_el1|PMINTENSET_EL1}}, x12
3218 # CHECK: msr      {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3219 # CHECK: msr      {{pmovsset_el0|PMOVSSET_EL0}}, x12
3220 # CHECK: msr      {{mair_el1|MAIR_EL1}}, x12
3221 # CHECK: msr      {{mair_el2|MAIR_EL2}}, x12
3222 # CHECK: msr      {{mair_el3|MAIR_EL3}}, x12
3223 # CHECK: msr      {{amair_el1|AMAIR_EL1}}, x12
3224 # CHECK: msr      {{amair_el2|AMAIR_EL2}}, x12
3225 # CHECK: msr      {{amair_el3|AMAIR_EL3}}, x12
3226 # CHECK: msr      {{vbar_el1|VBAR_EL1}}, x12
3227 # CHECK: msr      {{vbar_el2|VBAR_EL2}}, x12
3228 # CHECK: msr      {{vbar_el3|VBAR_EL3}}, x12
3229 # CHECK: msr      {{rmr_el1|RMR_EL1}}, x12
3230 # CHECK: msr      {{rmr_el2|RMR_EL2}}, x12
3231 # CHECK: msr      {{rmr_el3|RMR_EL3}}, x12
3232 # CHECK: msr      {{tpidr_el0|TPIDR_EL0}}, x12
3233 # CHECK: msr      {{tpidr_el2|TPIDR_EL2}}, x12
3234 # CHECK: msr      {{tpidr_el3|TPIDR_EL3}}, x12
3235 # CHECK: msr      {{tpidrro_el0|TPIDRRO_EL0}}, x12
3236 # CHECK: msr      {{tpidr_el1|TPIDR_EL1}}, x12
3237 # CHECK: msr      {{cntfrq_el0|CNTFRQ_EL0}}, x12
3238 # CHECK: msr      {{cntvoff_el2|CNTVOFF_EL2}}, x12
3239 # CHECK: msr      {{cntkctl_el1|CNTKCTL_EL1}}, x12
3240 # CHECK: msr      {{cnthctl_el2|CNTHCTL_EL2}}, x12
3241 # CHECK: msr      {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3242 # CHECK: msr      {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3243 # CHECK: msr      {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3244 # CHECK: msr      {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3245 # CHECK: msr      {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3246 # CHECK: msr      {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3247 # CHECK: msr      {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3248 # CHECK: msr      {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3249 # CHECK: msr      {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3250 # CHECK: msr      {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3251 # CHECK: msr      {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3252 # CHECK: msr      {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3253 # CHECK: msr      {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3254 # CHECK: msr      {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3255 # CHECK: msr      {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3256 # CHECK: msr      {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3257 # CHECK: msr      {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3258 # CHECK: msr      {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3259 # CHECK: msr      {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3260 # CHECK: msr      {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3261 # CHECK: msr      {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3262 # CHECK: msr      {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3263 # CHECK: msr      {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3264 # CHECK: msr      {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3265 # CHECK: msr      {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3266 # CHECK: msr      {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3267 # CHECK: msr      {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3268 # CHECK: msr      {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3269 # CHECK: msr      {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3270 # CHECK: msr      {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3271 # CHECK: msr      {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3272 # CHECK: msr      {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3273 # CHECK: msr      {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3274 # CHECK: msr      {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3275 # CHECK: msr      {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3276 # CHECK: msr      {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3277 # CHECK: msr      {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3278 # CHECK: msr      {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3279 # CHECK: msr      {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3280 # CHECK: msr      {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3281 # CHECK: msr      {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3282 # CHECK: msr      {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3283 # CHECK: msr      {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3284 # CHECK: msr      {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3285 # CHECK: msr      {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3286 # CHECK: msr      {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3287 # CHECK: msr      {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3288 # CHECK: msr      {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3289 # CHECK: msr      {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3290 # CHECK: msr      {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3291 # CHECK: msr      {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3292 # CHECK: msr      {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3293 # CHECK: msr      {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3294 # CHECK: msr      {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3295 # CHECK: msr      {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3296 # CHECK: msr      {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3297 # CHECK: msr      {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3298 # CHECK: msr      {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3299 # CHECK: msr      {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3300 # CHECK: msr      {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3301 # CHECK: msr      {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3302 # CHECK: msr      {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3303 # CHECK: msr      {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3304 # CHECK: msr      {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3305 # CHECK: msr      {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3306 # CHECK: msr      {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3307 # CHECK: msr      {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3308 # CHECK: msr      {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3309 # CHECK: msr      {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3310 # CHECK: msr      {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3311 # CHECK: msr      {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3312 # CHECK: msr      {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3313 # CHECK: msr      {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3314 # CHECK: msr      {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3315 # CHECK: msr      {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3316 # CHECK: mrs      x9, {{teecr32_el1|TEECR32_EL1}}
3317 # CHECK: mrs      x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3318 # CHECK: mrs      x9, {{mdccsr_el0|MDCCSR_EL0}}
3319 # CHECK: mrs      x9, {{mdccint_el1|MDCCINT_EL1}}
3320 # CHECK: mrs      x9, {{mdscr_el1|MDSCR_EL1}}
3321 # CHECK: mrs      x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3322 # CHECK: mrs      x9, {{dbgdtr_el0|DBGDTR_EL0}}
3323 # CHECK: mrs      x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3324 # CHECK: mrs      x9, {{oseccr_el1|OSECCR_EL1}}
3325 # CHECK: mrs      x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3326 # CHECK: mrs      x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3327 # CHECK: mrs      x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3328 # CHECK: mrs      x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3329 # CHECK: mrs      x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3330 # CHECK: mrs      x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3331 # CHECK: mrs      x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3332 # CHECK: mrs      x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3333 # CHECK: mrs      x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3334 # CHECK: mrs      x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3335 # CHECK: mrs      x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3336 # CHECK: mrs      x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3337 # CHECK: mrs      x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3338 # CHECK: mrs      x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3339 # CHECK: mrs      x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3340 # CHECK: mrs      x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3341 # CHECK: mrs      x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3342 # CHECK: mrs      x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3343 # CHECK: mrs      x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3344 # CHECK: mrs      x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3345 # CHECK: mrs      x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3346 # CHECK: mrs      x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3347 # CHECK: mrs      x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3348 # CHECK: mrs      x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3349 # CHECK: mrs      x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3350 # CHECK: mrs      x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3351 # CHECK: mrs      x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3352 # CHECK: mrs      x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3353 # CHECK: mrs      x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3354 # CHECK: mrs      x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3355 # CHECK: mrs      x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3356 # CHECK: mrs      x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3357 # CHECK: mrs      x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3358 # CHECK: mrs      x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3359 # CHECK: mrs      x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3360 # CHECK: mrs      x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3361 # CHECK: mrs      x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3362 # CHECK: mrs      x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3363 # CHECK: mrs      x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3364 # CHECK: mrs      x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3365 # CHECK: mrs      x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3366 # CHECK: mrs      x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3367 # CHECK: mrs      x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3368 # CHECK: mrs      x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3369 # CHECK: mrs      x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3370 # CHECK: mrs      x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3371 # CHECK: mrs      x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3372 # CHECK: mrs      x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3373 # CHECK: mrs      x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3374 # CHECK: mrs      x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3375 # CHECK: mrs      x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3376 # CHECK: mrs      x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3377 # CHECK: mrs      x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3378 # CHECK: mrs      x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3379 # CHECK: mrs      x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3380 # CHECK: mrs      x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3381 # CHECK: mrs      x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3382 # CHECK: mrs      x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3383 # CHECK: mrs      x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3384 # CHECK: mrs      x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3385 # CHECK: mrs      x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3386 # CHECK: mrs      x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3387 # CHECK: mrs      x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3388 # CHECK: mrs      x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3389 # CHECK: mrs      x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3390 # CHECK: mrs      x9, {{mdrar_el1|MDRAR_EL1}}
3391 # CHECK: mrs      x9, {{teehbr32_el1|TEEHBR32_EL1}}
3392 # CHECK: mrs      x9, {{oslsr_el1|OSLSR_EL1}}
3393 # CHECK: mrs      x9, {{osdlr_el1|OSDLR_EL1}}
3394 # CHECK: mrs      x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3395 # CHECK: mrs      x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3396 # CHECK: mrs      x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3397 # CHECK: mrs      x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3398 # CHECK: mrs      x9, {{midr_el1|MIDR_EL1}}
3399 # CHECK: mrs      x9, {{ccsidr_el1|CCSIDR_EL1}}
3400 # CHECK: mrs      x9, {{csselr_el1|CSSELR_EL1}}
3401 # CHECK: mrs      x9, {{vpidr_el2|VPIDR_EL2}}
3402 # CHECK: mrs      x9, {{clidr_el1|CLIDR_EL1}}
3403 # CHECK: mrs      x9, {{ctr_el0|CTR_EL0}}
3404 # CHECK: mrs      x9, {{mpidr_el1|MPIDR_EL1}}
3405 # CHECK: mrs      x9, {{vmpidr_el2|VMPIDR_EL2}}
3406 # CHECK: mrs      x9, {{revidr_el1|REVIDR_EL1}}
3407 # CHECK: mrs      x9, {{aidr_el1|AIDR_EL1}}
3408 # CHECK: mrs      x9, {{dczid_el0|DCZID_EL0}}
3409 # CHECK: mrs      x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3410 # CHECK: mrs      x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3411 # CHECK: mrs      x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3412 # CHECK: mrs      x9, {{id_afr0_el1|ID_AFR0_EL1}}
3413 # CHECK: mrs      x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3414 # CHECK: mrs      x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3415 # CHECK: mrs      x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3416 # CHECK: mrs      x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3417 # CHECK: mrs      x9, {{id_mmfr4_el1|ID_MMFR4_EL1}}
3418 # CHECK: mrs      x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3419 # CHECK: mrs      x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3420 # CHECK: mrs      x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3421 # CHECK: mrs      x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3422 # CHECK: mrs      x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3423 # CHECK: mrs      x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3424 # CHECK: mrs      x9, {{mvfr0_el1|MVFR0_EL1}}
3425 # CHECK: mrs      x9, {{mvfr1_el1|MVFR1_EL1}}
3426 # CHECK: mrs      x9, {{mvfr2_el1|MVFR2_EL1}}
3427 # CHECK: mrs      x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3428 # CHECK: mrs      x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3429 # CHECK: mrs      x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3430 # CHECK: mrs      x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3431 # CHECK: mrs      x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3432 # CHECK: mrs      x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3433 # CHECK: mrs      x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3434 # CHECK: mrs      x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3435 # CHECK: mrs      x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3436 # CHECK: mrs      x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3437 # CHECK: mrs      x9, {{sctlr_el1|SCTLR_EL1}}
3438 # CHECK: mrs      x9, {{sctlr_el2|SCTLR_EL2}}
3439 # CHECK: mrs      x9, {{sctlr_el3|SCTLR_EL3}}
3440 # CHECK: mrs      x9, {{actlr_el1|ACTLR_EL1}}
3441 # CHECK: mrs      x9, {{actlr_el2|ACTLR_EL2}}
3442 # CHECK: mrs      x9, {{actlr_el3|ACTLR_EL3}}
3443 # CHECK: mrs      x9, {{cpacr_el1|CPACR_EL1}}
3444 # CHECK: mrs      x9, {{hcr_el2|HCR_EL2}}
3445 # CHECK: mrs      x9, {{scr_el3|SCR_EL3}}
3446 # CHECK: mrs      x9, {{mdcr_el2|MDCR_EL2}}
3447 # CHECK: mrs      x9, {{sder32_el3|SDER32_EL3}}
3448 # CHECK: mrs      x9, {{cptr_el2|CPTR_EL2}}
3449 # CHECK: mrs      x9, {{cptr_el3|CPTR_EL3}}
3450 # CHECK: mrs      x9, {{hstr_el2|HSTR_EL2}}
3451 # CHECK: mrs      x9, {{hacr_el2|HACR_EL2}}
3452 # CHECK: mrs      x9, {{mdcr_el3|MDCR_EL3}}
3453 # CHECK: mrs      x9, {{ttbr0_el1|TTBR0_EL1}}
3454 # CHECK: mrs      x9, {{ttbr0_el2|TTBR0_EL2}}
3455 # CHECK: mrs      x9, {{ttbr0_el3|TTBR0_EL3}}
3456 # CHECK: mrs      x9, {{ttbr1_el1|TTBR1_EL1}}
3457 # CHECK: mrs      x9, {{tcr_el1|TCR_EL1}}
3458 # CHECK: mrs      x9, {{tcr_el2|TCR_EL2}}
3459 # CHECK: mrs      x9, {{tcr_el3|TCR_EL3}}
3460 # CHECK: mrs      x9, {{vttbr_el2|VTTBR_EL2}}
3461 # CHECK: mrs      x9, {{vtcr_el2|VTCR_EL2}}
3462 # CHECK: mrs      x9, {{dacr32_el2|DACR32_EL2}}
3463 # CHECK: mrs      x9, {{spsr_el1|SPSR_EL1}}
3464 # CHECK: mrs      x9, {{spsr_el2|SPSR_EL2}}
3465 # CHECK: mrs      x9, {{spsr_el3|SPSR_EL3}}
3466 # CHECK: mrs      x9, {{elr_el1|ELR_EL1}}
3467 # CHECK: mrs      x9, {{elr_el2|ELR_EL2}}
3468 # CHECK: mrs      x9, {{elr_el3|ELR_EL3}}
3469 # CHECK: mrs      x9, {{sp_el0|SP_EL0}}
3470 # CHECK: mrs      x9, {{sp_el1|SP_EL1}}
3471 # CHECK: mrs      x9, {{sp_el2|SP_EL2}}
3472 # CHECK: mrs      x9, {{spsel|SPSEL}}
3473 # CHECK: mrs      x9, {{nzcv|NZCV}}
3474 # CHECK: mrs      x9, {{daif|DAIF}}
3475 # CHECK: mrs      x9, {{currentel|CURRENTEL}}
3476 # CHECK: mrs      x9, {{spsr_irq|SPSR_IRQ}}
3477 # CHECK: mrs      x9, {{spsr_abt|SPSR_ABT}}
3478 # CHECK: mrs      x9, {{spsr_und|SPSR_UND}}
3479 # CHECK: mrs      x9, {{spsr_fiq|SPSR_FIQ}}
3480 # CHECK: mrs      x9, {{fpcr|FPCR}}
3481 # CHECK: mrs      x9, {{fpsr|FPSR}}
3482 # CHECK: mrs      x9, {{dspsr_el0|DSPSR_EL0}}
3483 # CHECK: mrs      x9, {{dlr_el0|DLR_EL0}}
3484 # CHECK: mrs      x9, {{ifsr32_el2|IFSR32_EL2}}
3485 # CHECK: mrs      x9, {{afsr0_el1|AFSR0_EL1}}
3486 # CHECK: mrs      x9, {{afsr0_el2|AFSR0_EL2}}
3487 # CHECK: mrs      x9, {{afsr0_el3|AFSR0_EL3}}
3488 # CHECK: mrs      x9, {{afsr1_el1|AFSR1_EL1}}
3489 # CHECK: mrs      x9, {{afsr1_el2|AFSR1_EL2}}
3490 # CHECK: mrs      x9, {{afsr1_el3|AFSR1_EL3}}
3491 # CHECK: mrs      x9, {{esr_el1|ESR_EL1}}
3492 # CHECK: mrs      x9, {{esr_el2|ESR_EL2}}
3493 # CHECK: mrs      x9, {{esr_el3|ESR_EL3}}
3494 # CHECK: mrs      x9, {{fpexc32_el2|FPEXC32_EL2}}
3495 # CHECK: mrs      x9, {{far_el1|FAR_EL1}}
3496 # CHECK: mrs      x9, {{far_el2|FAR_EL2}}
3497 # CHECK: mrs      x9, {{far_el3|FAR_EL3}}
3498 # CHECK: mrs      x9, {{hpfar_el2|HPFAR_EL2}}
3499 # CHECK: mrs      x9, {{par_el1|PAR_EL1}}
3500 # CHECK: mrs      x9, {{pmcr_el0|PMCR_EL0}}
3501 # CHECK: mrs      x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3502 # CHECK: mrs      x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3503 # CHECK: mrs      x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3504 # CHECK: mrs      x9, {{pmselr_el0|PMSELR_EL0}}
3505 # CHECK: mrs      x9, {{pmceid0_el0|PMCEID0_EL0}}
3506 # CHECK: mrs      x9, {{pmceid1_el0|PMCEID1_EL0}}
3507 # CHECK: mrs      x9, {{pmccntr_el0|PMCCNTR_EL0}}
3508 # CHECK: mrs      x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3509 # CHECK: mrs      x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3510 # CHECK: mrs      x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3511 # CHECK: mrs      x9, {{pmintenset_el1|PMINTENSET_EL1}}
3512 # CHECK: mrs      x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3513 # CHECK: mrs      x9, {{pmovsset_el0|PMOVSSET_EL0}}
3514 # CHECK: mrs      x9, {{mair_el1|MAIR_EL1}}
3515 # CHECK: mrs      x9, {{mair_el2|MAIR_EL2}}
3516 # CHECK: mrs      x9, {{mair_el3|MAIR_EL3}}
3517 # CHECK: mrs      x9, {{amair_el1|AMAIR_EL1}}
3518 # CHECK: mrs      x9, {{amair_el2|AMAIR_EL2}}
3519 # CHECK: mrs      x9, {{amair_el3|AMAIR_EL3}}
3520 # CHECK: mrs      x9, {{vbar_el1|VBAR_EL1}}
3521 # CHECK: mrs      x9, {{vbar_el2|VBAR_EL2}}
3522 # CHECK: mrs      x9, {{vbar_el3|VBAR_EL3}}
3523 # CHECK: mrs      x9, {{rvbar_el1|RVBAR_EL1}}
3524 # CHECK: mrs      x9, {{rvbar_el2|RVBAR_EL2}}
3525 # CHECK: mrs      x9, {{rvbar_el3|RVBAR_EL3}}
3526 # CHECK: mrs      x9, {{rmr_el1|RMR_EL1}}
3527 # CHECK: mrs      x9, {{rmr_el2|RMR_EL2}}
3528 # CHECK: mrs      x9, {{rmr_el3|RMR_EL3}}
3529 # CHECK: mrs      x9, {{isr_el1|ISR_EL1}}
3530 # CHECK: mrs      x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3531 # CHECK: mrs      x9, {{tpidr_el0|TPIDR_EL0}}
3532 # CHECK: mrs      x9, {{tpidr_el2|TPIDR_EL2}}
3533 # CHECK: mrs      x9, {{tpidr_el3|TPIDR_EL3}}
3534 # CHECK: mrs      x9, {{tpidrro_el0|TPIDRRO_EL0}}
3535 # CHECK: mrs      x9, {{tpidr_el1|TPIDR_EL1}}
3536 # CHECK: mrs      x9, {{cntfrq_el0|CNTFRQ_EL0}}
3537 # CHECK: mrs      x9, {{cntpct_el0|CNTPCT_EL0}}
3538 # CHECK: mrs      x9, {{cntvct_el0|CNTVCT_EL0}}
3539 # CHECK: mrs      x9, {{cntvoff_el2|CNTVOFF_EL2}}
3540 # CHECK: mrs      x9, {{cntkctl_el1|CNTKCTL_EL1}}
3541 # CHECK: mrs      x9, {{cnthctl_el2|CNTHCTL_EL2}}
3542 # CHECK: mrs      x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3543 # CHECK: mrs      x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3544 # CHECK: mrs      x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3545 # CHECK: mrs      x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3546 # CHECK: mrs      x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3547 # CHECK: mrs      x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3548 # CHECK: mrs      x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3549 # CHECK: mrs      x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3550 # CHECK: mrs      x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3551 # CHECK: mrs      x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3552 # CHECK: mrs      x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3553 # CHECK: mrs      x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3554 # CHECK: mrs      x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3555 # CHECK: mrs      x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3556 # CHECK: mrs      x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3557 # CHECK: mrs      x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3558 # CHECK: mrs      x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3559 # CHECK: mrs      x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3560 # CHECK: mrs      x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3561 # CHECK: mrs      x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3562 # CHECK: mrs      x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3563 # CHECK: mrs      x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3564 # CHECK: mrs      x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3565 # CHECK: mrs      x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3566 # CHECK: mrs      x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3567 # CHECK: mrs      x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3568 # CHECK: mrs      x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3569 # CHECK: mrs      x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3570 # CHECK: mrs      x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3571 # CHECK: mrs      x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3572 # CHECK: mrs      x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3573 # CHECK: mrs      x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3574 # CHECK: mrs      x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3575 # CHECK: mrs      x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3576 # CHECK: mrs      x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3577 # CHECK: mrs      x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3578 # CHECK: mrs      x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3579 # CHECK: mrs      x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3580 # CHECK: mrs      x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3581 # CHECK: mrs      x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3582 # CHECK: mrs      x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3583 # CHECK: mrs      x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3584 # CHECK: mrs      x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3585 # CHECK: mrs      x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3586 # CHECK: mrs      x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3587 # CHECK: mrs      x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3588 # CHECK: mrs      x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3589 # CHECK: mrs      x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3590 # CHECK: mrs      x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3591 # CHECK: mrs      x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3592 # CHECK: mrs      x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3593 # CHECK: mrs      x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3594 # CHECK: mrs      x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3595 # CHECK: mrs      x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3596 # CHECK: mrs      x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3597 # CHECK: mrs      x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3598 # CHECK: mrs      x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3599 # CHECK: mrs      x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3600 # CHECK: mrs      x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3601 # CHECK: mrs      x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3602 # CHECK: mrs      x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3603 # CHECK: mrs      x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3604 # CHECK: mrs      x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3605 # CHECK: mrs      x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3606 # CHECK: mrs      x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3607 # CHECK: mrs      x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3608 # CHECK: mrs      x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3609 # CHECK: mrs      x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3610 # CHECK: mrs      x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3611 # CHECK: mrs      x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3612 # CHECK: mrs      x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3613 # CHECK: mrs      x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3614 # CHECK: mrs      x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3615 # CHECK: mrs      x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3616 # CHECK: mrs      x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3617
3618 0xc 0x0 0x12 0xd5
3619 0x4c 0x0 0x10 0xd5
3620 0xc 0x2 0x10 0xd5
3621 0x4c 0x2 0x10 0xd5
3622 0x4c 0x3 0x10 0xd5
3623 0xc 0x4 0x13 0xd5
3624 0xc 0x5 0x13 0xd5
3625 0x4c 0x6 0x10 0xd5
3626 0xc 0x7 0x14 0xd5
3627 0x8c 0x0 0x10 0xd5
3628 0x8c 0x1 0x10 0xd5
3629 0x8c 0x2 0x10 0xd5
3630 0x8c 0x3 0x10 0xd5
3631 0x8c 0x4 0x10 0xd5
3632 0x8c 0x5 0x10 0xd5
3633 0x8c 0x6 0x10 0xd5
3634 0x8c 0x7 0x10 0xd5
3635 0x8c 0x8 0x10 0xd5
3636 0x8c 0x9 0x10 0xd5
3637 0x8c 0xa 0x10 0xd5
3638 0x8c 0xb 0x10 0xd5
3639 0x8c 0xc 0x10 0xd5
3640 0x8c 0xd 0x10 0xd5
3641 0x8c 0xe 0x10 0xd5
3642 0x8c 0xf 0x10 0xd5
3643 0xac 0x0 0x10 0xd5
3644 0xac 0x1 0x10 0xd5
3645 0xac 0x2 0x10 0xd5
3646 0xac 0x3 0x10 0xd5
3647 0xac 0x4 0x10 0xd5
3648 0xac 0x5 0x10 0xd5
3649 0xac 0x6 0x10 0xd5
3650 0xac 0x7 0x10 0xd5
3651 0xac 0x8 0x10 0xd5
3652 0xac 0x9 0x10 0xd5
3653 0xac 0xa 0x10 0xd5
3654 0xac 0xb 0x10 0xd5
3655 0xac 0xc 0x10 0xd5
3656 0xac 0xd 0x10 0xd5
3657 0xac 0xe 0x10 0xd5
3658 0xac 0xf 0x10 0xd5
3659 0xcc 0x0 0x10 0xd5
3660 0xcc 0x1 0x10 0xd5
3661 0xcc 0x2 0x10 0xd5
3662 0xcc 0x3 0x10 0xd5
3663 0xcc 0x4 0x10 0xd5
3664 0xcc 0x5 0x10 0xd5
3665 0xcc 0x6 0x10 0xd5
3666 0xcc 0x7 0x10 0xd5
3667 0xcc 0x8 0x10 0xd5
3668 0xcc 0x9 0x10 0xd5
3669 0xcc 0xa 0x10 0xd5
3670 0xcc 0xb 0x10 0xd5
3671 0xcc 0xc 0x10 0xd5
3672 0xcc 0xd 0x10 0xd5
3673 0xcc 0xe 0x10 0xd5
3674 0xcc 0xf 0x10 0xd5
3675 0xec 0x0 0x10 0xd5
3676 0xec 0x1 0x10 0xd5
3677 0xec 0x2 0x10 0xd5
3678 0xec 0x3 0x10 0xd5
3679 0xec 0x4 0x10 0xd5
3680 0xec 0x5 0x10 0xd5
3681 0xec 0x6 0x10 0xd5
3682 0xec 0x7 0x10 0xd5
3683 0xec 0x8 0x10 0xd5
3684 0xec 0x9 0x10 0xd5
3685 0xec 0xa 0x10 0xd5
3686 0xec 0xb 0x10 0xd5
3687 0xec 0xc 0x10 0xd5
3688 0xec 0xd 0x10 0xd5
3689 0xec 0xe 0x10 0xd5
3690 0xec 0xf 0x10 0xd5
3691 0xc 0x10 0x12 0xd5
3692 0x8c 0x10 0x10 0xd5
3693 0x8c 0x13 0x10 0xd5
3694 0x8c 0x14 0x10 0xd5
3695 0xcc 0x78 0x10 0xd5
3696 0xcc 0x79 0x10 0xd5
3697 0xc 0x0 0x1a 0xd5
3698 0xc 0x0 0x1c 0xd5
3699 0xac 0x0 0x1c 0xd5
3700 0xc 0x10 0x18 0xd5
3701 0xc 0x10 0x1c 0xd5
3702 0xc 0x10 0x1e 0xd5
3703 0x2c 0x10 0x18 0xd5
3704 0x2c 0x10 0x1c 0xd5
3705 0x2c 0x10 0x1e 0xd5
3706 0x4c 0x10 0x18 0xd5
3707 0xc 0x11 0x1c 0xd5
3708 0xc 0x11 0x1e 0xd5
3709 0x2c 0x11 0x1c 0xd5
3710 0x2c 0x11 0x1e 0xd5
3711 0x4c 0x11 0x1c 0xd5
3712 0x4c 0x11 0x1e 0xd5
3713 0x6c 0x11 0x1c 0xd5
3714 0xec 0x11 0x1c 0xd5
3715 0x2c 0x13 0x1e 0xd5
3716 0xc 0x20 0x18 0xd5
3717 0xc 0x20 0x1c 0xd5
3718 0xc 0x20 0x1e 0xd5
3719 0x2c 0x20 0x18 0xd5
3720 0x4c 0x20 0x18 0xd5
3721 0x4c 0x20 0x1c 0xd5
3722 0x4c 0x20 0x1e 0xd5
3723 0xc 0x21 0x1c 0xd5
3724 0x4c 0x21 0x1c 0xd5
3725 0xc 0x30 0x1c 0xd5
3726 0xc 0x40 0x18 0xd5
3727 0xc 0x40 0x1c 0xd5
3728 0xc 0x40 0x1e 0xd5
3729 0x2c 0x40 0x18 0xd5
3730 0x2c 0x40 0x1c 0xd5
3731 0x2c 0x40 0x1e 0xd5
3732 0xc 0x41 0x18 0xd5
3733 0xc 0x41 0x1c 0xd5
3734 0xc 0x41 0x1e 0xd5
3735 0xc 0x42 0x18 0xd5
3736 0xc 0x42 0x1b 0xd5
3737 0x2c 0x42 0x1b 0xd5
3738 0x4c 0x42 0x18 0xd5
3739 0xc 0x43 0x1c 0xd5
3740 0x2c 0x43 0x1c 0xd5
3741 0x4c 0x43 0x1c 0xd5
3742 0x6c 0x43 0x1c 0xd5
3743 0xc 0x44 0x1b 0xd5
3744 0x2c 0x44 0x1b 0xd5
3745 0xc 0x45 0x1b 0xd5
3746 0x2c 0x45 0x1b 0xd5
3747 0x2c 0x50 0x1c 0xd5
3748 0xc 0x51 0x18 0xd5
3749 0xc 0x51 0x1c 0xd5
3750 0xc 0x51 0x1e 0xd5
3751 0x2c 0x51 0x18 0xd5
3752 0x2c 0x51 0x1c 0xd5
3753 0x2c 0x51 0x1e 0xd5
3754 0xc 0x52 0x18 0xd5
3755 0xc 0x52 0x1c 0xd5
3756 0xc 0x52 0x1e 0xd5
3757 0xc 0x53 0x1c 0xd5
3758 0xc 0x60 0x18 0xd5
3759 0xc 0x60 0x1c 0xd5
3760 0xc 0x60 0x1e 0xd5
3761 0x8c 0x60 0x1c 0xd5
3762 0xc 0x74 0x18 0xd5
3763 0xc 0x9c 0x1b 0xd5
3764 0x2c 0x9c 0x1b 0xd5
3765 0x4c 0x9c 0x1b 0xd5
3766 0x6c 0x9c 0x1b 0xd5
3767 0xac 0x9c 0x1b 0xd5
3768 0xc 0x9d 0x1b 0xd5
3769 0x2c 0x9d 0x1b 0xd5
3770 0x4c 0x9d 0x1b 0xd5
3771 0xc 0x9e 0x1b 0xd5
3772 0x2c 0x9e 0x18 0xd5
3773 0x4c 0x9e 0x18 0xd5
3774 0x6c 0x9e 0x1b 0xd5
3775 0xc 0xa2 0x18 0xd5
3776 0xc 0xa2 0x1c 0xd5
3777 0xc 0xa2 0x1e 0xd5
3778 0xc 0xa3 0x18 0xd5
3779 0xc 0xa3 0x1c 0xd5
3780 0xc 0xa3 0x1e 0xd5
3781 0xc 0xc0 0x18 0xd5
3782 0xc 0xc0 0x1c 0xd5
3783 0xc 0xc0 0x1e 0xd5
3784 0x4c 0xc0 0x18 0xd5
3785 0x4c 0xc0 0x1c 0xd5
3786 0x4c 0xc0 0x1e 0xd5
3787 0x4c 0xd0 0x1b 0xd5
3788 0x4c 0xd0 0x1c 0xd5
3789 0x4c 0xd0 0x1e 0xd5
3790 0x6c 0xd0 0x1b 0xd5
3791 0x8c 0xd0 0x18 0xd5
3792 0xc 0xe0 0x1b 0xd5
3793 0x6c 0xe0 0x1c 0xd5
3794 0xc 0xe1 0x18 0xd5
3795 0xc 0xe1 0x1c 0xd5
3796 0xc 0xe2 0x1b 0xd5
3797 0xc 0xe2 0x1c 0xd5
3798 0xc 0xe2 0x1f 0xd5
3799 0x2c 0xe2 0x1b 0xd5
3800 0x2c 0xe2 0x1c 0xd5
3801 0x2c 0xe2 0x1f 0xd5
3802 0x4c 0xe2 0x1b 0xd5
3803 0x4c 0xe2 0x1c 0xd5
3804 0x4c 0xe2 0x1f 0xd5
3805 0xc 0xe3 0x1b 0xd5
3806 0x2c 0xe3 0x1b 0xd5
3807 0x4c 0xe3 0x1b 0xd5
3808 0xc 0xe8 0x1b 0xd5
3809 0x2c 0xe8 0x1b 0xd5
3810 0x4c 0xe8 0x1b 0xd5
3811 0x6c 0xe8 0x1b 0xd5
3812 0x8c 0xe8 0x1b 0xd5
3813 0xac 0xe8 0x1b 0xd5
3814 0xcc 0xe8 0x1b 0xd5
3815 0xec 0xe8 0x1b 0xd5
3816 0xc 0xe9 0x1b 0xd5
3817 0x2c 0xe9 0x1b 0xd5
3818 0x4c 0xe9 0x1b 0xd5
3819 0x6c 0xe9 0x1b 0xd5
3820 0x8c 0xe9 0x1b 0xd5
3821 0xac 0xe9 0x1b 0xd5
3822 0xcc 0xe9 0x1b 0xd5
3823 0xec 0xe9 0x1b 0xd5
3824 0xc 0xea 0x1b 0xd5
3825 0x2c 0xea 0x1b 0xd5
3826 0x4c 0xea 0x1b 0xd5
3827 0x6c 0xea 0x1b 0xd5
3828 0x8c 0xea 0x1b 0xd5
3829 0xac 0xea 0x1b 0xd5
3830 0xcc 0xea 0x1b 0xd5
3831 0xec 0xea 0x1b 0xd5
3832 0xc 0xeb 0x1b 0xd5
3833 0x2c 0xeb 0x1b 0xd5
3834 0x4c 0xeb 0x1b 0xd5
3835 0x6c 0xeb 0x1b 0xd5
3836 0x8c 0xeb 0x1b 0xd5
3837 0xac 0xeb 0x1b 0xd5
3838 0xcc 0xeb 0x1b 0xd5
3839 0xec 0xef 0x1b 0xd5
3840 0xc 0xec 0x1b 0xd5
3841 0x2c 0xec 0x1b 0xd5
3842 0x4c 0xec 0x1b 0xd5
3843 0x6c 0xec 0x1b 0xd5
3844 0x8c 0xec 0x1b 0xd5
3845 0xac 0xec 0x1b 0xd5
3846 0xcc 0xec 0x1b 0xd5
3847 0xec 0xec 0x1b 0xd5
3848 0xc 0xed 0x1b 0xd5
3849 0x2c 0xed 0x1b 0xd5
3850 0x4c 0xed 0x1b 0xd5
3851 0x6c 0xed 0x1b 0xd5
3852 0x8c 0xed 0x1b 0xd5
3853 0xac 0xed 0x1b 0xd5
3854 0xcc 0xed 0x1b 0xd5
3855 0xec 0xed 0x1b 0xd5
3856 0xc 0xee 0x1b 0xd5
3857 0x2c 0xee 0x1b 0xd5
3858 0x4c 0xee 0x1b 0xd5
3859 0x6c 0xee 0x1b 0xd5
3860 0x8c 0xee 0x1b 0xd5
3861 0xac 0xee 0x1b 0xd5
3862 0xcc 0xee 0x1b 0xd5
3863 0xec 0xee 0x1b 0xd5
3864 0xc 0xef 0x1b 0xd5
3865 0x2c 0xef 0x1b 0xd5
3866 0x4c 0xef 0x1b 0xd5
3867 0x6c 0xef 0x1b 0xd5
3868 0x8c 0xef 0x1b 0xd5
3869 0xac 0xef 0x1b 0xd5
3870 0xcc 0xef 0x1b 0xd5
3871 0x9 0x0 0x32 0xd5
3872 0x49 0x0 0x30 0xd5
3873 0x9 0x1 0x33 0xd5
3874 0x9 0x2 0x30 0xd5
3875 0x49 0x2 0x30 0xd5
3876 0x49 0x3 0x30 0xd5
3877 0x9 0x4 0x33 0xd5
3878 0x9 0x5 0x33 0xd5
3879 0x49 0x6 0x30 0xd5
3880 0x9 0x7 0x34 0xd5
3881 0x89 0x0 0x30 0xd5
3882 0x89 0x1 0x30 0xd5
3883 0x89 0x2 0x30 0xd5
3884 0x89 0x3 0x30 0xd5
3885 0x89 0x4 0x30 0xd5
3886 0x89 0x5 0x30 0xd5
3887 0x89 0x6 0x30 0xd5
3888 0x89 0x7 0x30 0xd5
3889 0x89 0x8 0x30 0xd5
3890 0x89 0x9 0x30 0xd5
3891 0x89 0xa 0x30 0xd5
3892 0x89 0xb 0x30 0xd5
3893 0x89 0xc 0x30 0xd5
3894 0x89 0xd 0x30 0xd5
3895 0x89 0xe 0x30 0xd5
3896 0x89 0xf 0x30 0xd5
3897 0xa9 0x0 0x30 0xd5
3898 0xa9 0x1 0x30 0xd5
3899 0xa9 0x2 0x30 0xd5
3900 0xa9 0x3 0x30 0xd5
3901 0xa9 0x4 0x30 0xd5
3902 0xa9 0x5 0x30 0xd5
3903 0xa9 0x6 0x30 0xd5
3904 0xa9 0x7 0x30 0xd5
3905 0xa9 0x8 0x30 0xd5
3906 0xa9 0x9 0x30 0xd5
3907 0xa9 0xa 0x30 0xd5
3908 0xa9 0xb 0x30 0xd5
3909 0xa9 0xc 0x30 0xd5
3910 0xa9 0xd 0x30 0xd5
3911 0xa9 0xe 0x30 0xd5
3912 0xa9 0xf 0x30 0xd5
3913 0xc9 0x0 0x30 0xd5
3914 0xc9 0x1 0x30 0xd5
3915 0xc9 0x2 0x30 0xd5
3916 0xc9 0x3 0x30 0xd5
3917 0xc9 0x4 0x30 0xd5
3918 0xc9 0x5 0x30 0xd5
3919 0xc9 0x6 0x30 0xd5
3920 0xc9 0x7 0x30 0xd5
3921 0xc9 0x8 0x30 0xd5
3922 0xc9 0x9 0x30 0xd5
3923 0xc9 0xa 0x30 0xd5
3924 0xc9 0xb 0x30 0xd5
3925 0xc9 0xc 0x30 0xd5
3926 0xc9 0xd 0x30 0xd5
3927 0xc9 0xe 0x30 0xd5
3928 0xc9 0xf 0x30 0xd5
3929 0xe9 0x0 0x30 0xd5
3930 0xe9 0x1 0x30 0xd5
3931 0xe9 0x2 0x30 0xd5
3932 0xe9 0x3 0x30 0xd5
3933 0xe9 0x4 0x30 0xd5
3934 0xe9 0x5 0x30 0xd5
3935 0xe9 0x6 0x30 0xd5
3936 0xe9 0x7 0x30 0xd5
3937 0xe9 0x8 0x30 0xd5
3938 0xe9 0x9 0x30 0xd5
3939 0xe9 0xa 0x30 0xd5
3940 0xe9 0xb 0x30 0xd5
3941 0xe9 0xc 0x30 0xd5
3942 0xe9 0xd 0x30 0xd5
3943 0xe9 0xe 0x30 0xd5
3944 0xe9 0xf 0x30 0xd5
3945 0x9 0x10 0x30 0xd5
3946 0x9 0x10 0x32 0xd5
3947 0x89 0x11 0x30 0xd5
3948 0x89 0x13 0x30 0xd5
3949 0x89 0x14 0x30 0xd5
3950 0xc9 0x78 0x30 0xd5
3951 0xc9 0x79 0x30 0xd5
3952 0xc9 0x7e 0x30 0xd5
3953 0x9 0x0 0x38 0xd5
3954 0x9 0x0 0x39 0xd5
3955 0x9 0x0 0x3a 0xd5
3956 0x9 0x0 0x3c 0xd5
3957 0x29 0x0 0x39 0xd5
3958 0x29 0x0 0x3b 0xd5
3959 0xa9 0x0 0x38 0xd5
3960 0xa9 0x0 0x3c 0xd5
3961 0xc9 0x0 0x38 0xd5
3962 0xe9 0x0 0x39 0xd5
3963 0xe9 0x0 0x3b 0xd5
3964 0x9 0x1 0x38 0xd5
3965 0x29 0x1 0x38 0xd5
3966 0x49 0x1 0x38 0xd5
3967 0x69 0x1 0x38 0xd5
3968 0x89 0x1 0x38 0xd5
3969 0xa9 0x1 0x38 0xd5
3970 0xc9 0x1 0x38 0xd5
3971 0xe9 0x1 0x38 0xd5
3972 0xc9 0x2 0x38 0xd5
3973 0x9 0x2 0x38 0xd5
3974 0x29 0x2 0x38 0xd5
3975 0x49 0x2 0x38 0xd5
3976 0x69 0x2 0x38 0xd5
3977 0x89 0x2 0x38 0xd5
3978 0xa9 0x2 0x38 0xd5
3979 0x9 0x3 0x38 0xd5
3980 0x29 0x3 0x38 0xd5
3981 0x49 0x3 0x38 0xd5
3982 0x9 0x4 0x38 0xd5
3983 0x29 0x4 0x38 0xd5
3984 0x9 0x5 0x38 0xd5
3985 0x29 0x5 0x38 0xd5
3986 0x89 0x5 0x38 0xd5
3987 0xa9 0x5 0x38 0xd5
3988 0x9 0x6 0x38 0xd5
3989 0x29 0x6 0x38 0xd5
3990 0x9 0x7 0x38 0xd5
3991 0x29 0x7 0x38 0xd5
3992 0x9 0x10 0x38 0xd5
3993 0x9 0x10 0x3c 0xd5
3994 0x9 0x10 0x3e 0xd5
3995 0x29 0x10 0x38 0xd5
3996 0x29 0x10 0x3c 0xd5
3997 0x29 0x10 0x3e 0xd5
3998 0x49 0x10 0x38 0xd5
3999 0x9 0x11 0x3c 0xd5
4000 0x9 0x11 0x3e 0xd5
4001 0x29 0x11 0x3c 0xd5
4002 0x29 0x11 0x3e 0xd5
4003 0x49 0x11 0x3c 0xd5
4004 0x49 0x11 0x3e 0xd5
4005 0x69 0x11 0x3c 0xd5
4006 0xe9 0x11 0x3c 0xd5
4007 0x29 0x13 0x3e 0xd5
4008 0x9 0x20 0x38 0xd5
4009 0x9 0x20 0x3c 0xd5
4010 0x9 0x20 0x3e 0xd5
4011 0x29 0x20 0x38 0xd5
4012 0x49 0x20 0x38 0xd5
4013 0x49 0x20 0x3c 0xd5
4014 0x49 0x20 0x3e 0xd5
4015 0x9 0x21 0x3c 0xd5
4016 0x49 0x21 0x3c 0xd5
4017 0x9 0x30 0x3c 0xd5
4018 0x9 0x40 0x38 0xd5
4019 0x9 0x40 0x3c 0xd5
4020 0x9 0x40 0x3e 0xd5
4021 0x29 0x40 0x38 0xd5
4022 0x29 0x40 0x3c 0xd5
4023 0x29 0x40 0x3e 0xd5
4024 0x9 0x41 0x38 0xd5
4025 0x9 0x41 0x3c 0xd5
4026 0x9 0x41 0x3e 0xd5
4027 0x9 0x42 0x38 0xd5
4028 0x9 0x42 0x3b 0xd5
4029 0x29 0x42 0x3b 0xd5
4030 0x49 0x42 0x38 0xd5
4031 0x9 0x43 0x3c 0xd5
4032 0x29 0x43 0x3c 0xd5
4033 0x49 0x43 0x3c 0xd5
4034 0x69 0x43 0x3c 0xd5
4035 0x9 0x44 0x3b 0xd5
4036 0x29 0x44 0x3b 0xd5
4037 0x9 0x45 0x3b 0xd5
4038 0x29 0x45 0x3b 0xd5
4039 0x29 0x50 0x3c 0xd5
4040 0x9 0x51 0x38 0xd5
4041 0x9 0x51 0x3c 0xd5
4042 0x9 0x51 0x3e 0xd5
4043 0x29 0x51 0x38 0xd5
4044 0x29 0x51 0x3c 0xd5
4045 0x29 0x51 0x3e 0xd5
4046 0x9 0x52 0x38 0xd5
4047 0x9 0x52 0x3c 0xd5
4048 0x9 0x52 0x3e 0xd5
4049 0x9 0x53 0x3c 0xd5
4050 0x9 0x60 0x38 0xd5
4051 0x9 0x60 0x3c 0xd5
4052 0x9 0x60 0x3e 0xd5
4053 0x89 0x60 0x3c 0xd5
4054 0x9 0x74 0x38 0xd5
4055 0x9 0x9c 0x3b 0xd5
4056 0x29 0x9c 0x3b 0xd5
4057 0x49 0x9c 0x3b 0xd5
4058 0x69 0x9c 0x3b 0xd5
4059 0xa9 0x9c 0x3b 0xd5
4060 0xc9 0x9c 0x3b 0xd5
4061 0xe9 0x9c 0x3b 0xd5
4062 0x9 0x9d 0x3b 0xd5
4063 0x29 0x9d 0x3b 0xd5
4064 0x49 0x9d 0x3b 0xd5
4065 0x9 0x9e 0x3b 0xd5
4066 0x29 0x9e 0x38 0xd5
4067 0x49 0x9e 0x38 0xd5
4068 0x69 0x9e 0x3b 0xd5
4069 0x9 0xa2 0x38 0xd5
4070 0x9 0xa2 0x3c 0xd5
4071 0x9 0xa2 0x3e 0xd5
4072 0x9 0xa3 0x38 0xd5
4073 0x9 0xa3 0x3c 0xd5
4074 0x9 0xa3 0x3e 0xd5
4075 0x9 0xc0 0x38 0xd5
4076 0x9 0xc0 0x3c 0xd5
4077 0x9 0xc0 0x3e 0xd5
4078 0x29 0xc0 0x38 0xd5
4079 0x29 0xc0 0x3c 0xd5
4080 0x29 0xc0 0x3e 0xd5
4081 0x49 0xc0 0x38 0xd5
4082 0x49 0xc0 0x3c 0xd5
4083 0x49 0xc0 0x3e 0xd5
4084 0x9 0xc1 0x38 0xd5
4085 0x29 0xd0 0x38 0xd5
4086 0x49 0xd0 0x3b 0xd5
4087 0x49 0xd0 0x3c 0xd5
4088 0x49 0xd0 0x3e 0xd5
4089 0x69 0xd0 0x3b 0xd5
4090 0x89 0xd0 0x38 0xd5
4091 0x9 0xe0 0x3b 0xd5
4092 0x29 0xe0 0x3b 0xd5
4093 0x49 0xe0 0x3b 0xd5
4094 0x69 0xe0 0x3c 0xd5
4095 0x9 0xe1 0x38 0xd5
4096 0x9 0xe1 0x3c 0xd5
4097 0x9 0xe2 0x3b 0xd5
4098 0x9 0xe2 0x3c 0xd5
4099 0x9 0xe2 0x3f 0xd5
4100 0x29 0xe2 0x3b 0xd5
4101 0x29 0xe2 0x3c 0xd5
4102 0x29 0xe2 0x3f 0xd5
4103 0x49 0xe2 0x3b 0xd5
4104 0x49 0xe2 0x3c 0xd5
4105 0x49 0xe2 0x3f 0xd5
4106 0x9 0xe3 0x3b 0xd5
4107 0x29 0xe3 0x3b 0xd5
4108 0x49 0xe3 0x3b 0xd5
4109 0x9 0xe8 0x3b 0xd5
4110 0x29 0xe8 0x3b 0xd5
4111 0x49 0xe8 0x3b 0xd5
4112 0x69 0xe8 0x3b 0xd5
4113 0x89 0xe8 0x3b 0xd5
4114 0xa9 0xe8 0x3b 0xd5
4115 0xc9 0xe8 0x3b 0xd5
4116 0xe9 0xe8 0x3b 0xd5
4117 0x9 0xe9 0x3b 0xd5
4118 0x29 0xe9 0x3b 0xd5
4119 0x49 0xe9 0x3b 0xd5
4120 0x69 0xe9 0x3b 0xd5
4121 0x89 0xe9 0x3b 0xd5
4122 0xa9 0xe9 0x3b 0xd5
4123 0xc9 0xe9 0x3b 0xd5
4124 0xe9 0xe9 0x3b 0xd5
4125 0x9 0xea 0x3b 0xd5
4126 0x29 0xea 0x3b 0xd5
4127 0x49 0xea 0x3b 0xd5
4128 0x69 0xea 0x3b 0xd5
4129 0x89 0xea 0x3b 0xd5
4130 0xa9 0xea 0x3b 0xd5
4131 0xc9 0xea 0x3b 0xd5
4132 0xe9 0xea 0x3b 0xd5
4133 0x9 0xeb 0x3b 0xd5
4134 0x29 0xeb 0x3b 0xd5
4135 0x49 0xeb 0x3b 0xd5
4136 0x69 0xeb 0x3b 0xd5
4137 0x89 0xeb 0x3b 0xd5
4138 0xa9 0xeb 0x3b 0xd5
4139 0xc9 0xeb 0x3b 0xd5
4140 0xe9 0xef 0x3b 0xd5
4141 0x9 0xec 0x3b 0xd5
4142 0x29 0xec 0x3b 0xd5
4143 0x49 0xec 0x3b 0xd5
4144 0x69 0xec 0x3b 0xd5
4145 0x89 0xec 0x3b 0xd5
4146 0xa9 0xec 0x3b 0xd5
4147 0xc9 0xec 0x3b 0xd5
4148 0xe9 0xec 0x3b 0xd5
4149 0x9 0xed 0x3b 0xd5
4150 0x29 0xed 0x3b 0xd5
4151 0x49 0xed 0x3b 0xd5
4152 0x69 0xed 0x3b 0xd5
4153 0x89 0xed 0x3b 0xd5
4154 0xa9 0xed 0x3b 0xd5
4155 0xc9 0xed 0x3b 0xd5
4156 0xe9 0xed 0x3b 0xd5
4157 0x9 0xee 0x3b 0xd5
4158 0x29 0xee 0x3b 0xd5
4159 0x49 0xee 0x3b 0xd5
4160 0x69 0xee 0x3b 0xd5
4161 0x89 0xee 0x3b 0xd5
4162 0xa9 0xee 0x3b 0xd5
4163 0xc9 0xee 0x3b 0xd5
4164 0xe9 0xee 0x3b 0xd5
4165 0x9 0xef 0x3b 0xd5
4166 0x29 0xef 0x3b 0xd5
4167 0x49 0xef 0x3b 0xd5
4168 0x69 0xef 0x3b 0xd5
4169 0x89 0xef 0x3b 0xd5
4170 0xa9 0xef 0x3b 0xd5
4171 0xc9 0xef 0x3b 0xd5
4172
4173 # CHECK: mrs     x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4174 # CHECK: mrs     x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4175 # CHECK: msr     {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4176 # CHECK: msr     {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4177 0xac 0xf1 0x3f 0xd5
4178 0xed 0xbf 0x3a 0xd5
4179 0x0c 0xf0 0x18 0xd5
4180 0xe5 0xbd 0x1f 0xd5
4181
4182 #------------------------------------------------------------------------------
4183 # Test and branch (immediate)
4184 #------------------------------------------------------------------------------
4185
4186 # CHECK: tbz     x12, #62, #0
4187 # CHECK: tbz     x12, #62, #4
4188 # CHECK: tbz     x12, #62, #-32768
4189 # CHECK: tbnz    x12, #60, #32764
4190 0x0c 0x00 0xf0 0xb6
4191 0x2c 0x00 0xf0 0xb6
4192 0x0c 0x00 0xf4 0xb6
4193 0xec 0xff 0xe3 0xb7
4194
4195 #------------------------------------------------------------------------------
4196 # Unconditional branch (immediate)
4197 #------------------------------------------------------------------------------
4198
4199 # CHECK: b        #4
4200 # CHECK: b        #-4
4201 # CHECK: b        #134217724
4202 0x01 0x00 0x00 0x14
4203 0xff 0xff 0xff 0x17
4204 0xff 0xff 0xff 0x15
4205
4206 #------------------------------------------------------------------------------
4207 # Unconditional branch (register)
4208 #------------------------------------------------------------------------------
4209
4210 # CHECK: br       x20
4211 # CHECK: blr      xzr
4212 # CHECK: ret      x10
4213 0x80 0x2 0x1f 0xd6
4214 0xe0 0x3 0x3f 0xd6
4215 0x40 0x1 0x5f 0xd6
4216
4217 # CHECK: ret
4218 # CHECK: eret
4219 # CHECK: drps
4220 0xc0 0x3 0x5f 0xd6
4221 0xe0 0x3 0x9f 0xd6
4222 0xe0 0x3 0xbf 0xd6
4223