xref: /llvm-project/llvm/test/MC/AArch64/SME2/usdot.s (revision 5d67b051e29c2bde42a5004634296b88542c096a)
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2 < %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 < %s \
6// RUN:        | llvm-objdump -d --mattr=+sme2 - | FileCheck %s --check-prefix=CHECK-INST
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2 < %s \
8// RUN:        | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2 < %s \
10// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
11// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme2 -disassemble -show-encoding \
12// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
13
14
15usdot   za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b  // 11000001-00100000-00010100-00001000
16// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b
17// CHECK-ENCODING: [0x08,0x14,0x20,0xc1]
18// CHECK-ERROR: instruction requires: sme2
19// CHECK-UNKNOWN: c1201408 <unknown>
20
21usdot   za.s[w8, 0], {z0.b, z1.b}, z0.b  // 11000001-00100000-00010100-00001000
22// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b
23// CHECK-ENCODING: [0x08,0x14,0x20,0xc1]
24// CHECK-ERROR: instruction requires: sme2
25// CHECK-UNKNOWN: c1201408 <unknown>
26
27usdot   za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b  // 11000001-00100101-01010101-01001101
28// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b
29// CHECK-ENCODING: [0x4d,0x55,0x25,0xc1]
30// CHECK-ERROR: instruction requires: sme2
31// CHECK-UNKNOWN: c125554d <unknown>
32
33usdot   za.s[w10, 5], {z10.b, z11.b}, z5.b  // 11000001-00100101-01010101-01001101
34// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b
35// CHECK-ENCODING: [0x4d,0x55,0x25,0xc1]
36// CHECK-ERROR: instruction requires: sme2
37// CHECK-UNKNOWN: c125554d <unknown>
38
39usdot   za.s[w11, 7, vgx2], {z13.b, z14.b}, z8.b  // 11000001-00101000-01110101-10101111
40// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b
41// CHECK-ENCODING: [0xaf,0x75,0x28,0xc1]
42// CHECK-ERROR: instruction requires: sme2
43// CHECK-UNKNOWN: c12875af <unknown>
44
45usdot   za.s[w11, 7], {z13.b, z14.b}, z8.b  // 11000001-00101000-01110101-10101111
46// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b
47// CHECK-ENCODING: [0xaf,0x75,0x28,0xc1]
48// CHECK-ERROR: instruction requires: sme2
49// CHECK-UNKNOWN: c12875af <unknown>
50
51usdot   za.s[w11, 7, vgx2], {z31.b, z0.b}, z15.b  // 11000001-00101111-01110111-11101111
52// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b
53// CHECK-ENCODING: [0xef,0x77,0x2f,0xc1]
54// CHECK-ERROR: instruction requires: sme2
55// CHECK-UNKNOWN: c12f77ef <unknown>
56
57usdot   za.s[w11, 7], {z31.b, z0.b}, z15.b  // 11000001-00101111-01110111-11101111
58// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b
59// CHECK-ENCODING: [0xef,0x77,0x2f,0xc1]
60// CHECK-ERROR: instruction requires: sme2
61// CHECK-UNKNOWN: c12f77ef <unknown>
62
63usdot   za.s[w8, 5, vgx2], {z17.b, z18.b}, z0.b  // 11000001-00100000-00010110-00101101
64// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b
65// CHECK-ENCODING: [0x2d,0x16,0x20,0xc1]
66// CHECK-ERROR: instruction requires: sme2
67// CHECK-UNKNOWN: c120162d <unknown>
68
69usdot   za.s[w8, 5], {z17.b, z18.b}, z0.b  // 11000001-00100000-00010110-00101101
70// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b
71// CHECK-ENCODING: [0x2d,0x16,0x20,0xc1]
72// CHECK-ERROR: instruction requires: sme2
73// CHECK-UNKNOWN: c120162d <unknown>
74
75usdot   za.s[w8, 1, vgx2], {z1.b, z2.b}, z14.b  // 11000001-00101110-00010100-00101001
76// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b
77// CHECK-ENCODING: [0x29,0x14,0x2e,0xc1]
78// CHECK-ERROR: instruction requires: sme2
79// CHECK-UNKNOWN: c12e1429 <unknown>
80
81usdot   za.s[w8, 1], {z1.b, z2.b}, z14.b  // 11000001-00101110-00010100-00101001
82// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b
83// CHECK-ENCODING: [0x29,0x14,0x2e,0xc1]
84// CHECK-ERROR: instruction requires: sme2
85// CHECK-UNKNOWN: c12e1429 <unknown>
86
87usdot   za.s[w10, 0, vgx2], {z19.b, z20.b}, z4.b  // 11000001-00100100-01010110-01101000
88// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b
89// CHECK-ENCODING: [0x68,0x56,0x24,0xc1]
90// CHECK-ERROR: instruction requires: sme2
91// CHECK-UNKNOWN: c1245668 <unknown>
92
93usdot   za.s[w10, 0], {z19.b, z20.b}, z4.b  // 11000001-00100100-01010110-01101000
94// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b
95// CHECK-ENCODING: [0x68,0x56,0x24,0xc1]
96// CHECK-ERROR: instruction requires: sme2
97// CHECK-UNKNOWN: c1245668 <unknown>
98
99usdot   za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b  // 11000001-00100010-00010101-10001000
100// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b
101// CHECK-ENCODING: [0x88,0x15,0x22,0xc1]
102// CHECK-ERROR: instruction requires: sme2
103// CHECK-UNKNOWN: c1221588 <unknown>
104
105usdot   za.s[w8, 0], {z12.b, z13.b}, z2.b  // 11000001-00100010-00010101-10001000
106// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b
107// CHECK-ENCODING: [0x88,0x15,0x22,0xc1]
108// CHECK-ERROR: instruction requires: sme2
109// CHECK-UNKNOWN: c1221588 <unknown>
110
111usdot   za.s[w10, 1, vgx2], {z1.b, z2.b}, z10.b  // 11000001-00101010-01010100-00101001
112// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b
113// CHECK-ENCODING: [0x29,0x54,0x2a,0xc1]
114// CHECK-ERROR: instruction requires: sme2
115// CHECK-UNKNOWN: c12a5429 <unknown>
116
117usdot   za.s[w10, 1], {z1.b, z2.b}, z10.b  // 11000001-00101010-01010100-00101001
118// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b
119// CHECK-ENCODING: [0x29,0x54,0x2a,0xc1]
120// CHECK-ERROR: instruction requires: sme2
121// CHECK-UNKNOWN: c12a5429 <unknown>
122
123usdot   za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b  // 11000001-00101110-00010110-11001101
124// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b
125// CHECK-ENCODING: [0xcd,0x16,0x2e,0xc1]
126// CHECK-ERROR: instruction requires: sme2
127// CHECK-UNKNOWN: c12e16cd <unknown>
128
129usdot   za.s[w8, 5], {z22.b, z23.b}, z14.b  // 11000001-00101110-00010110-11001101
130// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b
131// CHECK-ENCODING: [0xcd,0x16,0x2e,0xc1]
132// CHECK-ERROR: instruction requires: sme2
133// CHECK-UNKNOWN: c12e16cd <unknown>
134
135usdot   za.s[w11, 2, vgx2], {z9.b, z10.b}, z1.b  // 11000001-00100001-01110101-00101010
136// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b
137// CHECK-ENCODING: [0x2a,0x75,0x21,0xc1]
138// CHECK-ERROR: instruction requires: sme2
139// CHECK-UNKNOWN: c121752a <unknown>
140
141usdot   za.s[w11, 2], {z9.b, z10.b}, z1.b  // 11000001-00100001-01110101-00101010
142// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b
143// CHECK-ENCODING: [0x2a,0x75,0x21,0xc1]
144// CHECK-ERROR: instruction requires: sme2
145// CHECK-UNKNOWN: c121752a <unknown>
146
147usdot   za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b  // 11000001-00101011-00110101-10001111
148// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b
149// CHECK-ENCODING: [0x8f,0x35,0x2b,0xc1]
150// CHECK-ERROR: instruction requires: sme2
151// CHECK-UNKNOWN: c12b358f <unknown>
152
153usdot   za.s[w9, 7], {z12.b, z13.b}, z11.b  // 11000001-00101011-00110101-10001111
154// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b
155// CHECK-ENCODING: [0x8f,0x35,0x2b,0xc1]
156// CHECK-ERROR: instruction requires: sme2
157// CHECK-UNKNOWN: c12b358f <unknown>
158
159
160usdot   za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b[0]  // 11000001-01010000-00010000-00101000
161// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0]
162// CHECK-ENCODING: [0x28,0x10,0x50,0xc1]
163// CHECK-ERROR: instruction requires: sme2
164// CHECK-UNKNOWN: c1501028 <unknown>
165
166usdot   za.s[w8, 0], {z0.b, z1.b}, z0.b[0]  // 11000001-01010000-00010000-00101000
167// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0]
168// CHECK-ENCODING: [0x28,0x10,0x50,0xc1]
169// CHECK-ERROR: instruction requires: sme2
170// CHECK-UNKNOWN: c1501028 <unknown>
171
172usdot   za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b[1]  // 11000001-01010101-01010101-01101101
173// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b[1]
174// CHECK-ENCODING: [0x6d,0x55,0x55,0xc1]
175// CHECK-ERROR: instruction requires: sme2
176// CHECK-UNKNOWN: c155556d <unknown>
177
178usdot   za.s[w10, 5], {z10.b, z11.b}, z5.b[1]  // 11000001-01010101-01010101-01101101
179// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b[1]
180// CHECK-ENCODING: [0x6d,0x55,0x55,0xc1]
181// CHECK-ERROR: instruction requires: sme2
182// CHECK-UNKNOWN: c155556d <unknown>
183
184usdot   za.s[w11, 7, vgx2], {z12.b, z13.b}, z8.b[3]  // 11000001-01011000-01111101-10101111
185// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z12.b, z13.b }, z8.b[3]
186// CHECK-ENCODING: [0xaf,0x7d,0x58,0xc1]
187// CHECK-ERROR: instruction requires: sme2
188// CHECK-UNKNOWN: c1587daf <unknown>
189
190usdot   za.s[w11, 7], {z12.b, z13.b}, z8.b[3]  // 11000001-01011000-01111101-10101111
191// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z12.b, z13.b }, z8.b[3]
192// CHECK-ENCODING: [0xaf,0x7d,0x58,0xc1]
193// CHECK-ERROR: instruction requires: sme2
194// CHECK-UNKNOWN: c1587daf <unknown>
195
196usdot   za.s[w11, 7, vgx2], {z30.b, z31.b}, z15.b[3]  // 11000001-01011111-01111111-11101111
197// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3]
198// CHECK-ENCODING: [0xef,0x7f,0x5f,0xc1]
199// CHECK-ERROR: instruction requires: sme2
200// CHECK-UNKNOWN: c15f7fef <unknown>
201
202usdot   za.s[w11, 7], {z30.b, z31.b}, z15.b[3]  // 11000001-01011111-01111111-11101111
203// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3]
204// CHECK-ENCODING: [0xef,0x7f,0x5f,0xc1]
205// CHECK-ERROR: instruction requires: sme2
206// CHECK-UNKNOWN: c15f7fef <unknown>
207
208usdot   za.s[w8, 5, vgx2], {z16.b, z17.b}, z0.b[3]  // 11000001-01010000-00011110-00101101
209// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z16.b, z17.b }, z0.b[3]
210// CHECK-ENCODING: [0x2d,0x1e,0x50,0xc1]
211// CHECK-ERROR: instruction requires: sme2
212// CHECK-UNKNOWN: c1501e2d <unknown>
213
214usdot   za.s[w8, 5], {z16.b, z17.b}, z0.b[3]  // 11000001-01010000-00011110-00101101
215// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z16.b, z17.b }, z0.b[3]
216// CHECK-ENCODING: [0x2d,0x1e,0x50,0xc1]
217// CHECK-ERROR: instruction requires: sme2
218// CHECK-UNKNOWN: c1501e2d <unknown>
219
220usdot   za.s[w8, 1, vgx2], {z0.b, z1.b}, z14.b[1]  // 11000001-01011110-00010100-00101001
221// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z0.b, z1.b }, z14.b[1]
222// CHECK-ENCODING: [0x29,0x14,0x5e,0xc1]
223// CHECK-ERROR: instruction requires: sme2
224// CHECK-UNKNOWN: c15e1429 <unknown>
225
226usdot   za.s[w8, 1], {z0.b, z1.b}, z14.b[1]  // 11000001-01011110-00010100-00101001
227// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z0.b, z1.b }, z14.b[1]
228// CHECK-ENCODING: [0x29,0x14,0x5e,0xc1]
229// CHECK-ERROR: instruction requires: sme2
230// CHECK-UNKNOWN: c15e1429 <unknown>
231
232usdot   za.s[w10, 0, vgx2], {z18.b, z19.b}, z4.b[1]  // 11000001-01010100-01010110-01101000
233// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z18.b, z19.b }, z4.b[1]
234// CHECK-ENCODING: [0x68,0x56,0x54,0xc1]
235// CHECK-ERROR: instruction requires: sme2
236// CHECK-UNKNOWN: c1545668 <unknown>
237
238usdot   za.s[w10, 0], {z18.b, z19.b}, z4.b[1]  // 11000001-01010100-01010110-01101000
239// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z18.b, z19.b }, z4.b[1]
240// CHECK-ENCODING: [0x68,0x56,0x54,0xc1]
241// CHECK-ERROR: instruction requires: sme2
242// CHECK-UNKNOWN: c1545668 <unknown>
243
244usdot   za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b[2]  // 11000001-01010010-00011001-10101000
245// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b[2]
246// CHECK-ENCODING: [0xa8,0x19,0x52,0xc1]
247// CHECK-ERROR: instruction requires: sme2
248// CHECK-UNKNOWN: c15219a8 <unknown>
249
250usdot   za.s[w8, 0], {z12.b, z13.b}, z2.b[2]  // 11000001-01010010-00011001-10101000
251// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b[2]
252// CHECK-ENCODING: [0xa8,0x19,0x52,0xc1]
253// CHECK-ERROR: instruction requires: sme2
254// CHECK-UNKNOWN: c15219a8 <unknown>
255
256usdot   za.s[w10, 1, vgx2], {z0.b, z1.b}, z10.b[2]  // 11000001-01011010-01011000-00101001
257// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z0.b, z1.b }, z10.b[2]
258// CHECK-ENCODING: [0x29,0x58,0x5a,0xc1]
259// CHECK-ERROR: instruction requires: sme2
260// CHECK-UNKNOWN: c15a5829 <unknown>
261
262usdot   za.s[w10, 1], {z0.b, z1.b}, z10.b[2]  // 11000001-01011010-01011000-00101001
263// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z0.b, z1.b }, z10.b[2]
264// CHECK-ENCODING: [0x29,0x58,0x5a,0xc1]
265// CHECK-ERROR: instruction requires: sme2
266// CHECK-UNKNOWN: c15a5829 <unknown>
267
268usdot   za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b[2]  // 11000001-01011110-00011010-11101101
269// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b[2]
270// CHECK-ENCODING: [0xed,0x1a,0x5e,0xc1]
271// CHECK-ERROR: instruction requires: sme2
272// CHECK-UNKNOWN: c15e1aed <unknown>
273
274usdot   za.s[w8, 5], {z22.b, z23.b}, z14.b[2]  // 11000001-01011110-00011010-11101101
275// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b[2]
276// CHECK-ENCODING: [0xed,0x1a,0x5e,0xc1]
277// CHECK-ERROR: instruction requires: sme2
278// CHECK-UNKNOWN: c15e1aed <unknown>
279
280usdot   za.s[w11, 2, vgx2], {z8.b, z9.b}, z1.b[1]  // 11000001-01010001-01110101-00101010
281// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z8.b, z9.b }, z1.b[1]
282// CHECK-ENCODING: [0x2a,0x75,0x51,0xc1]
283// CHECK-ERROR: instruction requires: sme2
284// CHECK-UNKNOWN: c151752a <unknown>
285
286usdot   za.s[w11, 2], {z8.b, z9.b}, z1.b[1]  // 11000001-01010001-01110101-00101010
287// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z8.b, z9.b }, z1.b[1]
288// CHECK-ENCODING: [0x2a,0x75,0x51,0xc1]
289// CHECK-ERROR: instruction requires: sme2
290// CHECK-UNKNOWN: c151752a <unknown>
291
292usdot   za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b[2]  // 11000001-01011011-00111001-10101111
293// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b[2]
294// CHECK-ENCODING: [0xaf,0x39,0x5b,0xc1]
295// CHECK-ERROR: instruction requires: sme2
296// CHECK-UNKNOWN: c15b39af <unknown>
297
298usdot   za.s[w9, 7], {z12.b, z13.b}, z11.b[2]  // 11000001-01011011-00111001-10101111
299// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b[2]
300// CHECK-ENCODING: [0xaf,0x39,0x5b,0xc1]
301// CHECK-ERROR: instruction requires: sme2
302// CHECK-UNKNOWN: c15b39af <unknown>
303
304
305usdot   za.s[w8, 0, vgx2], {z0.b, z1.b}, {z0.b, z1.b}  // 11000001-10100000-00010100-00001000
306// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
307// CHECK-ENCODING: [0x08,0x14,0xa0,0xc1]
308// CHECK-ERROR: instruction requires: sme2
309// CHECK-UNKNOWN: c1a01408 <unknown>
310
311usdot   za.s[w8, 0], {z0.b, z1.b}, {z0.b, z1.b}  // 11000001-10100000-00010100-00001000
312// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
313// CHECK-ENCODING: [0x08,0x14,0xa0,0xc1]
314// CHECK-ERROR: instruction requires: sme2
315// CHECK-UNKNOWN: c1a01408 <unknown>
316
317usdot   za.s[w10, 5, vgx2], {z10.b, z11.b}, {z20.b, z21.b}  // 11000001-10110100-01010101-01001101
318// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b }
319// CHECK-ENCODING: [0x4d,0x55,0xb4,0xc1]
320// CHECK-ERROR: instruction requires: sme2
321// CHECK-UNKNOWN: c1b4554d <unknown>
322
323usdot   za.s[w10, 5], {z10.b, z11.b}, {z20.b, z21.b}  // 11000001-10110100-01010101-01001101
324// CHECK-INST: usdot   za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b }
325// CHECK-ENCODING: [0x4d,0x55,0xb4,0xc1]
326// CHECK-ERROR: instruction requires: sme2
327// CHECK-UNKNOWN: c1b4554d <unknown>
328
329usdot   za.s[w11, 7, vgx2], {z12.b, z13.b}, {z8.b, z9.b}  // 11000001-10101000-01110101-10001111
330// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b }
331// CHECK-ENCODING: [0x8f,0x75,0xa8,0xc1]
332// CHECK-ERROR: instruction requires: sme2
333// CHECK-UNKNOWN: c1a8758f <unknown>
334
335usdot   za.s[w11, 7], {z12.b, z13.b}, {z8.b, z9.b}  // 11000001-10101000-01110101-10001111
336// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b }
337// CHECK-ENCODING: [0x8f,0x75,0xa8,0xc1]
338// CHECK-ERROR: instruction requires: sme2
339// CHECK-UNKNOWN: c1a8758f <unknown>
340
341usdot   za.s[w11, 7, vgx2], {z30.b, z31.b}, {z30.b, z31.b}  // 11000001-10111110-01110111-11001111
342// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
343// CHECK-ENCODING: [0xcf,0x77,0xbe,0xc1]
344// CHECK-ERROR: instruction requires: sme2
345// CHECK-UNKNOWN: c1be77cf <unknown>
346
347usdot   za.s[w11, 7], {z30.b, z31.b}, {z30.b, z31.b}  // 11000001-10111110-01110111-11001111
348// CHECK-INST: usdot   za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
349// CHECK-ENCODING: [0xcf,0x77,0xbe,0xc1]
350// CHECK-ERROR: instruction requires: sme2
351// CHECK-UNKNOWN: c1be77cf <unknown>
352
353usdot   za.s[w8, 5, vgx2], {z16.b, z17.b}, {z16.b, z17.b}  // 11000001-10110000-00010110-00001101
354// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b }
355// CHECK-ENCODING: [0x0d,0x16,0xb0,0xc1]
356// CHECK-ERROR: instruction requires: sme2
357// CHECK-UNKNOWN: c1b0160d <unknown>
358
359usdot   za.s[w8, 5], {z16.b, z17.b}, {z16.b, z17.b}  // 11000001-10110000-00010110-00001101
360// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b }
361// CHECK-ENCODING: [0x0d,0x16,0xb0,0xc1]
362// CHECK-ERROR: instruction requires: sme2
363// CHECK-UNKNOWN: c1b0160d <unknown>
364
365usdot   za.s[w8, 1, vgx2], {z0.b, z1.b}, {z30.b, z31.b}  // 11000001-10111110-00010100-00001001
366// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b }
367// CHECK-ENCODING: [0x09,0x14,0xbe,0xc1]
368// CHECK-ERROR: instruction requires: sme2
369// CHECK-UNKNOWN: c1be1409 <unknown>
370
371usdot   za.s[w8, 1], {z0.b, z1.b}, {z30.b, z31.b}  // 11000001-10111110-00010100-00001001
372// CHECK-INST: usdot   za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b }
373// CHECK-ENCODING: [0x09,0x14,0xbe,0xc1]
374// CHECK-ERROR: instruction requires: sme2
375// CHECK-UNKNOWN: c1be1409 <unknown>
376
377usdot   za.s[w10, 0, vgx2], {z18.b, z19.b}, {z20.b, z21.b}  // 11000001-10110100-01010110-01001000
378// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b }
379// CHECK-ENCODING: [0x48,0x56,0xb4,0xc1]
380// CHECK-ERROR: instruction requires: sme2
381// CHECK-UNKNOWN: c1b45648 <unknown>
382
383usdot   za.s[w10, 0], {z18.b, z19.b}, {z20.b, z21.b}  // 11000001-10110100-01010110-01001000
384// CHECK-INST: usdot   za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b }
385// CHECK-ENCODING: [0x48,0x56,0xb4,0xc1]
386// CHECK-ERROR: instruction requires: sme2
387// CHECK-UNKNOWN: c1b45648 <unknown>
388
389usdot   za.s[w8, 0, vgx2], {z12.b, z13.b}, {z2.b, z3.b}  // 11000001-10100010-00010101-10001000
390// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b }
391// CHECK-ENCODING: [0x88,0x15,0xa2,0xc1]
392// CHECK-ERROR: instruction requires: sme2
393// CHECK-UNKNOWN: c1a21588 <unknown>
394
395usdot   za.s[w8, 0], {z12.b, z13.b}, {z2.b, z3.b}  // 11000001-10100010-00010101-10001000
396// CHECK-INST: usdot   za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b }
397// CHECK-ENCODING: [0x88,0x15,0xa2,0xc1]
398// CHECK-ERROR: instruction requires: sme2
399// CHECK-UNKNOWN: c1a21588 <unknown>
400
401usdot   za.s[w10, 1, vgx2], {z0.b, z1.b}, {z26.b, z27.b}  // 11000001-10111010-01010100-00001001
402// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b }
403// CHECK-ENCODING: [0x09,0x54,0xba,0xc1]
404// CHECK-ERROR: instruction requires: sme2
405// CHECK-UNKNOWN: c1ba5409 <unknown>
406
407usdot   za.s[w10, 1], {z0.b, z1.b}, {z26.b, z27.b}  // 11000001-10111010-01010100-00001001
408// CHECK-INST: usdot   za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b }
409// CHECK-ENCODING: [0x09,0x54,0xba,0xc1]
410// CHECK-ERROR: instruction requires: sme2
411// CHECK-UNKNOWN: c1ba5409 <unknown>
412
413usdot   za.s[w8, 5, vgx2], {z22.b, z23.b}, {z30.b, z31.b}  // 11000001-10111110-00010110-11001101
414// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b }
415// CHECK-ENCODING: [0xcd,0x16,0xbe,0xc1]
416// CHECK-ERROR: instruction requires: sme2
417// CHECK-UNKNOWN: c1be16cd <unknown>
418
419usdot   za.s[w8, 5], {z22.b, z23.b}, {z30.b, z31.b}  // 11000001-10111110-00010110-11001101
420// CHECK-INST: usdot   za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b }
421// CHECK-ENCODING: [0xcd,0x16,0xbe,0xc1]
422// CHECK-ERROR: instruction requires: sme2
423// CHECK-UNKNOWN: c1be16cd <unknown>
424
425usdot   za.s[w11, 2, vgx2], {z8.b, z9.b}, {z0.b, z1.b}  // 11000001-10100000-01110101-00001010
426// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b }
427// CHECK-ENCODING: [0x0a,0x75,0xa0,0xc1]
428// CHECK-ERROR: instruction requires: sme2
429// CHECK-UNKNOWN: c1a0750a <unknown>
430
431usdot   za.s[w11, 2], {z8.b, z9.b}, {z0.b, z1.b}  // 11000001-10100000-01110101-00001010
432// CHECK-INST: usdot   za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b }
433// CHECK-ENCODING: [0x0a,0x75,0xa0,0xc1]
434// CHECK-ERROR: instruction requires: sme2
435// CHECK-UNKNOWN: c1a0750a <unknown>
436
437usdot   za.s[w9, 7, vgx2], {z12.b, z13.b}, {z10.b, z11.b}  // 11000001-10101010-00110101-10001111
438// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b }
439// CHECK-ENCODING: [0x8f,0x35,0xaa,0xc1]
440// CHECK-ERROR: instruction requires: sme2
441// CHECK-UNKNOWN: c1aa358f <unknown>
442
443usdot   za.s[w9, 7], {z12.b, z13.b}, {z10.b, z11.b}  // 11000001-10101010-00110101-10001111
444// CHECK-INST: usdot   za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b }
445// CHECK-ENCODING: [0x8f,0x35,0xaa,0xc1]
446// CHECK-ERROR: instruction requires: sme2
447// CHECK-UNKNOWN: c1aa358f <unknown>
448
449usdot   za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b  // 11000001-00110000-00010100-00001000
450// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b
451// CHECK-ENCODING: [0x08,0x14,0x30,0xc1]
452// CHECK-ERROR: instruction requires: sme2
453// CHECK-UNKNOWN: c1301408 <unknown>
454
455usdot   za.s[w8, 0], {z0.b - z3.b}, z0.b  // 11000001-00110000-00010100-00001000
456// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b
457// CHECK-ENCODING: [0x08,0x14,0x30,0xc1]
458// CHECK-ERROR: instruction requires: sme2
459// CHECK-UNKNOWN: c1301408 <unknown>
460
461usdot   za.s[w10, 5, vgx4], {z10.b - z13.b}, z5.b  // 11000001-00110101-01010101-01001101
462// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b
463// CHECK-ENCODING: [0x4d,0x55,0x35,0xc1]
464// CHECK-ERROR: instruction requires: sme2
465// CHECK-UNKNOWN: c135554d <unknown>
466
467usdot   za.s[w10, 5], {z10.b - z13.b}, z5.b  // 11000001-00110101-01010101-01001101
468// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b
469// CHECK-ENCODING: [0x4d,0x55,0x35,0xc1]
470// CHECK-ERROR: instruction requires: sme2
471// CHECK-UNKNOWN: c135554d <unknown>
472
473usdot   za.s[w11, 7, vgx4], {z13.b - z16.b}, z8.b  // 11000001-00111000-01110101-10101111
474// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b
475// CHECK-ENCODING: [0xaf,0x75,0x38,0xc1]
476// CHECK-ERROR: instruction requires: sme2
477// CHECK-UNKNOWN: c13875af <unknown>
478
479usdot   za.s[w11, 7], {z13.b - z16.b}, z8.b  // 11000001-00111000-01110101-10101111
480// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b
481// CHECK-ENCODING: [0xaf,0x75,0x38,0xc1]
482// CHECK-ERROR: instruction requires: sme2
483// CHECK-UNKNOWN: c13875af <unknown>
484
485usdot   za.s[w11, 7, vgx4], {z31.b - z2.b}, z15.b  // 11000001-00111111-01110111-11101111
486// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b
487// CHECK-ENCODING: [0xef,0x77,0x3f,0xc1]
488// CHECK-ERROR: instruction requires: sme2
489// CHECK-UNKNOWN: c13f77ef <unknown>
490
491usdot   za.s[w11, 7], {z31.b - z2.b}, z15.b  // 11000001-00111111-01110111-11101111
492// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b
493// CHECK-ENCODING: [0xef,0x77,0x3f,0xc1]
494// CHECK-ERROR: instruction requires: sme2
495// CHECK-UNKNOWN: c13f77ef <unknown>
496
497usdot   za.s[w8, 5, vgx4], {z17.b - z20.b}, z0.b  // 11000001-00110000-00010110-00101101
498// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b
499// CHECK-ENCODING: [0x2d,0x16,0x30,0xc1]
500// CHECK-ERROR: instruction requires: sme2
501// CHECK-UNKNOWN: c130162d <unknown>
502
503usdot   za.s[w8, 5], {z17.b - z20.b}, z0.b  // 11000001-00110000-00010110-00101101
504// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b
505// CHECK-ENCODING: [0x2d,0x16,0x30,0xc1]
506// CHECK-ERROR: instruction requires: sme2
507// CHECK-UNKNOWN: c130162d <unknown>
508
509usdot   za.s[w8, 1, vgx4], {z1.b - z4.b}, z14.b  // 11000001-00111110-00010100-00101001
510// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b
511// CHECK-ENCODING: [0x29,0x14,0x3e,0xc1]
512// CHECK-ERROR: instruction requires: sme2
513// CHECK-UNKNOWN: c13e1429 <unknown>
514
515usdot   za.s[w8, 1], {z1.b - z4.b}, z14.b  // 11000001-00111110-00010100-00101001
516// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b
517// CHECK-ENCODING: [0x29,0x14,0x3e,0xc1]
518// CHECK-ERROR: instruction requires: sme2
519// CHECK-UNKNOWN: c13e1429 <unknown>
520
521usdot   za.s[w10, 0, vgx4], {z19.b - z22.b}, z4.b  // 11000001-00110100-01010110-01101000
522// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b
523// CHECK-ENCODING: [0x68,0x56,0x34,0xc1]
524// CHECK-ERROR: instruction requires: sme2
525// CHECK-UNKNOWN: c1345668 <unknown>
526
527usdot   za.s[w10, 0], {z19.b - z22.b}, z4.b  // 11000001-00110100-01010110-01101000
528// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b
529// CHECK-ENCODING: [0x68,0x56,0x34,0xc1]
530// CHECK-ERROR: instruction requires: sme2
531// CHECK-UNKNOWN: c1345668 <unknown>
532
533usdot   za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b  // 11000001-00110010-00010101-10001000
534// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b
535// CHECK-ENCODING: [0x88,0x15,0x32,0xc1]
536// CHECK-ERROR: instruction requires: sme2
537// CHECK-UNKNOWN: c1321588 <unknown>
538
539usdot   za.s[w8, 0], {z12.b - z15.b}, z2.b  // 11000001-00110010-00010101-10001000
540// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b
541// CHECK-ENCODING: [0x88,0x15,0x32,0xc1]
542// CHECK-ERROR: instruction requires: sme2
543// CHECK-UNKNOWN: c1321588 <unknown>
544
545usdot   za.s[w10, 1, vgx4], {z1.b - z4.b}, z10.b  // 11000001-00111010-01010100-00101001
546// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b
547// CHECK-ENCODING: [0x29,0x54,0x3a,0xc1]
548// CHECK-ERROR: instruction requires: sme2
549// CHECK-UNKNOWN: c13a5429 <unknown>
550
551usdot   za.s[w10, 1], {z1.b - z4.b}, z10.b  // 11000001-00111010-01010100-00101001
552// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b
553// CHECK-ENCODING: [0x29,0x54,0x3a,0xc1]
554// CHECK-ERROR: instruction requires: sme2
555// CHECK-UNKNOWN: c13a5429 <unknown>
556
557usdot   za.s[w8, 5, vgx4], {z22.b - z25.b}, z14.b  // 11000001-00111110-00010110-11001101
558// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b
559// CHECK-ENCODING: [0xcd,0x16,0x3e,0xc1]
560// CHECK-ERROR: instruction requires: sme2
561// CHECK-UNKNOWN: c13e16cd <unknown>
562
563usdot   za.s[w8, 5], {z22.b - z25.b}, z14.b  // 11000001-00111110-00010110-11001101
564// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b
565// CHECK-ENCODING: [0xcd,0x16,0x3e,0xc1]
566// CHECK-ERROR: instruction requires: sme2
567// CHECK-UNKNOWN: c13e16cd <unknown>
568
569usdot   za.s[w11, 2, vgx4], {z9.b - z12.b}, z1.b  // 11000001-00110001-01110101-00101010
570// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b
571// CHECK-ENCODING: [0x2a,0x75,0x31,0xc1]
572// CHECK-ERROR: instruction requires: sme2
573// CHECK-UNKNOWN: c131752a <unknown>
574
575usdot   za.s[w11, 2], {z9.b - z12.b}, z1.b  // 11000001-00110001-01110101-00101010
576// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b
577// CHECK-ENCODING: [0x2a,0x75,0x31,0xc1]
578// CHECK-ERROR: instruction requires: sme2
579// CHECK-UNKNOWN: c131752a <unknown>
580
581usdot   za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b  // 11000001-00111011-00110101-10001111
582// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b
583// CHECK-ENCODING: [0x8f,0x35,0x3b,0xc1]
584// CHECK-ERROR: instruction requires: sme2
585// CHECK-UNKNOWN: c13b358f <unknown>
586
587usdot   za.s[w9, 7], {z12.b - z15.b}, z11.b  // 11000001-00111011-00110101-10001111
588// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b
589// CHECK-ENCODING: [0x8f,0x35,0x3b,0xc1]
590// CHECK-ERROR: instruction requires: sme2
591// CHECK-UNKNOWN: c13b358f <unknown>
592
593
594usdot   za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b[0]  // 11000001-01010000-10010000-00101000
595// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
596// CHECK-ENCODING: [0x28,0x90,0x50,0xc1]
597// CHECK-ERROR: instruction requires: sme2
598// CHECK-UNKNOWN: c1509028 <unknown>
599
600usdot   za.s[w8, 0], {z0.b - z3.b}, z0.b[0]  // 11000001-01010000-10010000-00101000
601// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
602// CHECK-ENCODING: [0x28,0x90,0x50,0xc1]
603// CHECK-ERROR: instruction requires: sme2
604// CHECK-UNKNOWN: c1509028 <unknown>
605
606usdot   za.s[w10, 5, vgx4], {z8.b - z11.b}, z5.b[1]  // 11000001-01010101-11010101-00101101
607// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
608// CHECK-ENCODING: [0x2d,0xd5,0x55,0xc1]
609// CHECK-ERROR: instruction requires: sme2
610// CHECK-UNKNOWN: c155d52d <unknown>
611
612usdot   za.s[w10, 5], {z8.b - z11.b}, z5.b[1]  // 11000001-01010101-11010101-00101101
613// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
614// CHECK-ENCODING: [0x2d,0xd5,0x55,0xc1]
615// CHECK-ERROR: instruction requires: sme2
616// CHECK-UNKNOWN: c155d52d <unknown>
617
618usdot   za.s[w11, 7, vgx4], {z12.b - z15.b}, z8.b[3]  // 11000001-01011000-11111101-10101111
619// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
620// CHECK-ENCODING: [0xaf,0xfd,0x58,0xc1]
621// CHECK-ERROR: instruction requires: sme2
622// CHECK-UNKNOWN: c158fdaf <unknown>
623
624usdot   za.s[w11, 7], {z12.b - z15.b}, z8.b[3]  // 11000001-01011000-11111101-10101111
625// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
626// CHECK-ENCODING: [0xaf,0xfd,0x58,0xc1]
627// CHECK-ERROR: instruction requires: sme2
628// CHECK-UNKNOWN: c158fdaf <unknown>
629
630usdot   za.s[w11, 7, vgx4], {z28.b - z31.b}, z15.b[3]  // 11000001-01011111-11111111-10101111
631// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
632// CHECK-ENCODING: [0xaf,0xff,0x5f,0xc1]
633// CHECK-ERROR: instruction requires: sme2
634// CHECK-UNKNOWN: c15fffaf <unknown>
635
636usdot   za.s[w11, 7], {z28.b - z31.b}, z15.b[3]  // 11000001-01011111-11111111-10101111
637// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
638// CHECK-ENCODING: [0xaf,0xff,0x5f,0xc1]
639// CHECK-ERROR: instruction requires: sme2
640// CHECK-UNKNOWN: c15fffaf <unknown>
641
642usdot   za.s[w8, 5, vgx4], {z16.b - z19.b}, z0.b[3]  // 11000001-01010000-10011110-00101101
643// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
644// CHECK-ENCODING: [0x2d,0x9e,0x50,0xc1]
645// CHECK-ERROR: instruction requires: sme2
646// CHECK-UNKNOWN: c1509e2d <unknown>
647
648usdot   za.s[w8, 5], {z16.b - z19.b}, z0.b[3]  // 11000001-01010000-10011110-00101101
649// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
650// CHECK-ENCODING: [0x2d,0x9e,0x50,0xc1]
651// CHECK-ERROR: instruction requires: sme2
652// CHECK-UNKNOWN: c1509e2d <unknown>
653
654usdot   za.s[w8, 1, vgx4], {z0.b - z3.b}, z14.b[1]  // 11000001-01011110-10010100-00101001
655// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
656// CHECK-ENCODING: [0x29,0x94,0x5e,0xc1]
657// CHECK-ERROR: instruction requires: sme2
658// CHECK-UNKNOWN: c15e9429 <unknown>
659
660usdot   za.s[w8, 1], {z0.b - z3.b}, z14.b[1]  // 11000001-01011110-10010100-00101001
661// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
662// CHECK-ENCODING: [0x29,0x94,0x5e,0xc1]
663// CHECK-ERROR: instruction requires: sme2
664// CHECK-UNKNOWN: c15e9429 <unknown>
665
666usdot   za.s[w10, 0, vgx4], {z16.b - z19.b}, z4.b[1]  // 11000001-01010100-11010110-00101000
667// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
668// CHECK-ENCODING: [0x28,0xd6,0x54,0xc1]
669// CHECK-ERROR: instruction requires: sme2
670// CHECK-UNKNOWN: c154d628 <unknown>
671
672usdot   za.s[w10, 0], {z16.b - z19.b}, z4.b[1]  // 11000001-01010100-11010110-00101000
673// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
674// CHECK-ENCODING: [0x28,0xd6,0x54,0xc1]
675// CHECK-ERROR: instruction requires: sme2
676// CHECK-UNKNOWN: c154d628 <unknown>
677
678usdot   za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b[2]  // 11000001-01010010-10011001-10101000
679// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
680// CHECK-ENCODING: [0xa8,0x99,0x52,0xc1]
681// CHECK-ERROR: instruction requires: sme2
682// CHECK-UNKNOWN: c15299a8 <unknown>
683
684usdot   za.s[w8, 0], {z12.b - z15.b}, z2.b[2]  // 11000001-01010010-10011001-10101000
685// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
686// CHECK-ENCODING: [0xa8,0x99,0x52,0xc1]
687// CHECK-ERROR: instruction requires: sme2
688// CHECK-UNKNOWN: c15299a8 <unknown>
689
690usdot   za.s[w10, 1, vgx4], {z0.b - z3.b}, z10.b[2]  // 11000001-01011010-11011000-00101001
691// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
692// CHECK-ENCODING: [0x29,0xd8,0x5a,0xc1]
693// CHECK-ERROR: instruction requires: sme2
694// CHECK-UNKNOWN: c15ad829 <unknown>
695
696usdot   za.s[w10, 1], {z0.b - z3.b}, z10.b[2]  // 11000001-01011010-11011000-00101001
697// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
698// CHECK-ENCODING: [0x29,0xd8,0x5a,0xc1]
699// CHECK-ERROR: instruction requires: sme2
700// CHECK-UNKNOWN: c15ad829 <unknown>
701
702usdot   za.s[w8, 5, vgx4], {z20.b - z23.b}, z14.b[2]  // 11000001-01011110-10011010-10101101
703// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
704// CHECK-ENCODING: [0xad,0x9a,0x5e,0xc1]
705// CHECK-ERROR: instruction requires: sme2
706// CHECK-UNKNOWN: c15e9aad <unknown>
707
708usdot   za.s[w8, 5], {z20.b - z23.b}, z14.b[2]  // 11000001-01011110-10011010-10101101
709// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
710// CHECK-ENCODING: [0xad,0x9a,0x5e,0xc1]
711// CHECK-ERROR: instruction requires: sme2
712// CHECK-UNKNOWN: c15e9aad <unknown>
713
714usdot   za.s[w11, 2, vgx4], {z8.b - z11.b}, z1.b[1]  // 11000001-01010001-11110101-00101010
715// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
716// CHECK-ENCODING: [0x2a,0xf5,0x51,0xc1]
717// CHECK-ERROR: instruction requires: sme2
718// CHECK-UNKNOWN: c151f52a <unknown>
719
720usdot   za.s[w11, 2], {z8.b - z11.b}, z1.b[1]  // 11000001-01010001-11110101-00101010
721// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
722// CHECK-ENCODING: [0x2a,0xf5,0x51,0xc1]
723// CHECK-ERROR: instruction requires: sme2
724// CHECK-UNKNOWN: c151f52a <unknown>
725
726usdot   za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b[2]  // 11000001-01011011-10111001-10101111
727// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
728// CHECK-ENCODING: [0xaf,0xb9,0x5b,0xc1]
729// CHECK-ERROR: instruction requires: sme2
730// CHECK-UNKNOWN: c15bb9af <unknown>
731
732usdot   za.s[w9, 7], {z12.b - z15.b}, z11.b[2]  // 11000001-01011011-10111001-10101111
733// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
734// CHECK-ENCODING: [0xaf,0xb9,0x5b,0xc1]
735// CHECK-ERROR: instruction requires: sme2
736// CHECK-UNKNOWN: c15bb9af <unknown>
737
738
739usdot   za.s[w8, 0, vgx4], {z0.b - z3.b}, {z0.b - z3.b}  // 11000001-10100001-00010100-00001000
740// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
741// CHECK-ENCODING: [0x08,0x14,0xa1,0xc1]
742// CHECK-ERROR: instruction requires: sme2
743// CHECK-UNKNOWN: c1a11408 <unknown>
744
745usdot   za.s[w8, 0], {z0.b - z3.b}, {z0.b - z3.b}  // 11000001-10100001-00010100-00001000
746// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
747// CHECK-ENCODING: [0x08,0x14,0xa1,0xc1]
748// CHECK-ERROR: instruction requires: sme2
749// CHECK-UNKNOWN: c1a11408 <unknown>
750
751usdot   za.s[w10, 5, vgx4], {z8.b - z11.b}, {z20.b - z23.b}  // 11000001-10110101-01010101-00001101
752// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b }
753// CHECK-ENCODING: [0x0d,0x55,0xb5,0xc1]
754// CHECK-ERROR: instruction requires: sme2
755// CHECK-UNKNOWN: c1b5550d <unknown>
756
757usdot   za.s[w10, 5], {z8.b - z11.b}, {z20.b - z23.b}  // 11000001-10110101-01010101-00001101
758// CHECK-INST: usdot   za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b }
759// CHECK-ENCODING: [0x0d,0x55,0xb5,0xc1]
760// CHECK-ERROR: instruction requires: sme2
761// CHECK-UNKNOWN: c1b5550d <unknown>
762
763usdot   za.s[w11, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b}  // 11000001-10101001-01110101-10001111
764// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b }
765// CHECK-ENCODING: [0x8f,0x75,0xa9,0xc1]
766// CHECK-ERROR: instruction requires: sme2
767// CHECK-UNKNOWN: c1a9758f <unknown>
768
769usdot   za.s[w11, 7], {z12.b - z15.b}, {z8.b - z11.b}  // 11000001-10101001-01110101-10001111
770// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b }
771// CHECK-ENCODING: [0x8f,0x75,0xa9,0xc1]
772// CHECK-ERROR: instruction requires: sme2
773// CHECK-UNKNOWN: c1a9758f <unknown>
774
775usdot   za.s[w11, 7, vgx4], {z28.b - z31.b}, {z28.b - z31.b}  // 11000001-10111101-01110111-10001111
776// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
777// CHECK-ENCODING: [0x8f,0x77,0xbd,0xc1]
778// CHECK-ERROR: instruction requires: sme2
779// CHECK-UNKNOWN: c1bd778f <unknown>
780
781usdot   za.s[w11, 7], {z28.b - z31.b}, {z28.b - z31.b}  // 11000001-10111101-01110111-10001111
782// CHECK-INST: usdot   za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
783// CHECK-ENCODING: [0x8f,0x77,0xbd,0xc1]
784// CHECK-ERROR: instruction requires: sme2
785// CHECK-UNKNOWN: c1bd778f <unknown>
786
787usdot   za.s[w8, 5, vgx4], {z16.b - z19.b}, {z16.b - z19.b}  // 11000001-10110001-00010110-00001101
788// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b }
789// CHECK-ENCODING: [0x0d,0x16,0xb1,0xc1]
790// CHECK-ERROR: instruction requires: sme2
791// CHECK-UNKNOWN: c1b1160d <unknown>
792
793usdot   za.s[w8, 5], {z16.b - z19.b}, {z16.b - z19.b}  // 11000001-10110001-00010110-00001101
794// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b }
795// CHECK-ENCODING: [0x0d,0x16,0xb1,0xc1]
796// CHECK-ERROR: instruction requires: sme2
797// CHECK-UNKNOWN: c1b1160d <unknown>
798
799usdot   za.s[w8, 1, vgx4], {z0.b - z3.b}, {z28.b - z31.b}  // 11000001-10111101-00010100-00001001
800// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b }
801// CHECK-ENCODING: [0x09,0x14,0xbd,0xc1]
802// CHECK-ERROR: instruction requires: sme2
803// CHECK-UNKNOWN: c1bd1409 <unknown>
804
805usdot   za.s[w8, 1], {z0.b - z3.b}, {z28.b - z31.b}  // 11000001-10111101-00010100-00001001
806// CHECK-INST: usdot   za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b }
807// CHECK-ENCODING: [0x09,0x14,0xbd,0xc1]
808// CHECK-ERROR: instruction requires: sme2
809// CHECK-UNKNOWN: c1bd1409 <unknown>
810
811usdot   za.s[w10, 0, vgx4], {z16.b - z19.b}, {z20.b - z23.b}  // 11000001-10110101-01010110-00001000
812// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b }
813// CHECK-ENCODING: [0x08,0x56,0xb5,0xc1]
814// CHECK-ERROR: instruction requires: sme2
815// CHECK-UNKNOWN: c1b55608 <unknown>
816
817usdot   za.s[w10, 0], {z16.b - z19.b}, {z20.b - z23.b}  // 11000001-10110101-01010110-00001000
818// CHECK-INST: usdot   za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b }
819// CHECK-ENCODING: [0x08,0x56,0xb5,0xc1]
820// CHECK-ERROR: instruction requires: sme2
821// CHECK-UNKNOWN: c1b55608 <unknown>
822
823usdot   za.s[w8, 0, vgx4], {z12.b - z15.b}, {z0.b - z3.b}  // 11000001-10100001-00010101-10001000
824// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b }
825// CHECK-ENCODING: [0x88,0x15,0xa1,0xc1]
826// CHECK-ERROR: instruction requires: sme2
827// CHECK-UNKNOWN: c1a11588 <unknown>
828
829usdot   za.s[w8, 0], {z12.b - z15.b}, {z0.b - z3.b}  // 11000001-10100001-00010101-10001000
830// CHECK-INST: usdot   za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b }
831// CHECK-ENCODING: [0x88,0x15,0xa1,0xc1]
832// CHECK-ERROR: instruction requires: sme2
833// CHECK-UNKNOWN: c1a11588 <unknown>
834
835usdot   za.s[w10, 1, vgx4], {z0.b - z3.b}, {z24.b - z27.b}  // 11000001-10111001-01010100-00001001
836// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b }
837// CHECK-ENCODING: [0x09,0x54,0xb9,0xc1]
838// CHECK-ERROR: instruction requires: sme2
839// CHECK-UNKNOWN: c1b95409 <unknown>
840
841usdot   za.s[w10, 1], {z0.b - z3.b}, {z24.b - z27.b}  // 11000001-10111001-01010100-00001001
842// CHECK-INST: usdot   za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b }
843// CHECK-ENCODING: [0x09,0x54,0xb9,0xc1]
844// CHECK-ERROR: instruction requires: sme2
845// CHECK-UNKNOWN: c1b95409 <unknown>
846
847usdot   za.s[w8, 5, vgx4], {z20.b - z23.b}, {z28.b - z31.b}  // 11000001-10111101-00010110-10001101
848// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b }
849// CHECK-ENCODING: [0x8d,0x16,0xbd,0xc1]
850// CHECK-ERROR: instruction requires: sme2
851// CHECK-UNKNOWN: c1bd168d <unknown>
852
853usdot   za.s[w8, 5], {z20.b - z23.b}, {z28.b - z31.b}  // 11000001-10111101-00010110-10001101
854// CHECK-INST: usdot   za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b }
855// CHECK-ENCODING: [0x8d,0x16,0xbd,0xc1]
856// CHECK-ERROR: instruction requires: sme2
857// CHECK-UNKNOWN: c1bd168d <unknown>
858
859usdot   za.s[w11, 2, vgx4], {z8.b - z11.b}, {z0.b - z3.b}  // 11000001-10100001-01110101-00001010
860// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b }
861// CHECK-ENCODING: [0x0a,0x75,0xa1,0xc1]
862// CHECK-ERROR: instruction requires: sme2
863// CHECK-UNKNOWN: c1a1750a <unknown>
864
865usdot   za.s[w11, 2], {z8.b - z11.b}, {z0.b - z3.b}  // 11000001-10100001-01110101-00001010
866// CHECK-INST: usdot   za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b }
867// CHECK-ENCODING: [0x0a,0x75,0xa1,0xc1]
868// CHECK-ERROR: instruction requires: sme2
869// CHECK-UNKNOWN: c1a1750a <unknown>
870
871usdot   za.s[w9, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b}  // 11000001-10101001-00110101-10001111
872// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b }
873// CHECK-ENCODING: [0x8f,0x35,0xa9,0xc1]
874// CHECK-ERROR: instruction requires: sme2
875// CHECK-UNKNOWN: c1a9358f <unknown>
876
877usdot   za.s[w9, 7], {z12.b - z15.b}, {z8.b - z11.b}  // 11000001-10101001-00110101-10001111
878// CHECK-INST: usdot   za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b }
879// CHECK-ENCODING: [0x8f,0x35,0xa9,0xc1]
880// CHECK-ERROR: instruction requires: sme2
881// CHECK-UNKNOWN: c1a9358f <unknown>
882
883