1# RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 --disassemble -print-imm-hex < %s | FileCheck %s
2
30x00 0xb8 0x20 0x0e
40x00 0xb8 0x20 0x4e
50x00 0xb8 0x60 0x0e
60x00 0xb8 0x60 0x4e
70x00 0xb8 0xa0 0x0e
80x00 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
170x00 0x84 0x20 0x0e
180x00 0x84 0x20 0x4e
190x00 0x84 0x60 0x0e
200x00 0x84 0x60 0x4e
210x00 0x84 0xa0 0x0e
220x00 0x84 0xa0 0x4e
230x00 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
330x41 0x84 0xe3 0x5e
34
35# CHECK: add d1, d2, d3
36
370x00 0x40 0x20 0x0e
380x00 0x40 0x20 0x4e
390x00 0x40 0x60 0x0e
400x00 0x40 0x60 0x4e
410x00 0x40 0xa0 0x0e
420x00 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
510x00 0xbc 0x20 0x0e
520x00 0xbc 0x20 0x4e
530x00 0xbc 0x60 0x0e
540x00 0xbc 0x60 0x4e
550x00 0xbc 0xa0 0x0e
560x00 0xbc 0xa0 0x4e
570x00 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
670x00 0xb8 0xf1 0x5e
68
69# CHECK: addp.2d d0, v0
70
710x00 0xb8 0x31 0x0e
720x00 0xb8 0x31 0x4e
730x00 0xb8 0x71 0x0e
740x00 0xb8 0x71 0x4e
750x00 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
850x60 0x0c 0x08 0x4e
860x60 0x0c 0x04 0x4e
870x60 0x0c 0x04 0x0e
880x60 0x0c 0x02 0x4e
890x60 0x0c 0x02 0x0e
900x60 0x0c 0x01 0x4e
910x60 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
1010x60 0x04 0x18 0x4e
1020x60 0x04 0x0c 0x0e
1030x60 0x04 0x0c 0x4e
1040x60 0x04 0x06 0x0e
1050x60 0x04 0x06 0x4e
1060x60 0x04 0x03 0x0e
1070x60 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
1180x43 0x2c 0x14 0x4e
1190x43 0x2c 0x14 0x4e
1200x43 0x3c 0x14 0x0e
1210x43 0x3c 0x14 0x0e
1220x43 0x3c 0x18 0x4e
1230x43 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
1320xa2 0x1c 0x18 0x4e
1330xa2 0x1c 0x0c 0x4e
1340xa2 0x1c 0x06 0x4e
1350xa2 0x1c 0x03 0x4e
136
1370xa2 0x1c 0x18 0x4e
1380xa2 0x1c 0x0c 0x4e
1390xa2 0x1c 0x06 0x4e
1400xa2 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
1520xe2 0x45 0x18 0x6e
1530xe2 0x25 0x0c 0x6e
1540xe2 0x15 0x06 0x6e
1550xe2 0x0d 0x03 0x6e
156
1570xe2 0x05 0x18 0x6e
1580xe2 0x45 0x1c 0x6e
1590xe2 0x35 0x1e 0x6e
1600xe2 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)
1730x60 0x0c 0x08 0x4e
1740x60 0x0c 0x0c 0x4e
1750x60 0x0c 0x0c 0x0e
1760x60 0x0c 0x0e 0x4e
1770x60 0x0c 0x0e 0x0e
1780x60 0x0c 0x0f 0x4e
1790x60 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
1890xe2 0x75 0x18 0x6e
1900xe2 0x35 0x0c 0x6e
1910xe2 0x15 0x06 0x6e
1920xe2 0x0d 0x03 0x6e
193
1940xe2 0x05 0x18 0x6e
1950xe2 0x55 0x1c 0x6e
1960xe2 0x35 0x1e 0x6e
1970xe2 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
2090x00 0x1c 0x20 0x0e
2100x00 0x1c 0x20 0x4e
211
212# CHECK: and.8b  v0, v0, v0
213# CHECK: and.16b v0, v0, v0
214
2150x00 0x1c 0x60 0x0e
216
217# CHECK: bic.8b  v0, v0, v0
218
2190x00 0x8c 0x20 0x2e
2200x00 0x3c 0x20 0x0e
2210x00 0x34 0x20 0x0e
2220x00 0x34 0x20 0x2e
2230x00 0x3c 0x20 0x2e
2240x00 0x8c 0x20 0x0e
2250x00 0xd4 0xa0 0x2e
2260x00 0xec 0x20 0x2e
2270x00 0xec 0xa0 0x2e
2280x00 0xd4 0x20 0x2e
2290x00 0xd4 0x20 0x0e
2300x00 0xe4 0x20 0x0e
2310x00 0xe4 0x20 0x2e
2320x00 0xe4 0xa0 0x2e
2330x00 0xfc 0x20 0x2e
2340x00 0xc4 0x20 0x2e
2350x00 0xc4 0x20 0x0e
2360x00 0xf4 0x20 0x2e
2370x00 0xf4 0x20 0x0e
2380x00 0xc4 0xa0 0x2e
2390x00 0xc4 0xa0 0x0e
2400x00 0xf4 0xa0 0x2e
2410x00 0xf4 0xa0 0x0e
2420x00 0xcc 0x20 0x0e
2430x00 0xcc 0xa0 0x0e
2440x00 0xdc 0x20 0x0e
2450x00 0xdc 0x20 0x2e
2460x00 0xfc 0x20 0x0e
2470x00 0xfc 0xa0 0x0e
2480x00 0xd4 0xa0 0x0e
2490x00 0x94 0x20 0x0e
2500x00 0x94 0x20 0x2e
2510x00 0x9c 0x20 0x0e
2520x00 0x9c 0x20 0x2e
2530x00 0x7c 0x20 0x0e
2540x00 0x74 0x20 0x0e
2550x00 0x04 0x20 0x0e
2560x00 0x24 0x20 0x0e
2570x00 0xa4 0x20 0x0e
2580x00 0x64 0x20 0x0e
2590x00 0xac 0x20 0x0e
2600x00 0x6c 0x20 0x0e
2610x00 0x0c 0x20 0x0e
2620x00 0xb4 0x60 0x0e
2630x00 0xb4 0x60 0x2e
2640x00 0x5c 0x20 0x0e
2650x00 0x4c 0x20 0x0e
2660x00 0x2c 0x20 0x0e
2670x00 0x14 0x20 0x0e
2680x00 0x54 0x20 0x0e
2690x00 0x44 0x20 0x0e
2700x00 0x84 0x20 0x2e
2710x00 0x7c 0x20 0x2e
2720x00 0x74 0x20 0x2e
2730x00 0x04 0x20 0x2e
2740x00 0x24 0x20 0x2e
2750x00 0xa4 0x20 0x2e
2760x00 0x64 0x20 0x2e
2770x00 0xac 0x20 0x2e
2780x00 0x6c 0x20 0x2e
2790x00 0x0c 0x20 0x2e
2800x00 0x5c 0x20 0x2e
2810x00 0x4c 0x20 0x2e
2820x00 0x2c 0x20 0x2e
2830x00 0x14 0x20 0x2e
2840x00 0x54 0x20 0x2e
2850x00 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
3550x00 0x1c 0xe0 0x2e
3560x00 0x1c 0xa0 0x2e
3570x00 0x1c 0x60 0x2e
3580x00 0x1c 0x20 0x2e
3590x00 0x1c 0xe0 0x0e
3600x00 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
3690x00 0x68 0x20 0x0e
3700x00 0x68 0x20 0x4e
3710x00 0x68 0x60 0x0e
3720x00 0x68 0x60 0x4e
3730x00 0x68 0xa0 0x0e
3740x00 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
3830x00 0x48 0x20 0x0e
3840x00 0x48 0x20 0x2e
3850x00 0x58 0x20 0x0e
3860x00 0xf8 0xa0 0x0e
3870x00 0xc8 0x21 0x0e
3880x00 0xc8 0x21 0x2e
3890x00 0xb8 0x21 0x0e
3900x00 0xb8 0x21 0x2e
3910x00 0xa8 0x21 0x0e
3920x00 0xa8 0x21 0x2e
3930x00 0xa8 0xa1 0x0e
3940x00 0xa8 0xa1 0x2e
3950x00 0xb8 0xa1 0x0e
3960x00 0xb8 0xa1 0x2e
3970x00 0xf8 0xa0 0x2e
3980x00 0xd8 0xa1 0x0e
3990x00 0xd8 0xa1 0x2e
4000x00 0xf8 0xa1 0x2e
4010x00 0xb8 0x20 0x2e
4020x00 0x58 0x20 0x2e
4030x00 0x58 0x60 0x2e
4040x00 0x18 0x20 0x0e
4050x00 0x08 0x20 0x2e
4060x00 0x08 0x20 0x0e
4070x00 0x68 0x20 0x0e
4080x00 0x28 0x20 0x0e
4090x00 0xd8 0x21 0x0e
4100x00 0x38 0x21 0x2e
4110x00 0x78 0x20 0x0e
4120x00 0x78 0x20 0x2e
4130x00 0x48 0x21 0x0e
4140x00 0x28 0x21 0x2e
4150x00 0x38 0x20 0x0e
4160x00 0x68 0x20 0x2e
4170x00 0x28 0x20 0x2e
4180x00 0xd8 0x21 0x2e
4190x00 0x48 0x21 0x2e
4200x00 0xc8 0xa1 0x0e
4210x00 0xc8 0xa1 0x2e
4220x00 0x38 0x20 0x2e
4230x00 0x28 0x21 0x0e
4240x00 0x48 0x20 0x0e
4250x00 0x48 0x20 0x2e
4260x00 0x58 0x20 0x0e
4270x00 0xf8 0xa0 0x0e
4280x00 0xc8 0x21 0x0e
4290x00 0xc8 0x21 0x2e
4300x00 0xb8 0x21 0x0e
4310x00 0xb8 0x21 0x2e
4320x00 0xa8 0x21 0x0e
4330x00 0xa8 0x21 0x2e
4340x00 0xa8 0xa1 0x0e
4350x00 0xa8 0xa1 0x2e
4360x00 0xb8 0xa1 0x0e
4370x00 0xb8 0xa1 0x2e
4380x00 0xf8 0xa0 0x2e
4390x00 0xd8 0xa1 0x0e
4400x00 0xd8 0xa1 0x2e
4410x00 0xf8 0xa1 0x2e
4420x00 0xb8 0x20 0x2e
4430x00 0x58 0x20 0x2e
4440x00 0x58 0x60 0x2e
4450x00 0x18 0x20 0x0e
4460x00 0x08 0x20 0x2e
4470x00 0x08 0x20 0x0e
4480x00 0x68 0x20 0x0e
4490x00 0x28 0x20 0x0e
4500x00 0xd8 0x21 0x0e
4510x00 0x38 0x21 0x2e
4520x00 0x78 0x20 0x0e
4530x00 0x78 0x20 0x2e
4540x00 0x48 0x21 0x0e
4550x00 0x28 0x21 0x2e
4560x00 0x38 0x20 0x0e
4570x00 0x68 0x20 0x2e
4580x00 0x28 0x20 0x2e
4590x00 0xd8 0x21 0x2e
4600x00 0x48 0x21 0x2e
4610x00 0xc8 0xa1 0x0e
4620x00 0xc8 0xa1 0x2e
4630x00 0x38 0x20 0x2e
4640x00 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
5080x00 0x98 0x20 0x0e
5090x00 0x98 0x20 0x4e
5100x00 0x98 0x60 0x0e
5110x00 0x98 0x60 0x4e
5120x00 0x98 0xa0 0x0e
5130x00 0x98 0xa0 0x4e
5140x00 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
5240x00 0x88 0x20 0x2e
5250x00 0x88 0x20 0x0e
5260x00 0x98 0x20 0x2e
5270x00 0xa8 0x20 0x0e
5280x00 0xd8 0xa0 0x0e
5290x00 0xc8 0xa0 0x2e
5300x00 0xc8 0xa0 0x0e
5310x00 0xd8 0xa0 0x2e
5320x00 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
5440x00 0x78 0x21 0x0e
5450x00 0x78 0x21 0x4e
5460x00 0x78 0x61 0x0e
5470x00 0x78 0x61 0x4e
5480x00 0x68 0x21 0x0e
5490x00 0x68 0x21 0x4e
5500x00 0x68 0x61 0x0e
5510x00 0x68 0x61 0x4e
5520x00 0x68 0x61 0x2e
5530x00 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
5700x20 0x14 0x00 0x2f
5710x20 0x34 0x00 0x2f
5720x20 0x54 0x00 0x2f
5730x20 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
5800x20 0x94 0x00 0x2f
5810x20 0x94 0x00 0x2f
5820x20 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
5890x20 0x14 0x00 0x6f
5900x20 0x34 0x00 0x6f
5910x20 0x54 0x00 0x6f
5920x20 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
5990x20 0x94 0x00 0x6f
6000x20 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
6060x00 0xf4 0x02 0x6f
607
608# CHECK: fmov.2d v0, #0.12500000
609
6100x00 0xf4 0x02 0x0f
6110x00 0xf4 0x02 0x4f
612
613# CHECK: fmov.2s v0, #0.12500000
614# CHECK: fmov.4s v0, #0.12500000
615
6160x20 0x14 0x00 0x0f
6170x20 0x34 0x00 0x0f
6180x20 0x54 0x00 0x0f
6190x20 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
6260x20 0x94 0x00 0x0f
6270x20 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
6330x20 0x14 0x00 0x4f
6340x20 0x34 0x00 0x4f
6350x20 0x54 0x00 0x4f
6360x20 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
6430x20 0x94 0x00 0x4f
6440x20 0xb4 0x00 0x4f
645
646# CHECK: orr.8h v0, #0x1
647# CHECK: orr.8h v0, #0x1, lsl #8
648
6490x21 0x70 0x40 0x0c
6500x42 0xa0 0x40 0x4c
6510x64 0x64 0x40 0x0c
6520x87 0x24 0x40 0x4c
6530x0c 0xa8 0x40 0x0c
6540x0a 0x68 0x40 0x4c
6550x2d 0xac 0x40 0x0c
6560x4f 0x7c 0x40 0x4c
6570xe0 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
6690x41 0x70 0xdf 0x0c
6700x41 0xa0 0xdf 0x0c
6710x41 0x60 0xdf 0x0c
6720x41 0x20 0xdf 0x0c
6730x42 0x70 0xdf 0x4c
6740x42 0xa0 0xdf 0x4c
6750x42 0x60 0xdf 0x4c
6760x42 0x20 0xdf 0x4c
6770x64 0x74 0xdf 0x0c
6780x64 0xa4 0xdf 0x0c
6790x64 0x64 0xdf 0x0c
6800x64 0x24 0xdf 0x0c
6810x87 0x74 0xdf 0x4c
6820x87 0xa4 0xdf 0x4c
6830x87 0x64 0xdf 0x4c
6840x87 0x24 0xdf 0x4c
6850x0c 0x78 0xdf 0x0c
6860x0c 0xa8 0xdf 0x0c
6870x0c 0x68 0xdf 0x0c
6880x0c 0x28 0xdf 0x0c
6890x0a 0x78 0xdf 0x4c
6900x0a 0xa8 0xdf 0x4c
6910x0a 0x68 0xdf 0x4c
6920x0a 0x28 0xdf 0x4c
6930x2d 0x7c 0xdf 0x0c
6940x2d 0xac 0xdf 0x0c
6950x2d 0x6c 0xdf 0x0c
6960x2d 0x2c 0xdf 0x0c
6970x4f 0x7c 0xdf 0x4c
6980x4f 0xac 0xdf 0x4c
6990x4f 0x6c 0xdf 0x4c
7000x4f 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
7350x21 0x70 0x00 0x0c
7360x42 0xa0 0x00 0x4c
7370x64 0x64 0x00 0x0c
7380x87 0x24 0x00 0x4c
7390x0c 0xa8 0x00 0x0c
7400x0a 0x68 0x00 0x4c
7410x2d 0xac 0x00 0x0c
7420x4f 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
7530x61 0x08 0x40 0x0d
7540x82 0x84 0x40 0x4d
7550xa3 0x58 0x40 0x0d
7560xc4 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
7630x61 0x08 0xdf 0x0d
7640x82 0x84 0xdf 0x4d
7650xa3 0x58 0xdf 0x0d
7660xc4 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
7730x61 0x08 0x00 0x0d
7740x82 0x84 0x00 0x4d
7750xa3 0x58 0x00 0x0d
7760xc4 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
7830x61 0x08 0x9f 0x0d
7840x82 0x84 0x9f 0x4d
7850xa3 0x58 0x9f 0x0d
7860xc4 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
7930x61 0x08 0xc4 0x0d
7940x82 0x84 0xc5 0x4d
7950xa3 0x58 0xc6 0x0d
7960xc4 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
8030x61 0x08 0x84 0x0d
8040x82 0x84 0x85 0x4d
8050xa3 0x58 0x86 0x0d
8060xc4 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
8130x41 0x70 0xc3 0x0c
8140x42 0xa0 0xc4 0x4c
8150x64 0x64 0xc5 0x0c
8160x87 0x24 0xc6 0x4c
8170x0c 0xa8 0xc7 0x0c
8180x0a 0x68 0xc8 0x4c
8190x2d 0xac 0xc9 0x0c
8200x4f 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
8310x41 0x70 0x83 0x0c
8320x42 0xa0 0x84 0x4c
8330x64 0x64 0x85 0x0c
8340x87 0x24 0x86 0x4c
8350x0c 0xa8 0x87 0x0c
8360x0a 0x68 0x88 0x4c
8370x2d 0xac 0x89 0x0c
8380x4f 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
8490x41 0x70 0x9f 0x0c
8500x41 0xa0 0x9f 0x0c
8510x41 0x60 0x9f 0x0c
8520x41 0x20 0x9f 0x0c
8530x42 0x70 0x9f 0x4c
8540x42 0xa0 0x9f 0x4c
8550x42 0x60 0x9f 0x4c
8560x42 0x20 0x9f 0x4c
8570x64 0x74 0x9f 0x0c
8580x64 0xa4 0x9f 0x0c
8590x64 0x64 0x9f 0x0c
8600x64 0x24 0x9f 0x0c
8610x87 0x74 0x9f 0x4c
8620x87 0xa4 0x9f 0x4c
8630x87 0x64 0x9f 0x4c
8640x87 0x24 0x9f 0x4c
8650x0c 0x78 0x9f 0x0c
8660x0c 0xa8 0x9f 0x0c
8670x0c 0x68 0x9f 0x0c
8680x0c 0x28 0x9f 0x0c
8690x0a 0x78 0x9f 0x4c
8700x0a 0xa8 0x9f 0x4c
8710x0a 0x68 0x9f 0x4c
8720x0a 0x28 0x9f 0x4c
8730x2d 0x7c 0x9f 0x0c
8740x2d 0xac 0x9f 0x0c
8750x2d 0x6c 0x9f 0x0c
8760x2d 0x2c 0x9f 0x0c
8770x4f 0x7c 0x9f 0x4c
8780x4f 0xac 0x9f 0x4c
8790x4f 0x6c 0x9f 0x4c
8800x4f 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
9150x21 0xc0 0x40 0x0d
9160x21 0xc0 0xc2 0x0d
9170x64 0xc4 0x40 0x0d
9180x64 0xc4 0xc5 0x0d
9190xa9 0xc8 0x40 0x0d
9200xa9 0xc8 0xc6 0x0d
9210xec 0xcc 0x40 0x0d
9220xec 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
9330x21 0xc0 0xdf 0x0d
9340x21 0xc4 0xdf 0x0d
9350x21 0xc8 0xdf 0x0d
9360x21 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
9430x45 0x80 0x40 0x4c
9440x0a 0x88 0x40 0x0c
945
946# CHECK: ld2.16b { v5, v6 }, [x2]
947# CHECK: ld2.2s { v10, v11 }, [x0]
948
9490x45 0x80 0x00 0x4c
9500x0a 0x88 0x00 0x0c
951
952# CHECK: st2.16b { v5, v6 }, [x2]
953# CHECK: st2.2s { v10, v11 }, [x0]
954
9550x61 0x08 0x20 0x0d
9560x82 0x84 0x20 0x4d
9570xc3 0x50 0x20 0x0d
9580xe4 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
9650x61 0x08 0xbf 0x0d
9660x82 0x84 0xbf 0x4d
9670xa3 0x58 0xbf 0x0d
9680xc4 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
9750x61 0x08 0x60 0x0d
9760x82 0x84 0x60 0x4d
9770xc3 0x50 0x60 0x0d
9780xe4 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
9850x61 0x08 0xff 0x0d
9860x82 0x84 0xff 0x4d
9870xa3 0x58 0xff 0x0d
9880xc4 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
9950x61 0x08 0xe4 0x0d
9960x82 0x84 0xe6 0x4d
9970xa3 0x58 0xe8 0x0d
9980xc4 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
10050x61 0x08 0xa4 0x0d
10060x82 0x84 0xa6 0x4d
10070xa3 0x58 0xa8 0x0d
10080xc4 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
10150x64 0x84 0xc5 0x0c
10160x0c 0x88 0xc7 0x0c
1017
1018# CHECK: ld2.4h { v4, v5 }, [x3], x5
1019# CHECK: ld2.2s { v12, v13 }, [x0], x7
1020
10210x00 0x80 0xdf 0x0c
10220x00 0x80 0xdf 0x4c
10230x00 0x84 0xdf 0x0c
10240x00 0x84 0xdf 0x4c
10250x00 0x88 0xdf 0x0c
10260x00 0x88 0xdf 0x4c
10270x00 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
10370x64 0x84 0x85 0x0c
10380x0c 0x88 0x87 0x0c
1039
1040# CHECK: st2.4h { v4, v5 }, [x3], x5
1041# CHECK: st2.2s { v12, v13 }, [x0], x7
1042
10430x00 0x80 0x9f 0x0c
10440x00 0x80 0x9f 0x4c
10450x00 0x84 0x9f 0x0c
10460x00 0x84 0x9f 0x4c
10470x00 0x88 0x9f 0x0c
10480x00 0x88 0x9f 0x4c
10490x00 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
10590x21 0xc0 0x60 0x0d
10600x21 0xc0 0xe2 0x0d
10610x21 0xc0 0x60 0x4d
10620x21 0xc0 0xe2 0x4d
10630x21 0xc4 0x60 0x0d
10640x21 0xc4 0xe2 0x0d
10650x21 0xc4 0x60 0x4d
10660x21 0xc4 0xe2 0x4d
10670x21 0xc8 0x60 0x0d
10680x21 0xc8 0xe2 0x0d
10690x21 0xcc 0x60 0x4d
10700x21 0xcc 0xe2 0x4d
10710x21 0xcc 0x60 0x0d
10720x21 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
10890x21 0xc0 0xff 0x0d
10900x21 0xc0 0xff 0x4d
10910x21 0xc4 0xff 0x0d
10920x21 0xc4 0xff 0x4d
10930x21 0xc8 0xff 0x0d
10940x21 0xcc 0xff 0x4d
10950x21 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
11050x21 0x40 0x40 0x0c
11060x45 0x40 0x40 0x4c
11070x0a 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
11130x21 0x40 0x00 0x0c
11140x45 0x40 0x00 0x4c
11150x0a 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
11210x61 0x28 0xc4 0x0d
11220x82 0xa4 0xc5 0x4d
11230xa3 0x78 0xc6 0x0d
11240xc4 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
11310x61 0x28 0x84 0x0d
11320x82 0xa4 0x85 0x4d
11330xa3 0x78 0x86 0x0d
11340xc4 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
11410x61 0x28 0x9f 0x0d
11420x82 0xa4 0x9f 0x4d
11430xa3 0x78 0x9f 0x0d
11440xc4 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
11510x41 0x40 0xc3 0x0c
11520x42 0x40 0xc4 0x4c
11530x64 0x44 0xc5 0x0c
11540x87 0x44 0xc6 0x4c
11550x0c 0x48 0xc7 0x0c
11560x0a 0x48 0xc8 0x4c
11570x4f 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
11670x00 0x40 0xdf 0x0c
11680x00 0x40 0xdf 0x4c
11690x00 0x44 0xdf 0x0c
11700x00 0x44 0xdf 0x4c
11710x00 0x48 0xdf 0x0c
11720x00 0x48 0xdf 0x4c
11730x00 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
11830x41 0x40 0x83 0x0c
11840x42 0x40 0x84 0x4c
11850x64 0x44 0x85 0x0c
11860x87 0x44 0x86 0x4c
11870x0c 0x48 0x87 0x0c
11880x0a 0x48 0x88 0x4c
11890x4f 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
11990x00 0x40 0x9f 0x0c
12000x00 0x40 0x9f 0x4c
12010x00 0x44 0x9f 0x0c
12020x00 0x44 0x9f 0x4c
12030x00 0x48 0x9f 0x0c
12040x00 0x48 0x9f 0x4c
12050x00 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
12150x61 0x28 0x40 0x0d
12160x82 0xa4 0x40 0x4d
12170xc3 0x70 0x40 0x0d
12180xe4 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
12250x61 0x28 0xdf 0x0d
12260x82 0xa4 0xdf 0x4d
12270xa3 0x78 0xdf 0x0d
12280xc4 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
12350x61 0x28 0x00 0x0d
12360x82 0xa4 0x00 0x4d
12370xc3 0x70 0x00 0x0d
12380xe4 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
12450x21 0xe0 0x40 0x0d
12460x21 0xe0 0xc2 0x0d
12470x21 0xe0 0x40 0x4d
12480x21 0xe0 0xc2 0x4d
12490x21 0xe4 0x40 0x0d
12500x21 0xe4 0xc2 0x0d
12510x21 0xe4 0x40 0x4d
12520x21 0xe4 0xc2 0x4d
12530x21 0xe8 0x40 0x0d
12540x21 0xe8 0xc2 0x0d
12550x21 0xec 0x40 0x4d
12560x21 0xec 0xc2 0x4d
12570x21 0xec 0x40 0x0d
12580x21 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
12750x21 0xe0 0xdf 0x0d
12760x21 0xe0 0xdf 0x4d
12770x21 0xe4 0xdf 0x0d
12780x21 0xe4 0xdf 0x4d
12790x21 0xe8 0xdf 0x0d
12800x21 0xec 0xdf 0x4d
12810x21 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
12910x21 0x00 0x40 0x0c
12920x45 0x00 0x40 0x4c
12930x0a 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
12990x21 0x00 0x00 0x0c
13000x45 0x00 0x00 0x4c
13010x0a 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
13070x61 0x28 0xe4 0x0d
13080x82 0xa4 0xe5 0x4d
13090xa3 0x78 0xe6 0x0d
13100xc4 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
13170x61 0x28 0xff 0x0d
13180x82 0xa4 0xff 0x4d
13190xa3 0x78 0xff 0x0d
13200xc4 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
13270x61 0x28 0xa4 0x0d
13280x82 0xa4 0xa5 0x4d
13290xa3 0x78 0xa6 0x0d
13300xc4 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
13370x61 0x28 0xbf 0x0d
13380x82 0xa4 0xbf 0x4d
13390xa3 0x78 0xbf 0x0d
13400xc4 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
13470x41 0x00 0xc3 0x0c
13480x42 0x00 0xc4 0x4c
13490x64 0x04 0xc5 0x0c
13500x87 0x04 0xc6 0x4c
13510x0c 0x08 0xc7 0x0c
13520x0a 0x08 0xc8 0x4c
13530x4f 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
13630x00 0x00 0xdf 0x0c
13640x00 0x00 0xdf 0x4c
13650x00 0x04 0xdf 0x0c
13660x00 0x04 0xdf 0x4c
13670x00 0x08 0xdf 0x0c
13680x00 0x08 0xdf 0x4c
13690x00 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
13790x00 0x00 0x9f 0x0c
13800x00 0x00 0x9f 0x4c
13810x00 0x04 0x9f 0x0c
13820x00 0x04 0x9f 0x4c
13830x00 0x08 0x9f 0x0c
13840x00 0x08 0x9f 0x4c
13850x00 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
13950x41 0x00 0x83 0x0c
13960x42 0x00 0x84 0x4c
13970x64 0x04 0x85 0x0c
13980x87 0x04 0x86 0x4c
13990x0c 0x08 0x87 0x0c
14000x0a 0x08 0x88 0x4c
14010x4f 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
14110x61 0x28 0x60 0x0d
14120x82 0xa4 0x60 0x4d
14130xc3 0x70 0x60 0x0d
14140xe4 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
14210x61 0x28 0x20 0x0d
14220x82 0xa4 0x20 0x4d
14230xc3 0x70 0x20 0x0d
14240xe4 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
14310x21 0xe0 0x60 0x0d
14320x21 0xe0 0xe2 0x0d
14330x21 0xe0 0x60 0x4d
14340x21 0xe0 0xe2 0x4d
14350x21 0xe4 0x60 0x0d
14360x21 0xe4 0xe2 0x0d
14370x21 0xe4 0x60 0x4d
14380x21 0xe4 0xe2 0x4d
14390x21 0xe8 0x60 0x0d
14400x21 0xe8 0xe2 0x0d
14410x21 0xec 0x60 0x4d
14420x21 0xec 0xe2 0x4d
14430x21 0xec 0x60 0x0d
14440x21 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
14610x21 0xe0 0xff 0x0d
14620x21 0xe0 0xff 0x4d
14630x21 0xe4 0xff 0x0d
14640x21 0xe4 0xff 0x4d
14650x21 0xe8 0xff 0x0d
14660x21 0xec 0xff 0x4d
14670x21 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
14770x20 0xe4 0x00 0x2f
14780x20 0xe4 0x00 0x6f
14790x20 0xe4 0x00 0x0f
14800x20 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
14870x20 0x04 0x00 0x0f
14880x20 0x24 0x00 0x0f
14890x20 0x44 0x00 0x0f
14900x20 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
14970x20 0x04 0x00 0x4f
14980x20 0x24 0x00 0x4f
14990x20 0x44 0x00 0x4f
15000x20 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
15070x20 0x84 0x00 0x0f
15080x20 0xa4 0x00 0x0f
1509
1510# CHECK: movi.4h v0, #0x1
1511# CHECK: movi.4h v0, #0x1, lsl #8
1512
15130x20 0x84 0x00 0x4f
15140x20 0xa4 0x00 0x4f
1515
1516# CHECK: movi.8h v0, #0x1
1517# CHECK: movi.8h v0, #0x1, lsl #8
1518
15190x20 0x04 0x00 0x2f
15200x20 0x24 0x00 0x2f
15210x20 0x44 0x00 0x2f
15220x20 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
15290x20 0x04 0x00 0x6f
15300x20 0x24 0x00 0x6f
15310x20 0x44 0x00 0x6f
15320x20 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
15390x20 0x84 0x00 0x2f
15400x20 0xa4 0x00 0x2f
1541
1542# CHECK: mvni.4h v0, #0x1
1543# CHECK: mvni.4h v0, #0x1, lsl #8
1544
15450x20 0x84 0x00 0x6f
15460x20 0xa4 0x00 0x6f
1547
1548# CHECK: mvni.8h v0, #0x1
1549# CHECK: mvni.8h v0, #0x1, lsl #8
1550
15510x20 0xc4 0x00 0x2f
15520x20 0xd4 0x00 0x2f
15530x20 0xc4 0x00 0x6f
15540x20 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
15610x00 0x88 0x21 0x2e
15620x00 0x98 0x21 0x2e
15630x00 0x98 0xa1 0x2e
15640x00 0x98 0x21 0x0e
15650x00 0x88 0x21 0x0e
15660x00 0x88 0xa1 0x0e
15670x00 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
15810x00 0x18 0xa0 0x5f
15820x00 0x18 0xc0 0x5f
15830x00 0x58 0xa0 0x5f
15840x00 0x58 0xc0 0x5f
15850x00 0x98 0xa0 0x7f
15860x00 0x98 0xc0 0x7f
15870x00 0x98 0xa0 0x5f
15880x00 0x98 0xc0 0x5f
15890x00 0x38 0x70 0x5f
15900x00 0x38 0xa0 0x5f
15910x00 0x78 0x70 0x5f
15920x00 0xc8 0x70 0x5f
15930x00 0xc8 0xa0 0x5f
15940x00 0xb8 0x70 0x5f
15950x00 0xb8 0xa0 0x5f
15960x00 0xd8 0x70 0x5f
15970x00 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, #0x1
1808# CHECK: sli	d0, d0, #0x1
1809# CHECK: sqrshrn	b0, h0, #0x7
1810# CHECK: sqrshrn	h0, s0, #0xe
1811# CHECK: sqrshrn	s0, d0, #0x1d
1812# CHECK: sqrshrun	b0, h0, #0x7
1813# CHECK: sqrshrun	h0, s0, #0xe
1814# CHECK: sqrshrun	s0, d0, #0x1d
1815# CHECK: sqshlu	b0, b0, #0x1
1816# CHECK: sqshlu	h0, h0, #0x2
1817# CHECK: sqshlu	s0, s0, #0x3
1818# CHECK: sqshlu	d0, d0, #0x4
1819# CHECK: sqshl	b0, b0, #0x1
1820# CHECK: sqshl	h0, h0, #0x2
1821# CHECK: sqshl	s0, s0, #0x3
1822# CHECK: sqshl	d0, d0, #0x4
1823# CHECK: sqshrn	b0, h0, #0x7
1824# CHECK: sqshrn	h0, s0, #0xe
1825# CHECK: sqshrn	s0, d0, #0x1d
1826# CHECK: sqshrun	b0, h0, #0x7
1827# CHECK: sqshrun	h0, s0, #0xe
1828# CHECK: sqshrun	s0, d0, #0x1d
1829# CHECK: sri	d0, d0, #0x3f
1830# CHECK: srshr	d0, d0, #0x3f
1831# CHECK: srsra	d0, d0, #0x3f
1832# CHECK: sshr	d0, d0, #0x3f
1833# CHECK: ucvtf	s0, s0, #0x1f
1834# CHECK: ucvtf	d0, d0, #0x3e
1835# CHECK: uqrshrn	b0, h0, #0x7
1836# CHECK: uqrshrn	h0, s0, #0xe
1837# CHECK: uqrshrn	s0, d0, #0x1d
1838# CHECK: uqshl	b0, b0, #0x1
1839# CHECK: uqshl	h0, h0, #0x2
1840# CHECK: uqshl	s0, s0, #0x3
1841# CHECK: uqshl	d0, d0, #0x4
1842# CHECK: uqshrn	b0, h0, #0x7
1843# CHECK: uqshrn	h0, s0, #0xe
1844# CHECK: uqshrn	s0, d0, #0x1d
1845# CHECK: urshr	d0, d0, #0x3f
1846# CHECK: ursra	d0, d0, #0x3f
1847# CHECK: ushr	d0, d0, #0x3f
1848# CHECK: usra	d0, d0, #0x3f
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, #0x1f
2027# CHECK: fcvtzs.4s	v0, v0, #0x1e
2028# CHECK: fcvtzs.2d	v0, v0, #0x3d
2029# CHECK: fcvtzu.2s	v0, v0, #0x1f
2030# CHECK: fcvtzu.4s	v0, v0, #0x1e
2031# CHECK: fcvtzu.2d	v0, v0, #0x3d
2032# CHECK: rshrn.8b	v0, v0, #0x7
2033# CHECK: rshrn2.16b	v0, v0, #0x6
2034# CHECK: rshrn.4h	v0, v0, #0xd
2035# CHECK: rshrn2.8h	v0, v0, #0xc
2036# CHECK: rshrn.2s	v0, v0, #0x1b
2037# CHECK: rshrn2.4s	v0, v0, #0x1a
2038# CHECK: scvtf.2s	v0, v0, #0x1f
2039# CHECK: scvtf.4s	v0, v0, #0x1e
2040# CHECK: scvtf.2d	v0, v0, #0x3d
2041# CHECK: shl.8b	v0, v0, #0x1
2042# CHECK: shl.16b	v0, v0, #0x2
2043# CHECK: shl.4h	v0, v0, #0x3
2044# CHECK: shl.8h	v0, v0, #0x4
2045# CHECK: shl.2s	v0, v0, #0x5
2046# CHECK: shl.4s	v0, v0, #0x6
2047# CHECK: shl.2d	v0, v0, #0x7
2048# CHECK: shrn.8b	v0, v0, #0x7
2049# CHECK: shrn2.16b	v0, v0, #0x6
2050# CHECK: shrn.4h	v0, v0, #0xd
2051# CHECK: shrn2.8h	v0, v0, #0xc
2052# CHECK: shrn.2s	v0, v0, #0x1b
2053# CHECK: shrn2.4s	v0, v0, #0x1a
2054# CHECK: sli.8b	v0, v0, #0x1
2055# CHECK: sli.16b	v0, v0, #0x2
2056# CHECK: sli.4h	v0, v0, #0x3
2057# CHECK: sli.8h	v0, v0, #0x4
2058# CHECK: sli.2s	v0, v0, #0x5
2059# CHECK: sli.4s	v0, v0, #0x6
2060# CHECK: sli.2d	v0, v0, #0x7
2061# CHECK: sqrshrn.8b	v0, v0, #0x7
2062# CHECK: sqrshrn2.16b	v0, v0, #0x6
2063# CHECK: sqrshrn.4h	v0, v0, #0xd
2064# CHECK: sqrshrn2.8h	v0, v0, #0xc
2065# CHECK: sqrshrn.2s	v0, v0, #0x1b
2066# CHECK: sqrshrn2.4s	v0, v0, #0x1a
2067# CHECK: sqrshrun.8b	v0, v0, #0x7
2068# CHECK: sqrshrun2.16b	v0, v0, #0x6
2069# CHECK: sqrshrun.4h	v0, v0, #0xd
2070# CHECK: sqrshrun2.8h	v0, v0, #0xc
2071# CHECK: sqrshrun.2s	v0, v0, #0x1b
2072# CHECK: sqrshrun2.4s	v0, v0, #0x1a
2073# CHECK: sqshlu.8b	v0, v0, #0x1
2074# CHECK: sqshlu.16b	v0, v0, #0x2
2075# CHECK: sqshlu.4h	v0, v0, #0x3
2076# CHECK: sqshlu.8h	v0, v0, #0x4
2077# CHECK: sqshlu.2s	v0, v0, #0x5
2078# CHECK: sqshlu.4s	v0, v0, #0x6
2079# CHECK: sqshlu.2d	v0, v0, #0x7
2080# CHECK: sqshl.8b	v0, v0, #0x1
2081# CHECK: sqshl.16b	v0, v0, #0x2
2082# CHECK: sqshl.4h	v0, v0, #0x3
2083# CHECK: sqshl.8h	v0, v0, #0x4
2084# CHECK: sqshl.2s	v0, v0, #0x5
2085# CHECK: sqshl.4s	v0, v0, #0x6
2086# CHECK: sqshl.2d	v0, v0, #0x7
2087# CHECK: sqshrn.8b	v0, v0, #0x7
2088# CHECK: sqshrn2.16b	v0, v0, #0x6
2089# CHECK: sqshrn.4h	v0, v0, #0xd
2090# CHECK: sqshrn2.8h	v0, v0, #0xc
2091# CHECK: sqshrn.2s	v0, v0, #0x1b
2092# CHECK: sqshrn2.4s	v0, v0, #0x1a
2093# CHECK: sqshrun.8b	v0, v0, #0x7
2094# CHECK: sqshrun2.16b	v0, v0, #0x6
2095# CHECK: sqshrun.4h	v0, v0, #0xd
2096# CHECK: sqshrun2.8h	v0, v0, #0xc
2097# CHECK: sqshrun.2s	v0, v0, #0x1b
2098# CHECK: sqshrun2.4s	v0, v0, #0x1a
2099# CHECK: sri.8b	v0, v0, #0x7
2100# CHECK: sri.16b	v0, v0, #0x6
2101# CHECK: sri.4h	v0, v0, #0xd
2102# CHECK: sri.8h	v0, v0, #0xc
2103# CHECK: sri.2s	v0, v0, #0x1b
2104# CHECK: sri.4s	v0, v0, #0x1a
2105# CHECK: sri.2d	v0, v0, #0x39
2106# CHECK: srshr.8b	v0, v0, #0x7
2107# CHECK: srshr.16b	v0, v0, #0x6
2108# CHECK: srshr.4h	v0, v0, #0xd
2109# CHECK: srshr.8h	v0, v0, #0xc
2110# CHECK: srshr.2s	v0, v0, #0x1b
2111# CHECK: srshr.4s	v0, v0, #0x1a
2112# CHECK: srshr.2d	v0, v0, #0x39
2113# CHECK: srsra.8b	v0, v0, #0x7
2114# CHECK: srsra.16b	v0, v0, #0x6
2115# CHECK: srsra.4h	v0, v0, #0xd
2116# CHECK: srsra.8h	v0, v0, #0xc
2117# CHECK: srsra.2s	v0, v0, #0x1b
2118# CHECK: srsra.4s	v0, v0, #0x1a
2119# CHECK: srsra.2d	v0, v0, #0x39
2120# CHECK: sshll.8h	v0, v0, #0x1
2121# CHECK: sshll2.8h	v0, v0, #0x2
2122# CHECK: sshll.4s	v0, v0, #0x3
2123# CHECK: sshll2.4s	v0, v0, #0x4
2124# CHECK: sshll.2d	v0, v0, #0x5
2125# CHECK: sshll2.2d	v0, v0, #0x6
2126# CHECK: sshr.8b	v0, v0, #0x7
2127# CHECK: sshr.16b	v0, v0, #0x6
2128# CHECK: sshr.4h	v0, v0, #0xd
2129# CHECK: sshr.8h	v0, v0, #0xc
2130# CHECK: sshr.2s	v0, v0, #0x1b
2131# CHECK: sshr.4s	v0, v0, #0x1a
2132# CHECK: sshr.2d	v0, v0, #0x39
2133# CHECK: sshr.8b	v0, v0, #0x7
2134# CHECK: ssra.16b	v0, v0, #0x6
2135# CHECK: ssra.4h	v0, v0, #0xd
2136# CHECK: ssra.8h	v0, v0, #0xc
2137# CHECK: ssra.2s	v0, v0, #0x1b
2138# CHECK: ssra.4s	v0, v0, #0x1a
2139# CHECK: ssra.2d	v0, v0, #0x39
2140# CHECK: ssra		d0, d0, #0x40
2141# CHECK: ucvtf.2s	v0, v0, #0x1f
2142# CHECK: ucvtf.4s	v0, v0, #0x1e
2143# CHECK: ucvtf.2d	v0, v0, #0x3d
2144# CHECK: uqrshrn.8b	v0, v0, #0x7
2145# CHECK: uqrshrn2.16b	v0, v0, #0x6
2146# CHECK: uqrshrn.4h	v0, v0, #0xd
2147# CHECK: uqrshrn2.8h	v0, v0, #0xc
2148# CHECK: uqrshrn.2s	v0, v0, #0x1b
2149# CHECK: uqrshrn2.4s	v0, v0, #0x1a
2150# CHECK: uqshl.8b	v0, v0, #0x1
2151# CHECK: uqshl.16b	v0, v0, #0x2
2152# CHECK: uqshl.4h	v0, v0, #0x3
2153# CHECK: uqshl.8h	v0, v0, #0x4
2154# CHECK: uqshl.2s	v0, v0, #0x5
2155# CHECK: uqshl.4s	v0, v0, #0x6
2156# CHECK: uqshl.2d	v0, v0, #0x7
2157# CHECK: uqshrn.8b	v0, v0, #0x7
2158# CHECK: uqshrn2.16b	v0, v0, #0x6
2159# CHECK: uqshrn.4h	v0, v0, #0xd
2160# CHECK: uqshrn2.8h	v0, v0, #0xc
2161# CHECK: uqshrn.2s	v0, v0, #0x1b
2162# CHECK: uqshrn2.4s	v0, v0, #0x1a
2163# CHECK: urshr.8b	v0, v0, #0x7
2164# CHECK: urshr.16b	v0, v0, #0x6
2165# CHECK: urshr.4h	v0, v0, #0xd
2166# CHECK: urshr.8h	v0, v0, #0xc
2167# CHECK: urshr.2s	v0, v0, #0x1b
2168# CHECK: urshr.4s	v0, v0, #0x1a
2169# CHECK: urshr.2d	v0, v0, #0x39
2170# CHECK: ursra.8b	v0, v0, #0x7
2171# CHECK: ursra.16b	v0, v0, #0x6
2172# CHECK: ursra.4h	v0, v0, #0xd
2173# CHECK: ursra.8h	v0, v0, #0xc
2174# CHECK: ursra.2s	v0, v0, #0x1b
2175# CHECK: ursra.4s	v0, v0, #0x1a
2176# CHECK: ursra.2d	v0, v0, #0x39
2177# CHECK: ushll.8h	v0, v0, #0x1
2178# CHECK: ushll2.8h	v0, v0, #0x2
2179# CHECK: ushll.4s	v0, v0, #0x3
2180# CHECK: ushll2.4s	v0, v0, #0x4
2181# CHECK: ushll.2d	v0, v0, #0x5
2182# CHECK: ushll2.2d	v0, v0, #0x6
2183# CHECK: ushr.8b	v0, v0, #0x7
2184# CHECK: ushr.16b	v0, v0, #0x6
2185# CHECK: ushr.4h	v0, v0, #0xd
2186# CHECK: ushr.8h	v0, v0, #0xc
2187# CHECK: ushr.2s	v0, v0, #0x1b
2188# CHECK: ushr.4s	v0, v0, #0x1a
2189# CHECK: ushr.2d	v0, v0, #0x39
2190# CHECK: usra.8b	v0, v0, #0x7
2191# CHECK: usra.16b	v0, v0, #0x6
2192# CHECK: usra.4h	v0, v0, #0xd
2193# CHECK: usra.8h	v0, v0, #0xc
2194# CHECK: usra.2s	v0, v0, #0x1b
2195# CHECK: usra.4s	v0, v0, #0x1a
2196# CHECK: usra.2d	v0, v0, #0x39
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
22510x00 0x80 0x20 0x0e
22520x00 0x80 0x20 0x4e
22530x00 0x80 0xa0 0x0e
22540x00 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
22610x00 0x80 0x20 0x2e
22620x00 0x80 0x20 0x6e
22630x00 0x80 0xa0 0x2e
22640x00 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
22710x00 0x90 0x60 0x5e
22720x00 0x90 0xa0 0x5e
22730x00 0xb0 0x60 0x5e
22740x00 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
22810xaa 0xc5 0xc7 0x4d
22820xaa 0xc9 0xc7 0x4d
22830xaa 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
22890x00 0xd0 0x60 0x5e
22900x00 0xd0 0xa0 0x5e
2291# CHECK: sqdmull	s0, h0, h0
2292# CHECK: sqdmull	d0, s0, s0
2293
22940x00 0xd8 0xa1 0x7e
22950x00 0xd8 0xe1 0x7e
2296
2297# CHECK: frsqrte s0, s0
2298# CHECK: frsqrte d0, d0
2299
23000xca 0xcd 0xc7 0x4d
23010xea 0xc9 0xe7 0x4d
23020xea 0xe9 0xc7 0x4d
23030xea 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#===-------------------------------------------------------------------------===
23120x62 0xdc 0x21 0x5e
2313# CHECK: fmulx	s2, s3, s1
23140x62 0xdc 0x61 0x5e
2315# CHECK: fmulx	d2, d3, d1
2316
2317
2318# rdar://12511369
23190xe8 0x6b 0xdf 0x4c
2320# CHECK: ld1.4s	{ v8, v9, v10 }, [sp], #48
2321