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