Skip to content

Commit aa207c3

Browse files
authored
[RISCV] Update the latency of floating point load in SiFive P500 scheduling model (#133165)
P500-series cores should have a floating point load latency closer to 5 cycles, just like P400- and P600-series cores.
1 parent 08aedf7 commit aa207c3

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

llvm/lib/Target/RISCV/RISCVSchedSiFiveP500.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def : WriteRes<WriteLDW, [SiFiveP500Load]>;
132132
def : WriteRes<WriteLDD, [SiFiveP500Load]>;
133133
}
134134

135-
let Latency = 6 in {
135+
let Latency = 5 in {
136136
def : WriteRes<WriteFLD16, [SiFiveP500Load]>;
137137
def : WriteRes<WriteFLD32, [SiFiveP500Load]>;
138138
def : WriteRes<WriteFLD64, [SiFiveP500Load]>;

llvm/test/tools/llvm-mca/RISCV/SiFiveP500/load.s

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ fld ft0, 0(a0)
99

1010
# CHECK: Iterations: 1
1111
# CHECK-NEXT: Instructions: 4
12-
# CHECK-NEXT: Total Cycles: 12
12+
# CHECK-NEXT: Total Cycles: 11
1313
# CHECK-NEXT: Total uOps: 4
1414

1515
# CHECK: Dispatch Width: 3
16-
# CHECK-NEXT: uOps Per Cycle: 0.33
17-
# CHECK-NEXT: IPC: 0.33
16+
# CHECK-NEXT: uOps Per Cycle: 0.36
17+
# CHECK-NEXT: IPC: 0.36
1818
# CHECK-NEXT: Block RThroughput: 4.0
1919

2020
# CHECK: Instruction Info:
@@ -28,8 +28,8 @@ fld ft0, 0(a0)
2828
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
2929
# CHECK-NEXT: 1 4 1.00 * lw t0, 0(a0)
3030
# CHECK-NEXT: 1 4 1.00 * ld t0, 0(a0)
31-
# CHECK-NEXT: 1 6 1.00 * flw ft0, 0(a0)
32-
# CHECK-NEXT: 1 6 1.00 * fld ft0, 0(a0)
31+
# CHECK-NEXT: 1 5 1.00 * flw ft0, 0(a0)
32+
# CHECK-NEXT: 1 5 1.00 * fld ft0, 0(a0)
3333

3434
# CHECK: Resources:
3535
# CHECK-NEXT: [0] - SiFiveP500Div

0 commit comments

Comments
 (0)