1 // RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
2 // RUN: llvm-mc -triple=arm64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
4 // Check that the assembler can handle the documented syntax for AArch64
6 //------------------------------------------------------------------------------
7 // Vector shift right by immediate
8 //------------------------------------------------------------------------------
12 sshr v0.16b, v1.16b, #3
16 // CHECK: sshr v0.8b, v1.8b, #3 // encoding: [0x20,0x04,0x0d,0x0f]
17 // CHECK: sshr v0.4h, v1.4h, #3 // encoding: [0x20,0x04,0x1d,0x0f]
18 // CHECK: sshr v0.2s, v1.2s, #3 // encoding: [0x20,0x04,0x3d,0x0f]
19 // CHECK: sshr v0.16b, v1.16b, #3 // encoding: [0x20,0x04,0x0d,0x4f]
20 // CHECK: sshr v0.8h, v1.8h, #3 // encoding: [0x20,0x04,0x1d,0x4f]
21 // CHECK: sshr v0.4s, v1.4s, #3 // encoding: [0x20,0x04,0x3d,0x4f]
22 // CHECK: sshr v0.2d, v1.2d, #3 // encoding: [0x20,0x04,0x7d,0x4f]
24 //------------------------------------------------------------------------------
25 // Vector shift right by immediate
26 //------------------------------------------------------------------------------
30 ushr v0.16b, v1.16b, #3
35 // CHECK: ushr v0.8b, v1.8b, #3 // encoding: [0x20,0x04,0x0d,0x2f]
36 // CHECK: ushr v0.4h, v1.4h, #3 // encoding: [0x20,0x04,0x1d,0x2f]
37 // CHECK: ushr v0.2s, v1.2s, #3 // encoding: [0x20,0x04,0x3d,0x2f]
38 // CHECK: ushr v0.16b, v1.16b, #3 // encoding: [0x20,0x04,0x0d,0x6f]
39 // CHECK: ushr v0.8h, v1.8h, #3 // encoding: [0x20,0x04,0x1d,0x6f]
40 // CHECK: ushr v0.4s, v1.4s, #3 // encoding: [0x20,0x04,0x3d,0x6f]
41 // CHECK: ushr v0.2d, v1.2d, #3 // encoding: [0x20,0x04,0x7d,0x6f]
43 //------------------------------------------------------------------------------
44 // Vector shift right and accumulate by immediate
45 //------------------------------------------------------------------------------
49 ssra v0.16b, v1.16b, #3
54 // CHECK: ssra v0.8b, v1.8b, #3 // encoding: [0x20,0x14,0x0d,0x0f]
55 // CHECK: ssra v0.4h, v1.4h, #3 // encoding: [0x20,0x14,0x1d,0x0f]
56 // CHECK: ssra v0.2s, v1.2s, #3 // encoding: [0x20,0x14,0x3d,0x0f]
57 // CHECK: ssra v0.16b, v1.16b, #3 // encoding: [0x20,0x14,0x0d,0x4f]
58 // CHECK: ssra v0.8h, v1.8h, #3 // encoding: [0x20,0x14,0x1d,0x4f]
59 // CHECK: ssra v0.4s, v1.4s, #3 // encoding: [0x20,0x14,0x3d,0x4f]
60 // CHECK: ssra v0.2d, v1.2d, #3 // encoding: [0x20,0x14,0x7d,0x4f]
62 //------------------------------------------------------------------------------
63 // Vector shift right and accumulate by immediate
64 //------------------------------------------------------------------------------
68 usra v0.16b, v1.16b, #3
73 // CHECK: usra v0.8b, v1.8b, #3 // encoding: [0x20,0x14,0x0d,0x2f]
74 // CHECK: usra v0.4h, v1.4h, #3 // encoding: [0x20,0x14,0x1d,0x2f]
75 // CHECK: usra v0.2s, v1.2s, #3 // encoding: [0x20,0x14,0x3d,0x2f]
76 // CHECK: usra v0.16b, v1.16b, #3 // encoding: [0x20,0x14,0x0d,0x6f]
77 // CHECK: usra v0.8h, v1.8h, #3 // encoding: [0x20,0x14,0x1d,0x6f]
78 // CHECK: usra v0.4s, v1.4s, #3 // encoding: [0x20,0x14,0x3d,0x6f]
79 // CHECK: usra v0.2d, v1.2d, #3 // encoding: [0x20,0x14,0x7d,0x6f]
81 //------------------------------------------------------------------------------
82 // Vector rounding shift right by immediate
83 //------------------------------------------------------------------------------
84 srshr v0.8b, v1.8b, #3
85 srshr v0.4h, v1.4h, #3
86 srshr v0.2s, v1.2s, #3
87 srshr v0.16b, v1.16b, #3
88 srshr v0.8h, v1.8h, #3
89 srshr v0.4s, v1.4s, #3
90 srshr v0.2d, v1.2d, #3
92 // CHECK: srshr v0.8b, v1.8b, #3 // encoding: [0x20,0x24,0x0d,0x0f]
93 // CHECK: srshr v0.4h, v1.4h, #3 // encoding: [0x20,0x24,0x1d,0x0f]
94 // CHECK: srshr v0.2s, v1.2s, #3 // encoding: [0x20,0x24,0x3d,0x0f]
95 // CHECK: srshr v0.16b, v1.16b, #3 // encoding: [0x20,0x24,0x0d,0x4f]
96 // CHECK: srshr v0.8h, v1.8h, #3 // encoding: [0x20,0x24,0x1d,0x4f]
97 // CHECK: srshr v0.4s, v1.4s, #3 // encoding: [0x20,0x24,0x3d,0x4f]
98 // CHECK: srshr v0.2d, v1.2d, #3 // encoding: [0x20,0x24,0x7d,0x4f]
101 //------------------------------------------------------------------------------
102 // Vecotr rounding shift right by immediate
103 //------------------------------------------------------------------------------
104 urshr v0.8b, v1.8b, #3
105 urshr v0.4h, v1.4h, #3
106 urshr v0.2s, v1.2s, #3
107 urshr v0.16b, v1.16b, #3
108 urshr v0.8h, v1.8h, #3
109 urshr v0.4s, v1.4s, #3
110 urshr v0.2d, v1.2d, #3
112 // CHECK: urshr v0.8b, v1.8b, #3 // encoding: [0x20,0x24,0x0d,0x2f]
113 // CHECK: urshr v0.4h, v1.4h, #3 // encoding: [0x20,0x24,0x1d,0x2f]
114 // CHECK: urshr v0.2s, v1.2s, #3 // encoding: [0x20,0x24,0x3d,0x2f]
115 // CHECK: urshr v0.16b, v1.16b, #3 // encoding: [0x20,0x24,0x0d,0x6f]
116 // CHECK: urshr v0.8h, v1.8h, #3 // encoding: [0x20,0x24,0x1d,0x6f]
117 // CHECK: urshr v0.4s, v1.4s, #3 // encoding: [0x20,0x24,0x3d,0x6f]
118 // CHECK: urshr v0.2d, v1.2d, #3 // encoding: [0x20,0x24,0x7d,0x6f]
121 //------------------------------------------------------------------------------
122 // Vector rounding shift right and accumulate by immediate
123 //------------------------------------------------------------------------------
124 srsra v0.8b, v1.8b, #3
125 srsra v0.4h, v1.4h, #3
126 srsra v0.2s, v1.2s, #3
127 srsra v0.16b, v1.16b, #3
128 srsra v0.8h, v1.8h, #3
129 srsra v0.4s, v1.4s, #3
130 srsra v0.2d, v1.2d, #3
132 // CHECK: srsra v0.8b, v1.8b, #3 // encoding: [0x20,0x34,0x0d,0x0f]
133 // CHECK: srsra v0.4h, v1.4h, #3 // encoding: [0x20,0x34,0x1d,0x0f]
134 // CHECK: srsra v0.2s, v1.2s, #3 // encoding: [0x20,0x34,0x3d,0x0f]
135 // CHECK: srsra v0.16b, v1.16b, #3 // encoding: [0x20,0x34,0x0d,0x4f]
136 // CHECK: srsra v0.8h, v1.8h, #3 // encoding: [0x20,0x34,0x1d,0x4f]
137 // CHECK: srsra v0.4s, v1.4s, #3 // encoding: [0x20,0x34,0x3d,0x4f]
138 // CHECK: srsra v0.2d, v1.2d, #3 // encoding: [0x20,0x34,0x7d,0x4f]
141 //------------------------------------------------------------------------------
142 // Vector rounding shift right and accumulate by immediate
143 //------------------------------------------------------------------------------
144 ursra v0.8b, v1.8b, #3
145 ursra v0.4h, v1.4h, #3
146 ursra v0.2s, v1.2s, #3
147 ursra v0.16b, v1.16b, #3
148 ursra v0.8h, v1.8h, #3
149 ursra v0.4s, v1.4s, #3
150 ursra v0.2d, v1.2d, #3
152 // CHECK: ursra v0.8b, v1.8b, #3 // encoding: [0x20,0x34,0x0d,0x2f]
153 // CHECK: ursra v0.4h, v1.4h, #3 // encoding: [0x20,0x34,0x1d,0x2f]
154 // CHECK: ursra v0.2s, v1.2s, #3 // encoding: [0x20,0x34,0x3d,0x2f]
155 // CHECK: ursra v0.16b, v1.16b, #3 // encoding: [0x20,0x34,0x0d,0x6f]
156 // CHECK: ursra v0.8h, v1.8h, #3 // encoding: [0x20,0x34,0x1d,0x6f]
157 // CHECK: ursra v0.4s, v1.4s, #3 // encoding: [0x20,0x34,0x3d,0x6f]
158 // CHECK: ursra v0.2d, v1.2d, #3 // encoding: [0x20,0x34,0x7d,0x6f]
161 //------------------------------------------------------------------------------
162 // Vector shift right and insert by immediate
163 //------------------------------------------------------------------------------
167 sri v0.16b, v1.16b, #3
172 // CHECK: sri v0.8b, v1.8b, #3 // encoding: [0x20,0x44,0x0d,0x2f]
173 // CHECK: sri v0.4h, v1.4h, #3 // encoding: [0x20,0x44,0x1d,0x2f]
174 // CHECK: sri v0.2s, v1.2s, #3 // encoding: [0x20,0x44,0x3d,0x2f]
175 // CHECK: sri v0.16b, v1.16b, #3 // encoding: [0x20,0x44,0x0d,0x6f]
176 // CHECK: sri v0.8h, v1.8h, #3 // encoding: [0x20,0x44,0x1d,0x6f]
177 // CHECK: sri v0.4s, v1.4s, #3 // encoding: [0x20,0x44,0x3d,0x6f]
180 //------------------------------------------------------------------------------
181 // Vector shift left and insert by immediate
182 //------------------------------------------------------------------------------
186 sli v0.16b, v1.16b, #3
191 // CHECK: sli v0.8b, v1.8b, #3 // encoding: [0x20,0x54,0x0b,0x2f]
192 // CHECK: sli v0.4h, v1.4h, #3 // encoding: [0x20,0x54,0x13,0x2f]
193 // CHECK: sli v0.2s, v1.2s, #3 // encoding: [0x20,0x54,0x23,0x2f]
194 // CHECK: sli v0.16b, v1.16b, #3 // encoding: [0x20,0x54,0x0b,0x6f]
195 // CHECK: sli v0.8h, v1.8h, #3 // encoding: [0x20,0x54,0x13,0x6f]
196 // CHECK: sli v0.4s, v1.4s, #3 // encoding: [0x20,0x54,0x23,0x6f]
197 // CHECK: sli v0.2d, v1.2d, #3 // encoding: [0x20,0x54,0x43,0x6f]
199 //------------------------------------------------------------------------------
200 // Vector saturating shift left unsigned by immediate
201 //------------------------------------------------------------------------------
202 sqshlu v0.8b, v1.8b, #3
203 sqshlu v0.4h, v1.4h, #3
204 sqshlu v0.2s, v1.2s, #3
205 sqshlu v0.16b, v1.16b, #3
206 sqshlu v0.8h, v1.8h, #3
207 sqshlu v0.4s, v1.4s, #3
208 sqshlu v0.2d, v1.2d, #3
210 // CHECK: sqshlu v0.8b, v1.8b, #3 // encoding: [0x20,0x64,0x0b,0x2f]
211 // CHECK: sqshlu v0.4h, v1.4h, #3 // encoding: [0x20,0x64,0x13,0x2f]
212 // CHECK: sqshlu v0.2s, v1.2s, #3 // encoding: [0x20,0x64,0x23,0x2f]
213 // CHECK: sqshlu v0.16b, v1.16b, #3 // encoding: [0x20,0x64,0x0b,0x6f]
214 // CHECK: sqshlu v0.8h, v1.8h, #3 // encoding: [0x20,0x64,0x13,0x6f]
215 // CHECK: sqshlu v0.4s, v1.4s, #3 // encoding: [0x20,0x64,0x23,0x6f]
216 // CHECK: sqshlu v0.2d, v1.2d, #3 // encoding: [0x20,0x64,0x43,0x6f]
219 //------------------------------------------------------------------------------
220 // Vector saturating shift left by immediate
221 //------------------------------------------------------------------------------
222 sqshl v0.8b, v1.8b, #3
223 sqshl v0.4h, v1.4h, #3
224 sqshl v0.2s, v1.2s, #3
225 sqshl v0.16b, v1.16b, #3
226 sqshl v0.8h, v1.8h, #3
227 sqshl v0.4s, v1.4s, #3
228 sqshl v0.2d, v1.2d, #3
230 // CHECK: sqshl v0.8b, v1.8b, #3 // encoding: [0x20,0x74,0x0b,0x0f]
231 // CHECK: sqshl v0.4h, v1.4h, #3 // encoding: [0x20,0x74,0x13,0x0f]
232 // CHECK: sqshl v0.2s, v1.2s, #3 // encoding: [0x20,0x74,0x23,0x0f]
233 // CHECK: sqshl v0.16b, v1.16b, #3 // encoding: [0x20,0x74,0x0b,0x4f]
234 // CHECK: sqshl v0.8h, v1.8h, #3 // encoding: [0x20,0x74,0x13,0x4f]
235 // CHECK: sqshl v0.4s, v1.4s, #3 // encoding: [0x20,0x74,0x23,0x4f]
236 // CHECK: sqshl v0.2d, v1.2d, #3 // encoding: [0x20,0x74,0x43,0x4f]
240 //------------------------------------------------------------------------------
241 // Vector saturating shift left by immediate
242 //------------------------------------------------------------------------------
243 uqshl v0.8b, v1.8b, #3
244 uqshl v0.4h, v1.4h, #3
245 uqshl v0.2s, v1.2s, #3
246 uqshl v0.16b, v1.16b, #3
247 uqshl v0.8h, v1.8h, #3
248 uqshl v0.4s, v1.4s, #3
249 uqshl v0.2d, v1.2d, #3
251 // CHECK: uqshl v0.8b, v1.8b, #3 // encoding: [0x20,0x74,0x0b,0x2f]
252 // CHECK: uqshl v0.4h, v1.4h, #3 // encoding: [0x20,0x74,0x13,0x2f]
253 // CHECK: uqshl v0.2s, v1.2s, #3 // encoding: [0x20,0x74,0x23,0x2f]
254 // CHECK: uqshl v0.16b, v1.16b, #3 // encoding: [0x20,0x74,0x0b,0x6f]
255 // CHECK: uqshl v0.8h, v1.8h, #3 // encoding: [0x20,0x74,0x13,0x6f]
256 // CHECK: uqshl v0.4s, v1.4s, #3 // encoding: [0x20,0x74,0x23,0x6f]
257 // CHECK: uqshl v0.2d, v1.2d, #3 // encoding: [0x20,0x74,0x43,0x6f]
260 //------------------------------------------------------------------------------
261 // Vector shift right narrow by immediate
262 //------------------------------------------------------------------------------
263 shrn v0.8b, v1.8h, #3
264 shrn v0.4h, v1.4s, #3
265 shrn v0.2s, v1.2d, #3
266 shrn2 v0.16b, v1.8h, #3
267 shrn2 v0.8h, v1.4s, #3
268 shrn2 v0.4s, v1.2d, #3
270 // CHECK: shrn v0.8b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x0f]
271 // CHECK: shrn v0.4h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x0f]
272 // CHECK: shrn v0.2s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x0f]
273 // CHECK: shrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x4f]
274 // CHECK: shrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x4f]
275 // CHECK: shrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x4f]
277 //------------------------------------------------------------------------------
278 // Vector saturating shift right unsigned narrow by immediate
279 //------------------------------------------------------------------------------
280 sqshrun v0.8b, v1.8h, #3
281 sqshrun v0.4h, v1.4s, #3
282 sqshrun v0.2s, v1.2d, #3
283 sqshrun2 v0.16b, v1.8h, #3
284 sqshrun2 v0.8h, v1.4s, #3
285 sqshrun2 v0.4s, v1.2d, #3
287 // CHECK: sqshrun v0.8b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x2f]
288 // CHECK: sqshrun v0.4h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x2f]
289 // CHECK: sqshrun v0.2s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x2f]
290 // CHECK: sqshrun2 v0.16b, v1.8h, #3 // encoding: [0x20,0x84,0x0d,0x6f]
291 // CHECK: sqshrun2 v0.8h, v1.4s, #3 // encoding: [0x20,0x84,0x1d,0x6f]
292 // CHECK: sqshrun2 v0.4s, v1.2d, #3 // encoding: [0x20,0x84,0x3d,0x6f]
294 //------------------------------------------------------------------------------
295 // Vector rounding shift right narrow by immediate
296 //------------------------------------------------------------------------------
297 rshrn v0.8b, v1.8h, #3
298 rshrn v0.4h, v1.4s, #3
299 rshrn v0.2s, v1.2d, #3
300 rshrn2 v0.16b, v1.8h, #3
301 rshrn2 v0.8h, v1.4s, #3
302 rshrn2 v0.4s, v1.2d, #3
304 // CHECK: rshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x0f]
305 // CHECK: rshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x0f]
306 // CHECK: rshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x0f]
307 // CHECK: rshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x4f]
308 // CHECK: rshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x4f]
309 // CHECK: rshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x4f]
312 //------------------------------------------------------------------------------
313 // Vector saturating shift right rounded unsigned narrow by immediate
314 //------------------------------------------------------------------------------
315 sqrshrun v0.8b, v1.8h, #3
316 sqrshrun v0.4h, v1.4s, #3
317 sqrshrun v0.2s, v1.2d, #3
318 sqrshrun2 v0.16b, v1.8h, #3
319 sqrshrun2 v0.8h, v1.4s, #3
320 sqrshrun2 v0.4s, v1.2d, #3
322 // CHECK: sqrshrun v0.8b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x2f]
323 // CHECK: sqrshrun v0.4h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x2f]
324 // CHECK: sqrshrun v0.2s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x2f]
325 // CHECK: sqrshrun2 v0.16b, v1.8h, #3 // encoding: [0x20,0x8c,0x0d,0x6f]
326 // CHECK: sqrshrun2 v0.8h, v1.4s, #3 // encoding: [0x20,0x8c,0x1d,0x6f]
327 // CHECK: sqrshrun2 v0.4s, v1.2d, #3 // encoding: [0x20,0x8c,0x3d,0x6f]
330 //------------------------------------------------------------------------------
331 // Vector saturating shift right narrow by immediate
332 //------------------------------------------------------------------------------
333 sqshrn v0.8b, v1.8h, #3
334 sqshrn v0.4h, v1.4s, #3
335 sqshrn v0.2s, v1.2d, #3
336 sqshrn2 v0.16b, v1.8h, #3
337 sqshrn2 v0.8h, v1.4s, #3
338 sqshrn2 v0.4s, v1.2d, #3
340 // CHECK: sqshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x0f]
341 // CHECK: sqshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x0f]
342 // CHECK: sqshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x0f]
343 // CHECK: sqshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x4f]
344 // CHECK: sqshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x4f]
345 // CHECK: sqshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x4f]
348 //------------------------------------------------------------------------------
349 // Vector saturating shift right narrow by immediate
350 //------------------------------------------------------------------------------
351 uqshrn v0.8b, v1.8h, #3
352 uqshrn v0.4h, v1.4s, #3
353 uqshrn v0.2s, v1.2d, #3
354 uqshrn2 v0.16b, v1.8h, #3
355 uqshrn2 v0.8h, v1.4s, #3
356 uqshrn2 v0.4s, v1.2d, #3
358 // CHECK: uqshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x2f]
359 // CHECK: uqshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x2f]
360 // CHECK: uqshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x2f]
361 // CHECK: uqshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x94,0x0d,0x6f]
362 // CHECK: uqshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x94,0x1d,0x6f]
363 // CHECK: uqshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x94,0x3d,0x6f]
365 //------------------------------------------------------------------------------
366 // Vector saturating shift right rounded narrow by immediate
367 //------------------------------------------------------------------------------
368 sqrshrn v0.8b, v1.8h, #3
369 sqrshrn v0.4h, v1.4s, #3
370 sqrshrn v0.2s, v1.2d, #3
371 sqrshrn2 v0.16b, v1.8h, #3
372 sqrshrn2 v0.8h, v1.4s, #3
373 sqrshrn2 v0.4s, v1.2d, #3
375 // CHECK: sqrshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x0f]
376 // CHECK: sqrshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x0f]
377 // CHECK: sqrshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x0f]
378 // CHECK: sqrshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x4f]
379 // CHECK: sqrshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x4f]
380 // CHECK: sqrshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x4f]
383 //------------------------------------------------------------------------------
384 // Vector saturating shift right rounded narrow by immediate
385 //------------------------------------------------------------------------------
386 uqrshrn v0.8b, v1.8h, #3
387 uqrshrn v0.4h, v1.4s, #3
388 uqrshrn v0.2s, v1.2d, #3
389 uqrshrn2 v0.16b, v1.8h, #3
390 uqrshrn2 v0.8h, v1.4s, #3
391 uqrshrn2 v0.4s, v1.2d, #3
393 // CHECK: uqrshrn v0.8b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x2f]
394 // CHECK: uqrshrn v0.4h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x2f]
395 // CHECK: uqrshrn v0.2s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x2f]
396 // CHECK: uqrshrn2 v0.16b, v1.8h, #3 // encoding: [0x20,0x9c,0x0d,0x6f]
397 // CHECK: uqrshrn2 v0.8h, v1.4s, #3 // encoding: [0x20,0x9c,0x1d,0x6f]
398 // CHECK: uqrshrn2 v0.4s, v1.2d, #3 // encoding: [0x20,0x9c,0x3d,0x6f]
401 //------------------------------------------------------------------------------
402 // Fixed-point convert to floating-point
403 //------------------------------------------------------------------------------
404 scvtf v0.2s, v1.2s, #3
405 scvtf v0.4s, v1.4s, #3
406 scvtf v0.2d, v1.2d, #3
407 ucvtf v0.2s, v1.2s, #3
408 ucvtf v0.4s, v1.4s, #3
409 ucvtf v0.2d, v1.2d, #3
411 // CHECK: scvtf v0.2s, v1.2s, #3 // encoding: [0x20,0xe4,0x3d,0x0f]
412 // CHECK: scvtf v0.4s, v1.4s, #3 // encoding: [0x20,0xe4,0x3d,0x4f]
413 // CHECK: scvtf v0.2d, v1.2d, #3 // encoding: [0x20,0xe4,0x7d,0x4f]
414 // CHECK: ucvtf v0.2s, v1.2s, #3 // encoding: [0x20,0xe4,0x3d,0x2f]
415 // CHECK: ucvtf v0.4s, v1.4s, #3 // encoding: [0x20,0xe4,0x3d,0x6f]
416 // CHECK: ucvtf v0.2d, v1.2d, #3 // encoding: [0x20,0xe4,0x7d,0x6f]
418 //------------------------------------------------------------------------------
419 // Floating-point convert to fixed-point
420 //------------------------------------------------------------------------------
421 fcvtzs v0.2s, v1.2s, #3
422 fcvtzs v0.4s, v1.4s, #3
423 fcvtzs v0.2d, v1.2d, #3
424 fcvtzu v0.2s, v1.2s, #3
425 fcvtzu v0.4s, v1.4s, #3
426 fcvtzu v0.2d, v1.2d, #3
429 // CHECK: fcvtzs v0.2s, v1.2s, #3 // encoding: [0x20,0xfc,0x3d,0x0f]
430 // CHECK: fcvtzs v0.4s, v1.4s, #3 // encoding: [0x20,0xfc,0x3d,0x4f]
431 // CHECK: fcvtzs v0.2d, v1.2d, #3 // encoding: [0x20,0xfc,0x7d,0x4f]
432 // CHECK: fcvtzu v0.2s, v1.2s, #3 // encoding: [0x20,0xfc,0x3d,0x2f]
433 // CHECK: fcvtzu v0.4s, v1.4s, #3 // encoding: [0x20,0xfc,0x3d,0x6f]
434 // CHECK: fcvtzu v0.2d, v1.2d, #3 // encoding: [0x20,0xfc,0x7d,0x6f]