1; RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -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  bif.8b v0, v0, v0
444  bit.8b v0, v0, v0
445  bsl.8b v0, v0, v0
446  eor.8b v0, v0, v0
447  orn.8b v0, v0, v0
448  orr.8b v0, v0, v1
449
450; CHECK: bif.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x2e]
451; CHECK: bit.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xa0,0x2e]
452; CHECK: bsl.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x60,0x2e]
453; CHECK: eor.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x20,0x2e]
454; CHECK: orn.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x0e]
455; CHECK: orr.8b v0, v0, v1              ; encoding: [0x00,0x1c,0xa1,0x0e]
456
457  sadalp.4h   v0, v0
458  sadalp.8h  v0, v0
459  sadalp.2s   v0, v0
460  sadalp.4s   v0, v0
461  sadalp.1d   v0, v0
462  sadalp.2d   v0, v0
463
464; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
465; CHECK: sadalp.8h	v0, v0          ; encoding: [0x00,0x68,0x20,0x4e]
466; CHECK: sadalp.2s	v0, v0          ; encoding: [0x00,0x68,0x60,0x0e]
467; CHECK: sadalp.4s	v0, v0          ; encoding: [0x00,0x68,0x60,0x4e]
468; CHECK: sadalp.1d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x0e]
469; CHECK: sadalp.2d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x4e]
470
471  cls.8b      v0, v0
472  clz.8b      v0, v0
473  cnt.8b      v0, v0
474  fabs.2s     v0, v0
475  fneg.2s     v0, v0
476  frecpe.2s   v0, v0
477  frinta.2s   v0, v0
478  frintx.2s   v0, v0
479  frinti.2s   v0, v0
480  frintm.2s   v0, v0
481  frintn.2s   v0, v0
482  frintp.2s   v0, v0
483  frintz.2s   v0, v0
484  frsqrte.2s  v0, v0
485  fsqrt.2s    v0, v0
486  neg.8b      v0, v0
487  not.8b      v0, v0
488  rbit.8b     v0, v0
489  rev16.8b    v0, v0
490  rev32.8b    v0, v0
491  rev64.8b    v0, v0
492  sadalp.4h   v0, v0
493  saddlp.4h	  v0, v0
494  scvtf.2s    v0, v0
495  sqabs.8b    v0, v0
496  sqneg.8b    v0, v0
497  sqxtn.8b    v0, v0
498  sqxtun.8b   v0, v0
499  suqadd.8b   v0, v0
500  uadalp.4h   v0, v0
501  uaddlp.4h   v0, v0
502  ucvtf.2s    v0, v0
503  uqxtn.8b    v0, v0
504  urecpe.2s   v0, v0
505  ursqrte.2s  v0, v0
506  usqadd.8b   v0, v0
507  xtn.8b      v0, v0
508  shll.8h v1, v2, #8
509  shll.4s v3, v4, #16
510  shll.2d v5, v6, #32
511  shll2.8h v7, v8, #8
512  shll2.4s v9, v10, #16
513  shll2.2d v11, v12, #32
514  shll v1.8h, v2.8b, #8
515  shll v1.4s, v2.4h, #16
516  shll v1.2d, v2.2s, #32
517  shll2 v1.8h, v2.16b, #8
518  shll2 v1.4s, v2.8h, #16
519  shll2 v1.2d, v2.4s, #32
520
521; CHECK: cls.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x0e]
522; CHECK: clz.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x2e]
523; CHECK: cnt.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x0e]
524; CHECK: fabs.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x0e]
525; CHECK: fneg.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x2e]
526; CHECK: frecpe.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x0e]
527; CHECK: frinta.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x2e]
528; CHECK: frintx.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x2e]
529; CHECK: frinti.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x2e]
530; CHECK: frintm.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x0e]
531; CHECK: frintn.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x0e]
532; CHECK: frintp.2s	v0, v0          ; encoding: [0x00,0x88,0xa1,0x0e]
533; CHECK: frintz.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x0e]
534; CHECK: frsqrte.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x2e]
535; CHECK: fsqrt.2s	v0, v0          ; encoding: [0x00,0xf8,0xa1,0x2e]
536; CHECK: neg.8b	v0, v0                  ; encoding: [0x00,0xb8,0x20,0x2e]
537; CHECK: mvn.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x2e]
538; CHECK: rbit.8b	v0, v0                  ; encoding: [0x00,0x58,0x60,0x2e]
539; CHECK: rev16.8b	v0, v0          ; encoding: [0x00,0x18,0x20,0x0e]
540; CHECK: rev32.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x2e]
541; CHECK: rev64.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x0e]
542; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
543; CHECK: saddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x0e]
544; CHECK: scvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x0e]
545; CHECK: sqabs.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x0e]
546; CHECK: sqneg.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x2e]
547; CHECK: sqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x0e]
548; CHECK: sqxtun.8b	v0, v0          ; encoding: [0x00,0x28,0x21,0x2e]
549; CHECK: suqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x0e]
550; CHECK: uadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x2e]
551; CHECK: uaddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x2e]
552; CHECK: ucvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x2e]
553; CHECK: uqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x2e]
554; CHECK: urecpe.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x0e]
555; CHECK: ursqrte.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x2e]
556; CHECK: usqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x2e]
557; CHECK: xtn.8b	v0, v0                  ; encoding: [0x00,0x28,0x21,0x0e]
558; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
559; CHECK: shll.4s	v3, v4, #16     ; encoding: [0x83,0x38,0x61,0x2e]
560; CHECK: shll.2d	v5, v6, #32     ; encoding: [0xc5,0x38,0xa1,0x2e]
561; CHECK: shll2.8h	v7, v8, #8      ; encoding: [0x07,0x39,0x21,0x6e]
562; CHECK: shll2.4s	v9, v10, #16    ; encoding: [0x49,0x39,0x61,0x6e]
563; CHECK: shll2.2d	v11, v12, #32   ; encoding: [0x8b,0x39,0xa1,0x6e]
564; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
565; CHECK: shll.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x2e]
566; CHECK: shll.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x2e]
567; CHECK: shll2.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x6e]
568; CHECK: shll2.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x6e]
569; CHECK: shll2.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x6e]
570
571
572  cmeq.8b   v0, v0, #0
573  cmeq.16b  v0, v0, #0
574  cmeq.4h   v0, v0, #0
575  cmeq.8h   v0, v0, #0
576  cmeq.2s   v0, v0, #0
577  cmeq.4s   v0, v0, #0
578  cmeq.2d   v0, v0, #0
579
580; CHECK: cmeq.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x0e]
581; CHECK: cmeq.16b	v0, v0, #0      ; encoding: [0x00,0x98,0x20,0x4e]
582; CHECK: cmeq.4h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x0e]
583; CHECK: cmeq.8h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x4e]
584; CHECK: cmeq.2s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x0e]
585; CHECK: cmeq.4s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x4e]
586; CHECK: cmeq.2d	v0, v0, #0              ; encoding: [0x00,0x98,0xe0,0x4e]
587
588  cmge.8b   v0, v0, #0
589  cmgt.8b   v0, v0, #0
590  cmle.8b   v0, v0, #0
591  cmlt.8b   v0, v0, #0
592  fcmeq.2s  v0, v0, #0
593  fcmge.2s  v0, v0, #0
594  fcmgt.2s  v0, v0, #0
595  fcmle.2s  v0, v0, #0
596  fcmlt.2s  v0, v0, #0
597
598; ARM verbose mode aliases
599  cmlt v8.8b, v14.8b, #0
600  cmlt v8.16b, v14.16b, #0
601  cmlt v8.4h, v14.4h, #0
602  cmlt v8.8h, v14.8h, #0
603  cmlt v8.2s, v14.2s, #0
604  cmlt v8.4s, v14.4s, #0
605  cmlt v8.2d, v14.2d, #0
606
607; CHECK: cmge.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x2e]
608; CHECK: cmgt.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x0e]
609; CHECK: cmle.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x2e]
610; CHECK: cmlt.8b	v0, v0, #0              ; encoding: [0x00,0xa8,0x20,0x0e]
611; CHECK: fcmeq.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x0e]
612; CHECK: fcmge.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x2e]
613; CHECK: fcmgt.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x0e]
614; CHECK: fcmle.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x2e]
615; CHECK: fcmlt.2s	v0, v0, #0.0      ; encoding: [0x00,0xe8,0xa0,0x0e]
616; CHECK: cmlt.8b	v8, v14, #0             ; encoding: [0xc8,0xa9,0x20,0x0e]
617; CHECK: cmlt.16b	v8, v14, #0     ; encoding: [0xc8,0xa9,0x20,0x4e]
618; CHECK: cmlt.4h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x0e]
619; CHECK: cmlt.8h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x4e]
620; CHECK: cmlt.2s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x0e]
621; CHECK: cmlt.4s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x4e]
622; CHECK: cmlt.2d	v8, v14, #0             ; encoding: [0xc8,0xa9,0xe0,0x4e]
623
624
625;===-------------------------------------------------------------------------===
626; AdvSIMD Floating-point <-> Integer Conversions
627;===-------------------------------------------------------------------------===
628
629  fcvtas.2s   v0, v0
630  fcvtas.4s   v0, v0
631  fcvtas.2d   v0, v0
632  fcvtas      s0, s0
633  fcvtas      d0, d0
634
635; CHECK: fcvtas.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x0e]
636; CHECK: fcvtas.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x4e]
637; CHECK: fcvtas.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x4e]
638; CHECK: fcvtas     s0, s0           ; encoding: [0x00,0xc8,0x21,0x5e]
639; CHECK: fcvtas     d0, d0           ; encoding: [0x00,0xc8,0x61,0x5e]
640
641  fcvtau.2s   v0, v0
642  fcvtau.4s   v0, v0
643  fcvtau.2d   v0, v0
644  fcvtau      s0, s0
645  fcvtau      d0, d0
646
647; CHECK: fcvtau.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x2e]
648; CHECK: fcvtau.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x6e]
649; CHECK: fcvtau.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x6e]
650; CHECK: fcvtau     s0, s0           ; encoding: [0x00,0xc8,0x21,0x7e]
651; CHECK: fcvtau     d0, d0           ; encoding: [0x00,0xc8,0x61,0x7e]
652
653  fcvtl   v1.4s, v5.4h
654  fcvtl   v2.2d, v6.2s
655  fcvtl2  v3.4s, v7.8h
656  fcvtl2  v4.2d, v8.4s
657
658; CHECK: fcvtl	v1.4s, v5.4h            ; encoding: [0xa1,0x78,0x21,0x0e]
659; CHECK: fcvtl	v2.2d, v6.2s            ; encoding: [0xc2,0x78,0x61,0x0e]
660; CHECK: fcvtl2	v3.4s, v7.8h            ; encoding: [0xe3,0x78,0x21,0x4e]
661; CHECK: fcvtl2	v4.2d, v8.4s            ; encoding: [0x04,0x79,0x61,0x4e]
662
663  fcvtms.2s  v0, v0
664  fcvtms.4s  v0, v0
665  fcvtms.2d  v0, v0
666  fcvtms     s0, s0
667  fcvtms     d0, d0
668
669; CHECK: fcvtms.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x0e]
670; CHECK: fcvtms.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x4e]
671; CHECK: fcvtms.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x4e]
672; CHECK: fcvtms    s0, s0            ; encoding: [0x00,0xb8,0x21,0x5e]
673; CHECK: fcvtms    d0, d0            ; encoding: [0x00,0xb8,0x61,0x5e]
674
675  fcvtmu.2s   v0, v0
676  fcvtmu.4s   v0, v0
677  fcvtmu.2d   v0, v0
678  fcvtmu      s0, s0
679  fcvtmu      d0, d0
680
681; CHECK: fcvtmu.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x2e]
682; CHECK: fcvtmu.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x6e]
683; CHECK: fcvtmu.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x6e]
684; CHECK: fcvtmu    s0, s0            ; encoding: [0x00,0xb8,0x21,0x7e]
685; CHECK: fcvtmu    d0, d0            ; encoding: [0x00,0xb8,0x61,0x7e]
686
687  fcvtns.2s   v0, v0
688  fcvtns.4s   v0, v0
689  fcvtns.2d   v0, v0
690  fcvtns      s0, s0
691  fcvtns      d0, d0
692
693; CHECK: fcvtns.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x0e]
694; CHECK: fcvtns.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x4e]
695; CHECK: fcvtns.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x4e]
696; CHECK: fcvtns    s0, s0            ; encoding: [0x00,0xa8,0x21,0x5e]
697; CHECK: fcvtns    d0, d0            ; encoding: [0x00,0xa8,0x61,0x5e]
698
699  fcvtnu.2s   v0, v0
700  fcvtnu.4s   v0, v0
701  fcvtnu.2d   v0, v0
702  fcvtnu      s0, s0
703  fcvtnu      d0, d0
704
705; CHECK: fcvtnu.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x2e]
706; CHECK: fcvtnu.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x6e]
707; CHECK: fcvtnu.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x6e]
708; CHECK: fcvtnu    s0, s0            ; encoding: [0x00,0xa8,0x21,0x7e]
709; CHECK: fcvtnu    d0, d0            ; encoding: [0x00,0xa8,0x61,0x7e]
710
711  fcvtn   v2.4h, v4.4s
712  fcvtn   v3.2s, v5.2d
713  fcvtn2  v4.8h, v6.4s
714  fcvtn2  v5.4s, v7.2d
715  fcvtxn  v6.2s, v9.2d
716  fcvtxn2 v7.4s, v8.2d
717
718; CHECK: fcvtn	v2.4h, v4.4s            ; encoding: [0x82,0x68,0x21,0x0e]
719; CHECK: fcvtn	v3.2s, v5.2d            ; encoding: [0xa3,0x68,0x61,0x0e]
720; CHECK: fcvtn2	v4.8h, v6.4s            ; encoding: [0xc4,0x68,0x21,0x4e]
721; CHECK: fcvtn2	v5.4s, v7.2d            ; encoding: [0xe5,0x68,0x61,0x4e]
722; CHECK: fcvtxn	v6.2s, v9.2d            ; encoding: [0x26,0x69,0x61,0x2e]
723; CHECK: fcvtxn2 v7.4s, v8.2d           ; encoding: [0x07,0x69,0x61,0x6e]
724
725  fcvtps.2s  v0, v0
726  fcvtps.4s  v0, v0
727  fcvtps.2d  v0, v0
728  fcvtps     s0, s0
729  fcvtps     d0, d0
730
731; CHECK: fcvtps.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x0e]
732; CHECK: fcvtps.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x4e]
733; CHECK: fcvtps.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x4e]
734; CHECK: fcvtps    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x5e]
735; CHECK: fcvtps    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x5e]
736
737  fcvtpu.2s  v0, v0
738  fcvtpu.4s  v0, v0
739  fcvtpu.2d  v0, v0
740  fcvtpu     s0, s0
741  fcvtpu     d0, d0
742
743; CHECK: fcvtpu.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x2e]
744; CHECK: fcvtpu.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x6e]
745; CHECK: fcvtpu.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x6e]
746; CHECK: fcvtpu    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x7e]
747; CHECK: fcvtpu    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x7e]
748
749  fcvtzs.2s  v0, v0
750  fcvtzs.4s  v0, v0
751  fcvtzs.2d  v0, v0
752  fcvtzs     s0, s0
753  fcvtzs     d0, d0
754
755; CHECK: fcvtzs.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x0e]
756; CHECK: fcvtzs.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x4e]
757; CHECK: fcvtzs.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x4e]
758; CHECK: fcvtzs    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x5e]
759; CHECK: fcvtzs    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x5e]
760
761  fcvtzu.2s  v0, v0
762  fcvtzu.4s  v0, v0
763  fcvtzu.2d  v0, v0
764  fcvtzu     s0, s0
765  fcvtzu     d0, d0
766
767; CHECK: fcvtzu.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x2e]
768; CHECK: fcvtzu.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x6e]
769; CHECK: fcvtzu.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x6e]
770; CHECK: fcvtzu    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x7e]
771; CHECK: fcvtzu    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x7e]
772
773;===-------------------------------------------------------------------------===
774; AdvSIMD modified immediate instructions
775;===-------------------------------------------------------------------------===
776
777  bic.2s  v0, #1
778  bic.2s  v0, #1, lsl #0
779  bic.2s  v0, #1, lsl #8
780  bic.2s  v0, #1, lsl #16
781  bic.2s  v0, #1, lsl #24
782
783; CHECK: bic.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x2f]
784; CHECK: bic.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x2f]
785; CHECK: bic.2s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x2f]
786; CHECK: bic.2s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x2f]
787; CHECK: bic.2s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x2f]
788
789  bic.4h  v0, #1
790  bic.4h  v0, #1, lsl #0
791  bic.4h  v0, #1, lsl #8
792
793; CHECK: bic.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x2f]
794; CHECK: bic.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x2f]
795; CHECK: bic.4h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x2f]
796
797  bic.4s  v0, #1
798  bic.4s  v0, #1, lsl #0
799  bic.4s  v0, #1, lsl #8
800  bic.4s  v0, #1, lsl #16
801  bic.4s  v0, #1, lsl #24
802
803; CHECK: bic.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x6f]
804; CHECK: bic.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x6f]
805; CHECK: bic.4s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x6f]
806; CHECK: bic.4s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x6f]
807; CHECK: bic.4s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x6f]
808
809  bic.8h  v0, #1
810  bic.8h  v0, #1, lsl #0
811  bic.8h  v0, #1, lsl #8
812
813; CHECK: bic.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x6f]
814; CHECK: bic.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x6f]
815; CHECK: bic.8h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x6f]
816
817  fmov.2d v0, #1.250000e-01
818
819; CHECK: fmov.2d v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x6f]
820
821  fmov.2s v0, #1.250000e-01
822  fmov.4s v0, #1.250000e-01
823
824; CHECK: fmov.2s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x0f]
825; CHECK: fmov.4s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x4f]
826
827  orr.2s  v0, #1
828  orr.2s  v0, #1, lsl #0
829  orr.2s  v0, #1, lsl #8
830  orr.2s  v0, #1, lsl #16
831  orr.2s  v0, #1, lsl #24
832
833; CHECK: orr.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x0f]
834; CHECK: orr.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x0f]
835; CHECK: orr.2s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x0f]
836; CHECK: orr.2s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x0f]
837; CHECK: orr.2s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x0f]
838
839  orr.4h  v0, #1
840  orr.4h  v0, #1, lsl #0
841  orr.4h  v0, #1, lsl #8
842
843; CHECK: orr.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x0f]
844; CHECK: orr.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x0f]
845; CHECK: orr.4h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x0f]
846
847  orr.4s  v0, #1
848  orr.4s  v0, #1, lsl #0
849  orr.4s  v0, #1, lsl #8
850  orr.4s  v0, #1, lsl #16
851  orr.4s  v0, #1, lsl #24
852
853; CHECK: orr.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x4f]
854; CHECK: orr.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x4f]
855; CHECK: orr.4s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x4f]
856; CHECK: orr.4s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x4f]
857; CHECK: orr.4s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x4f]
858
859  orr.8h  v0, #1
860  orr.8h  v0, #1, lsl #0
861  orr.8h  v0, #1, lsl #8
862
863; CHECK: orr.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x4f]
864; CHECK: orr.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x4f]
865; CHECK: orr.8h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x4f]
866
867  movi     d0, #0x000000000000ff
868  movi.2d  v0, #0x000000000000ff
869
870; CHECK: movi     d0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x2f]
871; CHECK: movi.2d  v0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x6f]
872
873  movi.2s v0, #1
874  movi.2s v0, #1, lsl #0
875  movi.2s v0, #1, lsl #8
876  movi.2s v0, #1, lsl #16
877  movi.2s v0, #1, lsl #24
878
879; CHECK: movi.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x0f]
880; CHECK: movi.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x0f]
881; CHECK: movi.2s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x0f]
882; CHECK: movi.2s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x0f]
883; CHECK: movi.2s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x0f]
884
885  movi.4s v0, #1
886  movi.4s v0, #1, lsl #0
887  movi.4s v0, #1, lsl #8
888  movi.4s v0, #1, lsl #16
889  movi.4s v0, #1, lsl #24
890
891; CHECK: movi.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x4f]
892; CHECK: movi.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x4f]
893; CHECK: movi.4s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x4f]
894; CHECK: movi.4s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x4f]
895; CHECK: movi.4s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x4f]
896
897  movi.4h v0, #1
898  movi.4h v0, #1, lsl #0
899  movi.4h v0, #1, lsl #8
900
901; CHECK: movi.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x0f]
902; CHECK: movi.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x0f]
903; CHECK: movi.4h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x0f]
904
905  movi.8h v0, #1
906  movi.8h v0, #1, lsl #0
907  movi.8h v0, #1, lsl #8
908
909; CHECK: movi.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x4f]
910; CHECK: movi.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x4f]
911; CHECK: movi.8h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x4f]
912
913  movi.2s v0, #1, msl #8
914  movi.2s v0, #1, msl #16
915  movi.4s v0, #1, msl #8
916  movi.4s v0, #1, msl #16
917
918; CHECK: movi.2s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x0f]
919; CHECK: movi.2s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x0f]
920; CHECK: movi.4s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x4f]
921; CHECK: movi.4s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x4f]
922
923  movi.8b  v0, #1
924  movi.16b v0, #1
925
926; CHECK: movi.8b  v0, #0x1             ; encoding: [0x20,0xe4,0x00,0x0f]
927; CHECK: movi.16b v0, #0x1             ; encoding: [0x20,0xe4,0x00,0x4f]
928
929  mvni.2s v0, #1
930  mvni.2s v0, #1, lsl #0
931  mvni.2s v0, #1, lsl #8
932  mvni.2s v0, #1, lsl #16
933  mvni.2s v0, #1, lsl #24
934
935; CHECK: mvni.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x2f]
936; CHECK: mvni.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x2f]
937; CHECK: mvni.2s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x2f]
938; CHECK: mvni.2s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x2f]
939; CHECK: mvni.2s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x2f]
940
941  mvni.4s v0, #1
942  mvni.4s v0, #1, lsl #0
943  mvni.4s v0, #1, lsl #8
944  mvni.4s v0, #1, lsl #16
945  mvni.4s v0, #1, lsl #24
946
947; CHECK: mvni.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x6f]
948; CHECK: mvni.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x6f]
949; CHECK: mvni.4s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x6f]
950; CHECK: mvni.4s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x6f]
951; CHECK: mvni.4s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x6f]
952
953  mvni.4h v0, #1
954  mvni.4h v0, #1, lsl #0
955  mvni.4h v0, #1, lsl #8
956
957; CHECK: mvni.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x2f]
958; CHECK: mvni.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x2f]
959; CHECK: mvni.4h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x2f]
960
961  mvni.8h v0, #1
962  mvni.8h v0, #1, lsl #0
963  mvni.8h v0, #1, lsl #8
964
965; CHECK: mvni.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x6f]
966; CHECK: mvni.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x6f]
967; CHECK: mvni.8h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x6f]
968
969  mvni.2s v0, #1, msl #8
970  mvni.2s v0, #1, msl #16
971  mvni.4s v0, #1, msl #8
972  mvni.4s v0, #1, msl #16
973
974; CHECK: mvni.2s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x2f]
975; CHECK: mvni.2s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x2f]
976; CHECK: mvni.4s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x6f]
977; CHECK: mvni.4s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x6f]
978
979;===-------------------------------------------------------------------------===
980; AdvSIMD scalar x index
981;===-------------------------------------------------------------------------===
982
983  fmla.s  s0, s0, v0[3]
984  fmla.d  d0, d0, v0[1]
985  fmls.s  s0, s0, v0[3]
986  fmls.d  d0, d0, v0[1]
987  fmulx.s s0, s0, v0[3]
988  fmulx.d d0, d0, v0[1]
989  fmul.s  s0, s0, v0[3]
990  fmul.d  d0, d0, v0[1]
991  sqdmlal.h s0, h0, v0[7]
992  sqdmlal.s d0, s0, v0[3]
993  sqdmlsl.h s0, h0, v0[7]
994  sqdmulh.h h0, h0, v0[7]
995  sqdmulh.s s0, s0, v0[3]
996  sqdmull.h s0, h0, v0[7]
997  sqdmull.s d0, s0, v0[3]
998  sqrdmulh.h  h0, h0, v0[7]
999  sqrdmulh.s  s0, s0, v0[3]
1000
1001; CHECK: fmla.s	s0, s0, v0[3]           ; encoding: [0x00,0x18,0xa0,0x5f]
1002; CHECK: fmla.d	d0, d0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x5f]
1003; CHECK: fmls.s	s0, s0, v0[3]           ; encoding: [0x00,0x58,0xa0,0x5f]
1004; CHECK: fmls.d	d0, d0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x5f]
1005; CHECK: fmulx.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x7f]
1006; CHECK: fmulx.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x7f]
1007; CHECK: fmul.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x5f]
1008; CHECK: fmul.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x5f]
1009; CHECK: sqdmlal.h	s0, h0, v0[7]   ; encoding: [0x00,0x38,0x70,0x5f]
1010; CHECK: sqdmlal.s	d0, s0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x5f]
1011; CHECK: sqdmlsl.h	s0, h0, v0[7]   ; encoding: [0x00,0x78,0x70,0x5f]
1012; CHECK: sqdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xc8,0x70,0x5f]
1013; CHECK: sqdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x5f]
1014; CHECK: sqdmull.h	s0, h0, v0[7]   ; encoding: [0x00,0xb8,0x70,0x5f]
1015; CHECK: sqdmull.s	d0, s0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x5f]
1016; CHECK: sqrdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xd8,0x70,0x5f]
1017; CHECK: sqrdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x5f]
1018
1019;===-------------------------------------------------------------------------===
1020; AdvSIMD SMLAL
1021;===-------------------------------------------------------------------------===
1022        smlal.8h v1, v2, v3
1023        smlal.4s v1, v2, v3
1024        smlal.2d v1, v2, v3
1025        smlal2.8h v1, v2, v3
1026        smlal2.4s v1, v2, v3
1027        smlal2.2d v1, v2, v3
1028
1029        smlal v13.8h, v8.8b, v0.8b
1030        smlal v13.4s, v8.4h, v0.4h
1031        smlal v13.2d, v8.2s, v0.2s
1032        smlal2 v13.8h, v8.16b, v0.16b
1033        smlal2 v13.4s, v8.8h, v0.8h
1034        smlal2 v13.2d, v8.4s, v0.4s
1035
1036; CHECK: smlal.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x0e]
1037; CHECK: smlal.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x0e]
1038; CHECK: smlal.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x0e]
1039; CHECK: smlal2.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x4e]
1040; CHECK: smlal2.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x4e]
1041; CHECK: smlal2.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x4e]
1042; CHECK: smlal.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x0e]
1043; CHECK: smlal.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x0e]
1044; CHECK: smlal.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x0e]
1045; CHECK: smlal2.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x4e]
1046; CHECK: smlal2.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x4e]
1047; CHECK: smlal2.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x4e]
1048
1049
1050;===-------------------------------------------------------------------------===
1051; AdvSIMD scalar x index
1052;===-------------------------------------------------------------------------===
1053
1054  fmla.2s v0, v0, v0[0]
1055  fmla.4s v0, v0, v0[1]
1056  fmla.2d v0, v0, v0[1]
1057  fmls.2s v0, v0, v0[0]
1058  fmls.4s v0, v0, v0[1]
1059  fmls.2d v0, v0, v0[1]
1060  fmulx.2s  v0, v0, v0[0]
1061  fmulx.4s  v0, v0, v0[1]
1062  fmulx.2d  v0, v0, v0[1]
1063  fmul.2s v0, v0, v0[0]
1064  fmul.4s v0, v0, v0[1]
1065  fmul.2d v0, v0, v0[1]
1066  mla.4h  v0, v0, v0[0]
1067  mla.8h  v0, v0, v0[1]
1068  mla.2s  v0, v0, v0[2]
1069  mla.4s  v0, v0, v0[3]
1070  mls.4h  v0, v0, v0[0]
1071  mls.8h  v0, v0, v0[1]
1072  mls.2s  v0, v0, v0[2]
1073  mls.4s  v0, v0, v0[3]
1074  mul.4h  v0, v0, v0[0]
1075  mul.8h  v0, v0, v0[1]
1076  mul.2s  v0, v0, v0[2]
1077  mul.4s  v0, v0, v0[3]
1078  smlal.4s  v0, v0, v0[0]
1079  smlal2.4s v0, v0, v0[1]
1080  smlal.2d  v0, v0, v0[2]
1081  smlal2.2d v0, v0, v0[3]
1082  smlsl.4s  v0, v0, v0[0]
1083  smlsl2.4s v0, v0, v0[1]
1084  smlsl.2d  v0, v0, v0[2]
1085  smlsl2.2d v0, v0, v0[3]
1086  smull.4s  v0, v0, v0[0]
1087  smull2.4s v0, v0, v0[1]
1088  smull.2d  v0, v0, v0[2]
1089  smull2.2d v0, v0, v0[3]
1090  sqdmlal.4s  v0, v0, v0[0]
1091  sqdmlal2.4s v0, v0, v0[1]
1092  sqdmlal.2d  v0, v0, v0[2]
1093  sqdmlal2.2d v0, v0, v0[3]
1094  sqdmlsl.4s  v0, v0, v0[0]
1095  sqdmlsl2.4s v0, v0, v0[1]
1096  sqdmlsl.2d  v0, v0, v0[2]
1097  sqdmlsl2.2d v0, v0, v0[3]
1098  sqdmulh.4h  v0, v0, v0[0]
1099  sqdmulh.8h  v0, v0, v0[1]
1100  sqdmulh.2s  v0, v0, v0[2]
1101  sqdmulh.4s  v0, v0, v0[3]
1102  sqdmull.4s  v0, v0, v0[0]
1103  sqdmull2.4s v0, v0, v0[1]
1104  sqdmull.2d  v0, v0, v0[2]
1105  sqdmull2.2d v0, v0, v0[3]
1106  sqrdmulh.4h v0, v0, v0[0]
1107  sqrdmulh.8h v0, v0, v0[1]
1108  sqrdmulh.2s v0, v0, v0[2]
1109  sqrdmulh.4s v0, v0, v0[3]
1110  umlal.4s  v0, v0, v0[0]
1111  umlal2.4s v0, v0, v0[1]
1112  umlal.2d  v0, v0, v0[2]
1113  umlal2.2d v0, v0, v0[3]
1114  umlsl.4s  v0, v0, v0[0]
1115  umlsl2.4s v0, v0, v0[1]
1116  umlsl.2d  v0, v0, v0[2]
1117  umlsl2.2d v0, v0, v0[3]
1118  umull.4s  v0, v0, v0[0]
1119  umull2.4s v0, v0, v0[1]
1120  umull.2d  v0, v0, v0[2]
1121  umull2.2d v0, v0, v0[3]
1122
1123; CHECK: fmla.2s	v0, v0, v0[0]           ; encoding: [0x00,0x10,0x80,0x0f]
1124; CHECK: fmla.4s	v0, v0, v0[1]           ; encoding: [0x00,0x10,0xa0,0x4f]
1125; CHECK: fmla.2d	v0, v0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x4f]
1126; CHECK: fmls.2s	v0, v0, v0[0]           ; encoding: [0x00,0x50,0x80,0x0f]
1127; CHECK: fmls.4s	v0, v0, v0[1]           ; encoding: [0x00,0x50,0xa0,0x4f]
1128; CHECK: fmls.2d	v0, v0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x4f]
1129; CHECK: fmulx.2s	v0, v0, v0[0]   ; encoding: [0x00,0x90,0x80,0x2f]
1130; CHECK: fmulx.4s	v0, v0, v0[1]   ; encoding: [0x00,0x90,0xa0,0x6f]
1131; CHECK: fmulx.2d	v0, v0, v0[1]   ; encoding: [0x00,0x98,0xc0,0x6f]
1132; CHECK: fmul.2s	v0, v0, v0[0]           ; encoding: [0x00,0x90,0x80,0x0f]
1133; CHECK: fmul.4s	v0, v0, v0[1]           ; encoding: [0x00,0x90,0xa0,0x4f]
1134; CHECK: fmul.2d	v0, v0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x4f]
1135; CHECK: mla.4h	v0, v0, v0[0]           ; encoding: [0x00,0x00,0x40,0x2f]
1136; CHECK: mla.8h	v0, v0, v0[1]           ; encoding: [0x00,0x00,0x50,0x6f]
1137; CHECK: mla.2s	v0, v0, v0[2]           ; encoding: [0x00,0x08,0x80,0x2f]
1138; CHECK: mla.4s	v0, v0, v0[3]           ; encoding: [0x00,0x08,0xa0,0x6f]
1139; CHECK: mls.4h	v0, v0, v0[0]           ; encoding: [0x00,0x40,0x40,0x2f]
1140; CHECK: mls.8h	v0, v0, v0[1]           ; encoding: [0x00,0x40,0x50,0x6f]
1141; CHECK: mls.2s	v0, v0, v0[2]           ; encoding: [0x00,0x48,0x80,0x2f]
1142; CHECK: mls.4s	v0, v0, v0[3]           ; encoding: [0x00,0x48,0xa0,0x6f]
1143; CHECK: mul.4h	v0, v0, v0[0]           ; encoding: [0x00,0x80,0x40,0x0f]
1144; CHECK: mul.8h	v0, v0, v0[1]           ; encoding: [0x00,0x80,0x50,0x4f]
1145; CHECK: mul.2s	v0, v0, v0[2]           ; encoding: [0x00,0x88,0x80,0x0f]
1146; CHECK: mul.4s	v0, v0, v0[3]           ; encoding: [0x00,0x88,0xa0,0x4f]
1147; CHECK: smlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x0f]
1148; CHECK: smlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x4f]
1149; CHECK: smlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x0f]
1150; CHECK: smlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x4f]
1151; CHECK: smlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x0f]
1152; CHECK: smlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x4f]
1153; CHECK: smlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x0f]
1154; CHECK: smlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x4f]
1155; CHECK: smull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x0f]
1156; CHECK: smull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x4f]
1157; CHECK: smull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x0f]
1158; CHECK: smull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x4f]
1159; CHECK: sqdmlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x30,0x40,0x0f]
1160; CHECK: sqdmlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x30,0x50,0x4f]
1161; CHECK: sqdmlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x38,0x80,0x0f]
1162; CHECK: sqdmlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x4f]
1163; CHECK: sqdmlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x70,0x40,0x0f]
1164; CHECK: sqdmlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x70,0x50,0x4f]
1165; CHECK: sqdmlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x78,0x80,0x0f]
1166; CHECK: sqdmlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x78,0xa0,0x4f]
1167; CHECK: sqdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xc0,0x40,0x0f]
1168; CHECK: sqdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xc0,0x50,0x4f]
1169; CHECK: sqdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xc8,0x80,0x0f]
1170; CHECK: sqdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x4f]
1171; CHECK: sqdmull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xb0,0x40,0x0f]
1172; CHECK: sqdmull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xb0,0x50,0x4f]
1173; CHECK: sqdmull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xb8,0x80,0x0f]
1174; CHECK: sqdmull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x4f]
1175; CHECK: sqrdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xd0,0x40,0x0f]
1176; CHECK: sqrdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xd0,0x50,0x4f]
1177; CHECK: sqrdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xd8,0x80,0x0f]
1178; CHECK: sqrdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x4f]
1179; CHECK: umlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x2f]
1180; CHECK: umlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x6f]
1181; CHECK: umlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x2f]
1182; CHECK: umlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x6f]
1183; CHECK: umlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x2f]
1184; CHECK: umlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x6f]
1185; CHECK: umlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x2f]
1186; CHECK: umlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x6f]
1187; CHECK: umull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x2f]
1188; CHECK: umull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x6f]
1189; CHECK: umull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x2f]
1190; CHECK: umull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x6f]
1191
1192
1193;===-------------------------------------------------------------------------===
1194; AdvSIMD scalar with shift
1195;===-------------------------------------------------------------------------===
1196
1197  fcvtzs s0, s0, #1
1198  fcvtzs d0, d0, #2
1199  fcvtzu s0, s0, #1
1200  fcvtzu d0, d0, #2
1201  shl    d0, d0, #1
1202  sli    d0, d0, #1
1203  sqrshrn b0, h0, #1
1204  sqrshrn h0, s0, #2
1205  sqrshrn s0, d0, #3
1206  sqrshrun b0, h0, #1
1207  sqrshrun h0, s0, #2
1208  sqrshrun s0, d0, #3
1209  sqshlu  b0, b0, #1
1210  sqshlu  h0, h0, #2
1211  sqshlu  s0, s0, #3
1212  sqshlu  d0, d0, #4
1213  sqshl   b0, b0, #1
1214  sqshl   h0, h0, #2
1215  sqshl   s0, s0, #3
1216  sqshl   d0, d0, #4
1217  sqshrn  b0, h0, #1
1218  sqshrn  h0, s0, #2
1219  sqshrn  s0, d0, #3
1220  sqshrun b0, h0, #1
1221  sqshrun h0, s0, #2
1222  sqshrun s0, d0, #3
1223  sri     d0, d0, #1
1224  srshr   d0, d0, #1
1225  srsra   d0, d0, #1
1226  sshr    d0, d0, #1
1227  ucvtf   s0, s0, #1
1228  ucvtf   d0, d0, #2
1229  scvtf   s0, s0, #1
1230  scvtf   d0, d0, #2
1231  uqrshrn b0, h0, #1
1232  uqrshrn h0, s0, #2
1233  uqrshrn s0, d0, #3
1234  uqshl   b0, b0, #1
1235  uqshl   h0, h0, #2
1236  uqshl   s0, s0, #3
1237  uqshl   d0, d0, #4
1238  uqshrn  b0, h0, #1
1239  uqshrn  h0, s0, #2
1240  uqshrn  s0, d0, #3
1241  urshr   d0, d0, #1
1242  ursra   d0, d0, #1
1243  ushr    d0, d0, #1
1244  usra    d0, d0, #1
1245
1246; CHECK: fcvtzs	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x5f]
1247; CHECK: fcvtzs	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x5f]
1248; CHECK: fcvtzu	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x7f]
1249; CHECK: fcvtzu	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x7f]
1250; CHECK: shl	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x5f]
1251; CHECK: sli	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x7f]
1252; CHECK: sqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x5f]
1253; CHECK: sqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x5f]
1254; CHECK: sqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x5f]
1255; CHECK: sqrshrun	b0, h0, #1      ; encoding: [0x00,0x8c,0x0f,0x7f]
1256; CHECK: sqrshrun	h0, s0, #2      ; encoding: [0x00,0x8c,0x1e,0x7f]
1257; CHECK: sqrshrun	s0, d0, #3      ; encoding: [0x00,0x8c,0x3d,0x7f]
1258; CHECK: sqshlu	b0, b0, #1              ; encoding: [0x00,0x64,0x09,0x7f]
1259; CHECK: sqshlu	h0, h0, #2              ; encoding: [0x00,0x64,0x12,0x7f]
1260; CHECK: sqshlu	s0, s0, #3              ; encoding: [0x00,0x64,0x23,0x7f]
1261; CHECK: sqshlu	d0, d0, #4              ; encoding: [0x00,0x64,0x44,0x7f]
1262; CHECK: sqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x5f]
1263; CHECK: sqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x5f]
1264; CHECK: sqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x5f]
1265; CHECK: sqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x5f]
1266; CHECK: sqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x5f]
1267; CHECK: sqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x5f]
1268; CHECK: sqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x5f]
1269; CHECK: sqshrun	b0, h0, #1              ; encoding: [0x00,0x84,0x0f,0x7f]
1270; CHECK: sqshrun	h0, s0, #2              ; encoding: [0x00,0x84,0x1e,0x7f]
1271; CHECK: sqshrun	s0, d0, #3              ; encoding: [0x00,0x84,0x3d,0x7f]
1272; CHECK: sri	d0, d0, #1              ; encoding: [0x00,0x44,0x7f,0x7f]
1273; CHECK: srshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x5f]
1274; CHECK: srsra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x5f]
1275; CHECK: sshr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x5f]
1276; CHECK: ucvtf	s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x7f]
1277; CHECK: ucvtf	d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x7f]
1278; check: scvtf  s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x5f]
1279; check: scvtf  d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x5f]
1280; CHECK: uqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x7f]
1281; CHECK: uqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x7f]
1282; CHECK: uqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x7f]
1283; CHECK: uqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x7f]
1284; CHECK: uqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x7f]
1285; CHECK: uqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x7f]
1286; CHECK: uqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x7f]
1287; CHECK: uqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x7f]
1288; CHECK: uqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x7f]
1289; CHECK: uqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x7f]
1290; CHECK: urshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x7f]
1291; CHECK: ursra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x7f]
1292; CHECK: ushr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x7f]
1293; CHECK: usra	d0, d0, #1              ; encoding: [0x00,0x14,0x7f,0x7f]
1294
1295
1296;===-------------------------------------------------------------------------===
1297; AdvSIMD vector with shift
1298;===-------------------------------------------------------------------------===
1299
1300   fcvtzs.2s v0, v0, #1
1301   fcvtzs.4s v0, v0, #2
1302   fcvtzs.2d v0, v0, #3
1303   fcvtzu.2s v0, v0, #1
1304   fcvtzu.4s v0, v0, #2
1305   fcvtzu.2d v0, v0, #3
1306   rshrn.8b v0, v0, #1
1307   rshrn2.16b v0, v0, #2
1308   rshrn.4h v0, v0, #3
1309   rshrn2.8h v0, v0, #4
1310   rshrn.2s v0, v0, #5
1311   rshrn2.4s v0, v0, #6
1312   scvtf.2s v0, v0, #1
1313   scvtf.4s v0, v0, #2
1314   scvtf.2d v0, v0, #3
1315   shl.8b v0, v0, #1
1316   shl.16b v0, v0, #2
1317   shl.4h v0, v0, #3
1318   shl.8h v0, v0, #4
1319   shl.2s v0, v0, #5
1320   shl.4s v0, v0, #6
1321   shl.2d v0, v0, #7
1322   shrn.8b v0, v0, #1
1323   shrn2.16b v0, v0, #2
1324   shrn.4h v0, v0, #3
1325   shrn2.8h v0, v0, #4
1326   shrn.2s v0, v0, #5
1327   shrn2.4s v0, v0, #6
1328   sli.8b v0, v0, #1
1329   sli.16b v0, v0, #2
1330   sli.4h v0, v0, #3
1331   sli.8h v0, v0, #4
1332   sli.2s v0, v0, #5
1333   sli.4s v0, v0, #6
1334   sli.2d v0, v0, #7
1335   sqrshrn.8b v0, v0, #1
1336   sqrshrn2.16b v0, v0, #2
1337   sqrshrn.4h v0, v0, #3
1338   sqrshrn2.8h v0, v0, #4
1339   sqrshrn.2s v0, v0, #5
1340   sqrshrn2.4s v0, v0, #6
1341   sqrshrun.8b v0, v0, #1
1342   sqrshrun2.16b v0, v0, #2
1343   sqrshrun.4h v0, v0, #3
1344   sqrshrun2.8h v0, v0, #4
1345   sqrshrun.2s v0, v0, #5
1346   sqrshrun2.4s v0, v0, #6
1347   sqshlu.8b v0, v0, #1
1348   sqshlu.16b v0, v0, #2
1349   sqshlu.4h v0, v0, #3
1350   sqshlu.8h v0, v0, #4
1351   sqshlu.2s v0, v0, #5
1352   sqshlu.4s v0, v0, #6
1353   sqshlu.2d v0, v0, #7
1354   sqshl.8b v0, v0, #1
1355   sqshl.16b v0, v0, #2
1356   sqshl.4h v0, v0, #3
1357   sqshl.8h v0, v0, #4
1358   sqshl.2s v0, v0, #5
1359   sqshl.4s v0, v0, #6
1360   sqshl.2d v0, v0, #7
1361   sqshrn.8b v0, v0, #1
1362   sqshrn2.16b v0, v0, #2
1363   sqshrn.4h v0, v0, #3
1364   sqshrn2.8h v0, v0, #4
1365   sqshrn.2s v0, v0, #5
1366   sqshrn2.4s v0, v0, #6
1367   sqshrun.8b v0, v0, #1
1368   sqshrun2.16b v0, v0, #2
1369   sqshrun.4h v0, v0, #3
1370   sqshrun2.8h v0, v0, #4
1371   sqshrun.2s v0, v0, #5
1372   sqshrun2.4s v0, v0, #6
1373   sri.8b v0, v0, #1
1374   sri.16b v0, v0, #2
1375   sri.4h v0, v0, #3
1376   sri.8h v0, v0, #4
1377   sri.2s v0, v0, #5
1378   sri.4s v0, v0, #6
1379   sri.2d v0, v0, #7
1380   srshr.8b v0, v0, #1
1381   srshr.16b v0, v0, #2
1382   srshr.4h v0, v0, #3
1383   srshr.8h v0, v0, #4
1384   srshr.2s v0, v0, #5
1385   srshr.4s v0, v0, #6
1386   srshr.2d v0, v0, #7
1387   srsra.8b v0, v0, #1
1388   srsra.16b v0, v0, #2
1389   srsra.4h v0, v0, #3
1390   srsra.8h v0, v0, #4
1391   srsra.2s v0, v0, #5
1392   srsra.4s v0, v0, #6
1393   srsra.2d v0, v0, #7
1394   sshll.8h v0, v0, #1
1395   sshll2.8h v0, v0, #2
1396   sshll.4s v0, v0, #3
1397   sshll2.4s v0, v0, #4
1398   sshll.2d v0, v0, #5
1399   sshll2.2d v0, v0, #6
1400   sshr.8b v0, v0, #1
1401   sshr.16b v0, v0, #2
1402   sshr.4h v0, v0, #3
1403   sshr.8h v0, v0, #4
1404   sshr.2s v0, v0, #5
1405   sshr.4s v0, v0, #6
1406   sshr.2d v0, v0, #7
1407   sshr.8b v0, v0, #1
1408   ssra.16b v0, v0, #2
1409   ssra.4h v0, v0, #3
1410   ssra.8h v0, v0, #4
1411   ssra.2s v0, v0, #5
1412   ssra.4s v0, v0, #6
1413   ssra.2d v0, v0, #7
1414   ssra d0, d0, #64
1415   ucvtf.2s v0, v0, #1
1416   ucvtf.4s v0, v0, #2
1417   ucvtf.2d v0, v0, #3
1418   uqrshrn.8b v0, v0, #1
1419   uqrshrn2.16b v0, v0, #2
1420   uqrshrn.4h v0, v0, #3
1421   uqrshrn2.8h v0, v0, #4
1422   uqrshrn.2s v0, v0, #5
1423   uqrshrn2.4s v0, v0, #6
1424   uqshl.8b v0, v0, #1
1425   uqshl.16b v0, v0, #2
1426   uqshl.4h v0, v0, #3
1427   uqshl.8h v0, v0, #4
1428   uqshl.2s v0, v0, #5
1429   uqshl.4s v0, v0, #6
1430   uqshl.2d v0, v0, #7
1431   uqshrn.8b v0, v0, #1
1432   uqshrn2.16b v0, v0, #2
1433   uqshrn.4h v0, v0, #3
1434   uqshrn2.8h v0, v0, #4
1435   uqshrn.2s v0, v0, #5
1436   uqshrn2.4s v0, v0, #6
1437   urshr.8b v0, v0, #1
1438   urshr.16b v0, v0, #2
1439   urshr.4h v0, v0, #3
1440   urshr.8h v0, v0, #4
1441   urshr.2s v0, v0, #5
1442   urshr.4s v0, v0, #6
1443   urshr.2d v0, v0, #7
1444   ursra.8b v0, v0, #1
1445   ursra.16b v0, v0, #2
1446   ursra.4h v0, v0, #3
1447   ursra.8h v0, v0, #4
1448   ursra.2s v0, v0, #5
1449   ursra.4s v0, v0, #6
1450   ursra.2d v0, v0, #7
1451   ushll.8h v0, v0, #1
1452   ushll2.8h v0, v0, #2
1453   ushll.4s v0, v0, #3
1454   ushll2.4s v0, v0, #4
1455   ushll.2d v0, v0, #5
1456   ushll2.2d v0, v0, #6
1457   ushr.8b v0, v0, #1
1458   ushr.16b v0, v0, #2
1459   ushr.4h v0, v0, #3
1460   ushr.8h v0, v0, #4
1461   ushr.2s v0, v0, #5
1462   ushr.4s v0, v0, #6
1463   ushr.2d v0, v0, #7
1464   usra.8b v0, v0, #1
1465   usra.16b v0, v0, #2
1466   usra.4h v0, v0, #3
1467   usra.8h v0, v0, #4
1468   usra.2s v0, v0, #5
1469   usra.4s v0, v0, #6
1470   usra.2d v0, v0, #7
1471
1472; CHECK: fcvtzs.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x0f]
1473; CHECK: fcvtzs.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x4f]
1474; CHECK: fcvtzs.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x4f]
1475; CHECK: fcvtzu.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x2f]
1476; CHECK: fcvtzu.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x6f]
1477; CHECK: fcvtzu.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x6f]
1478; CHECK: rshrn.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x0f]
1479; CHECK: rshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x4f]
1480; CHECK: rshrn.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x0f]
1481; CHECK: rshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x4f]
1482; CHECK: rshrn.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x0f]
1483; CHECK: rshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x4f]
1484; CHECK: scvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x0f]
1485; CHECK: scvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x4f]
1486; CHECK: scvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x4f]
1487; CHECK: shl.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x0f]
1488; CHECK: shl.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x4f]
1489; CHECK: shl.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x0f]
1490; CHECK: shl.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x4f]
1491; CHECK: shl.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x0f]
1492; CHECK: shl.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x4f]
1493; CHECK: shl.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x4f]
1494; CHECK: shrn.8b	v0, v0, #1              ; encoding: [0x00,0x84,0x0f,0x0f]
1495; CHECK: shrn2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x4f]
1496; CHECK: shrn.4h	v0, v0, #3              ; encoding: [0x00,0x84,0x1d,0x0f]
1497; CHECK: shrn2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x4f]
1498; CHECK: shrn.2s	v0, v0, #5              ; encoding: [0x00,0x84,0x3b,0x0f]
1499; CHECK: shrn2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x4f]
1500; CHECK: sli.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x2f]
1501; CHECK: sli.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x6f]
1502; CHECK: sli.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x2f]
1503; CHECK: sli.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x6f]
1504; CHECK: sli.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x2f]
1505; CHECK: sli.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x6f]
1506; CHECK: sli.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x6f]
1507; CHECK: sqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x0f]
1508; CHECK: sqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x4f]
1509; CHECK: sqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x0f]
1510; CHECK: sqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x4f]
1511; CHECK: sqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x0f]
1512; CHECK: sqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x4f]
1513; CHECK: sqrshrun.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x2f]
1514; CHECK: sqrshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x6f]
1515; CHECK: sqrshrun.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x2f]
1516; CHECK: sqrshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x6f]
1517; CHECK: sqrshrun.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x2f]
1518; CHECK: sqrshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x6f]
1519; CHECK: sqshlu.8b	v0, v0, #1      ; encoding: [0x00,0x64,0x09,0x2f]
1520; CHECK: sqshlu.16b	v0, v0, #2      ; encoding: [0x00,0x64,0x0a,0x6f]
1521; CHECK: sqshlu.4h	v0, v0, #3      ; encoding: [0x00,0x64,0x13,0x2f]
1522; CHECK: sqshlu.8h	v0, v0, #4      ; encoding: [0x00,0x64,0x14,0x6f]
1523; CHECK: sqshlu.2s	v0, v0, #5      ; encoding: [0x00,0x64,0x25,0x2f]
1524; CHECK: sqshlu.4s	v0, v0, #6      ; encoding: [0x00,0x64,0x26,0x6f]
1525; CHECK: sqshlu.2d	v0, v0, #7      ; encoding: [0x00,0x64,0x47,0x6f]
1526; CHECK: sqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x0f]
1527; CHECK: sqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x4f]
1528; CHECK: sqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x0f]
1529; CHECK: sqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x4f]
1530; CHECK: sqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x0f]
1531; CHECK: sqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x4f]
1532; CHECK: sqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x4f]
1533; CHECK: sqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x0f]
1534; CHECK: sqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x4f]
1535; CHECK: sqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x0f]
1536; CHECK: sqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x4f]
1537; CHECK: sqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x0f]
1538; CHECK: sqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x4f]
1539; CHECK: sqshrun.8b	v0, v0, #1      ; encoding: [0x00,0x84,0x0f,0x2f]
1540; CHECK: sqshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x6f]
1541; CHECK: sqshrun.4h	v0, v0, #3      ; encoding: [0x00,0x84,0x1d,0x2f]
1542; CHECK: sqshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x6f]
1543; CHECK: sqshrun.2s	v0, v0, #5      ; encoding: [0x00,0x84,0x3b,0x2f]
1544; CHECK: sqshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x6f]
1545; CHECK: sri.8b	v0, v0, #1              ; encoding: [0x00,0x44,0x0f,0x2f]
1546; CHECK: sri.16b	v0, v0, #2              ; encoding: [0x00,0x44,0x0e,0x6f]
1547; CHECK: sri.4h	v0, v0, #3              ; encoding: [0x00,0x44,0x1d,0x2f]
1548; CHECK: sri.8h	v0, v0, #4              ; encoding: [0x00,0x44,0x1c,0x6f]
1549; CHECK: sri.2s	v0, v0, #5              ; encoding: [0x00,0x44,0x3b,0x2f]
1550; CHECK: sri.4s	v0, v0, #6              ; encoding: [0x00,0x44,0x3a,0x6f]
1551; CHECK: sri.2d	v0, v0, #7              ; encoding: [0x00,0x44,0x79,0x6f]
1552; CHECK: srshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x0f]
1553; CHECK: srshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x4f]
1554; CHECK: srshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x0f]
1555; CHECK: srshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x4f]
1556; CHECK: srshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x0f]
1557; CHECK: srshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x4f]
1558; CHECK: srshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x4f]
1559; CHECK: srsra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x0f]
1560; CHECK: srsra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x4f]
1561; CHECK: srsra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x0f]
1562; CHECK: srsra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x4f]
1563; CHECK: srsra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x0f]
1564; CHECK: srsra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x4f]
1565; CHECK: srsra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x4f]
1566; CHECK: sshll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x0f]
1567; CHECK: sshll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x4f]
1568; CHECK: sshll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x0f]
1569; CHECK: sshll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x4f]
1570; CHECK: sshll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x0f]
1571; CHECK: sshll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x4f]
1572; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
1573; CHECK: sshr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x4f]
1574; CHECK: sshr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x0f]
1575; CHECK: sshr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x4f]
1576; CHECK: sshr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x0f]
1577; CHECK: sshr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x4f]
1578; CHECK: sshr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x4f]
1579; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
1580; CHECK: ssra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x4f]
1581; CHECK: ssra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x0f]
1582; CHECK: ssra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x4f]
1583; CHECK: ssra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x0f]
1584; CHECK: ssra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x4f]
1585; CHECK: ssra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x4f]
1586; CHECK: ssra		d0, d0, #64             ; encoding: [0x00,0x14,0x40,0x5f]
1587; CHECK: ucvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x2f]
1588; CHECK: ucvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x6f]
1589; CHECK: ucvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x6f]
1590; CHECK: uqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x2f]
1591; CHECK: uqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x6f]
1592; CHECK: uqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x2f]
1593; CHECK: uqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x6f]
1594; CHECK: uqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x2f]
1595; CHECK: uqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x6f]
1596; CHECK: uqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x2f]
1597; CHECK: uqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x6f]
1598; CHECK: uqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x2f]
1599; CHECK: uqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x6f]
1600; CHECK: uqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x2f]
1601; CHECK: uqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x6f]
1602; CHECK: uqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x6f]
1603; CHECK: uqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x2f]
1604; CHECK: uqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x6f]
1605; CHECK: uqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x2f]
1606; CHECK: uqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x6f]
1607; CHECK: uqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x2f]
1608; CHECK: uqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x6f]
1609; CHECK: urshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x2f]
1610; CHECK: urshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x6f]
1611; CHECK: urshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x2f]
1612; CHECK: urshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x6f]
1613; CHECK: urshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x2f]
1614; CHECK: urshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x6f]
1615; CHECK: urshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x6f]
1616; CHECK: ursra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x2f]
1617; CHECK: ursra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x6f]
1618; CHECK: ursra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x2f]
1619; CHECK: ursra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x6f]
1620; CHECK: ursra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x2f]
1621; CHECK: ursra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x6f]
1622; CHECK: ursra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x6f]
1623; CHECK: ushll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x2f]
1624; CHECK: ushll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x6f]
1625; CHECK: ushll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x2f]
1626; CHECK: ushll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x6f]
1627; CHECK: ushll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x2f]
1628; CHECK: ushll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x6f]
1629; CHECK: ushr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x2f]
1630; CHECK: ushr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x6f]
1631; CHECK: ushr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x2f]
1632; CHECK: ushr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x6f]
1633; CHECK: ushr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x2f]
1634; CHECK: ushr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x6f]
1635; CHECK: ushr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x6f]
1636; CHECK: usra.8b	v0, v0, #1              ; encoding: [0x00,0x14,0x0f,0x2f]
1637; CHECK: usra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x6f]
1638; CHECK: usra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x2f]
1639; CHECK: usra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x6f]
1640; CHECK: usra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x2f]
1641; CHECK: usra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x6f]
1642; CHECK: usra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x6f]
1643
1644
1645; ARM Verbose syntax variants.
1646
1647   rshrn v9.8b, v11.8h, #1
1648   rshrn2 v8.16b, v9.8h, #2
1649   rshrn v7.4h, v8.4s, #3
1650   rshrn2 v6.8h, v7.4s, #4
1651   rshrn v5.2s, v6.2d, #5
1652   rshrn2 v4.4s, v5.2d, #6
1653
1654   shrn v9.8b, v11.8h, #1
1655   shrn2 v8.16b, v9.8h, #2
1656   shrn v7.4h, v8.4s, #3
1657   shrn2 v6.8h, v7.4s, #4
1658   shrn v5.2s, v6.2d, #5
1659   shrn2 v4.4s, v5.2d, #6
1660
1661   sqrshrn v9.8b, v11.8h, #1
1662   sqrshrn2 v8.16b, v9.8h, #2
1663   sqrshrn v7.4h, v8.4s, #3
1664   sqrshrn2 v6.8h, v7.4s, #4
1665   sqrshrn v5.2s, v6.2d, #5
1666   sqrshrn2 v4.4s, v5.2d, #6
1667
1668   sqshrn v9.8b, v11.8h, #1
1669   sqshrn2 v8.16b, v9.8h, #2
1670   sqshrn v7.4h, v8.4s, #3
1671   sqshrn2 v6.8h, v7.4s, #4
1672   sqshrn v5.2s, v6.2d, #5
1673   sqshrn2 v4.4s, v5.2d, #6
1674
1675   sqrshrun v9.8b, v11.8h, #1
1676   sqrshrun2 v8.16b, v9.8h, #2
1677   sqrshrun v7.4h, v8.4s, #3
1678   sqrshrun2 v6.8h, v7.4s, #4
1679   sqrshrun v5.2s, v6.2d, #5
1680   sqrshrun2 v4.4s, v5.2d, #6
1681
1682   sqshrun v9.8b, v11.8h, #1
1683   sqshrun2 v8.16b, v9.8h, #2
1684   sqshrun v7.4h, v8.4s, #3
1685   sqshrun2 v6.8h, v7.4s, #4
1686   sqshrun v5.2s, v6.2d, #5
1687   sqshrun2 v4.4s, v5.2d, #6
1688
1689   uqrshrn v9.8b, v11.8h, #1
1690   uqrshrn2 v8.16b, v9.8h, #2
1691   uqrshrn v7.4h, v8.4s, #3
1692   uqrshrn2 v6.8h, v7.4s, #4
1693   uqrshrn v5.2s, v6.2d, #5
1694   uqrshrn2 v4.4s, v5.2d, #6
1695
1696   uqshrn v9.8b, v11.8h, #1
1697   uqshrn2 v8.16b, v9.8h, #2
1698   uqshrn v7.4h, v8.4s, #3
1699   uqshrn2 v6.8h, v7.4s, #4
1700   uqshrn v5.2s, v6.2d, #5
1701   uqshrn2 v4.4s, v5.2d, #6
1702
1703   sshll2 v10.8h, v3.16b, #6
1704   sshll2 v11.4s, v4.8h, #5
1705   sshll2 v12.2d, v5.4s, #4
1706   sshll v13.8h, v6.8b, #3
1707   sshll v14.4s, v7.4h, #2
1708   sshll v15.2d, v8.2s, #7
1709
1710   ushll2 v10.8h, v3.16b, #6
1711   ushll2 v11.4s, v4.8h, #5
1712   ushll2 v12.2d, v5.4s, #4
1713   ushll v13.8h, v6.8b, #3
1714   ushll v14.4s, v7.4h, #2
1715   ushll v15.2d, v8.2s, #7
1716
1717
1718; CHECK: rshrn.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x0f]
1719; CHECK: rshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x4f]
1720; CHECK: rshrn.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x0f]
1721; CHECK: rshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x4f]
1722; CHECK: rshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x0f]
1723; CHECK: rshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x4f]
1724; CHECK: shrn.8b	v9, v11, #1             ; encoding: [0x69,0x85,0x0f,0x0f]
1725; CHECK: shrn2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x4f]
1726; CHECK: shrn.4h	v7, v8, #3              ; encoding: [0x07,0x85,0x1d,0x0f]
1727; CHECK: shrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x4f]
1728; CHECK: shrn.2s	v5, v6, #5              ; encoding: [0xc5,0x84,0x3b,0x0f]
1729; CHECK: shrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x4f]
1730; CHECK: sqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x0f]
1731; CHECK: sqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x4f]
1732; CHECK: sqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x0f]
1733; CHECK: sqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x4f]
1734; CHECK: sqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x0f]
1735; CHECK: sqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x4f]
1736; CHECK: sqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x0f]
1737; CHECK: sqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x4f]
1738; CHECK: sqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x0f]
1739; CHECK: sqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x4f]
1740; CHECK: sqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x0f]
1741; CHECK: sqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x4f]
1742; CHECK: sqrshrun.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x2f]
1743; CHECK: sqrshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x6f]
1744; CHECK: sqrshrun.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x2f]
1745; CHECK: sqrshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x6f]
1746; CHECK: sqrshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x2f]
1747; CHECK: sqrshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x6f]
1748; CHECK: sqshrun.8b	v9, v11, #1     ; encoding: [0x69,0x85,0x0f,0x2f]
1749; CHECK: sqshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x6f]
1750; CHECK: sqshrun.4h	v7, v8, #3      ; encoding: [0x07,0x85,0x1d,0x2f]
1751; CHECK: sqshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x6f]
1752; CHECK: sqshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x84,0x3b,0x2f]
1753; CHECK: sqshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x6f]
1754; CHECK: uqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x2f]
1755; CHECK: uqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x6f]
1756; CHECK: uqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x2f]
1757; CHECK: uqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x6f]
1758; CHECK: uqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x2f]
1759; CHECK: uqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x6f]
1760; CHECK: uqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x2f]
1761; CHECK: uqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x6f]
1762; CHECK: uqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x2f]
1763; CHECK: uqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x6f]
1764; CHECK: uqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x2f]
1765; CHECK: uqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x6f]
1766; CHECK: sshll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x4f]
1767; CHECK: sshll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x4f]
1768; CHECK: sshll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x4f]
1769; CHECK: sshll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x0f]
1770; CHECK: sshll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x0f]
1771; CHECK: sshll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x0f]
1772; CHECK: ushll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x6f]
1773; CHECK: ushll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x6f]
1774; CHECK: ushll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x6f]
1775; CHECK: ushll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x2f]
1776; CHECK: ushll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x2f]
1777; CHECK: ushll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x2f]
1778
1779
1780  pmull.8h v0, v0, v0
1781  pmull2.8h v0, v0, v0
1782  pmull.1q v2, v3, v4
1783  pmull2.1q v2, v3, v4
1784  pmull v2.1q, v3.1d, v4.1d
1785  pmull2 v2.1q, v3.2d, v4.2d
1786
1787; CHECK: pmull.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x0e]
1788; CHECK: pmull2.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x4e]
1789; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
1790; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]
1791; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
1792; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]
1793
1794
1795  faddp.2d d1, v2
1796  faddp.2s s3, v4
1797; CHECK: faddp.2d	d1, v2          ; encoding: [0x41,0xd8,0x70,0x7e]
1798; CHECK: faddp.2s	s3, v4          ; encoding: [0x83,0xd8,0x30,0x7e]
1799
1800  tbl.16b v2, {v4,v5,v6,v7}, v1
1801  tbl.8b v0, {v4,v5,v6,v7}, v1
1802  tbl.16b v2, {v5}, v1
1803  tbl.8b v0, {v5}, v1
1804  tbl.16b v2, {v5,v6,v7}, v1
1805  tbl.8b v0, {v5,v6,v7}, v1
1806  tbl.16b v2, {v6,v7}, v1
1807  tbl.8b v0, {v6,v7}, v1
1808; CHECK: tbl.16b	v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
1809; CHECK: tbl.8b	v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
1810; CHECK: tbl.16b	v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
1811; CHECK: tbl.8b	v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
1812; CHECK: tbl.16b	v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
1813; CHECK: tbl.8b	v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
1814; CHECK: tbl.16b	v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
1815; CHECK: tbl.8b	v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]
1816
1817  tbl v2.16b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.16b
1818  tbl v0.8b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.8b
1819  tbl v2.16b, {v5.16b}, v1.16b
1820  tbl v0.8b, {v5.16b}, v1.8b
1821  tbl v2.16b, {v5.16b,v6.16b,v7.16b}, v1.16b
1822  tbl v0.8b, {v5.16b,v6.16b,v7.16b}, v1.8b
1823  tbl v2.16b, {v6.16b,v7.16b}, v1.16b
1824  tbl v0.8b, {v6.16b,v7.16b}, v1.8b
1825; CHECK: tbl.16b v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
1826; CHECK: tbl.8b v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
1827; CHECK: tbl.16b v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
1828; CHECK: tbl.8b v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
1829; CHECK: tbl.16b v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
1830; CHECK: tbl.8b v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
1831; CHECK: tbl.16b v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
1832; CHECK: tbl.8b v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]
1833
1834  sqdmull	s0, h0, h0
1835  sqdmull	d0, s0, s0
1836; CHECK: sqdmull	s0, h0, h0              ; encoding: [0x00,0xd0,0x60,0x5e]
1837; CHECK: sqdmull	d0, s0, s0              ; encoding: [0x00,0xd0,0xa0,0x5e]
1838
1839  frsqrte s0, s0
1840  frsqrte d0, d0
1841; CHECK: frsqrte s0, s0                  ; encoding: [0x00,0xd8,0xa1,0x7e]
1842; CHECK: frsqrte d0, d0                  ; encoding: [0x00,0xd8,0xe1,0x7e]
1843
1844  mov.16b v0, v0
1845  mov.2s v0, v0
1846; CHECK: mov.16b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x4e]
1847; CHECK: mov.8b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x0e]
1848
1849
1850; uadalp/sadalp verbose mode aliases.
1851  uadalp v14.4h, v25.8b
1852  uadalp v15.8h, v24.16b
1853  uadalp v16.2s, v23.4h
1854  uadalp v17.4s, v22.8h
1855  uadalp v18.1d, v21.2s
1856  uadalp v19.2d, v20.4s
1857
1858  sadalp v1.4h, v11.8b
1859  sadalp v2.8h, v12.16b
1860  sadalp v3.2s, v13.4h
1861  sadalp v4.4s, v14.8h
1862  sadalp v5.1d, v15.2s
1863  sadalp v6.2d, v16.4s
1864
1865; CHECK: uadalp.4h	v14, v25        ; encoding: [0x2e,0x6b,0x20,0x2e]
1866; CHECK: uadalp.8h	v15, v24        ; encoding: [0x0f,0x6b,0x20,0x6e]
1867; CHECK: uadalp.2s	v16, v23        ; encoding: [0xf0,0x6a,0x60,0x2e]
1868; CHECK: uadalp.4s	v17, v22        ; encoding: [0xd1,0x6a,0x60,0x6e]
1869; CHECK: uadalp.1d	v18, v21        ; encoding: [0xb2,0x6a,0xa0,0x2e]
1870; CHECK: uadalp.2d	v19, v20        ; encoding: [0x93,0x6a,0xa0,0x6e]
1871; CHECK: sadalp.4h	v1, v11         ; encoding: [0x61,0x69,0x20,0x0e]
1872; CHECK: sadalp.8h	v2, v12         ; encoding: [0x82,0x69,0x20,0x4e]
1873; CHECK: sadalp.2s	v3, v13         ; encoding: [0xa3,0x69,0x60,0x0e]
1874; CHECK: sadalp.4s	v4, v14         ; encoding: [0xc4,0x69,0x60,0x4e]
1875; CHECK: sadalp.1d	v5, v15         ; encoding: [0xe5,0x69,0xa0,0x0e]
1876; CHECK: sadalp.2d	v6, v16         ; encoding: [0x06,0x6a,0xa0,0x4e]
1877
1878; MVN is an alias for 'not'.
1879  mvn v1.8b, v4.8b
1880  mvn v19.16b, v17.16b
1881  mvn.8b v10, v6
1882  mvn.16b v11, v7
1883
1884; CHECK: mvn.8b	v1, v4                  ; encoding: [0x81,0x58,0x20,0x2e]
1885; CHECK: mvn.16b	v19, v17                ; encoding: [0x33,0x5a,0x20,0x6e]
1886; CHECK: mvn.8b	v10, v6                 ; encoding: [0xca,0x58,0x20,0x2e]
1887; CHECK: mvn.16b	v11, v7                 ; encoding: [0xeb,0x58,0x20,0x6e]
1888
1889; sqdmull verbose mode aliases
1890 sqdmull v10.4s, v12.4h, v12.4h
1891 sqdmull2 v10.4s, v13.8h, v13.8h
1892 sqdmull v10.2d, v13.2s, v13.2s
1893 sqdmull2 v10.2d, v13.4s, v13.4s
1894; CHECK: sqdmull.4s	v10, v12, v12   ; encoding: [0x8a,0xd1,0x6c,0x0e]
1895; CHECK: sqdmull2.4s	v10, v13, v13   ; encoding: [0xaa,0xd1,0x6d,0x4e]
1896; CHECK: sqdmull.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x0e]
1897; CHECK: sqdmull2.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x4e]
1898
1899; xtn verbose mode aliases
1900 xtn v14.8b, v14.8h
1901 xtn2 v14.16b, v14.8h
1902 xtn v14.4h, v14.4s
1903 xtn2 v14.8h, v14.4s
1904 xtn v14.2s, v14.2d
1905 xtn2 v14.4s, v14.2d
1906; CHECK: xtn.8b v14, v14                ; encoding: [0xce,0x29,0x21,0x0e]
1907; CHECK: xtn2.16b v14, v14              ; encoding: [0xce,0x29,0x21,0x4e]
1908; CHECK: xtn.4h v14, v14                ; encoding: [0xce,0x29,0x61,0x0e]
1909; CHECK: xtn2.8h v14, v14               ; encoding: [0xce,0x29,0x61,0x4e]
1910; CHECK: xtn.2s v14, v14                ; encoding: [0xce,0x29,0xa1,0x0e]
1911; CHECK: xtn2.4s v14, v14               ; encoding: [0xce,0x29,0xa1,0x4e]
1912
1913; uaddl verbose mode aliases
1914 uaddl v9.8h, v13.8b, v14.8b
1915 uaddl2 v9.8h, v13.16b, v14.16b
1916 uaddl v9.4s, v13.4h, v14.4h
1917 uaddl2 v9.4s, v13.8h, v14.8h
1918 uaddl v9.2d, v13.2s, v14.2s
1919 uaddl2 v9.2d, v13.4s, v14.4s
1920; CHECK: uaddl.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x2e]
1921; CHECK: uaddl2.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x6e]
1922; CHECK: uaddl.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x2e]
1923; CHECK: uaddl2.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x6e]
1924; CHECK: uaddl.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x2e]
1925; CHECK: uaddl2.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x6e]
1926
1927; bit verbose mode aliases
1928 bit v9.16b, v10.16b, v10.16b
1929 bit v9.8b, v10.8b, v10.8b
1930; CHECK: bit.16b v9, v10, v10           ; encoding: [0x49,0x1d,0xaa,0x6e]
1931; CHECK: bit.8b v9, v10, v10            ; encoding: [0x49,0x1d,0xaa,0x2e]
1932
1933; pmull verbose mode aliases
1934 pmull v8.8h, v8.8b, v8.8b
1935 pmull2 v8.8h, v8.16b, v8.16b
1936 pmull v8.1q, v8.1d, v8.1d
1937 pmull2 v8.1q, v8.2d, v8.2d
1938; CHECK: pmull.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x0e]
1939; CHECK: pmull2.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x4e]
1940; CHECK: pmull.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x0e]
1941; CHECK: pmull2.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x4e]
1942
1943; usubl verbose mode aliases
1944 usubl v9.8h, v13.8b, v14.8b
1945 usubl2 v9.8h, v13.16b, v14.16b
1946 usubl v9.4s, v13.4h, v14.4h
1947 usubl2 v9.4s, v13.8h, v14.8h
1948 usubl v9.2d, v13.2s, v14.2s
1949 usubl2 v9.2d, v13.4s, v14.4s
1950; CHECK: usubl.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x2e]
1951; CHECK: usubl2.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x6e]
1952; CHECK: usubl.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x2e]
1953; CHECK: usubl2.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x6e]
1954; CHECK: usubl.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x2e]
1955; CHECK: usubl2.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x6e]
1956
1957; uabdl verbose mode aliases
1958 uabdl v9.8h, v13.8b, v14.8b
1959 uabdl2 v9.8h, v13.16b, v14.16b
1960 uabdl v9.4s, v13.4h, v14.4h
1961 uabdl2 v9.4s, v13.8h, v14.8h
1962 uabdl v9.2d, v13.2s, v14.2s
1963 uabdl2 v9.2d, v13.4s, v14.4s
1964; CHECK: uabdl.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x2e]
1965; CHECK: uabdl2.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x6e]
1966; CHECK: uabdl.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x2e]
1967; CHECK: uabdl2.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x6e]
1968; CHECK: uabdl.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x2e]
1969; CHECK: uabdl2.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x6e]
1970
1971; umull verbose mode aliases
1972 umull v9.8h, v13.8b, v14.8b
1973 umull2 v9.8h, v13.16b, v14.16b
1974 umull v9.4s, v13.4h, v14.4h
1975 umull2 v9.4s, v13.8h, v14.8h
1976 umull v9.2d, v13.2s, v14.2s
1977 umull2 v9.2d, v13.4s, v14.4s
1978; CHECK: umull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x2e]
1979; CHECK: umull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x6e]
1980; CHECK: umull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x2e]
1981; CHECK: umull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x6e]
1982; CHECK: umull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x2e]
1983; CHECK: umull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x6e]
1984
1985; smull verbose mode aliases
1986 smull v9.8h, v13.8b, v14.8b
1987 smull2 v9.8h, v13.16b, v14.16b
1988 smull v9.4s, v13.4h, v14.4h
1989 smull2 v9.4s, v13.8h, v14.8h
1990 smull v9.2d, v13.2s, v14.2s
1991 smull2 v9.2d, v13.4s, v14.4s
1992; CHECK: smull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x0e]
1993; CHECK: smull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x4e]
1994; CHECK: smull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x0e]
1995; CHECK: smull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x4e]
1996; CHECK: smull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x0e]
1997; CHECK: smull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x4e]
1998