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