bf8f3efb0673919f6abe0795718ebcd577376907
[oota-llvm.git] / test / MC / ARM64 / advsimd.s
1 ; RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 -show-encoding < %s | FileCheck %s
2
3 foo:
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: umov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
197 ; CHECK: umov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
198 ; CHECK: umov.d  x3, v2[1]           ; encoding: [0x43,0x3c,0x18,0x4e]
199 ; CHECK: umov.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: umov.s  w2, v3[3]               ; encoding: [0x62,0x3c,0x1c,0x0e]
209 ; CHECK: umov.s  w5, v7[2]               ; encoding: [0xe5,0x3c,0x14,0x0e]
210 ; CHECK: umov.d  x11, v13[1]             ; encoding: [0xab,0x3d,0x18,0x4e]
211 ; CHECK: umov.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, v0
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, v0              ; encoding: [0x00,0x1c,0xa0,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: not.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: orr.16b        v0, v0, v0              ; encoding: [0x00,0x1c,0xa0,0x4e]
1847 ; CHECK: orr.8b v0, 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: not.8b v1, v4                  ; encoding: [0x81,0x58,0x20,0x2e]
1885 ; CHECK: not.16b        v19, v17                ; encoding: [0x33,0x5a,0x20,0x6e]
1886 ; CHECK: not.8b v10, v6                 ; encoding: [0xca,0x58,0x20,0x2e]
1887 ; CHECK: not.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]