Skip to content

Commit 7320f79

Browse files
Update ReleaseAtCycles from camel cdr data
Signed-off-by: Mikhail R. Gadelha <[email protected]>
1 parent eddbc8b commit 7320f79

File tree

4 files changed

+965
-959
lines changed

4 files changed

+965
-959
lines changed

llvm/lib/Target/RISCV/RISCVSchedSpacemitX60.td

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -524,23 +524,29 @@ foreach mx = SchedMxListW in {
524524
foreach mx = SchedMxList in {
525525
defvar IsWorstCase = SMX60IsWorstCaseMX<mx, SchedMxList>.c;
526526

527-
let Latency = Get458Latency<mx>.c, ReleaseAtCycles = [4] in {
527+
let Latency = Get4458Latency<mx>.c, ReleaseAtCycles = [ConstOneUntilM1ThenDouble<mx>.c] in {
528528
defm "" : LMULWriteResMX<"WriteVSALUV", [SMX60_VIEU], mx, IsWorstCase>;
529529
defm "" : LMULWriteResMX<"WriteVSALUX", [SMX60_VIEU], mx, IsWorstCase>;
530530
defm "" : LMULWriteResMX<"WriteVSALUI", [SMX60_VIEU], mx, IsWorstCase>;
531531
defm "" : LMULWriteResMX<"WriteVAALUV", [SMX60_VIEU], mx, IsWorstCase>;
532532
defm "" : LMULWriteResMX<"WriteVAALUX", [SMX60_VIEU], mx, IsWorstCase>;
533533
}
534534

535-
// Pattern of vsmul: e8/e16 = 4/4/5/8, e32 = 5,5,5,8, e64 = 7,8,16,32
535+
// Latency of vsmul: e8/e16 = 4/4/5/8, e32 = 5/5/5/8, e64 = 7/8/16/32
536536
// We use the worst-case until we can split the SEW.
537+
defvar VSMulLat = ConstValueUntilLMULThenDoubleBase<"M2", 7, 8, mx>.c;
538+
// Latency of vsmul: e8/e16/e32 = 1/2/4/8, e64 = 4/8/16/32
539+
// We use the worst-case until we can split the SEW.
540+
defvar VSMulOcc = ConstValueUntilLMULThenDoubleBase<"M1", 1, 4, mx>.c;
537541
// TODO: change WriteVSMulV/X to be defined with LMULSEWSchedWrites
538-
let Latency = Get781632Latency<mx>.c, ReleaseAtCycles = [7] in {
542+
let Latency = VSMulLat, ReleaseAtCycles = [VSMulOcc] in {
539543
defm "" : LMULWriteResMX<"WriteVSMulV", [SMX60_VIEU], mx, IsWorstCase>;
540544
defm "" : LMULWriteResMX<"WriteVSMulX", [SMX60_VIEU], mx, IsWorstCase>;
541545
}
542546

543-
let Latency = Get4816Latency<mx>.c, ReleaseAtCycles = [4] in {
547+
defvar VSShiftLat = ConstValueUntilLMULThenDouble<"M2", 4, mx>.c;
548+
defvar VSShiftOcc = ConstOneUntilMF2ThenDouble<mx>.c;
549+
let Latency = VSShiftLat, ReleaseAtCycles = [VSShiftOcc] in {
544550
defm "" : LMULWriteResMX<"WriteVSShiftV", [SMX60_VIEU], mx, IsWorstCase>;
545551
defm "" : LMULWriteResMX<"WriteVSShiftX", [SMX60_VIEU], mx, IsWorstCase>;
546552
defm "" : LMULWriteResMX<"WriteVSShiftI", [SMX60_VIEU], mx, IsWorstCase>;

0 commit comments

Comments
 (0)