• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 --disassemble < %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
1720x00 0x1c 0x20 0x0e
1730x00 0x1c 0x20 0x4e
174
175# CHECK: and.8b  v0, v0, v0
176# CHECK: and.16b v0, v0, v0
177
1780x00 0x1c 0x60 0x0e
179
180# CHECK: bic.8b  v0, v0, v0
181
1820x00 0x8c 0x20 0x2e
1830x00 0x3c 0x20 0x0e
1840x00 0x34 0x20 0x0e
1850x00 0x34 0x20 0x2e
1860x00 0x3c 0x20 0x2e
1870x00 0x8c 0x20 0x0e
1880x00 0xd4 0xa0 0x2e
1890x00 0xec 0x20 0x2e
1900x00 0xec 0xa0 0x2e
1910x00 0xd4 0x20 0x2e
1920x00 0xd4 0x20 0x0e
1930x00 0xe4 0x20 0x0e
1940x00 0xe4 0x20 0x2e
1950x00 0xe4 0xa0 0x2e
1960x00 0xfc 0x20 0x2e
1970x00 0xc4 0x20 0x2e
1980x00 0xc4 0x20 0x0e
1990x00 0xf4 0x20 0x2e
2000x00 0xf4 0x20 0x0e
2010x00 0xc4 0xa0 0x2e
2020x00 0xc4 0xa0 0x0e
2030x00 0xf4 0xa0 0x2e
2040x00 0xf4 0xa0 0x0e
2050x00 0xcc 0x20 0x0e
2060x00 0xcc 0xa0 0x0e
2070x00 0xdc 0x20 0x0e
2080x00 0xdc 0x20 0x2e
2090x00 0xfc 0x20 0x0e
2100x00 0xfc 0xa0 0x0e
2110x00 0xd4 0xa0 0x0e
2120x00 0x94 0x20 0x0e
2130x00 0x94 0x20 0x2e
2140x00 0x9c 0x20 0x0e
2150x00 0x9c 0x20 0x2e
2160x00 0x7c 0x20 0x0e
2170x00 0x74 0x20 0x0e
2180x00 0x04 0x20 0x0e
2190x00 0x24 0x20 0x0e
2200x00 0xa4 0x20 0x0e
2210x00 0x64 0x20 0x0e
2220x00 0xac 0x20 0x0e
2230x00 0x6c 0x20 0x0e
2240x00 0x0c 0x20 0x0e
2250x00 0xb4 0x60 0x0e
2260x00 0xb4 0x60 0x2e
2270x00 0x5c 0x20 0x0e
2280x00 0x4c 0x20 0x0e
2290x00 0x2c 0x20 0x0e
2300x00 0x14 0x20 0x0e
2310x00 0x54 0x20 0x0e
2320x00 0x44 0x20 0x0e
2330x00 0x84 0x20 0x2e
2340x00 0x7c 0x20 0x2e
2350x00 0x74 0x20 0x2e
2360x00 0x04 0x20 0x2e
2370x00 0x24 0x20 0x2e
2380x00 0xa4 0x20 0x2e
2390x00 0x64 0x20 0x2e
2400x00 0xac 0x20 0x2e
2410x00 0x6c 0x20 0x2e
2420x00 0x0c 0x20 0x2e
2430x00 0x5c 0x20 0x2e
2440x00 0x4c 0x20 0x2e
2450x00 0x2c 0x20 0x2e
2460x00 0x14 0x20 0x2e
2470x00 0x54 0x20 0x2e
2480x00 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
3180x00 0x1c 0xe0 0x2e
3190x00 0x1c 0xa0 0x2e
3200x00 0x1c 0x60 0x2e
3210x00 0x1c 0x20 0x2e
3220x00 0x1c 0xe0 0x0e
3230x00 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
3320x00 0x68 0x20 0x0e
3330x00 0x68 0x20 0x4e
3340x00 0x68 0x60 0x0e
3350x00 0x68 0x60 0x4e
3360x00 0x68 0xa0 0x0e
3370x00 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
3460x00 0x48 0x20 0x0e
3470x00 0x48 0x20 0x2e
3480x00 0x58 0x20 0x0e
3490x00 0xf8 0xa0 0x0e
3500x00 0xc8 0x21 0x0e
3510x00 0xc8 0x21 0x2e
3520x00 0xb8 0x21 0x0e
3530x00 0xb8 0x21 0x2e
3540x00 0xa8 0x21 0x0e
3550x00 0xa8 0x21 0x2e
3560x00 0xa8 0xa1 0x0e
3570x00 0xa8 0xa1 0x2e
3580x00 0xb8 0xa1 0x0e
3590x00 0xb8 0xa1 0x2e
3600x00 0xf8 0xa0 0x2e
3610x00 0xd8 0xa1 0x0e
3620x00 0xd8 0xa1 0x2e
3630x00 0xf8 0xa1 0x2e
3640x00 0xb8 0x20 0x2e
3650x00 0x58 0x20 0x2e
3660x00 0x58 0x60 0x2e
3670x00 0x18 0x20 0x0e
3680x00 0x08 0x20 0x2e
3690x00 0x08 0x20 0x0e
3700x00 0x68 0x20 0x0e
3710x00 0x28 0x20 0x0e
3720x00 0xd8 0x21 0x0e
3730x00 0x38 0x21 0x2e
3740x00 0x78 0x20 0x0e
3750x00 0x78 0x20 0x2e
3760x00 0x48 0x21 0x0e
3770x00 0x28 0x21 0x2e
3780x00 0x38 0x20 0x0e
3790x00 0x68 0x20 0x2e
3800x00 0x28 0x20 0x2e
3810x00 0xd8 0x21 0x2e
3820x00 0x48 0x21 0x2e
3830x00 0xc8 0xa1 0x0e
3840x00 0xc8 0xa1 0x2e
3850x00 0x38 0x20 0x2e
3860x00 0x28 0x21 0x0e
3870x00 0x48 0x20 0x0e
3880x00 0x48 0x20 0x2e
3890x00 0x58 0x20 0x0e
3900x00 0xf8 0xa0 0x0e
3910x00 0xc8 0x21 0x0e
3920x00 0xc8 0x21 0x2e
3930x00 0xb8 0x21 0x0e
3940x00 0xb8 0x21 0x2e
3950x00 0xa8 0x21 0x0e
3960x00 0xa8 0x21 0x2e
3970x00 0xa8 0xa1 0x0e
3980x00 0xa8 0xa1 0x2e
3990x00 0xb8 0xa1 0x0e
4000x00 0xb8 0xa1 0x2e
4010x00 0xf8 0xa0 0x2e
4020x00 0xd8 0xa1 0x0e
4030x00 0xd8 0xa1 0x2e
4040x00 0xf8 0xa1 0x2e
4050x00 0xb8 0x20 0x2e
4060x00 0x58 0x20 0x2e
4070x00 0x58 0x60 0x2e
4080x00 0x18 0x20 0x0e
4090x00 0x08 0x20 0x2e
4100x00 0x08 0x20 0x0e
4110x00 0x68 0x20 0x0e
4120x00 0x28 0x20 0x0e
4130x00 0xd8 0x21 0x0e
4140x00 0x38 0x21 0x2e
4150x00 0x78 0x20 0x0e
4160x00 0x78 0x20 0x2e
4170x00 0x48 0x21 0x0e
4180x00 0x28 0x21 0x2e
4190x00 0x38 0x20 0x0e
4200x00 0x68 0x20 0x2e
4210x00 0x28 0x20 0x2e
4220x00 0xd8 0x21 0x2e
4230x00 0x48 0x21 0x2e
4240x00 0xc8 0xa1 0x0e
4250x00 0xc8 0xa1 0x2e
4260x00 0x38 0x20 0x2e
4270x00 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
4710x00 0x98 0x20 0x0e
4720x00 0x98 0x20 0x4e
4730x00 0x98 0x60 0x0e
4740x00 0x98 0x60 0x4e
4750x00 0x98 0xa0 0x0e
4760x00 0x98 0xa0 0x4e
4770x00 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
4870x00 0x88 0x20 0x2e
4880x00 0x88 0x20 0x0e
4890x00 0x98 0x20 0x2e
4900x00 0xa8 0x20 0x0e
4910x00 0xd8 0xa0 0x0e
4920x00 0xc8 0xa0 0x2e
4930x00 0xc8 0xa0 0x0e
4940x00 0xd8 0xa0 0x2e
4950x00 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
5070x00 0x78 0x21 0x0e
5080x00 0x78 0x21 0x4e
5090x00 0x78 0x61 0x0e
5100x00 0x78 0x61 0x4e
5110x00 0x68 0x21 0x0e
5120x00 0x68 0x21 0x4e
5130x00 0x68 0x61 0x0e
5140x00 0x68 0x61 0x4e
5150x00 0x68 0x61 0x2e
5160x00 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
5330x20 0x14 0x00 0x2f
5340x20 0x34 0x00 0x2f
5350x20 0x54 0x00 0x2f
5360x20 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
5430x20 0x94 0x00 0x2f
5440x20 0x94 0x00 0x2f
5450x20 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
5520x20 0x14 0x00 0x6f
5530x20 0x34 0x00 0x6f
5540x20 0x54 0x00 0x6f
5550x20 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
5620x20 0x94 0x00 0x6f
5630x20 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
5690x00 0xf4 0x02 0x6f
570
571# CHECK: fmov.2d v0, #0.12500000
572
5730x00 0xf4 0x02 0x0f
5740x00 0xf4 0x02 0x4f
575
576# CHECK: fmov.2s v0, #0.12500000
577# CHECK: fmov.4s v0, #0.12500000
578
5790x20 0x14 0x00 0x0f
5800x20 0x34 0x00 0x0f
5810x20 0x54 0x00 0x0f
5820x20 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
5890x20 0x94 0x00 0x0f
5900x20 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
5960x20 0x14 0x00 0x4f
5970x20 0x34 0x00 0x4f
5980x20 0x54 0x00 0x4f
5990x20 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
6060x20 0x94 0x00 0x4f
6070x20 0xb4 0x00 0x4f
608
609# CHECK: orr.8h v0, #0x1
610# CHECK: orr.8h v0, #0x1, lsl #8
611
6120x21 0x70 0x40 0x0c
6130x42 0xa0 0x40 0x4c
6140x64 0x64 0x40 0x0c
6150x87 0x24 0x40 0x4c
6160x0c 0xa8 0x40 0x0c
6170x0a 0x68 0x40 0x4c
6180x2d 0xac 0x40 0x0c
6190x4f 0x7c 0x40 0x4c
6200xe0 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
6320x41 0x70 0xdf 0x0c
6330x41 0xa0 0xdf 0x0c
6340x41 0x60 0xdf 0x0c
6350x41 0x20 0xdf 0x0c
6360x42 0x70 0xdf 0x4c
6370x42 0xa0 0xdf 0x4c
6380x42 0x60 0xdf 0x4c
6390x42 0x20 0xdf 0x4c
6400x64 0x74 0xdf 0x0c
6410x64 0xa4 0xdf 0x0c
6420x64 0x64 0xdf 0x0c
6430x64 0x24 0xdf 0x0c
6440x87 0x74 0xdf 0x4c
6450x87 0xa4 0xdf 0x4c
6460x87 0x64 0xdf 0x4c
6470x87 0x24 0xdf 0x4c
6480x0c 0x78 0xdf 0x0c
6490x0c 0xa8 0xdf 0x0c
6500x0c 0x68 0xdf 0x0c
6510x0c 0x28 0xdf 0x0c
6520x0a 0x78 0xdf 0x4c
6530x0a 0xa8 0xdf 0x4c
6540x0a 0x68 0xdf 0x4c
6550x0a 0x28 0xdf 0x4c
6560x2d 0x7c 0xdf 0x0c
6570x2d 0xac 0xdf 0x0c
6580x2d 0x6c 0xdf 0x0c
6590x2d 0x2c 0xdf 0x0c
6600x4f 0x7c 0xdf 0x4c
6610x4f 0xac 0xdf 0x4c
6620x4f 0x6c 0xdf 0x4c
6630x4f 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
6980x21 0x70 0x00 0x0c
6990x42 0xa0 0x00 0x4c
7000x64 0x64 0x00 0x0c
7010x87 0x24 0x00 0x4c
7020x0c 0xa8 0x00 0x0c
7030x0a 0x68 0x00 0x4c
7040x2d 0xac 0x00 0x0c
7050x4f 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
7160x61 0x08 0x40 0x0d
7170x82 0x84 0x40 0x4d
7180xa3 0x58 0x40 0x0d
7190xc4 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
7260x61 0x08 0xdf 0x0d
7270x82 0x84 0xdf 0x4d
7280xa3 0x58 0xdf 0x0d
7290xc4 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
7360x61 0x08 0x00 0x0d
7370x82 0x84 0x00 0x4d
7380xa3 0x58 0x00 0x0d
7390xc4 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
7460x61 0x08 0x9f 0x0d
7470x82 0x84 0x9f 0x4d
7480xa3 0x58 0x9f 0x0d
7490xc4 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
7560x61 0x08 0xc4 0x0d
7570x82 0x84 0xc5 0x4d
7580xa3 0x58 0xc6 0x0d
7590xc4 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
7660x61 0x08 0x84 0x0d
7670x82 0x84 0x85 0x4d
7680xa3 0x58 0x86 0x0d
7690xc4 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
7760x41 0x70 0xc3 0x0c
7770x42 0xa0 0xc4 0x4c
7780x64 0x64 0xc5 0x0c
7790x87 0x24 0xc6 0x4c
7800x0c 0xa8 0xc7 0x0c
7810x0a 0x68 0xc8 0x4c
7820x2d 0xac 0xc9 0x0c
7830x4f 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
7940x41 0x70 0x83 0x0c
7950x42 0xa0 0x84 0x4c
7960x64 0x64 0x85 0x0c
7970x87 0x24 0x86 0x4c
7980x0c 0xa8 0x87 0x0c
7990x0a 0x68 0x88 0x4c
8000x2d 0xac 0x89 0x0c
8010x4f 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
8120x41 0x70 0x9f 0x0c
8130x41 0xa0 0x9f 0x0c
8140x41 0x60 0x9f 0x0c
8150x41 0x20 0x9f 0x0c
8160x42 0x70 0x9f 0x4c
8170x42 0xa0 0x9f 0x4c
8180x42 0x60 0x9f 0x4c
8190x42 0x20 0x9f 0x4c
8200x64 0x74 0x9f 0x0c
8210x64 0xa4 0x9f 0x0c
8220x64 0x64 0x9f 0x0c
8230x64 0x24 0x9f 0x0c
8240x87 0x74 0x9f 0x4c
8250x87 0xa4 0x9f 0x4c
8260x87 0x64 0x9f 0x4c
8270x87 0x24 0x9f 0x4c
8280x0c 0x78 0x9f 0x0c
8290x0c 0xa8 0x9f 0x0c
8300x0c 0x68 0x9f 0x0c
8310x0c 0x28 0x9f 0x0c
8320x0a 0x78 0x9f 0x4c
8330x0a 0xa8 0x9f 0x4c
8340x0a 0x68 0x9f 0x4c
8350x0a 0x28 0x9f 0x4c
8360x2d 0x7c 0x9f 0x0c
8370x2d 0xac 0x9f 0x0c
8380x2d 0x6c 0x9f 0x0c
8390x2d 0x2c 0x9f 0x0c
8400x4f 0x7c 0x9f 0x4c
8410x4f 0xac 0x9f 0x4c
8420x4f 0x6c 0x9f 0x4c
8430x4f 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
8780x21 0xc0 0x40 0x0d
8790x21 0xc0 0xc2 0x0d
8800x64 0xc4 0x40 0x0d
8810x64 0xc4 0xc5 0x0d
8820xa9 0xc8 0x40 0x0d
8830xa9 0xc8 0xc6 0x0d
8840xec 0xcc 0x40 0x0d
8850xec 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
8960x21 0xc0 0xdf 0x0d
8970x21 0xc4 0xdf 0x0d
8980x21 0xc8 0xdf 0x0d
8990x21 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
9060x45 0x80 0x40 0x4c
9070x0a 0x88 0x40 0x0c
908
909# CHECK: ld2.16b { v5, v6 }, [x2]
910# CHECK: ld2.2s { v10, v11 }, [x0]
911
9120x45 0x80 0x00 0x4c
9130x0a 0x88 0x00 0x0c
914
915# CHECK: st2.16b { v5, v6 }, [x2]
916# CHECK: st2.2s { v10, v11 }, [x0]
917
9180x61 0x08 0x20 0x0d
9190x82 0x84 0x20 0x4d
9200xc3 0x50 0x20 0x0d
9210xe4 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
9280x61 0x08 0xbf 0x0d
9290x82 0x84 0xbf 0x4d
9300xa3 0x58 0xbf 0x0d
9310xc4 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
9380x61 0x08 0x60 0x0d
9390x82 0x84 0x60 0x4d
9400xc3 0x50 0x60 0x0d
9410xe4 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
9480x61 0x08 0xff 0x0d
9490x82 0x84 0xff 0x4d
9500xa3 0x58 0xff 0x0d
9510xc4 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
9580x61 0x08 0xe4 0x0d
9590x82 0x84 0xe6 0x4d
9600xa3 0x58 0xe8 0x0d
9610xc4 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
9680x61 0x08 0xa4 0x0d
9690x82 0x84 0xa6 0x4d
9700xa3 0x58 0xa8 0x0d
9710xc4 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
9780x64 0x84 0xc5 0x0c
9790x0c 0x88 0xc7 0x0c
980
981# CHECK: ld2.4h { v4, v5 }, [x3], x5
982# CHECK: ld2.2s { v12, v13 }, [x0], x7
983
9840x00 0x80 0xdf 0x0c
9850x00 0x80 0xdf 0x4c
9860x00 0x84 0xdf 0x0c
9870x00 0x84 0xdf 0x4c
9880x00 0x88 0xdf 0x0c
9890x00 0x88 0xdf 0x4c
9900x00 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
10000x64 0x84 0x85 0x0c
10010x0c 0x88 0x87 0x0c
1002
1003# CHECK: st2.4h { v4, v5 }, [x3], x5
1004# CHECK: st2.2s { v12, v13 }, [x0], x7
1005
10060x00 0x80 0x9f 0x0c
10070x00 0x80 0x9f 0x4c
10080x00 0x84 0x9f 0x0c
10090x00 0x84 0x9f 0x4c
10100x00 0x88 0x9f 0x0c
10110x00 0x88 0x9f 0x4c
10120x00 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
10220x21 0xc0 0x60 0x0d
10230x21 0xc0 0xe2 0x0d
10240x21 0xc0 0x60 0x4d
10250x21 0xc0 0xe2 0x4d
10260x21 0xc4 0x60 0x0d
10270x21 0xc4 0xe2 0x0d
10280x21 0xc4 0x60 0x4d
10290x21 0xc4 0xe2 0x4d
10300x21 0xc8 0x60 0x0d
10310x21 0xc8 0xe2 0x0d
10320x21 0xcc 0x60 0x4d
10330x21 0xcc 0xe2 0x4d
10340x21 0xcc 0x60 0x0d
10350x21 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
10520x21 0xc0 0xff 0x0d
10530x21 0xc0 0xff 0x4d
10540x21 0xc4 0xff 0x0d
10550x21 0xc4 0xff 0x4d
10560x21 0xc8 0xff 0x0d
10570x21 0xcc 0xff 0x4d
10580x21 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
10680x21 0x40 0x40 0x0c
10690x45 0x40 0x40 0x4c
10700x0a 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
10760x21 0x40 0x00 0x0c
10770x45 0x40 0x00 0x4c
10780x0a 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
10840x61 0x28 0xc4 0x0d
10850x82 0xa4 0xc5 0x4d
10860xa3 0x78 0xc6 0x0d
10870xc4 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
10940x61 0x28 0x84 0x0d
10950x82 0xa4 0x85 0x4d
10960xa3 0x78 0x86 0x0d
10970xc4 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
11040x61 0x28 0x9f 0x0d
11050x82 0xa4 0x9f 0x4d
11060xa3 0x78 0x9f 0x0d
11070xc4 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
11140x41 0x40 0xc3 0x0c
11150x42 0x40 0xc4 0x4c
11160x64 0x44 0xc5 0x0c
11170x87 0x44 0xc6 0x4c
11180x0c 0x48 0xc7 0x0c
11190x0a 0x48 0xc8 0x4c
11200x4f 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
11300x00 0x40 0xdf 0x0c
11310x00 0x40 0xdf 0x4c
11320x00 0x44 0xdf 0x0c
11330x00 0x44 0xdf 0x4c
11340x00 0x48 0xdf 0x0c
11350x00 0x48 0xdf 0x4c
11360x00 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
11460x41 0x40 0x83 0x0c
11470x42 0x40 0x84 0x4c
11480x64 0x44 0x85 0x0c
11490x87 0x44 0x86 0x4c
11500x0c 0x48 0x87 0x0c
11510x0a 0x48 0x88 0x4c
11520x4f 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
11620x00 0x40 0x9f 0x0c
11630x00 0x40 0x9f 0x4c
11640x00 0x44 0x9f 0x0c
11650x00 0x44 0x9f 0x4c
11660x00 0x48 0x9f 0x0c
11670x00 0x48 0x9f 0x4c
11680x00 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
11780x61 0x28 0x40 0x0d
11790x82 0xa4 0x40 0x4d
11800xc3 0x70 0x40 0x0d
11810xe4 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
11880x61 0x28 0xdf 0x0d
11890x82 0xa4 0xdf 0x4d
11900xa3 0x78 0xdf 0x0d
11910xc4 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
11980x61 0x28 0x00 0x0d
11990x82 0xa4 0x00 0x4d
12000xc3 0x70 0x00 0x0d
12010xe4 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
12080x21 0xe0 0x40 0x0d
12090x21 0xe0 0xc2 0x0d
12100x21 0xe0 0x40 0x4d
12110x21 0xe0 0xc2 0x4d
12120x21 0xe4 0x40 0x0d
12130x21 0xe4 0xc2 0x0d
12140x21 0xe4 0x40 0x4d
12150x21 0xe4 0xc2 0x4d
12160x21 0xe8 0x40 0x0d
12170x21 0xe8 0xc2 0x0d
12180x21 0xec 0x40 0x4d
12190x21 0xec 0xc2 0x4d
12200x21 0xec 0x40 0x0d
12210x21 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
12380x21 0xe0 0xdf 0x0d
12390x21 0xe0 0xdf 0x4d
12400x21 0xe4 0xdf 0x0d
12410x21 0xe4 0xdf 0x4d
12420x21 0xe8 0xdf 0x0d
12430x21 0xec 0xdf 0x4d
12440x21 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
12540x21 0x00 0x40 0x0c
12550x45 0x00 0x40 0x4c
12560x0a 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
12620x21 0x00 0x00 0x0c
12630x45 0x00 0x00 0x4c
12640x0a 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
12700x61 0x28 0xe4 0x0d
12710x82 0xa4 0xe5 0x4d
12720xa3 0x78 0xe6 0x0d
12730xc4 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
12800x61 0x28 0xff 0x0d
12810x82 0xa4 0xff 0x4d
12820xa3 0x78 0xff 0x0d
12830xc4 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
12900x61 0x28 0xa4 0x0d
12910x82 0xa4 0xa5 0x4d
12920xa3 0x78 0xa6 0x0d
12930xc4 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
13000x61 0x28 0xbf 0x0d
13010x82 0xa4 0xbf 0x4d
13020xa3 0x78 0xbf 0x0d
13030xc4 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
13100x41 0x00 0xc3 0x0c
13110x42 0x00 0xc4 0x4c
13120x64 0x04 0xc5 0x0c
13130x87 0x04 0xc6 0x4c
13140x0c 0x08 0xc7 0x0c
13150x0a 0x08 0xc8 0x4c
13160x4f 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
13260x00 0x00 0xdf 0x0c
13270x00 0x00 0xdf 0x4c
13280x00 0x04 0xdf 0x0c
13290x00 0x04 0xdf 0x4c
13300x00 0x08 0xdf 0x0c
13310x00 0x08 0xdf 0x4c
13320x00 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
13420x00 0x00 0x9f 0x0c
13430x00 0x00 0x9f 0x4c
13440x00 0x04 0x9f 0x0c
13450x00 0x04 0x9f 0x4c
13460x00 0x08 0x9f 0x0c
13470x00 0x08 0x9f 0x4c
13480x00 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
13580x41 0x00 0x83 0x0c
13590x42 0x00 0x84 0x4c
13600x64 0x04 0x85 0x0c
13610x87 0x04 0x86 0x4c
13620x0c 0x08 0x87 0x0c
13630x0a 0x08 0x88 0x4c
13640x4f 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
13740x61 0x28 0x60 0x0d
13750x82 0xa4 0x60 0x4d
13760xc3 0x70 0x60 0x0d
13770xe4 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
13840x61 0x28 0x20 0x0d
13850x82 0xa4 0x20 0x4d
13860xc3 0x70 0x20 0x0d
13870xe4 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
13940x21 0xe0 0x60 0x0d
13950x21 0xe0 0xe2 0x0d
13960x21 0xe0 0x60 0x4d
13970x21 0xe0 0xe2 0x4d
13980x21 0xe4 0x60 0x0d
13990x21 0xe4 0xe2 0x0d
14000x21 0xe4 0x60 0x4d
14010x21 0xe4 0xe2 0x4d
14020x21 0xe8 0x60 0x0d
14030x21 0xe8 0xe2 0x0d
14040x21 0xec 0x60 0x4d
14050x21 0xec 0xe2 0x4d
14060x21 0xec 0x60 0x0d
14070x21 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
14240x21 0xe0 0xff 0x0d
14250x21 0xe0 0xff 0x4d
14260x21 0xe4 0xff 0x0d
14270x21 0xe4 0xff 0x4d
14280x21 0xe8 0xff 0x0d
14290x21 0xec 0xff 0x4d
14300x21 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
14400x20 0xe4 0x00 0x2f
14410x20 0xe4 0x00 0x6f
14420x20 0xe4 0x00 0x0f
14430x20 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
14500x20 0x04 0x00 0x0f
14510x20 0x24 0x00 0x0f
14520x20 0x44 0x00 0x0f
14530x20 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
14600x20 0x04 0x00 0x4f
14610x20 0x24 0x00 0x4f
14620x20 0x44 0x00 0x4f
14630x20 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
14700x20 0x84 0x00 0x0f
14710x20 0xa4 0x00 0x0f
1472
1473# CHECK: movi.4h v0, #0x1
1474# CHECK: movi.4h v0, #0x1, lsl #8
1475
14760x20 0x84 0x00 0x4f
14770x20 0xa4 0x00 0x4f
1478
1479# CHECK: movi.8h v0, #0x1
1480# CHECK: movi.8h v0, #0x1, lsl #8
1481
14820x20 0x04 0x00 0x2f
14830x20 0x24 0x00 0x2f
14840x20 0x44 0x00 0x2f
14850x20 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
14920x20 0x04 0x00 0x6f
14930x20 0x24 0x00 0x6f
14940x20 0x44 0x00 0x6f
14950x20 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
15020x20 0x84 0x00 0x2f
15030x20 0xa4 0x00 0x2f
1504
1505# CHECK: mvni.4h v0, #0x1
1506# CHECK: mvni.4h v0, #0x1, lsl #8
1507
15080x20 0x84 0x00 0x6f
15090x20 0xa4 0x00 0x6f
1510
1511# CHECK: mvni.8h v0, #0x1
1512# CHECK: mvni.8h v0, #0x1, lsl #8
1513
15140x20 0xc4 0x00 0x2f
15150x20 0xd4 0x00 0x2f
15160x20 0xc4 0x00 0x6f
15170x20 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
15240x00 0x88 0x21 0x2e
15250x00 0x98 0x21 0x2e
15260x00 0x98 0xa1 0x2e
15270x00 0x98 0x21 0x0e
15280x00 0x88 0x21 0x0e
15290x00 0x88 0xa1 0x0e
15300x00 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
15440x00 0x18 0xa0 0x5f
15450x00 0x18 0xc0 0x5f
15460x00 0x58 0xa0 0x5f
15470x00 0x58 0xc0 0x5f
15480x00 0x98 0xa0 0x7f
15490x00 0x98 0xc0 0x7f
15500x00 0x98 0xa0 0x5f
15510x00 0x98 0xc0 0x5f
15520x00 0x38 0x70 0x5f
15530x00 0x38 0xa0 0x5f
15540x00 0x78 0x70 0x5f
15550x00 0xc8 0x70 0x5f
15560x00 0xc8 0xa0 0x5f
15570x00 0xb8 0x70 0x5f
15580x00 0xb8 0xa0 0x5f
15590x00 0xd8 0x70 0x5f
15600x00 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
22140x00 0x80 0x20 0x0e
22150x00 0x80 0x20 0x4e
22160x00 0x80 0xa0 0x0e
22170x00 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
22240x00 0x80 0x20 0x2e
22250x00 0x80 0x20 0x6e
22260x00 0x80 0xa0 0x2e
22270x00 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
22340x00 0x90 0x60 0x5e
22350x00 0x90 0xa0 0x5e
22360x00 0xb0 0x60 0x5e
22370x00 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
22440xaa 0xc5 0xc7 0x4d
22450xaa 0xc9 0xc7 0x4d
22460xaa 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
22520x00 0xd0 0x60 0x5e
22530x00 0xd0 0xa0 0x5e
2254# CHECK: sqdmull	s0, h0, h0
2255# CHECK: sqdmull	d0, s0, s0
2256
22570x00 0xd8 0xa1 0x7e
22580x00 0xd8 0xe1 0x7e
2259
2260# CHECK: frsqrte s0, s0
2261# CHECK: frsqrte d0, d0
2262
22630xca 0xcd 0xc7 0x4d
22640xea 0xc9 0xe7 0x4d
22650xea 0xe9 0xc7 0x4d
22660xea 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#===-------------------------------------------------------------------------===
22750x62 0xdc 0x21 0x5e
2276# CHECK: fmulx	s2, s3, s1
22770x62 0xdc 0x61 0x5e
2278# CHECK: fmulx	d2, d3, d1
2279
2280
2281# rdar://12511369
22820xe8 0x6b 0xdf 0x4c
2283# CHECK: ld1.4s	{ v8, v9, v10 }, [sp], #48
2284