1 // RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
3 // Check that the assembler can handle the documented syntax for AArch64
5 //------------------------------------------------------------------------------
6 // Instructions with 3 different vector data types
7 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
11 //------------------------------------------------------------------------------
13 //------------------------------------------------------------------------------
15 //------------------------------------------------------------------------------
17 saddl v0.8h, v1.8b, v2.8b
18 saddl v0.4s, v1.4h, v2.4h
19 saddl v0.2d, v1.2s, v2.2s
21 // CHECK: saddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x0e]
22 // CHECK: saddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x0e]
23 // CHECK: saddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x0e]
25 saddl2 v0.4s, v1.8h, v2.8h
26 saddl2 v0.8h, v1.16b, v2.16b
27 saddl2 v0.2d, v1.4s, v2.4s
29 // CHECK: saddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x4e]
30 // CHECK: saddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x4e]
31 // CHECK: saddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x4e]
33 uaddl v0.8h, v1.8b, v2.8b
34 uaddl v0.4s, v1.4h, v2.4h
35 uaddl v0.2d, v1.2s, v2.2s
37 // CHECK: uaddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x2e]
38 // CHECK: uaddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x2e]
39 // CHECK: uaddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x2e]
41 uaddl2 v0.8h, v1.16b, v2.16b
42 uaddl2 v0.4s, v1.8h, v2.8h
43 uaddl2 v0.2d, v1.4s, v2.4s
45 // CHECK: uaddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x6e]
46 // CHECK: uaddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x6e]
47 // CHECK: uaddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x6e]
49 ssubl v0.8h, v1.8b, v2.8b
50 ssubl v0.4s, v1.4h, v2.4h
51 ssubl v0.2d, v1.2s, v2.2s
53 // CHECK: ssubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x0e]
54 // CHECK: ssubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x0e]
55 // CHECK: ssubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x0e]
57 ssubl2 v0.8h, v1.16b, v2.16b
58 ssubl2 v0.4s, v1.8h, v2.8h
59 ssubl2 v0.2d, v1.4s, v2.4s
61 // CHECK: ssubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x4e]
62 // CHECK: ssubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x4e]
63 // CHECK: ssubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x4e]
65 usubl v0.8h, v1.8b, v2.8b
66 usubl v0.4s, v1.4h, v2.4h
67 usubl v0.2d, v1.2s, v2.2s
69 // CHECK: usubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x2e]
70 // CHECK: usubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x2e]
71 // CHECK: usubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x2e]
73 usubl2 v0.8h, v1.16b, v2.16b
74 usubl2 v0.4s, v1.8h, v2.8h
75 usubl2 v0.2d, v1.4s, v2.4s
77 // CHECK: usubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x6e]
78 // CHECK: usubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x6e]
79 // CHECK: usubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x6e]
81 sabal v0.8h, v1.8b, v2.8b
82 sabal v0.4s, v1.4h, v2.4h
83 sabal v0.2d, v1.2s, v2.2s
85 // CHECK: sabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x0e]
86 // CHECK: sabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x0e]
87 // CHECK: sabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x0e]
89 sabal2 v0.8h, v1.16b, v2.16b
90 sabal2 v0.4s, v1.8h, v2.8h
91 sabal2 v0.2d, v1.4s, v2.4s
93 // CHECK: sabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x4e]
94 // CHECK: sabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x4e]
95 // CHECK: sabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x4e]
97 uabal v0.8h, v1.8b, v2.8b
98 uabal v0.4s, v1.4h, v2.4h
99 uabal v0.2d, v1.2s, v2.2s
101 // CHECK: uabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x2e]
102 // CHECK: uabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x2e]
103 // CHECK: uabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x2e]
105 uabal2 v0.8h, v1.16b, v2.16b
106 uabal2 v0.4s, v1.8h, v2.8h
107 uabal2 v0.2d, v1.4s, v2.4s
109 // CHECK: uabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x6e]
110 // CHECK: uabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x6e]
111 // CHECK: uabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x6e]
113 sabdl v0.8h, v1.8b, v2.8b
114 sabdl v0.4s, v1.4h, v2.4h
115 sabdl v0.2d, v1.2s, v2.2s
117 // CHECK: sabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x0e]
118 // CHECK: sabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x0e]
119 // CHECK: sabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x0e]
121 sabdl2 v0.8h, v1.16b, v2.16b
122 sabdl2 v0.4s, v1.8h, v2.8h
123 sabdl2 v0.2d, v1.4s, v2.4s
125 // CHECK: sabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x4e]
126 // CHECK: sabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x4e]
127 // CHECK: sabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x4e]
129 uabdl v0.8h, v1.8b, v2.8b
130 uabdl v0.4s, v1.4h, v2.4h
131 uabdl v0.2d, v1.2s, v2.2s
133 // CHECK: uabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x2e]
134 // CHECK: uabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x2e]
135 // CHECK: uabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x2e]
137 uabdl2 v0.8h, v1.16b, v2.16b
138 uabdl2 v0.4s, v1.8h, v2.8h
139 uabdl2 v0.2d, v1.4s, v2.4s
141 // CHECK: uabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x6e]
142 // CHECK: uabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x6e]
143 // CHECK: uabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x6e]
145 smlal v0.8h, v1.8b, v2.8b
146 smlal v0.4s, v1.4h, v2.4h
147 smlal v0.2d, v1.2s, v2.2s
149 // CHECK: smlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x0e]
150 // CHECK: smlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x0e]
151 // CHECK: smlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x0e]
153 smlal2 v0.8h, v1.16b, v2.16b
154 smlal2 v0.4s, v1.8h, v2.8h
155 smlal2 v0.2d, v1.4s, v2.4s
157 // CHECK: smlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x4e]
158 // CHECK: smlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x4e]
159 // CHECK: smlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x4e]
161 umlal v0.8h, v1.8b, v2.8b
162 umlal v0.4s, v1.4h, v2.4h
163 umlal v0.2d, v1.2s, v2.2s
165 // CHECK: umlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x2e]
166 // CHECK: umlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x2e]
167 // CHECK: umlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x2e]
169 umlal2 v0.8h, v1.16b, v2.16b
170 umlal2 v0.4s, v1.8h, v2.8h
171 umlal2 v0.2d, v1.4s, v2.4s
173 // CHECK: umlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x6e]
174 // CHECK: umlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x6e]
175 // CHECK: umlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x6e]
177 smlsl v0.8h, v1.8b, v2.8b
178 smlsl v0.4s, v1.4h, v2.4h
179 smlsl v0.2d, v1.2s, v2.2s
181 // CHECK: smlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x0e]
182 // CHECK: smlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x0e]
183 // CHECK: smlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x0e]
185 smlsl2 v0.8h, v1.16b, v2.16b
186 smlsl2 v0.4s, v1.8h, v2.8h
187 smlsl2 v0.2d, v1.4s, v2.4s
189 // CHECK: smlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x4e]
190 // CHECK: smlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x4e]
191 // CHECK: smlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x4e]
193 umlsl v0.8h, v1.8b, v2.8b
194 umlsl v0.4s, v1.4h, v2.4h
195 umlsl v0.2d, v1.2s, v2.2s
197 // CHECK: umlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x2e]
198 // CHECK: umlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x2e]
199 // CHECK: umlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x2e]
201 umlsl2 v0.8h, v1.16b, v2.16b
202 umlsl2 v0.4s, v1.8h, v2.8h
203 umlsl2 v0.2d, v1.4s, v2.4s
205 // CHECK: umlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x6e]
206 // CHECK: umlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x6e]
207 // CHECK: umlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x6e]
209 smull v0.8h, v1.8b, v2.8b
210 smull v0.4s, v1.4h, v2.4h
211 smull v0.2d, v1.2s, v2.2s
213 // CHECK: smull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x0e]
214 // CHECK: smull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x0e]
215 // CHECK: smull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x0e]
217 smull2 v0.8h, v1.16b, v2.16b
218 smull2 v0.4s, v1.8h, v2.8h
219 smull2 v0.2d, v1.4s, v2.4s
221 // CHECK: smull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x4e]
222 // CHECK: smull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x4e]
223 // CHECK: smull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x4e]
225 umull v0.8h, v1.8b, v2.8b
226 umull v0.4s, v1.4h, v2.4h
227 umull v0.2d, v1.2s, v2.2s
229 // CHECK: umull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x2e]
230 // CHECK: umull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x2e]
231 // CHECK: umull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x2e]
233 umull2 v0.8h, v1.16b, v2.16b
234 umull2 v0.4s, v1.8h, v2.8h
235 umull2 v0.2d, v1.4s, v2.4s
237 // CHECK: umull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x6e]
238 // CHECK: umull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x6e]
239 // CHECK: umull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x6e]
241 //------------------------------------------------------------------------------
243 //------------------------------------------------------------------------------
245 sqdmlal v0.4s, v1.4h, v2.4h
246 sqdmlal v0.2d, v1.2s, v2.2s
248 // CHECK: sqdmlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x90,0x62,0x0e]
249 // CHECK: sqdmlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x90,0xa2,0x0e]
251 sqdmlal2 v0.4s, v1.8h, v2.8h
252 sqdmlal2 v0.2d, v1.4s, v2.4s
254 // CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e]
255 // CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e]
257 sqdmlsl v0.4s, v1.4h, v2.4h
258 sqdmlsl v0.2d, v1.2s, v2.2s
260 // CHECK: sqdmlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xb0,0x62,0x0e]
261 // CHECK: sqdmlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xb0,0xa2,0x0e]
263 sqdmlsl2 v0.4s, v1.8h, v2.8h
264 sqdmlsl2 v0.2d, v1.4s, v2.4s
266 // CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e]
267 // CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e]
269 sqdmull v0.4s, v1.4h, v2.4h
270 sqdmull v0.2d, v1.2s, v2.2s
272 // CHECK: sqdmull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xd0,0x62,0x0e]
273 // CHECK: sqdmull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xd0,0xa2,0x0e]
275 sqdmull2 v0.4s, v1.8h, v2.8h
276 sqdmull2 v0.2d, v1.4s, v2.4s
278 // CHECK: sqdmull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e]
279 // CHECK: sqdmull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e]
281 //------------------------------------------------------------------------------
283 //------------------------------------------------------------------------------
285 pmull v0.8h, v1.8b, v2.8b
287 // CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e]
289 pmull2 v0.8h, v1.16b, v2.16b
291 // CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e]
293 //------------------------------------------------------------------------------
295 //------------------------------------------------------------------------------
297 saddw v0.8h, v1.8h, v2.8b
298 saddw v0.4s, v1.4s, v2.4h
299 saddw v0.2d, v1.2d, v2.2s
301 // CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e]
302 // CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e]
303 // CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e]
305 saddw2 v0.8h, v1.8h, v2.16b
306 saddw2 v0.4s, v1.4s, v2.8h
307 saddw2 v0.2d, v1.2d, v2.4s
309 // CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e]
310 // CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e]
311 // CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e]
313 uaddw v0.8h, v1.8h, v2.8b
314 uaddw v0.4s, v1.4s, v2.4h
315 uaddw v0.2d, v1.2d, v2.2s
317 // CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e]
318 // CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e]
319 // CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e]
321 uaddw2 v0.8h, v1.8h, v2.16b
322 uaddw2 v0.4s, v1.4s, v2.8h
323 uaddw2 v0.2d, v1.2d, v2.4s
325 // CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e]
326 // CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e]
327 // CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e]
329 ssubw v0.8h, v1.8h, v2.8b
330 ssubw v0.4s, v1.4s, v2.4h
331 ssubw v0.2d, v1.2d, v2.2s
333 // CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e]
334 // CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e]
335 // CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e]
337 ssubw2 v0.8h, v1.8h, v2.16b
338 ssubw2 v0.4s, v1.4s, v2.8h
339 ssubw2 v0.2d, v1.2d, v2.4s
341 // CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e]
342 // CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e]
343 // CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e]
345 usubw v0.8h, v1.8h, v2.8b
346 usubw v0.4s, v1.4s, v2.4h
347 usubw v0.2d, v1.2d, v2.2s
349 // CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e]
350 // CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e]
351 // CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e]
353 usubw2 v0.8h, v1.8h, v2.16b
354 usubw2 v0.4s, v1.4s, v2.8h
355 usubw2 v0.2d, v1.2d, v2.4s
357 // CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e]
358 // CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e]
359 // CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e]
361 //------------------------------------------------------------------------------
363 //------------------------------------------------------------------------------
365 addhn v0.8b, v1.8h, v2.8h
366 addhn v0.4h, v1.4s, v2.4s
367 addhn v0.2s, v1.2d, v2.2d
369 // CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e]
370 // CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e]
371 // CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e]
373 addhn2 v0.16b, v1.8h, v2.8h
374 addhn2 v0.8h, v1.4s, v2.4s
375 addhn2 v0.4s, v1.2d, v2.2d
377 // CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e]
378 // CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e]
379 // CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e]
381 raddhn v0.8b, v1.8h, v2.8h
382 raddhn v0.4h, v1.4s, v2.4s
383 raddhn v0.2s, v1.2d, v2.2d
385 // CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e]
386 // CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e]
387 // CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e]
389 raddhn2 v0.16b, v1.8h, v2.8h
390 raddhn2 v0.8h, v1.4s, v2.4s
391 raddhn2 v0.4s, v1.2d, v2.2d
393 // CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e]
394 // CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e]
395 // CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e]
397 rsubhn v0.8b, v1.8h, v2.8h
398 rsubhn v0.4h, v1.4s, v2.4s
399 rsubhn v0.2s, v1.2d, v2.2d
401 // CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e]
402 // CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e]
403 // CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e]
405 rsubhn2 v0.16b, v1.8h, v2.8h
406 rsubhn2 v0.8h, v1.4s, v2.4s
407 rsubhn2 v0.4s, v1.2d, v2.2d
409 // CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e]
410 // CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e]
411 // CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e]