xref: /llvm-project/llvm/test/MC/AArch64/SME2/sub.s (revision 0837bc1d041517ab29f86792288113409b7c6672)
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
13
14
15sub     za.s[w8, 0, vgx2], {z0.s, z1.s}  // 11000001-10100000-00011100-00011000
16// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }
17// CHECK-ENCODING: [0x18,0x1c,0xa0,0xc1]
18// CHECK-ERROR: instruction requires: sme2
19// CHECK-UNKNOWN: c1a01c18 <unknown>
20
21sub     za.s[w8, 0], {z0.s, z1.s}  // 11000001-10100000-00011100-00011000
22// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }
23// CHECK-ENCODING: [0x18,0x1c,0xa0,0xc1]
24// CHECK-ERROR: instruction requires: sme2
25// CHECK-UNKNOWN: c1a01c18 <unknown>
26
27sub     za.s[w10, 5, vgx2], {z10.s, z11.s}  // 11000001-10100000-01011101-01011101
28// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }
29// CHECK-ENCODING: [0x5d,0x5d,0xa0,0xc1]
30// CHECK-ERROR: instruction requires: sme2
31// CHECK-UNKNOWN: c1a05d5d <unknown>
32
33sub     za.s[w10, 5], {z10.s, z11.s}  // 11000001-10100000-01011101-01011101
34// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }
35// CHECK-ENCODING: [0x5d,0x5d,0xa0,0xc1]
36// CHECK-ERROR: instruction requires: sme2
37// CHECK-UNKNOWN: c1a05d5d <unknown>
38
39sub     za.s[w11, 7, vgx2], {z12.s, z13.s}  // 11000001-10100000-01111101-10011111
40// CHECK-INST: sub     za.s[w11, 7, vgx2], { z12.s, z13.s }
41// CHECK-ENCODING: [0x9f,0x7d,0xa0,0xc1]
42// CHECK-ERROR: instruction requires: sme2
43// CHECK-UNKNOWN: c1a07d9f <unknown>
44
45sub     za.s[w11, 7], {z12.s, z13.s}  // 11000001-10100000-01111101-10011111
46// CHECK-INST: sub     za.s[w11, 7, vgx2], { z12.s, z13.s }
47// CHECK-ENCODING: [0x9f,0x7d,0xa0,0xc1]
48// CHECK-ERROR: instruction requires: sme2
49// CHECK-UNKNOWN: c1a07d9f <unknown>
50
51sub     za.s[w11, 7, vgx2], {z30.s, z31.s}  // 11000001-10100000-01111111-11011111
52// CHECK-INST: sub     za.s[w11, 7, vgx2], { z30.s, z31.s }
53// CHECK-ENCODING: [0xdf,0x7f,0xa0,0xc1]
54// CHECK-ERROR: instruction requires: sme2
55// CHECK-UNKNOWN: c1a07fdf <unknown>
56
57sub     za.s[w11, 7], {z30.s, z31.s}  // 11000001-10100000-01111111-11011111
58// CHECK-INST: sub     za.s[w11, 7, vgx2], { z30.s, z31.s }
59// CHECK-ENCODING: [0xdf,0x7f,0xa0,0xc1]
60// CHECK-ERROR: instruction requires: sme2
61// CHECK-UNKNOWN: c1a07fdf <unknown>
62
63sub     za.s[w8, 5, vgx2], {z16.s, z17.s}  // 11000001-10100000-00011110-00011101
64// CHECK-INST: sub     za.s[w8, 5, vgx2], { z16.s, z17.s }
65// CHECK-ENCODING: [0x1d,0x1e,0xa0,0xc1]
66// CHECK-ERROR: instruction requires: sme2
67// CHECK-UNKNOWN: c1a01e1d <unknown>
68
69sub     za.s[w8, 5], {z16.s, z17.s}  // 11000001-10100000-00011110-00011101
70// CHECK-INST: sub     za.s[w8, 5, vgx2], { z16.s, z17.s }
71// CHECK-ENCODING: [0x1d,0x1e,0xa0,0xc1]
72// CHECK-ERROR: instruction requires: sme2
73// CHECK-UNKNOWN: c1a01e1d <unknown>
74
75sub     za.s[w8, 1, vgx2], {z0.s, z1.s}  // 11000001-10100000-00011100-00011001
76// CHECK-INST: sub     za.s[w8, 1, vgx2], { z0.s, z1.s }
77// CHECK-ENCODING: [0x19,0x1c,0xa0,0xc1]
78// CHECK-ERROR: instruction requires: sme2
79// CHECK-UNKNOWN: c1a01c19 <unknown>
80
81sub     za.s[w8, 1], {z0.s, z1.s}  // 11000001-10100000-00011100-00011001
82// CHECK-INST: sub     za.s[w8, 1, vgx2], { z0.s, z1.s }
83// CHECK-ENCODING: [0x19,0x1c,0xa0,0xc1]
84// CHECK-ERROR: instruction requires: sme2
85// CHECK-UNKNOWN: c1a01c19 <unknown>
86
87sub     za.s[w10, 0, vgx2], {z18.s, z19.s}  // 11000001-10100000-01011110-01011000
88// CHECK-INST: sub     za.s[w10, 0, vgx2], { z18.s, z19.s }
89// CHECK-ENCODING: [0x58,0x5e,0xa0,0xc1]
90// CHECK-ERROR: instruction requires: sme2
91// CHECK-UNKNOWN: c1a05e58 <unknown>
92
93sub     za.s[w10, 0], {z18.s, z19.s}  // 11000001-10100000-01011110-01011000
94// CHECK-INST: sub     za.s[w10, 0, vgx2], { z18.s, z19.s }
95// CHECK-ENCODING: [0x58,0x5e,0xa0,0xc1]
96// CHECK-ERROR: instruction requires: sme2
97// CHECK-UNKNOWN: c1a05e58 <unknown>
98
99sub     za.s[w8, 0, vgx2], {z12.s, z13.s}  // 11000001-10100000-00011101-10011000
100// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }
101// CHECK-ENCODING: [0x98,0x1d,0xa0,0xc1]
102// CHECK-ERROR: instruction requires: sme2
103// CHECK-UNKNOWN: c1a01d98 <unknown>
104
105sub     za.s[w8, 0], {z12.s, z13.s}  // 11000001-10100000-00011101-10011000
106// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }
107// CHECK-ENCODING: [0x98,0x1d,0xa0,0xc1]
108// CHECK-ERROR: instruction requires: sme2
109// CHECK-UNKNOWN: c1a01d98 <unknown>
110
111sub     za.s[w10, 1, vgx2], {z0.s, z1.s}  // 11000001-10100000-01011100-00011001
112// CHECK-INST: sub     za.s[w10, 1, vgx2], { z0.s, z1.s }
113// CHECK-ENCODING: [0x19,0x5c,0xa0,0xc1]
114// CHECK-ERROR: instruction requires: sme2
115// CHECK-UNKNOWN: c1a05c19 <unknown>
116
117sub     za.s[w10, 1], {z0.s, z1.s}  // 11000001-10100000-01011100-00011001
118// CHECK-INST: sub     za.s[w10, 1, vgx2], { z0.s, z1.s }
119// CHECK-ENCODING: [0x19,0x5c,0xa0,0xc1]
120// CHECK-ERROR: instruction requires: sme2
121// CHECK-UNKNOWN: c1a05c19 <unknown>
122
123sub     za.s[w8, 5, vgx2], {z22.s, z23.s}  // 11000001-10100000-00011110-11011101
124// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }
125// CHECK-ENCODING: [0xdd,0x1e,0xa0,0xc1]
126// CHECK-ERROR: instruction requires: sme2
127// CHECK-UNKNOWN: c1a01edd <unknown>
128
129sub     za.s[w8, 5], {z22.s, z23.s}  // 11000001-10100000-00011110-11011101
130// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }
131// CHECK-ENCODING: [0xdd,0x1e,0xa0,0xc1]
132// CHECK-ERROR: instruction requires: sme2
133// CHECK-UNKNOWN: c1a01edd <unknown>
134
135sub     za.s[w11, 2, vgx2], {z8.s, z9.s}  // 11000001-10100000-01111101-00011010
136// CHECK-INST: sub     za.s[w11, 2, vgx2], { z8.s, z9.s }
137// CHECK-ENCODING: [0x1a,0x7d,0xa0,0xc1]
138// CHECK-ERROR: instruction requires: sme2
139// CHECK-UNKNOWN: c1a07d1a <unknown>
140
141sub     za.s[w11, 2], {z8.s, z9.s}  // 11000001-10100000-01111101-00011010
142// CHECK-INST: sub     za.s[w11, 2, vgx2], { z8.s, z9.s }
143// CHECK-ENCODING: [0x1a,0x7d,0xa0,0xc1]
144// CHECK-ERROR: instruction requires: sme2
145// CHECK-UNKNOWN: c1a07d1a <unknown>
146
147sub     za.s[w9, 7, vgx2], {z12.s, z13.s}  // 11000001-10100000-00111101-10011111
148// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }
149// CHECK-ENCODING: [0x9f,0x3d,0xa0,0xc1]
150// CHECK-ERROR: instruction requires: sme2
151// CHECK-UNKNOWN: c1a03d9f <unknown>
152
153sub     za.s[w9, 7], {z12.s, z13.s}  // 11000001-10100000-00111101-10011111
154// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }
155// CHECK-ENCODING: [0x9f,0x3d,0xa0,0xc1]
156// CHECK-ERROR: instruction requires: sme2
157// CHECK-UNKNOWN: c1a03d9f <unknown>
158
159
160sub     za.s[w8, 0, vgx2], {z0.s, z1.s}, z0.s  // 11000001-00100000-00011000-00011000
161// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }, z0.s
162// CHECK-ENCODING: [0x18,0x18,0x20,0xc1]
163// CHECK-ERROR: instruction requires: sme2
164// CHECK-UNKNOWN: c1201818 <unknown>
165
166sub     za.s[w8, 0], {z0.s - z1.s}, z0.s  // 11000001-00100000-00011000-00011000
167// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }, z0.s
168// CHECK-ENCODING: [0x18,0x18,0x20,0xc1]
169// CHECK-ERROR: instruction requires: sme2
170// CHECK-UNKNOWN: c1201818 <unknown>
171
172sub     za.s[w10, 5, vgx2], {z10.s, z11.s}, z5.s  // 11000001-00100101-01011001-01011101
173// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }, z5.s
174// CHECK-ENCODING: [0x5d,0x59,0x25,0xc1]
175// CHECK-ERROR: instruction requires: sme2
176// CHECK-UNKNOWN: c125595d <unknown>
177
178sub     za.s[w10, 5], {z10.s - z11.s}, z5.s  // 11000001-00100101-01011001-01011101
179// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }, z5.s
180// CHECK-ENCODING: [0x5d,0x59,0x25,0xc1]
181// CHECK-ERROR: instruction requires: sme2
182// CHECK-UNKNOWN: c125595d <unknown>
183
184sub     za.s[w11, 7, vgx2], {z13.s, z14.s}, z8.s  // 11000001-00101000-01111001-10111111
185// CHECK-INST: sub     za.s[w11, 7, vgx2], { z13.s, z14.s }, z8.s
186// CHECK-ENCODING: [0xbf,0x79,0x28,0xc1]
187// CHECK-ERROR: instruction requires: sme2
188// CHECK-UNKNOWN: c12879bf <unknown>
189
190sub     za.s[w11, 7], {z13.s - z14.s}, z8.s  // 11000001-00101000-01111001-10111111
191// CHECK-INST: sub     za.s[w11, 7, vgx2], { z13.s, z14.s }, z8.s
192// CHECK-ENCODING: [0xbf,0x79,0x28,0xc1]
193// CHECK-ERROR: instruction requires: sme2
194// CHECK-UNKNOWN: c12879bf <unknown>
195
196sub     za.s[w11, 7, vgx2], {z31.s, z0.s}, z15.s  // 11000001-00101111-01111011-11111111
197// CHECK-INST: sub     za.s[w11, 7, vgx2], { z31.s, z0.s }, z15.s
198// CHECK-ENCODING: [0xff,0x7b,0x2f,0xc1]
199// CHECK-ERROR: instruction requires: sme2
200// CHECK-UNKNOWN: c12f7bff <unknown>
201
202sub     za.s[w11, 7], {z31.s - z0.s}, z15.s  // 11000001-00101111-01111011-11111111
203// CHECK-INST: sub     za.s[w11, 7, vgx2], { z31.s, z0.s }, z15.s
204// CHECK-ENCODING: [0xff,0x7b,0x2f,0xc1]
205// CHECK-ERROR: instruction requires: sme2
206// CHECK-UNKNOWN: c12f7bff <unknown>
207
208sub     za.s[w8, 5, vgx2], {z17.s, z18.s}, z0.s  // 11000001-00100000-00011010-00111101
209// CHECK-INST: sub     za.s[w8, 5, vgx2], { z17.s, z18.s }, z0.s
210// CHECK-ENCODING: [0x3d,0x1a,0x20,0xc1]
211// CHECK-ERROR: instruction requires: sme2
212// CHECK-UNKNOWN: c1201a3d <unknown>
213
214sub     za.s[w8, 5], {z17.s - z18.s}, z0.s  // 11000001-00100000-00011010-00111101
215// CHECK-INST: sub     za.s[w8, 5, vgx2], { z17.s, z18.s }, z0.s
216// CHECK-ENCODING: [0x3d,0x1a,0x20,0xc1]
217// CHECK-ERROR: instruction requires: sme2
218// CHECK-UNKNOWN: c1201a3d <unknown>
219
220sub     za.s[w8, 1, vgx2], {z1.s, z2.s}, z14.s  // 11000001-00101110-00011000-00111001
221// CHECK-INST: sub     za.s[w8, 1, vgx2], { z1.s, z2.s }, z14.s
222// CHECK-ENCODING: [0x39,0x18,0x2e,0xc1]
223// CHECK-ERROR: instruction requires: sme2
224// CHECK-UNKNOWN: c12e1839 <unknown>
225
226sub     za.s[w8, 1], {z1.s - z2.s}, z14.s  // 11000001-00101110-00011000-00111001
227// CHECK-INST: sub     za.s[w8, 1, vgx2], { z1.s, z2.s }, z14.s
228// CHECK-ENCODING: [0x39,0x18,0x2e,0xc1]
229// CHECK-ERROR: instruction requires: sme2
230// CHECK-UNKNOWN: c12e1839 <unknown>
231
232sub     za.s[w10, 0, vgx2], {z19.s, z20.s}, z4.s  // 11000001-00100100-01011010-01111000
233// CHECK-INST: sub     za.s[w10, 0, vgx2], { z19.s, z20.s }, z4.s
234// CHECK-ENCODING: [0x78,0x5a,0x24,0xc1]
235// CHECK-ERROR: instruction requires: sme2
236// CHECK-UNKNOWN: c1245a78 <unknown>
237
238sub     za.s[w10, 0], {z19.s - z20.s}, z4.s  // 11000001-00100100-01011010-01111000
239// CHECK-INST: sub     za.s[w10, 0, vgx2], { z19.s, z20.s }, z4.s
240// CHECK-ENCODING: [0x78,0x5a,0x24,0xc1]
241// CHECK-ERROR: instruction requires: sme2
242// CHECK-UNKNOWN: c1245a78 <unknown>
243
244sub     za.s[w8, 0, vgx2], {z12.s, z13.s}, z2.s  // 11000001-00100010-00011001-10011000
245// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }, z2.s
246// CHECK-ENCODING: [0x98,0x19,0x22,0xc1]
247// CHECK-ERROR: instruction requires: sme2
248// CHECK-UNKNOWN: c1221998 <unknown>
249
250sub     za.s[w8, 0], {z12.s - z13.s}, z2.s  // 11000001-00100010-00011001-10011000
251// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }, z2.s
252// CHECK-ENCODING: [0x98,0x19,0x22,0xc1]
253// CHECK-ERROR: instruction requires: sme2
254// CHECK-UNKNOWN: c1221998 <unknown>
255
256sub     za.s[w10, 1, vgx2], {z1.s, z2.s}, z10.s  // 11000001-00101010-01011000-00111001
257// CHECK-INST: sub     za.s[w10, 1, vgx2], { z1.s, z2.s }, z10.s
258// CHECK-ENCODING: [0x39,0x58,0x2a,0xc1]
259// CHECK-ERROR: instruction requires: sme2
260// CHECK-UNKNOWN: c12a5839 <unknown>
261
262sub     za.s[w10, 1], {z1.s - z2.s}, z10.s  // 11000001-00101010-01011000-00111001
263// CHECK-INST: sub     za.s[w10, 1, vgx2], { z1.s, z2.s }, z10.s
264// CHECK-ENCODING: [0x39,0x58,0x2a,0xc1]
265// CHECK-ERROR: instruction requires: sme2
266// CHECK-UNKNOWN: c12a5839 <unknown>
267
268sub     za.s[w8, 5, vgx2], {z22.s, z23.s}, z14.s  // 11000001-00101110-00011010-11011101
269// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }, z14.s
270// CHECK-ENCODING: [0xdd,0x1a,0x2e,0xc1]
271// CHECK-ERROR: instruction requires: sme2
272// CHECK-UNKNOWN: c12e1add <unknown>
273
274sub     za.s[w8, 5], {z22.s - z23.s}, z14.s  // 11000001-00101110-00011010-11011101
275// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }, z14.s
276// CHECK-ENCODING: [0xdd,0x1a,0x2e,0xc1]
277// CHECK-ERROR: instruction requires: sme2
278// CHECK-UNKNOWN: c12e1add <unknown>
279
280sub     za.s[w11, 2, vgx2], {z9.s, z10.s}, z1.s  // 11000001-00100001-01111001-00111010
281// CHECK-INST: sub     za.s[w11, 2, vgx2], { z9.s, z10.s }, z1.s
282// CHECK-ENCODING: [0x3a,0x79,0x21,0xc1]
283// CHECK-ERROR: instruction requires: sme2
284// CHECK-UNKNOWN: c121793a <unknown>
285
286sub     za.s[w11, 2], {z9.s - z10.s}, z1.s  // 11000001-00100001-01111001-00111010
287// CHECK-INST: sub     za.s[w11, 2, vgx2], { z9.s, z10.s }, z1.s
288// CHECK-ENCODING: [0x3a,0x79,0x21,0xc1]
289// CHECK-ERROR: instruction requires: sme2
290// CHECK-UNKNOWN: c121793a <unknown>
291
292sub     za.s[w9, 7, vgx2], {z12.s, z13.s}, z11.s  // 11000001-00101011-00111001-10011111
293// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }, z11.s
294// CHECK-ENCODING: [0x9f,0x39,0x2b,0xc1]
295// CHECK-ERROR: instruction requires: sme2
296// CHECK-UNKNOWN: c12b399f <unknown>
297
298sub     za.s[w9, 7], {z12.s - z13.s}, z11.s  // 11000001-00101011-00111001-10011111
299// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }, z11.s
300// CHECK-ENCODING: [0x9f,0x39,0x2b,0xc1]
301// CHECK-ERROR: instruction requires: sme2
302// CHECK-UNKNOWN: c12b399f <unknown>
303
304
305sub     za.s[w8, 0, vgx2], {z0.s, z1.s}, {z0.s, z1.s}  // 11000001-10100000-00011000-00011000
306// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }, { z0.s, z1.s }
307// CHECK-ENCODING: [0x18,0x18,0xa0,0xc1]
308// CHECK-ERROR: instruction requires: sme2
309// CHECK-UNKNOWN: c1a01818 <unknown>
310
311sub     za.s[w8, 0], {z0.s - z1.s}, {z0.s - z1.s}  // 11000001-10100000-00011000-00011000
312// CHECK-INST: sub     za.s[w8, 0, vgx2], { z0.s, z1.s }, { z0.s, z1.s }
313// CHECK-ENCODING: [0x18,0x18,0xa0,0xc1]
314// CHECK-ERROR: instruction requires: sme2
315// CHECK-UNKNOWN: c1a01818 <unknown>
316
317sub     za.s[w10, 5, vgx2], {z10.s, z11.s}, {z20.s, z21.s}  // 11000001-10110100-01011001-01011101
318// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }, { z20.s, z21.s }
319// CHECK-ENCODING: [0x5d,0x59,0xb4,0xc1]
320// CHECK-ERROR: instruction requires: sme2
321// CHECK-UNKNOWN: c1b4595d <unknown>
322
323sub     za.s[w10, 5], {z10.s - z11.s}, {z20.s - z21.s}  // 11000001-10110100-01011001-01011101
324// CHECK-INST: sub     za.s[w10, 5, vgx2], { z10.s, z11.s }, { z20.s, z21.s }
325// CHECK-ENCODING: [0x5d,0x59,0xb4,0xc1]
326// CHECK-ERROR: instruction requires: sme2
327// CHECK-UNKNOWN: c1b4595d <unknown>
328
329sub     za.s[w11, 7, vgx2], {z12.s, z13.s}, {z8.s, z9.s}  // 11000001-10101000-01111001-10011111
330// CHECK-INST: sub     za.s[w11, 7, vgx2], { z12.s, z13.s }, { z8.s, z9.s }
331// CHECK-ENCODING: [0x9f,0x79,0xa8,0xc1]
332// CHECK-ERROR: instruction requires: sme2
333// CHECK-UNKNOWN: c1a8799f <unknown>
334
335sub     za.s[w11, 7], {z12.s - z13.s}, {z8.s - z9.s}  // 11000001-10101000-01111001-10011111
336// CHECK-INST: sub     za.s[w11, 7, vgx2], { z12.s, z13.s }, { z8.s, z9.s }
337// CHECK-ENCODING: [0x9f,0x79,0xa8,0xc1]
338// CHECK-ERROR: instruction requires: sme2
339// CHECK-UNKNOWN: c1a8799f <unknown>
340
341sub     za.s[w11, 7, vgx2], {z30.s, z31.s}, {z30.s, z31.s}  // 11000001-10111110-01111011-11011111
342// CHECK-INST: sub     za.s[w11, 7, vgx2], { z30.s, z31.s }, { z30.s, z31.s }
343// CHECK-ENCODING: [0xdf,0x7b,0xbe,0xc1]
344// CHECK-ERROR: instruction requires: sme2
345// CHECK-UNKNOWN: c1be7bdf <unknown>
346
347sub     za.s[w11, 7], {z30.s - z31.s}, {z30.s - z31.s}  // 11000001-10111110-01111011-11011111
348// CHECK-INST: sub     za.s[w11, 7, vgx2], { z30.s, z31.s }, { z30.s, z31.s }
349// CHECK-ENCODING: [0xdf,0x7b,0xbe,0xc1]
350// CHECK-ERROR: instruction requires: sme2
351// CHECK-UNKNOWN: c1be7bdf <unknown>
352
353sub     za.s[w8, 5, vgx2], {z16.s, z17.s}, {z16.s, z17.s}  // 11000001-10110000-00011010-00011101
354// CHECK-INST: sub     za.s[w8, 5, vgx2], { z16.s, z17.s }, { z16.s, z17.s }
355// CHECK-ENCODING: [0x1d,0x1a,0xb0,0xc1]
356// CHECK-ERROR: instruction requires: sme2
357// CHECK-UNKNOWN: c1b01a1d <unknown>
358
359sub     za.s[w8, 5], {z16.s - z17.s}, {z16.s - z17.s}  // 11000001-10110000-00011010-00011101
360// CHECK-INST: sub     za.s[w8, 5, vgx2], { z16.s, z17.s }, { z16.s, z17.s }
361// CHECK-ENCODING: [0x1d,0x1a,0xb0,0xc1]
362// CHECK-ERROR: instruction requires: sme2
363// CHECK-UNKNOWN: c1b01a1d <unknown>
364
365sub     za.s[w8, 1, vgx2], {z0.s, z1.s}, {z30.s, z31.s}  // 11000001-10111110-00011000-00011001
366// CHECK-INST: sub     za.s[w8, 1, vgx2], { z0.s, z1.s }, { z30.s, z31.s }
367// CHECK-ENCODING: [0x19,0x18,0xbe,0xc1]
368// CHECK-ERROR: instruction requires: sme2
369// CHECK-UNKNOWN: c1be1819 <unknown>
370
371sub     za.s[w8, 1], {z0.s - z1.s}, {z30.s - z31.s}  // 11000001-10111110-00011000-00011001
372// CHECK-INST: sub     za.s[w8, 1, vgx2], { z0.s, z1.s }, { z30.s, z31.s }
373// CHECK-ENCODING: [0x19,0x18,0xbe,0xc1]
374// CHECK-ERROR: instruction requires: sme2
375// CHECK-UNKNOWN: c1be1819 <unknown>
376
377sub     za.s[w10, 0, vgx2], {z18.s, z19.s}, {z20.s, z21.s}  // 11000001-10110100-01011010-01011000
378// CHECK-INST: sub     za.s[w10, 0, vgx2], { z18.s, z19.s }, { z20.s, z21.s }
379// CHECK-ENCODING: [0x58,0x5a,0xb4,0xc1]
380// CHECK-ERROR: instruction requires: sme2
381// CHECK-UNKNOWN: c1b45a58 <unknown>
382
383sub     za.s[w10, 0], {z18.s - z19.s}, {z20.s - z21.s}  // 11000001-10110100-01011010-01011000
384// CHECK-INST: sub     za.s[w10, 0, vgx2], { z18.s, z19.s }, { z20.s, z21.s }
385// CHECK-ENCODING: [0x58,0x5a,0xb4,0xc1]
386// CHECK-ERROR: instruction requires: sme2
387// CHECK-UNKNOWN: c1b45a58 <unknown>
388
389sub     za.s[w8, 0, vgx2], {z12.s, z13.s}, {z2.s, z3.s}  // 11000001-10100010-00011001-10011000
390// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }, { z2.s, z3.s }
391// CHECK-ENCODING: [0x98,0x19,0xa2,0xc1]
392// CHECK-ERROR: instruction requires: sme2
393// CHECK-UNKNOWN: c1a21998 <unknown>
394
395sub     za.s[w8, 0], {z12.s - z13.s}, {z2.s - z3.s}  // 11000001-10100010-00011001-10011000
396// CHECK-INST: sub     za.s[w8, 0, vgx2], { z12.s, z13.s }, { z2.s, z3.s }
397// CHECK-ENCODING: [0x98,0x19,0xa2,0xc1]
398// CHECK-ERROR: instruction requires: sme2
399// CHECK-UNKNOWN: c1a21998 <unknown>
400
401sub     za.s[w10, 1, vgx2], {z0.s, z1.s}, {z26.s, z27.s}  // 11000001-10111010-01011000-00011001
402// CHECK-INST: sub     za.s[w10, 1, vgx2], { z0.s, z1.s }, { z26.s, z27.s }
403// CHECK-ENCODING: [0x19,0x58,0xba,0xc1]
404// CHECK-ERROR: instruction requires: sme2
405// CHECK-UNKNOWN: c1ba5819 <unknown>
406
407sub     za.s[w10, 1], {z0.s - z1.s}, {z26.s - z27.s}  // 11000001-10111010-01011000-00011001
408// CHECK-INST: sub     za.s[w10, 1, vgx2], { z0.s, z1.s }, { z26.s, z27.s }
409// CHECK-ENCODING: [0x19,0x58,0xba,0xc1]
410// CHECK-ERROR: instruction requires: sme2
411// CHECK-UNKNOWN: c1ba5819 <unknown>
412
413sub     za.s[w8, 5, vgx2], {z22.s, z23.s}, {z30.s, z31.s}  // 11000001-10111110-00011010-11011101
414// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }, { z30.s, z31.s }
415// CHECK-ENCODING: [0xdd,0x1a,0xbe,0xc1]
416// CHECK-ERROR: instruction requires: sme2
417// CHECK-UNKNOWN: c1be1add <unknown>
418
419sub     za.s[w8, 5], {z22.s - z23.s}, {z30.s - z31.s}  // 11000001-10111110-00011010-11011101
420// CHECK-INST: sub     za.s[w8, 5, vgx2], { z22.s, z23.s }, { z30.s, z31.s }
421// CHECK-ENCODING: [0xdd,0x1a,0xbe,0xc1]
422// CHECK-ERROR: instruction requires: sme2
423// CHECK-UNKNOWN: c1be1add <unknown>
424
425sub     za.s[w11, 2, vgx2], {z8.s, z9.s}, {z0.s, z1.s}  // 11000001-10100000-01111001-00011010
426// CHECK-INST: sub     za.s[w11, 2, vgx2], { z8.s, z9.s }, { z0.s, z1.s }
427// CHECK-ENCODING: [0x1a,0x79,0xa0,0xc1]
428// CHECK-ERROR: instruction requires: sme2
429// CHECK-UNKNOWN: c1a0791a <unknown>
430
431sub     za.s[w11, 2], {z8.s - z9.s}, {z0.s - z1.s}  // 11000001-10100000-01111001-00011010
432// CHECK-INST: sub     za.s[w11, 2, vgx2], { z8.s, z9.s }, { z0.s, z1.s }
433// CHECK-ENCODING: [0x1a,0x79,0xa0,0xc1]
434// CHECK-ERROR: instruction requires: sme2
435// CHECK-UNKNOWN: c1a0791a <unknown>
436
437sub     za.s[w9, 7, vgx2], {z12.s, z13.s}, {z10.s, z11.s}  // 11000001-10101010-00111001-10011111
438// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }, { z10.s, z11.s }
439// CHECK-ENCODING: [0x9f,0x39,0xaa,0xc1]
440// CHECK-ERROR: instruction requires: sme2
441// CHECK-UNKNOWN: c1aa399f <unknown>
442
443sub     za.s[w9, 7], {z12.s - z13.s}, {z10.s - z11.s}  // 11000001-10101010-00111001-10011111
444// CHECK-INST: sub     za.s[w9, 7, vgx2], { z12.s, z13.s }, { z10.s, z11.s }
445// CHECK-ENCODING: [0x9f,0x39,0xaa,0xc1]
446// CHECK-ERROR: instruction requires: sme2
447// CHECK-UNKNOWN: c1aa399f <unknown>
448
449
450sub     za.d[w8, 0, vgx2], {z0.d, z1.d}  // 11000001-11100000-00011100-00011000
451// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }
452// CHECK-ENCODING: [0x18,0x1c,0xe0,0xc1]
453// CHECK-ERROR: instruction requires: sme2
454// CHECK-UNKNOWN: c1e01c18 <unknown>
455
456sub     za.d[w8, 0], {z0.d, z1.d}  // 11000001-11100000-00011100-00011000
457// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }
458// CHECK-ENCODING: [0x18,0x1c,0xe0,0xc1]
459// CHECK-ERROR: instruction requires: sme2
460// CHECK-UNKNOWN: c1e01c18 <unknown>
461
462sub     za.d[w10, 5, vgx2], {z10.d, z11.d}  // 11000001-11100000-01011101-01011101
463// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }
464// CHECK-ENCODING: [0x5d,0x5d,0xe0,0xc1]
465// CHECK-ERROR: instruction requires: sme2
466// CHECK-UNKNOWN: c1e05d5d <unknown>
467
468sub     za.d[w10, 5], {z10.d, z11.d}  // 11000001-11100000-01011101-01011101
469// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }
470// CHECK-ENCODING: [0x5d,0x5d,0xe0,0xc1]
471// CHECK-ERROR: instruction requires: sme2
472// CHECK-UNKNOWN: c1e05d5d <unknown>
473
474sub     za.d[w11, 7, vgx2], {z12.d, z13.d}  // 11000001-11100000-01111101-10011111
475// CHECK-INST: sub     za.d[w11, 7, vgx2], { z12.d, z13.d }
476// CHECK-ENCODING: [0x9f,0x7d,0xe0,0xc1]
477// CHECK-ERROR: instruction requires: sme2
478// CHECK-UNKNOWN: c1e07d9f <unknown>
479
480sub     za.d[w11, 7], {z12.d, z13.d}  // 11000001-11100000-01111101-10011111
481// CHECK-INST: sub     za.d[w11, 7, vgx2], { z12.d, z13.d }
482// CHECK-ENCODING: [0x9f,0x7d,0xe0,0xc1]
483// CHECK-ERROR: instruction requires: sme2
484// CHECK-UNKNOWN: c1e07d9f <unknown>
485
486sub     za.d[w11, 7, vgx2], {z30.d, z31.d}  // 11000001-11100000-01111111-11011111
487// CHECK-INST: sub     za.d[w11, 7, vgx2], { z30.d, z31.d }
488// CHECK-ENCODING: [0xdf,0x7f,0xe0,0xc1]
489// CHECK-ERROR: instruction requires: sme2
490// CHECK-UNKNOWN: c1e07fdf <unknown>
491
492sub     za.d[w11, 7], {z30.d, z31.d}  // 11000001-11100000-01111111-11011111
493// CHECK-INST: sub     za.d[w11, 7, vgx2], { z30.d, z31.d }
494// CHECK-ENCODING: [0xdf,0x7f,0xe0,0xc1]
495// CHECK-ERROR: instruction requires: sme2
496// CHECK-UNKNOWN: c1e07fdf <unknown>
497
498sub     za.d[w8, 5, vgx2], {z16.d, z17.d}  // 11000001-11100000-00011110-00011101
499// CHECK-INST: sub     za.d[w8, 5, vgx2], { z16.d, z17.d }
500// CHECK-ENCODING: [0x1d,0x1e,0xe0,0xc1]
501// CHECK-ERROR: instruction requires: sme2
502// CHECK-UNKNOWN: c1e01e1d <unknown>
503
504sub     za.d[w8, 5], {z16.d, z17.d}  // 11000001-11100000-00011110-00011101
505// CHECK-INST: sub     za.d[w8, 5, vgx2], { z16.d, z17.d }
506// CHECK-ENCODING: [0x1d,0x1e,0xe0,0xc1]
507// CHECK-ERROR: instruction requires: sme2
508// CHECK-UNKNOWN: c1e01e1d <unknown>
509
510sub     za.d[w8, 1, vgx2], {z0.d, z1.d}  // 11000001-11100000-00011100-00011001
511// CHECK-INST: sub     za.d[w8, 1, vgx2], { z0.d, z1.d }
512// CHECK-ENCODING: [0x19,0x1c,0xe0,0xc1]
513// CHECK-ERROR: instruction requires: sme2
514// CHECK-UNKNOWN: c1e01c19 <unknown>
515
516sub     za.d[w8, 1], {z0.d, z1.d}  // 11000001-11100000-00011100-00011001
517// CHECK-INST: sub     za.d[w8, 1, vgx2], { z0.d, z1.d }
518// CHECK-ENCODING: [0x19,0x1c,0xe0,0xc1]
519// CHECK-ERROR: instruction requires: sme2
520// CHECK-UNKNOWN: c1e01c19 <unknown>
521
522sub     za.d[w10, 0, vgx2], {z18.d, z19.d}  // 11000001-11100000-01011110-01011000
523// CHECK-INST: sub     za.d[w10, 0, vgx2], { z18.d, z19.d }
524// CHECK-ENCODING: [0x58,0x5e,0xe0,0xc1]
525// CHECK-ERROR: instruction requires: sme2
526// CHECK-UNKNOWN: c1e05e58 <unknown>
527
528sub     za.d[w10, 0], {z18.d, z19.d}  // 11000001-11100000-01011110-01011000
529// CHECK-INST: sub     za.d[w10, 0, vgx2], { z18.d, z19.d }
530// CHECK-ENCODING: [0x58,0x5e,0xe0,0xc1]
531// CHECK-ERROR: instruction requires: sme2
532// CHECK-UNKNOWN: c1e05e58 <unknown>
533
534sub     za.d[w8, 0, vgx2], {z12.d, z13.d}  // 11000001-11100000-00011101-10011000
535// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }
536// CHECK-ENCODING: [0x98,0x1d,0xe0,0xc1]
537// CHECK-ERROR: instruction requires: sme2
538// CHECK-UNKNOWN: c1e01d98 <unknown>
539
540sub     za.d[w8, 0], {z12.d, z13.d}  // 11000001-11100000-00011101-10011000
541// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }
542// CHECK-ENCODING: [0x98,0x1d,0xe0,0xc1]
543// CHECK-ERROR: instruction requires: sme2
544// CHECK-UNKNOWN: c1e01d98 <unknown>
545
546sub     za.d[w10, 1, vgx2], {z0.d, z1.d}  // 11000001-11100000-01011100-00011001
547// CHECK-INST: sub     za.d[w10, 1, vgx2], { z0.d, z1.d }
548// CHECK-ENCODING: [0x19,0x5c,0xe0,0xc1]
549// CHECK-ERROR: instruction requires: sme2
550// CHECK-UNKNOWN: c1e05c19 <unknown>
551
552sub     za.d[w10, 1], {z0.d, z1.d}  // 11000001-11100000-01011100-00011001
553// CHECK-INST: sub     za.d[w10, 1, vgx2], { z0.d, z1.d }
554// CHECK-ENCODING: [0x19,0x5c,0xe0,0xc1]
555// CHECK-ERROR: instruction requires: sme2
556// CHECK-UNKNOWN: c1e05c19 <unknown>
557
558sub     za.d[w8, 5, vgx2], {z22.d, z23.d}  // 11000001-11100000-00011110-11011101
559// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }
560// CHECK-ENCODING: [0xdd,0x1e,0xe0,0xc1]
561// CHECK-ERROR: instruction requires: sme2
562// CHECK-UNKNOWN: c1e01edd <unknown>
563
564sub     za.d[w8, 5], {z22.d, z23.d}  // 11000001-11100000-00011110-11011101
565// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }
566// CHECK-ENCODING: [0xdd,0x1e,0xe0,0xc1]
567// CHECK-ERROR: instruction requires: sme2
568// CHECK-UNKNOWN: c1e01edd <unknown>
569
570sub     za.d[w11, 2, vgx2], {z8.d, z9.d}  // 11000001-11100000-01111101-00011010
571// CHECK-INST: sub     za.d[w11, 2, vgx2], { z8.d, z9.d }
572// CHECK-ENCODING: [0x1a,0x7d,0xe0,0xc1]
573// CHECK-ERROR: instruction requires: sme2
574// CHECK-UNKNOWN: c1e07d1a <unknown>
575
576sub     za.d[w11, 2], {z8.d, z9.d}  // 11000001-11100000-01111101-00011010
577// CHECK-INST: sub     za.d[w11, 2, vgx2], { z8.d, z9.d }
578// CHECK-ENCODING: [0x1a,0x7d,0xe0,0xc1]
579// CHECK-ERROR: instruction requires: sme2
580// CHECK-UNKNOWN: c1e07d1a <unknown>
581
582sub     za.d[w9, 7, vgx2], {z12.d, z13.d}  // 11000001-11100000-00111101-10011111
583// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }
584// CHECK-ENCODING: [0x9f,0x3d,0xe0,0xc1]
585// CHECK-ERROR: instruction requires: sme2
586// CHECK-UNKNOWN: c1e03d9f <unknown>
587
588sub     za.d[w9, 7], {z12.d, z13.d}  // 11000001-11100000-00111101-10011111
589// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }
590// CHECK-ENCODING: [0x9f,0x3d,0xe0,0xc1]
591// CHECK-ERROR: instruction requires: sme2
592// CHECK-UNKNOWN: c1e03d9f <unknown>
593
594sub     za.d[w8, 0, vgx2], {z0.d, z1.d}, z0.d  // 11000001-01100000-00011000-00011000
595// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }, z0.d
596// CHECK-ENCODING: [0x18,0x18,0x60,0xc1]
597// CHECK-ERROR: instruction requires: sme2
598// CHECK-UNKNOWN: c1601818 <unknown>
599
600sub     za.d[w8, 0], {z0.d - z1.d}, z0.d  // 11000001-01100000-00011000-00011000
601// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }, z0.d
602// CHECK-ENCODING: [0x18,0x18,0x60,0xc1]
603// CHECK-ERROR: instruction requires: sme2
604// CHECK-UNKNOWN: c1601818 <unknown>
605
606sub     za.d[w10, 5, vgx2], {z10.d, z11.d}, z5.d  // 11000001-01100101-01011001-01011101
607// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }, z5.d
608// CHECK-ENCODING: [0x5d,0x59,0x65,0xc1]
609// CHECK-ERROR: instruction requires: sme2
610// CHECK-UNKNOWN: c165595d <unknown>
611
612sub     za.d[w10, 5], {z10.d - z11.d}, z5.d  // 11000001-01100101-01011001-01011101
613// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }, z5.d
614// CHECK-ENCODING: [0x5d,0x59,0x65,0xc1]
615// CHECK-ERROR: instruction requires: sme2
616// CHECK-UNKNOWN: c165595d <unknown>
617
618sub     za.d[w11, 7, vgx2], {z13.d, z14.d}, z8.d  // 11000001-01101000-01111001-10111111
619// CHECK-INST: sub     za.d[w11, 7, vgx2], { z13.d, z14.d }, z8.d
620// CHECK-ENCODING: [0xbf,0x79,0x68,0xc1]
621// CHECK-ERROR: instruction requires: sme2
622// CHECK-UNKNOWN: c16879bf <unknown>
623
624sub     za.d[w11, 7], {z13.d - z14.d}, z8.d  // 11000001-01101000-01111001-10111111
625// CHECK-INST: sub     za.d[w11, 7, vgx2], { z13.d, z14.d }, z8.d
626// CHECK-ENCODING: [0xbf,0x79,0x68,0xc1]
627// CHECK-ERROR: instruction requires: sme2
628// CHECK-UNKNOWN: c16879bf <unknown>
629
630sub     za.d[w11, 7, vgx2], {z31.d, z0.d}, z15.d  // 11000001-01101111-01111011-11111111
631// CHECK-INST: sub     za.d[w11, 7, vgx2], { z31.d, z0.d }, z15.d
632// CHECK-ENCODING: [0xff,0x7b,0x6f,0xc1]
633// CHECK-ERROR: instruction requires: sme2
634// CHECK-UNKNOWN: c16f7bff <unknown>
635
636sub     za.d[w11, 7], {z31.d - z0.d}, z15.d  // 11000001-01101111-01111011-11111111
637// CHECK-INST: sub     za.d[w11, 7, vgx2], { z31.d, z0.d }, z15.d
638// CHECK-ENCODING: [0xff,0x7b,0x6f,0xc1]
639// CHECK-ERROR: instruction requires: sme2
640// CHECK-UNKNOWN: c16f7bff <unknown>
641
642sub     za.d[w8, 5, vgx2], {z17.d, z18.d}, z0.d  // 11000001-01100000-00011010-00111101
643// CHECK-INST: sub     za.d[w8, 5, vgx2], { z17.d, z18.d }, z0.d
644// CHECK-ENCODING: [0x3d,0x1a,0x60,0xc1]
645// CHECK-ERROR: instruction requires: sme2
646// CHECK-UNKNOWN: c1601a3d <unknown>
647
648sub     za.d[w8, 5], {z17.d - z18.d}, z0.d  // 11000001-01100000-00011010-00111101
649// CHECK-INST: sub     za.d[w8, 5, vgx2], { z17.d, z18.d }, z0.d
650// CHECK-ENCODING: [0x3d,0x1a,0x60,0xc1]
651// CHECK-ERROR: instruction requires: sme2
652// CHECK-UNKNOWN: c1601a3d <unknown>
653
654sub     za.d[w8, 1, vgx2], {z1.d, z2.d}, z14.d  // 11000001-01101110-00011000-00111001
655// CHECK-INST: sub     za.d[w8, 1, vgx2], { z1.d, z2.d }, z14.d
656// CHECK-ENCODING: [0x39,0x18,0x6e,0xc1]
657// CHECK-ERROR: instruction requires: sme2
658// CHECK-UNKNOWN: c16e1839 <unknown>
659
660sub     za.d[w8, 1], {z1.d - z2.d}, z14.d  // 11000001-01101110-00011000-00111001
661// CHECK-INST: sub     za.d[w8, 1, vgx2], { z1.d, z2.d }, z14.d
662// CHECK-ENCODING: [0x39,0x18,0x6e,0xc1]
663// CHECK-ERROR: instruction requires: sme2
664// CHECK-UNKNOWN: c16e1839 <unknown>
665
666sub     za.d[w10, 0, vgx2], {z19.d, z20.d}, z4.d  // 11000001-01100100-01011010-01111000
667// CHECK-INST: sub     za.d[w10, 0, vgx2], { z19.d, z20.d }, z4.d
668// CHECK-ENCODING: [0x78,0x5a,0x64,0xc1]
669// CHECK-ERROR: instruction requires: sme2
670// CHECK-UNKNOWN: c1645a78 <unknown>
671
672sub     za.d[w10, 0], {z19.d - z20.d}, z4.d  // 11000001-01100100-01011010-01111000
673// CHECK-INST: sub     za.d[w10, 0, vgx2], { z19.d, z20.d }, z4.d
674// CHECK-ENCODING: [0x78,0x5a,0x64,0xc1]
675// CHECK-ERROR: instruction requires: sme2
676// CHECK-UNKNOWN: c1645a78 <unknown>
677
678sub     za.d[w8, 0, vgx2], {z12.d, z13.d}, z2.d  // 11000001-01100010-00011001-10011000
679// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }, z2.d
680// CHECK-ENCODING: [0x98,0x19,0x62,0xc1]
681// CHECK-ERROR: instruction requires: sme2
682// CHECK-UNKNOWN: c1621998 <unknown>
683
684sub     za.d[w8, 0], {z12.d - z13.d}, z2.d  // 11000001-01100010-00011001-10011000
685// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }, z2.d
686// CHECK-ENCODING: [0x98,0x19,0x62,0xc1]
687// CHECK-ERROR: instruction requires: sme2
688// CHECK-UNKNOWN: c1621998 <unknown>
689
690sub     za.d[w10, 1, vgx2], {z1.d, z2.d}, z10.d  // 11000001-01101010-01011000-00111001
691// CHECK-INST: sub     za.d[w10, 1, vgx2], { z1.d, z2.d }, z10.d
692// CHECK-ENCODING: [0x39,0x58,0x6a,0xc1]
693// CHECK-ERROR: instruction requires: sme2
694// CHECK-UNKNOWN: c16a5839 <unknown>
695
696sub     za.d[w10, 1], {z1.d - z2.d}, z10.d  // 11000001-01101010-01011000-00111001
697// CHECK-INST: sub     za.d[w10, 1, vgx2], { z1.d, z2.d }, z10.d
698// CHECK-ENCODING: [0x39,0x58,0x6a,0xc1]
699// CHECK-ERROR: instruction requires: sme2
700// CHECK-UNKNOWN: c16a5839 <unknown>
701
702sub     za.d[w8, 5, vgx2], {z22.d, z23.d}, z14.d  // 11000001-01101110-00011010-11011101
703// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }, z14.d
704// CHECK-ENCODING: [0xdd,0x1a,0x6e,0xc1]
705// CHECK-ERROR: instruction requires: sme2
706// CHECK-UNKNOWN: c16e1add <unknown>
707
708sub     za.d[w8, 5], {z22.d - z23.d}, z14.d  // 11000001-01101110-00011010-11011101
709// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }, z14.d
710// CHECK-ENCODING: [0xdd,0x1a,0x6e,0xc1]
711// CHECK-ERROR: instruction requires: sme2
712// CHECK-UNKNOWN: c16e1add <unknown>
713
714sub     za.d[w11, 2, vgx2], {z9.d, z10.d}, z1.d  // 11000001-01100001-01111001-00111010
715// CHECK-INST: sub     za.d[w11, 2, vgx2], { z9.d, z10.d }, z1.d
716// CHECK-ENCODING: [0x3a,0x79,0x61,0xc1]
717// CHECK-ERROR: instruction requires: sme2
718// CHECK-UNKNOWN: c161793a <unknown>
719
720sub     za.d[w11, 2], {z9.d - z10.d}, z1.d  // 11000001-01100001-01111001-00111010
721// CHECK-INST: sub     za.d[w11, 2, vgx2], { z9.d, z10.d }, z1.d
722// CHECK-ENCODING: [0x3a,0x79,0x61,0xc1]
723// CHECK-ERROR: instruction requires: sme2
724// CHECK-UNKNOWN: c161793a <unknown>
725
726sub     za.d[w9, 7, vgx2], {z12.d, z13.d}, z11.d  // 11000001-01101011-00111001-10011111
727// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }, z11.d
728// CHECK-ENCODING: [0x9f,0x39,0x6b,0xc1]
729// CHECK-ERROR: instruction requires: sme2
730// CHECK-UNKNOWN: c16b399f <unknown>
731
732sub     za.d[w9, 7], {z12.d - z13.d}, z11.d  // 11000001-01101011-00111001-10011111
733// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }, z11.d
734// CHECK-ENCODING: [0x9f,0x39,0x6b,0xc1]
735// CHECK-ERROR: instruction requires: sme2
736// CHECK-UNKNOWN: c16b399f <unknown>
737
738
739sub     za.d[w8, 0, vgx2], {z0.d, z1.d}, {z0.d, z1.d}  // 11000001-11100000-00011000-00011000
740// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }, { z0.d, z1.d }
741// CHECK-ENCODING: [0x18,0x18,0xe0,0xc1]
742// CHECK-ERROR: instruction requires: sme2
743// CHECK-UNKNOWN: c1e01818 <unknown>
744
745sub     za.d[w8, 0], {z0.d - z1.d}, {z0.d - z1.d}  // 11000001-11100000-00011000-00011000
746// CHECK-INST: sub     za.d[w8, 0, vgx2], { z0.d, z1.d }, { z0.d, z1.d }
747// CHECK-ENCODING: [0x18,0x18,0xe0,0xc1]
748// CHECK-ERROR: instruction requires: sme2
749// CHECK-UNKNOWN: c1e01818 <unknown>
750
751sub     za.d[w10, 5, vgx2], {z10.d, z11.d}, {z20.d, z21.d}  // 11000001-11110100-01011001-01011101
752// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }, { z20.d, z21.d }
753// CHECK-ENCODING: [0x5d,0x59,0xf4,0xc1]
754// CHECK-ERROR: instruction requires: sme2
755// CHECK-UNKNOWN: c1f4595d <unknown>
756
757sub     za.d[w10, 5], {z10.d - z11.d}, {z20.d - z21.d}  // 11000001-11110100-01011001-01011101
758// CHECK-INST: sub     za.d[w10, 5, vgx2], { z10.d, z11.d }, { z20.d, z21.d }
759// CHECK-ENCODING: [0x5d,0x59,0xf4,0xc1]
760// CHECK-ERROR: instruction requires: sme2
761// CHECK-UNKNOWN: c1f4595d <unknown>
762
763sub     za.d[w11, 7, vgx2], {z12.d, z13.d}, {z8.d, z9.d}  // 11000001-11101000-01111001-10011111
764// CHECK-INST: sub     za.d[w11, 7, vgx2], { z12.d, z13.d }, { z8.d, z9.d }
765// CHECK-ENCODING: [0x9f,0x79,0xe8,0xc1]
766// CHECK-ERROR: instruction requires: sme2
767// CHECK-UNKNOWN: c1e8799f <unknown>
768
769sub     za.d[w11, 7], {z12.d - z13.d}, {z8.d - z9.d}  // 11000001-11101000-01111001-10011111
770// CHECK-INST: sub     za.d[w11, 7, vgx2], { z12.d, z13.d }, { z8.d, z9.d }
771// CHECK-ENCODING: [0x9f,0x79,0xe8,0xc1]
772// CHECK-ERROR: instruction requires: sme2
773// CHECK-UNKNOWN: c1e8799f <unknown>
774
775sub     za.d[w11, 7, vgx2], {z30.d, z31.d}, {z30.d, z31.d}  // 11000001-11111110-01111011-11011111
776// CHECK-INST: sub     za.d[w11, 7, vgx2], { z30.d, z31.d }, { z30.d, z31.d }
777// CHECK-ENCODING: [0xdf,0x7b,0xfe,0xc1]
778// CHECK-ERROR: instruction requires: sme2
779// CHECK-UNKNOWN: c1fe7bdf <unknown>
780
781sub     za.d[w11, 7], {z30.d - z31.d}, {z30.d - z31.d}  // 11000001-11111110-01111011-11011111
782// CHECK-INST: sub     za.d[w11, 7, vgx2], { z30.d, z31.d }, { z30.d, z31.d }
783// CHECK-ENCODING: [0xdf,0x7b,0xfe,0xc1]
784// CHECK-ERROR: instruction requires: sme2
785// CHECK-UNKNOWN: c1fe7bdf <unknown>
786
787sub     za.d[w8, 5, vgx2], {z16.d, z17.d}, {z16.d, z17.d}  // 11000001-11110000-00011010-00011101
788// CHECK-INST: sub     za.d[w8, 5, vgx2], { z16.d, z17.d }, { z16.d, z17.d }
789// CHECK-ENCODING: [0x1d,0x1a,0xf0,0xc1]
790// CHECK-ERROR: instruction requires: sme2
791// CHECK-UNKNOWN: c1f01a1d <unknown>
792
793sub     za.d[w8, 5], {z16.d - z17.d}, {z16.d - z17.d}  // 11000001-11110000-00011010-00011101
794// CHECK-INST: sub     za.d[w8, 5, vgx2], { z16.d, z17.d }, { z16.d, z17.d }
795// CHECK-ENCODING: [0x1d,0x1a,0xf0,0xc1]
796// CHECK-ERROR: instruction requires: sme2
797// CHECK-UNKNOWN: c1f01a1d <unknown>
798
799sub     za.d[w8, 1, vgx2], {z0.d, z1.d}, {z30.d, z31.d}  // 11000001-11111110-00011000-00011001
800// CHECK-INST: sub     za.d[w8, 1, vgx2], { z0.d, z1.d }, { z30.d, z31.d }
801// CHECK-ENCODING: [0x19,0x18,0xfe,0xc1]
802// CHECK-ERROR: instruction requires: sme2
803// CHECK-UNKNOWN: c1fe1819 <unknown>
804
805sub     za.d[w8, 1], {z0.d - z1.d}, {z30.d - z31.d}  // 11000001-11111110-00011000-00011001
806// CHECK-INST: sub     za.d[w8, 1, vgx2], { z0.d, z1.d }, { z30.d, z31.d }
807// CHECK-ENCODING: [0x19,0x18,0xfe,0xc1]
808// CHECK-ERROR: instruction requires: sme2
809// CHECK-UNKNOWN: c1fe1819 <unknown>
810
811sub     za.d[w10, 0, vgx2], {z18.d, z19.d}, {z20.d, z21.d}  // 11000001-11110100-01011010-01011000
812// CHECK-INST: sub     za.d[w10, 0, vgx2], { z18.d, z19.d }, { z20.d, z21.d }
813// CHECK-ENCODING: [0x58,0x5a,0xf4,0xc1]
814// CHECK-ERROR: instruction requires: sme2
815// CHECK-UNKNOWN: c1f45a58 <unknown>
816
817sub     za.d[w10, 0], {z18.d - z19.d}, {z20.d - z21.d}  // 11000001-11110100-01011010-01011000
818// CHECK-INST: sub     za.d[w10, 0, vgx2], { z18.d, z19.d }, { z20.d, z21.d }
819// CHECK-ENCODING: [0x58,0x5a,0xf4,0xc1]
820// CHECK-ERROR: instruction requires: sme2
821// CHECK-UNKNOWN: c1f45a58 <unknown>
822
823sub     za.d[w8, 0, vgx2], {z12.d, z13.d}, {z2.d, z3.d}  // 11000001-11100010-00011001-10011000
824// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }, { z2.d, z3.d }
825// CHECK-ENCODING: [0x98,0x19,0xe2,0xc1]
826// CHECK-ERROR: instruction requires: sme2
827// CHECK-UNKNOWN: c1e21998 <unknown>
828
829sub     za.d[w8, 0], {z12.d - z13.d}, {z2.d - z3.d}  // 11000001-11100010-00011001-10011000
830// CHECK-INST: sub     za.d[w8, 0, vgx2], { z12.d, z13.d }, { z2.d, z3.d }
831// CHECK-ENCODING: [0x98,0x19,0xe2,0xc1]
832// CHECK-ERROR: instruction requires: sme2
833// CHECK-UNKNOWN: c1e21998 <unknown>
834
835sub     za.d[w10, 1, vgx2], {z0.d, z1.d}, {z26.d, z27.d}  // 11000001-11111010-01011000-00011001
836// CHECK-INST: sub     za.d[w10, 1, vgx2], { z0.d, z1.d }, { z26.d, z27.d }
837// CHECK-ENCODING: [0x19,0x58,0xfa,0xc1]
838// CHECK-ERROR: instruction requires: sme2
839// CHECK-UNKNOWN: c1fa5819 <unknown>
840
841sub     za.d[w10, 1], {z0.d - z1.d}, {z26.d - z27.d}  // 11000001-11111010-01011000-00011001
842// CHECK-INST: sub     za.d[w10, 1, vgx2], { z0.d, z1.d }, { z26.d, z27.d }
843// CHECK-ENCODING: [0x19,0x58,0xfa,0xc1]
844// CHECK-ERROR: instruction requires: sme2
845// CHECK-UNKNOWN: c1fa5819 <unknown>
846
847sub     za.d[w8, 5, vgx2], {z22.d, z23.d}, {z30.d, z31.d}  // 11000001-11111110-00011010-11011101
848// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }, { z30.d, z31.d }
849// CHECK-ENCODING: [0xdd,0x1a,0xfe,0xc1]
850// CHECK-ERROR: instruction requires: sme2
851// CHECK-UNKNOWN: c1fe1add <unknown>
852
853sub     za.d[w8, 5], {z22.d - z23.d}, {z30.d - z31.d}  // 11000001-11111110-00011010-11011101
854// CHECK-INST: sub     za.d[w8, 5, vgx2], { z22.d, z23.d }, { z30.d, z31.d }
855// CHECK-ENCODING: [0xdd,0x1a,0xfe,0xc1]
856// CHECK-ERROR: instruction requires: sme2
857// CHECK-UNKNOWN: c1fe1add <unknown>
858
859sub     za.d[w11, 2, vgx2], {z8.d, z9.d}, {z0.d, z1.d}  // 11000001-11100000-01111001-00011010
860// CHECK-INST: sub     za.d[w11, 2, vgx2], { z8.d, z9.d }, { z0.d, z1.d }
861// CHECK-ENCODING: [0x1a,0x79,0xe0,0xc1]
862// CHECK-ERROR: instruction requires: sme2
863// CHECK-UNKNOWN: c1e0791a <unknown>
864
865sub     za.d[w11, 2], {z8.d - z9.d}, {z0.d - z1.d}  // 11000001-11100000-01111001-00011010
866// CHECK-INST: sub     za.d[w11, 2, vgx2], { z8.d, z9.d }, { z0.d, z1.d }
867// CHECK-ENCODING: [0x1a,0x79,0xe0,0xc1]
868// CHECK-ERROR: instruction requires: sme2
869// CHECK-UNKNOWN: c1e0791a <unknown>
870
871sub     za.d[w9, 7, vgx2], {z12.d, z13.d}, {z10.d, z11.d}  // 11000001-11101010-00111001-10011111
872// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }, { z10.d, z11.d }
873// CHECK-ENCODING: [0x9f,0x39,0xea,0xc1]
874// CHECK-ERROR: instruction requires: sme2
875// CHECK-UNKNOWN: c1ea399f <unknown>
876
877sub     za.d[w9, 7], {z12.d - z13.d}, {z10.d - z11.d}  // 11000001-11101010-00111001-10011111
878// CHECK-INST: sub     za.d[w9, 7, vgx2], { z12.d, z13.d }, { z10.d, z11.d }
879// CHECK-ENCODING: [0x9f,0x39,0xea,0xc1]
880// CHECK-ERROR: instruction requires: sme2
881// CHECK-UNKNOWN: c1ea399f <unknown>
882
883
884sub     za.s[w8, 0, vgx4], {z0.s - z3.s}  // 11000001-10100001-00011100-00011000
885// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }
886// CHECK-ENCODING: [0x18,0x1c,0xa1,0xc1]
887// CHECK-ERROR: instruction requires: sme2
888// CHECK-UNKNOWN: c1a11c18 <unknown>
889
890sub     za.s[w8, 0], {z0.s - z3.s}  // 11000001-10100001-00011100-00011000
891// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }
892// CHECK-ENCODING: [0x18,0x1c,0xa1,0xc1]
893// CHECK-ERROR: instruction requires: sme2
894// CHECK-UNKNOWN: c1a11c18 <unknown>
895
896sub     za.s[w10, 5, vgx4], {z8.s - z11.s}  // 11000001-10100001-01011101-00011101
897// CHECK-INST: sub     za.s[w10, 5, vgx4], { z8.s - z11.s }
898// CHECK-ENCODING: [0x1d,0x5d,0xa1,0xc1]
899// CHECK-ERROR: instruction requires: sme2
900// CHECK-UNKNOWN: c1a15d1d <unknown>
901
902sub     za.s[w10, 5], {z8.s - z11.s}  // 11000001-10100001-01011101-00011101
903// CHECK-INST: sub     za.s[w10, 5, vgx4], { z8.s - z11.s }
904// CHECK-ENCODING: [0x1d,0x5d,0xa1,0xc1]
905// CHECK-ERROR: instruction requires: sme2
906// CHECK-UNKNOWN: c1a15d1d <unknown>
907
908sub     za.s[w11, 7, vgx4], {z12.s - z15.s}  // 11000001-10100001-01111101-10011111
909// CHECK-INST: sub     za.s[w11, 7, vgx4], { z12.s - z15.s }
910// CHECK-ENCODING: [0x9f,0x7d,0xa1,0xc1]
911// CHECK-ERROR: instruction requires: sme2
912// CHECK-UNKNOWN: c1a17d9f <unknown>
913
914sub     za.s[w11, 7], {z12.s - z15.s}  // 11000001-10100001-01111101-10011111
915// CHECK-INST: sub     za.s[w11, 7, vgx4], { z12.s - z15.s }
916// CHECK-ENCODING: [0x9f,0x7d,0xa1,0xc1]
917// CHECK-ERROR: instruction requires: sme2
918// CHECK-UNKNOWN: c1a17d9f <unknown>
919
920sub     za.s[w11, 7, vgx4], {z28.s - z31.s}  // 11000001-10100001-01111111-10011111
921// CHECK-INST: sub     za.s[w11, 7, vgx4], { z28.s - z31.s }
922// CHECK-ENCODING: [0x9f,0x7f,0xa1,0xc1]
923// CHECK-ERROR: instruction requires: sme2
924// CHECK-UNKNOWN: c1a17f9f <unknown>
925
926sub     za.s[w11, 7], {z28.s - z31.s}  // 11000001-10100001-01111111-10011111
927// CHECK-INST: sub     za.s[w11, 7, vgx4], { z28.s - z31.s }
928// CHECK-ENCODING: [0x9f,0x7f,0xa1,0xc1]
929// CHECK-ERROR: instruction requires: sme2
930// CHECK-UNKNOWN: c1a17f9f <unknown>
931
932sub     za.s[w8, 5, vgx4], {z16.s - z19.s}  // 11000001-10100001-00011110-00011101
933// CHECK-INST: sub     za.s[w8, 5, vgx4], { z16.s - z19.s }
934// CHECK-ENCODING: [0x1d,0x1e,0xa1,0xc1]
935// CHECK-ERROR: instruction requires: sme2
936// CHECK-UNKNOWN: c1a11e1d <unknown>
937
938sub     za.s[w8, 5], {z16.s - z19.s}  // 11000001-10100001-00011110-00011101
939// CHECK-INST: sub     za.s[w8, 5, vgx4], { z16.s - z19.s }
940// CHECK-ENCODING: [0x1d,0x1e,0xa1,0xc1]
941// CHECK-ERROR: instruction requires: sme2
942// CHECK-UNKNOWN: c1a11e1d <unknown>
943
944sub     za.s[w8, 1, vgx4], {z0.s - z3.s}  // 11000001-10100001-00011100-00011001
945// CHECK-INST: sub     za.s[w8, 1, vgx4], { z0.s - z3.s }
946// CHECK-ENCODING: [0x19,0x1c,0xa1,0xc1]
947// CHECK-ERROR: instruction requires: sme2
948// CHECK-UNKNOWN: c1a11c19 <unknown>
949
950sub     za.s[w8, 1], {z0.s - z3.s}  // 11000001-10100001-00011100-00011001
951// CHECK-INST: sub     za.s[w8, 1, vgx4], { z0.s - z3.s }
952// CHECK-ENCODING: [0x19,0x1c,0xa1,0xc1]
953// CHECK-ERROR: instruction requires: sme2
954// CHECK-UNKNOWN: c1a11c19 <unknown>
955
956sub     za.s[w10, 0, vgx4], {z16.s - z19.s}  // 11000001-10100001-01011110-00011000
957// CHECK-INST: sub     za.s[w10, 0, vgx4], { z16.s - z19.s }
958// CHECK-ENCODING: [0x18,0x5e,0xa1,0xc1]
959// CHECK-ERROR: instruction requires: sme2
960// CHECK-UNKNOWN: c1a15e18 <unknown>
961
962sub     za.s[w10, 0], {z16.s - z19.s}  // 11000001-10100001-01011110-00011000
963// CHECK-INST: sub     za.s[w10, 0, vgx4], { z16.s - z19.s }
964// CHECK-ENCODING: [0x18,0x5e,0xa1,0xc1]
965// CHECK-ERROR: instruction requires: sme2
966// CHECK-UNKNOWN: c1a15e18 <unknown>
967
968sub     za.s[w8, 0, vgx4], {z12.s - z15.s}  // 11000001-10100001-00011101-10011000
969// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }
970// CHECK-ENCODING: [0x98,0x1d,0xa1,0xc1]
971// CHECK-ERROR: instruction requires: sme2
972// CHECK-UNKNOWN: c1a11d98 <unknown>
973
974sub     za.s[w8, 0], {z12.s - z15.s}  // 11000001-10100001-00011101-10011000
975// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }
976// CHECK-ENCODING: [0x98,0x1d,0xa1,0xc1]
977// CHECK-ERROR: instruction requires: sme2
978// CHECK-UNKNOWN: c1a11d98 <unknown>
979
980sub     za.s[w10, 1, vgx4], {z0.s - z3.s}  // 11000001-10100001-01011100-00011001
981// CHECK-INST: sub     za.s[w10, 1, vgx4], { z0.s - z3.s }
982// CHECK-ENCODING: [0x19,0x5c,0xa1,0xc1]
983// CHECK-ERROR: instruction requires: sme2
984// CHECK-UNKNOWN: c1a15c19 <unknown>
985
986sub     za.s[w10, 1], {z0.s - z3.s}  // 11000001-10100001-01011100-00011001
987// CHECK-INST: sub     za.s[w10, 1, vgx4], { z0.s - z3.s }
988// CHECK-ENCODING: [0x19,0x5c,0xa1,0xc1]
989// CHECK-ERROR: instruction requires: sme2
990// CHECK-UNKNOWN: c1a15c19 <unknown>
991
992sub     za.s[w8, 5, vgx4], {z20.s - z23.s}  // 11000001-10100001-00011110-10011101
993// CHECK-INST: sub     za.s[w8, 5, vgx4], { z20.s - z23.s }
994// CHECK-ENCODING: [0x9d,0x1e,0xa1,0xc1]
995// CHECK-ERROR: instruction requires: sme2
996// CHECK-UNKNOWN: c1a11e9d <unknown>
997
998sub     za.s[w8, 5], {z20.s - z23.s}  // 11000001-10100001-00011110-10011101
999// CHECK-INST: sub     za.s[w8, 5, vgx4], { z20.s - z23.s }
1000// CHECK-ENCODING: [0x9d,0x1e,0xa1,0xc1]
1001// CHECK-ERROR: instruction requires: sme2
1002// CHECK-UNKNOWN: c1a11e9d <unknown>
1003
1004sub     za.s[w11, 2, vgx4], {z8.s - z11.s}  // 11000001-10100001-01111101-00011010
1005// CHECK-INST: sub     za.s[w11, 2, vgx4], { z8.s - z11.s }
1006// CHECK-ENCODING: [0x1a,0x7d,0xa1,0xc1]
1007// CHECK-ERROR: instruction requires: sme2
1008// CHECK-UNKNOWN: c1a17d1a <unknown>
1009
1010sub     za.s[w11, 2], {z8.s - z11.s}  // 11000001-10100001-01111101-00011010
1011// CHECK-INST: sub     za.s[w11, 2, vgx4], { z8.s - z11.s }
1012// CHECK-ENCODING: [0x1a,0x7d,0xa1,0xc1]
1013// CHECK-ERROR: instruction requires: sme2
1014// CHECK-UNKNOWN: c1a17d1a <unknown>
1015
1016sub     za.s[w9, 7, vgx4], {z12.s - z15.s}  // 11000001-10100001-00111101-10011111
1017// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }
1018// CHECK-ENCODING: [0x9f,0x3d,0xa1,0xc1]
1019// CHECK-ERROR: instruction requires: sme2
1020// CHECK-UNKNOWN: c1a13d9f <unknown>
1021
1022sub     za.s[w9, 7], {z12.s - z15.s}  // 11000001-10100001-00111101-10011111
1023// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }
1024// CHECK-ENCODING: [0x9f,0x3d,0xa1,0xc1]
1025// CHECK-ERROR: instruction requires: sme2
1026// CHECK-UNKNOWN: c1a13d9f <unknown>
1027
1028
1029sub     za.s[w8, 0, vgx4], {z0.s - z3.s}, z0.s  // 11000001-00110000-00011000-00011000
1030// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }, z0.s
1031// CHECK-ENCODING: [0x18,0x18,0x30,0xc1]
1032// CHECK-ERROR: instruction requires: sme2
1033// CHECK-UNKNOWN: c1301818 <unknown>
1034
1035sub     za.s[w8, 0], {z0.s - z3.s}, z0.s  // 11000001-00110000-00011000-00011000
1036// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }, z0.s
1037// CHECK-ENCODING: [0x18,0x18,0x30,0xc1]
1038// CHECK-ERROR: instruction requires: sme2
1039// CHECK-UNKNOWN: c1301818 <unknown>
1040
1041sub     za.s[w10, 5, vgx4], {z10.s - z13.s}, z5.s  // 11000001-00110101-01011001-01011101
1042// CHECK-INST: sub     za.s[w10, 5, vgx4], { z10.s - z13.s }, z5.s
1043// CHECK-ENCODING: [0x5d,0x59,0x35,0xc1]
1044// CHECK-ERROR: instruction requires: sme2
1045// CHECK-UNKNOWN: c135595d <unknown>
1046
1047sub     za.s[w10, 5], {z10.s - z13.s}, z5.s  // 11000001-00110101-01011001-01011101
1048// CHECK-INST: sub     za.s[w10, 5, vgx4], { z10.s - z13.s }, z5.s
1049// CHECK-ENCODING: [0x5d,0x59,0x35,0xc1]
1050// CHECK-ERROR: instruction requires: sme2
1051// CHECK-UNKNOWN: c135595d <unknown>
1052
1053sub     za.s[w11, 7, vgx4], {z13.s - z16.s}, z8.s  // 11000001-00111000-01111001-10111111
1054// CHECK-INST: sub     za.s[w11, 7, vgx4], { z13.s - z16.s }, z8.s
1055// CHECK-ENCODING: [0xbf,0x79,0x38,0xc1]
1056// CHECK-ERROR: instruction requires: sme2
1057// CHECK-UNKNOWN: c13879bf <unknown>
1058
1059sub     za.s[w11, 7], {z13.s - z16.s}, z8.s  // 11000001-00111000-01111001-10111111
1060// CHECK-INST: sub     za.s[w11, 7, vgx4], { z13.s - z16.s }, z8.s
1061// CHECK-ENCODING: [0xbf,0x79,0x38,0xc1]
1062// CHECK-ERROR: instruction requires: sme2
1063// CHECK-UNKNOWN: c13879bf <unknown>
1064
1065sub     za.s[w11, 7, vgx4], {z31.s - z2.s}, z15.s  // 11000001-00111111-01111011-11111111
1066// CHECK-INST: sub     za.s[w11, 7, vgx4], { z31.s, z0.s, z1.s, z2.s }, z15.s
1067// CHECK-ENCODING: [0xff,0x7b,0x3f,0xc1]
1068// CHECK-ERROR: instruction requires: sme2
1069// CHECK-UNKNOWN: c13f7bff <unknown>
1070
1071sub     za.s[w11, 7], {z31.s - z2.s}, z15.s  // 11000001-00111111-01111011-11111111
1072// CHECK-INST: sub     za.s[w11, 7, vgx4], { z31.s, z0.s, z1.s, z2.s }, z15.s
1073// CHECK-ENCODING: [0xff,0x7b,0x3f,0xc1]
1074// CHECK-ERROR: instruction requires: sme2
1075// CHECK-UNKNOWN: c13f7bff <unknown>
1076
1077sub     za.s[w8, 5, vgx4], {z17.s - z20.s}, z0.s  // 11000001-00110000-00011010-00111101
1078// CHECK-INST: sub     za.s[w8, 5, vgx4], { z17.s - z20.s }, z0.s
1079// CHECK-ENCODING: [0x3d,0x1a,0x30,0xc1]
1080// CHECK-ERROR: instruction requires: sme2
1081// CHECK-UNKNOWN: c1301a3d <unknown>
1082
1083sub     za.s[w8, 5], {z17.s - z20.s}, z0.s  // 11000001-00110000-00011010-00111101
1084// CHECK-INST: sub     za.s[w8, 5, vgx4], { z17.s - z20.s }, z0.s
1085// CHECK-ENCODING: [0x3d,0x1a,0x30,0xc1]
1086// CHECK-ERROR: instruction requires: sme2
1087// CHECK-UNKNOWN: c1301a3d <unknown>
1088
1089sub     za.s[w8, 1, vgx4], {z1.s - z4.s}, z14.s  // 11000001-00111110-00011000-00111001
1090// CHECK-INST: sub     za.s[w8, 1, vgx4], { z1.s - z4.s }, z14.s
1091// CHECK-ENCODING: [0x39,0x18,0x3e,0xc1]
1092// CHECK-ERROR: instruction requires: sme2
1093// CHECK-UNKNOWN: c13e1839 <unknown>
1094
1095sub     za.s[w8, 1], {z1.s - z4.s}, z14.s  // 11000001-00111110-00011000-00111001
1096// CHECK-INST: sub     za.s[w8, 1, vgx4], { z1.s - z4.s }, z14.s
1097// CHECK-ENCODING: [0x39,0x18,0x3e,0xc1]
1098// CHECK-ERROR: instruction requires: sme2
1099// CHECK-UNKNOWN: c13e1839 <unknown>
1100
1101sub     za.s[w10, 0, vgx4], {z19.s - z22.s}, z4.s  // 11000001-00110100-01011010-01111000
1102// CHECK-INST: sub     za.s[w10, 0, vgx4], { z19.s - z22.s }, z4.s
1103// CHECK-ENCODING: [0x78,0x5a,0x34,0xc1]
1104// CHECK-ERROR: instruction requires: sme2
1105// CHECK-UNKNOWN: c1345a78 <unknown>
1106
1107sub     za.s[w10, 0], {z19.s - z22.s}, z4.s  // 11000001-00110100-01011010-01111000
1108// CHECK-INST: sub     za.s[w10, 0, vgx4], { z19.s - z22.s }, z4.s
1109// CHECK-ENCODING: [0x78,0x5a,0x34,0xc1]
1110// CHECK-ERROR: instruction requires: sme2
1111// CHECK-UNKNOWN: c1345a78 <unknown>
1112
1113sub     za.s[w8, 0, vgx4], {z12.s - z15.s}, z2.s  // 11000001-00110010-00011001-10011000
1114// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }, z2.s
1115// CHECK-ENCODING: [0x98,0x19,0x32,0xc1]
1116// CHECK-ERROR: instruction requires: sme2
1117// CHECK-UNKNOWN: c1321998 <unknown>
1118
1119sub     za.s[w8, 0], {z12.s - z15.s}, z2.s  // 11000001-00110010-00011001-10011000
1120// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }, z2.s
1121// CHECK-ENCODING: [0x98,0x19,0x32,0xc1]
1122// CHECK-ERROR: instruction requires: sme2
1123// CHECK-UNKNOWN: c1321998 <unknown>
1124
1125sub     za.s[w10, 1, vgx4], {z1.s - z4.s}, z10.s  // 11000001-00111010-01011000-00111001
1126// CHECK-INST: sub     za.s[w10, 1, vgx4], { z1.s - z4.s }, z10.s
1127// CHECK-ENCODING: [0x39,0x58,0x3a,0xc1]
1128// CHECK-ERROR: instruction requires: sme2
1129// CHECK-UNKNOWN: c13a5839 <unknown>
1130
1131sub     za.s[w10, 1], {z1.s - z4.s}, z10.s  // 11000001-00111010-01011000-00111001
1132// CHECK-INST: sub     za.s[w10, 1, vgx4], { z1.s - z4.s }, z10.s
1133// CHECK-ENCODING: [0x39,0x58,0x3a,0xc1]
1134// CHECK-ERROR: instruction requires: sme2
1135// CHECK-UNKNOWN: c13a5839 <unknown>
1136
1137sub     za.s[w8, 5, vgx4], {z22.s - z25.s}, z14.s  // 11000001-00111110-00011010-11011101
1138// CHECK-INST: sub     za.s[w8, 5, vgx4], { z22.s - z25.s }, z14.s
1139// CHECK-ENCODING: [0xdd,0x1a,0x3e,0xc1]
1140// CHECK-ERROR: instruction requires: sme2
1141// CHECK-UNKNOWN: c13e1add <unknown>
1142
1143sub     za.s[w8, 5], {z22.s - z25.s}, z14.s  // 11000001-00111110-00011010-11011101
1144// CHECK-INST: sub     za.s[w8, 5, vgx4], { z22.s - z25.s }, z14.s
1145// CHECK-ENCODING: [0xdd,0x1a,0x3e,0xc1]
1146// CHECK-ERROR: instruction requires: sme2
1147// CHECK-UNKNOWN: c13e1add <unknown>
1148
1149sub     za.s[w11, 2, vgx4], {z9.s - z12.s}, z1.s  // 11000001-00110001-01111001-00111010
1150// CHECK-INST: sub     za.s[w11, 2, vgx4], { z9.s - z12.s }, z1.s
1151// CHECK-ENCODING: [0x3a,0x79,0x31,0xc1]
1152// CHECK-ERROR: instruction requires: sme2
1153// CHECK-UNKNOWN: c131793a <unknown>
1154
1155sub     za.s[w11, 2], {z9.s - z12.s}, z1.s  // 11000001-00110001-01111001-00111010
1156// CHECK-INST: sub     za.s[w11, 2, vgx4], { z9.s - z12.s }, z1.s
1157// CHECK-ENCODING: [0x3a,0x79,0x31,0xc1]
1158// CHECK-ERROR: instruction requires: sme2
1159// CHECK-UNKNOWN: c131793a <unknown>
1160
1161sub     za.s[w9, 7, vgx4], {z12.s - z15.s}, z11.s  // 11000001-00111011-00111001-10011111
1162// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }, z11.s
1163// CHECK-ENCODING: [0x9f,0x39,0x3b,0xc1]
1164// CHECK-ERROR: instruction requires: sme2
1165// CHECK-UNKNOWN: c13b399f <unknown>
1166
1167sub     za.s[w9, 7], {z12.s - z15.s}, z11.s  // 11000001-00111011-00111001-10011111
1168// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }, z11.s
1169// CHECK-ENCODING: [0x9f,0x39,0x3b,0xc1]
1170// CHECK-ERROR: instruction requires: sme2
1171// CHECK-UNKNOWN: c13b399f <unknown>
1172
1173
1174sub     za.s[w8, 0, vgx4], {z0.s - z3.s}, {z0.s - z3.s}  // 11000001-10100001-00011000-00011000
1175// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }, { z0.s - z3.s }
1176// CHECK-ENCODING: [0x18,0x18,0xa1,0xc1]
1177// CHECK-ERROR: instruction requires: sme2
1178// CHECK-UNKNOWN: c1a11818 <unknown>
1179
1180sub     za.s[w8, 0], {z0.s - z3.s}, {z0.s - z3.s}  // 11000001-10100001-00011000-00011000
1181// CHECK-INST: sub     za.s[w8, 0, vgx4], { z0.s - z3.s }, { z0.s - z3.s }
1182// CHECK-ENCODING: [0x18,0x18,0xa1,0xc1]
1183// CHECK-ERROR: instruction requires: sme2
1184// CHECK-UNKNOWN: c1a11818 <unknown>
1185
1186sub     za.s[w10, 5, vgx4], {z8.s - z11.s}, {z20.s - z23.s}  // 11000001-10110101-01011001-00011101
1187// CHECK-INST: sub     za.s[w10, 5, vgx4], { z8.s - z11.s }, { z20.s - z23.s }
1188// CHECK-ENCODING: [0x1d,0x59,0xb5,0xc1]
1189// CHECK-ERROR: instruction requires: sme2
1190// CHECK-UNKNOWN: c1b5591d <unknown>
1191
1192sub     za.s[w10, 5], {z8.s - z11.s}, {z20.s - z23.s}  // 11000001-10110101-01011001-00011101
1193// CHECK-INST: sub     za.s[w10, 5, vgx4], { z8.s - z11.s }, { z20.s - z23.s }
1194// CHECK-ENCODING: [0x1d,0x59,0xb5,0xc1]
1195// CHECK-ERROR: instruction requires: sme2
1196// CHECK-UNKNOWN: c1b5591d <unknown>
1197
1198sub     za.s[w11, 7, vgx4], {z12.s - z15.s}, {z8.s - z11.s}  // 11000001-10101001-01111001-10011111
1199// CHECK-INST: sub     za.s[w11, 7, vgx4], { z12.s - z15.s }, { z8.s - z11.s }
1200// CHECK-ENCODING: [0x9f,0x79,0xa9,0xc1]
1201// CHECK-ERROR: instruction requires: sme2
1202// CHECK-UNKNOWN: c1a9799f <unknown>
1203
1204sub     za.s[w11, 7], {z12.s - z15.s}, {z8.s - z11.s}  // 11000001-10101001-01111001-10011111
1205// CHECK-INST: sub     za.s[w11, 7, vgx4], { z12.s - z15.s }, { z8.s - z11.s }
1206// CHECK-ENCODING: [0x9f,0x79,0xa9,0xc1]
1207// CHECK-ERROR: instruction requires: sme2
1208// CHECK-UNKNOWN: c1a9799f <unknown>
1209
1210sub     za.s[w11, 7, vgx4], {z28.s - z31.s}, {z28.s - z31.s}  // 11000001-10111101-01111011-10011111
1211// CHECK-INST: sub     za.s[w11, 7, vgx4], { z28.s - z31.s }, { z28.s - z31.s }
1212// CHECK-ENCODING: [0x9f,0x7b,0xbd,0xc1]
1213// CHECK-ERROR: instruction requires: sme2
1214// CHECK-UNKNOWN: c1bd7b9f <unknown>
1215
1216sub     za.s[w11, 7], {z28.s - z31.s}, {z28.s - z31.s}  // 11000001-10111101-01111011-10011111
1217// CHECK-INST: sub     za.s[w11, 7, vgx4], { z28.s - z31.s }, { z28.s - z31.s }
1218// CHECK-ENCODING: [0x9f,0x7b,0xbd,0xc1]
1219// CHECK-ERROR: instruction requires: sme2
1220// CHECK-UNKNOWN: c1bd7b9f <unknown>
1221
1222sub     za.s[w8, 5, vgx4], {z16.s - z19.s}, {z16.s - z19.s}  // 11000001-10110001-00011010-00011101
1223// CHECK-INST: sub     za.s[w8, 5, vgx4], { z16.s - z19.s }, { z16.s - z19.s }
1224// CHECK-ENCODING: [0x1d,0x1a,0xb1,0xc1]
1225// CHECK-ERROR: instruction requires: sme2
1226// CHECK-UNKNOWN: c1b11a1d <unknown>
1227
1228sub     za.s[w8, 5], {z16.s - z19.s}, {z16.s - z19.s}  // 11000001-10110001-00011010-00011101
1229// CHECK-INST: sub     za.s[w8, 5, vgx4], { z16.s - z19.s }, { z16.s - z19.s }
1230// CHECK-ENCODING: [0x1d,0x1a,0xb1,0xc1]
1231// CHECK-ERROR: instruction requires: sme2
1232// CHECK-UNKNOWN: c1b11a1d <unknown>
1233
1234sub     za.s[w8, 1, vgx4], {z0.s - z3.s}, {z28.s - z31.s}  // 11000001-10111101-00011000-00011001
1235// CHECK-INST: sub     za.s[w8, 1, vgx4], { z0.s - z3.s }, { z28.s - z31.s }
1236// CHECK-ENCODING: [0x19,0x18,0xbd,0xc1]
1237// CHECK-ERROR: instruction requires: sme2
1238// CHECK-UNKNOWN: c1bd1819 <unknown>
1239
1240sub     za.s[w8, 1], {z0.s - z3.s}, {z28.s - z31.s}  // 11000001-10111101-00011000-00011001
1241// CHECK-INST: sub     za.s[w8, 1, vgx4], { z0.s - z3.s }, { z28.s - z31.s }
1242// CHECK-ENCODING: [0x19,0x18,0xbd,0xc1]
1243// CHECK-ERROR: instruction requires: sme2
1244// CHECK-UNKNOWN: c1bd1819 <unknown>
1245
1246sub     za.s[w10, 0, vgx4], {z16.s - z19.s}, {z20.s - z23.s}  // 11000001-10110101-01011010-00011000
1247// CHECK-INST: sub     za.s[w10, 0, vgx4], { z16.s - z19.s }, { z20.s - z23.s }
1248// CHECK-ENCODING: [0x18,0x5a,0xb5,0xc1]
1249// CHECK-ERROR: instruction requires: sme2
1250// CHECK-UNKNOWN: c1b55a18 <unknown>
1251
1252sub     za.s[w10, 0], {z16.s - z19.s}, {z20.s - z23.s}  // 11000001-10110101-01011010-00011000
1253// CHECK-INST: sub     za.s[w10, 0, vgx4], { z16.s - z19.s }, { z20.s - z23.s }
1254// CHECK-ENCODING: [0x18,0x5a,0xb5,0xc1]
1255// CHECK-ERROR: instruction requires: sme2
1256// CHECK-UNKNOWN: c1b55a18 <unknown>
1257
1258sub     za.s[w8, 0, vgx4], {z12.s - z15.s}, {z0.s - z3.s}  // 11000001-10100001-00011001-10011000
1259// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }, { z0.s - z3.s }
1260// CHECK-ENCODING: [0x98,0x19,0xa1,0xc1]
1261// CHECK-ERROR: instruction requires: sme2
1262// CHECK-UNKNOWN: c1a11998 <unknown>
1263
1264sub     za.s[w8, 0], {z12.s - z15.s}, {z0.s - z3.s}  // 11000001-10100001-00011001-10011000
1265// CHECK-INST: sub     za.s[w8, 0, vgx4], { z12.s - z15.s }, { z0.s - z3.s }
1266// CHECK-ENCODING: [0x98,0x19,0xa1,0xc1]
1267// CHECK-ERROR: instruction requires: sme2
1268// CHECK-UNKNOWN: c1a11998 <unknown>
1269
1270sub     za.s[w10, 1, vgx4], {z0.s - z3.s}, {z24.s - z27.s}  // 11000001-10111001-01011000-00011001
1271// CHECK-INST: sub     za.s[w10, 1, vgx4], { z0.s - z3.s }, { z24.s - z27.s }
1272// CHECK-ENCODING: [0x19,0x58,0xb9,0xc1]
1273// CHECK-ERROR: instruction requires: sme2
1274// CHECK-UNKNOWN: c1b95819 <unknown>
1275
1276sub     za.s[w10, 1], {z0.s - z3.s}, {z24.s - z27.s}  // 11000001-10111001-01011000-00011001
1277// CHECK-INST: sub     za.s[w10, 1, vgx4], { z0.s - z3.s }, { z24.s - z27.s }
1278// CHECK-ENCODING: [0x19,0x58,0xb9,0xc1]
1279// CHECK-ERROR: instruction requires: sme2
1280// CHECK-UNKNOWN: c1b95819 <unknown>
1281
1282sub     za.s[w8, 5, vgx4], {z20.s - z23.s}, {z28.s - z31.s}  // 11000001-10111101-00011010-10011101
1283// CHECK-INST: sub     za.s[w8, 5, vgx4], { z20.s - z23.s }, { z28.s - z31.s }
1284// CHECK-ENCODING: [0x9d,0x1a,0xbd,0xc1]
1285// CHECK-ERROR: instruction requires: sme2
1286// CHECK-UNKNOWN: c1bd1a9d <unknown>
1287
1288sub     za.s[w8, 5], {z20.s - z23.s}, {z28.s - z31.s}  // 11000001-10111101-00011010-10011101
1289// CHECK-INST: sub     za.s[w8, 5, vgx4], { z20.s - z23.s }, { z28.s - z31.s }
1290// CHECK-ENCODING: [0x9d,0x1a,0xbd,0xc1]
1291// CHECK-ERROR: instruction requires: sme2
1292// CHECK-UNKNOWN: c1bd1a9d <unknown>
1293
1294sub     za.s[w11, 2, vgx4], {z8.s - z11.s}, {z0.s - z3.s}  // 11000001-10100001-01111001-00011010
1295// CHECK-INST: sub     za.s[w11, 2, vgx4], { z8.s - z11.s }, { z0.s - z3.s }
1296// CHECK-ENCODING: [0x1a,0x79,0xa1,0xc1]
1297// CHECK-ERROR: instruction requires: sme2
1298// CHECK-UNKNOWN: c1a1791a <unknown>
1299
1300sub     za.s[w11, 2], {z8.s - z11.s}, {z0.s - z3.s}  // 11000001-10100001-01111001-00011010
1301// CHECK-INST: sub     za.s[w11, 2, vgx4], { z8.s - z11.s }, { z0.s - z3.s }
1302// CHECK-ENCODING: [0x1a,0x79,0xa1,0xc1]
1303// CHECK-ERROR: instruction requires: sme2
1304// CHECK-UNKNOWN: c1a1791a <unknown>
1305
1306sub     za.s[w9, 7, vgx4], {z12.s - z15.s}, {z8.s - z11.s}  // 11000001-10101001-00111001-10011111
1307// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }, { z8.s - z11.s }
1308// CHECK-ENCODING: [0x9f,0x39,0xa9,0xc1]
1309// CHECK-ERROR: instruction requires: sme2
1310// CHECK-UNKNOWN: c1a9399f <unknown>
1311
1312sub     za.s[w9, 7], {z12.s - z15.s}, {z8.s - z11.s}  // 11000001-10101001-00111001-10011111
1313// CHECK-INST: sub     za.s[w9, 7, vgx4], { z12.s - z15.s }, { z8.s - z11.s }
1314// CHECK-ENCODING: [0x9f,0x39,0xa9,0xc1]
1315// CHECK-ERROR: instruction requires: sme2
1316// CHECK-UNKNOWN: c1a9399f <unknown>
1317
1318
1319sub     za.d[w8, 0, vgx4], {z0.d - z3.d}  // 11000001-11100001-00011100-00011000
1320// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }
1321// CHECK-ENCODING: [0x18,0x1c,0xe1,0xc1]
1322// CHECK-ERROR: instruction requires: sme2
1323// CHECK-UNKNOWN: c1e11c18 <unknown>
1324
1325sub     za.d[w8, 0], {z0.d - z3.d}  // 11000001-11100001-00011100-00011000
1326// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }
1327// CHECK-ENCODING: [0x18,0x1c,0xe1,0xc1]
1328// CHECK-ERROR: instruction requires: sme2
1329// CHECK-UNKNOWN: c1e11c18 <unknown>
1330
1331sub     za.d[w10, 5, vgx4], {z8.d - z11.d}  // 11000001-11100001-01011101-00011101
1332// CHECK-INST: sub     za.d[w10, 5, vgx4], { z8.d - z11.d }
1333// CHECK-ENCODING: [0x1d,0x5d,0xe1,0xc1]
1334// CHECK-ERROR: instruction requires: sme2
1335// CHECK-UNKNOWN: c1e15d1d <unknown>
1336
1337sub     za.d[w10, 5], {z8.d - z11.d}  // 11000001-11100001-01011101-00011101
1338// CHECK-INST: sub     za.d[w10, 5, vgx4], { z8.d - z11.d }
1339// CHECK-ENCODING: [0x1d,0x5d,0xe1,0xc1]
1340// CHECK-ERROR: instruction requires: sme2
1341// CHECK-UNKNOWN: c1e15d1d <unknown>
1342
1343sub     za.d[w11, 7, vgx4], {z12.d - z15.d}  // 11000001-11100001-01111101-10011111
1344// CHECK-INST: sub     za.d[w11, 7, vgx4], { z12.d - z15.d }
1345// CHECK-ENCODING: [0x9f,0x7d,0xe1,0xc1]
1346// CHECK-ERROR: instruction requires: sme2
1347// CHECK-UNKNOWN: c1e17d9f <unknown>
1348
1349sub     za.d[w11, 7], {z12.d - z15.d}  // 11000001-11100001-01111101-10011111
1350// CHECK-INST: sub     za.d[w11, 7, vgx4], { z12.d - z15.d }
1351// CHECK-ENCODING: [0x9f,0x7d,0xe1,0xc1]
1352// CHECK-ERROR: instruction requires: sme2
1353// CHECK-UNKNOWN: c1e17d9f <unknown>
1354
1355sub     za.d[w11, 7, vgx4], {z28.d - z31.d}  // 11000001-11100001-01111111-10011111
1356// CHECK-INST: sub     za.d[w11, 7, vgx4], { z28.d - z31.d }
1357// CHECK-ENCODING: [0x9f,0x7f,0xe1,0xc1]
1358// CHECK-ERROR: instruction requires: sme2
1359// CHECK-UNKNOWN: c1e17f9f <unknown>
1360
1361sub     za.d[w11, 7], {z28.d - z31.d}  // 11000001-11100001-01111111-10011111
1362// CHECK-INST: sub     za.d[w11, 7, vgx4], { z28.d - z31.d }
1363// CHECK-ENCODING: [0x9f,0x7f,0xe1,0xc1]
1364// CHECK-ERROR: instruction requires: sme2
1365// CHECK-UNKNOWN: c1e17f9f <unknown>
1366
1367sub     za.d[w8, 5, vgx4], {z16.d - z19.d}  // 11000001-11100001-00011110-00011101
1368// CHECK-INST: sub     za.d[w8, 5, vgx4], { z16.d - z19.d }
1369// CHECK-ENCODING: [0x1d,0x1e,0xe1,0xc1]
1370// CHECK-ERROR: instruction requires: sme2
1371// CHECK-UNKNOWN: c1e11e1d <unknown>
1372
1373sub     za.d[w8, 5], {z16.d - z19.d}  // 11000001-11100001-00011110-00011101
1374// CHECK-INST: sub     za.d[w8, 5, vgx4], { z16.d - z19.d }
1375// CHECK-ENCODING: [0x1d,0x1e,0xe1,0xc1]
1376// CHECK-ERROR: instruction requires: sme2
1377// CHECK-UNKNOWN: c1e11e1d <unknown>
1378
1379sub     za.d[w8, 1, vgx4], {z0.d - z3.d}  // 11000001-11100001-00011100-00011001
1380// CHECK-INST: sub     za.d[w8, 1, vgx4], { z0.d - z3.d }
1381// CHECK-ENCODING: [0x19,0x1c,0xe1,0xc1]
1382// CHECK-ERROR: instruction requires: sme2
1383// CHECK-UNKNOWN: c1e11c19 <unknown>
1384
1385sub     za.d[w8, 1], {z0.d - z3.d}  // 11000001-11100001-00011100-00011001
1386// CHECK-INST: sub     za.d[w8, 1, vgx4], { z0.d - z3.d }
1387// CHECK-ENCODING: [0x19,0x1c,0xe1,0xc1]
1388// CHECK-ERROR: instruction requires: sme2
1389// CHECK-UNKNOWN: c1e11c19 <unknown>
1390
1391sub     za.d[w10, 0, vgx4], {z16.d - z19.d}  // 11000001-11100001-01011110-00011000
1392// CHECK-INST: sub     za.d[w10, 0, vgx4], { z16.d - z19.d }
1393// CHECK-ENCODING: [0x18,0x5e,0xe1,0xc1]
1394// CHECK-ERROR: instruction requires: sme2
1395// CHECK-UNKNOWN: c1e15e18 <unknown>
1396
1397sub     za.d[w10, 0], {z16.d - z19.d}  // 11000001-11100001-01011110-00011000
1398// CHECK-INST: sub     za.d[w10, 0, vgx4], { z16.d - z19.d }
1399// CHECK-ENCODING: [0x18,0x5e,0xe1,0xc1]
1400// CHECK-ERROR: instruction requires: sme2
1401// CHECK-UNKNOWN: c1e15e18 <unknown>
1402
1403sub     za.d[w8, 0, vgx4], {z12.d - z15.d}  // 11000001-11100001-00011101-10011000
1404// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }
1405// CHECK-ENCODING: [0x98,0x1d,0xe1,0xc1]
1406// CHECK-ERROR: instruction requires: sme2
1407// CHECK-UNKNOWN: c1e11d98 <unknown>
1408
1409sub     za.d[w8, 0], {z12.d - z15.d}  // 11000001-11100001-00011101-10011000
1410// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }
1411// CHECK-ENCODING: [0x98,0x1d,0xe1,0xc1]
1412// CHECK-ERROR: instruction requires: sme2
1413// CHECK-UNKNOWN: c1e11d98 <unknown>
1414
1415sub     za.d[w10, 1, vgx4], {z0.d - z3.d}  // 11000001-11100001-01011100-00011001
1416// CHECK-INST: sub     za.d[w10, 1, vgx4], { z0.d - z3.d }
1417// CHECK-ENCODING: [0x19,0x5c,0xe1,0xc1]
1418// CHECK-ERROR: instruction requires: sme2
1419// CHECK-UNKNOWN: c1e15c19 <unknown>
1420
1421sub     za.d[w10, 1], {z0.d - z3.d}  // 11000001-11100001-01011100-00011001
1422// CHECK-INST: sub     za.d[w10, 1, vgx4], { z0.d - z3.d }
1423// CHECK-ENCODING: [0x19,0x5c,0xe1,0xc1]
1424// CHECK-ERROR: instruction requires: sme2
1425// CHECK-UNKNOWN: c1e15c19 <unknown>
1426
1427sub     za.d[w8, 5, vgx4], {z20.d - z23.d}  // 11000001-11100001-00011110-10011101
1428// CHECK-INST: sub     za.d[w8, 5, vgx4], { z20.d - z23.d }
1429// CHECK-ENCODING: [0x9d,0x1e,0xe1,0xc1]
1430// CHECK-ERROR: instruction requires: sme2
1431// CHECK-UNKNOWN: c1e11e9d <unknown>
1432
1433sub     za.d[w8, 5], {z20.d - z23.d}  // 11000001-11100001-00011110-10011101
1434// CHECK-INST: sub     za.d[w8, 5, vgx4], { z20.d - z23.d }
1435// CHECK-ENCODING: [0x9d,0x1e,0xe1,0xc1]
1436// CHECK-ERROR: instruction requires: sme2
1437// CHECK-UNKNOWN: c1e11e9d <unknown>
1438
1439sub     za.d[w11, 2, vgx4], {z8.d - z11.d}  // 11000001-11100001-01111101-00011010
1440// CHECK-INST: sub     za.d[w11, 2, vgx4], { z8.d - z11.d }
1441// CHECK-ENCODING: [0x1a,0x7d,0xe1,0xc1]
1442// CHECK-ERROR: instruction requires: sme2
1443// CHECK-UNKNOWN: c1e17d1a <unknown>
1444
1445sub     za.d[w11, 2], {z8.d - z11.d}  // 11000001-11100001-01111101-00011010
1446// CHECK-INST: sub     za.d[w11, 2, vgx4], { z8.d - z11.d }
1447// CHECK-ENCODING: [0x1a,0x7d,0xe1,0xc1]
1448// CHECK-ERROR: instruction requires: sme2
1449// CHECK-UNKNOWN: c1e17d1a <unknown>
1450
1451sub     za.d[w9, 7, vgx4], {z12.d - z15.d}  // 11000001-11100001-00111101-10011111
1452// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }
1453// CHECK-ENCODING: [0x9f,0x3d,0xe1,0xc1]
1454// CHECK-ERROR: instruction requires: sme2
1455// CHECK-UNKNOWN: c1e13d9f <unknown>
1456
1457sub     za.d[w9, 7], {z12.d - z15.d}  // 11000001-11100001-00111101-10011111
1458// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }
1459// CHECK-ENCODING: [0x9f,0x3d,0xe1,0xc1]
1460// CHECK-ERROR: instruction requires: sme2
1461// CHECK-UNKNOWN: c1e13d9f <unknown>
1462
1463sub     za.d[w8, 0, vgx4], {z0.d - z3.d}, z0.d  // 11000001-01110000-00011000-00011000
1464// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }, z0.d
1465// CHECK-ENCODING: [0x18,0x18,0x70,0xc1]
1466// CHECK-ERROR: instruction requires: sme2
1467// CHECK-UNKNOWN: c1701818 <unknown>
1468
1469sub     za.d[w8, 0], {z0.d - z3.d}, z0.d  // 11000001-01110000-00011000-00011000
1470// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }, z0.d
1471// CHECK-ENCODING: [0x18,0x18,0x70,0xc1]
1472// CHECK-ERROR: instruction requires: sme2
1473// CHECK-UNKNOWN: c1701818 <unknown>
1474
1475sub     za.d[w10, 5, vgx4], {z10.d - z13.d}, z5.d  // 11000001-01110101-01011001-01011101
1476// CHECK-INST: sub     za.d[w10, 5, vgx4], { z10.d - z13.d }, z5.d
1477// CHECK-ENCODING: [0x5d,0x59,0x75,0xc1]
1478// CHECK-ERROR: instruction requires: sme2
1479// CHECK-UNKNOWN: c175595d <unknown>
1480
1481sub     za.d[w10, 5], {z10.d - z13.d}, z5.d  // 11000001-01110101-01011001-01011101
1482// CHECK-INST: sub     za.d[w10, 5, vgx4], { z10.d - z13.d }, z5.d
1483// CHECK-ENCODING: [0x5d,0x59,0x75,0xc1]
1484// CHECK-ERROR: instruction requires: sme2
1485// CHECK-UNKNOWN: c175595d <unknown>
1486
1487sub     za.d[w11, 7, vgx4], {z13.d - z16.d}, z8.d  // 11000001-01111000-01111001-10111111
1488// CHECK-INST: sub     za.d[w11, 7, vgx4], { z13.d - z16.d }, z8.d
1489// CHECK-ENCODING: [0xbf,0x79,0x78,0xc1]
1490// CHECK-ERROR: instruction requires: sme2
1491// CHECK-UNKNOWN: c17879bf <unknown>
1492
1493sub     za.d[w11, 7], {z13.d - z16.d}, z8.d  // 11000001-01111000-01111001-10111111
1494// CHECK-INST: sub     za.d[w11, 7, vgx4], { z13.d - z16.d }, z8.d
1495// CHECK-ENCODING: [0xbf,0x79,0x78,0xc1]
1496// CHECK-ERROR: instruction requires: sme2
1497// CHECK-UNKNOWN: c17879bf <unknown>
1498
1499sub     za.d[w11, 7, vgx4], {z31.d - z2.d}, z15.d  // 11000001-01111111-01111011-11111111
1500// CHECK-INST: sub     za.d[w11, 7, vgx4], { z31.d, z0.d, z1.d, z2.d }, z15.d
1501// CHECK-ENCODING: [0xff,0x7b,0x7f,0xc1]
1502// CHECK-ERROR: instruction requires: sme2
1503// CHECK-UNKNOWN: c17f7bff <unknown>
1504
1505sub     za.d[w11, 7], {z31.d - z2.d}, z15.d  // 11000001-01111111-01111011-11111111
1506// CHECK-INST: sub     za.d[w11, 7, vgx4], { z31.d, z0.d, z1.d, z2.d }, z15.d
1507// CHECK-ENCODING: [0xff,0x7b,0x7f,0xc1]
1508// CHECK-ERROR: instruction requires: sme2
1509// CHECK-UNKNOWN: c17f7bff <unknown>
1510
1511sub     za.d[w8, 5, vgx4], {z17.d - z20.d}, z0.d  // 11000001-01110000-00011010-00111101
1512// CHECK-INST: sub     za.d[w8, 5, vgx4], { z17.d - z20.d }, z0.d
1513// CHECK-ENCODING: [0x3d,0x1a,0x70,0xc1]
1514// CHECK-ERROR: instruction requires: sme2
1515// CHECK-UNKNOWN: c1701a3d <unknown>
1516
1517sub     za.d[w8, 5], {z17.d - z20.d}, z0.d  // 11000001-01110000-00011010-00111101
1518// CHECK-INST: sub     za.d[w8, 5, vgx4], { z17.d - z20.d }, z0.d
1519// CHECK-ENCODING: [0x3d,0x1a,0x70,0xc1]
1520// CHECK-ERROR: instruction requires: sme2
1521// CHECK-UNKNOWN: c1701a3d <unknown>
1522
1523sub     za.d[w8, 1, vgx4], {z1.d - z4.d}, z14.d  // 11000001-01111110-00011000-00111001
1524// CHECK-INST: sub     za.d[w8, 1, vgx4], { z1.d - z4.d }, z14.d
1525// CHECK-ENCODING: [0x39,0x18,0x7e,0xc1]
1526// CHECK-ERROR: instruction requires: sme2
1527// CHECK-UNKNOWN: c17e1839 <unknown>
1528
1529sub     za.d[w8, 1], {z1.d - z4.d}, z14.d  // 11000001-01111110-00011000-00111001
1530// CHECK-INST: sub     za.d[w8, 1, vgx4], { z1.d - z4.d }, z14.d
1531// CHECK-ENCODING: [0x39,0x18,0x7e,0xc1]
1532// CHECK-ERROR: instruction requires: sme2
1533// CHECK-UNKNOWN: c17e1839 <unknown>
1534
1535sub     za.d[w10, 0, vgx4], {z19.d - z22.d}, z4.d  // 11000001-01110100-01011010-01111000
1536// CHECK-INST: sub     za.d[w10, 0, vgx4], { z19.d - z22.d }, z4.d
1537// CHECK-ENCODING: [0x78,0x5a,0x74,0xc1]
1538// CHECK-ERROR: instruction requires: sme2
1539// CHECK-UNKNOWN: c1745a78 <unknown>
1540
1541sub     za.d[w10, 0], {z19.d - z22.d}, z4.d  // 11000001-01110100-01011010-01111000
1542// CHECK-INST: sub     za.d[w10, 0, vgx4], { z19.d - z22.d }, z4.d
1543// CHECK-ENCODING: [0x78,0x5a,0x74,0xc1]
1544// CHECK-ERROR: instruction requires: sme2
1545// CHECK-UNKNOWN: c1745a78 <unknown>
1546
1547sub     za.d[w8, 0, vgx4], {z12.d - z15.d}, z2.d  // 11000001-01110010-00011001-10011000
1548// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }, z2.d
1549// CHECK-ENCODING: [0x98,0x19,0x72,0xc1]
1550// CHECK-ERROR: instruction requires: sme2
1551// CHECK-UNKNOWN: c1721998 <unknown>
1552
1553sub     za.d[w8, 0], {z12.d - z15.d}, z2.d  // 11000001-01110010-00011001-10011000
1554// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }, z2.d
1555// CHECK-ENCODING: [0x98,0x19,0x72,0xc1]
1556// CHECK-ERROR: instruction requires: sme2
1557// CHECK-UNKNOWN: c1721998 <unknown>
1558
1559sub     za.d[w10, 1, vgx4], {z1.d - z4.d}, z10.d  // 11000001-01111010-01011000-00111001
1560// CHECK-INST: sub     za.d[w10, 1, vgx4], { z1.d - z4.d }, z10.d
1561// CHECK-ENCODING: [0x39,0x58,0x7a,0xc1]
1562// CHECK-ERROR: instruction requires: sme2
1563// CHECK-UNKNOWN: c17a5839 <unknown>
1564
1565sub     za.d[w10, 1], {z1.d - z4.d}, z10.d  // 11000001-01111010-01011000-00111001
1566// CHECK-INST: sub     za.d[w10, 1, vgx4], { z1.d - z4.d }, z10.d
1567// CHECK-ENCODING: [0x39,0x58,0x7a,0xc1]
1568// CHECK-ERROR: instruction requires: sme2
1569// CHECK-UNKNOWN: c17a5839 <unknown>
1570
1571sub     za.d[w8, 5, vgx4], {z22.d - z25.d}, z14.d  // 11000001-01111110-00011010-11011101
1572// CHECK-INST: sub     za.d[w8, 5, vgx4], { z22.d - z25.d }, z14.d
1573// CHECK-ENCODING: [0xdd,0x1a,0x7e,0xc1]
1574// CHECK-ERROR: instruction requires: sme2
1575// CHECK-UNKNOWN: c17e1add <unknown>
1576
1577sub     za.d[w8, 5], {z22.d - z25.d}, z14.d  // 11000001-01111110-00011010-11011101
1578// CHECK-INST: sub     za.d[w8, 5, vgx4], { z22.d - z25.d }, z14.d
1579// CHECK-ENCODING: [0xdd,0x1a,0x7e,0xc1]
1580// CHECK-ERROR: instruction requires: sme2
1581// CHECK-UNKNOWN: c17e1add <unknown>
1582
1583sub     za.d[w11, 2, vgx4], {z9.d - z12.d}, z1.d  // 11000001-01110001-01111001-00111010
1584// CHECK-INST: sub     za.d[w11, 2, vgx4], { z9.d - z12.d }, z1.d
1585// CHECK-ENCODING: [0x3a,0x79,0x71,0xc1]
1586// CHECK-ERROR: instruction requires: sme2
1587// CHECK-UNKNOWN: c171793a <unknown>
1588
1589sub     za.d[w11, 2], {z9.d - z12.d}, z1.d  // 11000001-01110001-01111001-00111010
1590// CHECK-INST: sub     za.d[w11, 2, vgx4], { z9.d - z12.d }, z1.d
1591// CHECK-ENCODING: [0x3a,0x79,0x71,0xc1]
1592// CHECK-ERROR: instruction requires: sme2
1593// CHECK-UNKNOWN: c171793a <unknown>
1594
1595sub     za.d[w9, 7, vgx4], {z12.d - z15.d}, z11.d  // 11000001-01111011-00111001-10011111
1596// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }, z11.d
1597// CHECK-ENCODING: [0x9f,0x39,0x7b,0xc1]
1598// CHECK-ERROR: instruction requires: sme2
1599// CHECK-UNKNOWN: c17b399f <unknown>
1600
1601sub     za.d[w9, 7], {z12.d - z15.d}, z11.d  // 11000001-01111011-00111001-10011111
1602// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }, z11.d
1603// CHECK-ENCODING: [0x9f,0x39,0x7b,0xc1]
1604// CHECK-ERROR: instruction requires: sme2
1605// CHECK-UNKNOWN: c17b399f <unknown>
1606
1607
1608sub     za.d[w8, 0, vgx4], {z0.d - z3.d}, {z0.d - z3.d}  // 11000001-11100001-00011000-00011000
1609// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }, { z0.d - z3.d }
1610// CHECK-ENCODING: [0x18,0x18,0xe1,0xc1]
1611// CHECK-ERROR: instruction requires: sme2
1612// CHECK-UNKNOWN: c1e11818 <unknown>
1613
1614sub     za.d[w8, 0], {z0.d - z3.d}, {z0.d - z3.d}  // 11000001-11100001-00011000-00011000
1615// CHECK-INST: sub     za.d[w8, 0, vgx4], { z0.d - z3.d }, { z0.d - z3.d }
1616// CHECK-ENCODING: [0x18,0x18,0xe1,0xc1]
1617// CHECK-ERROR: instruction requires: sme2
1618// CHECK-UNKNOWN: c1e11818 <unknown>
1619
1620sub     za.d[w10, 5, vgx4], {z8.d - z11.d}, {z20.d - z23.d}  // 11000001-11110101-01011001-00011101
1621// CHECK-INST: sub     za.d[w10, 5, vgx4], { z8.d - z11.d }, { z20.d - z23.d }
1622// CHECK-ENCODING: [0x1d,0x59,0xf5,0xc1]
1623// CHECK-ERROR: instruction requires: sme2
1624// CHECK-UNKNOWN: c1f5591d <unknown>
1625
1626sub     za.d[w10, 5], {z8.d - z11.d}, {z20.d - z23.d}  // 11000001-11110101-01011001-00011101
1627// CHECK-INST: sub     za.d[w10, 5, vgx4], { z8.d - z11.d }, { z20.d - z23.d }
1628// CHECK-ENCODING: [0x1d,0x59,0xf5,0xc1]
1629// CHECK-ERROR: instruction requires: sme2
1630// CHECK-UNKNOWN: c1f5591d <unknown>
1631
1632sub     za.d[w11, 7, vgx4], {z12.d - z15.d}, {z8.d - z11.d}  // 11000001-11101001-01111001-10011111
1633// CHECK-INST: sub     za.d[w11, 7, vgx4], { z12.d - z15.d }, { z8.d - z11.d }
1634// CHECK-ENCODING: [0x9f,0x79,0xe9,0xc1]
1635// CHECK-ERROR: instruction requires: sme2
1636// CHECK-UNKNOWN: c1e9799f <unknown>
1637
1638sub     za.d[w11, 7], {z12.d - z15.d}, {z8.d - z11.d}  // 11000001-11101001-01111001-10011111
1639// CHECK-INST: sub     za.d[w11, 7, vgx4], { z12.d - z15.d }, { z8.d - z11.d }
1640// CHECK-ENCODING: [0x9f,0x79,0xe9,0xc1]
1641// CHECK-ERROR: instruction requires: sme2
1642// CHECK-UNKNOWN: c1e9799f <unknown>
1643
1644sub     za.d[w11, 7, vgx4], {z28.d - z31.d}, {z28.d - z31.d}  // 11000001-11111101-01111011-10011111
1645// CHECK-INST: sub     za.d[w11, 7, vgx4], { z28.d - z31.d }, { z28.d - z31.d }
1646// CHECK-ENCODING: [0x9f,0x7b,0xfd,0xc1]
1647// CHECK-ERROR: instruction requires: sme2
1648// CHECK-UNKNOWN: c1fd7b9f <unknown>
1649
1650sub     za.d[w11, 7], {z28.d - z31.d}, {z28.d - z31.d}  // 11000001-11111101-01111011-10011111
1651// CHECK-INST: sub     za.d[w11, 7, vgx4], { z28.d - z31.d }, { z28.d - z31.d }
1652// CHECK-ENCODING: [0x9f,0x7b,0xfd,0xc1]
1653// CHECK-ERROR: instruction requires: sme2
1654// CHECK-UNKNOWN: c1fd7b9f <unknown>
1655
1656sub     za.d[w8, 5, vgx4], {z16.d - z19.d}, {z16.d - z19.d}  // 11000001-11110001-00011010-00011101
1657// CHECK-INST: sub     za.d[w8, 5, vgx4], { z16.d - z19.d }, { z16.d - z19.d }
1658// CHECK-ENCODING: [0x1d,0x1a,0xf1,0xc1]
1659// CHECK-ERROR: instruction requires: sme2
1660// CHECK-UNKNOWN: c1f11a1d <unknown>
1661
1662sub     za.d[w8, 5], {z16.d - z19.d}, {z16.d - z19.d}  // 11000001-11110001-00011010-00011101
1663// CHECK-INST: sub     za.d[w8, 5, vgx4], { z16.d - z19.d }, { z16.d - z19.d }
1664// CHECK-ENCODING: [0x1d,0x1a,0xf1,0xc1]
1665// CHECK-ERROR: instruction requires: sme2
1666// CHECK-UNKNOWN: c1f11a1d <unknown>
1667
1668sub     za.d[w8, 1, vgx4], {z0.d - z3.d}, {z28.d - z31.d}  // 11000001-11111101-00011000-00011001
1669// CHECK-INST: sub     za.d[w8, 1, vgx4], { z0.d - z3.d }, { z28.d - z31.d }
1670// CHECK-ENCODING: [0x19,0x18,0xfd,0xc1]
1671// CHECK-ERROR: instruction requires: sme2
1672// CHECK-UNKNOWN: c1fd1819 <unknown>
1673
1674sub     za.d[w8, 1], {z0.d - z3.d}, {z28.d - z31.d}  // 11000001-11111101-00011000-00011001
1675// CHECK-INST: sub     za.d[w8, 1, vgx4], { z0.d - z3.d }, { z28.d - z31.d }
1676// CHECK-ENCODING: [0x19,0x18,0xfd,0xc1]
1677// CHECK-ERROR: instruction requires: sme2
1678// CHECK-UNKNOWN: c1fd1819 <unknown>
1679
1680sub     za.d[w10, 0, vgx4], {z16.d - z19.d}, {z20.d - z23.d}  // 11000001-11110101-01011010-00011000
1681// CHECK-INST: sub     za.d[w10, 0, vgx4], { z16.d - z19.d }, { z20.d - z23.d }
1682// CHECK-ENCODING: [0x18,0x5a,0xf5,0xc1]
1683// CHECK-ERROR: instruction requires: sme2
1684// CHECK-UNKNOWN: c1f55a18 <unknown>
1685
1686sub     za.d[w10, 0], {z16.d - z19.d}, {z20.d - z23.d}  // 11000001-11110101-01011010-00011000
1687// CHECK-INST: sub     za.d[w10, 0, vgx4], { z16.d - z19.d }, { z20.d - z23.d }
1688// CHECK-ENCODING: [0x18,0x5a,0xf5,0xc1]
1689// CHECK-ERROR: instruction requires: sme2
1690// CHECK-UNKNOWN: c1f55a18 <unknown>
1691
1692sub     za.d[w8, 0, vgx4], {z12.d - z15.d}, {z0.d - z3.d}  // 11000001-11100001-00011001-10011000
1693// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }, { z0.d - z3.d }
1694// CHECK-ENCODING: [0x98,0x19,0xe1,0xc1]
1695// CHECK-ERROR: instruction requires: sme2
1696// CHECK-UNKNOWN: c1e11998 <unknown>
1697
1698sub     za.d[w8, 0], {z12.d - z15.d}, {z0.d - z3.d}  // 11000001-11100001-00011001-10011000
1699// CHECK-INST: sub     za.d[w8, 0, vgx4], { z12.d - z15.d }, { z0.d - z3.d }
1700// CHECK-ENCODING: [0x98,0x19,0xe1,0xc1]
1701// CHECK-ERROR: instruction requires: sme2
1702// CHECK-UNKNOWN: c1e11998 <unknown>
1703
1704sub     za.d[w10, 1, vgx4], {z0.d - z3.d}, {z24.d - z27.d}  // 11000001-11111001-01011000-00011001
1705// CHECK-INST: sub     za.d[w10, 1, vgx4], { z0.d - z3.d }, { z24.d - z27.d }
1706// CHECK-ENCODING: [0x19,0x58,0xf9,0xc1]
1707// CHECK-ERROR: instruction requires: sme2
1708// CHECK-UNKNOWN: c1f95819 <unknown>
1709
1710sub     za.d[w10, 1], {z0.d - z3.d}, {z24.d - z27.d}  // 11000001-11111001-01011000-00011001
1711// CHECK-INST: sub     za.d[w10, 1, vgx4], { z0.d - z3.d }, { z24.d - z27.d }
1712// CHECK-ENCODING: [0x19,0x58,0xf9,0xc1]
1713// CHECK-ERROR: instruction requires: sme2
1714// CHECK-UNKNOWN: c1f95819 <unknown>
1715
1716sub     za.d[w8, 5, vgx4], {z20.d - z23.d}, {z28.d - z31.d}  // 11000001-11111101-00011010-10011101
1717// CHECK-INST: sub     za.d[w8, 5, vgx4], { z20.d - z23.d }, { z28.d - z31.d }
1718// CHECK-ENCODING: [0x9d,0x1a,0xfd,0xc1]
1719// CHECK-ERROR: instruction requires: sme2
1720// CHECK-UNKNOWN: c1fd1a9d <unknown>
1721
1722sub     za.d[w8, 5], {z20.d - z23.d}, {z28.d - z31.d}  // 11000001-11111101-00011010-10011101
1723// CHECK-INST: sub     za.d[w8, 5, vgx4], { z20.d - z23.d }, { z28.d - z31.d }
1724// CHECK-ENCODING: [0x9d,0x1a,0xfd,0xc1]
1725// CHECK-ERROR: instruction requires: sme2
1726// CHECK-UNKNOWN: c1fd1a9d <unknown>
1727
1728sub     za.d[w11, 2, vgx4], {z8.d - z11.d}, {z0.d - z3.d}  // 11000001-11100001-01111001-00011010
1729// CHECK-INST: sub     za.d[w11, 2, vgx4], { z8.d - z11.d }, { z0.d - z3.d }
1730// CHECK-ENCODING: [0x1a,0x79,0xe1,0xc1]
1731// CHECK-ERROR: instruction requires: sme2
1732// CHECK-UNKNOWN: c1e1791a <unknown>
1733
1734sub     za.d[w11, 2], {z8.d - z11.d}, {z0.d - z3.d}  // 11000001-11100001-01111001-00011010
1735// CHECK-INST: sub     za.d[w11, 2, vgx4], { z8.d - z11.d }, { z0.d - z3.d }
1736// CHECK-ENCODING: [0x1a,0x79,0xe1,0xc1]
1737// CHECK-ERROR: instruction requires: sme2
1738// CHECK-UNKNOWN: c1e1791a <unknown>
1739
1740sub     za.d[w9, 7, vgx4], {z12.d - z15.d}, {z8.d - z11.d}  // 11000001-11101001-00111001-10011111
1741// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }, { z8.d - z11.d }
1742// CHECK-ENCODING: [0x9f,0x39,0xe9,0xc1]
1743// CHECK-ERROR: instruction requires: sme2
1744// CHECK-UNKNOWN: c1e9399f <unknown>
1745
1746sub     za.d[w9, 7], {z12.d - z15.d}, {z8.d - z11.d}  // 11000001-11101001-00111001-10011111
1747// CHECK-INST: sub     za.d[w9, 7, vgx4], { z12.d - z15.d }, { z8.d - z11.d }
1748// CHECK-ENCODING: [0x9f,0x39,0xe9,0xc1]
1749// CHECK-ERROR: instruction requires: sme2
1750// CHECK-UNKNOWN: c1e9399f <unknown>
1751
1752