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