[InstCombine] Signed saturation patterns
[llvm-core.git] / test / MC / AArch64 / neon-3vdiff.s
blobfc3215b4b671343944b47b6edcd67ec2db9929f8
1 // RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -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 //------------------------------------------------------------------------------
10 // Long
11 //------------------------------------------------------------------------------
13 //------------------------------------------------------------------------------
14 // Long - Variant 1
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 //------------------------------------------------------------------------------
242 // Long - Variant 2
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 //------------------------------------------------------------------------------
282 // Long - Variant 3
283 //------------------------------------------------------------------------------
285 pmull v0.8h, v1.8b, v2.8b
286 pmull v0.1q, v1.1d, v2.1d
288 // CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e]
289 // CHECK: pmull v0.1q, v1.1d, v2.1d // encoding: [0x20,0xe0,0xe2,0x0e]
291 pmull2 v0.8h, v1.16b, v2.16b
292 pmull2 v0.1q, v1.2d, v2.2d
294 // CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e]
295 // CHECK: pmull2 v0.1q, v1.2d, v2.2d // encoding: [0x20,0xe0,0xe2,0x4e]
297 //------------------------------------------------------------------------------
298 // Widen
299 //------------------------------------------------------------------------------
301 saddw v0.8h, v1.8h, v2.8b
302 saddw v0.4s, v1.4s, v2.4h
303 saddw v0.2d, v1.2d, v2.2s
305 // CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e]
306 // CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e]
307 // CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e]
309 saddw2 v0.8h, v1.8h, v2.16b
310 saddw2 v0.4s, v1.4s, v2.8h
311 saddw2 v0.2d, v1.2d, v2.4s
313 // CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e]
314 // CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e]
315 // CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e]
317 uaddw v0.8h, v1.8h, v2.8b
318 uaddw v0.4s, v1.4s, v2.4h
319 uaddw v0.2d, v1.2d, v2.2s
321 // CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e]
322 // CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e]
323 // CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e]
325 uaddw2 v0.8h, v1.8h, v2.16b
326 uaddw2 v0.4s, v1.4s, v2.8h
327 uaddw2 v0.2d, v1.2d, v2.4s
329 // CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e]
330 // CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e]
331 // CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e]
333 ssubw v0.8h, v1.8h, v2.8b
334 ssubw v0.4s, v1.4s, v2.4h
335 ssubw v0.2d, v1.2d, v2.2s
337 // CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e]
338 // CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e]
339 // CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e]
341 ssubw2 v0.8h, v1.8h, v2.16b
342 ssubw2 v0.4s, v1.4s, v2.8h
343 ssubw2 v0.2d, v1.2d, v2.4s
345 // CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e]
346 // CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e]
347 // CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e]
349 usubw v0.8h, v1.8h, v2.8b
350 usubw v0.4s, v1.4s, v2.4h
351 usubw v0.2d, v1.2d, v2.2s
353 // CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e]
354 // CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e]
355 // CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e]
357 usubw2 v0.8h, v1.8h, v2.16b
358 usubw2 v0.4s, v1.4s, v2.8h
359 usubw2 v0.2d, v1.2d, v2.4s
361 // CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e]
362 // CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e]
363 // CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e]
365 //------------------------------------------------------------------------------
366 // Narrow
367 //------------------------------------------------------------------------------
369 addhn v0.8b, v1.8h, v2.8h
370 addhn v0.4h, v1.4s, v2.4s
371 addhn v0.2s, v1.2d, v2.2d
373 // CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e]
374 // CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e]
375 // CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e]
377 addhn2 v0.16b, v1.8h, v2.8h
378 addhn2 v0.8h, v1.4s, v2.4s
379 addhn2 v0.4s, v1.2d, v2.2d
381 // CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e]
382 // CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e]
383 // CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e]
385 raddhn v0.8b, v1.8h, v2.8h
386 raddhn v0.4h, v1.4s, v2.4s
387 raddhn v0.2s, v1.2d, v2.2d
389 // CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e]
390 // CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e]
391 // CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e]
393 raddhn2 v0.16b, v1.8h, v2.8h
394 raddhn2 v0.8h, v1.4s, v2.4s
395 raddhn2 v0.4s, v1.2d, v2.2d
397 // CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e]
398 // CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e]
399 // CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e]
401 rsubhn v0.8b, v1.8h, v2.8h
402 rsubhn v0.4h, v1.4s, v2.4s
403 rsubhn v0.2s, v1.2d, v2.2d
405 // CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e]
406 // CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e]
407 // CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e]
409 rsubhn2 v0.16b, v1.8h, v2.8h
410 rsubhn2 v0.8h, v1.4s, v2.4s
411 rsubhn2 v0.4s, v1.2d, v2.2d
413 // CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e]
414 // CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e]
415 // CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e]