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