@@ -111,15 +111,18 @@ def M1WriteS4 : SchedWriteRes<[M1UnitS]> { let Latency = 4; }
111
111
def M1WriteSA : SchedWriteRes<[M1UnitS,
112
112
M1UnitFST,
113
113
M1UnitS,
114
- M1UnitFST]> { let Latency = 1; }
114
+ M1UnitFST]> { let Latency = 1;
115
+ let NumMicroOps = 2; }
115
116
def M1WriteSB : SchedWriteRes<[M1UnitS,
116
117
M1UnitFST,
117
- M1UnitA]> { let Latency = 2; }
118
+ M1UnitA]> { let Latency = 2;
119
+ let NumMicroOps = 2; }
118
120
def M1WriteSC : SchedWriteRes<[M1UnitS,
119
121
M1UnitFST,
120
122
M1UnitS,
121
123
M1UnitFST,
122
- M1UnitA]> { let Latency = 1; }
124
+ M1UnitA]> { let Latency = 3;
125
+ let NumMicroOps = 3; }
123
126
def M1WriteSX : SchedWriteVariant<[SchedVar<M1ShiftLeftFastPred, [M1WriteS1]>,
124
127
SchedVar<NoSchedPred, [M1WriteA1,
125
128
M1WriteS1]>]>;
@@ -193,7 +196,8 @@ def : WriteRes<WriteVLD, [M1UnitL]> { let Latency = 5; }
193
196
194
197
// FP store instructions.
195
198
def : WriteRes<WriteVST, [M1UnitS,
196
- M1UnitFST]> { let Latency = 1; }
199
+ M1UnitFST]> { let Latency = 1;
200
+ let NumMicroOps = 1; }
197
201
198
202
// ASIMD FP instructions.
199
203
def : WriteRes<WriteV, [M1UnitFADD]> { let Latency = 3; }
@@ -335,12 +339,14 @@ def M1WriteVSTC : WriteSequence<[WriteVST], 4>;
335
339
def M1WriteVSTD : SchedWriteRes<[M1UnitS,
336
340
M1UnitFST,
337
341
M1UnitFST]> { let Latency = 7;
342
+ let NumMicroOps = 2;
338
343
let ResourceCycles = [7]; }
339
344
def M1WriteVSTE : SchedWriteRes<[M1UnitS,
340
345
M1UnitFST,
341
346
M1UnitS,
342
347
M1UnitFST,
343
348
M1UnitFST]> { let Latency = 8;
349
+ let NumMicroOps = 3;
344
350
let ResourceCycles = [8]; }
345
351
def M1WriteVSTF : SchedWriteRes<[M1UnitNALU,
346
352
M1UnitS,
@@ -349,6 +355,7 @@ def M1WriteVSTF : SchedWriteRes<[M1UnitNALU,
349
355
M1UnitFST,
350
356
M1UnitFST,
351
357
M1UnitFST]> { let Latency = 15;
358
+ let NumMicroOps = 5;
352
359
let ResourceCycles = [15]; }
353
360
def M1WriteVSTG : SchedWriteRes<[M1UnitNALU,
354
361
M1UnitS,
@@ -359,12 +366,14 @@ def M1WriteVSTG : SchedWriteRes<[M1UnitNALU,
359
366
M1UnitFST,
360
367
M1UnitFST,
361
368
M1UnitFST]> { let Latency = 16;
369
+ let NumMicroOps = 6;
362
370
let ResourceCycles = [16]; }
363
371
def M1WriteVSTH : SchedWriteRes<[M1UnitNALU,
364
372
M1UnitS,
365
373
M1UnitFST,
366
374
M1UnitFST,
367
375
M1UnitFST]> { let Latency = 14;
376
+ let NumMicroOps = 4;
368
377
let ResourceCycles = [14]; }
369
378
def M1WriteVSTI : SchedWriteRes<[M1UnitNALU,
370
379
M1UnitS,
@@ -377,6 +386,7 @@ def M1WriteVSTI : SchedWriteRes<[M1UnitNALU,
377
386
M1UnitFST,
378
387
M1UnitFST,
379
388
M1UnitFST]> { let Latency = 17;
389
+ let NumMicroOps = 7;
380
390
let ResourceCycles = [17]; }
381
391
382
392
// Branch instructions
0 commit comments