xref: /llvm-project/llvm/test/MC/AArch64/FP8_SME2/mla.s (revision f6ca0ed0385f57adf814439dfa7585a00284a144)
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-f8f16,+sme-f8f32 < %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=+sme-f8f16,+sme-f8f32 < %s \
6// RUN:        | llvm-objdump -d --mattr=+sme-f8f16,+sme-f8f32 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-f8f16,+sme-f8f32 < %s \
8// RUN:        | llvm-objdump -d --mattr=-sme-f8f16,-sme-f8f32 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9// Disassemble encoding and check the re-encoding (-show-encoding) matches.
10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-f8f16,+sme-f8f32 < %s \
11// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
12// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme-f8f16,+sme-f8f32 -disassemble -show-encoding \
13// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
14
15
16fmlal   za.h[w8, 0:1], z0.b, z0.b  // 11000001-00110000-00001100-00000000
17// CHECK-INST: fmlal   za.h[w8, 0:1], z0.b, z0.b
18// CHECK-ENCODING: [0x00,0x0c,0x30,0xc1]
19// CHECK-ERROR: instruction requires: sme-f8f16
20// CHECK-UNKNOWN: c1300c00 <unknown>
21
22fmlal   za.h[w11, 14:15], z31.b, z15.b  // 11000001-00111111-01101111-11100111
23// CHECK-INST: fmlal   za.h[w11, 14:15], z31.b, z15.b
24// CHECK-ENCODING: [0xe7,0x6f,0x3f,0xc1]
25// CHECK-ERROR: instruction requires: sme-f8f16
26// CHECK-UNKNOWN: c13f6fe7 <unknown>
27
28fmlal   za.h[w8, 0:1], z0.b, z0.b[0]  // 11000001-11000000-00000000-00000000
29// CHECK-INST: fmlal   za.h[w8, 0:1], z0.b, z0.b[0]
30// CHECK-ENCODING: [0x00,0x00,0xc0,0xc1]
31// CHECK-ERROR: instruction requires: sme-f8f16
32// CHECK-UNKNOWN: c1c00000 <unknown>
33
34fmlal   za.h[w11, 14:15], z31.b, z15.b[15]  // 11000001-11001111-11101111-11101111
35// CHECK-INST: fmlal   za.h[w11, 14:15], z31.b, z15.b[15]
36// CHECK-ENCODING: [0xef,0xef,0xcf,0xc1]
37// CHECK-ERROR: instruction requires: sme-f8f16
38// CHECK-UNKNOWN: c1cfefef <unknown>
39
40// x2
41
42fmlal   za.h[w8, 0:1, vgx2], {z0.b-z1.b}, z0.b  // 11000001-00100000-00001000-00000100
43// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, z0.b
44// CHECK-ENCODING: [0x04,0x08,0x20,0xc1]
45// CHECK-ERROR: instruction requires: sme-f8f16
46// CHECK-UNKNOWN: c1200804 <unknown>
47
48fmlal   za.h[w8, 0:1], {z0.b-z1.b}, z0.b  // 11000001-00100000-00001000-00000100
49// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, z0.b
50// CHECK-ENCODING: [0x04,0x08,0x20,0xc1]
51// CHECK-ERROR: instruction requires: sme-f8f16
52// CHECK-UNKNOWN: c1200804 <unknown>
53
54fmlal   za.h[w11, 6:7, vgx2], {z31.b-z0.b}, z15.b  // 11000001-00101111-01101011-11100111
55// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z31.b, z0.b }, z15.b
56// CHECK-ENCODING: [0xe7,0x6b,0x2f,0xc1]
57// CHECK-ERROR: instruction requires: sme-f8f16
58// CHECK-UNKNOWN: c12f6be7 <unknown>
59
60fmlal   za.h[w11, 6:7], {z31.b-z0.b}, z15.b  // 11000001-00101111-01101011-11100111
61// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z31.b, z0.b }, z15.b
62// CHECK-ENCODING: [0xe7,0x6b,0x2f,0xc1]
63// CHECK-ERROR: instruction requires: sme-f8f16
64// CHECK-UNKNOWN: c12f6be7 <unknown>
65
66fmlal   za.h[w8, 0:1, vgx2], {z0.b-z1.b}, {z0.b-z1.b}  // 11000001-10100000-00001000-00100000
67// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
68// CHECK-ENCODING: [0x20,0x08,0xa0,0xc1]
69// CHECK-ERROR: instruction requires: sme-f8f16
70// CHECK-UNKNOWN: c1a00820 <unknown>
71
72fmlal   za.h[w8, 0:1], {z0.b-z1.b}, {z0.b-z1.b}  // 11000001-10100000-00001000-00100000
73// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
74// CHECK-ENCODING: [0x20,0x08,0xa0,0xc1]
75// CHECK-ERROR: instruction requires: sme-f8f16
76// CHECK-UNKNOWN: c1a00820 <unknown>
77
78fmlal   za.h[w11, 6:7, vgx2], {z30.b-z31.b}, {z30.b-z31.b}  // 11000001-10111110-01101011-11100011
79// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
80// CHECK-ENCODING: [0xe3,0x6b,0xbe,0xc1]
81// CHECK-ERROR: instruction requires: sme-f8f16
82// CHECK-UNKNOWN: c1be6be3 <unknown>
83
84fmlal   za.h[w11, 6:7], {z30.b-z31.b}, {z30.b-z31.b}  // 11000001-10111110-01101011-11100011
85// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
86// CHECK-ENCODING: [0xe3,0x6b,0xbe,0xc1]
87// CHECK-ERROR: instruction requires: sme-f8f16
88// CHECK-UNKNOWN: c1be6be3 <unknown>
89
90fmlal   za.h[w8, 0:1, vgx2], {z0.b-z1.b}, z0.b[0]  // 11000001-10010000-00010000-00110000
91// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, z0.b[0]
92// CHECK-ENCODING: [0x30,0x10,0x90,0xc1]
93// CHECK-ERROR: instruction requires: sme-f8f16
94// CHECK-UNKNOWN: c1901030 <unknown>
95
96fmlal   za.h[w8, 0:1], {z0.b-z1.b}, z0.b[0]  // 11000001-10010000-00010000-00110000
97// CHECK-INST: fmlal   za.h[w8, 0:1, vgx2], { z0.b, z1.b }, z0.b[0]
98// CHECK-ENCODING: [0x30,0x10,0x90,0xc1]
99// CHECK-ERROR: instruction requires: sme-f8f16
100// CHECK-UNKNOWN: c1901030 <unknown>
101
102fmlal   za.h[w11, 6:7, vgx2], {z30.b-z31.b}, z15.b[15]  // 11000001-10011111-01111111-11111111
103// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z30.b, z31.b }, z15.b[15]
104// CHECK-ENCODING: [0xff,0x7f,0x9f,0xc1]
105// CHECK-ERROR: instruction requires: sme-f8f16
106// CHECK-UNKNOWN: c19f7fff <unknown>
107
108fmlal   za.h[w11, 6:7], {z30.b-z31.b}, z15.b[15]  // 11000001-10011111-01111111-11111111
109// CHECK-INST: fmlal   za.h[w11, 6:7, vgx2], { z30.b, z31.b }, z15.b[15]
110// CHECK-ENCODING: [0xff,0x7f,0x9f,0xc1]
111// CHECK-ERROR: instruction requires: sme-f8f16
112// CHECK-UNKNOWN: c19f7fff <unknown>
113
114// x4
115
116fmlal   za.h[w8, 0:1, vgx4], {z0.b-z3.b}, z0.b  // 11000001-00110000-00001000-00000100
117// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, z0.b
118// CHECK-ENCODING: [0x04,0x08,0x30,0xc1]
119// CHECK-ERROR: instruction requires: sme-f8f16
120// CHECK-UNKNOWN: c1300804 <unknown>
121
122fmlal   za.h[w8, 0:1], {z0.b-z3.b}, z0.b  // 11000001-00110000-00001000-00000100
123// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, z0.b
124// CHECK-ENCODING: [0x04,0x08,0x30,0xc1]
125// CHECK-ERROR: instruction requires: sme-f8f16
126// CHECK-UNKNOWN: c1300804 <unknown>
127
128fmlal   za.h[w11, 6:7, vgx4], {z31.b-z2.b}, z15.b  // 11000001-00111111-01101011-11100111
129// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], {  z31.b, z0.b, z1.b, z2.b  }, z15.b
130// CHECK-ENCODING: [0xe7,0x6b,0x3f,0xc1]
131// CHECK-ERROR: instruction requires: sme-f8f16
132// CHECK-UNKNOWN: c13f6be7 <unknown>
133
134fmlal   za.h[w11, 6:7], {z31.b-z2.b}, z15.b  // 11000001-00111111-01101011-11100111
135// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], {  z31.b, z0.b, z1.b, z2.b  }, z15.b
136// CHECK-ENCODING: [0xe7,0x6b,0x3f,0xc1]
137// CHECK-ERROR: instruction requires: sme-f8f16
138// CHECK-UNKNOWN: c13f6be7 <unknown>
139
140fmlal   za.h[w8, 0:1, vgx4], {z0.b-z3.b}, {z0.b-z3.b}  // 11000001-10100001-00001000-00100000
141// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
142// CHECK-ENCODING: [0x20,0x08,0xa1,0xc1]
143// CHECK-ERROR: instruction requires: sme-f8f16
144// CHECK-UNKNOWN: c1a10820 <unknown>
145
146fmlal   za.h[w8, 0:1], {z0.b-z3.b}, {z0.b-z3.b}  // 11000001-10100001-00001000-00100000
147// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
148// CHECK-ENCODING: [0x20,0x08,0xa1,0xc1]
149// CHECK-ERROR: instruction requires: sme-f8f16
150// CHECK-UNKNOWN: c1a10820 <unknown>
151
152fmlal   za.h[w11, 6:7, vgx4], {z28.b-z31.b}, {z28.b-z31.b}  // 11000001-10111101-01101011-10100011
153// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
154// CHECK-ENCODING: [0xa3,0x6b,0xbd,0xc1]
155// CHECK-ERROR: instruction requires: sme-f8f16
156// CHECK-UNKNOWN: c1bd6ba3 <unknown>
157
158fmlal   za.h[w11, 6:7], {z28.b-z31.b}, {z28.b-z31.b}  // 11000001-10111101-01101011-10100011
159// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
160// CHECK-ENCODING: [0xa3,0x6b,0xbd,0xc1]
161// CHECK-ERROR: instruction requires: sme-f8f16
162// CHECK-UNKNOWN: c1bd6ba3 <unknown>
163
164fmlal   za.h[w8, 0:1, vgx4], {z0.b-z3.b}, z0.b[0]  // 11000001-10010000-10010000-00100000
165// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, z0.b[0]
166// CHECK-ENCODING: [0x20,0x90,0x90,0xc1]
167// CHECK-ERROR: instruction requires: sme-f8f16
168// CHECK-UNKNOWN: c1909020 <unknown>
169
170fmlal   za.h[w8, 0:1], {z0.b-z3.b}, z0.b[0]  // 11000001-10010000-10010000-00100000
171// CHECK-INST: fmlal   za.h[w8, 0:1, vgx4], { z0.b - z3.b }, z0.b[0]
172// CHECK-ENCODING: [0x20,0x90,0x90,0xc1]
173// CHECK-ERROR: instruction requires: sme-f8f16
174// CHECK-UNKNOWN: c1909020 <unknown>
175
176fmlal   za.h[w11, 6:7, vgx4], {z28.b-z31.b}, z15.b[15]  // 11000001-10011111-11111111-10101111
177// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], { z28.b - z31.b }, z15.b[15]
178// CHECK-ENCODING: [0xaf,0xff,0x9f,0xc1]
179// CHECK-ERROR: instruction requires: sme-f8f16
180// CHECK-UNKNOWN: c19fffaf <unknown>
181
182fmlal   za.h[w11, 6:7], {z28.b-z31.b}, z15.b[15]  // 11000001-10011111-11111111-10101111
183// CHECK-INST: fmlal   za.h[w11, 6:7, vgx4], { z28.b - z31.b }, z15.b[15]
184// CHECK-ENCODING: [0xaf,0xff,0x9f,0xc1]
185// CHECK-ERROR: instruction requires: sme-f8f16
186// CHECK-UNKNOWN: c19fffaf <unknown>
187
188
189//FMLALL
190
191fmlall  za.s[w8, 0:3], z0.b, z0.b  // 11000001-00110000-00000100-00000000
192// CHECK-INST: fmlall  za.s[w8, 0:3], z0.b, z0.b
193// CHECK-ENCODING: [0x00,0x04,0x30,0xc1]
194// CHECK-ERROR: instruction requires: sme-f8f32
195// CHECK-UNKNOWN: c1300400 <unknown>
196
197fmlall  za.s[w11, 12:15], z31.b, z15.b  // 11000001-00111111-01100111-11100011
198// CHECK-INST: fmlall  za.s[w11, 12:15], z31.b, z15.b
199// CHECK-ENCODING: [0xe3,0x67,0x3f,0xc1]
200// CHECK-ERROR: instruction requires: sme-f8f32
201// CHECK-UNKNOWN: c13f67e3 <unknown>
202
203fmlall  za.s[w8, 0:3], z0.b, z0.b[0]  // 11000001-01000000-00000000-00000000
204// CHECK-INST: fmlall  za.s[w8, 0:3], z0.b, z0.b[0]
205// CHECK-ENCODING: [0x00,0x00,0x40,0xc1]
206// CHECK-ERROR: instruction requires: sme-f8f32
207// CHECK-UNKNOWN: c1400000 <unknown>
208
209fmlall  za.s[w11, 12:15], z31.b, z15.b[15]  // 11000001-01001111-11111111-11100011
210// CHECK-INST: fmlall  za.s[w11, 12:15], z31.b, z15.b[15]
211// CHECK-ENCODING: [0xe3,0xff,0x4f,0xc1]
212// CHECK-ERROR: instruction requires: sme-f8f32
213// CHECK-UNKNOWN: c14fffe3 <unknown>
214
215// x2
216
217fmlall  za.s[w8, 0:3, vgx2], {z0.b-z1.b}, z0.b  // 11000001-00100000-00000000-00000010
218// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, z0.b
219// CHECK-ENCODING: [0x02,0x00,0x20,0xc1]
220// CHECK-ERROR: instruction requires: sme-f8f32
221// CHECK-UNKNOWN: c1200002 <unknown>
222
223fmlall  za.s[w8, 0:3], {z0.b-z1.b}, z0.b  // 11000001-00100000-00000000-00000010
224// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, z0.b
225// CHECK-ENCODING: [0x02,0x00,0x20,0xc1]
226// CHECK-ERROR: instruction requires: sme-f8f32
227// CHECK-UNKNOWN: c1200002 <unknown>
228
229fmlall  za.s[w11, 4:7, vgx2], {z31.b-z0.b}, z15.b  // 11000001-00101111-01100011-11100011
230// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z31.b, z0.b }, z15.b
231// CHECK-ENCODING: [0xe3,0x63,0x2f,0xc1]
232// CHECK-ERROR: instruction requires: sme-f8f32
233// CHECK-UNKNOWN: c12f63e3 <unknown>
234
235fmlall  za.s[w11, 4:7], {z31.b-z0.b}, z15.b  // 11000001-00101111-01100011-11100011
236// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z31.b, z0.b }, z15.b
237// CHECK-ENCODING: [0xe3,0x63,0x2f,0xc1]
238// CHECK-ERROR: instruction requires: sme-f8f32
239// CHECK-UNKNOWN: c12f63e3 <unknown>
240
241fmlall  za.s[w8, 0:3, vgx2], {z0.b-z1.b}, {z0.b-z1.b}  // 11000001-10100000-00000000-00100000
242// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
243// CHECK-ENCODING: [0x20,0x00,0xa0,0xc1]
244// CHECK-ERROR: instruction requires: sme-f8f32
245// CHECK-UNKNOWN: c1a00020 <unknown>
246
247fmlall  za.s[w8, 0:3], {z0.b-z1.b}, {z0.b-z1.b}  // 11000001-10100000-00000000-00100000
248// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, { z0.b, z1.b }
249// CHECK-ENCODING: [0x20,0x00,0xa0,0xc1]
250// CHECK-ERROR: instruction requires: sme-f8f32
251// CHECK-UNKNOWN: c1a00020 <unknown>
252
253fmlall  za.s[w11, 4:7, vgx2], {z30.b-z31.b}, {z30.b-z31.b}  // 11000001-10111110-01100011-11100001
254// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
255// CHECK-ENCODING: [0xe1,0x63,0xbe,0xc1]
256// CHECK-ERROR: instruction requires: sme-f8f32
257// CHECK-UNKNOWN: c1be63e1 <unknown>
258
259fmlall  za.s[w11, 4:7], {z30.b-z31.b}, {z30.b-z31.b}  // 11000001-10111110-01100011-11100001
260// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z30.b, z31.b }, { z30.b, z31.b }
261// CHECK-ENCODING: [0xe1,0x63,0xbe,0xc1]
262// CHECK-ERROR: instruction requires: sme-f8f32
263// CHECK-UNKNOWN: c1be63e1 <unknown>
264
265fmlall  za.s[w8, 0:3, vgx2], {z0.b-z1.b}, z0.b[0]  // 11000001-10010000-00000000-00100000
266// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, z0.b[0]
267// CHECK-ENCODING: [0x20,0x00,0x90,0xc1]
268// CHECK-ERROR: instruction requires: sme-f8f32
269// CHECK-UNKNOWN: c1900020 <unknown>
270
271fmlall  za.s[w8, 0:3], {z0.b-z1.b}, z0.b[0]  // 11000001-10010000-00000000-00100000
272// CHECK-INST: fmlall  za.s[w8, 0:3, vgx2], { z0.b, z1.b }, z0.b[0]
273// CHECK-ENCODING: [0x20,0x00,0x90,0xc1]
274// CHECK-ERROR: instruction requires: sme-f8f32
275// CHECK-UNKNOWN: c1900020 <unknown>
276
277fmlall  za.s[w11, 4:7, vgx2], {z30.b-z31.b}, z15.b[15]  // 11000001-10011111-01101111-11100111
278// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z30.b, z31.b }, z15.b[15]
279// CHECK-ENCODING: [0xe7,0x6f,0x9f,0xc1]
280// CHECK-ERROR: instruction requires: sme-f8f32
281// CHECK-UNKNOWN: c19f6fe7 <unknown>
282
283fmlall  za.s[w11, 4:7], {z30.b-z31.b}, z15.b[15]  // 11000001-10011111-01101111-11100111
284// CHECK-INST: fmlall  za.s[w11, 4:7, vgx2], { z30.b, z31.b }, z15.b[15]
285// CHECK-ENCODING: [0xe7,0x6f,0x9f,0xc1]
286// CHECK-ERROR: instruction requires: sme-f8f32
287// CHECK-UNKNOWN: c19f6fe7 <unknown>
288
289// x4
290
291fmlall  za.s[w8, 0:3, vgx4], {z0.b-z3.b}, z0.b  // 11000001-00110000-00000000-00000010
292// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
293// CHECK-ENCODING: [0x02,0x00,0x30,0xc1]
294// CHECK-ERROR: instruction requires: sme-f8f32
295// CHECK-UNKNOWN: c1300002 <unknown>
296
297fmlall  za.s[w8, 0:3], {z0.b-z3.b}, z0.b  // 11000001-00110000-00000000-00000010
298// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b
299// CHECK-ENCODING: [0x02,0x00,0x30,0xc1]
300// CHECK-ERROR: instruction requires: sme-f8f32
301// CHECK-UNKNOWN: c1300002 <unknown>
302
303fmlall  za.s[w11, 4:7, vgx4], {z31.b-z2.b}, z15.b  // 11000001-00111111-01100011-11100011
304// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], {  z31.b, z0.b, z1.b, z2.b  }, z15.b
305// CHECK-ENCODING: [0xe3,0x63,0x3f,0xc1]
306// CHECK-ERROR: instruction requires: sme-f8f32
307// CHECK-UNKNOWN: c13f63e3 <unknown>
308
309fmlall  za.s[w11, 4:7], {z31.b-z2.b}, z15.b  // 11000001-00111111-01100011-11100011
310// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], {  z31.b, z0.b, z1.b, z2.b  }, z15.b
311// CHECK-ENCODING: [0xe3,0x63,0x3f,0xc1]
312// CHECK-ERROR: instruction requires: sme-f8f32
313// CHECK-UNKNOWN: c13f63e3 <unknown>
314
315fmlall  za.s[w8, 0:3, vgx4], {z0.b-z3.b}, {z0.b-z3.b}  // 11000001-10100001-00000000-00100000
316// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
317// CHECK-ENCODING: [0x20,0x00,0xa1,0xc1]
318// CHECK-ERROR: instruction requires: sme-f8f32
319// CHECK-UNKNOWN: c1a10020 <unknown>
320
321fmlall  za.s[w8, 0:3], {z0.b-z3.b}, {z0.b-z3.b}  // 11000001-10100001-00000000-00100000
322// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, { z0.b - z3.b }
323// CHECK-ENCODING: [0x20,0x00,0xa1,0xc1]
324// CHECK-ERROR: instruction requires: sme-f8f32
325// CHECK-UNKNOWN: c1a10020 <unknown>
326
327fmlall  za.s[w11, 4:7, vgx4], {z28.b-z31.b}, {z28.b-z31.b}  // 11000001-10111101-01100011-10100001
328// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
329// CHECK-ENCODING: [0xa1,0x63,0xbd,0xc1]
330// CHECK-ERROR: instruction requires: sme-f8f32
331// CHECK-UNKNOWN: c1bd63a1 <unknown>
332
333fmlall  za.s[w11, 4:7], {z28.b-z31.b}, {z28.b-z31.b}  // 11000001-10111101-01100011-10100001
334// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], { z28.b - z31.b }, { z28.b - z31.b }
335// CHECK-ENCODING: [0xa1,0x63,0xbd,0xc1]
336// CHECK-ERROR: instruction requires: sme-f8f32
337// CHECK-UNKNOWN: c1bd63a1 <unknown>
338
339fmlall  za.s[w8, 0:3, vgx4], {z0.b-z3.b}, z0.b[0]  // 11000001-00010000-10000000-01000000
340// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
341// CHECK-ENCODING: [0x40,0x80,0x10,0xc1]
342// CHECK-ERROR: instruction requires: sme-f8f32
343// CHECK-UNKNOWN: c1108040 <unknown>
344
345fmlall  za.s[w8, 0:3], {z0.b-z3.b}, z0.b[0]  // 11000001-00010000-10000000-01000000
346// CHECK-INST: fmlall  za.s[w8, 0:3, vgx4], { z0.b - z3.b }, z0.b[0]
347// CHECK-ENCODING: [0x40,0x80,0x10,0xc1]
348// CHECK-ERROR: instruction requires: sme-f8f32
349// CHECK-UNKNOWN: c1108040 <unknown>
350
351fmlall  za.s[w11, 4:7, vgx4], {z28.b-z31.b}, z15.b[15]  // 11000001-00011111-11101111-11000111
352// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], { z28.b - z31.b }, z15.b[15]
353// CHECK-ENCODING: [0xc7,0xef,0x1f,0xc1]
354// CHECK-ERROR: instruction requires: sme-f8f32
355// CHECK-UNKNOWN: c11fefc7 <unknown>
356
357fmlall  za.s[w11, 4:7], {z28.b-z31.b}, z15.b[15]  // 11000001-00011111-11101111-11000111
358// CHECK-INST: fmlall  za.s[w11, 4:7, vgx4], { z28.b - z31.b }, z15.b[15]
359// CHECK-ENCODING: [0xc7,0xef,0x1f,0xc1]
360// CHECK-ERROR: instruction requires: sme-f8f32
361// CHECK-UNKNOWN: c11fefc7 <unknown>
362