[mips] Added support for the ERETNC instruction.
[oota-llvm.git] / test / MC / Disassembler / AArch64 / arm64-advsimd.txt
1 # RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 --disassemble < %s | FileCheck %s
2
3 0x00 0xb8 0x20 0x0e
4 0x00 0xb8 0x20 0x4e
5 0x00 0xb8 0x60 0x0e
6 0x00 0xb8 0x60 0x4e
7 0x00 0xb8 0xa0 0x0e
8 0x00 0xb8 0xa0 0x4e
9
10 # CHECK: abs.8b  v0, v0
11 # CHECK: abs.16b v0, v0
12 # CHECK: abs.4h  v0, v0
13 # CHECK: abs.8h  v0, v0
14 # CHECK: abs.2s  v0, v0
15 # CHECK: abs.4s  v0, v0
16
17 0x00 0x84 0x20 0x0e
18 0x00 0x84 0x20 0x4e
19 0x00 0x84 0x60 0x0e
20 0x00 0x84 0x60 0x4e
21 0x00 0x84 0xa0 0x0e
22 0x00 0x84 0xa0 0x4e
23 0x00 0x84 0xe0 0x4e
24
25 # CHECK: add.8b  v0, v0, v0
26 # CHECK: add.16b v0, v0, v0
27 # CHECK: add.4h  v0, v0, v0
28 # CHECK: add.8h  v0, v0, v0
29 # CHECK: add.2s  v0, v0, v0
30 # CHECK: add.4s  v0, v0, v0
31 # CHECK: add.2d  v0, v0, v0
32
33 0x41 0x84 0xe3 0x5e
34
35 # CHECK: add d1, d2, d3
36
37 0x00 0x40 0x20 0x0e
38 0x00 0x40 0x20 0x4e
39 0x00 0x40 0x60 0x0e
40 0x00 0x40 0x60 0x4e
41 0x00 0x40 0xa0 0x0e
42 0x00 0x40 0xa0 0x4e
43
44 # CHECK: addhn.8b   v0, v0, v0
45 # CHECK: addhn2.16b v0, v0, v0
46 # CHECK: addhn.4h   v0, v0, v0
47 # CHECK: addhn2.8h  v0, v0, v0
48 # CHECK: addhn.2s   v0, v0, v0
49 # CHECK: addhn2.4s  v0, v0, v0
50
51 0x00 0xbc 0x20 0x0e
52 0x00 0xbc 0x20 0x4e
53 0x00 0xbc 0x60 0x0e
54 0x00 0xbc 0x60 0x4e
55 0x00 0xbc 0xa0 0x0e
56 0x00 0xbc 0xa0 0x4e
57 0x00 0xbc 0xe0 0x4e
58
59 # CHECK: addp.8b   v0, v0, v0
60 # CHECK: addp.16b  v0, v0, v0
61 # CHECK: addp.4h   v0, v0, v0
62 # CHECK: addp.8h   v0, v0, v0
63 # CHECK: addp.2s   v0, v0, v0
64 # CHECK: addp.4s   v0, v0, v0
65 # CHECK: addp.2d   v0, v0, v0
66
67 0x00 0xb8 0xf1 0x5e
68
69 # CHECK: addp.2d d0, v0
70
71 0x00 0xb8 0x31 0x0e
72 0x00 0xb8 0x31 0x4e
73 0x00 0xb8 0x71 0x0e
74 0x00 0xb8 0x71 0x4e
75 0x00 0xb8 0xb1 0x4e
76
77 # CHECK: addv.8b  b0, v0
78 # CHECK: addv.16b b0, v0
79 # CHECK: addv.4h  h0, v0
80 # CHECK: addv.8h  h0, v0
81 # CHECK: addv.4s  s0, v0
82
83
84 # INS/DUP
85 0x60 0x0c 0x08 0x4e
86 0x60 0x0c 0x04 0x4e
87 0x60 0x0c 0x04 0x0e
88 0x60 0x0c 0x02 0x4e
89 0x60 0x0c 0x02 0x0e
90 0x60 0x0c 0x01 0x4e
91 0x60 0x0c 0x01 0x0e
92
93 # CHECK: dup.2d  v0, x3
94 # CHECK: dup.4s  v0, w3
95 # CHECK: dup.2s  v0, w3
96 # CHECK: dup.8h  v0, w3
97 # CHECK: dup.4h  v0, w3
98 # CHECK: dup.16b v0, w3
99 # CHECK: dup.8b  v0, w3
100
101 0x60 0x04 0x18 0x4e
102 0x60 0x04 0x0c 0x0e
103 0x60 0x04 0x0c 0x4e
104 0x60 0x04 0x06 0x0e
105 0x60 0x04 0x06 0x4e
106 0x60 0x04 0x03 0x0e
107 0x60 0x04 0x03 0x4e
108
109 # CHECK: dup.2d  v0, v3[1]
110 # CHECK: dup.2s  v0, v3[1]
111 # CHECK: dup.4s  v0, v3[1]
112 # CHECK: dup.4h  v0, v3[1]
113 # CHECK: dup.8h  v0, v3[1]
114 # CHECK: dup.8b  v0, v3[1]
115 # CHECK: dup.16b v0, v3[1]
116
117
118 0x43 0x2c 0x14 0x4e
119 0x43 0x2c 0x14 0x4e
120 0x43 0x3c 0x14 0x0e
121 0x43 0x3c 0x14 0x0e
122 0x43 0x3c 0x18 0x4e
123 0x43 0x3c 0x18 0x4e
124
125 # CHECK: smov.s  x3, v2[2]
126 # CHECK: smov.s  x3, v2[2]
127 # CHECK: mov.s  w3, v2[2]
128 # CHECK: mov.s  w3, v2[2]
129 # CHECK: mov.d  x3, v2[1]
130 # CHECK: mov.d  x3, v2[1]
131
132 0xa2 0x1c 0x18 0x4e
133 0xa2 0x1c 0x0c 0x4e
134 0xa2 0x1c 0x06 0x4e
135 0xa2 0x1c 0x03 0x4e
136
137 0xa2 0x1c 0x18 0x4e
138 0xa2 0x1c 0x0c 0x4e
139 0xa2 0x1c 0x06 0x4e
140 0xa2 0x1c 0x03 0x4e
141
142 # CHECK: ins.d v2[1], x5
143 # CHECK: ins.s v2[1], w5
144 # CHECK: ins.h v2[1], w5
145 # CHECK: ins.b v2[1], w5
146
147 # CHECK: ins.d v2[1], x5
148 # CHECK: ins.s v2[1], w5
149 # CHECK: ins.h v2[1], w5
150 # CHECK: ins.b v2[1], w5
151
152 0xe2 0x45 0x18 0x6e
153 0xe2 0x25 0x0c 0x6e
154 0xe2 0x15 0x06 0x6e
155 0xe2 0x0d 0x03 0x6e
156
157 0xe2 0x05 0x18 0x6e
158 0xe2 0x45 0x1c 0x6e
159 0xe2 0x35 0x1e 0x6e
160 0xe2 0x2d 0x15 0x6e
161
162 # CHECK: ins.d v2[1], v15[1]
163 # CHECK: ins.s v2[1], v15[1]
164 # CHECK: ins.h v2[1], v15[1]
165 # CHECK: ins.b v2[1], v15[1]
166
167 # CHECK: ins.d v2[1], v15[0]
168 # CHECK: ins.s v2[3], v15[2]
169 # CHECK: ins.h v2[7], v15[3]
170 # CHECK: ins.b v2[10], v15[5]
171
172 # INS/DUP (non-standard)
173 0x60 0x0c 0x08 0x4e
174 0x60 0x0c 0x0c 0x4e
175 0x60 0x0c 0x0c 0x0e
176 0x60 0x0c 0x0e 0x4e
177 0x60 0x0c 0x0e 0x0e
178 0x60 0x0c 0x0f 0x4e
179 0x60 0x0c 0x0f 0x0e
180
181 # CHECK: dup.2d  v0, x3
182 # CHECK: dup.4s  v0, w3
183 # CHECK: dup.2s  v0, w3
184 # CHECK: dup.8h  v0, w3
185 # CHECK: dup.4h  v0, w3
186 # CHECK: dup.16b v0, w3
187 # CHECK: dup.8b  v0, w3
188
189 0xe2 0x75 0x18 0x6e
190 0xe2 0x35 0x0c 0x6e
191 0xe2 0x15 0x06 0x6e
192 0xe2 0x0d 0x03 0x6e
193
194 0xe2 0x05 0x18 0x6e
195 0xe2 0x55 0x1c 0x6e
196 0xe2 0x35 0x1e 0x6e
197 0xe2 0x2d 0x15 0x6e
198
199 # CHECK: ins.d v2[1], v15[1]
200 # CHECK: ins.s v2[1], v15[1]
201 # CHECK: ins.h v2[1], v15[1]
202 # CHECK: ins.b v2[1], v15[1]
203
204 # CHECK: ins.d v2[1], v15[0]
205 # CHECK: ins.s v2[3], v15[2]
206 # CHECK: ins.h v2[7], v15[3]
207 # CHECK: ins.b v2[10], v15[5]
208
209 0x00 0x1c 0x20 0x0e
210 0x00 0x1c 0x20 0x4e
211
212 # CHECK: and.8b  v0, v0, v0
213 # CHECK: and.16b v0, v0, v0
214
215 0x00 0x1c 0x60 0x0e
216
217 # CHECK: bic.8b  v0, v0, v0
218
219 0x00 0x8c 0x20 0x2e
220 0x00 0x3c 0x20 0x0e
221 0x00 0x34 0x20 0x0e
222 0x00 0x34 0x20 0x2e
223 0x00 0x3c 0x20 0x2e
224 0x00 0x8c 0x20 0x0e
225 0x00 0xd4 0xa0 0x2e
226 0x00 0xec 0x20 0x2e
227 0x00 0xec 0xa0 0x2e
228 0x00 0xd4 0x20 0x2e
229 0x00 0xd4 0x20 0x0e
230 0x00 0xe4 0x20 0x0e
231 0x00 0xe4 0x20 0x2e
232 0x00 0xe4 0xa0 0x2e
233 0x00 0xfc 0x20 0x2e
234 0x00 0xc4 0x20 0x2e
235 0x00 0xc4 0x20 0x0e
236 0x00 0xf4 0x20 0x2e
237 0x00 0xf4 0x20 0x0e
238 0x00 0xc4 0xa0 0x2e
239 0x00 0xc4 0xa0 0x0e
240 0x00 0xf4 0xa0 0x2e
241 0x00 0xf4 0xa0 0x0e
242 0x00 0xcc 0x20 0x0e
243 0x00 0xcc 0xa0 0x0e
244 0x00 0xdc 0x20 0x0e
245 0x00 0xdc 0x20 0x2e
246 0x00 0xfc 0x20 0x0e
247 0x00 0xfc 0xa0 0x0e
248 0x00 0xd4 0xa0 0x0e
249 0x00 0x94 0x20 0x0e
250 0x00 0x94 0x20 0x2e
251 0x00 0x9c 0x20 0x0e
252 0x00 0x9c 0x20 0x2e
253 0x00 0x7c 0x20 0x0e
254 0x00 0x74 0x20 0x0e
255 0x00 0x04 0x20 0x0e
256 0x00 0x24 0x20 0x0e
257 0x00 0xa4 0x20 0x0e
258 0x00 0x64 0x20 0x0e
259 0x00 0xac 0x20 0x0e
260 0x00 0x6c 0x20 0x0e
261 0x00 0x0c 0x20 0x0e
262 0x00 0xb4 0x60 0x0e
263 0x00 0xb4 0x60 0x2e
264 0x00 0x5c 0x20 0x0e
265 0x00 0x4c 0x20 0x0e
266 0x00 0x2c 0x20 0x0e
267 0x00 0x14 0x20 0x0e
268 0x00 0x54 0x20 0x0e
269 0x00 0x44 0x20 0x0e
270 0x00 0x84 0x20 0x2e
271 0x00 0x7c 0x20 0x2e
272 0x00 0x74 0x20 0x2e
273 0x00 0x04 0x20 0x2e
274 0x00 0x24 0x20 0x2e
275 0x00 0xa4 0x20 0x2e
276 0x00 0x64 0x20 0x2e
277 0x00 0xac 0x20 0x2e
278 0x00 0x6c 0x20 0x2e
279 0x00 0x0c 0x20 0x2e
280 0x00 0x5c 0x20 0x2e
281 0x00 0x4c 0x20 0x2e
282 0x00 0x2c 0x20 0x2e
283 0x00 0x14 0x20 0x2e
284 0x00 0x54 0x20 0x2e
285 0x00 0x44 0x20 0x2e
286
287 # CHECK: cmeq.8b        v0, v0, v0
288 # CHECK: cmge.8b        v0, v0, v0
289 # CHECK: cmgt.8b        v0, v0, v0
290 # CHECK: cmhi.8b        v0, v0, v0
291 # CHECK: cmhs.8b        v0, v0, v0
292 # CHECK: cmtst.8b       v0, v0, v0
293 # CHECK: fabd.2s        v0, v0, v0
294 # CHECK: facge.2s       v0, v0, v0
295 # CHECK: facgt.2s       v0, v0, v0
296 # CHECK: faddp.2s       v0, v0, v0
297 # CHECK: fadd.2s        v0, v0, v0
298 # CHECK: fcmeq.2s       v0, v0, v0
299 # CHECK: fcmge.2s       v0, v0, v0
300 # CHECK: fcmgt.2s       v0, v0, v0
301 # CHECK: fdiv.2s        v0, v0, v0
302 # CHECK: fmaxnmp.2s     v0, v0, v0
303 # CHECK: fmaxnm.2s      v0, v0, v0
304 # CHECK: fmaxp.2s       v0, v0, v0
305 # CHECK: fmax.2s        v0, v0, v0
306 # CHECK: fminnmp.2s     v0, v0, v0
307 # CHECK: fminnm.2s      v0, v0, v0
308 # CHECK: fminp.2s       v0, v0, v0
309 # CHECK: fmin.2s        v0, v0, v0
310 # CHECK: fmla.2s        v0, v0, v0
311 # CHECK: fmls.2s        v0, v0, v0
312 # CHECK: fmulx.2s       v0, v0, v0
313 # CHECK: fmul.2s        v0, v0, v0
314 # CHECK: frecps.2s      v0, v0, v0
315 # CHECK: frsqrts.2s     v0, v0, v0
316 # CHECK: fsub.2s        v0, v0, v0
317 # CHECK: mla.8b v0, v0, v0
318 # CHECK: mls.8b v0, v0, v0
319 # CHECK: mul.8b v0, v0, v0
320 # CHECK: pmul.8b        v0, v0, v0
321 # CHECK: saba.8b        v0, v0, v0
322 # CHECK: sabd.8b        v0, v0, v0
323 # CHECK: shadd.8b       v0, v0, v0
324 # CHECK: shsub.8b       v0, v0, v0
325 # CHECK: smaxp.8b       v0, v0, v0
326 # CHECK: smax.8b        v0, v0, v0
327 # CHECK: sminp.8b       v0, v0, v0
328 # CHECK: smin.8b        v0, v0, v0
329 # CHECK: sqadd.8b       v0, v0, v0
330 # CHECK: sqdmulh.4h v0, v0, v0
331 # CHECK: sqrdmulh.4h v0, v0, v0
332 # CHECK: sqrshl.8b      v0, v0, v0
333 # CHECK: sqshl.8b       v0, v0, v0
334 # CHECK: sqsub.8b       v0, v0, v0
335 # CHECK: srhadd.8b      v0, v0, v0
336 # CHECK: srshl.8b       v0, v0, v0
337 # CHECK: sshl.8b        v0, v0, v0
338 # CHECK: sub.8b v0, v0, v0
339 # CHECK: uaba.8b        v0, v0, v0
340 # CHECK: uabd.8b        v0, v0, v0
341 # CHECK: uhadd.8b       v0, v0, v0
342 # CHECK: uhsub.8b       v0, v0, v0
343 # CHECK: umaxp.8b       v0, v0, v0
344 # CHECK: umax.8b        v0, v0, v0
345 # CHECK: uminp.8b       v0, v0, v0
346 # CHECK: umin.8b        v0, v0, v0
347 # CHECK: uqadd.8b       v0, v0, v0
348 # CHECK: uqrshl.8b      v0, v0, v0
349 # CHECK: uqshl.8b       v0, v0, v0
350 # CHECK: uqsub.8b       v0, v0, v0
351 # CHECK: urhadd.8b      v0, v0, v0
352 # CHECK: urshl.8b       v0, v0, v0
353 # CHECK: ushl.8b        v0, v0, v0
354
355 0x00 0x1c 0xe0 0x2e
356 0x00 0x1c 0xa0 0x2e
357 0x00 0x1c 0x60 0x2e
358 0x00 0x1c 0x20 0x2e
359 0x00 0x1c 0xe0 0x0e
360 0x00 0x1c 0xa1 0x0e
361
362 # CHECK: bif.8b v0, v0, v0
363 # CHECK: bit.8b v0, v0, v0
364 # CHECK: bsl.8b v0, v0, v0
365 # CHECK: eor.8b v0, v0, v0
366 # CHECK: orn.8b v0, v0, v0
367 # CHECK: orr.8b v0, v0, v1
368
369 0x00 0x68 0x20 0x0e
370 0x00 0x68 0x20 0x4e
371 0x00 0x68 0x60 0x0e
372 0x00 0x68 0x60 0x4e
373 0x00 0x68 0xa0 0x0e
374 0x00 0x68 0xa0 0x4e
375
376 # CHECK: sadalp.4h      v0, v0
377 # CHECK: sadalp.8h      v0, v0
378 # CHECK: sadalp.2s      v0, v0
379 # CHECK: sadalp.4s      v0, v0
380 # CHECK: sadalp.1d      v0, v0
381 # CHECK: sadalp.2d      v0, v0
382
383 0x00 0x48 0x20 0x0e
384 0x00 0x48 0x20 0x2e
385 0x00 0x58 0x20 0x0e
386 0x00 0xf8 0xa0 0x0e
387 0x00 0xc8 0x21 0x0e
388 0x00 0xc8 0x21 0x2e
389 0x00 0xb8 0x21 0x0e
390 0x00 0xb8 0x21 0x2e
391 0x00 0xa8 0x21 0x0e
392 0x00 0xa8 0x21 0x2e
393 0x00 0xa8 0xa1 0x0e
394 0x00 0xa8 0xa1 0x2e
395 0x00 0xb8 0xa1 0x0e
396 0x00 0xb8 0xa1 0x2e
397 0x00 0xf8 0xa0 0x2e
398 0x00 0xd8 0xa1 0x0e
399 0x00 0xd8 0xa1 0x2e
400 0x00 0xf8 0xa1 0x2e
401 0x00 0xb8 0x20 0x2e
402 0x00 0x58 0x20 0x2e
403 0x00 0x58 0x60 0x2e
404 0x00 0x18 0x20 0x0e
405 0x00 0x08 0x20 0x2e
406 0x00 0x08 0x20 0x0e
407 0x00 0x68 0x20 0x0e
408 0x00 0x28 0x20 0x0e
409 0x00 0xd8 0x21 0x0e
410 0x00 0x38 0x21 0x2e
411 0x00 0x78 0x20 0x0e
412 0x00 0x78 0x20 0x2e
413 0x00 0x48 0x21 0x0e
414 0x00 0x28 0x21 0x2e
415 0x00 0x38 0x20 0x0e
416 0x00 0x68 0x20 0x2e
417 0x00 0x28 0x20 0x2e
418 0x00 0xd8 0x21 0x2e
419 0x00 0x48 0x21 0x2e
420 0x00 0xc8 0xa1 0x0e
421 0x00 0xc8 0xa1 0x2e
422 0x00 0x38 0x20 0x2e
423 0x00 0x28 0x21 0x0e
424 0x00 0x48 0x20 0x0e
425 0x00 0x48 0x20 0x2e
426 0x00 0x58 0x20 0x0e
427 0x00 0xf8 0xa0 0x0e
428 0x00 0xc8 0x21 0x0e
429 0x00 0xc8 0x21 0x2e
430 0x00 0xb8 0x21 0x0e
431 0x00 0xb8 0x21 0x2e
432 0x00 0xa8 0x21 0x0e
433 0x00 0xa8 0x21 0x2e
434 0x00 0xa8 0xa1 0x0e
435 0x00 0xa8 0xa1 0x2e
436 0x00 0xb8 0xa1 0x0e
437 0x00 0xb8 0xa1 0x2e
438 0x00 0xf8 0xa0 0x2e
439 0x00 0xd8 0xa1 0x0e
440 0x00 0xd8 0xa1 0x2e
441 0x00 0xf8 0xa1 0x2e
442 0x00 0xb8 0x20 0x2e
443 0x00 0x58 0x20 0x2e
444 0x00 0x58 0x60 0x2e
445 0x00 0x18 0x20 0x0e
446 0x00 0x08 0x20 0x2e
447 0x00 0x08 0x20 0x0e
448 0x00 0x68 0x20 0x0e
449 0x00 0x28 0x20 0x0e
450 0x00 0xd8 0x21 0x0e
451 0x00 0x38 0x21 0x2e
452 0x00 0x78 0x20 0x0e
453 0x00 0x78 0x20 0x2e
454 0x00 0x48 0x21 0x0e
455 0x00 0x28 0x21 0x2e
456 0x00 0x38 0x20 0x0e
457 0x00 0x68 0x20 0x2e
458 0x00 0x28 0x20 0x2e
459 0x00 0xd8 0x21 0x2e
460 0x00 0x48 0x21 0x2e
461 0x00 0xc8 0xa1 0x0e
462 0x00 0xc8 0xa1 0x2e
463 0x00 0x38 0x20 0x2e
464 0x00 0x28 0x21 0x0e
465
466 # CHECK: cls.8b v0, v0
467 # CHECK: clz.8b v0, v0
468 # CHECK: cnt.8b v0, v0
469 # CHECK: fabs.2s        v0, v0
470 # CHECK: fcvtas.2s      v0, v0
471 # CHECK: fcvtau.2s      v0, v0
472 # CHECK: fcvtms.2s      v0, v0
473 # CHECK: fcvtmu.2s      v0, v0
474 # CHECK: fcvtns.2s      v0, v0
475 # CHECK: fcvtnu.2s      v0, v0
476 # CHECK: fcvtps.2s      v0, v0
477 # CHECK: fcvtpu.2s      v0, v0
478 # CHECK: fcvtzs.2s      v0, v0
479 # CHECK: fcvtzu.2s      v0, v0
480 # CHECK: fneg.2s        v0, v0
481 # CHECK: frecpe.2s      v0, v0
482 # CHECK: frsqrte.2s     v0, v0
483 # CHECK: fsqrt.2s       v0, v0
484 # CHECK: neg.8b v0, v0
485 # CHECK: mvn.8b v0, v0
486 # CHECK: rbit.8b        v0, v0
487 # CHECK: rev16.8b       v0, v0
488 # CHECK: rev32.8b       v0, v0
489 # CHECK: rev64.8b       v0, v0
490 # CHECK: sadalp.4h      v0, v0
491 # CHECK: saddlp.4h      v0, v0
492 # CHECK: scvtf.2s       v0, v0
493 # CHECK: shll.8h        v0, v0, #8
494 # CHECK: sqabs.8b       v0, v0
495 # CHECK: sqneg.8b       v0, v0
496 # CHECK: sqxtn.8b       v0, v0
497 # CHECK: sqxtun.8b      v0, v0
498 # CHECK: suqadd.8b      v0, v0
499 # CHECK: uadalp.4h      v0, v0
500 # CHECK: uaddlp.4h      v0, v0
501 # CHECK: ucvtf.2s       v0, v0
502 # CHECK: uqxtn.8b       v0, v0
503 # CHECK: urecpe.2s      v0, v0
504 # CHECK: ursqrte.2s     v0, v0
505 # CHECK: usqadd.8b      v0, v0
506 # CHECK: xtn.8b v0, v0
507
508 0x00 0x98 0x20 0x0e
509 0x00 0x98 0x20 0x4e
510 0x00 0x98 0x60 0x0e
511 0x00 0x98 0x60 0x4e
512 0x00 0x98 0xa0 0x0e
513 0x00 0x98 0xa0 0x4e
514 0x00 0x98 0xe0 0x4e
515
516 # CHECK: cmeq.8b        v0, v0, #0
517 # CHECK: cmeq.16b       v0, v0, #0
518 # CHECK: cmeq.4h        v0, v0, #0
519 # CHECK: cmeq.8h        v0, v0, #0
520 # CHECK: cmeq.2s        v0, v0, #0
521 # CHECK: cmeq.4s        v0, v0, #0
522 # CHECK: cmeq.2d        v0, v0, #0
523
524 0x00 0x88 0x20 0x2e
525 0x00 0x88 0x20 0x0e
526 0x00 0x98 0x20 0x2e
527 0x00 0xa8 0x20 0x0e
528 0x00 0xd8 0xa0 0x0e
529 0x00 0xc8 0xa0 0x2e
530 0x00 0xc8 0xa0 0x0e
531 0x00 0xd8 0xa0 0x2e
532 0x00 0xe8 0xa0 0x0e
533
534 # CHECK: cmge.8b        v0, v0, #0
535 # CHECK: cmgt.8b        v0, v0, #0
536 # CHECK: cmle.8b        v0, v0, #0
537 # CHECK: cmlt.8b        v0, v0, #0
538 # CHECK: fcmeq.2s       v0, v0, #0
539 # CHECK: fcmge.2s       v0, v0, #0
540 # CHECK: fcmgt.2s       v0, v0, #0
541 # CHECK: fcmle.2s       v0, v0, #0
542 # CHECK: fcmlt.2s       v0, v0, #0
543
544 0x00 0x78 0x21 0x0e
545 0x00 0x78 0x21 0x4e
546 0x00 0x78 0x61 0x0e
547 0x00 0x78 0x61 0x4e
548 0x00 0x68 0x21 0x0e
549 0x00 0x68 0x21 0x4e
550 0x00 0x68 0x61 0x0e
551 0x00 0x68 0x61 0x4e
552 0x00 0x68 0x61 0x2e
553 0x00 0x68 0x61 0x6e
554
555 # CHECK: fcvtl  v0.4s, v0.4h
556 # CHECK: fcvtl2 v0.4s, v0.8h
557 # CHECK: fcvtl  v0.2d, v0.2s
558 # CHECK: fcvtl2 v0.2d, v0.4s
559 # CHECK: fcvtn  v0.4h, v0.4s
560 # CHECK: fcvtn2 v0.8h, v0.4s
561 # CHECK: fcvtn  v0.2s, v0.2d
562 # CHECK: fcvtn2 v0.4s, v0.2d
563 # CHECK: fcvtxn v0.2s, v0.2d
564 # CHECK: fcvtxn2        v0.4s, v0.2d
565
566 #===-------------------------------------------------------------------------===
567 # AdvSIMD modified immediate instructions
568 #===-------------------------------------------------------------------------===
569
570 0x20 0x14 0x00 0x2f
571 0x20 0x34 0x00 0x2f
572 0x20 0x54 0x00 0x2f
573 0x20 0x74 0x00 0x2f
574
575 # CHECK: bic.2s v0, #0x1
576 # CHECK: bic.2s v0, #0x1, lsl #8
577 # CHECK: bic.2s v0, #0x1, lsl #16
578 # CHECK: bic.2s v0, #0x1, lsl #24
579
580 0x20 0x94 0x00 0x2f
581 0x20 0x94 0x00 0x2f
582 0x20 0xb4 0x00 0x2f
583
584 # CHECK: bic.4h v0, #0x1
585 # CHECK: bic.4h v0, #0x1
586 # FIXME: bic.4h v0, #0x1, lsl #8
587 #    'bic.4h' should be selected over "fcvtnu.2s v0, v1, #0"
588
589 0x20 0x14 0x00 0x6f
590 0x20 0x34 0x00 0x6f
591 0x20 0x54 0x00 0x6f
592 0x20 0x74 0x00 0x6f
593
594 # CHECK: bic.4s v0, #0x1
595 # CHECK: bic.4s v0, #0x1, lsl #8
596 # CHECK: bic.4s v0, #0x1, lsl #16
597 # CHECK: bic.4s v0, #0x1, lsl #24
598
599 0x20 0x94 0x00 0x6f
600 0x20 0xb4 0x00 0x6f
601
602 # CHECK: bic.8h v0, #0x1
603 # FIXME: bic.8h v0, #0x1, lsl #8
604 #    "bic.8h" should be selected over "fcvtnu.4s v0, v1, #0"
605
606 0x00 0xf4 0x02 0x6f
607
608 # CHECK: fmov.2d v0, #0.12500000
609
610 0x00 0xf4 0x02 0x0f
611 0x00 0xf4 0x02 0x4f
612
613 # CHECK: fmov.2s v0, #0.12500000
614 # CHECK: fmov.4s v0, #0.12500000
615
616 0x20 0x14 0x00 0x0f
617 0x20 0x34 0x00 0x0f
618 0x20 0x54 0x00 0x0f
619 0x20 0x74 0x00 0x0f
620
621 # CHECK: orr.2s v0, #0x1
622 # CHECK: orr.2s v0, #0x1, lsl #8
623 # CHECK: orr.2s v0, #0x1, lsl #16
624 # CHECK: orr.2s v0, #0x1, lsl #24
625
626 0x20 0x94 0x00 0x0f
627 0x20 0xb4 0x00 0x0f
628
629 # CHECK: orr.4h v0, #0x1
630 # FIXME: orr.4h v0, #0x1, lsl #8
631 #    'orr.4h' should be selected over "fcvtns.2s v0, v1, #0"
632
633 0x20 0x14 0x00 0x4f
634 0x20 0x34 0x00 0x4f
635 0x20 0x54 0x00 0x4f
636 0x20 0x74 0x00 0x4f
637
638 # CHECK: orr.4s v0, #0x1
639 # CHECK: orr.4s v0, #0x1, lsl #8
640 # CHECK: orr.4s v0, #0x1, lsl #16
641 # CHECK: orr.4s v0, #0x1, lsl #24
642
643 0x20 0x94 0x00 0x4f
644 0x20 0xb4 0x00 0x4f
645
646 # CHECK: orr.8h v0, #0x1
647 # CHECK: orr.8h v0, #0x1, lsl #8
648
649 0x21 0x70 0x40 0x0c
650 0x42 0xa0 0x40 0x4c
651 0x64 0x64 0x40 0x0c
652 0x87 0x24 0x40 0x4c
653 0x0c 0xa8 0x40 0x0c
654 0x0a 0x68 0x40 0x4c
655 0x2d 0xac 0x40 0x0c
656 0x4f 0x7c 0x40 0x4c
657 0xe0 0x03 0x40 0x0d
658
659 # CHECK: ld1.8b { v1 }, [x1]
660 # CHECK: ld1.16b { v2, v3 }, [x2]
661 # CHECK: ld1.4h { v4, v5, v6 }, [x3]
662 # CHECK: ld1.8h { v7, v8, v9, v10 }, [x4]
663 # CHECK: ld1.2s { v12, v13 }, [x0]
664 # CHECK: ld1.4s { v10, v11, v12 }, [x0]
665 # CHECK: ld1.1d { v13, v14 }, [x1]
666 # CHECK: ld1.2d { v15 }, [x2]
667 # CHECK: ld1.b  { v0 }[0], [sp]
668
669 0x41 0x70 0xdf 0x0c
670 0x41 0xa0 0xdf 0x0c
671 0x41 0x60 0xdf 0x0c
672 0x41 0x20 0xdf 0x0c
673 0x42 0x70 0xdf 0x4c
674 0x42 0xa0 0xdf 0x4c
675 0x42 0x60 0xdf 0x4c
676 0x42 0x20 0xdf 0x4c
677 0x64 0x74 0xdf 0x0c
678 0x64 0xa4 0xdf 0x0c
679 0x64 0x64 0xdf 0x0c
680 0x64 0x24 0xdf 0x0c
681 0x87 0x74 0xdf 0x4c
682 0x87 0xa4 0xdf 0x4c
683 0x87 0x64 0xdf 0x4c
684 0x87 0x24 0xdf 0x4c
685 0x0c 0x78 0xdf 0x0c
686 0x0c 0xa8 0xdf 0x0c
687 0x0c 0x68 0xdf 0x0c
688 0x0c 0x28 0xdf 0x0c
689 0x0a 0x78 0xdf 0x4c
690 0x0a 0xa8 0xdf 0x4c
691 0x0a 0x68 0xdf 0x4c
692 0x0a 0x28 0xdf 0x4c
693 0x2d 0x7c 0xdf 0x0c
694 0x2d 0xac 0xdf 0x0c
695 0x2d 0x6c 0xdf 0x0c
696 0x2d 0x2c 0xdf 0x0c
697 0x4f 0x7c 0xdf 0x4c
698 0x4f 0xac 0xdf 0x4c
699 0x4f 0x6c 0xdf 0x4c
700 0x4f 0x2c 0xdf 0x4c
701
702 # CHECK: ld1.8b { v1 }, [x2], #8
703 # CHECK: ld1.8b { v1, v2 }, [x2], #16
704 # CHECK: ld1.8b { v1, v2, v3 }, [x2], #24
705 # CHECK: ld1.8b { v1, v2, v3, v4 }, [x2], #32
706 # CHECK: ld1.16b { v2 }, [x2], #16
707 # CHECK: ld1.16b { v2, v3 }, [x2], #32
708 # CHECK: ld1.16b { v2, v3, v4 }, [x2], #48
709 # CHECK: ld1.16b { v2, v3, v4, v5 }, [x2], #64
710 # CHECK: ld1.4h { v4 }, [x3], #8
711 # CHECK: ld1.4h { v4, v5 }, [x3], #16
712 # CHECK: ld1.4h { v4, v5, v6 }, [x3], #24
713 # CHECK: ld1.4h { v4, v5, v6, v7 }, [x3], #32
714 # CHECK: ld1.8h { v7 }, [x4], #16
715 # CHECK: ld1.8h { v7, v8 }, [x4], #32
716 # CHECK: ld1.8h { v7, v8, v9 }, [x4], #48
717 # CHECK: ld1.8h { v7, v8, v9, v10 }, [x4], #64
718 # CHECK: ld1.2s { v12 }, [x0], #8
719 # CHECK: ld1.2s { v12, v13 }, [x0], #16
720 # CHECK: ld1.2s { v12, v13, v14 }, [x0], #24
721 # CHECK: ld1.2s { v12, v13, v14, v15 }, [x0], #32
722 # CHECK: ld1.4s { v10 }, [x0], #16
723 # CHECK: ld1.4s { v10, v11 }, [x0], #32
724 # CHECK: ld1.4s { v10, v11, v12 }, [x0], #48
725 # CHECK: ld1.4s { v10, v11, v12, v13 }, [x0], #64
726 # CHECK: ld1.1d { v13 }, [x1], #8
727 # CHECK: ld1.1d { v13, v14 }, [x1], #16
728 # CHECK: ld1.1d { v13, v14, v15 }, [x1], #24
729 # CHECK: ld1.1d { v13, v14, v15, v16 }, [x1], #32
730 # CHECK: ld1.2d { v15 }, [x2], #16
731 # CHECK: ld1.2d { v15, v16 }, [x2], #32
732 # CHECK: ld1.2d { v15, v16, v17 }, [x2], #48
733 # CHECK: ld1.2d { v15, v16, v17, v18 }, [x2], #64
734
735 0x21 0x70 0x00 0x0c
736 0x42 0xa0 0x00 0x4c
737 0x64 0x64 0x00 0x0c
738 0x87 0x24 0x00 0x4c
739 0x0c 0xa8 0x00 0x0c
740 0x0a 0x68 0x00 0x4c
741 0x2d 0xac 0x00 0x0c
742 0x4f 0x7c 0x00 0x4c
743
744 # CHECK: st1.8b { v1 }, [x1]
745 # CHECK: st1.16b { v2, v3 }, [x2]
746 # CHECK: st1.4h { v4, v5, v6 }, [x3]
747 # CHECK: st1.8h { v7, v8, v9, v10 }, [x4]
748 # CHECK: st1.2s { v12, v13 }, [x0]
749 # CHECK: st1.4s { v10, v11, v12 }, [x0]
750 # CHECK: st1.1d { v13, v14 }, [x1]
751 # CHECK: st1.2d { v15 }, [x2]
752
753 0x61 0x08 0x40 0x0d
754 0x82 0x84 0x40 0x4d
755 0xa3 0x58 0x40 0x0d
756 0xc4 0x80 0x40 0x4d
757
758 # CHECK: ld1.b { v1 }[2], [x3]
759 # CHECK: ld1.d { v2 }[1], [x4]
760 # CHECK: ld1.h { v3 }[3], [x5]
761 # CHECK: ld1.s { v4 }[2], [x6]
762
763 0x61 0x08 0xdf 0x0d
764 0x82 0x84 0xdf 0x4d
765 0xa3 0x58 0xdf 0x0d
766 0xc4 0x80 0xdf 0x4d
767
768 # CHECK: ld1.b { v1 }[2], [x3], #1
769 # CHECK: ld1.d { v2 }[1], [x4], #8
770 # CHECK: ld1.h { v3 }[3], [x5], #2
771 # CHECK: ld1.s { v4 }[2], [x6], #4
772
773 0x61 0x08 0x00 0x0d
774 0x82 0x84 0x00 0x4d
775 0xa3 0x58 0x00 0x0d
776 0xc4 0x80 0x00 0x4d
777
778 # CHECK: st1.b { v1 }[2], [x3]
779 # CHECK: st1.d { v2 }[1], [x4]
780 # CHECK: st1.h { v3 }[3], [x5]
781 # CHECK: st1.s { v4 }[2], [x6]
782
783 0x61 0x08 0x9f 0x0d
784 0x82 0x84 0x9f 0x4d
785 0xa3 0x58 0x9f 0x0d
786 0xc4 0x80 0x9f 0x4d
787
788 # CHECK: st1.b { v1 }[2], [x3], #1
789 # CHECK: st1.d { v2 }[1], [x4], #8
790 # CHECK: st1.h { v3 }[3], [x5], #2
791 # CHECK: st1.s { v4 }[2], [x6], #4
792
793 0x61 0x08 0xc4 0x0d
794 0x82 0x84 0xc5 0x4d
795 0xa3 0x58 0xc6 0x0d
796 0xc4 0x80 0xc7 0x4d
797
798 # CHECK: ld1.b { v1 }[2], [x3], x4
799 # CHECK: ld1.d { v2 }[1], [x4], x5
800 # CHECK: ld1.h { v3 }[3], [x5], x6
801 # CHECK: ld1.s { v4 }[2], [x6], x7
802
803 0x61 0x08 0x84 0x0d
804 0x82 0x84 0x85 0x4d
805 0xa3 0x58 0x86 0x0d
806 0xc4 0x80 0x87 0x4d
807
808 # CHECK: st1.b { v1 }[2], [x3], x4
809 # CHECK: st1.d { v2 }[1], [x4], x5
810 # CHECK: st1.h { v3 }[3], [x5], x6
811 # CHECK: st1.s { v4 }[2], [x6], x7
812
813 0x41 0x70 0xc3 0x0c
814 0x42 0xa0 0xc4 0x4c
815 0x64 0x64 0xc5 0x0c
816 0x87 0x24 0xc6 0x4c
817 0x0c 0xa8 0xc7 0x0c
818 0x0a 0x68 0xc8 0x4c
819 0x2d 0xac 0xc9 0x0c
820 0x4f 0x7c 0xca 0x4c
821
822 # CHECK: ld1.8b { v1 }, [x2], x3
823 # CHECK: ld1.16b { v2, v3 }, [x2], x4
824 # CHECK: ld1.4h { v4, v5, v6 }, [x3], x5
825 # CHECK: ld1.8h { v7, v8, v9, v10 }, [x4], x6
826 # CHECK: ld1.2s { v12, v13 }, [x0], x7
827 # CHECK: ld1.4s { v10, v11, v12 }, [x0], x8
828 # CHECK: ld1.1d { v13, v14 }, [x1], x9
829 # CHECK: ld1.2d { v15 }, [x2], x10
830
831 0x41 0x70 0x83 0x0c
832 0x42 0xa0 0x84 0x4c
833 0x64 0x64 0x85 0x0c
834 0x87 0x24 0x86 0x4c
835 0x0c 0xa8 0x87 0x0c
836 0x0a 0x68 0x88 0x4c
837 0x2d 0xac 0x89 0x0c
838 0x4f 0x7c 0x8a 0x4c
839
840 # CHECK: st1.8b { v1 }, [x2], x3
841 # CHECK: st1.16b { v2, v3 }, [x2], x4
842 # CHECK: st1.4h { v4, v5, v6 }, [x3], x5
843 # CHECK: st1.8h { v7, v8, v9, v10 }, [x4], x6
844 # CHECK: st1.2s { v12, v13 }, [x0], x7
845 # CHECK: st1.4s { v10, v11, v12 }, [x0], x8
846 # CHECK: st1.1d { v13, v14 }, [x1], x9
847 # CHECK: st1.2d { v15 }, [x2], x10
848
849 0x41 0x70 0x9f 0x0c
850 0x41 0xa0 0x9f 0x0c
851 0x41 0x60 0x9f 0x0c
852 0x41 0x20 0x9f 0x0c
853 0x42 0x70 0x9f 0x4c
854 0x42 0xa0 0x9f 0x4c
855 0x42 0x60 0x9f 0x4c
856 0x42 0x20 0x9f 0x4c
857 0x64 0x74 0x9f 0x0c
858 0x64 0xa4 0x9f 0x0c
859 0x64 0x64 0x9f 0x0c
860 0x64 0x24 0x9f 0x0c
861 0x87 0x74 0x9f 0x4c
862 0x87 0xa4 0x9f 0x4c
863 0x87 0x64 0x9f 0x4c
864 0x87 0x24 0x9f 0x4c
865 0x0c 0x78 0x9f 0x0c
866 0x0c 0xa8 0x9f 0x0c
867 0x0c 0x68 0x9f 0x0c
868 0x0c 0x28 0x9f 0x0c
869 0x0a 0x78 0x9f 0x4c
870 0x0a 0xa8 0x9f 0x4c
871 0x0a 0x68 0x9f 0x4c
872 0x0a 0x28 0x9f 0x4c
873 0x2d 0x7c 0x9f 0x0c
874 0x2d 0xac 0x9f 0x0c
875 0x2d 0x6c 0x9f 0x0c
876 0x2d 0x2c 0x9f 0x0c
877 0x4f 0x7c 0x9f 0x4c
878 0x4f 0xac 0x9f 0x4c
879 0x4f 0x6c 0x9f 0x4c
880 0x4f 0x2c 0x9f 0x4c
881
882 # CHECK: st1.8b { v1 }, [x2], #8
883 # CHECK: st1.8b { v1, v2 }, [x2], #16
884 # CHECK: st1.8b { v1, v2, v3 }, [x2], #24
885 # CHECK: st1.8b { v1, v2, v3, v4 }, [x2], #32
886 # CHECK: st1.16b { v2 }, [x2], #16
887 # CHECK: st1.16b { v2, v3 }, [x2], #32
888 # CHECK: st1.16b { v2, v3, v4 }, [x2], #48
889 # CHECK: st1.16b { v2, v3, v4, v5 }, [x2], #64
890 # CHECK: st1.4h { v4 }, [x3], #8
891 # CHECK: st1.4h { v4, v5 }, [x3], #16
892 # CHECK: st1.4h { v4, v5, v6 }, [x3], #24
893 # CHECK: st1.4h { v4, v5, v6, v7 }, [x3], #32
894 # CHECK: st1.8h { v7 }, [x4], #16
895 # CHECK: st1.8h { v7, v8 }, [x4], #32
896 # CHECK: st1.8h { v7, v8, v9 }, [x4], #48
897 # CHECK: st1.8h { v7, v8, v9, v10 }, [x4], #64
898 # CHECK: st1.2s { v12 }, [x0], #8
899 # CHECK: st1.2s { v12, v13 }, [x0], #16
900 # CHECK: st1.2s { v12, v13, v14 }, [x0], #24
901 # CHECK: st1.2s { v12, v13, v14, v15 }, [x0], #32
902 # CHECK: st1.4s { v10 }, [x0], #16
903 # CHECK: st1.4s { v10, v11 }, [x0], #32
904 # CHECK: st1.4s { v10, v11, v12 }, [x0], #48
905 # CHECK: st1.4s { v10, v11, v12, v13 }, [x0], #64
906 # CHECK: st1.1d { v13 }, [x1], #8
907 # CHECK: st1.1d { v13, v14 }, [x1], #16
908 # CHECK: st1.1d { v13, v14, v15 }, [x1], #24
909 # CHECK: st1.1d { v13, v14, v15, v16 }, [x1], #32
910 # CHECK: st1.2d { v15 }, [x2], #16
911 # CHECK: st1.2d { v15, v16 }, [x2], #32
912 # CHECK: st1.2d { v15, v16, v17 }, [x2], #48
913 # CHECK: st1.2d { v15, v16, v17, v18 }, [x2], #64
914
915 0x21 0xc0 0x40 0x0d
916 0x21 0xc0 0xc2 0x0d
917 0x64 0xc4 0x40 0x0d
918 0x64 0xc4 0xc5 0x0d
919 0xa9 0xc8 0x40 0x0d
920 0xa9 0xc8 0xc6 0x0d
921 0xec 0xcc 0x40 0x0d
922 0xec 0xcc 0xc8 0x0d
923
924 # CHECK: ld1r.8b { v1 }, [x1]
925 # CHECK: ld1r.8b { v1 }, [x1], x2
926 # CHECK: ld1r.4h { v4 }, [x3]
927 # CHECK: ld1r.4h { v4 }, [x3], x5
928 # CHECK: ld1r.2s { v9 }, [x5]
929 # CHECK: ld1r.2s { v9 }, [x5], x6
930 # CHECK: ld1r.1d { v12 }, [x7]
931 # CHECK: ld1r.1d { v12 }, [x7], x8
932
933 0x21 0xc0 0xdf 0x0d
934 0x21 0xc4 0xdf 0x0d
935 0x21 0xc8 0xdf 0x0d
936 0x21 0xcc 0xdf 0x0d
937
938 # CHECK: ld1r.8b { v1 }, [x1], #1
939 # CHECK: ld1r.4h { v1 }, [x1], #2
940 # CHECK: ld1r.2s { v1 }, [x1], #4
941 # CHECK: ld1r.1d { v1 }, [x1], #8
942
943 0x45 0x80 0x40 0x4c
944 0x0a 0x88 0x40 0x0c
945
946 # CHECK: ld2.16b { v5, v6 }, [x2]
947 # CHECK: ld2.2s { v10, v11 }, [x0]
948
949 0x45 0x80 0x00 0x4c
950 0x0a 0x88 0x00 0x0c
951
952 # CHECK: st2.16b { v5, v6 }, [x2]
953 # CHECK: st2.2s { v10, v11 }, [x0]
954
955 0x61 0x08 0x20 0x0d
956 0x82 0x84 0x20 0x4d
957 0xc3 0x50 0x20 0x0d
958 0xe4 0x90 0x20 0x4d
959
960 # CHECK: st2.b { v1, v2 }[2], [x3]
961 # CHECK: st2.d { v2, v3 }[1], [x4]
962 # CHECK: st2.h { v3, v4 }[2], [x6]
963 # CHECK: st2.s { v4, v5 }[3], [x7]
964
965 0x61 0x08 0xbf 0x0d
966 0x82 0x84 0xbf 0x4d
967 0xa3 0x58 0xbf 0x0d
968 0xc4 0x80 0xbf 0x4d
969
970 # CHECK: st2.b { v1, v2 }[2], [x3], #2
971 # CHECK: st2.d { v2, v3 }[1], [x4], #16
972 # CHECK: st2.h { v3, v4 }[3], [x5], #4
973 # CHECK: st2.s { v4, v5 }[2], [x6], #8
974
975 0x61 0x08 0x60 0x0d
976 0x82 0x84 0x60 0x4d
977 0xc3 0x50 0x60 0x0d
978 0xe4 0x90 0x60 0x4d
979
980 # CHECK: ld2.b { v1, v2 }[2], [x3]
981 # CHECK: ld2.d { v2, v3 }[1], [x4]
982 # CHECK: ld2.h { v3, v4 }[2], [x6]
983 # CHECK: ld2.s { v4, v5 }[3], [x7]
984
985 0x61 0x08 0xff 0x0d
986 0x82 0x84 0xff 0x4d
987 0xa3 0x58 0xff 0x0d
988 0xc4 0x80 0xff 0x4d
989
990 # CHECK: ld2.b { v1, v2 }[2], [x3], #2
991 # CHECK: ld2.d { v2, v3 }[1], [x4], #16
992 # CHECK: ld2.h { v3, v4 }[3], [x5], #4
993 # CHECK: ld2.s { v4, v5 }[2], [x6], #8
994
995 0x61 0x08 0xe4 0x0d
996 0x82 0x84 0xe6 0x4d
997 0xa3 0x58 0xe8 0x0d
998 0xc4 0x80 0xea 0x4d
999
1000 # CHECK: ld2.b { v1, v2 }[2], [x3], x4
1001 # CHECK: ld2.d { v2, v3 }[1], [x4], x6
1002 # CHECK: ld2.h { v3, v4 }[3], [x5], x8
1003 # CHECK: ld2.s { v4, v5 }[2], [x6], x10
1004
1005 0x61 0x08 0xa4 0x0d
1006 0x82 0x84 0xa6 0x4d
1007 0xa3 0x58 0xa8 0x0d
1008 0xc4 0x80 0xaa 0x4d
1009
1010 # CHECK: st2.b { v1, v2 }[2], [x3], x4
1011 # CHECK: st2.d { v2, v3 }[1], [x4], x6
1012 # CHECK: st2.h { v3, v4 }[3], [x5], x8
1013 # CHECK: st2.s { v4, v5 }[2], [x6], x10
1014
1015 0x64 0x84 0xc5 0x0c
1016 0x0c 0x88 0xc7 0x0c
1017
1018 # CHECK: ld2.4h { v4, v5 }, [x3], x5
1019 # CHECK: ld2.2s { v12, v13 }, [x0], x7
1020
1021 0x00 0x80 0xdf 0x0c
1022 0x00 0x80 0xdf 0x4c
1023 0x00 0x84 0xdf 0x0c
1024 0x00 0x84 0xdf 0x4c
1025 0x00 0x88 0xdf 0x0c
1026 0x00 0x88 0xdf 0x4c
1027 0x00 0x8c 0xdf 0x4c
1028
1029 # CHECK: ld2.8b { v0, v1 }, [x0], #16
1030 # CHECK: ld2.16b { v0, v1 }, [x0], #32
1031 # CHECK: ld2.4h { v0, v1 }, [x0], #16
1032 # CHECK: ld2.8h { v0, v1 }, [x0], #32
1033 # CHECK: ld2.2s { v0, v1 }, [x0], #16
1034 # CHECK: ld2.4s { v0, v1 }, [x0], #32
1035 # CHECK: ld2.2d { v0, v1 }, [x0], #32
1036
1037 0x64 0x84 0x85 0x0c
1038 0x0c 0x88 0x87 0x0c
1039
1040 # CHECK: st2.4h { v4, v5 }, [x3], x5
1041 # CHECK: st2.2s { v12, v13 }, [x0], x7
1042
1043 0x00 0x80 0x9f 0x0c
1044 0x00 0x80 0x9f 0x4c
1045 0x00 0x84 0x9f 0x0c
1046 0x00 0x84 0x9f 0x4c
1047 0x00 0x88 0x9f 0x0c
1048 0x00 0x88 0x9f 0x4c
1049 0x00 0x8c 0x9f 0x4c
1050
1051 # CHECK: st2.8b { v0, v1 }, [x0], #16
1052 # CHECK: st2.16b { v0, v1 }, [x0], #32
1053 # CHECK: st2.4h { v0, v1 }, [x0], #16
1054 # CHECK: st2.8h { v0, v1 }, [x0], #32
1055 # CHECK: st2.2s { v0, v1 }, [x0], #16
1056 # CHECK: st2.4s { v0, v1 }, [x0], #32
1057 # CHECK: st2.2d { v0, v1 }, [x0], #32
1058
1059 0x21 0xc0 0x60 0x0d
1060 0x21 0xc0 0xe2 0x0d
1061 0x21 0xc0 0x60 0x4d
1062 0x21 0xc0 0xe2 0x4d
1063 0x21 0xc4 0x60 0x0d
1064 0x21 0xc4 0xe2 0x0d
1065 0x21 0xc4 0x60 0x4d
1066 0x21 0xc4 0xe2 0x4d
1067 0x21 0xc8 0x60 0x0d
1068 0x21 0xc8 0xe2 0x0d
1069 0x21 0xcc 0x60 0x4d
1070 0x21 0xcc 0xe2 0x4d
1071 0x21 0xcc 0x60 0x0d
1072 0x21 0xcc 0xe2 0x0d
1073
1074 # CHECK: ld2r.8b { v1, v2 }, [x1]
1075 # CHECK: ld2r.8b { v1, v2 }, [x1], x2
1076 # CHECK: ld2r.16b { v1, v2 }, [x1]
1077 # CHECK: ld2r.16b { v1, v2 }, [x1], x2
1078 # CHECK: ld2r.4h { v1, v2 }, [x1]
1079 # CHECK: ld2r.4h { v1, v2 }, [x1], x2
1080 # CHECK: ld2r.8h { v1, v2 }, [x1]
1081 # CHECK: ld2r.8h { v1, v2 }, [x1], x2
1082 # CHECK: ld2r.2s { v1, v2 }, [x1]
1083 # CHECK: ld2r.2s { v1, v2 }, [x1], x2
1084 # CHECK: ld2r.2d { v1, v2 }, [x1]
1085 # CHECK: ld2r.2d { v1, v2 }, [x1], x2
1086 # CHECK: ld2r.1d { v1, v2 }, [x1]
1087 # CHECK: ld2r.1d { v1, v2 }, [x1], x2
1088
1089 0x21 0xc0 0xff 0x0d
1090 0x21 0xc0 0xff 0x4d
1091 0x21 0xc4 0xff 0x0d
1092 0x21 0xc4 0xff 0x4d
1093 0x21 0xc8 0xff 0x0d
1094 0x21 0xcc 0xff 0x4d
1095 0x21 0xcc 0xff 0x0d
1096
1097 # CHECK: ld2r.8b { v1, v2 }, [x1], #2
1098 # CHECK: ld2r.16b { v1, v2 }, [x1], #2
1099 # CHECK: ld2r.4h { v1, v2 }, [x1], #4
1100 # CHECK: ld2r.8h { v1, v2 }, [x1], #4
1101 # CHECK: ld2r.2s { v1, v2 }, [x1], #8
1102 # CHECK: ld2r.2d { v1, v2 }, [x1], #16
1103 # CHECK: ld2r.1d { v1, v2 }, [x1], #16
1104
1105 0x21 0x40 0x40 0x0c
1106 0x45 0x40 0x40 0x4c
1107 0x0a 0x48 0x40 0x0c
1108
1109 # CHECK: ld3.8b { v1, v2, v3 }, [x1]
1110 # CHECK: ld3.16b { v5, v6, v7 }, [x2]
1111 # CHECK: ld3.2s { v10, v11, v12 }, [x0]
1112
1113 0x21 0x40 0x00 0x0c
1114 0x45 0x40 0x00 0x4c
1115 0x0a 0x48 0x00 0x0c
1116
1117 # CHECK: st3.8b { v1, v2, v3 }, [x1]
1118 # CHECK: st3.16b { v5, v6, v7 }, [x2]
1119 # CHECK: st3.2s { v10, v11, v12 }, [x0]
1120
1121 0x61 0x28 0xc4 0x0d
1122 0x82 0xa4 0xc5 0x4d
1123 0xa3 0x78 0xc6 0x0d
1124 0xc4 0xa0 0xc7 0x4d
1125
1126 # CHECK: ld3.b { v1, v2, v3 }[2], [x3], x4
1127 # CHECK: ld3.d { v2, v3, v4 }[1], [x4], x5
1128 # CHECK: ld3.h { v3, v4, v5 }[3], [x5], x6
1129 # CHECK: ld3.s { v4, v5, v6 }[2], [x6], x7
1130
1131 0x61 0x28 0x84 0x0d
1132 0x82 0xa4 0x85 0x4d
1133 0xa3 0x78 0x86 0x0d
1134 0xc4 0xa0 0x87 0x4d
1135
1136 # CHECK: st3.b { v1, v2, v3 }[2], [x3], x4
1137 # CHECK: st3.d { v2, v3, v4 }[1], [x4], x5
1138 # CHECK: st3.h { v3, v4, v5 }[3], [x5], x6
1139 # CHECK: st3.s { v4, v5, v6 }[2], [x6], x7
1140
1141 0x61 0x28 0x9f 0x0d
1142 0x82 0xa4 0x9f 0x4d
1143 0xa3 0x78 0x9f 0x0d
1144 0xc4 0xa0 0x9f 0x4d
1145
1146 # CHECK: st3.b { v1, v2, v3 }[2], [x3], #3
1147 # CHECK: st3.d { v2, v3, v4 }[1], [x4], #24
1148 # CHECK: st3.h { v3, v4, v5 }[3], [x5], #6
1149 # CHECK: st3.s { v4, v5, v6 }[2], [x6], #12
1150
1151 0x41 0x40 0xc3 0x0c
1152 0x42 0x40 0xc4 0x4c
1153 0x64 0x44 0xc5 0x0c
1154 0x87 0x44 0xc6 0x4c
1155 0x0c 0x48 0xc7 0x0c
1156 0x0a 0x48 0xc8 0x4c
1157 0x4f 0x4c 0xca 0x4c
1158
1159 # CHECK: ld3.8b { v1, v2, v3 }, [x2], x3
1160 # CHECK: ld3.16b { v2, v3, v4 }, [x2], x4
1161 # CHECK: ld3.4h { v4, v5, v6 }, [x3], x5
1162 # CHECK: ld3.8h { v7, v8, v9 }, [x4], x6
1163 # CHECK: ld3.2s { v12, v13, v14 }, [x0], x7
1164 # CHECK: ld3.4s { v10, v11, v12 }, [x0], x8
1165 # CHECK: ld3.2d { v15, v16, v17 }, [x2], x10
1166
1167 0x00 0x40 0xdf 0x0c
1168 0x00 0x40 0xdf 0x4c
1169 0x00 0x44 0xdf 0x0c
1170 0x00 0x44 0xdf 0x4c
1171 0x00 0x48 0xdf 0x0c
1172 0x00 0x48 0xdf 0x4c
1173 0x00 0x4c 0xdf 0x4c
1174
1175 # CHECK: ld3.8b { v0, v1, v2 }, [x0], #24
1176 # CHECK: ld3.16b { v0, v1, v2 }, [x0], #48
1177 # CHECK: ld3.4h { v0, v1, v2 }, [x0], #24
1178 # CHECK: ld3.8h { v0, v1, v2 }, [x0], #48
1179 # CHECK: ld3.2s { v0, v1, v2 }, [x0], #24
1180 # CHECK: ld3.4s { v0, v1, v2 }, [x0], #48
1181 # CHECK: ld3.2d { v0, v1, v2 }, [x0], #48
1182
1183 0x41 0x40 0x83 0x0c
1184 0x42 0x40 0x84 0x4c
1185 0x64 0x44 0x85 0x0c
1186 0x87 0x44 0x86 0x4c
1187 0x0c 0x48 0x87 0x0c
1188 0x0a 0x48 0x88 0x4c
1189 0x4f 0x4c 0x8a 0x4c
1190
1191 # CHECK: st3.8b { v1, v2, v3 }, [x2], x3
1192 # CHECK: st3.16b { v2, v3, v4 }, [x2], x4
1193 # CHECK: st3.4h { v4, v5, v6 }, [x3], x5
1194 # CHECK: st3.8h { v7, v8, v9 }, [x4], x6
1195 # CHECK: st3.2s { v12, v13, v14 }, [x0], x7
1196 # CHECK: st3.4s { v10, v11, v12 }, [x0], x8
1197 # CHECK: st3.2d { v15, v16, v17 }, [x2], x10
1198
1199 0x00 0x40 0x9f 0x0c
1200 0x00 0x40 0x9f 0x4c
1201 0x00 0x44 0x9f 0x0c
1202 0x00 0x44 0x9f 0x4c
1203 0x00 0x48 0x9f 0x0c
1204 0x00 0x48 0x9f 0x4c
1205 0x00 0x4c 0x9f 0x4c
1206
1207 # CHECK: st3.8b { v0, v1, v2 }, [x0], #24
1208 # CHECK: st3.16b { v0, v1, v2 }, [x0], #48
1209 # CHECK: st3.4h { v0, v1, v2 }, [x0], #24
1210 # CHECK: st3.8h { v0, v1, v2 }, [x0], #48
1211 # CHECK: st3.2s { v0, v1, v2 }, [x0], #24
1212 # CHECK: st3.4s { v0, v1, v2 }, [x0], #48
1213 # CHECK: st3.2d { v0, v1, v2 }, [x0], #48
1214
1215 0x61 0x28 0x40 0x0d
1216 0x82 0xa4 0x40 0x4d
1217 0xc3 0x70 0x40 0x0d
1218 0xe4 0xb0 0x40 0x4d
1219
1220 # CHECK: ld3.b { v1, v2, v3 }[2], [x3]
1221 # CHECK: ld3.d { v2, v3, v4 }[1], [x4]
1222 # CHECK: ld3.h { v3, v4, v5 }[2], [x6]
1223 # CHECK: ld3.s { v4, v5, v6 }[3], [x7]
1224
1225 0x61 0x28 0xdf 0x0d
1226 0x82 0xa4 0xdf 0x4d
1227 0xa3 0x78 0xdf 0x0d
1228 0xc4 0xa0 0xdf 0x4d
1229
1230 # CHECK: ld3.b { v1, v2, v3 }[2], [x3], #3
1231 # CHECK: ld3.d { v2, v3, v4 }[1], [x4], #24
1232 # CHECK: ld3.h { v3, v4, v5 }[3], [x5], #6
1233 # CHECK: ld3.s { v4, v5, v6 }[2], [x6], #12
1234
1235 0x61 0x28 0x00 0x0d
1236 0x82 0xa4 0x00 0x4d
1237 0xc3 0x70 0x00 0x0d
1238 0xe4 0xb0 0x00 0x4d
1239
1240 # CHECK: st3.b { v1, v2, v3 }[2], [x3]
1241 # CHECK: st3.d { v2, v3, v4 }[1], [x4]
1242 # CHECK: st3.h { v3, v4, v5 }[2], [x6]
1243 # CHECK: st3.s { v4, v5, v6 }[3], [x7]
1244
1245 0x21 0xe0 0x40 0x0d
1246 0x21 0xe0 0xc2 0x0d
1247 0x21 0xe0 0x40 0x4d
1248 0x21 0xe0 0xc2 0x4d
1249 0x21 0xe4 0x40 0x0d
1250 0x21 0xe4 0xc2 0x0d
1251 0x21 0xe4 0x40 0x4d
1252 0x21 0xe4 0xc2 0x4d
1253 0x21 0xe8 0x40 0x0d
1254 0x21 0xe8 0xc2 0x0d
1255 0x21 0xec 0x40 0x4d
1256 0x21 0xec 0xc2 0x4d
1257 0x21 0xec 0x40 0x0d
1258 0x21 0xec 0xc2 0x0d
1259
1260 # CHECK: ld3r.8b { v1, v2, v3 }, [x1]
1261 # CHECK: ld3r.8b { v1, v2, v3 }, [x1], x2
1262 # CHECK: ld3r.16b { v1, v2, v3 }, [x1]
1263 # CHECK: ld3r.16b { v1, v2, v3 }, [x1], x2
1264 # CHECK: ld3r.4h { v1, v2, v3 }, [x1]
1265 # CHECK: ld3r.4h { v1, v2, v3 }, [x1], x2
1266 # CHECK: ld3r.8h { v1, v2, v3 }, [x1]
1267 # CHECK: ld3r.8h { v1, v2, v3 }, [x1], x2
1268 # CHECK: ld3r.2s { v1, v2, v3 }, [x1]
1269 # CHECK: ld3r.2s { v1, v2, v3 }, [x1], x2
1270 # CHECK: ld3r.2d { v1, v2, v3 }, [x1]
1271 # CHECK: ld3r.2d { v1, v2, v3 }, [x1], x2
1272 # CHECK: ld3r.1d { v1, v2, v3 }, [x1]
1273 # CHECK: ld3r.1d { v1, v2, v3 }, [x1], x2
1274
1275 0x21 0xe0 0xdf 0x0d
1276 0x21 0xe0 0xdf 0x4d
1277 0x21 0xe4 0xdf 0x0d
1278 0x21 0xe4 0xdf 0x4d
1279 0x21 0xe8 0xdf 0x0d
1280 0x21 0xec 0xdf 0x4d
1281 0x21 0xec 0xdf 0x0d
1282
1283 # CHECK: ld3r.8b        { v1, v2, v3 }, [x1], #3
1284 # CHECK: ld3r.16b       { v1, v2, v3 }, [x1], #3
1285 # CHECK: ld3r.4h        { v1, v2, v3 }, [x1], #6
1286 # CHECK: ld3r.8h        { v1, v2, v3 }, [x1], #6
1287 # CHECK: ld3r.2s        { v1, v2, v3 }, [x1], #12
1288 # CHECK: ld3r.2d        { v1, v2, v3 }, [x1], #24
1289 # CHECK: ld3r.1d        { v1, v2, v3 }, [x1], #24
1290
1291 0x21 0x00 0x40 0x0c
1292 0x45 0x00 0x40 0x4c
1293 0x0a 0x08 0x40 0x0c
1294
1295 # CHECK: ld4.8b { v1, v2, v3, v4 }, [x1]
1296 # CHECK: ld4.16b { v5, v6, v7, v8 }, [x2]
1297 # CHECK: ld4.2s { v10, v11, v12, v13 }, [x0]
1298
1299 0x21 0x00 0x00 0x0c
1300 0x45 0x00 0x00 0x4c
1301 0x0a 0x08 0x00 0x0c
1302
1303 # CHECK: st4.8b { v1, v2, v3, v4 }, [x1]
1304 # CHECK: st4.16b { v5, v6, v7, v8 }, [x2]
1305 # CHECK: st4.2s { v10, v11, v12, v13 }, [x0]
1306
1307 0x61 0x28 0xe4 0x0d
1308 0x82 0xa4 0xe5 0x4d
1309 0xa3 0x78 0xe6 0x0d
1310 0xc4 0xa0 0xe7 0x4d
1311
1312 # CHECK: ld4.b { v1, v2, v3, v4 }[2], [x3], x4
1313 # CHECK: ld4.d { v2, v3, v4, v5 }[1], [x4], x5
1314 # CHECK: ld4.h { v3, v4, v5, v6 }[3], [x5], x6
1315 # CHECK: ld4.s { v4, v5, v6, v7 }[2], [x6], x7
1316
1317 0x61 0x28 0xff 0x0d
1318 0x82 0xa4 0xff 0x4d
1319 0xa3 0x78 0xff 0x0d
1320 0xc4 0xa0 0xff 0x4d
1321
1322 # CHECK: ld4.b { v1, v2, v3, v4 }[2], [x3], #4
1323 # CHECK: ld4.d { v2, v3, v4, v5 }[1], [x4], #32
1324 # CHECK: ld4.h { v3, v4, v5, v6 }[3], [x5], #8
1325 # CHECK: ld4.s { v4, v5, v6, v7 }[2], [x6], #16
1326
1327 0x61 0x28 0xa4 0x0d
1328 0x82 0xa4 0xa5 0x4d
1329 0xa3 0x78 0xa6 0x0d
1330 0xc4 0xa0 0xa7 0x4d
1331
1332 # CHECK: st4.b { v1, v2, v3, v4 }[2], [x3], x4
1333 # CHECK: st4.d { v2, v3, v4, v5 }[1], [x4], x5
1334 # CHECK: st4.h { v3, v4, v5, v6 }[3], [x5], x6
1335 # CHECK: st4.s { v4, v5, v6, v7 }[2], [x6], x7
1336
1337 0x61 0x28 0xbf 0x0d
1338 0x82 0xa4 0xbf 0x4d
1339 0xa3 0x78 0xbf 0x0d
1340 0xc4 0xa0 0xbf 0x4d
1341
1342 # CHECK: st4.b { v1, v2, v3, v4 }[2], [x3], #4
1343 # CHECK: st4.d { v2, v3, v4, v5 }[1], [x4], #32
1344 # CHECK: st4.h { v3, v4, v5, v6 }[3], [x5], #8
1345 # CHECK: st4.s { v4, v5, v6, v7 }[2], [x6], #16
1346
1347 0x41 0x00 0xc3 0x0c
1348 0x42 0x00 0xc4 0x4c
1349 0x64 0x04 0xc5 0x0c
1350 0x87 0x04 0xc6 0x4c
1351 0x0c 0x08 0xc7 0x0c
1352 0x0a 0x08 0xc8 0x4c
1353 0x4f 0x0c 0xca 0x4c
1354
1355 # CHECK: ld4.8b { v1, v2, v3, v4 }, [x2], x3
1356 # CHECK: ld4.16b { v2, v3, v4, v5 }, [x2], x4
1357 # CHECK: ld4.4h { v4, v5, v6, v7 }, [x3], x5
1358 # CHECK: ld4.8h { v7, v8, v9, v10 }, [x4], x6
1359 # CHECK: ld4.2s { v12, v13, v14, v15 }, [x0], x7
1360 # CHECK: ld4.4s { v10, v11, v12, v13 }, [x0], x8
1361 # CHECK: ld4.2d { v15, v16, v17, v18 }, [x2], x10
1362
1363 0x00 0x00 0xdf 0x0c
1364 0x00 0x00 0xdf 0x4c
1365 0x00 0x04 0xdf 0x0c
1366 0x00 0x04 0xdf 0x4c
1367 0x00 0x08 0xdf 0x0c
1368 0x00 0x08 0xdf 0x4c
1369 0x00 0x0c 0xdf 0x4c
1370
1371 # CHECK: ld4.8b { v0, v1, v2, v3 }, [x0], #32
1372 # CHECK: ld4.16b { v0, v1, v2, v3 }, [x0], #64
1373 # CHECK: ld4.4h { v0, v1, v2, v3 }, [x0], #32
1374 # CHECK: ld4.8h { v0, v1, v2, v3 }, [x0], #64
1375 # CHECK: ld4.2s { v0, v1, v2, v3 }, [x0], #32
1376 # CHECK: ld4.4s { v0, v1, v2, v3 }, [x0], #64
1377 # CHECK: ld4.2d { v0, v1, v2, v3 }, [x0], #64
1378
1379 0x00 0x00 0x9f 0x0c
1380 0x00 0x00 0x9f 0x4c
1381 0x00 0x04 0x9f 0x0c
1382 0x00 0x04 0x9f 0x4c
1383 0x00 0x08 0x9f 0x0c
1384 0x00 0x08 0x9f 0x4c
1385 0x00 0x0c 0x9f 0x4c
1386
1387 # CHECK: st4.8b { v0, v1, v2, v3 }, [x0], #32
1388 # CHECK: st4.16b { v0, v1, v2, v3 }, [x0], #64
1389 # CHECK: st4.4h { v0, v1, v2, v3 }, [x0], #32
1390 # CHECK: st4.8h { v0, v1, v2, v3 }, [x0], #64
1391 # CHECK: st4.2s { v0, v1, v2, v3 }, [x0], #32
1392 # CHECK: st4.4s { v0, v1, v2, v3 }, [x0], #64
1393 # CHECK: st4.2d { v0, v1, v2, v3 }, [x0], #64
1394
1395 0x41 0x00 0x83 0x0c
1396 0x42 0x00 0x84 0x4c
1397 0x64 0x04 0x85 0x0c
1398 0x87 0x04 0x86 0x4c
1399 0x0c 0x08 0x87 0x0c
1400 0x0a 0x08 0x88 0x4c
1401 0x4f 0x0c 0x8a 0x4c
1402
1403 # CHECK: st4.8b { v1, v2, v3, v4 }, [x2], x3
1404 # CHECK: st4.16b { v2, v3, v4, v5 }, [x2], x4
1405 # CHECK: st4.4h { v4, v5, v6, v7 }, [x3], x5
1406 # CHECK: st4.8h { v7, v8, v9, v10 }, [x4], x6
1407 # CHECK: st4.2s { v12, v13, v14, v15 }, [x0], x7
1408 # CHECK: st4.4s { v10, v11, v12, v13 }, [x0], x8
1409 # CHECK: st4.2d { v15, v16, v17, v18 }, [x2], x10
1410
1411 0x61 0x28 0x60 0x0d
1412 0x82 0xa4 0x60 0x4d
1413 0xc3 0x70 0x60 0x0d
1414 0xe4 0xb0 0x60 0x4d
1415
1416 # CHECK: ld4.b { v1, v2, v3, v4 }[2], [x3]
1417 # CHECK: ld4.d { v2, v3, v4, v5 }[1], [x4]
1418 # CHECK: ld4.h { v3, v4, v5, v6 }[2], [x6]
1419 # CHECK: ld4.s { v4, v5, v6, v7 }[3], [x7]
1420
1421 0x61 0x28 0x20 0x0d
1422 0x82 0xa4 0x20 0x4d
1423 0xc3 0x70 0x20 0x0d
1424 0xe4 0xb0 0x20 0x4d
1425
1426 # CHECK: st4.b { v1, v2, v3, v4 }[2], [x3]
1427 # CHECK: st4.d { v2, v3, v4, v5 }[1], [x4]
1428 # CHECK: st4.h { v3, v4, v5, v6 }[2], [x6]
1429 # CHECK: st4.s { v4, v5, v6, v7 }[3], [x7]
1430
1431 0x21 0xe0 0x60 0x0d
1432 0x21 0xe0 0xe2 0x0d
1433 0x21 0xe0 0x60 0x4d
1434 0x21 0xe0 0xe2 0x4d
1435 0x21 0xe4 0x60 0x0d
1436 0x21 0xe4 0xe2 0x0d
1437 0x21 0xe4 0x60 0x4d
1438 0x21 0xe4 0xe2 0x4d
1439 0x21 0xe8 0x60 0x0d
1440 0x21 0xe8 0xe2 0x0d
1441 0x21 0xec 0x60 0x4d
1442 0x21 0xec 0xe2 0x4d
1443 0x21 0xec 0x60 0x0d
1444 0x21 0xec 0xe2 0x0d
1445
1446 # CHECK: ld4r.8b { v1, v2, v3, v4 }, [x1]
1447 # CHECK: ld4r.8b { v1, v2, v3, v4 }, [x1], x2
1448 # CHECK: ld4r.16b { v1, v2, v3, v4 }, [x1]
1449 # CHECK: ld4r.16b { v1, v2, v3, v4 }, [x1], x2
1450 # CHECK: ld4r.4h { v1, v2, v3, v4 }, [x1]
1451 # CHECK: ld4r.4h { v1, v2, v3, v4 }, [x1], x2
1452 # CHECK: ld4r.8h { v1, v2, v3, v4 }, [x1]
1453 # CHECK: ld4r.8h { v1, v2, v3, v4 }, [x1], x2
1454 # CHECK: ld4r.2s { v1, v2, v3, v4 }, [x1]
1455 # CHECK: ld4r.2s { v1, v2, v3, v4 }, [x1], x2
1456 # CHECK: ld4r.2d { v1, v2, v3, v4 }, [x1]
1457 # CHECK: ld4r.2d { v1, v2, v3, v4 }, [x1], x2
1458 # CHECK: ld4r.1d { v1, v2, v3, v4 }, [x1]
1459 # CHECK: ld4r.1d { v1, v2, v3, v4 }, [x1], x2
1460
1461 0x21 0xe0 0xff 0x0d
1462 0x21 0xe0 0xff 0x4d
1463 0x21 0xe4 0xff 0x0d
1464 0x21 0xe4 0xff 0x4d
1465 0x21 0xe8 0xff 0x0d
1466 0x21 0xec 0xff 0x4d
1467 0x21 0xec 0xff 0x0d
1468
1469 # CHECK: ld4r.8b        { v1, v2, v3, v4 }, [x1], #4
1470 # CHECK: ld4r.16b       { v1, v2, v3, v4 }, [x1], #4
1471 # CHECK: ld4r.4h        { v1, v2, v3, v4 }, [x1], #8
1472 # CHECK: ld4r.8h        { v1, v2, v3, v4 }, [x1], #8
1473 # CHECK: ld4r.2s        { v1, v2, v3, v4 }, [x1], #16
1474 # CHECK: ld4r.2d        { v1, v2, v3, v4 }, [x1], #32
1475 # CHECK: ld4r.1d        { v1, v2, v3, v4 }, [x1], #32
1476
1477 0x20 0xe4 0x00 0x2f
1478 0x20 0xe4 0x00 0x6f
1479 0x20 0xe4 0x00 0x0f
1480 0x20 0xe4 0x00 0x4f
1481
1482 # CHECK: movi     d0, #0x000000000000ff
1483 # CHECK: movi.2d  v0, #0x000000000000ff
1484 # CHECK: movi.8b  v0, #0x1
1485 # CHECK: movi.16b v0, #0x1
1486
1487 0x20 0x04 0x00 0x0f
1488 0x20 0x24 0x00 0x0f
1489 0x20 0x44 0x00 0x0f
1490 0x20 0x64 0x00 0x0f
1491
1492 # CHECK: movi.2s v0, #0x1
1493 # CHECK: movi.2s v0, #0x1, lsl #8
1494 # CHECK: movi.2s v0, #0x1, lsl #16
1495 # CHECK: movi.2s v0, #0x1, lsl #24
1496
1497 0x20 0x04 0x00 0x4f
1498 0x20 0x24 0x00 0x4f
1499 0x20 0x44 0x00 0x4f
1500 0x20 0x64 0x00 0x4f
1501
1502 # CHECK: movi.4s v0, #0x1
1503 # CHECK: movi.4s v0, #0x1, lsl #8
1504 # CHECK: movi.4s v0, #0x1, lsl #16
1505 # CHECK: movi.4s v0, #0x1, lsl #24
1506
1507 0x20 0x84 0x00 0x0f
1508 0x20 0xa4 0x00 0x0f
1509
1510 # CHECK: movi.4h v0, #0x1
1511 # CHECK: movi.4h v0, #0x1, lsl #8
1512
1513 0x20 0x84 0x00 0x4f
1514 0x20 0xa4 0x00 0x4f
1515
1516 # CHECK: movi.8h v0, #0x1
1517 # CHECK: movi.8h v0, #0x1, lsl #8
1518
1519 0x20 0x04 0x00 0x2f
1520 0x20 0x24 0x00 0x2f
1521 0x20 0x44 0x00 0x2f
1522 0x20 0x64 0x00 0x2f
1523
1524 # CHECK: mvni.2s v0, #0x1
1525 # CHECK: mvni.2s v0, #0x1, lsl #8
1526 # CHECK: mvni.2s v0, #0x1, lsl #16
1527 # CHECK: mvni.2s v0, #0x1, lsl #24
1528
1529 0x20 0x04 0x00 0x6f
1530 0x20 0x24 0x00 0x6f
1531 0x20 0x44 0x00 0x6f
1532 0x20 0x64 0x00 0x6f
1533
1534 # CHECK: mvni.4s v0, #0x1
1535 # CHECK: mvni.4s v0, #0x1, lsl #8
1536 # CHECK: mvni.4s v0, #0x1, lsl #16
1537 # CHECK: mvni.4s v0, #0x1, lsl #24
1538
1539 0x20 0x84 0x00 0x2f
1540 0x20 0xa4 0x00 0x2f
1541
1542 # CHECK: mvni.4h v0, #0x1
1543 # CHECK: mvni.4h v0, #0x1, lsl #8
1544
1545 0x20 0x84 0x00 0x6f
1546 0x20 0xa4 0x00 0x6f
1547
1548 # CHECK: mvni.8h v0, #0x1
1549 # CHECK: mvni.8h v0, #0x1, lsl #8
1550
1551 0x20 0xc4 0x00 0x2f
1552 0x20 0xd4 0x00 0x2f
1553 0x20 0xc4 0x00 0x6f
1554 0x20 0xd4 0x00 0x6f
1555
1556 # CHECK: mvni.2s v0, #0x1, msl #8
1557 # CHECK: mvni.2s v0, #0x1, msl #16
1558 # CHECK: mvni.4s v0, #0x1, msl #8
1559 # CHECK: mvni.4s v0, #0x1, msl #16
1560
1561 0x00 0x88 0x21 0x2e
1562 0x00 0x98 0x21 0x2e
1563 0x00 0x98 0xa1 0x2e
1564 0x00 0x98 0x21 0x0e
1565 0x00 0x88 0x21 0x0e
1566 0x00 0x88 0xa1 0x0e
1567 0x00 0x98 0xa1 0x0e
1568
1569 # CHECK: frinta.2s      v0, v0
1570 # CHECK: frintx.2s      v0, v0
1571 # CHECK: frinti.2s      v0, v0
1572 # CHECK: frintm.2s      v0, v0
1573 # CHECK: frintn.2s      v0, v0
1574 # CHECK: frintp.2s      v0, v0
1575 # CHECK: frintz.2s      v0, v0
1576
1577 #===-------------------------------------------------------------------------===
1578 # AdvSIMD scalar x index instructions
1579 #===-------------------------------------------------------------------------===
1580
1581 0x00 0x18 0xa0 0x5f
1582 0x00 0x18 0xc0 0x5f
1583 0x00 0x58 0xa0 0x5f
1584 0x00 0x58 0xc0 0x5f
1585 0x00 0x98 0xa0 0x7f
1586 0x00 0x98 0xc0 0x7f
1587 0x00 0x98 0xa0 0x5f
1588 0x00 0x98 0xc0 0x5f
1589 0x00 0x38 0x70 0x5f
1590 0x00 0x38 0xa0 0x5f
1591 0x00 0x78 0x70 0x5f
1592 0x00 0xc8 0x70 0x5f
1593 0x00 0xc8 0xa0 0x5f
1594 0x00 0xb8 0x70 0x5f
1595 0x00 0xb8 0xa0 0x5f
1596 0x00 0xd8 0x70 0x5f
1597 0x00 0xd8 0xa0 0x5f
1598
1599 # CHECK: fmla.s s0, s0, v0[3]
1600 # CHECK: fmla.d d0, d0, v0[1]
1601 # CHECK: fmls.s s0, s0, v0[3]
1602 # CHECK: fmls.d d0, d0, v0[1]
1603 # CHECK: fmulx.s        s0, s0, v0[3]
1604 # CHECK: fmulx.d        d0, d0, v0[1]
1605 # CHECK: fmul.s s0, s0, v0[3]
1606 # CHECK: fmul.d d0, d0, v0[1]
1607 # CHECK: sqdmlal.h      s0, h0, v0[7]
1608 # CHECK: sqdmlal.s      d0, s0, v0[3]
1609 # CHECK: sqdmlsl.h      s0, h0, v0[7]
1610 # CHECK: sqdmulh.h      h0, h0, v0[7]
1611 # CHECK: sqdmulh.s      s0, s0, v0[3]
1612 # CHECK: sqdmull.h      s0, h0, v0[7]
1613 # CHECK: sqdmull.s      d0, s0, v0[3]
1614 # CHECK: sqrdmulh.h     h0, h0, v0[7]
1615 # CHECK: sqrdmulh.s     s0, s0, v0[3]
1616
1617 #===-------------------------------------------------------------------------===
1618 # AdvSIMD vector x index instructions
1619 #===-------------------------------------------------------------------------===
1620
1621   0x00 0x10 0x80 0x0f
1622   0x00 0x10 0xa0 0x4f
1623   0x00 0x18 0xc0 0x4f
1624   0x00 0x50 0x80 0x0f
1625   0x00 0x50 0xa0 0x4f
1626   0x00 0x58 0xc0 0x4f
1627   0x00 0x90 0x80 0x2f
1628   0x00 0x90 0xa0 0x6f
1629   0x00 0x98 0xc0 0x6f
1630   0x00 0x90 0x80 0x0f
1631   0x00 0x90 0xa0 0x4f
1632   0x00 0x98 0xc0 0x4f
1633   0x00 0x00 0x40 0x2f
1634   0x00 0x00 0x50 0x6f
1635   0x00 0x08 0x80 0x2f
1636   0x00 0x08 0xa0 0x6f
1637   0x00 0x40 0x40 0x2f
1638   0x00 0x40 0x50 0x6f
1639   0x00 0x48 0x80 0x2f
1640   0x00 0x48 0xa0 0x6f
1641   0x00 0x80 0x40 0x0f
1642   0x00 0x80 0x50 0x4f
1643   0x00 0x88 0x80 0x0f
1644   0x00 0x88 0xa0 0x4f
1645   0x00 0x20 0x40 0x0f
1646   0x00 0x20 0x50 0x4f
1647   0x00 0x28 0x80 0x0f
1648   0x00 0x28 0xa0 0x4f
1649   0x00 0x60 0x40 0x0f
1650   0x00 0x60 0x50 0x4f
1651   0x00 0x68 0x80 0x0f
1652   0x00 0x68 0xa0 0x4f
1653   0x00 0xa0 0x40 0x0f
1654   0x00 0xa0 0x50 0x4f
1655   0x00 0xa8 0x80 0x0f
1656   0x00 0xa8 0xa0 0x4f
1657   0x00 0x30 0x40 0x0f
1658   0x00 0x30 0x50 0x4f
1659   0x00 0x38 0x80 0x0f
1660   0x00 0x38 0xa0 0x4f
1661   0x00 0x70 0x40 0x0f
1662   0x00 0x70 0x50 0x4f
1663   0x00 0x78 0x80 0x0f
1664   0x00 0x78 0xa0 0x4f
1665   0x00 0xc0 0x40 0x0f
1666   0x00 0xc0 0x50 0x4f
1667   0x00 0xc8 0x80 0x0f
1668   0x00 0xc8 0xa0 0x4f
1669   0x00 0xb0 0x40 0x0f
1670   0x00 0xb0 0x50 0x4f
1671   0x00 0xb8 0x80 0x0f
1672   0x00 0xb8 0xa0 0x4f
1673   0x00 0xd0 0x40 0x0f
1674   0x00 0xd0 0x50 0x4f
1675   0x00 0xd8 0x80 0x0f
1676   0x00 0xd8 0xa0 0x4f
1677   0x00 0x20 0x40 0x2f
1678   0x00 0x20 0x50 0x6f
1679   0x00 0x28 0x80 0x2f
1680   0x00 0x28 0xa0 0x6f
1681   0x00 0x60 0x40 0x2f
1682   0x00 0x60 0x50 0x6f
1683   0x00 0x68 0x80 0x2f
1684   0x00 0x68 0xa0 0x6f
1685   0x00 0xa0 0x40 0x2f
1686   0x00 0xa0 0x50 0x6f
1687   0x00 0xa8 0x80 0x2f
1688   0x00 0xa8 0xa0 0x6f
1689
1690 # CHECK: fmla.2s        v0, v0, v0[0]
1691 # CHECK: fmla.4s        v0, v0, v0[1]
1692 # CHECK: fmla.2d        v0, v0, v0[1]
1693 # CHECK: fmls.2s        v0, v0, v0[0]
1694 # CHECK: fmls.4s        v0, v0, v0[1]
1695 # CHECK: fmls.2d        v0, v0, v0[1]
1696 # CHECK: fmulx.2s       v0, v0, v0[0]
1697 # CHECK: fmulx.4s       v0, v0, v0[1]
1698 # CHECK: fmulx.2d       v0, v0, v0[1]
1699 # CHECK: fmul.2s        v0, v0, v0[0]
1700 # CHECK: fmul.4s        v0, v0, v0[1]
1701 # CHECK: fmul.2d        v0, v0, v0[1]
1702 # CHECK: mla.4h v0, v0, v0[0]
1703 # CHECK: mla.8h v0, v0, v0[1]
1704 # CHECK: mla.2s v0, v0, v0[2]
1705 # CHECK: mla.4s v0, v0, v0[3]
1706 # CHECK: mls.4h v0, v0, v0[0]
1707 # CHECK: mls.8h v0, v0, v0[1]
1708 # CHECK: mls.2s v0, v0, v0[2]
1709 # CHECK: mls.4s v0, v0, v0[3]
1710 # CHECK: mul.4h v0, v0, v0[0]
1711 # CHECK: mul.8h v0, v0, v0[1]
1712 # CHECK: mul.2s v0, v0, v0[2]
1713 # CHECK: mul.4s v0, v0, v0[3]
1714 # CHECK: smlal.4s       v0, v0, v0[0]
1715 # CHECK: smlal2.4s      v0, v0, v0[1]
1716 # CHECK: smlal.2d       v0, v0, v0[2]
1717 # CHECK: smlal2.2d      v0, v0, v0[3]
1718 # CHECK: smlsl.4s       v0, v0, v0[0]
1719 # CHECK: smlsl2.4s      v0, v0, v0[1]
1720 # CHECK: smlsl.2d       v0, v0, v0[2]
1721 # CHECK: smlsl2.2d      v0, v0, v0[3]
1722 # CHECK: smull.4s       v0, v0, v0[0]
1723 # CHECK: smull2.4s      v0, v0, v0[1]
1724 # CHECK: smull.2d       v0, v0, v0[2]
1725 # CHECK: smull2.2d      v0, v0, v0[3]
1726 # CHECK: sqdmlal.4s     v0, v0, v0[0]
1727 # CHECK: sqdmlal2.4s    v0, v0, v0[1]
1728 # CHECK: sqdmlal.2d     v0, v0, v0[2]
1729 # CHECK: sqdmlal2.2d    v0, v0, v0[3]
1730 # CHECK: sqdmlsl.4s     v0, v0, v0[0]
1731 # CHECK: sqdmlsl2.4s    v0, v0, v0[1]
1732 # CHECK: sqdmlsl.2d     v0, v0, v0[2]
1733 # CHECK: sqdmlsl2.2d    v0, v0, v0[3]
1734 # CHECK: sqdmulh.4h     v0, v0, v0[0]
1735 # CHECK: sqdmulh.8h     v0, v0, v0[1]
1736 # CHECK: sqdmulh.2s     v0, v0, v0[2]
1737 # CHECK: sqdmulh.4s     v0, v0, v0[3]
1738 # CHECK: sqdmull.4s     v0, v0, v0[0]
1739 # CHECK: sqdmull2.4s    v0, v0, v0[1]
1740 # CHECK: sqdmull.2d     v0, v0, v0[2]
1741 # CHECK: sqdmull2.2d    v0, v0, v0[3]
1742 # CHECK: sqrdmulh.4h    v0, v0, v0[0]
1743 # CHECK: sqrdmulh.8h    v0, v0, v0[1]
1744 # CHECK: sqrdmulh.2s    v0, v0, v0[2]
1745 # CHECK: sqrdmulh.4s    v0, v0, v0[3]
1746 # CHECK: umlal.4s       v0, v0, v0[0]
1747 # CHECK: umlal2.4s      v0, v0, v0[1]
1748 # CHECK: umlal.2d       v0, v0, v0[2]
1749 # CHECK: umlal2.2d      v0, v0, v0[3]
1750 # CHECK: umlsl.4s       v0, v0, v0[0]
1751 # CHECK: umlsl2.4s      v0, v0, v0[1]
1752 # CHECK: umlsl.2d       v0, v0, v0[2]
1753 # CHECK: umlsl2.2d      v0, v0, v0[3]
1754 # CHECK: umull.4s       v0, v0, v0[0]
1755 # CHECK: umull2.4s      v0, v0, v0[1]
1756 # CHECK: umull.2d       v0, v0, v0[2]
1757 # CHECK: umull2.2d      v0, v0, v0[3]
1758
1759
1760 #===-------------------------------------------------------------------------===
1761 # AdvSIMD scalar + shift instructions
1762 #===-------------------------------------------------------------------------===
1763
1764   0x00 0x54 0x41 0x5f
1765   0x00 0x54 0x41 0x7f
1766   0x00 0x9c 0x09 0x5f
1767   0x00 0x9c 0x12 0x5f
1768   0x00 0x9c 0x23 0x5f
1769   0x00 0x8c 0x09 0x7f
1770   0x00 0x8c 0x12 0x7f
1771   0x00 0x8c 0x23 0x7f
1772   0x00 0x64 0x09 0x7f
1773   0x00 0x64 0x12 0x7f
1774   0x00 0x64 0x23 0x7f
1775   0x00 0x64 0x44 0x7f
1776   0x00 0x74 0x09 0x5f
1777   0x00 0x74 0x12 0x5f
1778   0x00 0x74 0x23 0x5f
1779   0x00 0x74 0x44 0x5f
1780   0x00 0x94 0x09 0x5f
1781   0x00 0x94 0x12 0x5f
1782   0x00 0x94 0x23 0x5f
1783   0x00 0x84 0x09 0x7f
1784   0x00 0x84 0x12 0x7f
1785   0x00 0x84 0x23 0x7f
1786   0x00 0x44 0x41 0x7f
1787   0x00 0x24 0x41 0x5f
1788   0x00 0x34 0x41 0x5f
1789   0x00 0x04 0x41 0x5f
1790   0x00 0xe4 0x21 0x7f
1791   0x00 0xe4 0x42 0x7f
1792   0x00 0x9c 0x09 0x7f
1793   0x00 0x9c 0x12 0x7f
1794   0x00 0x9c 0x23 0x7f
1795   0x00 0x74 0x09 0x7f
1796   0x00 0x74 0x12 0x7f
1797   0x00 0x74 0x23 0x7f
1798   0x00 0x74 0x44 0x7f
1799   0x00 0x94 0x09 0x7f
1800   0x00 0x94 0x12 0x7f
1801   0x00 0x94 0x23 0x7f
1802   0x00 0x24 0x41 0x7f
1803   0x00 0x34 0x41 0x7f
1804   0x00 0x04 0x41 0x7f
1805   0x00 0x14 0x41 0x7f
1806
1807 # CHECK: shl    d0, d0, #1
1808 # CHECK: sli    d0, d0, #1
1809 # CHECK: sqrshrn        b0, h0, #7
1810 # CHECK: sqrshrn        h0, s0, #14
1811 # CHECK: sqrshrn        s0, d0, #29
1812 # CHECK: sqrshrun       b0, h0, #7
1813 # CHECK: sqrshrun       h0, s0, #14
1814 # CHECK: sqrshrun       s0, d0, #29
1815 # CHECK: sqshlu b0, b0, #1
1816 # CHECK: sqshlu h0, h0, #2
1817 # CHECK: sqshlu s0, s0, #3
1818 # CHECK: sqshlu d0, d0, #4
1819 # CHECK: sqshl  b0, b0, #1
1820 # CHECK: sqshl  h0, h0, #2
1821 # CHECK: sqshl  s0, s0, #3
1822 # CHECK: sqshl  d0, d0, #4
1823 # CHECK: sqshrn b0, h0, #7
1824 # CHECK: sqshrn h0, s0, #14
1825 # CHECK: sqshrn s0, d0, #29
1826 # CHECK: sqshrun        b0, h0, #7
1827 # CHECK: sqshrun        h0, s0, #14
1828 # CHECK: sqshrun        s0, d0, #29
1829 # CHECK: sri    d0, d0, #63
1830 # CHECK: srshr  d0, d0, #63
1831 # CHECK: srsra  d0, d0, #63
1832 # CHECK: sshr   d0, d0, #63
1833 # CHECK: ucvtf  s0, s0, #31
1834 # CHECK: ucvtf  d0, d0, #62
1835 # CHECK: uqrshrn        b0, h0, #7
1836 # CHECK: uqrshrn        h0, s0, #14
1837 # CHECK: uqrshrn        s0, d0, #29
1838 # CHECK: uqshl  b0, b0, #1
1839 # CHECK: uqshl  h0, h0, #2
1840 # CHECK: uqshl  s0, s0, #3
1841 # CHECK: uqshl  d0, d0, #4
1842 # CHECK: uqshrn b0, h0, #7
1843 # CHECK: uqshrn h0, s0, #14
1844 # CHECK: uqshrn s0, d0, #29
1845 # CHECK: urshr  d0, d0, #63
1846 # CHECK: ursra  d0, d0, #63
1847 # CHECK: ushr   d0, d0, #63
1848 # CHECK: usra   d0, d0, #63
1849
1850 #===-------------------------------------------------------------------------===
1851 # AdvSIMD vector + shift instructions
1852 #===-------------------------------------------------------------------------===
1853
1854   0x00 0xfc 0x21 0x0f
1855   0x00 0xfc 0x22 0x4f
1856   0x00 0xfc 0x43 0x4f
1857   0x00 0xfc 0x21 0x2f
1858   0x00 0xfc 0x22 0x6f
1859   0x00 0xfc 0x43 0x6f
1860   0x00 0x8c 0x09 0x0f
1861   0x00 0x8c 0x0a 0x4f
1862   0x00 0x8c 0x13 0x0f
1863   0x00 0x8c 0x14 0x4f
1864   0x00 0x8c 0x25 0x0f
1865   0x00 0x8c 0x26 0x4f
1866   0x00 0xe4 0x21 0x0f
1867   0x00 0xe4 0x22 0x4f
1868   0x00 0xe4 0x43 0x4f
1869   0x00 0x54 0x09 0x0f
1870   0x00 0x54 0x0a 0x4f
1871   0x00 0x54 0x13 0x0f
1872   0x00 0x54 0x14 0x4f
1873   0x00 0x54 0x25 0x0f
1874   0x00 0x54 0x26 0x4f
1875   0x00 0x54 0x47 0x4f
1876   0x00 0x84 0x09 0x0f
1877   0x00 0x84 0x0a 0x4f
1878   0x00 0x84 0x13 0x0f
1879   0x00 0x84 0x14 0x4f
1880   0x00 0x84 0x25 0x0f
1881   0x00 0x84 0x26 0x4f
1882   0x00 0x54 0x09 0x2f
1883   0x00 0x54 0x0a 0x6f
1884   0x00 0x54 0x13 0x2f
1885   0x00 0x54 0x14 0x6f
1886   0x00 0x54 0x25 0x2f
1887   0x00 0x54 0x26 0x6f
1888   0x00 0x54 0x47 0x6f
1889   0x00 0x9c 0x09 0x0f
1890   0x00 0x9c 0x0a 0x4f
1891   0x00 0x9c 0x13 0x0f
1892   0x00 0x9c 0x14 0x4f
1893   0x00 0x9c 0x25 0x0f
1894   0x00 0x9c 0x26 0x4f
1895   0x00 0x8c 0x09 0x2f
1896   0x00 0x8c 0x0a 0x6f
1897   0x00 0x8c 0x13 0x2f
1898   0x00 0x8c 0x14 0x6f
1899   0x00 0x8c 0x25 0x2f
1900   0x00 0x8c 0x26 0x6f
1901   0x00 0x64 0x09 0x2f
1902   0x00 0x64 0x0a 0x6f
1903   0x00 0x64 0x13 0x2f
1904   0x00 0x64 0x14 0x6f
1905   0x00 0x64 0x25 0x2f
1906   0x00 0x64 0x26 0x6f
1907   0x00 0x64 0x47 0x6f
1908   0x00 0x74 0x09 0x0f
1909   0x00 0x74 0x0a 0x4f
1910   0x00 0x74 0x13 0x0f
1911   0x00 0x74 0x14 0x4f
1912   0x00 0x74 0x25 0x0f
1913   0x00 0x74 0x26 0x4f
1914   0x00 0x74 0x47 0x4f
1915   0x00 0x94 0x09 0x0f
1916   0x00 0x94 0x0a 0x4f
1917   0x00 0x94 0x13 0x0f
1918   0x00 0x94 0x14 0x4f
1919   0x00 0x94 0x25 0x0f
1920   0x00 0x94 0x26 0x4f
1921   0x00 0x84 0x09 0x2f
1922   0x00 0x84 0x0a 0x6f
1923   0x00 0x84 0x13 0x2f
1924   0x00 0x84 0x14 0x6f
1925   0x00 0x84 0x25 0x2f
1926   0x00 0x84 0x26 0x6f
1927   0x00 0x44 0x09 0x2f
1928   0x00 0x44 0x0a 0x6f
1929   0x00 0x44 0x13 0x2f
1930   0x00 0x44 0x14 0x6f
1931   0x00 0x44 0x25 0x2f
1932   0x00 0x44 0x26 0x6f
1933   0x00 0x44 0x47 0x6f
1934   0x00 0x24 0x09 0x0f
1935   0x00 0x24 0x0a 0x4f
1936   0x00 0x24 0x13 0x0f
1937   0x00 0x24 0x14 0x4f
1938   0x00 0x24 0x25 0x0f
1939   0x00 0x24 0x26 0x4f
1940   0x00 0x24 0x47 0x4f
1941   0x00 0x34 0x09 0x0f
1942   0x00 0x34 0x0a 0x4f
1943   0x00 0x34 0x13 0x0f
1944   0x00 0x34 0x14 0x4f
1945   0x00 0x34 0x25 0x0f
1946   0x00 0x34 0x26 0x4f
1947   0x00 0x34 0x47 0x4f
1948   0x00 0xa4 0x09 0x0f
1949   0x00 0xa4 0x0a 0x4f
1950   0x00 0xa4 0x13 0x0f
1951   0x00 0xa4 0x14 0x4f
1952   0x00 0xa4 0x25 0x0f
1953   0x00 0xa4 0x26 0x4f
1954   0x00 0x04 0x09 0x0f
1955   0x00 0x04 0x0a 0x4f
1956   0x00 0x04 0x13 0x0f
1957   0x00 0x04 0x14 0x4f
1958   0x00 0x04 0x25 0x0f
1959   0x00 0x04 0x26 0x4f
1960   0x00 0x04 0x47 0x4f
1961   0x00 0x04 0x09 0x0f
1962   0x00 0x14 0x0a 0x4f
1963   0x00 0x14 0x13 0x0f
1964   0x00 0x14 0x14 0x4f
1965   0x00 0x14 0x25 0x0f
1966   0x00 0x14 0x26 0x4f
1967   0x00 0x14 0x47 0x4f
1968   0x00 0x14 0x40 0x5f
1969   0x00 0xe4 0x21 0x2f
1970   0x00 0xe4 0x22 0x6f
1971   0x00 0xe4 0x43 0x6f
1972   0x00 0x9c 0x09 0x2f
1973   0x00 0x9c 0x0a 0x6f
1974   0x00 0x9c 0x13 0x2f
1975   0x00 0x9c 0x14 0x6f
1976   0x00 0x9c 0x25 0x2f
1977   0x00 0x9c 0x26 0x6f
1978   0x00 0x74 0x09 0x2f
1979   0x00 0x74 0x0a 0x6f
1980   0x00 0x74 0x13 0x2f
1981   0x00 0x74 0x14 0x6f
1982   0x00 0x74 0x25 0x2f
1983   0x00 0x74 0x26 0x6f
1984   0x00 0x74 0x47 0x6f
1985   0x00 0x94 0x09 0x2f
1986   0x00 0x94 0x0a 0x6f
1987   0x00 0x94 0x13 0x2f
1988   0x00 0x94 0x14 0x6f
1989   0x00 0x94 0x25 0x2f
1990   0x00 0x94 0x26 0x6f
1991   0x00 0x24 0x09 0x2f
1992   0x00 0x24 0x0a 0x6f
1993   0x00 0x24 0x13 0x2f
1994   0x00 0x24 0x14 0x6f
1995   0x00 0x24 0x25 0x2f
1996   0x00 0x24 0x26 0x6f
1997   0x00 0x24 0x47 0x6f
1998   0x00 0x34 0x09 0x2f
1999   0x00 0x34 0x0a 0x6f
2000   0x00 0x34 0x13 0x2f
2001   0x00 0x34 0x14 0x6f
2002   0x00 0x34 0x25 0x2f
2003   0x00 0x34 0x26 0x6f
2004   0x00 0x34 0x47 0x6f
2005   0x00 0xa4 0x09 0x2f
2006   0x00 0xa4 0x0a 0x6f
2007   0x00 0xa4 0x13 0x2f
2008   0x00 0xa4 0x14 0x6f
2009   0x00 0xa4 0x25 0x2f
2010   0x00 0xa4 0x26 0x6f
2011   0x00 0x04 0x09 0x2f
2012   0x00 0x04 0x0a 0x6f
2013   0x00 0x04 0x13 0x2f
2014   0x00 0x04 0x14 0x6f
2015   0x00 0x04 0x25 0x2f
2016   0x00 0x04 0x26 0x6f
2017   0x00 0x04 0x47 0x6f
2018   0x00 0x14 0x09 0x2f
2019   0x00 0x14 0x0a 0x6f
2020   0x00 0x14 0x13 0x2f
2021   0x00 0x14 0x14 0x6f
2022   0x00 0x14 0x25 0x2f
2023   0x00 0x14 0x26 0x6f
2024   0x00 0x14 0x47 0x6f
2025
2026 # CHECK: fcvtzs.2s      v0, v0, #31
2027 # CHECK: fcvtzs.4s      v0, v0, #30
2028 # CHECK: fcvtzs.2d      v0, v0, #61
2029 # CHECK: fcvtzu.2s      v0, v0, #31
2030 # CHECK: fcvtzu.4s      v0, v0, #30
2031 # CHECK: fcvtzu.2d      v0, v0, #61
2032 # CHECK: rshrn.8b       v0, v0, #7
2033 # CHECK: rshrn2.16b     v0, v0, #6
2034 # CHECK: rshrn.4h       v0, v0, #13
2035 # CHECK: rshrn2.8h      v0, v0, #12
2036 # CHECK: rshrn.2s       v0, v0, #27
2037 # CHECK: rshrn2.4s      v0, v0, #26
2038 # CHECK: scvtf.2s       v0, v0, #31
2039 # CHECK: scvtf.4s       v0, v0, #30
2040 # CHECK: scvtf.2d       v0, v0, #61
2041 # CHECK: shl.8b v0, v0, #1
2042 # CHECK: shl.16b        v0, v0, #2
2043 # CHECK: shl.4h v0, v0, #3
2044 # CHECK: shl.8h v0, v0, #4
2045 # CHECK: shl.2s v0, v0, #5
2046 # CHECK: shl.4s v0, v0, #6
2047 # CHECK: shl.2d v0, v0, #7
2048 # CHECK: shrn.8b        v0, v0, #7
2049 # CHECK: shrn2.16b      v0, v0, #6
2050 # CHECK: shrn.4h        v0, v0, #13
2051 # CHECK: shrn2.8h       v0, v0, #12
2052 # CHECK: shrn.2s        v0, v0, #27
2053 # CHECK: shrn2.4s       v0, v0, #26
2054 # CHECK: sli.8b v0, v0, #1
2055 # CHECK: sli.16b        v0, v0, #2
2056 # CHECK: sli.4h v0, v0, #3
2057 # CHECK: sli.8h v0, v0, #4
2058 # CHECK: sli.2s v0, v0, #5
2059 # CHECK: sli.4s v0, v0, #6
2060 # CHECK: sli.2d v0, v0, #7
2061 # CHECK: sqrshrn.8b     v0, v0, #7
2062 # CHECK: sqrshrn2.16b   v0, v0, #6
2063 # CHECK: sqrshrn.4h     v0, v0, #13
2064 # CHECK: sqrshrn2.8h    v0, v0, #12
2065 # CHECK: sqrshrn.2s     v0, v0, #27
2066 # CHECK: sqrshrn2.4s    v0, v0, #26
2067 # CHECK: sqrshrun.8b    v0, v0, #7
2068 # CHECK: sqrshrun2.16b  v0, v0, #6
2069 # CHECK: sqrshrun.4h    v0, v0, #13
2070 # CHECK: sqrshrun2.8h   v0, v0, #12
2071 # CHECK: sqrshrun.2s    v0, v0, #27
2072 # CHECK: sqrshrun2.4s   v0, v0, #26
2073 # CHECK: sqshlu.8b      v0, v0, #1
2074 # CHECK: sqshlu.16b     v0, v0, #2
2075 # CHECK: sqshlu.4h      v0, v0, #3
2076 # CHECK: sqshlu.8h      v0, v0, #4
2077 # CHECK: sqshlu.2s      v0, v0, #5
2078 # CHECK: sqshlu.4s      v0, v0, #6
2079 # CHECK: sqshlu.2d      v0, v0, #7
2080 # CHECK: sqshl.8b       v0, v0, #1
2081 # CHECK: sqshl.16b      v0, v0, #2
2082 # CHECK: sqshl.4h       v0, v0, #3
2083 # CHECK: sqshl.8h       v0, v0, #4
2084 # CHECK: sqshl.2s       v0, v0, #5
2085 # CHECK: sqshl.4s       v0, v0, #6
2086 # CHECK: sqshl.2d       v0, v0, #7
2087 # CHECK: sqshrn.8b      v0, v0, #7
2088 # CHECK: sqshrn2.16b    v0, v0, #6
2089 # CHECK: sqshrn.4h      v0, v0, #13
2090 # CHECK: sqshrn2.8h     v0, v0, #12
2091 # CHECK: sqshrn.2s      v0, v0, #27
2092 # CHECK: sqshrn2.4s     v0, v0, #26
2093 # CHECK: sqshrun.8b     v0, v0, #7
2094 # CHECK: sqshrun2.16b   v0, v0, #6
2095 # CHECK: sqshrun.4h     v0, v0, #13
2096 # CHECK: sqshrun2.8h    v0, v0, #12
2097 # CHECK: sqshrun.2s     v0, v0, #27
2098 # CHECK: sqshrun2.4s    v0, v0, #26
2099 # CHECK: sri.8b v0, v0, #7
2100 # CHECK: sri.16b        v0, v0, #6
2101 # CHECK: sri.4h v0, v0, #13
2102 # CHECK: sri.8h v0, v0, #12
2103 # CHECK: sri.2s v0, v0, #27
2104 # CHECK: sri.4s v0, v0, #26
2105 # CHECK: sri.2d v0, v0, #57
2106 # CHECK: srshr.8b       v0, v0, #7
2107 # CHECK: srshr.16b      v0, v0, #6
2108 # CHECK: srshr.4h       v0, v0, #13
2109 # CHECK: srshr.8h       v0, v0, #12
2110 # CHECK: srshr.2s       v0, v0, #27
2111 # CHECK: srshr.4s       v0, v0, #26
2112 # CHECK: srshr.2d       v0, v0, #57
2113 # CHECK: srsra.8b       v0, v0, #7
2114 # CHECK: srsra.16b      v0, v0, #6
2115 # CHECK: srsra.4h       v0, v0, #13
2116 # CHECK: srsra.8h       v0, v0, #12
2117 # CHECK: srsra.2s       v0, v0, #27
2118 # CHECK: srsra.4s       v0, v0, #26
2119 # CHECK: srsra.2d       v0, v0, #57
2120 # CHECK: sshll.8h       v0, v0, #1
2121 # CHECK: sshll2.8h      v0, v0, #2
2122 # CHECK: sshll.4s       v0, v0, #3
2123 # CHECK: sshll2.4s      v0, v0, #4
2124 # CHECK: sshll.2d       v0, v0, #5
2125 # CHECK: sshll2.2d      v0, v0, #6
2126 # CHECK: sshr.8b        v0, v0, #7
2127 # CHECK: sshr.16b       v0, v0, #6
2128 # CHECK: sshr.4h        v0, v0, #13
2129 # CHECK: sshr.8h        v0, v0, #12
2130 # CHECK: sshr.2s        v0, v0, #27
2131 # CHECK: sshr.4s        v0, v0, #26
2132 # CHECK: sshr.2d        v0, v0, #57
2133 # CHECK: sshr.8b        v0, v0, #7
2134 # CHECK: ssra.16b       v0, v0, #6
2135 # CHECK: ssra.4h        v0, v0, #13
2136 # CHECK: ssra.8h        v0, v0, #12
2137 # CHECK: ssra.2s        v0, v0, #27
2138 # CHECK: ssra.4s        v0, v0, #26
2139 # CHECK: ssra.2d        v0, v0, #57
2140 # CHECK: ssra           d0, d0, #64
2141 # CHECK: ucvtf.2s       v0, v0, #31
2142 # CHECK: ucvtf.4s       v0, v0, #30
2143 # CHECK: ucvtf.2d       v0, v0, #61
2144 # CHECK: uqrshrn.8b     v0, v0, #7
2145 # CHECK: uqrshrn2.16b   v0, v0, #6
2146 # CHECK: uqrshrn.4h     v0, v0, #13
2147 # CHECK: uqrshrn2.8h    v0, v0, #12
2148 # CHECK: uqrshrn.2s     v0, v0, #27
2149 # CHECK: uqrshrn2.4s    v0, v0, #26
2150 # CHECK: uqshl.8b       v0, v0, #1
2151 # CHECK: uqshl.16b      v0, v0, #2
2152 # CHECK: uqshl.4h       v0, v0, #3
2153 # CHECK: uqshl.8h       v0, v0, #4
2154 # CHECK: uqshl.2s       v0, v0, #5
2155 # CHECK: uqshl.4s       v0, v0, #6
2156 # CHECK: uqshl.2d       v0, v0, #7
2157 # CHECK: uqshrn.8b      v0, v0, #7
2158 # CHECK: uqshrn2.16b    v0, v0, #6
2159 # CHECK: uqshrn.4h      v0, v0, #13
2160 # CHECK: uqshrn2.8h     v0, v0, #12
2161 # CHECK: uqshrn.2s      v0, v0, #27
2162 # CHECK: uqshrn2.4s     v0, v0, #26
2163 # CHECK: urshr.8b       v0, v0, #7
2164 # CHECK: urshr.16b      v0, v0, #6
2165 # CHECK: urshr.4h       v0, v0, #13
2166 # CHECK: urshr.8h       v0, v0, #12
2167 # CHECK: urshr.2s       v0, v0, #27
2168 # CHECK: urshr.4s       v0, v0, #26
2169 # CHECK: urshr.2d       v0, v0, #57
2170 # CHECK: ursra.8b       v0, v0, #7
2171 # CHECK: ursra.16b      v0, v0, #6
2172 # CHECK: ursra.4h       v0, v0, #13
2173 # CHECK: ursra.8h       v0, v0, #12
2174 # CHECK: ursra.2s       v0, v0, #27
2175 # CHECK: ursra.4s       v0, v0, #26
2176 # CHECK: ursra.2d       v0, v0, #57
2177 # CHECK: ushll.8h       v0, v0, #1
2178 # CHECK: ushll2.8h      v0, v0, #2
2179 # CHECK: ushll.4s       v0, v0, #3
2180 # CHECK: ushll2.4s      v0, v0, #4
2181 # CHECK: ushll.2d       v0, v0, #5
2182 # CHECK: ushll2.2d      v0, v0, #6
2183 # CHECK: ushr.8b        v0, v0, #7
2184 # CHECK: ushr.16b       v0, v0, #6
2185 # CHECK: ushr.4h        v0, v0, #13
2186 # CHECK: ushr.8h        v0, v0, #12
2187 # CHECK: ushr.2s        v0, v0, #27
2188 # CHECK: ushr.4s        v0, v0, #26
2189 # CHECK: ushr.2d        v0, v0, #57
2190 # CHECK: usra.8b        v0, v0, #7
2191 # CHECK: usra.16b       v0, v0, #6
2192 # CHECK: usra.4h        v0, v0, #13
2193 # CHECK: usra.8h        v0, v0, #12
2194 # CHECK: usra.2s        v0, v0, #27
2195 # CHECK: usra.4s        v0, v0, #26
2196 # CHECK: usra.2d        v0, v0, #57
2197
2198
2199   0x00 0xe0 0x20 0x0e
2200   0x00 0xe0 0x20 0x4e
2201   0x00 0xe0 0xe0 0x0e
2202   0x00 0xe0 0xe0 0x4e
2203
2204 # CHECK: pmull.8h v0, v0, v0
2205 # CHECK: pmull2.8h v0, v0, v0
2206 # CHECK: pmull.1q v0, v0, v0
2207 # CHECK: pmull2.1q v0, v0, v0
2208
2209   0x41 0xd8 0x70 0x7e
2210   0x83 0xd8 0x30 0x7e
2211 # CHECK: faddp.2d       d1, v2
2212 # CHECK: faddp.2s       s3, v4
2213
2214   0x82 0x60 0x01 0x4e
2215   0x80 0x60 0x01 0x0e
2216   0xa2 0x00 0x01 0x4e
2217   0xa0 0x00 0x01 0x0e
2218   0xa2 0x40 0x01 0x4e
2219   0xa0 0x40 0x01 0x0e
2220   0xc2 0x20 0x01 0x4e
2221   0xc0 0x20 0x01 0x0e
2222
2223 # CHECK: tbl.16b        v2, { v4, v5, v6, v7 }, v1
2224 # CHECK: tbl.8b v0, { v4, v5, v6, v7 }, v1
2225 # CHECK: tbl.16b        v2, { v5 }, v1
2226 # CHECK: tbl.8b v0, { v5 }, v1
2227 # CHECK: tbl.16b        v2, { v5, v6, v7 }, v1
2228 # CHECK: tbl.8b v0, { v5, v6, v7 }, v1
2229 # CHECK: tbl.16b        v2, { v6, v7 }, v1
2230 # CHECK: tbl.8b v0, { v6, v7 }, v1
2231 #
2232   0x82 0x70 0x01 0x4e
2233   0x80 0x70 0x01 0x0e
2234   0xa2 0x10 0x01 0x4e
2235   0xa0 0x10 0x01 0x0e
2236   0xa2 0x50 0x01 0x4e
2237   0xa0 0x50 0x01 0x0e
2238   0xc2 0x30 0x01 0x4e
2239   0xc0 0x30 0x01 0x0e
2240
2241 # CHECK: tbx.16b        v2, { v4, v5, v6, v7 }, v1
2242 # CHECK: tbx.8b v0, { v4, v5, v6, v7 }, v1
2243 # CHECK: tbx.16b        v2, { v5 }, v1
2244 # CHECK: tbx.8b v0, { v5 }, v1
2245 # CHECK: tbx.16b        v2, { v5, v6, v7 }, v1
2246 # CHECK: tbx.8b v0, { v5, v6, v7 }, v1
2247 # CHECK: tbx.16b        v2, { v6, v7 }, v1
2248 # CHECK: tbx.8b v0, { v6, v7 }, v1
2249 #
2250
2251 0x00 0x80 0x20 0x0e
2252 0x00 0x80 0x20 0x4e
2253 0x00 0x80 0xa0 0x0e
2254 0x00 0x80 0xa0 0x4e
2255
2256 # CHECK: smlal.8h v0, v0, v0
2257 # CHECK: smlal2.8h v0, v0, v0
2258 # CHECK: smlal.2d v0, v0, v0
2259 # CHECK: smlal2.2d v0, v0, v0
2260
2261 0x00 0x80 0x20 0x2e
2262 0x00 0x80 0x20 0x6e
2263 0x00 0x80 0xa0 0x2e
2264 0x00 0x80 0xa0 0x6e
2265
2266 # CHECK: umlal.8h v0, v0, v0
2267 # CHECK: umlal2.8h v0, v0, v0
2268 # CHECK: umlal.2d v0, v0, v0
2269 # CHECK: umlal2.2d v0, v0, v0
2270
2271 0x00 0x90 0x60 0x5e
2272 0x00 0x90 0xa0 0x5e
2273 0x00 0xb0 0x60 0x5e
2274 0x00 0xb0 0xa0 0x5e
2275
2276 # CHECK: sqdmlal s0, h0, h0
2277 # CHECK: sqdmlal d0, s0, s0
2278 # CHECK: sqdmlsl s0, h0, h0
2279 # CHECK: sqdmlsl d0, s0, s0
2280
2281 0xaa 0xc5 0xc7 0x4d
2282 0xaa 0xc9 0xc7 0x4d
2283 0xaa 0xc1 0xc7 0x4d
2284
2285 # CHECK: ld1r.8h { v10 }, [x13], x7
2286 # CHECK: ld1r.4s { v10 }, [x13], x7
2287 # CHECK: ld1r.16b { v10 }, [x13], x7
2288
2289 0x00 0xd0 0x60 0x5e
2290 0x00 0xd0 0xa0 0x5e
2291 # CHECK: sqdmull        s0, h0, h0
2292 # CHECK: sqdmull        d0, s0, s0
2293
2294 0x00 0xd8 0xa1 0x7e
2295 0x00 0xd8 0xe1 0x7e
2296
2297 # CHECK: frsqrte s0, s0
2298 # CHECK: frsqrte d0, d0
2299
2300 0xca 0xcd 0xc7 0x4d
2301 0xea 0xc9 0xe7 0x4d
2302 0xea 0xe9 0xc7 0x4d
2303 0xea 0xe9 0xe7 0x4d
2304 # CHECK: ld1r.2d        { v10 }, [x14], x7
2305 # CHECK: ld2r.4s        { v10, v11 }, [x15], x7
2306 # CHECK: ld3r.4s        { v10, v11, v12 }, [x15], x7
2307 # CHECK: ld4r.4s        { v10, v11, v12, v13 }, [x15], x7
2308
2309 #===-------------------------------------------------------------------------===
2310 # AdvSIMD scalar three same
2311 #===-------------------------------------------------------------------------===
2312 0x62 0xdc 0x21 0x5e
2313 # CHECK: fmulx  s2, s3, s1
2314 0x62 0xdc 0x61 0x5e
2315 # CHECK: fmulx  d2, d3, d1
2316
2317
2318 # rdar://12511369
2319 0xe8 0x6b 0xdf 0x4c
2320 # CHECK: ld1.4s { v8, v9, v10 }, [sp], #48