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