Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / AArch64 / SME2 / uvdot.s
blobc2ddb98f2e06aaa371b07ecd81d7302367f93cdb
1 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sme-i16i64 < %s \
2 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
4 // RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sme-i16i64 < %s \
6 // RUN: | llvm-objdump -d --mattr=+sme2,+sme-i16i64 - | FileCheck %s --check-prefix=CHECK-INST
7 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sme-i16i64 < %s \
8 // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sme-i16i64 < %s \
10 // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
11 // RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sme-i16i64 -disassemble -show-encoding \
12 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
15 uvdot za.s[w8, 0, vgx2], {z0.h, z1.h}, z0.h[0] // 11000001-01010000-00000000-00110000
16 // CHECK-INST: uvdot za.s[w8, 0, vgx2], { z0.h, z1.h }, z0.h[0]
17 // CHECK-ENCODING: [0x30,0x00,0x50,0xc1]
18 // CHECK-ERROR: instruction requires: sme2
19 // CHECK-UNKNOWN: c1500030 <unknown>
21 uvdot za.s[w8, 0], {z0.h, z1.h}, z0.h[0] // 11000001-01010000-00000000-00110000
22 // CHECK-INST: uvdot za.s[w8, 0, vgx2], { z0.h, z1.h }, z0.h[0]
23 // CHECK-ENCODING: [0x30,0x00,0x50,0xc1]
24 // CHECK-ERROR: instruction requires: sme2
25 // CHECK-UNKNOWN: c1500030 <unknown>
27 uvdot za.s[w10, 5, vgx2], {z10.h, z11.h}, z5.h[1] // 11000001-01010101-01000101-01110101
28 // CHECK-INST: uvdot za.s[w10, 5, vgx2], { z10.h, z11.h }, z5.h[1]
29 // CHECK-ENCODING: [0x75,0x45,0x55,0xc1]
30 // CHECK-ERROR: instruction requires: sme2
31 // CHECK-UNKNOWN: c1554575 <unknown>
33 uvdot za.s[w10, 5], {z10.h, z11.h}, z5.h[1] // 11000001-01010101-01000101-01110101
34 // CHECK-INST: uvdot za.s[w10, 5, vgx2], { z10.h, z11.h }, z5.h[1]
35 // CHECK-ENCODING: [0x75,0x45,0x55,0xc1]
36 // CHECK-ERROR: instruction requires: sme2
37 // CHECK-UNKNOWN: c1554575 <unknown>
39 uvdot za.s[w11, 7, vgx2], {z12.h, z13.h}, z8.h[3] // 11000001-01011000-01101101-10110111
40 // CHECK-INST: uvdot za.s[w11, 7, vgx2], { z12.h, z13.h }, z8.h[3]
41 // CHECK-ENCODING: [0xb7,0x6d,0x58,0xc1]
42 // CHECK-ERROR: instruction requires: sme2
43 // CHECK-UNKNOWN: c1586db7 <unknown>
45 uvdot za.s[w11, 7], {z12.h, z13.h}, z8.h[3] // 11000001-01011000-01101101-10110111
46 // CHECK-INST: uvdot za.s[w11, 7, vgx2], { z12.h, z13.h }, z8.h[3]
47 // CHECK-ENCODING: [0xb7,0x6d,0x58,0xc1]
48 // CHECK-ERROR: instruction requires: sme2
49 // CHECK-UNKNOWN: c1586db7 <unknown>
51 uvdot za.s[w11, 7, vgx2], {z30.h, z31.h}, z15.h[3] // 11000001-01011111-01101111-11110111
52 // CHECK-INST: uvdot za.s[w11, 7, vgx2], { z30.h, z31.h }, z15.h[3]
53 // CHECK-ENCODING: [0xf7,0x6f,0x5f,0xc1]
54 // CHECK-ERROR: instruction requires: sme2
55 // CHECK-UNKNOWN: c15f6ff7 <unknown>
57 uvdot za.s[w11, 7], {z30.h, z31.h}, z15.h[3] // 11000001-01011111-01101111-11110111
58 // CHECK-INST: uvdot za.s[w11, 7, vgx2], { z30.h, z31.h }, z15.h[3]
59 // CHECK-ENCODING: [0xf7,0x6f,0x5f,0xc1]
60 // CHECK-ERROR: instruction requires: sme2
61 // CHECK-UNKNOWN: c15f6ff7 <unknown>
63 uvdot za.s[w8, 5, vgx2], {z16.h, z17.h}, z0.h[3] // 11000001-01010000-00001110-00110101
64 // CHECK-INST: uvdot za.s[w8, 5, vgx2], { z16.h, z17.h }, z0.h[3]
65 // CHECK-ENCODING: [0x35,0x0e,0x50,0xc1]
66 // CHECK-ERROR: instruction requires: sme2
67 // CHECK-UNKNOWN: c1500e35 <unknown>
69 uvdot za.s[w8, 5], {z16.h, z17.h}, z0.h[3] // 11000001-01010000-00001110-00110101
70 // CHECK-INST: uvdot za.s[w8, 5, vgx2], { z16.h, z17.h }, z0.h[3]
71 // CHECK-ENCODING: [0x35,0x0e,0x50,0xc1]
72 // CHECK-ERROR: instruction requires: sme2
73 // CHECK-UNKNOWN: c1500e35 <unknown>
75 uvdot za.s[w8, 1, vgx2], {z0.h, z1.h}, z14.h[1] // 11000001-01011110-00000100-00110001
76 // CHECK-INST: uvdot za.s[w8, 1, vgx2], { z0.h, z1.h }, z14.h[1]
77 // CHECK-ENCODING: [0x31,0x04,0x5e,0xc1]
78 // CHECK-ERROR: instruction requires: sme2
79 // CHECK-UNKNOWN: c15e0431 <unknown>
81 uvdot za.s[w8, 1], {z0.h, z1.h}, z14.h[1] // 11000001-01011110-00000100-00110001
82 // CHECK-INST: uvdot za.s[w8, 1, vgx2], { z0.h, z1.h }, z14.h[1]
83 // CHECK-ENCODING: [0x31,0x04,0x5e,0xc1]
84 // CHECK-ERROR: instruction requires: sme2
85 // CHECK-UNKNOWN: c15e0431 <unknown>
87 uvdot za.s[w10, 0, vgx2], {z18.h, z19.h}, z4.h[1] // 11000001-01010100-01000110-01110000
88 // CHECK-INST: uvdot za.s[w10, 0, vgx2], { z18.h, z19.h }, z4.h[1]
89 // CHECK-ENCODING: [0x70,0x46,0x54,0xc1]
90 // CHECK-ERROR: instruction requires: sme2
91 // CHECK-UNKNOWN: c1544670 <unknown>
93 uvdot za.s[w10, 0], {z18.h, z19.h}, z4.h[1] // 11000001-01010100-01000110-01110000
94 // CHECK-INST: uvdot za.s[w10, 0, vgx2], { z18.h, z19.h }, z4.h[1]
95 // CHECK-ENCODING: [0x70,0x46,0x54,0xc1]
96 // CHECK-ERROR: instruction requires: sme2
97 // CHECK-UNKNOWN: c1544670 <unknown>
99 uvdot za.s[w8, 0, vgx2], {z12.h, z13.h}, z2.h[2] // 11000001-01010010-00001001-10110000
100 // CHECK-INST: uvdot za.s[w8, 0, vgx2], { z12.h, z13.h }, z2.h[2]
101 // CHECK-ENCODING: [0xb0,0x09,0x52,0xc1]
102 // CHECK-ERROR: instruction requires: sme2
103 // CHECK-UNKNOWN: c15209b0 <unknown>
105 uvdot za.s[w8, 0], {z12.h, z13.h}, z2.h[2] // 11000001-01010010-00001001-10110000
106 // CHECK-INST: uvdot za.s[w8, 0, vgx2], { z12.h, z13.h }, z2.h[2]
107 // CHECK-ENCODING: [0xb0,0x09,0x52,0xc1]
108 // CHECK-ERROR: instruction requires: sme2
109 // CHECK-UNKNOWN: c15209b0 <unknown>
111 uvdot za.s[w10, 1, vgx2], {z0.h, z1.h}, z10.h[2] // 11000001-01011010-01001000-00110001
112 // CHECK-INST: uvdot za.s[w10, 1, vgx2], { z0.h, z1.h }, z10.h[2]
113 // CHECK-ENCODING: [0x31,0x48,0x5a,0xc1]
114 // CHECK-ERROR: instruction requires: sme2
115 // CHECK-UNKNOWN: c15a4831 <unknown>
117 uvdot za.s[w10, 1], {z0.h, z1.h}, z10.h[2] // 11000001-01011010-01001000-00110001
118 // CHECK-INST: uvdot za.s[w10, 1, vgx2], { z0.h, z1.h }, z10.h[2]
119 // CHECK-ENCODING: [0x31,0x48,0x5a,0xc1]
120 // CHECK-ERROR: instruction requires: sme2
121 // CHECK-UNKNOWN: c15a4831 <unknown>
123 uvdot za.s[w8, 5, vgx2], {z22.h, z23.h}, z14.h[2] // 11000001-01011110-00001010-11110101
124 // CHECK-INST: uvdot za.s[w8, 5, vgx2], { z22.h, z23.h }, z14.h[2]
125 // CHECK-ENCODING: [0xf5,0x0a,0x5e,0xc1]
126 // CHECK-ERROR: instruction requires: sme2
127 // CHECK-UNKNOWN: c15e0af5 <unknown>
129 uvdot za.s[w8, 5], {z22.h, z23.h}, z14.h[2] // 11000001-01011110-00001010-11110101
130 // CHECK-INST: uvdot za.s[w8, 5, vgx2], { z22.h, z23.h }, z14.h[2]
131 // CHECK-ENCODING: [0xf5,0x0a,0x5e,0xc1]
132 // CHECK-ERROR: instruction requires: sme2
133 // CHECK-UNKNOWN: c15e0af5 <unknown>
135 uvdot za.s[w11, 2, vgx2], {z8.h, z9.h}, z1.h[1] // 11000001-01010001-01100101-00110010
136 // CHECK-INST: uvdot za.s[w11, 2, vgx2], { z8.h, z9.h }, z1.h[1]
137 // CHECK-ENCODING: [0x32,0x65,0x51,0xc1]
138 // CHECK-ERROR: instruction requires: sme2
139 // CHECK-UNKNOWN: c1516532 <unknown>
141 uvdot za.s[w11, 2], {z8.h, z9.h}, z1.h[1] // 11000001-01010001-01100101-00110010
142 // CHECK-INST: uvdot za.s[w11, 2, vgx2], { z8.h, z9.h }, z1.h[1]
143 // CHECK-ENCODING: [0x32,0x65,0x51,0xc1]
144 // CHECK-ERROR: instruction requires: sme2
145 // CHECK-UNKNOWN: c1516532 <unknown>
147 uvdot za.s[w9, 7, vgx2], {z12.h, z13.h}, z11.h[2] // 11000001-01011011-00101001-10110111
148 // CHECK-INST: uvdot za.s[w9, 7, vgx2], { z12.h, z13.h }, z11.h[2]
149 // CHECK-ENCODING: [0xb7,0x29,0x5b,0xc1]
150 // CHECK-ERROR: instruction requires: sme2
151 // CHECK-UNKNOWN: c15b29b7 <unknown>
153 uvdot za.s[w9, 7], {z12.h, z13.h}, z11.h[2] // 11000001-01011011-00101001-10110111
154 // CHECK-INST: uvdot za.s[w9, 7, vgx2], { z12.h, z13.h }, z11.h[2]
155 // CHECK-ENCODING: [0xb7,0x29,0x5b,0xc1]
156 // CHECK-ERROR: instruction requires: sme2
157 // CHECK-UNKNOWN: c15b29b7 <unknown>
160 uvdot za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b[0] // 11000001-01010000-10000000-00110000
161 // CHECK-INST: uvdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
162 // CHECK-ENCODING: [0x30,0x80,0x50,0xc1]
163 // CHECK-ERROR: instruction requires: sme2
164 // CHECK-UNKNOWN: c1508030 <unknown>
166 uvdot za.s[w8, 0], {z0.b - z3.b}, z0.b[0] // 11000001-01010000-10000000-00110000
167 // CHECK-INST: uvdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
168 // CHECK-ENCODING: [0x30,0x80,0x50,0xc1]
169 // CHECK-ERROR: instruction requires: sme2
170 // CHECK-UNKNOWN: c1508030 <unknown>
172 uvdot za.s[w10, 5, vgx4], {z8.b - z11.b}, z5.b[1] // 11000001-01010101-11000101-00110101
173 // CHECK-INST: uvdot za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
174 // CHECK-ENCODING: [0x35,0xc5,0x55,0xc1]
175 // CHECK-ERROR: instruction requires: sme2
176 // CHECK-UNKNOWN: c155c535 <unknown>
178 uvdot za.s[w10, 5], {z8.b - z11.b}, z5.b[1] // 11000001-01010101-11000101-00110101
179 // CHECK-INST: uvdot za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
180 // CHECK-ENCODING: [0x35,0xc5,0x55,0xc1]
181 // CHECK-ERROR: instruction requires: sme2
182 // CHECK-UNKNOWN: c155c535 <unknown>
184 uvdot za.s[w11, 7, vgx4], {z12.b - z15.b}, z8.b[3] // 11000001-01011000-11101101-10110111
185 // CHECK-INST: uvdot za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
186 // CHECK-ENCODING: [0xb7,0xed,0x58,0xc1]
187 // CHECK-ERROR: instruction requires: sme2
188 // CHECK-UNKNOWN: c158edb7 <unknown>
190 uvdot za.s[w11, 7], {z12.b - z15.b}, z8.b[3] // 11000001-01011000-11101101-10110111
191 // CHECK-INST: uvdot za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
192 // CHECK-ENCODING: [0xb7,0xed,0x58,0xc1]
193 // CHECK-ERROR: instruction requires: sme2
194 // CHECK-UNKNOWN: c158edb7 <unknown>
196 uvdot za.s[w11, 7, vgx4], {z28.b - z31.b}, z15.b[3] // 11000001-01011111-11101111-10110111
197 // CHECK-INST: uvdot za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
198 // CHECK-ENCODING: [0xb7,0xef,0x5f,0xc1]
199 // CHECK-ERROR: instruction requires: sme2
200 // CHECK-UNKNOWN: c15fefb7 <unknown>
202 uvdot za.s[w11, 7], {z28.b - z31.b}, z15.b[3] // 11000001-01011111-11101111-10110111
203 // CHECK-INST: uvdot za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
204 // CHECK-ENCODING: [0xb7,0xef,0x5f,0xc1]
205 // CHECK-ERROR: instruction requires: sme2
206 // CHECK-UNKNOWN: c15fefb7 <unknown>
208 uvdot za.s[w8, 5, vgx4], {z16.b - z19.b}, z0.b[3] // 11000001-01010000-10001110-00110101
209 // CHECK-INST: uvdot za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
210 // CHECK-ENCODING: [0x35,0x8e,0x50,0xc1]
211 // CHECK-ERROR: instruction requires: sme2
212 // CHECK-UNKNOWN: c1508e35 <unknown>
214 uvdot za.s[w8, 5], {z16.b - z19.b}, z0.b[3] // 11000001-01010000-10001110-00110101
215 // CHECK-INST: uvdot za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
216 // CHECK-ENCODING: [0x35,0x8e,0x50,0xc1]
217 // CHECK-ERROR: instruction requires: sme2
218 // CHECK-UNKNOWN: c1508e35 <unknown>
220 uvdot za.s[w8, 1, vgx4], {z0.b - z3.b}, z14.b[1] // 11000001-01011110-10000100-00110001
221 // CHECK-INST: uvdot za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
222 // CHECK-ENCODING: [0x31,0x84,0x5e,0xc1]
223 // CHECK-ERROR: instruction requires: sme2
224 // CHECK-UNKNOWN: c15e8431 <unknown>
226 uvdot za.s[w8, 1], {z0.b - z3.b}, z14.b[1] // 11000001-01011110-10000100-00110001
227 // CHECK-INST: uvdot za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
228 // CHECK-ENCODING: [0x31,0x84,0x5e,0xc1]
229 // CHECK-ERROR: instruction requires: sme2
230 // CHECK-UNKNOWN: c15e8431 <unknown>
232 uvdot za.s[w10, 0, vgx4], {z16.b - z19.b}, z4.b[1] // 11000001-01010100-11000110-00110000
233 // CHECK-INST: uvdot za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
234 // CHECK-ENCODING: [0x30,0xc6,0x54,0xc1]
235 // CHECK-ERROR: instruction requires: sme2
236 // CHECK-UNKNOWN: c154c630 <unknown>
238 uvdot za.s[w10, 0], {z16.b - z19.b}, z4.b[1] // 11000001-01010100-11000110-00110000
239 // CHECK-INST: uvdot za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
240 // CHECK-ENCODING: [0x30,0xc6,0x54,0xc1]
241 // CHECK-ERROR: instruction requires: sme2
242 // CHECK-UNKNOWN: c154c630 <unknown>
244 uvdot za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b[2] // 11000001-01010010-10001001-10110000
245 // CHECK-INST: uvdot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
246 // CHECK-ENCODING: [0xb0,0x89,0x52,0xc1]
247 // CHECK-ERROR: instruction requires: sme2
248 // CHECK-UNKNOWN: c15289b0 <unknown>
250 uvdot za.s[w8, 0], {z12.b - z15.b}, z2.b[2] // 11000001-01010010-10001001-10110000
251 // CHECK-INST: uvdot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
252 // CHECK-ENCODING: [0xb0,0x89,0x52,0xc1]
253 // CHECK-ERROR: instruction requires: sme2
254 // CHECK-UNKNOWN: c15289b0 <unknown>
256 uvdot za.s[w10, 1, vgx4], {z0.b - z3.b}, z10.b[2] // 11000001-01011010-11001000-00110001
257 // CHECK-INST: uvdot za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
258 // CHECK-ENCODING: [0x31,0xc8,0x5a,0xc1]
259 // CHECK-ERROR: instruction requires: sme2
260 // CHECK-UNKNOWN: c15ac831 <unknown>
262 uvdot za.s[w10, 1], {z0.b - z3.b}, z10.b[2] // 11000001-01011010-11001000-00110001
263 // CHECK-INST: uvdot za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
264 // CHECK-ENCODING: [0x31,0xc8,0x5a,0xc1]
265 // CHECK-ERROR: instruction requires: sme2
266 // CHECK-UNKNOWN: c15ac831 <unknown>
268 uvdot za.s[w8, 5, vgx4], {z20.b - z23.b}, z14.b[2] // 11000001-01011110-10001010-10110101
269 // CHECK-INST: uvdot za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
270 // CHECK-ENCODING: [0xb5,0x8a,0x5e,0xc1]
271 // CHECK-ERROR: instruction requires: sme2
272 // CHECK-UNKNOWN: c15e8ab5 <unknown>
274 uvdot za.s[w8, 5], {z20.b - z23.b}, z14.b[2] // 11000001-01011110-10001010-10110101
275 // CHECK-INST: uvdot za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
276 // CHECK-ENCODING: [0xb5,0x8a,0x5e,0xc1]
277 // CHECK-ERROR: instruction requires: sme2
278 // CHECK-UNKNOWN: c15e8ab5 <unknown>
280 uvdot za.s[w11, 2, vgx4], {z8.b - z11.b}, z1.b[1] // 11000001-01010001-11100101-00110010
281 // CHECK-INST: uvdot za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
282 // CHECK-ENCODING: [0x32,0xe5,0x51,0xc1]
283 // CHECK-ERROR: instruction requires: sme2
284 // CHECK-UNKNOWN: c151e532 <unknown>
286 uvdot za.s[w11, 2], {z8.b - z11.b}, z1.b[1] // 11000001-01010001-11100101-00110010
287 // CHECK-INST: uvdot za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
288 // CHECK-ENCODING: [0x32,0xe5,0x51,0xc1]
289 // CHECK-ERROR: instruction requires: sme2
290 // CHECK-UNKNOWN: c151e532 <unknown>
292 uvdot za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b[2] // 11000001-01011011-10101001-10110111
293 // CHECK-INST: uvdot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
294 // CHECK-ENCODING: [0xb7,0xa9,0x5b,0xc1]
295 // CHECK-ERROR: instruction requires: sme2
296 // CHECK-UNKNOWN: c15ba9b7 <unknown>
298 uvdot za.s[w9, 7], {z12.b - z15.b}, z11.b[2] // 11000001-01011011-10101001-10110111
299 // CHECK-INST: uvdot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
300 // CHECK-ENCODING: [0xb7,0xa9,0x5b,0xc1]
301 // CHECK-ERROR: instruction requires: sme2
302 // CHECK-UNKNOWN: c15ba9b7 <unknown>
305 uvdot za.d[w8, 0, vgx4], {z0.h - z3.h}, z0.h[0] // 11000001-11010000-10001000-00011000
306 // CHECK-INST: uvdot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h[0]
307 // CHECK-ENCODING: [0x18,0x88,0xd0,0xc1]
308 // CHECK-ERROR: instruction requires: sme2
309 // CHECK-UNKNOWN: c1d08818 <unknown>
311 uvdot za.d[w8, 0], {z0.h - z3.h}, z0.h[0] // 11000001-11010000-10001000-00011000
312 // CHECK-INST: uvdot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h[0]
313 // CHECK-ENCODING: [0x18,0x88,0xd0,0xc1]
314 // CHECK-ERROR: instruction requires: sme2
315 // CHECK-UNKNOWN: c1d08818 <unknown>
317 uvdot za.d[w10, 5, vgx4], {z8.h - z11.h}, z5.h[1] // 11000001-11010101-11001101-00011101
318 // CHECK-INST: uvdot za.d[w10, 5, vgx4], { z8.h - z11.h }, z5.h[1]
319 // CHECK-ENCODING: [0x1d,0xcd,0xd5,0xc1]
320 // CHECK-ERROR: instruction requires: sme2
321 // CHECK-UNKNOWN: c1d5cd1d <unknown>
323 uvdot za.d[w10, 5], {z8.h - z11.h}, z5.h[1] // 11000001-11010101-11001101-00011101
324 // CHECK-INST: uvdot za.d[w10, 5, vgx4], { z8.h - z11.h }, z5.h[1]
325 // CHECK-ENCODING: [0x1d,0xcd,0xd5,0xc1]
326 // CHECK-ERROR: instruction requires: sme2
327 // CHECK-UNKNOWN: c1d5cd1d <unknown>
329 uvdot za.d[w11, 7, vgx4], {z12.h - z15.h}, z8.h[1] // 11000001-11011000-11101101-10011111
330 // CHECK-INST: uvdot za.d[w11, 7, vgx4], { z12.h - z15.h }, z8.h[1]
331 // CHECK-ENCODING: [0x9f,0xed,0xd8,0xc1]
332 // CHECK-ERROR: instruction requires: sme2
333 // CHECK-UNKNOWN: c1d8ed9f <unknown>
335 uvdot za.d[w11, 7], {z12.h - z15.h}, z8.h[1] // 11000001-11011000-11101101-10011111
336 // CHECK-INST: uvdot za.d[w11, 7, vgx4], { z12.h - z15.h }, z8.h[1]
337 // CHECK-ENCODING: [0x9f,0xed,0xd8,0xc1]
338 // CHECK-ERROR: instruction requires: sme2
339 // CHECK-UNKNOWN: c1d8ed9f <unknown>
341 uvdot za.d[w11, 7, vgx4], {z28.h - z31.h}, z15.h[1] // 11000001-11011111-11101111-10011111
342 // CHECK-INST: uvdot za.d[w11, 7, vgx4], { z28.h - z31.h }, z15.h[1]
343 // CHECK-ENCODING: [0x9f,0xef,0xdf,0xc1]
344 // CHECK-ERROR: instruction requires: sme2
345 // CHECK-UNKNOWN: c1dfef9f <unknown>
347 uvdot za.d[w11, 7], {z28.h - z31.h}, z15.h[1] // 11000001-11011111-11101111-10011111
348 // CHECK-INST: uvdot za.d[w11, 7, vgx4], { z28.h - z31.h }, z15.h[1]
349 // CHECK-ENCODING: [0x9f,0xef,0xdf,0xc1]
350 // CHECK-ERROR: instruction requires: sme2
351 // CHECK-UNKNOWN: c1dfef9f <unknown>
353 uvdot za.d[w8, 5, vgx4], {z16.h - z19.h}, z0.h[1] // 11000001-11010000-10001110-00011101
354 // CHECK-INST: uvdot za.d[w8, 5, vgx4], { z16.h - z19.h }, z0.h[1]
355 // CHECK-ENCODING: [0x1d,0x8e,0xd0,0xc1]
356 // CHECK-ERROR: instruction requires: sme2
357 // CHECK-UNKNOWN: c1d08e1d <unknown>
359 uvdot za.d[w8, 5], {z16.h - z19.h}, z0.h[1] // 11000001-11010000-10001110-00011101
360 // CHECK-INST: uvdot za.d[w8, 5, vgx4], { z16.h - z19.h }, z0.h[1]
361 // CHECK-ENCODING: [0x1d,0x8e,0xd0,0xc1]
362 // CHECK-ERROR: instruction requires: sme2
363 // CHECK-UNKNOWN: c1d08e1d <unknown>
365 uvdot za.d[w8, 1, vgx4], {z0.h - z3.h}, z14.h[1] // 11000001-11011110-10001100-00011001
366 // CHECK-INST: uvdot za.d[w8, 1, vgx4], { z0.h - z3.h }, z14.h[1]
367 // CHECK-ENCODING: [0x19,0x8c,0xde,0xc1]
368 // CHECK-ERROR: instruction requires: sme2
369 // CHECK-UNKNOWN: c1de8c19 <unknown>
371 uvdot za.d[w8, 1], {z0.h - z3.h}, z14.h[1] // 11000001-11011110-10001100-00011001
372 // CHECK-INST: uvdot za.d[w8, 1, vgx4], { z0.h - z3.h }, z14.h[1]
373 // CHECK-ENCODING: [0x19,0x8c,0xde,0xc1]
374 // CHECK-ERROR: instruction requires: sme2
375 // CHECK-UNKNOWN: c1de8c19 <unknown>
377 uvdot za.d[w10, 0, vgx4], {z16.h - z19.h}, z4.h[1] // 11000001-11010100-11001110-00011000
378 // CHECK-INST: uvdot za.d[w10, 0, vgx4], { z16.h - z19.h }, z4.h[1]
379 // CHECK-ENCODING: [0x18,0xce,0xd4,0xc1]
380 // CHECK-ERROR: instruction requires: sme2
381 // CHECK-UNKNOWN: c1d4ce18 <unknown>
383 uvdot za.d[w10, 0], {z16.h - z19.h}, z4.h[1] // 11000001-11010100-11001110-00011000
384 // CHECK-INST: uvdot za.d[w10, 0, vgx4], { z16.h - z19.h }, z4.h[1]
385 // CHECK-ENCODING: [0x18,0xce,0xd4,0xc1]
386 // CHECK-ERROR: instruction requires: sme2
387 // CHECK-UNKNOWN: c1d4ce18 <unknown>
389 uvdot za.d[w8, 0, vgx4], {z12.h - z15.h}, z2.h[0] // 11000001-11010010-10001001-10011000
390 // CHECK-INST: uvdot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h[0]
391 // CHECK-ENCODING: [0x98,0x89,0xd2,0xc1]
392 // CHECK-ERROR: instruction requires: sme2
393 // CHECK-UNKNOWN: c1d28998 <unknown>
395 uvdot za.d[w8, 0], {z12.h - z15.h}, z2.h[0] // 11000001-11010010-10001001-10011000
396 // CHECK-INST: uvdot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h[0]
397 // CHECK-ENCODING: [0x98,0x89,0xd2,0xc1]
398 // CHECK-ERROR: instruction requires: sme2
399 // CHECK-UNKNOWN: c1d28998 <unknown>
401 uvdot za.d[w10, 1, vgx4], {z0.h - z3.h}, z10.h[0] // 11000001-11011010-11001000-00011001
402 // CHECK-INST: uvdot za.d[w10, 1, vgx4], { z0.h - z3.h }, z10.h[0]
403 // CHECK-ENCODING: [0x19,0xc8,0xda,0xc1]
404 // CHECK-ERROR: instruction requires: sme2
405 // CHECK-UNKNOWN: c1dac819 <unknown>
407 uvdot za.d[w10, 1], {z0.h - z3.h}, z10.h[0] // 11000001-11011010-11001000-00011001
408 // CHECK-INST: uvdot za.d[w10, 1, vgx4], { z0.h - z3.h }, z10.h[0]
409 // CHECK-ENCODING: [0x19,0xc8,0xda,0xc1]
410 // CHECK-ERROR: instruction requires: sme2
411 // CHECK-UNKNOWN: c1dac819 <unknown>
413 uvdot za.d[w8, 5, vgx4], {z20.h - z23.h}, z14.h[0] // 11000001-11011110-10001010-10011101
414 // CHECK-INST: uvdot za.d[w8, 5, vgx4], { z20.h - z23.h }, z14.h[0]
415 // CHECK-ENCODING: [0x9d,0x8a,0xde,0xc1]
416 // CHECK-ERROR: instruction requires: sme2
417 // CHECK-UNKNOWN: c1de8a9d <unknown>
419 uvdot za.d[w8, 5], {z20.h - z23.h}, z14.h[0] // 11000001-11011110-10001010-10011101
420 // CHECK-INST: uvdot za.d[w8, 5, vgx4], { z20.h - z23.h }, z14.h[0]
421 // CHECK-ENCODING: [0x9d,0x8a,0xde,0xc1]
422 // CHECK-ERROR: instruction requires: sme2
423 // CHECK-UNKNOWN: c1de8a9d <unknown>
425 uvdot za.d[w11, 2, vgx4], {z8.h - z11.h}, z1.h[1] // 11000001-11010001-11101101-00011010
426 // CHECK-INST: uvdot za.d[w11, 2, vgx4], { z8.h - z11.h }, z1.h[1]
427 // CHECK-ENCODING: [0x1a,0xed,0xd1,0xc1]
428 // CHECK-ERROR: instruction requires: sme2
429 // CHECK-UNKNOWN: c1d1ed1a <unknown>
431 uvdot za.d[w11, 2], {z8.h - z11.h}, z1.h[1] // 11000001-11010001-11101101-00011010
432 // CHECK-INST: uvdot za.d[w11, 2, vgx4], { z8.h - z11.h }, z1.h[1]
433 // CHECK-ENCODING: [0x1a,0xed,0xd1,0xc1]
434 // CHECK-ERROR: instruction requires: sme2
435 // CHECK-UNKNOWN: c1d1ed1a <unknown>
437 uvdot za.d[w9, 7, vgx4], {z12.h - z15.h}, z11.h[0] // 11000001-11011011-10101001-10011111
438 // CHECK-INST: uvdot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h[0]
439 // CHECK-ENCODING: [0x9f,0xa9,0xdb,0xc1]
440 // CHECK-ERROR: instruction requires: sme2
441 // CHECK-UNKNOWN: c1dba99f <unknown>
443 uvdot za.d[w9, 7], {z12.h - z15.h}, z11.h[0] // 11000001-11011011-10101001-10011111
444 // CHECK-INST: uvdot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h[0]
445 // CHECK-ENCODING: [0x9f,0xa9,0xdb,0xc1]
446 // CHECK-ERROR: instruction requires: sme2
447 // CHECK-UNKNOWN: c1dba99f <unknown>