xref: /llvm-project/llvm/test/MC/AArch64/SME2/sudot.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
15sudot   za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b  // 11000001-00100000-00010100-00011000
16// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b
17// CHECK-ENCODING: [0x18,0x14,0x20,0xc1]
18// CHECK-ERROR: instruction requires: sme2
19// CHECK-UNKNOWN: c1201418 <unknown>
20
21sudot   za.s[w8, 0], {z0.b, z1.b}, z0.b  // 11000001-00100000-00010100-00011000
22// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b
23// CHECK-ENCODING: [0x18,0x14,0x20,0xc1]
24// CHECK-ERROR: instruction requires: sme2
25// CHECK-UNKNOWN: c1201418 <unknown>
26
27sudot   za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b  // 11000001-00100101-01010101-01011101
28// CHECK-INST: sudot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b
29// CHECK-ENCODING: [0x5d,0x55,0x25,0xc1]
30// CHECK-ERROR: instruction requires: sme2
31// CHECK-UNKNOWN: c125555d <unknown>
32
33sudot   za.s[w10, 5], {z10.b, z11.b}, z5.b  // 11000001-00100101-01010101-01011101
34// CHECK-INST: sudot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b
35// CHECK-ENCODING: [0x5d,0x55,0x25,0xc1]
36// CHECK-ERROR: instruction requires: sme2
37// CHECK-UNKNOWN: c125555d <unknown>
38
39sudot   za.s[w11, 7, vgx2], {z13.b, z14.b}, z8.b  // 11000001-00101000-01110101-10111111
40// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b
41// CHECK-ENCODING: [0xbf,0x75,0x28,0xc1]
42// CHECK-ERROR: instruction requires: sme2
43// CHECK-UNKNOWN: c12875bf <unknown>
44
45sudot   za.s[w11, 7], {z13.b, z14.b}, z8.b  // 11000001-00101000-01110101-10111111
46// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b
47// CHECK-ENCODING: [0xbf,0x75,0x28,0xc1]
48// CHECK-ERROR: instruction requires: sme2
49// CHECK-UNKNOWN: c12875bf <unknown>
50
51sudot   za.s[w11, 7, vgx2], {z31.b, z0.b}, z15.b  // 11000001-00101111-01110111-11111111
52// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b
53// CHECK-ENCODING: [0xff,0x77,0x2f,0xc1]
54// CHECK-ERROR: instruction requires: sme2
55// CHECK-UNKNOWN: c12f77ff <unknown>
56
57sudot   za.s[w11, 7], {z31.b, z0.b}, z15.b  // 11000001-00101111-01110111-11111111
58// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b
59// CHECK-ENCODING: [0xff,0x77,0x2f,0xc1]
60// CHECK-ERROR: instruction requires: sme2
61// CHECK-UNKNOWN: c12f77ff <unknown>
62
63sudot   za.s[w8, 5, vgx2], {z17.b, z18.b}, z0.b  // 11000001-00100000-00010110-00111101
64// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b
65// CHECK-ENCODING: [0x3d,0x16,0x20,0xc1]
66// CHECK-ERROR: instruction requires: sme2
67// CHECK-UNKNOWN: c120163d <unknown>
68
69sudot   za.s[w8, 5], {z17.b, z18.b}, z0.b  // 11000001-00100000-00010110-00111101
70// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b
71// CHECK-ENCODING: [0x3d,0x16,0x20,0xc1]
72// CHECK-ERROR: instruction requires: sme2
73// CHECK-UNKNOWN: c120163d <unknown>
74
75sudot   za.s[w8, 1, vgx2], {z1.b, z2.b}, z14.b  // 11000001-00101110-00010100-00111001
76// CHECK-INST: sudot   za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b
77// CHECK-ENCODING: [0x39,0x14,0x2e,0xc1]
78// CHECK-ERROR: instruction requires: sme2
79// CHECK-UNKNOWN: c12e1439 <unknown>
80
81sudot   za.s[w8, 1], {z1.b, z2.b}, z14.b  // 11000001-00101110-00010100-00111001
82// CHECK-INST: sudot   za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b
83// CHECK-ENCODING: [0x39,0x14,0x2e,0xc1]
84// CHECK-ERROR: instruction requires: sme2
85// CHECK-UNKNOWN: c12e1439 <unknown>
86
87
88sudot   za.s[w10, 0, vgx2], {z19.b, z20.b}, z4.b  // 11000001-00100100-01010110-01111000
89// CHECK-INST: sudot   za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b
90// CHECK-ENCODING: [0x78,0x56,0x24,0xc1]
91// CHECK-ERROR: instruction requires: sme2
92// CHECK-UNKNOWN: c1245678 <unknown>
93
94sudot   za.s[w10, 0], {z19.b, z20.b}, z4.b  // 11000001-00100100-01010110-01111000
95// CHECK-INST: sudot   za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b
96// CHECK-ENCODING: [0x78,0x56,0x24,0xc1]
97// CHECK-ERROR: instruction requires: sme2
98// CHECK-UNKNOWN: c1245678 <unknown>
99
100sudot   za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b  // 11000001-00100010-00010101-10011000
101// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b
102// CHECK-ENCODING: [0x98,0x15,0x22,0xc1]
103// CHECK-ERROR: instruction requires: sme2
104// CHECK-UNKNOWN: c1221598 <unknown>
105
106sudot   za.s[w8, 0], {z12.b, z13.b}, z2.b  // 11000001-00100010-00010101-10011000
107// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b
108// CHECK-ENCODING: [0x98,0x15,0x22,0xc1]
109// CHECK-ERROR: instruction requires: sme2
110// CHECK-UNKNOWN: c1221598 <unknown>
111
112sudot   za.s[w10, 1, vgx2], {z1.b, z2.b}, z10.b  // 11000001-00101010-01010100-00111001
113// CHECK-INST: sudot   za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b
114// CHECK-ENCODING: [0x39,0x54,0x2a,0xc1]
115// CHECK-ERROR: instruction requires: sme2
116// CHECK-UNKNOWN: c12a5439 <unknown>
117
118sudot   za.s[w10, 1], {z1.b, z2.b}, z10.b  // 11000001-00101010-01010100-00111001
119// CHECK-INST: sudot   za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b
120// CHECK-ENCODING: [0x39,0x54,0x2a,0xc1]
121// CHECK-ERROR: instruction requires: sme2
122// CHECK-UNKNOWN: c12a5439 <unknown>
123
124sudot   za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b  // 11000001-00101110-00010110-11011101
125// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b
126// CHECK-ENCODING: [0xdd,0x16,0x2e,0xc1]
127// CHECK-ERROR: instruction requires: sme2
128// CHECK-UNKNOWN: c12e16dd <unknown>
129
130sudot   za.s[w8, 5], {z22.b, z23.b}, z14.b  // 11000001-00101110-00010110-11011101
131// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b
132// CHECK-ENCODING: [0xdd,0x16,0x2e,0xc1]
133// CHECK-ERROR: instruction requires: sme2
134// CHECK-UNKNOWN: c12e16dd <unknown>
135
136sudot   za.s[w11, 2, vgx2], {z9.b, z10.b}, z1.b  // 11000001-00100001-01110101-00111010
137// CHECK-INST: sudot   za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b
138// CHECK-ENCODING: [0x3a,0x75,0x21,0xc1]
139// CHECK-ERROR: instruction requires: sme2
140// CHECK-UNKNOWN: c121753a <unknown>
141
142sudot   za.s[w11, 2], {z9.b, z10.b}, z1.b  // 11000001-00100001-01110101-00111010
143// CHECK-INST: sudot   za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b
144// CHECK-ENCODING: [0x3a,0x75,0x21,0xc1]
145// CHECK-ERROR: instruction requires: sme2
146// CHECK-UNKNOWN: c121753a <unknown>
147
148sudot   za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b  // 11000001-00101011-00110101-10011111
149// CHECK-INST: sudot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b
150// CHECK-ENCODING: [0x9f,0x35,0x2b,0xc1]
151// CHECK-ERROR: instruction requires: sme2
152// CHECK-UNKNOWN: c12b359f <unknown>
153
154sudot   za.s[w9, 7], {z12.b, z13.b}, z11.b  // 11000001-00101011-00110101-10011111
155// CHECK-INST: sudot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b
156// CHECK-ENCODING: [0x9f,0x35,0x2b,0xc1]
157// CHECK-ERROR: instruction requires: sme2
158// CHECK-UNKNOWN: c12b359f <unknown>
159
160
161sudot   za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b[0]  // 11000001-01010000-00010000-00111000
162// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0]
163// CHECK-ENCODING: [0x38,0x10,0x50,0xc1]
164// CHECK-ERROR: instruction requires: sme2
165// CHECK-UNKNOWN: c1501038 <unknown>
166
167sudot   za.s[w8, 0], {z0.b, z1.b}, z0.b[0]  // 11000001-01010000-00010000-00111000
168// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0]
169// CHECK-ENCODING: [0x38,0x10,0x50,0xc1]
170// CHECK-ERROR: instruction requires: sme2
171// CHECK-UNKNOWN: c1501038 <unknown>
172
173sudot   za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b[1]  // 11000001-01010101-01010101-01111101
174// CHECK-INST: sudot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b[1]
175// CHECK-ENCODING: [0x7d,0x55,0x55,0xc1]
176// CHECK-ERROR: instruction requires: sme2
177// CHECK-UNKNOWN: c155557d <unknown>
178
179sudot   za.s[w10, 5], {z10.b, z11.b}, z5.b[1]  // 11000001-01010101-01010101-01111101
180// CHECK-INST: sudot   za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b[1]
181// CHECK-ENCODING: [0x7d,0x55,0x55,0xc1]
182// CHECK-ERROR: instruction requires: sme2
183// CHECK-UNKNOWN: c155557d <unknown>
184
185sudot   za.s[w11, 7, vgx2], {z12.b, z13.b}, z8.b[3]  // 11000001-01011000-01111101-10111111
186// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z12.b, z13.b }, z8.b[3]
187// CHECK-ENCODING: [0xbf,0x7d,0x58,0xc1]
188// CHECK-ERROR: instruction requires: sme2
189// CHECK-UNKNOWN: c1587dbf <unknown>
190
191sudot   za.s[w11, 7], {z12.b, z13.b}, z8.b[3]  // 11000001-01011000-01111101-10111111
192// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z12.b, z13.b }, z8.b[3]
193// CHECK-ENCODING: [0xbf,0x7d,0x58,0xc1]
194// CHECK-ERROR: instruction requires: sme2
195// CHECK-UNKNOWN: c1587dbf <unknown>
196
197sudot   za.s[w11, 7, vgx2], {z30.b, z31.b}, z15.b[3]  // 11000001-01011111-01111111-11111111
198// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3]
199// CHECK-ENCODING: [0xff,0x7f,0x5f,0xc1]
200// CHECK-ERROR: instruction requires: sme2
201// CHECK-UNKNOWN: c15f7fff <unknown>
202
203sudot   za.s[w11, 7], {z30.b, z31.b}, z15.b[3]  // 11000001-01011111-01111111-11111111
204// CHECK-INST: sudot   za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3]
205// CHECK-ENCODING: [0xff,0x7f,0x5f,0xc1]
206// CHECK-ERROR: instruction requires: sme2
207// CHECK-UNKNOWN: c15f7fff <unknown>
208
209sudot   za.s[w8, 5, vgx2], {z16.b, z17.b}, z0.b[3]  // 11000001-01010000-00011110-00111101
210// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z16.b, z17.b }, z0.b[3]
211// CHECK-ENCODING: [0x3d,0x1e,0x50,0xc1]
212// CHECK-ERROR: instruction requires: sme2
213// CHECK-UNKNOWN: c1501e3d <unknown>
214
215sudot   za.s[w8, 5], {z16.b, z17.b}, z0.b[3]  // 11000001-01010000-00011110-00111101
216// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z16.b, z17.b }, z0.b[3]
217// CHECK-ENCODING: [0x3d,0x1e,0x50,0xc1]
218// CHECK-ERROR: instruction requires: sme2
219// CHECK-UNKNOWN: c1501e3d <unknown>
220
221sudot   za.s[w8, 1, vgx2], {z0.b, z1.b}, z14.b[1]  // 11000001-01011110-00010100-00111001
222// CHECK-INST: sudot   za.s[w8, 1, vgx2], { z0.b, z1.b }, z14.b[1]
223// CHECK-ENCODING: [0x39,0x14,0x5e,0xc1]
224// CHECK-ERROR: instruction requires: sme2
225// CHECK-UNKNOWN: c15e1439 <unknown>
226
227sudot   za.s[w8, 1], {z0.b, z1.b}, z14.b[1]  // 11000001-01011110-00010100-00111001
228// CHECK-INST: sudot   za.s[w8, 1, vgx2], { z0.b, z1.b }, z14.b[1]
229// CHECK-ENCODING: [0x39,0x14,0x5e,0xc1]
230// CHECK-ERROR: instruction requires: sme2
231// CHECK-UNKNOWN: c15e1439 <unknown>
232
233sudot   za.s[w10, 0, vgx2], {z18.b, z19.b}, z4.b[1]  // 11000001-01010100-01010110-01111000
234// CHECK-INST: sudot   za.s[w10, 0, vgx2], { z18.b, z19.b }, z4.b[1]
235// CHECK-ENCODING: [0x78,0x56,0x54,0xc1]
236// CHECK-ERROR: instruction requires: sme2
237// CHECK-UNKNOWN: c1545678 <unknown>
238
239sudot   za.s[w10, 0], {z18.b, z19.b}, z4.b[1]  // 11000001-01010100-01010110-01111000
240// CHECK-INST: sudot   za.s[w10, 0, vgx2], { z18.b, z19.b }, z4.b[1]
241// CHECK-ENCODING: [0x78,0x56,0x54,0xc1]
242// CHECK-ERROR: instruction requires: sme2
243// CHECK-UNKNOWN: c1545678 <unknown>
244
245sudot   za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b[2]  // 11000001-01010010-00011001-10111000
246// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b[2]
247// CHECK-ENCODING: [0xb8,0x19,0x52,0xc1]
248// CHECK-ERROR: instruction requires: sme2
249// CHECK-UNKNOWN: c15219b8 <unknown>
250
251sudot   za.s[w8, 0], {z12.b, z13.b}, z2.b[2]  // 11000001-01010010-00011001-10111000
252// CHECK-INST: sudot   za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b[2]
253// CHECK-ENCODING: [0xb8,0x19,0x52,0xc1]
254// CHECK-ERROR: instruction requires: sme2
255// CHECK-UNKNOWN: c15219b8 <unknown>
256
257sudot   za.s[w10, 1, vgx2], {z0.b, z1.b}, z10.b[2]  // 11000001-01011010-01011000-00111001
258// CHECK-INST: sudot   za.s[w10, 1, vgx2], { z0.b, z1.b }, z10.b[2]
259// CHECK-ENCODING: [0x39,0x58,0x5a,0xc1]
260// CHECK-ERROR: instruction requires: sme2
261// CHECK-UNKNOWN: c15a5839 <unknown>
262
263sudot   za.s[w10, 1], {z0.b, z1.b}, z10.b[2]  // 11000001-01011010-01011000-00111001
264// CHECK-INST: sudot   za.s[w10, 1, vgx2], { z0.b, z1.b }, z10.b[2]
265// CHECK-ENCODING: [0x39,0x58,0x5a,0xc1]
266// CHECK-ERROR: instruction requires: sme2
267// CHECK-UNKNOWN: c15a5839 <unknown>
268
269sudot   za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b[2]  // 11000001-01011110-00011010-11111101
270// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b[2]
271// CHECK-ENCODING: [0xfd,0x1a,0x5e,0xc1]
272// CHECK-ERROR: instruction requires: sme2
273// CHECK-UNKNOWN: c15e1afd <unknown>
274
275sudot   za.s[w8, 5], {z22.b, z23.b}, z14.b[2]  // 11000001-01011110-00011010-11111101
276// CHECK-INST: sudot   za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b[2]
277// CHECK-ENCODING: [0xfd,0x1a,0x5e,0xc1]
278// CHECK-ERROR: instruction requires: sme2
279// CHECK-UNKNOWN: c15e1afd <unknown>
280
281sudot   za.s[w11, 2, vgx2], {z8.b, z9.b}, z1.b[1]  // 11000001-01010001-01110101-00111010
282// CHECK-INST: sudot   za.s[w11, 2, vgx2], { z8.b, z9.b }, z1.b[1]
283// CHECK-ENCODING: [0x3a,0x75,0x51,0xc1]
284// CHECK-ERROR: instruction requires: sme2
285// CHECK-UNKNOWN: c151753a <unknown>
286
287sudot   za.s[w11, 2], {z8.b, z9.b}, z1.b[1]  // 11000001-01010001-01110101-00111010
288// CHECK-INST: sudot   za.s[w11, 2, vgx2], { z8.b, z9.b }, z1.b[1]
289// CHECK-ENCODING: [0x3a,0x75,0x51,0xc1]
290// CHECK-ERROR: instruction requires: sme2
291// CHECK-UNKNOWN: c151753a <unknown>
292
293sudot   za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b[2]  // 11000001-01011011-00111001-10111111
294// CHECK-INST: sudot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b[2]
295// CHECK-ENCODING: [0xbf,0x39,0x5b,0xc1]
296// CHECK-ERROR: instruction requires: sme2
297// CHECK-UNKNOWN: c15b39bf <unknown>
298
299sudot   za.s[w9, 7], {z12.b, z13.b}, z11.b[2]  // 11000001-01011011-00111001-10111111
300// CHECK-INST: sudot   za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b[2]
301// CHECK-ENCODING: [0xbf,0x39,0x5b,0xc1]
302// CHECK-ERROR: instruction requires: sme2
303// CHECK-UNKNOWN: c15b39bf <unknown>
304
305sudot   za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b  // 11000001-00110000-00010100-00011000
306// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b
307// CHECK-ENCODING: [0x18,0x14,0x30,0xc1]
308// CHECK-ERROR: instruction requires: sme2
309// CHECK-UNKNOWN: c1301418 <unknown>
310
311sudot   za.s[w8, 0], {z0.b - z3.b}, z0.b  // 11000001-00110000-00010100-00011000
312// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b
313// CHECK-ENCODING: [0x18,0x14,0x30,0xc1]
314// CHECK-ERROR: instruction requires: sme2
315// CHECK-UNKNOWN: c1301418 <unknown>
316
317sudot   za.s[w10, 5, vgx4], {z10.b - z13.b}, z5.b  // 11000001-00110101-01010101-01011101
318// CHECK-INST: sudot   za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b
319// CHECK-ENCODING: [0x5d,0x55,0x35,0xc1]
320// CHECK-ERROR: instruction requires: sme2
321// CHECK-UNKNOWN: c135555d <unknown>
322
323sudot   za.s[w10, 5], {z10.b - z13.b}, z5.b  // 11000001-00110101-01010101-01011101
324// CHECK-INST: sudot   za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b
325// CHECK-ENCODING: [0x5d,0x55,0x35,0xc1]
326// CHECK-ERROR: instruction requires: sme2
327// CHECK-UNKNOWN: c135555d <unknown>
328
329sudot   za.s[w11, 7, vgx4], {z13.b - z16.b}, z8.b  // 11000001-00111000-01110101-10111111
330// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b
331// CHECK-ENCODING: [0xbf,0x75,0x38,0xc1]
332// CHECK-ERROR: instruction requires: sme2
333// CHECK-UNKNOWN: c13875bf <unknown>
334
335sudot   za.s[w11, 7], {z13.b - z16.b}, z8.b  // 11000001-00111000-01110101-10111111
336// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b
337// CHECK-ENCODING: [0xbf,0x75,0x38,0xc1]
338// CHECK-ERROR: instruction requires: sme2
339// CHECK-UNKNOWN: c13875bf <unknown>
340
341sudot   za.s[w11, 7, vgx4], {z31.b - z2.b}, z15.b  // 11000001-00111111-01110111-11111111
342// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b
343// CHECK-ENCODING: [0xff,0x77,0x3f,0xc1]
344// CHECK-ERROR: instruction requires: sme2
345// CHECK-UNKNOWN: c13f77ff <unknown>
346
347sudot   za.s[w11, 7], {z31.b - z2.b}, z15.b  // 11000001-00111111-01110111-11111111
348// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b
349// CHECK-ENCODING: [0xff,0x77,0x3f,0xc1]
350// CHECK-ERROR: instruction requires: sme2
351// CHECK-UNKNOWN: c13f77ff <unknown>
352
353sudot   za.s[w8, 5, vgx4], {z17.b - z20.b}, z0.b  // 11000001-00110000-00010110-00111101
354// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b
355// CHECK-ENCODING: [0x3d,0x16,0x30,0xc1]
356// CHECK-ERROR: instruction requires: sme2
357// CHECK-UNKNOWN: c130163d <unknown>
358
359sudot   za.s[w8, 5], {z17.b - z20.b}, z0.b  // 11000001-00110000-00010110-00111101
360// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b
361// CHECK-ENCODING: [0x3d,0x16,0x30,0xc1]
362// CHECK-ERROR: instruction requires: sme2
363// CHECK-UNKNOWN: c130163d <unknown>
364
365sudot   za.s[w8, 1, vgx4], {z1.b - z4.b}, z14.b  // 11000001-00111110-00010100-00111001
366// CHECK-INST: sudot   za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b
367// CHECK-ENCODING: [0x39,0x14,0x3e,0xc1]
368// CHECK-ERROR: instruction requires: sme2
369// CHECK-UNKNOWN: c13e1439 <unknown>
370
371sudot   za.s[w8, 1], {z1.b - z4.b}, z14.b  // 11000001-00111110-00010100-00111001
372// CHECK-INST: sudot   za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b
373// CHECK-ENCODING: [0x39,0x14,0x3e,0xc1]
374// CHECK-ERROR: instruction requires: sme2
375// CHECK-UNKNOWN: c13e1439 <unknown>
376
377sudot   za.s[w10, 0, vgx4], {z19.b - z22.b}, z4.b  // 11000001-00110100-01010110-01111000
378// CHECK-INST: sudot   za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b
379// CHECK-ENCODING: [0x78,0x56,0x34,0xc1]
380// CHECK-ERROR: instruction requires: sme2
381// CHECK-UNKNOWN: c1345678 <unknown>
382
383sudot   za.s[w10, 0], {z19.b - z22.b}, z4.b  // 11000001-00110100-01010110-01111000
384// CHECK-INST: sudot   za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b
385// CHECK-ENCODING: [0x78,0x56,0x34,0xc1]
386// CHECK-ERROR: instruction requires: sme2
387// CHECK-UNKNOWN: c1345678 <unknown>
388
389sudot   za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b  // 11000001-00110010-00010101-10011000
390// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b
391// CHECK-ENCODING: [0x98,0x15,0x32,0xc1]
392// CHECK-ERROR: instruction requires: sme2
393// CHECK-UNKNOWN: c1321598 <unknown>
394
395sudot   za.s[w8, 0], {z12.b - z15.b}, z2.b  // 11000001-00110010-00010101-10011000
396// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b
397// CHECK-ENCODING: [0x98,0x15,0x32,0xc1]
398// CHECK-ERROR: instruction requires: sme2
399// CHECK-UNKNOWN: c1321598 <unknown>
400
401sudot   za.s[w10, 1, vgx4], {z1.b - z4.b}, z10.b  // 11000001-00111010-01010100-00111001
402// CHECK-INST: sudot   za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b
403// CHECK-ENCODING: [0x39,0x54,0x3a,0xc1]
404// CHECK-ERROR: instruction requires: sme2
405// CHECK-UNKNOWN: c13a5439 <unknown>
406
407sudot   za.s[w10, 1], {z1.b - z4.b}, z10.b  // 11000001-00111010-01010100-00111001
408// CHECK-INST: sudot   za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b
409// CHECK-ENCODING: [0x39,0x54,0x3a,0xc1]
410// CHECK-ERROR: instruction requires: sme2
411// CHECK-UNKNOWN: c13a5439 <unknown>
412
413sudot   za.s[w8, 5, vgx4], {z22.b - z25.b}, z14.b  // 11000001-00111110-00010110-11011101
414// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b
415// CHECK-ENCODING: [0xdd,0x16,0x3e,0xc1]
416// CHECK-ERROR: instruction requires: sme2
417// CHECK-UNKNOWN: c13e16dd <unknown>
418
419sudot   za.s[w8, 5], {z22.b - z25.b}, z14.b  // 11000001-00111110-00010110-11011101
420// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b
421// CHECK-ENCODING: [0xdd,0x16,0x3e,0xc1]
422// CHECK-ERROR: instruction requires: sme2
423// CHECK-UNKNOWN: c13e16dd <unknown>
424
425sudot   za.s[w11, 2, vgx4], {z9.b - z12.b}, z1.b  // 11000001-00110001-01110101-00111010
426// CHECK-INST: sudot   za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b
427// CHECK-ENCODING: [0x3a,0x75,0x31,0xc1]
428// CHECK-ERROR: instruction requires: sme2
429// CHECK-UNKNOWN: c131753a <unknown>
430
431sudot   za.s[w11, 2], {z9.b - z12.b}, z1.b  // 11000001-00110001-01110101-00111010
432// CHECK-INST: sudot   za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b
433// CHECK-ENCODING: [0x3a,0x75,0x31,0xc1]
434// CHECK-ERROR: instruction requires: sme2
435// CHECK-UNKNOWN: c131753a <unknown>
436
437sudot   za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b  // 11000001-00111011-00110101-10011111
438// CHECK-INST: sudot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b
439// CHECK-ENCODING: [0x9f,0x35,0x3b,0xc1]
440// CHECK-ERROR: instruction requires: sme2
441// CHECK-UNKNOWN: c13b359f <unknown>
442
443sudot   za.s[w9, 7], {z12.b - z15.b}, z11.b  // 11000001-00111011-00110101-10011111
444// CHECK-INST: sudot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b
445// CHECK-ENCODING: [0x9f,0x35,0x3b,0xc1]
446// CHECK-ERROR: instruction requires: sme2
447// CHECK-UNKNOWN: c13b359f <unknown>
448
449
450sudot   za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b[0]  // 11000001-01010000-10010000-00111000
451// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
452// CHECK-ENCODING: [0x38,0x90,0x50,0xc1]
453// CHECK-ERROR: instruction requires: sme2
454// CHECK-UNKNOWN: c1509038 <unknown>
455
456sudot   za.s[w8, 0], {z0.b - z3.b}, z0.b[0]  // 11000001-01010000-10010000-00111000
457// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0]
458// CHECK-ENCODING: [0x38,0x90,0x50,0xc1]
459// CHECK-ERROR: instruction requires: sme2
460// CHECK-UNKNOWN: c1509038 <unknown>
461
462sudot   za.s[w10, 5, vgx4], {z8.b - z11.b}, z5.b[1]  // 11000001-01010101-11010101-00111101
463// CHECK-INST: sudot   za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
464// CHECK-ENCODING: [0x3d,0xd5,0x55,0xc1]
465// CHECK-ERROR: instruction requires: sme2
466// CHECK-UNKNOWN: c155d53d <unknown>
467
468sudot   za.s[w10, 5], {z8.b - z11.b}, z5.b[1]  // 11000001-01010101-11010101-00111101
469// CHECK-INST: sudot   za.s[w10, 5, vgx4], { z8.b - z11.b }, z5.b[1]
470// CHECK-ENCODING: [0x3d,0xd5,0x55,0xc1]
471// CHECK-ERROR: instruction requires: sme2
472// CHECK-UNKNOWN: c155d53d <unknown>
473
474sudot   za.s[w11, 7, vgx4], {z12.b - z15.b}, z8.b[3]  // 11000001-01011000-11111101-10111111
475// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
476// CHECK-ENCODING: [0xbf,0xfd,0x58,0xc1]
477// CHECK-ERROR: instruction requires: sme2
478// CHECK-UNKNOWN: c158fdbf <unknown>
479
480sudot   za.s[w11, 7], {z12.b - z15.b}, z8.b[3]  // 11000001-01011000-11111101-10111111
481// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z12.b - z15.b }, z8.b[3]
482// CHECK-ENCODING: [0xbf,0xfd,0x58,0xc1]
483// CHECK-ERROR: instruction requires: sme2
484// CHECK-UNKNOWN: c158fdbf <unknown>
485
486sudot   za.s[w11, 7, vgx4], {z28.b - z31.b}, z15.b[3]  // 11000001-01011111-11111111-10111111
487// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
488// CHECK-ENCODING: [0xbf,0xff,0x5f,0xc1]
489// CHECK-ERROR: instruction requires: sme2
490// CHECK-UNKNOWN: c15fffbf <unknown>
491
492sudot   za.s[w11, 7], {z28.b - z31.b}, z15.b[3]  // 11000001-01011111-11111111-10111111
493// CHECK-INST: sudot   za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3]
494// CHECK-ENCODING: [0xbf,0xff,0x5f,0xc1]
495// CHECK-ERROR: instruction requires: sme2
496// CHECK-UNKNOWN: c15fffbf <unknown>
497
498sudot   za.s[w8, 5, vgx4], {z16.b - z19.b}, z0.b[3]  // 11000001-01010000-10011110-00111101
499// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
500// CHECK-ENCODING: [0x3d,0x9e,0x50,0xc1]
501// CHECK-ERROR: instruction requires: sme2
502// CHECK-UNKNOWN: c1509e3d <unknown>
503
504sudot   za.s[w8, 5], {z16.b - z19.b}, z0.b[3]  // 11000001-01010000-10011110-00111101
505// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z16.b - z19.b }, z0.b[3]
506// CHECK-ENCODING: [0x3d,0x9e,0x50,0xc1]
507// CHECK-ERROR: instruction requires: sme2
508// CHECK-UNKNOWN: c1509e3d <unknown>
509
510sudot   za.s[w8, 1, vgx4], {z0.b - z3.b}, z14.b[1]  // 11000001-01011110-10010100-00111001
511// CHECK-INST: sudot   za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
512// CHECK-ENCODING: [0x39,0x94,0x5e,0xc1]
513// CHECK-ERROR: instruction requires: sme2
514// CHECK-UNKNOWN: c15e9439 <unknown>
515
516sudot   za.s[w8, 1], {z0.b - z3.b}, z14.b[1]  // 11000001-01011110-10010100-00111001
517// CHECK-INST: sudot   za.s[w8, 1, vgx4], { z0.b - z3.b }, z14.b[1]
518// CHECK-ENCODING: [0x39,0x94,0x5e,0xc1]
519// CHECK-ERROR: instruction requires: sme2
520// CHECK-UNKNOWN: c15e9439 <unknown>
521
522sudot   za.s[w10, 0, vgx4], {z16.b - z19.b}, z4.b[1]  // 11000001-01010100-11010110-00111000
523// CHECK-INST: sudot   za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
524// CHECK-ENCODING: [0x38,0xd6,0x54,0xc1]
525// CHECK-ERROR: instruction requires: sme2
526// CHECK-UNKNOWN: c154d638 <unknown>
527
528sudot   za.s[w10, 0], {z16.b - z19.b}, z4.b[1]  // 11000001-01010100-11010110-00111000
529// CHECK-INST: sudot   za.s[w10, 0, vgx4], { z16.b - z19.b }, z4.b[1]
530// CHECK-ENCODING: [0x38,0xd6,0x54,0xc1]
531// CHECK-ERROR: instruction requires: sme2
532// CHECK-UNKNOWN: c154d638 <unknown>
533
534sudot   za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b[2]  // 11000001-01010010-10011001-10111000
535// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
536// CHECK-ENCODING: [0xb8,0x99,0x52,0xc1]
537// CHECK-ERROR: instruction requires: sme2
538// CHECK-UNKNOWN: c15299b8 <unknown>
539
540sudot   za.s[w8, 0], {z12.b - z15.b}, z2.b[2]  // 11000001-01010010-10011001-10111000
541// CHECK-INST: sudot   za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b[2]
542// CHECK-ENCODING: [0xb8,0x99,0x52,0xc1]
543// CHECK-ERROR: instruction requires: sme2
544// CHECK-UNKNOWN: c15299b8 <unknown>
545
546sudot   za.s[w10, 1, vgx4], {z0.b - z3.b}, z10.b[2]  // 11000001-01011010-11011000-00111001
547// CHECK-INST: sudot   za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
548// CHECK-ENCODING: [0x39,0xd8,0x5a,0xc1]
549// CHECK-ERROR: instruction requires: sme2
550// CHECK-UNKNOWN: c15ad839 <unknown>
551
552sudot   za.s[w10, 1], {z0.b - z3.b}, z10.b[2]  // 11000001-01011010-11011000-00111001
553// CHECK-INST: sudot   za.s[w10, 1, vgx4], { z0.b - z3.b }, z10.b[2]
554// CHECK-ENCODING: [0x39,0xd8,0x5a,0xc1]
555// CHECK-ERROR: instruction requires: sme2
556// CHECK-UNKNOWN: c15ad839 <unknown>
557
558sudot   za.s[w8, 5, vgx4], {z20.b - z23.b}, z14.b[2]  // 11000001-01011110-10011010-10111101
559// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
560// CHECK-ENCODING: [0xbd,0x9a,0x5e,0xc1]
561// CHECK-ERROR: instruction requires: sme2
562// CHECK-UNKNOWN: c15e9abd <unknown>
563
564sudot   za.s[w8, 5], {z20.b - z23.b}, z14.b[2]  // 11000001-01011110-10011010-10111101
565// CHECK-INST: sudot   za.s[w8, 5, vgx4], { z20.b - z23.b }, z14.b[2]
566// CHECK-ENCODING: [0xbd,0x9a,0x5e,0xc1]
567// CHECK-ERROR: instruction requires: sme2
568// CHECK-UNKNOWN: c15e9abd <unknown>
569
570sudot   za.s[w11, 2, vgx4], {z8.b - z11.b}, z1.b[1]  // 11000001-01010001-11110101-00111010
571// CHECK-INST: sudot   za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
572// CHECK-ENCODING: [0x3a,0xf5,0x51,0xc1]
573// CHECK-ERROR: instruction requires: sme2
574// CHECK-UNKNOWN: c151f53a <unknown>
575
576sudot   za.s[w11, 2], {z8.b - z11.b}, z1.b[1]  // 11000001-01010001-11110101-00111010
577// CHECK-INST: sudot   za.s[w11, 2, vgx4], { z8.b - z11.b }, z1.b[1]
578// CHECK-ENCODING: [0x3a,0xf5,0x51,0xc1]
579// CHECK-ERROR: instruction requires: sme2
580// CHECK-UNKNOWN: c151f53a <unknown>
581
582sudot   za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b[2]  // 11000001-01011011-10111001-10111111
583// CHECK-INST: sudot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
584// CHECK-ENCODING: [0xbf,0xb9,0x5b,0xc1]
585// CHECK-ERROR: instruction requires: sme2
586// CHECK-UNKNOWN: c15bb9bf <unknown>
587
588sudot   za.s[w9, 7], {z12.b - z15.b}, z11.b[2]  // 11000001-01011011-10111001-10111111
589// CHECK-INST: sudot   za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b[2]
590// CHECK-ENCODING: [0xbf,0xb9,0x5b,0xc1]
591// CHECK-ERROR: instruction requires: sme2
592// CHECK-UNKNOWN: c15bb9bf <unknown>
593
594