xref: /llvm-project/llvm/test/MC/AArch64/SME2/fsub.s (revision 5d67b051e29c2bde42a5004634296b88542c096a)
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sme-f64f64 < %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-f64f64 < %s \
6// RUN:        | llvm-objdump -d --mattr=+sme2,+sme-f64f64 - | FileCheck %s --check-prefix=CHECK-INST
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sme-f64f64 < %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-f64f64 < %s \
10// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
11// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme2,+sme-f64f64 -disassemble -show-encoding \
12// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
13
14
15fsub    za.d[w8, 0, vgx2], {z0.d, z1.d}  // 11000001-11100000-00011100-00001000
16// CHECK-INST: fsub    za.d[w8, 0, vgx2], { z0.d, z1.d }
17// CHECK-ENCODING: [0x08,0x1c,0xe0,0xc1]
18// CHECK-ERROR: instruction requires: sme2 sme-f64f64
19// CHECK-UNKNOWN: c1e01c08 <unknown>
20
21fsub    za.d[w8, 0], {z0.d, z1.d}  // 11000001-11100000-00011100-00001000
22// CHECK-INST: fsub    za.d[w8, 0, vgx2], { z0.d, z1.d }
23// CHECK-ENCODING: [0x08,0x1c,0xe0,0xc1]
24// CHECK-ERROR: instruction requires: sme2 sme-f64f64
25// CHECK-UNKNOWN: c1e01c08 <unknown>
26
27fsub    za.d[w10, 5, vgx2], {z10.d, z11.d}  // 11000001-11100000-01011101-01001101
28// CHECK-INST: fsub    za.d[w10, 5, vgx2], { z10.d, z11.d }
29// CHECK-ENCODING: [0x4d,0x5d,0xe0,0xc1]
30// CHECK-ERROR: instruction requires: sme2 sme-f64f64
31// CHECK-UNKNOWN: c1e05d4d <unknown>
32
33fsub    za.d[w10, 5], {z10.d, z11.d}  // 11000001-11100000-01011101-01001101
34// CHECK-INST: fsub    za.d[w10, 5, vgx2], { z10.d, z11.d }
35// CHECK-ENCODING: [0x4d,0x5d,0xe0,0xc1]
36// CHECK-ERROR: instruction requires: sme2 sme-f64f64
37// CHECK-UNKNOWN: c1e05d4d <unknown>
38
39fsub    za.d[w11, 7, vgx2], {z12.d, z13.d}  // 11000001-11100000-01111101-10001111
40// CHECK-INST: fsub    za.d[w11, 7, vgx2], { z12.d, z13.d }
41// CHECK-ENCODING: [0x8f,0x7d,0xe0,0xc1]
42// CHECK-ERROR: instruction requires: sme2 sme-f64f64
43// CHECK-UNKNOWN: c1e07d8f <unknown>
44
45fsub    za.d[w11, 7], {z12.d, z13.d}  // 11000001-11100000-01111101-10001111
46// CHECK-INST: fsub    za.d[w11, 7, vgx2], { z12.d, z13.d }
47// CHECK-ENCODING: [0x8f,0x7d,0xe0,0xc1]
48// CHECK-ERROR: instruction requires: sme2 sme-f64f64
49// CHECK-UNKNOWN: c1e07d8f <unknown>
50
51fsub    za.d[w11, 7, vgx2], {z30.d, z31.d}  // 11000001-11100000-01111111-11001111
52// CHECK-INST: fsub    za.d[w11, 7, vgx2], { z30.d, z31.d }
53// CHECK-ENCODING: [0xcf,0x7f,0xe0,0xc1]
54// CHECK-ERROR: instruction requires: sme2 sme-f64f64
55// CHECK-UNKNOWN: c1e07fcf <unknown>
56
57fsub    za.d[w11, 7], {z30.d, z31.d}  // 11000001-11100000-01111111-11001111
58// CHECK-INST: fsub    za.d[w11, 7, vgx2], { z30.d, z31.d }
59// CHECK-ENCODING: [0xcf,0x7f,0xe0,0xc1]
60// CHECK-ERROR: instruction requires: sme2 sme-f64f64
61// CHECK-UNKNOWN: c1e07fcf <unknown>
62
63fsub    za.d[w8, 5, vgx2], {z16.d, z17.d}  // 11000001-11100000-00011110-00001101
64// CHECK-INST: fsub    za.d[w8, 5, vgx2], { z16.d, z17.d }
65// CHECK-ENCODING: [0x0d,0x1e,0xe0,0xc1]
66// CHECK-ERROR: instruction requires: sme2 sme-f64f64
67// CHECK-UNKNOWN: c1e01e0d <unknown>
68
69fsub    za.d[w8, 5], {z16.d, z17.d}  // 11000001-11100000-00011110-00001101
70// CHECK-INST: fsub    za.d[w8, 5, vgx2], { z16.d, z17.d }
71// CHECK-ENCODING: [0x0d,0x1e,0xe0,0xc1]
72// CHECK-ERROR: instruction requires: sme2 sme-f64f64
73// CHECK-UNKNOWN: c1e01e0d <unknown>
74
75fsub    za.d[w8, 1, vgx2], {z0.d, z1.d}  // 11000001-11100000-00011100-00001001
76// CHECK-INST: fsub    za.d[w8, 1, vgx2], { z0.d, z1.d }
77// CHECK-ENCODING: [0x09,0x1c,0xe0,0xc1]
78// CHECK-ERROR: instruction requires: sme2 sme-f64f64
79// CHECK-UNKNOWN: c1e01c09 <unknown>
80
81fsub    za.d[w8, 1], {z0.d, z1.d}  // 11000001-11100000-00011100-00001001
82// CHECK-INST: fsub    za.d[w8, 1, vgx2], { z0.d, z1.d }
83// CHECK-ENCODING: [0x09,0x1c,0xe0,0xc1]
84// CHECK-ERROR: instruction requires: sme2 sme-f64f64
85// CHECK-UNKNOWN: c1e01c09 <unknown>
86
87fsub    za.d[w10, 0, vgx2], {z18.d, z19.d}  // 11000001-11100000-01011110-01001000
88// CHECK-INST: fsub    za.d[w10, 0, vgx2], { z18.d, z19.d }
89// CHECK-ENCODING: [0x48,0x5e,0xe0,0xc1]
90// CHECK-ERROR: instruction requires: sme2 sme-f64f64
91// CHECK-UNKNOWN: c1e05e48 <unknown>
92
93fsub    za.d[w10, 0], {z18.d, z19.d}  // 11000001-11100000-01011110-01001000
94// CHECK-INST: fsub    za.d[w10, 0, vgx2], { z18.d, z19.d }
95// CHECK-ENCODING: [0x48,0x5e,0xe0,0xc1]
96// CHECK-ERROR: instruction requires: sme2 sme-f64f64
97// CHECK-UNKNOWN: c1e05e48 <unknown>
98
99fsub    za.d[w8, 0, vgx2], {z12.d, z13.d}  // 11000001-11100000-00011101-10001000
100// CHECK-INST: fsub    za.d[w8, 0, vgx2], { z12.d, z13.d }
101// CHECK-ENCODING: [0x88,0x1d,0xe0,0xc1]
102// CHECK-ERROR: instruction requires: sme2 sme-f64f64
103// CHECK-UNKNOWN: c1e01d88 <unknown>
104
105fsub    za.d[w8, 0], {z12.d, z13.d}  // 11000001-11100000-00011101-10001000
106// CHECK-INST: fsub    za.d[w8, 0, vgx2], { z12.d, z13.d }
107// CHECK-ENCODING: [0x88,0x1d,0xe0,0xc1]
108// CHECK-ERROR: instruction requires: sme2 sme-f64f64
109// CHECK-UNKNOWN: c1e01d88 <unknown>
110
111fsub    za.d[w10, 1, vgx2], {z0.d, z1.d}  // 11000001-11100000-01011100-00001001
112// CHECK-INST: fsub    za.d[w10, 1, vgx2], { z0.d, z1.d }
113// CHECK-ENCODING: [0x09,0x5c,0xe0,0xc1]
114// CHECK-ERROR: instruction requires: sme2 sme-f64f64
115// CHECK-UNKNOWN: c1e05c09 <unknown>
116
117fsub    za.d[w10, 1], {z0.d, z1.d}  // 11000001-11100000-01011100-00001001
118// CHECK-INST: fsub    za.d[w10, 1, vgx2], { z0.d, z1.d }
119// CHECK-ENCODING: [0x09,0x5c,0xe0,0xc1]
120// CHECK-ERROR: instruction requires: sme2 sme-f64f64
121// CHECK-UNKNOWN: c1e05c09 <unknown>
122
123fsub    za.d[w8, 5, vgx2], {z22.d, z23.d}  // 11000001-11100000-00011110-11001101
124// CHECK-INST: fsub    za.d[w8, 5, vgx2], { z22.d, z23.d }
125// CHECK-ENCODING: [0xcd,0x1e,0xe0,0xc1]
126// CHECK-ERROR: instruction requires: sme2 sme-f64f64
127// CHECK-UNKNOWN: c1e01ecd <unknown>
128
129fsub    za.d[w8, 5], {z22.d, z23.d}  // 11000001-11100000-00011110-11001101
130// CHECK-INST: fsub    za.d[w8, 5, vgx2], { z22.d, z23.d }
131// CHECK-ENCODING: [0xcd,0x1e,0xe0,0xc1]
132// CHECK-ERROR: instruction requires: sme2 sme-f64f64
133// CHECK-UNKNOWN: c1e01ecd <unknown>
134
135fsub    za.d[w11, 2, vgx2], {z8.d, z9.d}  // 11000001-11100000-01111101-00001010
136// CHECK-INST: fsub    za.d[w11, 2, vgx2], { z8.d, z9.d }
137// CHECK-ENCODING: [0x0a,0x7d,0xe0,0xc1]
138// CHECK-ERROR: instruction requires: sme2 sme-f64f64
139// CHECK-UNKNOWN: c1e07d0a <unknown>
140
141fsub    za.d[w11, 2], {z8.d, z9.d}  // 11000001-11100000-01111101-00001010
142// CHECK-INST: fsub    za.d[w11, 2, vgx2], { z8.d, z9.d }
143// CHECK-ENCODING: [0x0a,0x7d,0xe0,0xc1]
144// CHECK-ERROR: instruction requires: sme2 sme-f64f64
145// CHECK-UNKNOWN: c1e07d0a <unknown>
146
147fsub    za.d[w9, 7, vgx2], {z12.d, z13.d}  // 11000001-11100000-00111101-10001111
148// CHECK-INST: fsub    za.d[w9, 7, vgx2], { z12.d, z13.d }
149// CHECK-ENCODING: [0x8f,0x3d,0xe0,0xc1]
150// CHECK-ERROR: instruction requires: sme2 sme-f64f64
151// CHECK-UNKNOWN: c1e03d8f <unknown>
152
153fsub    za.d[w9, 7], {z12.d, z13.d}  // 11000001-11100000-00111101-10001111
154// CHECK-INST: fsub    za.d[w9, 7, vgx2], { z12.d, z13.d }
155// CHECK-ENCODING: [0x8f,0x3d,0xe0,0xc1]
156// CHECK-ERROR: instruction requires: sme2 sme-f64f64
157// CHECK-UNKNOWN: c1e03d8f <unknown>
158
159
160fsub    za.s[w8, 0, vgx2], {z0.s, z1.s}  // 11000001-10100000-00011100-00001000
161// CHECK-INST: fsub    za.s[w8, 0, vgx2], { z0.s, z1.s }
162// CHECK-ENCODING: [0x08,0x1c,0xa0,0xc1]
163// CHECK-ERROR: instruction requires: sme2
164// CHECK-UNKNOWN: c1a01c08 <unknown>
165
166fsub    za.s[w8, 0], {z0.s, z1.s}  // 11000001-10100000-00011100-00001000
167// CHECK-INST: fsub    za.s[w8, 0, vgx2], { z0.s, z1.s }
168// CHECK-ENCODING: [0x08,0x1c,0xa0,0xc1]
169// CHECK-ERROR: instruction requires: sme2
170// CHECK-UNKNOWN: c1a01c08 <unknown>
171
172fsub    za.s[w10, 5, vgx2], {z10.s, z11.s}  // 11000001-10100000-01011101-01001101
173// CHECK-INST: fsub    za.s[w10, 5, vgx2], { z10.s, z11.s }
174// CHECK-ENCODING: [0x4d,0x5d,0xa0,0xc1]
175// CHECK-ERROR: instruction requires: sme2
176// CHECK-UNKNOWN: c1a05d4d <unknown>
177
178fsub    za.s[w10, 5], {z10.s, z11.s}  // 11000001-10100000-01011101-01001101
179// CHECK-INST: fsub    za.s[w10, 5, vgx2], { z10.s, z11.s }
180// CHECK-ENCODING: [0x4d,0x5d,0xa0,0xc1]
181// CHECK-ERROR: instruction requires: sme2
182// CHECK-UNKNOWN: c1a05d4d <unknown>
183
184fsub    za.s[w11, 7, vgx2], {z12.s, z13.s}  // 11000001-10100000-01111101-10001111
185// CHECK-INST: fsub    za.s[w11, 7, vgx2], { z12.s, z13.s }
186// CHECK-ENCODING: [0x8f,0x7d,0xa0,0xc1]
187// CHECK-ERROR: instruction requires: sme2
188// CHECK-UNKNOWN: c1a07d8f <unknown>
189
190fsub    za.s[w11, 7], {z12.s, z13.s}  // 11000001-10100000-01111101-10001111
191// CHECK-INST: fsub    za.s[w11, 7, vgx2], { z12.s, z13.s }
192// CHECK-ENCODING: [0x8f,0x7d,0xa0,0xc1]
193// CHECK-ERROR: instruction requires: sme2
194// CHECK-UNKNOWN: c1a07d8f <unknown>
195
196fsub    za.s[w11, 7, vgx2], {z30.s, z31.s}  // 11000001-10100000-01111111-11001111
197// CHECK-INST: fsub    za.s[w11, 7, vgx2], { z30.s, z31.s }
198// CHECK-ENCODING: [0xcf,0x7f,0xa0,0xc1]
199// CHECK-ERROR: instruction requires: sme2
200// CHECK-UNKNOWN: c1a07fcf <unknown>
201
202fsub    za.s[w11, 7], {z30.s, z31.s}  // 11000001-10100000-01111111-11001111
203// CHECK-INST: fsub    za.s[w11, 7, vgx2], { z30.s, z31.s }
204// CHECK-ENCODING: [0xcf,0x7f,0xa0,0xc1]
205// CHECK-ERROR: instruction requires: sme2
206// CHECK-UNKNOWN: c1a07fcf <unknown>
207
208fsub    za.s[w8, 5, vgx2], {z16.s, z17.s}  // 11000001-10100000-00011110-00001101
209// CHECK-INST: fsub    za.s[w8, 5, vgx2], { z16.s, z17.s }
210// CHECK-ENCODING: [0x0d,0x1e,0xa0,0xc1]
211// CHECK-ERROR: instruction requires: sme2
212// CHECK-UNKNOWN: c1a01e0d <unknown>
213
214fsub    za.s[w8, 5], {z16.s, z17.s}  // 11000001-10100000-00011110-00001101
215// CHECK-INST: fsub    za.s[w8, 5, vgx2], { z16.s, z17.s }
216// CHECK-ENCODING: [0x0d,0x1e,0xa0,0xc1]
217// CHECK-ERROR: instruction requires: sme2
218// CHECK-UNKNOWN: c1a01e0d <unknown>
219
220fsub    za.s[w8, 1, vgx2], {z0.s, z1.s}  // 11000001-10100000-00011100-00001001
221// CHECK-INST: fsub    za.s[w8, 1, vgx2], { z0.s, z1.s }
222// CHECK-ENCODING: [0x09,0x1c,0xa0,0xc1]
223// CHECK-ERROR: instruction requires: sme2
224// CHECK-UNKNOWN: c1a01c09 <unknown>
225
226fsub    za.s[w8, 1], {z0.s, z1.s}  // 11000001-10100000-00011100-00001001
227// CHECK-INST: fsub    za.s[w8, 1, vgx2], { z0.s, z1.s }
228// CHECK-ENCODING: [0x09,0x1c,0xa0,0xc1]
229// CHECK-ERROR: instruction requires: sme2
230// CHECK-UNKNOWN: c1a01c09 <unknown>
231
232fsub    za.s[w10, 0, vgx2], {z18.s, z19.s}  // 11000001-10100000-01011110-01001000
233// CHECK-INST: fsub    za.s[w10, 0, vgx2], { z18.s, z19.s }
234// CHECK-ENCODING: [0x48,0x5e,0xa0,0xc1]
235// CHECK-ERROR: instruction requires: sme2
236// CHECK-UNKNOWN: c1a05e48 <unknown>
237
238fsub    za.s[w10, 0], {z18.s, z19.s}  // 11000001-10100000-01011110-01001000
239// CHECK-INST: fsub    za.s[w10, 0, vgx2], { z18.s, z19.s }
240// CHECK-ENCODING: [0x48,0x5e,0xa0,0xc1]
241// CHECK-ERROR: instruction requires: sme2
242// CHECK-UNKNOWN: c1a05e48 <unknown>
243
244fsub    za.s[w8, 0, vgx2], {z12.s, z13.s}  // 11000001-10100000-00011101-10001000
245// CHECK-INST: fsub    za.s[w8, 0, vgx2], { z12.s, z13.s }
246// CHECK-ENCODING: [0x88,0x1d,0xa0,0xc1]
247// CHECK-ERROR: instruction requires: sme2
248// CHECK-UNKNOWN: c1a01d88 <unknown>
249
250fsub    za.s[w8, 0], {z12.s, z13.s}  // 11000001-10100000-00011101-10001000
251// CHECK-INST: fsub    za.s[w8, 0, vgx2], { z12.s, z13.s }
252// CHECK-ENCODING: [0x88,0x1d,0xa0,0xc1]
253// CHECK-ERROR: instruction requires: sme2
254// CHECK-UNKNOWN: c1a01d88 <unknown>
255
256fsub    za.s[w10, 1, vgx2], {z0.s, z1.s}  // 11000001-10100000-01011100-00001001
257// CHECK-INST: fsub    za.s[w10, 1, vgx2], { z0.s, z1.s }
258// CHECK-ENCODING: [0x09,0x5c,0xa0,0xc1]
259// CHECK-ERROR: instruction requires: sme2
260// CHECK-UNKNOWN: c1a05c09 <unknown>
261
262fsub    za.s[w10, 1], {z0.s, z1.s}  // 11000001-10100000-01011100-00001001
263// CHECK-INST: fsub    za.s[w10, 1, vgx2], { z0.s, z1.s }
264// CHECK-ENCODING: [0x09,0x5c,0xa0,0xc1]
265// CHECK-ERROR: instruction requires: sme2
266// CHECK-UNKNOWN: c1a05c09 <unknown>
267
268fsub    za.s[w8, 5, vgx2], {z22.s, z23.s}  // 11000001-10100000-00011110-11001101
269// CHECK-INST: fsub    za.s[w8, 5, vgx2], { z22.s, z23.s }
270// CHECK-ENCODING: [0xcd,0x1e,0xa0,0xc1]
271// CHECK-ERROR: instruction requires: sme2
272// CHECK-UNKNOWN: c1a01ecd <unknown>
273
274fsub    za.s[w8, 5], {z22.s, z23.s}  // 11000001-10100000-00011110-11001101
275// CHECK-INST: fsub    za.s[w8, 5, vgx2], { z22.s, z23.s }
276// CHECK-ENCODING: [0xcd,0x1e,0xa0,0xc1]
277// CHECK-ERROR: instruction requires: sme2
278// CHECK-UNKNOWN: c1a01ecd <unknown>
279
280fsub    za.s[w11, 2, vgx2], {z8.s, z9.s}  // 11000001-10100000-01111101-00001010
281// CHECK-INST: fsub    za.s[w11, 2, vgx2], { z8.s, z9.s }
282// CHECK-ENCODING: [0x0a,0x7d,0xa0,0xc1]
283// CHECK-ERROR: instruction requires: sme2
284// CHECK-UNKNOWN: c1a07d0a <unknown>
285
286fsub    za.s[w11, 2], {z8.s, z9.s}  // 11000001-10100000-01111101-00001010
287// CHECK-INST: fsub    za.s[w11, 2, vgx2], { z8.s, z9.s }
288// CHECK-ENCODING: [0x0a,0x7d,0xa0,0xc1]
289// CHECK-ERROR: instruction requires: sme2
290// CHECK-UNKNOWN: c1a07d0a <unknown>
291
292fsub    za.s[w9, 7, vgx2], {z12.s, z13.s}  // 11000001-10100000-00111101-10001111
293// CHECK-INST: fsub    za.s[w9, 7, vgx2], { z12.s, z13.s }
294// CHECK-ENCODING: [0x8f,0x3d,0xa0,0xc1]
295// CHECK-ERROR: instruction requires: sme2
296// CHECK-UNKNOWN: c1a03d8f <unknown>
297
298fsub    za.s[w9, 7], {z12.s, z13.s}  // 11000001-10100000-00111101-10001111
299// CHECK-INST: fsub    za.s[w9, 7, vgx2], { z12.s, z13.s }
300// CHECK-ENCODING: [0x8f,0x3d,0xa0,0xc1]
301// CHECK-ERROR: instruction requires: sme2
302// CHECK-UNKNOWN: c1a03d8f <unknown>
303
304
305fsub    za.d[w8, 0, vgx4], {z0.d - z3.d}  // 11000001-11100001-00011100-00001000
306// CHECK-INST: fsub    za.d[w8, 0, vgx4], { z0.d - z3.d }
307// CHECK-ENCODING: [0x08,0x1c,0xe1,0xc1]
308// CHECK-ERROR: instruction requires: sme2 sme-f64f64
309// CHECK-UNKNOWN: c1e11c08 <unknown>
310
311fsub    za.d[w8, 0], {z0.d - z3.d}  // 11000001-11100001-00011100-00001000
312// CHECK-INST: fsub    za.d[w8, 0, vgx4], { z0.d - z3.d }
313// CHECK-ENCODING: [0x08,0x1c,0xe1,0xc1]
314// CHECK-ERROR: instruction requires: sme2 sme-f64f64
315// CHECK-UNKNOWN: c1e11c08 <unknown>
316
317fsub    za.d[w10, 5, vgx4], {z8.d - z11.d}  // 11000001-11100001-01011101-00001101
318// CHECK-INST: fsub    za.d[w10, 5, vgx4], { z8.d - z11.d }
319// CHECK-ENCODING: [0x0d,0x5d,0xe1,0xc1]
320// CHECK-ERROR: instruction requires: sme2 sme-f64f64
321// CHECK-UNKNOWN: c1e15d0d <unknown>
322
323fsub    za.d[w10, 5], {z8.d - z11.d}  // 11000001-11100001-01011101-00001101
324// CHECK-INST: fsub    za.d[w10, 5, vgx4], { z8.d - z11.d }
325// CHECK-ENCODING: [0x0d,0x5d,0xe1,0xc1]
326// CHECK-ERROR: instruction requires: sme2 sme-f64f64
327// CHECK-UNKNOWN: c1e15d0d <unknown>
328
329fsub    za.d[w11, 7, vgx4], {z12.d - z15.d}  // 11000001-11100001-01111101-10001111
330// CHECK-INST: fsub    za.d[w11, 7, vgx4], { z12.d - z15.d }
331// CHECK-ENCODING: [0x8f,0x7d,0xe1,0xc1]
332// CHECK-ERROR: instruction requires: sme2 sme-f64f64
333// CHECK-UNKNOWN: c1e17d8f <unknown>
334
335fsub    za.d[w11, 7], {z12.d - z15.d}  // 11000001-11100001-01111101-10001111
336// CHECK-INST: fsub    za.d[w11, 7, vgx4], { z12.d - z15.d }
337// CHECK-ENCODING: [0x8f,0x7d,0xe1,0xc1]
338// CHECK-ERROR: instruction requires: sme2 sme-f64f64
339// CHECK-UNKNOWN: c1e17d8f <unknown>
340
341fsub    za.d[w11, 7, vgx4], {z28.d - z31.d}  // 11000001-11100001-01111111-10001111
342// CHECK-INST: fsub    za.d[w11, 7, vgx4], { z28.d - z31.d }
343// CHECK-ENCODING: [0x8f,0x7f,0xe1,0xc1]
344// CHECK-ERROR: instruction requires: sme2 sme-f64f64
345// CHECK-UNKNOWN: c1e17f8f <unknown>
346
347fsub    za.d[w11, 7], {z28.d - z31.d}  // 11000001-11100001-01111111-10001111
348// CHECK-INST: fsub    za.d[w11, 7, vgx4], { z28.d - z31.d }
349// CHECK-ENCODING: [0x8f,0x7f,0xe1,0xc1]
350// CHECK-ERROR: instruction requires: sme2 sme-f64f64
351// CHECK-UNKNOWN: c1e17f8f <unknown>
352
353fsub    za.d[w8, 5, vgx4], {z16.d - z19.d}  // 11000001-11100001-00011110-00001101
354// CHECK-INST: fsub    za.d[w8, 5, vgx4], { z16.d - z19.d }
355// CHECK-ENCODING: [0x0d,0x1e,0xe1,0xc1]
356// CHECK-ERROR: instruction requires: sme2 sme-f64f64
357// CHECK-UNKNOWN: c1e11e0d <unknown>
358
359fsub    za.d[w8, 5], {z16.d - z19.d}  // 11000001-11100001-00011110-00001101
360// CHECK-INST: fsub    za.d[w8, 5, vgx4], { z16.d - z19.d }
361// CHECK-ENCODING: [0x0d,0x1e,0xe1,0xc1]
362// CHECK-ERROR: instruction requires: sme2 sme-f64f64
363// CHECK-UNKNOWN: c1e11e0d <unknown>
364
365fsub    za.d[w8, 1, vgx4], {z0.d - z3.d}  // 11000001-11100001-00011100-00001001
366// CHECK-INST: fsub    za.d[w8, 1, vgx4], { z0.d - z3.d }
367// CHECK-ENCODING: [0x09,0x1c,0xe1,0xc1]
368// CHECK-ERROR: instruction requires: sme2 sme-f64f64
369// CHECK-UNKNOWN: c1e11c09 <unknown>
370
371fsub    za.d[w8, 1], {z0.d - z3.d}  // 11000001-11100001-00011100-00001001
372// CHECK-INST: fsub    za.d[w8, 1, vgx4], { z0.d - z3.d }
373// CHECK-ENCODING: [0x09,0x1c,0xe1,0xc1]
374// CHECK-ERROR: instruction requires: sme2 sme-f64f64
375// CHECK-UNKNOWN: c1e11c09 <unknown>
376
377fsub    za.d[w10, 0, vgx4], {z16.d - z19.d}  // 11000001-11100001-01011110-00001000
378// CHECK-INST: fsub    za.d[w10, 0, vgx4], { z16.d - z19.d }
379// CHECK-ENCODING: [0x08,0x5e,0xe1,0xc1]
380// CHECK-ERROR: instruction requires: sme2 sme-f64f64
381// CHECK-UNKNOWN: c1e15e08 <unknown>
382
383fsub    za.d[w10, 0], {z16.d - z19.d}  // 11000001-11100001-01011110-00001000
384// CHECK-INST: fsub    za.d[w10, 0, vgx4], { z16.d - z19.d }
385// CHECK-ENCODING: [0x08,0x5e,0xe1,0xc1]
386// CHECK-ERROR: instruction requires: sme2 sme-f64f64
387// CHECK-UNKNOWN: c1e15e08 <unknown>
388
389fsub    za.d[w8, 0, vgx4], {z12.d - z15.d}  // 11000001-11100001-00011101-10001000
390// CHECK-INST: fsub    za.d[w8, 0, vgx4], { z12.d - z15.d }
391// CHECK-ENCODING: [0x88,0x1d,0xe1,0xc1]
392// CHECK-ERROR: instruction requires: sme2
393// CHECK-UNKNOWN: c1e11d88 <unknown>
394
395fsub    za.d[w8, 0], {z12.d - z15.d}  // 11000001-11100001-00011101-10001000
396// CHECK-INST: fsub    za.d[w8, 0, vgx4], { z12.d - z15.d }
397// CHECK-ENCODING: [0x88,0x1d,0xe1,0xc1]
398// CHECK-ERROR: instruction requires: sme2 sme-f64f64
399// CHECK-UNKNOWN: c1e11d88 <unknown>
400
401fsub    za.d[w10, 1, vgx4], {z0.d - z3.d}  // 11000001-11100001-01011100-00001001
402// CHECK-INST: fsub    za.d[w10, 1, vgx4], { z0.d - z3.d }
403// CHECK-ENCODING: [0x09,0x5c,0xe1,0xc1]
404// CHECK-ERROR: instruction requires: sme2 sme-f64f64
405// CHECK-UNKNOWN: c1e15c09 <unknown>
406
407fsub    za.d[w10, 1], {z0.d - z3.d}  // 11000001-11100001-01011100-00001001
408// CHECK-INST: fsub    za.d[w10, 1, vgx4], { z0.d - z3.d }
409// CHECK-ENCODING: [0x09,0x5c,0xe1,0xc1]
410// CHECK-ERROR: instruction requires: sme2 sme-f64f64
411// CHECK-UNKNOWN: c1e15c09 <unknown>
412
413fsub    za.d[w8, 5, vgx4], {z20.d - z23.d}  // 11000001-11100001-00011110-10001101
414// CHECK-INST: fsub    za.d[w8, 5, vgx4], { z20.d - z23.d }
415// CHECK-ENCODING: [0x8d,0x1e,0xe1,0xc1]
416// CHECK-ERROR: instruction requires: sme2 sme-f64f64
417// CHECK-UNKNOWN: c1e11e8d <unknown>
418
419fsub    za.d[w8, 5], {z20.d - z23.d}  // 11000001-11100001-00011110-10001101
420// CHECK-INST: fsub    za.d[w8, 5, vgx4], { z20.d - z23.d }
421// CHECK-ENCODING: [0x8d,0x1e,0xe1,0xc1]
422// CHECK-ERROR: instruction requires: sme2 sme-f64f64
423// CHECK-UNKNOWN: c1e11e8d <unknown>
424
425fsub    za.d[w11, 2, vgx4], {z8.d - z11.d}  // 11000001-11100001-01111101-00001010
426// CHECK-INST: fsub    za.d[w11, 2, vgx4], { z8.d - z11.d }
427// CHECK-ENCODING: [0x0a,0x7d,0xe1,0xc1]
428// CHECK-ERROR: instruction requires: sme2 sme-f64f64
429// CHECK-UNKNOWN: c1e17d0a <unknown>
430
431fsub    za.d[w11, 2], {z8.d - z11.d}  // 11000001-11100001-01111101-00001010
432// CHECK-INST: fsub    za.d[w11, 2, vgx4], { z8.d - z11.d }
433// CHECK-ENCODING: [0x0a,0x7d,0xe1,0xc1]
434// CHECK-ERROR: instruction requires: sme2 sme-f64f64
435// CHECK-UNKNOWN: c1e17d0a <unknown>
436
437fsub    za.d[w9, 7, vgx4], {z12.d - z15.d}  // 11000001-11100001-00111101-10001111
438// CHECK-INST: fsub    za.d[w9, 7, vgx4], { z12.d - z15.d }
439// CHECK-ENCODING: [0x8f,0x3d,0xe1,0xc1]
440// CHECK-ERROR: instruction requires: sme2 sme-f64f64
441// CHECK-UNKNOWN: c1e13d8f <unknown>
442
443fsub    za.d[w9, 7], {z12.d - z15.d}  // 11000001-11100001-00111101-10001111
444// CHECK-INST: fsub    za.d[w9, 7, vgx4], { z12.d - z15.d }
445// CHECK-ENCODING: [0x8f,0x3d,0xe1,0xc1]
446// CHECK-ERROR: instruction requires: sme2 sme-f64f64
447// CHECK-UNKNOWN: c1e13d8f <unknown>
448
449
450fsub    za.s[w8, 0, vgx4], {z0.s - z3.s}  // 11000001-10100001-00011100-00001000
451// CHECK-INST: fsub    za.s[w8, 0, vgx4], { z0.s - z3.s }
452// CHECK-ENCODING: [0x08,0x1c,0xa1,0xc1]
453// CHECK-ERROR: instruction requires: sme2
454// CHECK-UNKNOWN: c1a11c08 <unknown>
455
456fsub    za.s[w8, 0], {z0.s - z3.s}  // 11000001-10100001-00011100-00001000
457// CHECK-INST: fsub    za.s[w8, 0, vgx4], { z0.s - z3.s }
458// CHECK-ENCODING: [0x08,0x1c,0xa1,0xc1]
459// CHECK-ERROR: instruction requires: sme2
460// CHECK-UNKNOWN: c1a11c08 <unknown>
461
462fsub    za.s[w10, 5, vgx4], {z8.s - z11.s}  // 11000001-10100001-01011101-00001101
463// CHECK-INST: fsub    za.s[w10, 5, vgx4], { z8.s - z11.s }
464// CHECK-ENCODING: [0x0d,0x5d,0xa1,0xc1]
465// CHECK-ERROR: instruction requires: sme2
466// CHECK-UNKNOWN: c1a15d0d <unknown>
467
468fsub    za.s[w10, 5], {z8.s - z11.s}  // 11000001-10100001-01011101-00001101
469// CHECK-INST: fsub    za.s[w10, 5, vgx4], { z8.s - z11.s }
470// CHECK-ENCODING: [0x0d,0x5d,0xa1,0xc1]
471// CHECK-ERROR: instruction requires: sme2
472// CHECK-UNKNOWN: c1a15d0d <unknown>
473
474fsub    za.s[w11, 7, vgx4], {z12.s - z15.s}  // 11000001-10100001-01111101-10001111
475// CHECK-INST: fsub    za.s[w11, 7, vgx4], { z12.s - z15.s }
476// CHECK-ENCODING: [0x8f,0x7d,0xa1,0xc1]
477// CHECK-ERROR: instruction requires: sme2
478// CHECK-UNKNOWN: c1a17d8f <unknown>
479
480fsub    za.s[w11, 7], {z12.s - z15.s}  // 11000001-10100001-01111101-10001111
481// CHECK-INST: fsub    za.s[w11, 7, vgx4], { z12.s - z15.s }
482// CHECK-ENCODING: [0x8f,0x7d,0xa1,0xc1]
483// CHECK-ERROR: instruction requires: sme2
484// CHECK-UNKNOWN: c1a17d8f <unknown>
485
486fsub    za.s[w11, 7, vgx4], {z28.s - z31.s}  // 11000001-10100001-01111111-10001111
487// CHECK-INST: fsub    za.s[w11, 7, vgx4], { z28.s - z31.s }
488// CHECK-ENCODING: [0x8f,0x7f,0xa1,0xc1]
489// CHECK-ERROR: instruction requires: sme2
490// CHECK-UNKNOWN: c1a17f8f <unknown>
491
492fsub    za.s[w11, 7], {z28.s - z31.s}  // 11000001-10100001-01111111-10001111
493// CHECK-INST: fsub    za.s[w11, 7, vgx4], { z28.s - z31.s }
494// CHECK-ENCODING: [0x8f,0x7f,0xa1,0xc1]
495// CHECK-ERROR: instruction requires: sme2
496// CHECK-UNKNOWN: c1a17f8f <unknown>
497
498fsub    za.s[w8, 5, vgx4], {z16.s - z19.s}  // 11000001-10100001-00011110-00001101
499// CHECK-INST: fsub    za.s[w8, 5, vgx4], { z16.s - z19.s }
500// CHECK-ENCODING: [0x0d,0x1e,0xa1,0xc1]
501// CHECK-ERROR: instruction requires: sme2
502// CHECK-UNKNOWN: c1a11e0d <unknown>
503
504fsub    za.s[w8, 5], {z16.s - z19.s}  // 11000001-10100001-00011110-00001101
505// CHECK-INST: fsub    za.s[w8, 5, vgx4], { z16.s - z19.s }
506// CHECK-ENCODING: [0x0d,0x1e,0xa1,0xc1]
507// CHECK-ERROR: instruction requires: sme2
508// CHECK-UNKNOWN: c1a11e0d <unknown>
509
510fsub    za.s[w8, 1, vgx4], {z0.s - z3.s}  // 11000001-10100001-00011100-00001001
511// CHECK-INST: fsub    za.s[w8, 1, vgx4], { z0.s - z3.s }
512// CHECK-ENCODING: [0x09,0x1c,0xa1,0xc1]
513// CHECK-ERROR: instruction requires: sme2
514// CHECK-UNKNOWN: c1a11c09 <unknown>
515
516fsub    za.s[w8, 1], {z0.s - z3.s}  // 11000001-10100001-00011100-00001001
517// CHECK-INST: fsub    za.s[w8, 1, vgx4], { z0.s - z3.s }
518// CHECK-ENCODING: [0x09,0x1c,0xa1,0xc1]
519// CHECK-ERROR: instruction requires: sme2
520// CHECK-UNKNOWN: c1a11c09 <unknown>
521
522fsub    za.s[w10, 0, vgx4], {z16.s - z19.s}  // 11000001-10100001-01011110-00001000
523// CHECK-INST: fsub    za.s[w10, 0, vgx4], { z16.s - z19.s }
524// CHECK-ENCODING: [0x08,0x5e,0xa1,0xc1]
525// CHECK-ERROR: instruction requires: sme2
526// CHECK-UNKNOWN: c1a15e08 <unknown>
527
528fsub    za.s[w10, 0], {z16.s - z19.s}  // 11000001-10100001-01011110-00001000
529// CHECK-INST: fsub    za.s[w10, 0, vgx4], { z16.s - z19.s }
530// CHECK-ENCODING: [0x08,0x5e,0xa1,0xc1]
531// CHECK-ERROR: instruction requires: sme2
532// CHECK-UNKNOWN: c1a15e08 <unknown>
533
534fsub    za.s[w8, 0, vgx4], {z12.s - z15.s}  // 11000001-10100001-00011101-10001000
535// CHECK-INST: fsub    za.s[w8, 0, vgx4], { z12.s - z15.s }
536// CHECK-ENCODING: [0x88,0x1d,0xa1,0xc1]
537// CHECK-ERROR: instruction requires: sme2
538// CHECK-UNKNOWN: c1a11d88 <unknown>
539
540fsub    za.s[w8, 0], {z12.s - z15.s}  // 11000001-10100001-00011101-10001000
541// CHECK-INST: fsub    za.s[w8, 0, vgx4], { z12.s - z15.s }
542// CHECK-ENCODING: [0x88,0x1d,0xa1,0xc1]
543// CHECK-ERROR: instruction requires: sme2
544// CHECK-UNKNOWN: c1a11d88 <unknown>
545
546fsub    za.s[w10, 1, vgx4], {z0.s - z3.s}  // 11000001-10100001-01011100-00001001
547// CHECK-INST: fsub    za.s[w10, 1, vgx4], { z0.s - z3.s }
548// CHECK-ENCODING: [0x09,0x5c,0xa1,0xc1]
549// CHECK-ERROR: instruction requires: sme2
550// CHECK-UNKNOWN: c1a15c09 <unknown>
551
552fsub    za.s[w10, 1], {z0.s - z3.s}  // 11000001-10100001-01011100-00001001
553// CHECK-INST: fsub    za.s[w10, 1, vgx4], { z0.s - z3.s }
554// CHECK-ENCODING: [0x09,0x5c,0xa1,0xc1]
555// CHECK-ERROR: instruction requires: sme2
556// CHECK-UNKNOWN: c1a15c09 <unknown>
557
558fsub    za.s[w8, 5, vgx4], {z20.s - z23.s}  // 11000001-10100001-00011110-10001101
559// CHECK-INST: fsub    za.s[w8, 5, vgx4], { z20.s - z23.s }
560// CHECK-ENCODING: [0x8d,0x1e,0xa1,0xc1]
561// CHECK-ERROR: instruction requires: sme2
562// CHECK-UNKNOWN: c1a11e8d <unknown>
563
564fsub    za.s[w8, 5], {z20.s - z23.s}  // 11000001-10100001-00011110-10001101
565// CHECK-INST: fsub    za.s[w8, 5, vgx4], { z20.s - z23.s }
566// CHECK-ENCODING: [0x8d,0x1e,0xa1,0xc1]
567// CHECK-ERROR: instruction requires: sme2
568// CHECK-UNKNOWN: c1a11e8d <unknown>
569
570fsub    za.s[w11, 2, vgx4], {z8.s - z11.s}  // 11000001-10100001-01111101-00001010
571// CHECK-INST: fsub    za.s[w11, 2, vgx4], { z8.s - z11.s }
572// CHECK-ENCODING: [0x0a,0x7d,0xa1,0xc1]
573// CHECK-ERROR: instruction requires: sme2
574// CHECK-UNKNOWN: c1a17d0a <unknown>
575
576fsub    za.s[w11, 2], {z8.s - z11.s}  // 11000001-10100001-01111101-00001010
577// CHECK-INST: fsub    za.s[w11, 2, vgx4], { z8.s - z11.s }
578// CHECK-ENCODING: [0x0a,0x7d,0xa1,0xc1]
579// CHECK-ERROR: instruction requires: sme2
580// CHECK-UNKNOWN: c1a17d0a <unknown>
581
582fsub    za.s[w9, 7, vgx4], {z12.s - z15.s}  // 11000001-10100001-00111101-10001111
583// CHECK-INST: fsub    za.s[w9, 7, vgx4], { z12.s - z15.s }
584// CHECK-ENCODING: [0x8f,0x3d,0xa1,0xc1]
585// CHECK-ERROR: instruction requires: sme2
586// CHECK-UNKNOWN: c1a13d8f <unknown>
587
588fsub    za.s[w9, 7], {z12.s - z15.s}  // 11000001-10100001-00111101-10001111
589// CHECK-INST: fsub    za.s[w9, 7, vgx4], { z12.s - z15.s }
590// CHECK-ENCODING: [0x8f,0x3d,0xa1,0xc1]
591// CHECK-ERROR: instruction requires: sme2
592// CHECK-UNKNOWN: c1a13d8f <unknown>
593
594