xref: /freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1//=- AArch64SchedA57WriteRes.td - ARM Cortex-A57 Write Res ---*- tablegen -*-=//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Contains all of the Cortex-A57 specific SchedWriteRes types. The approach
10// below is to define a generic SchedWriteRes for every combination of
11// latency and microOps. The naming conventions is to use a prefix, one field
12// for latency, and one or more microOp count/type designators.
13//   Prefix: A57Write
14//   Latency: #cyc
15//   MicroOp Count/Types: #(B|I|M|L|S|X|W|V)
16//   Postfix (optional): (XYZ)_Forward
17//
18//   The postfix is added to differentiate SchedWriteRes that are used in
19//   subsequent SchedReadAdvances.
20//
21// e.g. A57Write_6cyc_1I_6S_4V means the total latency is 6 and there are
22//      11 micro-ops to be issued down one I pipe, six S pipes and four V pipes.
23//
24//===----------------------------------------------------------------------===//
25
26//===----------------------------------------------------------------------===//
27// Define Generic 1 micro-op types
28
29def A57Write_5cyc_1L  : SchedWriteRes<[A57UnitL]> { let Latency = 5;  }
30def A57Write_5cyc_1M  : SchedWriteRes<[A57UnitM]> { let Latency = 5;  }
31def A57Write_5cyc_1V  : SchedWriteRes<[A57UnitV]> { let Latency = 5;  }
32def A57Write_5cyc_1V_FP_Forward  : SchedWriteRes<[A57UnitV]> { let Latency = 5; }
33def A57Write_5cyc_1W  : SchedWriteRes<[A57UnitW]> { let Latency = 5;  }
34def A57Write_5cyc_1W_Mul_Forward  : SchedWriteRes<[A57UnitW]> { let Latency = 5;  }
35def A57Write_10cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 10; }
36def A57Write_17cyc_1W : SchedWriteRes<[A57UnitW]> { let Latency = 17;
37                                                    let ReleaseAtCycles = [17]; }
38def A57Write_19cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 19;
39                                                    let ReleaseAtCycles = [19]; }
40def A57Write_1cyc_1B  : SchedWriteRes<[A57UnitB]> { let Latency = 1;  }
41def A57Write_1cyc_1I  : SchedWriteRes<[A57UnitI]> { let Latency = 1;  }
42def A57Write_1cyc_1S  : SchedWriteRes<[A57UnitS]> { let Latency = 1;  }
43def A57Write_2cyc_1M  : SchedWriteRes<[A57UnitM]> { let Latency = 2;  }
44def A57Write_32cyc_1W : SchedWriteRes<[A57UnitW]> { let Latency = 32;
45                                                    let ReleaseAtCycles = [32]; }
46def A57Write_35cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 35;
47                                                    let ReleaseAtCycles = [35]; }
48def A57Write_3cyc_1M  : SchedWriteRes<[A57UnitM]> { let Latency = 3;  }
49def A57Write_3cyc_1V  : SchedWriteRes<[A57UnitV]> { let Latency = 3;  }
50def A57Write_3cyc_1W  : SchedWriteRes<[A57UnitW]> { let Latency = 3;  }
51def A57Write_3cyc_1X  : SchedWriteRes<[A57UnitX]> { let Latency = 3;  }
52def A57Write_4cyc_1L  : SchedWriteRes<[A57UnitL]> { let Latency = 4;  }
53def A57Write_4cyc_1X  : SchedWriteRes<[A57UnitX]> { let Latency = 4;  }
54def A57Write_4cyc_1X_NonMul_Forward  : SchedWriteRes<[A57UnitX]> { let Latency = 4;  }
55def A57Write_9cyc_1V  : SchedWriteRes<[A57UnitV]> { let Latency = 9;  }
56def A57Write_6cyc_1M  : SchedWriteRes<[A57UnitM]> { let Latency = 6;  }
57def A57Write_6cyc_1V  : SchedWriteRes<[A57UnitV]> { let Latency = 6;  }
58
59
60//===----------------------------------------------------------------------===//
61// Define Generic 2 micro-op types
62
63def A57Write_64cyc_2W    : SchedWriteRes<[A57UnitW, A57UnitW]> {
64  let Latency     = 64;
65  let NumMicroOps = 2;
66  let ReleaseAtCycles = [32, 32];
67}
68def A57Write_6cyc_1I_1L  : SchedWriteRes<[A57UnitI,
69                                          A57UnitL]> {
70  let Latency     = 6;
71  let NumMicroOps = 2;
72}
73def A57Write_7cyc_1V_1X  : SchedWriteRes<[A57UnitV,
74                                          A57UnitX]> {
75  let Latency     = 7;
76  let NumMicroOps = 2;
77}
78def A57Write_8cyc_1L_1V  : SchedWriteRes<[A57UnitL,
79                                          A57UnitV]> {
80  let Latency     = 8;
81  let NumMicroOps = 2;
82}
83def A57Write_9cyc_2V     : SchedWriteRes<[A57UnitV, A57UnitV]> {
84  let Latency     = 9;
85  let NumMicroOps = 2;
86}
87def A57Write_8cyc_2X     : SchedWriteRes<[A57UnitX, A57UnitX]> {
88  let Latency     = 8;
89  let NumMicroOps = 2;
90}
91def A57Write_6cyc_2L     : SchedWriteRes<[A57UnitL, A57UnitL]> {
92  let Latency     = 6;
93  let NumMicroOps = 2;
94}
95def A57Write_6cyc_2V     : SchedWriteRes<[A57UnitV, A57UnitV]> {
96  let Latency     = 6;
97  let NumMicroOps = 2;
98}
99def A57Write_6cyc_2W     : SchedWriteRes<[A57UnitW, A57UnitW]> {
100  let Latency     = 6;
101  let NumMicroOps = 2;
102}
103def A57Write_6cyc_2W_Mul_Forward     : SchedWriteRes<[A57UnitW, A57UnitW]> {
104  let Latency     = 6;
105  let NumMicroOps = 2;
106}
107def A57Write_5cyc_1I_1L  : SchedWriteRes<[A57UnitI,
108                                          A57UnitL]> {
109  let Latency     = 5;
110  let NumMicroOps = 2;
111}
112def A57Write_5cyc_2V     : SchedWriteRes<[A57UnitV, A57UnitV]> {
113  let Latency     = 5;
114  let NumMicroOps = 2;
115}
116def A57Write_5cyc_2V_FP_Forward     : SchedWriteRes<[A57UnitV, A57UnitV]> {
117  let Latency     = 5;
118  let NumMicroOps = 2;
119}
120def A57Write_5cyc_2X     : SchedWriteRes<[A57UnitX, A57UnitX]> {
121  let Latency     = 5;
122  let NumMicroOps = 2;
123}
124def A57Write_5cyc_2X_NonMul_Forward     : SchedWriteRes<[A57UnitX, A57UnitX]> {
125  let Latency     = 5;
126  let NumMicroOps = 2;
127}
128def A57Write_10cyc_1L_1V : SchedWriteRes<[A57UnitL,
129                                          A57UnitV]> {
130  let Latency     = 10;
131  let NumMicroOps = 2;
132}
133def A57Write_10cyc_2V    : SchedWriteRes<[A57UnitV, A57UnitV]> {
134  let Latency     = 10;
135  let NumMicroOps = 2;
136}
137def A57Write_1cyc_1B_1I  : SchedWriteRes<[A57UnitB,
138                                          A57UnitI]> {
139  let Latency     = 1;
140  let NumMicroOps = 2;
141}
142def A57Write_1cyc_1I_1S  : SchedWriteRes<[A57UnitI,
143                                          A57UnitS]> {
144  let Latency     = 1;
145  let NumMicroOps = 2;
146}
147def A57Write_2cyc_1B_1I  : SchedWriteRes<[A57UnitB,
148                                          A57UnitI]> {
149  let Latency     = 2;
150  let NumMicroOps = 2;
151}
152def A57Write_2cyc_2S     : SchedWriteRes<[A57UnitS, A57UnitS]> {
153  let Latency     = 2;
154  let NumMicroOps = 2;
155}
156def A57Write_2cyc_2V     : SchedWriteRes<[A57UnitV, A57UnitV]> {
157  let Latency     = 2;
158  let NumMicroOps = 2;
159}
160def A57Write_34cyc_2W    : SchedWriteRes<[A57UnitW, A57UnitW]> {
161  let Latency     = 34;
162  let NumMicroOps = 2;
163  let ReleaseAtCycles = [17, 17];
164}
165def A57Write_3cyc_1I_1M  : SchedWriteRes<[A57UnitI,
166                                          A57UnitM]> {
167  let Latency     = 3;
168  let NumMicroOps = 2;
169}
170def A57Write_3cyc_1I_1S  : SchedWriteRes<[A57UnitI,
171                                          A57UnitS]> {
172  let Latency     = 3;
173  let NumMicroOps = 2;
174}
175def A57Write_3cyc_1S_1V  : SchedWriteRes<[A57UnitS,
176                                          A57UnitV]> {
177  let Latency     = 3;
178  let NumMicroOps = 2;
179}
180def A57Write_3cyc_2V     : SchedWriteRes<[A57UnitV, A57UnitV]> {
181  let Latency     = 3;
182  let NumMicroOps = 2;
183}
184def A57Write_4cyc_1I_1L  : SchedWriteRes<[A57UnitI,
185                                          A57UnitL]> {
186  let Latency     = 4;
187  let NumMicroOps = 2;
188}
189def A57Write_4cyc_2X     : SchedWriteRes<[A57UnitX, A57UnitX]> {
190  let Latency     = 4;
191  let NumMicroOps = 2;
192}
193
194
195//===----------------------------------------------------------------------===//
196// Define Generic 3 micro-op types
197
198def A57Write_10cyc_3V       : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> {
199  let Latency     = 10;
200  let NumMicroOps = 3;
201}
202def A57Write_2cyc_1I_2S     : SchedWriteRes<[A57UnitI,
203                                             A57UnitS, A57UnitS]> {
204  let Latency     = 2;
205  let NumMicroOps = 3;
206}
207def A57Write_3cyc_1I_1S_1V  : SchedWriteRes<[A57UnitI,
208                                             A57UnitS,
209                                             A57UnitV]> {
210  let Latency     = 3;
211  let NumMicroOps = 3;
212}
213def A57Write_3cyc_1M_2S     : SchedWriteRes<[A57UnitM,
214                                             A57UnitS, A57UnitS]> {
215  let Latency     = 3;
216  let NumMicroOps = 3;
217}
218def A57Write_3cyc_3S        : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS]> {
219  let Latency     = 3;
220  let NumMicroOps = 3;
221}
222def A57Write_3cyc_2S_1V     : SchedWriteRes<[A57UnitS, A57UnitS,
223                                             A57UnitV]> {
224  let Latency     = 3;
225  let NumMicroOps = 3;
226}
227def A57Write_5cyc_1I_2L     : SchedWriteRes<[A57UnitI,
228                                             A57UnitL, A57UnitL]> {
229  let Latency     = 5;
230  let NumMicroOps = 3;
231}
232def A57Write_6cyc_1I_2L     : SchedWriteRes<[A57UnitI,
233                                             A57UnitL, A57UnitL]> {
234  let Latency     = 6;
235  let NumMicroOps = 3;
236}
237def A57Write_6cyc_3V        : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> {
238  let Latency     = 6;
239  let NumMicroOps = 3;
240}
241def A57Write_7cyc_3L        : SchedWriteRes<[A57UnitL, A57UnitL, A57UnitL]> {
242  let Latency     = 7;
243  let NumMicroOps = 3;
244}
245def A57Write_8cyc_1I_1L_1V  : SchedWriteRes<[A57UnitI,
246                                             A57UnitL,
247                                             A57UnitV]> {
248  let Latency     = 8;
249  let NumMicroOps = 3;
250}
251def A57Write_8cyc_1L_2V     : SchedWriteRes<[A57UnitL,
252                                             A57UnitV, A57UnitV]> {
253  let Latency     = 8;
254  let NumMicroOps = 3;
255}
256def A57Write_8cyc_3V        : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> {
257  let Latency     = 8;
258  let NumMicroOps = 3;
259}
260def A57Write_9cyc_3V        : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> {
261  let Latency     = 9;
262  let NumMicroOps = 3;
263}
264
265
266//===----------------------------------------------------------------------===//
267// Define Generic 4 micro-op types
268
269def A57Write_2cyc_2I_2S    : SchedWriteRes<[A57UnitI, A57UnitI,
270                                            A57UnitS, A57UnitS]> {
271  let Latency     = 2;
272  let NumMicroOps = 4;
273}
274def A57Write_3cyc_2I_2S    : SchedWriteRes<[A57UnitI, A57UnitI,
275                                            A57UnitS, A57UnitS]> {
276  let Latency     = 3;
277  let NumMicroOps = 4;
278}
279def A57Write_3cyc_1I_3S    : SchedWriteRes<[A57UnitI,
280                                            A57UnitS, A57UnitS, A57UnitS]> {
281  let Latency     = 3;
282  let NumMicroOps = 4;
283}
284def A57Write_3cyc_1I_2S_1V : SchedWriteRes<[A57UnitI,
285                                            A57UnitS, A57UnitS,
286                                            A57UnitV]> {
287  let Latency     = 3;
288  let NumMicroOps = 4;
289}
290def A57Write_4cyc_4S       : SchedWriteRes<[A57UnitS, A57UnitS,
291                                            A57UnitS, A57UnitS]> {
292  let Latency     = 4;
293  let NumMicroOps = 4;
294}
295def A57Write_7cyc_1I_3L    : SchedWriteRes<[A57UnitI,
296                                            A57UnitL, A57UnitL, A57UnitL]> {
297  let Latency     = 7;
298  let NumMicroOps = 4;
299}
300def A57Write_5cyc_2I_2L    : SchedWriteRes<[A57UnitI, A57UnitI,
301                                            A57UnitL, A57UnitL]> {
302  let Latency     = 5;
303  let NumMicroOps = 4;
304}
305def A57Write_8cyc_1I_1L_2V : SchedWriteRes<[A57UnitI,
306                                            A57UnitL,
307                                            A57UnitV, A57UnitV]> {
308  let Latency     = 8;
309  let NumMicroOps = 4;
310}
311def A57Write_8cyc_4L       : SchedWriteRes<[A57UnitL, A57UnitL,
312                                            A57UnitL, A57UnitL]> {
313  let Latency     = 8;
314  let NumMicroOps = 4;
315}
316def A57Write_9cyc_2L_2V    : SchedWriteRes<[A57UnitL, A57UnitL,
317                                            A57UnitV, A57UnitV]> {
318  let Latency     = 9;
319  let NumMicroOps = 4;
320}
321def A57Write_9cyc_1L_3V    : SchedWriteRes<[A57UnitL,
322                                            A57UnitV, A57UnitV, A57UnitV]> {
323  let Latency     = 9;
324  let NumMicroOps = 4;
325}
326def A57Write_12cyc_4V      : SchedWriteRes<[A57UnitV, A57UnitV,
327                                            A57UnitV, A57UnitV]> {
328  let Latency     = 12;
329  let NumMicroOps = 4;
330}
331
332
333//===----------------------------------------------------------------------===//
334// Define Generic 5 micro-op types
335
336def A57Write_3cyc_3S_2V    : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS,
337                                            A57UnitV, A57UnitV]> {
338  let Latency     = 3;
339  let NumMicroOps = 5;
340}
341def A57Write_8cyc_1I_4L    : SchedWriteRes<[A57UnitI,
342                                            A57UnitL, A57UnitL,
343                                            A57UnitL, A57UnitL]> {
344  let Latency     = 8;
345  let NumMicroOps = 5;
346}
347def A57Write_4cyc_1I_4S    : SchedWriteRes<[A57UnitI,
348                                            A57UnitS, A57UnitS,
349                                            A57UnitS, A57UnitS]> {
350  let Latency     = 4;
351  let NumMicroOps = 5;
352}
353def A57Write_9cyc_1I_2L_2V : SchedWriteRes<[A57UnitI,
354                                            A57UnitL, A57UnitL,
355                                            A57UnitV, A57UnitV]> {
356  let Latency     = 9;
357  let NumMicroOps = 5;
358}
359def A57Write_9cyc_1I_1L_3V : SchedWriteRes<[A57UnitI,
360                                            A57UnitL,
361                                            A57UnitV, A57UnitV, A57UnitV]> {
362  let Latency     = 9;
363  let NumMicroOps = 5;
364}
365def A57Write_9cyc_2L_3V    : SchedWriteRes<[A57UnitL, A57UnitL,
366                                            A57UnitV, A57UnitV, A57UnitV]> {
367  let Latency     = 9;
368  let NumMicroOps = 5;
369}
370def A57Write_9cyc_5V       : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV,
371                                            A57UnitV, A57UnitV]> {
372  let Latency     = 9;
373  let NumMicroOps = 5;
374}
375
376
377//===----------------------------------------------------------------------===//
378// Define Generic 6 micro-op types
379
380def A57Write_3cyc_1I_3S_2V : SchedWriteRes<[A57UnitI,
381                                            A57UnitS, A57UnitS, A57UnitS,
382                                            A57UnitV, A57UnitV]> {
383  let Latency     = 3;
384  let NumMicroOps = 6;
385}
386def A57Write_4cyc_2I_4S    : SchedWriteRes<[A57UnitI, A57UnitI,
387                                            A57UnitS, A57UnitS,
388                                            A57UnitS, A57UnitS]> {
389  let Latency     = 4;
390  let NumMicroOps = 6;
391}
392def A57Write_4cyc_4S_2V    : SchedWriteRes<[A57UnitS, A57UnitS,
393                                            A57UnitS, A57UnitS,
394                                            A57UnitV, A57UnitV]> {
395  let Latency     = 4;
396  let NumMicroOps = 6;
397}
398def A57Write_6cyc_6S       : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS,
399                                            A57UnitS, A57UnitS, A57UnitS]> {
400  let Latency     = 6;
401  let NumMicroOps = 6;
402}
403def A57Write_9cyc_1I_2L_3V : SchedWriteRes<[A57UnitI,
404                                            A57UnitL, A57UnitL,
405                                            A57UnitV, A57UnitV, A57UnitV]> {
406  let Latency     = 9;
407  let NumMicroOps = 6;
408}
409def A57Write_9cyc_1I_1L_4V : SchedWriteRes<[A57UnitI,
410                                            A57UnitL,
411                                            A57UnitV, A57UnitV,
412                                            A57UnitV, A57UnitV]> {
413  let Latency     = 9;
414  let NumMicroOps = 6;
415}
416def A57Write_9cyc_2L_4V    : SchedWriteRes<[A57UnitL, A57UnitL,
417                                            A57UnitV, A57UnitV,
418                                            A57UnitV, A57UnitV]> {
419  let Latency     = 9;
420  let NumMicroOps = 6;
421}
422
423
424//===----------------------------------------------------------------------===//
425// Define Generic 7 micro-op types
426
427def A57Write_10cyc_3L_4V : SchedWriteRes<[A57UnitL, A57UnitL, A57UnitL,
428                                          A57UnitV, A57UnitV,
429                                          A57UnitV, A57UnitV]> {
430  let Latency     = 10;
431  let NumMicroOps = 7;
432}
433def A57Write_4cyc_1I_4S_2V  : SchedWriteRes<[A57UnitI,
434                                             A57UnitS, A57UnitS,
435                                             A57UnitS, A57UnitS,
436                                             A57UnitV, A57UnitV]> {
437  let Latency     = 4;
438  let NumMicroOps = 7;
439}
440def A57Write_6cyc_1I_6S     : SchedWriteRes<[A57UnitI,
441                                          A57UnitS, A57UnitS, A57UnitS,
442                                          A57UnitS, A57UnitS, A57UnitS]> {
443  let Latency     = 6;
444  let NumMicroOps = 7;
445}
446def A57Write_9cyc_1I_2L_4V  : SchedWriteRes<[A57UnitI,
447                                             A57UnitL, A57UnitL,
448                                             A57UnitV, A57UnitV,
449                                             A57UnitV, A57UnitV]> {
450  let Latency     = 9;
451  let NumMicroOps = 7;
452}
453def A57Write_12cyc_7V       : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV,
454                                             A57UnitV, A57UnitV,
455                                             A57UnitV, A57UnitV]> {
456  let Latency     = 12;
457  let NumMicroOps = 7;
458}
459
460
461//===----------------------------------------------------------------------===//
462// Define Generic 8 micro-op types
463
464def A57Write_10cyc_1I_3L_4V : SchedWriteRes<[A57UnitI,
465                                             A57UnitL, A57UnitL, A57UnitL,
466                                             A57UnitV, A57UnitV,
467                                             A57UnitV, A57UnitV]> {
468  let Latency     = 10;
469  let NumMicroOps = 8;
470}
471def A57Write_11cyc_4L_4V : SchedWriteRes<[A57UnitL, A57UnitL,
472                                          A57UnitL, A57UnitL,
473                                          A57UnitV, A57UnitV,
474                                          A57UnitV, A57UnitV]> {
475  let Latency     = 11;
476  let NumMicroOps = 8;
477}
478def A57Write_8cyc_8S  : SchedWriteRes<[A57UnitS, A57UnitS,
479                                       A57UnitS, A57UnitS,
480                                       A57UnitS, A57UnitS,
481                                       A57UnitS, A57UnitS]> {
482  let Latency     = 8;
483  let NumMicroOps = 8;
484}
485
486
487//===----------------------------------------------------------------------===//
488// Define Generic 9 micro-op types
489
490def A57Write_8cyc_1I_8S     : SchedWriteRes<[A57UnitI,
491                                            A57UnitS, A57UnitS,
492                                            A57UnitS, A57UnitS,
493                                            A57UnitS, A57UnitS,
494                                            A57UnitS, A57UnitS]> {
495  let Latency     = 8;
496  let NumMicroOps = 9;
497}
498def A57Write_11cyc_1I_4L_4V : SchedWriteRes<[A57UnitI,
499                                             A57UnitL, A57UnitL,
500                                             A57UnitL, A57UnitL,
501                                             A57UnitV, A57UnitV,
502                                             A57UnitV, A57UnitV]> {
503  let Latency     = 11;
504  let NumMicroOps = 9;
505}
506def A57Write_15cyc_9V       : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV,
507                                             A57UnitV, A57UnitV, A57UnitV,
508                                             A57UnitV, A57UnitV, A57UnitV]> {
509  let Latency     = 15;
510  let NumMicroOps = 9;
511}
512
513
514//===----------------------------------------------------------------------===//
515// Define Generic 10 micro-op types
516
517def A57Write_6cyc_6S_4V : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS,
518                                         A57UnitS, A57UnitS, A57UnitS,
519                                         A57UnitV, A57UnitV,
520                                         A57UnitV, A57UnitV]> {
521  let Latency     = 6;
522  let NumMicroOps = 10;
523}
524
525
526//===----------------------------------------------------------------------===//
527// Define Generic 11 micro-op types
528
529def A57Write_6cyc_1I_6S_4V : SchedWriteRes<[A57UnitI,
530                                            A57UnitS, A57UnitS, A57UnitS,
531                                            A57UnitS, A57UnitS, A57UnitS,
532                                            A57UnitV, A57UnitV,
533                                            A57UnitV, A57UnitV]> {
534  let Latency     = 6;
535  let NumMicroOps = 11;
536}
537
538
539//===----------------------------------------------------------------------===//
540// Define Generic 12 micro-op types
541
542def A57Write_8cyc_8S_4V : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS, A57UnitS,
543                                         A57UnitS, A57UnitS, A57UnitS, A57UnitS,
544                                         A57UnitV, A57UnitV,
545                                         A57UnitV, A57UnitV]> {
546  let Latency     = 8;
547  let NumMicroOps = 12;
548}
549
550//===----------------------------------------------------------------------===//
551// Define Generic 13 micro-op types
552
553def A57Write_8cyc_1I_8S_4V : SchedWriteRes<[A57UnitI,
554                                            A57UnitS, A57UnitS, A57UnitS,
555                                            A57UnitS, A57UnitS, A57UnitS,
556                                            A57UnitS, A57UnitS,
557                                            A57UnitV, A57UnitV,
558                                            A57UnitV, A57UnitV]> {
559  let Latency     = 8;
560  let NumMicroOps = 13;
561}
562
563