Skip to content

Commit 988bb26

Browse files
committed
fixup! Update latency of atomic memory ops and FSqrt
1 parent a227b33 commit 988bb26

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

llvm/lib/Target/RISCV/RISCVSchedSiFiveP800.td

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,6 @@ def : WriteRes<WriteFST64, [SiFiveP800LDST]>;
198198
let Latency = 4 in {
199199
def : WriteRes<WriteLDB, [SiFiveP800Load]>;
200200
def : WriteRes<WriteLDH, [SiFiveP800Load]>;
201-
}
202-
let Latency = 4 in {
203201
def : WriteRes<WriteLDW, [SiFiveP800Load]>;
204202
def : WriteRes<WriteLDD, [SiFiveP800Load]>;
205203
}
@@ -211,11 +209,15 @@ def : WriteRes<WriteFLD64, [SiFiveP800Load]>;
211209
}
212210

213211
// Atomic memory
214-
let Latency = 3 in {
215212
def : WriteRes<WriteAtomicSTW, [SiFiveP800LDST]>;
216213
def : WriteRes<WriteAtomicSTD, [SiFiveP800LDST]>;
214+
215+
let Latency = 7 in {
217216
def : WriteRes<WriteAtomicW, [SiFiveP800LDST]>;
218217
def : WriteRes<WriteAtomicD, [SiFiveP800LDST]>;
218+
}
219+
220+
let Latency = 10 in {
219221
def : WriteRes<WriteAtomicLDW, [SiFiveP800Load]>;
220222
def : WriteRes<WriteAtomicLDD, [SiFiveP800Load]>;
221223
}
@@ -253,8 +255,8 @@ def : WriteRes<WriteFDiv16, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
253255
let ReleaseAtCycles = [1, 4];
254256
}
255257
def : WriteRes<WriteFSqrt16, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
256-
let Latency = 18;
257-
let ReleaseAtCycles = [1, 17];
258+
let Latency = 8;
259+
let ReleaseAtCycles = [1, 7];
258260
}
259261

260262
// Single precision.
@@ -263,8 +265,8 @@ def : WriteRes<WriteFDiv32, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
263265
let ReleaseAtCycles = [1, 6];
264266
}
265267
def : WriteRes<WriteFSqrt32, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
266-
let Latency = 18;
267-
let ReleaseAtCycles = [1, 17];
268+
let Latency = 14;
269+
let ReleaseAtCycles = [1, 13];
268270
}
269271

270272
// Double precision
@@ -273,8 +275,8 @@ def : WriteRes<WriteFDiv64, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
273275
let ReleaseAtCycles = [1, 11];
274276
}
275277
def : WriteRes<WriteFSqrt64, [SiFiveP800FEXQ1, SiFiveP800FloatDiv]> {
276-
let Latency = 33;
277-
let ReleaseAtCycles = [1, 32];
278+
let Latency = 29;
279+
let ReleaseAtCycles = [1, 28];
278280
}
279281

280282
// Conversions

0 commit comments

Comments
 (0)