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