Skip to content

Commit 5e13d85

Browse files
committed
Add more comments and adjust Zfh
1 parent 06d9ce2 commit 5e13d85

File tree

2 files changed

+41
-38
lines changed

2 files changed

+41
-38
lines changed

llvm/lib/Target/RISCV/RISCVSchedGenericOOO.td

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
// * Latency:
1818
// * Integer instructions: 1 cycle.
1919
// * Multiplication instructions: 4 cycles.
20-
// * Multiplication/Division instructions: 7-13 cycles.
20+
// * Division instructions: 13-21 cycles.
2121
// * Floating-point instructions: 2-6 cycles.
22+
// * Floating-point fdiv/fsqrt instructions: 9-21 cycles.
2223
// * Vector instructions: 2-6 cycles.
2324
// * Load/Store:
2425
// * IXU: 4 cycles.
@@ -327,23 +328,25 @@ let Latency = 2 in {
327328
let Latency = 2 in
328329
def : WriteRes<WriteFAdd16, [GenericOOOFPU]>;
329330

330-
let Latency = 4 in
331-
def : WriteRes<WriteFMul16, [GenericOOOFPU]>;
332-
333-
let Latency = 6 in
334-
def : WriteRes<WriteFMA16, [GenericOOOFPU]>;
335-
336331
def : WriteRes<WriteFSGNJ16, [GenericOOOFPU]>;
337332
def : WriteRes<WriteFMinMax16, [GenericOOOFPU]>;
338333

339334
// Compare
340335
let Latency = 2 in
341336
def : WriteRes<WriteFCmp16, [GenericOOOFPU]>;
342337

338+
// Multiplication
339+
let Latency = 4 in
340+
def : WriteRes<WriteFMul16, [GenericOOOFMulDiv]>;
341+
342+
// FMA
343+
let Latency = 6 in
344+
def : WriteRes<WriteFMA16, [GenericOOOFMulDiv]>;
345+
343346
// Division
344347
let Latency = 9, ReleaseAtCycles = [9] in {
345-
def : WriteRes<WriteFDiv16, [GenericOOOFPU]>;
346-
def : WriteRes<WriteFSqrt16, [GenericOOOFPU]>;
348+
def : WriteRes<WriteFDiv16, [GenericOOOFMulDiv]>;
349+
def : WriteRes<WriteFSqrt16, [GenericOOOFMulDiv]>;
347350
}
348351

349352
// Classify

llvm/test/tools/llvm-mca/RISCV/GenericOOO/floating-point.s

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,13 @@ fgeq.d a1, ft1, ft2
176176

177177
# CHECK: Iterations: 1
178178
# CHECK-NEXT: Instructions: 113
179-
# CHECK-NEXT: Total Cycles: 97
179+
# CHECK-NEXT: Total Cycles: 107
180180
# CHECK-NEXT: Total uOps: 113
181181

182182
# CHECK: Dispatch Width: 6
183-
# CHECK-NEXT: uOps Per Cycle: 1.16
184-
# CHECK-NEXT: IPC: 1.16
185-
# CHECK-NEXT: Block RThroughput: 70.0
183+
# CHECK-NEXT: uOps Per Cycle: 1.06
184+
# CHECK-NEXT: IPC: 1.06
185+
# CHECK-NEXT: Block RThroughput: 93.0
186186

187187
# CHECK: Instruction Info:
188188
# CHECK-NEXT: [1]: #uOps
@@ -201,15 +201,15 @@ fgeq.d a1, ft1, ft2
201201
# CHECK-NEXT: 1 1 0.50 * fsd ft0, 0(a0)
202202
# CHECK-NEXT: 1 2 0.50 fadd.h fs10, fs11, ft8
203203
# CHECK-NEXT: 1 2 0.50 fsub.h ft9, ft10, ft11
204-
# CHECK-NEXT: 1 4 0.50 fmul.h ft0, ft1, ft2
205-
# CHECK-NEXT: 1 9 4.50 fdiv.h ft3, ft4, ft5
206-
# CHECK-NEXT: 1 9 4.50 fsqrt.h ft6, ft7
204+
# CHECK-NEXT: 1 4 1.00 fmul.h ft0, ft1, ft2
205+
# CHECK-NEXT: 1 9 9.00 fdiv.h ft3, ft4, ft5
206+
# CHECK-NEXT: 1 9 9.00 fsqrt.h ft6, ft7
207207
# CHECK-NEXT: 1 1 0.50 fmin.h fa5, fa6, fa7
208208
# CHECK-NEXT: 1 1 0.50 fmax.h fs2, fs3, fs4
209-
# CHECK-NEXT: 1 6 0.50 fmadd.h fa0, fa1, fa2, ft11
210-
# CHECK-NEXT: 1 6 0.50 fmsub.h fa4, fa5, fa6, fa7
211-
# CHECK-NEXT: 1 6 0.50 fnmsub.h fs2, fs3, fs4, fs5
212-
# CHECK-NEXT: 1 6 0.50 fnmadd.h fs6, fs7, fs8, fs9
209+
# CHECK-NEXT: 1 6 1.00 fmadd.h fa0, fa1, fa2, ft11
210+
# CHECK-NEXT: 1 6 1.00 fmsub.h fa4, fa5, fa6, fa7
211+
# CHECK-NEXT: 1 6 1.00 fnmsub.h fs2, fs3, fs4, fs5
212+
# CHECK-NEXT: 1 6 1.00 fnmadd.h fs6, fs7, fs8, fs9
213213
# CHECK-NEXT: 1 2 0.50 fadd.s fs10, fs11, ft8
214214
# CHECK-NEXT: 1 2 0.50 fsub.s ft9, ft10, ft11
215215
# CHECK-NEXT: 1 4 1.00 fmul.s ft0, ft1, ft2
@@ -319,7 +319,7 @@ fgeq.d a1, ft1, ft2
319319

320320
# CHECK: Resource pressure per iteration:
321321
# CHECK-NEXT: [0] [1] [2] [3.0] [3.1] [4.0] [4.1] [5]
322-
# CHECK-NEXT: - 90.00 89.00 - - 3.00 3.00 -
322+
# CHECK-NEXT: - 99.00 80.00 - - 3.00 3.00 -
323323

324324
# CHECK: Resource pressure by instruction:
325325
# CHECK-NEXT: [0] [1] [2] [3.0] [3.1] [4.0] [4.1] [5] Instructions:
@@ -331,16 +331,16 @@ fgeq.d a1, ft1, ft2
331331
# CHECK-NEXT: - - - - - 1.00 - - fsd ft0, 0(a0)
332332
# CHECK-NEXT: - - 1.00 - - - - - fadd.h fs10, fs11, ft8
333333
# CHECK-NEXT: - 1.00 - - - - - - fsub.h ft9, ft10, ft11
334-
# CHECK-NEXT: - - 1.00 - - - - - fmul.h ft0, ft1, ft2
334+
# CHECK-NEXT: - 1.00 - - - - - - fmul.h ft0, ft1, ft2
335335
# CHECK-NEXT: - 9.00 - - - - - - fdiv.h ft3, ft4, ft5
336-
# CHECK-NEXT: - - 9.00 - - - - - fsqrt.h ft6, ft7
337-
# CHECK-NEXT: - 1.00 - - - - - - fmin.h fa5, fa6, fa7
336+
# CHECK-NEXT: - 9.00 - - - - - - fsqrt.h ft6, ft7
337+
# CHECK-NEXT: - - 1.00 - - - - - fmin.h fa5, fa6, fa7
338338
# CHECK-NEXT: - - 1.00 - - - - - fmax.h fs2, fs3, fs4
339339
# CHECK-NEXT: - 1.00 - - - - - - fmadd.h fa0, fa1, fa2, ft11
340-
# CHECK-NEXT: - - 1.00 - - - - - fmsub.h fa4, fa5, fa6, fa7
340+
# CHECK-NEXT: - 1.00 - - - - - - fmsub.h fa4, fa5, fa6, fa7
341341
# CHECK-NEXT: - 1.00 - - - - - - fnmsub.h fs2, fs3, fs4, fs5
342-
# CHECK-NEXT: - - 1.00 - - - - - fnmadd.h fs6, fs7, fs8, fs9
343-
# CHECK-NEXT: - 1.00 - - - - - - fadd.s fs10, fs11, ft8
342+
# CHECK-NEXT: - 1.00 - - - - - - fnmadd.h fs6, fs7, fs8, fs9
343+
# CHECK-NEXT: - - 1.00 - - - - - fadd.s fs10, fs11, ft8
344344
# CHECK-NEXT: - - 1.00 - - - - - fsub.s ft9, ft10, ft11
345345
# CHECK-NEXT: - 1.00 - - - - - - fmul.s ft0, ft1, ft2
346346
# CHECK-NEXT: - 13.00 - - - - - - fdiv.s ft3, ft4, ft5
@@ -371,7 +371,7 @@ fgeq.d a1, ft1, ft2
371371
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.h fa0, ft0, rup
372372
# CHECK-NEXT: - - 1.00 - - - - - fcvt.h.d ft2, fa2
373373
# CHECK-NEXT: - - 1.00 - - - - - fcvt.w.s a0, fs5
374-
# CHECK-NEXT: - 1.00 - - - - - - fcvt.wu.s a1, fs6
374+
# CHECK-NEXT: - - 1.00 - - - - - fcvt.wu.s a1, fs6
375375
# CHECK-NEXT: - - 1.00 - - - - - fcvt.s.w ft11, a4
376376
# CHECK-NEXT: - - 1.00 - - - - - fcvt.s.wu ft0, a5
377377
# CHECK-NEXT: - - 1.00 - - - - - fcvt.l.s a0, ft0
@@ -381,21 +381,21 @@ fgeq.d a1, ft1, ft2
381381
# CHECK-NEXT: - - 1.00 - - - - - fmv.x.w a2, fs7
382382
# CHECK-NEXT: - - 1.00 - - - - - fmv.w.x ft1, a6
383383
# CHECK-NEXT: - - 1.00 - - - - - fsgnj.s fs1, fa0, fa1
384-
# CHECK-NEXT: - 1.00 - - - - - - fsgnjn.s fa1, fa3, fa4
384+
# CHECK-NEXT: - - 1.00 - - - - - fsgnjn.s fa1, fa3, fa4
385385
# CHECK-NEXT: - - 1.00 - - - - - fcvt.wu.d a4, ft11
386386
# CHECK-NEXT: - - 1.00 - - - - - fcvt.w.d a4, ft11
387387
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.w ft0, a5
388388
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.wu ft1, a6
389-
# CHECK-NEXT: - - 1.00 - - - - - fcvt.s.d fs5, fs6
389+
# CHECK-NEXT: - 1.00 - - - - - - fcvt.s.d fs5, fs6
390390
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.s fs7, fs8
391391
# CHECK-NEXT: - - 1.00 - - - - - fcvt.l.d a0, ft0
392392
# CHECK-NEXT: - - 1.00 - - - - - fcvt.lu.d a1, ft1
393393
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.l ft3, a3
394394
# CHECK-NEXT: - - 1.00 - - - - - fcvt.d.lu ft4, a4
395395
# CHECK-NEXT: - - 1.00 - - - - - fmv.x.d a2, ft2
396396
# CHECK-NEXT: - - 1.00 - - - - - fmv.d.x ft5, a5
397-
# CHECK-NEXT: - 1.00 - - - - - - fsgnj.d fs1, fa0, fa1
398-
# CHECK-NEXT: - - 1.00 - - - - - fsgnjn.d fa1, fa3, fa4
397+
# CHECK-NEXT: - - 1.00 - - - - - fsgnj.d fs1, fa0, fa1
398+
# CHECK-NEXT: - 1.00 - - - - - - fsgnjn.d fa1, fa3, fa4
399399
# CHECK-NEXT: - - 1.00 - - - - - feq.h a1, fs8, fs9
400400
# CHECK-NEXT: - - 1.00 - - - - - flt.h a2, fs10, fs11
401401
# CHECK-NEXT: - - 1.00 - - - - - fle.h a3, ft8, ft9
@@ -411,12 +411,12 @@ fgeq.d a1, ft1, ft2
411411
# CHECK-NEXT: - - 1.00 - - - - - fli.h ft1, -1.0
412412
# CHECK-NEXT: - - 1.00 - - - - - fli.s ft1, -1.0
413413
# CHECK-NEXT: - - 1.00 - - - - - fli.d ft1, -1.0
414-
# CHECK-NEXT: - - 1.00 - - - - - fminm.h fa0, fa1, fa2
415-
# CHECK-NEXT: - 1.00 - - - - - - fmaxm.h fs3, fs4, fs5
416-
# CHECK-NEXT: - 1.00 - - - - - - fminm.s fa0, fa1, fa2
417-
# CHECK-NEXT: - - 1.00 - - - - - fmaxm.s fs3, fs4, fs5
418-
# CHECK-NEXT: - - 1.00 - - - - - fminm.d fa0, fa1, fa2
419-
# CHECK-NEXT: - 1.00 - - - - - - fmaxm.d fs3, fs4, fs5
414+
# CHECK-NEXT: - 1.00 - - - - - - fminm.h fa0, fa1, fa2
415+
# CHECK-NEXT: - - 1.00 - - - - - fmaxm.h fs3, fs4, fs5
416+
# CHECK-NEXT: - - 1.00 - - - - - fminm.s fa0, fa1, fa2
417+
# CHECK-NEXT: - 1.00 - - - - - - fmaxm.s fs3, fs4, fs5
418+
# CHECK-NEXT: - 1.00 - - - - - - fminm.d fa0, fa1, fa2
419+
# CHECK-NEXT: - - 1.00 - - - - - fmaxm.d fs3, fs4, fs5
420420
# CHECK-NEXT: - - 1.00 - - - - - fround.h fs1, fs2
421421
# CHECK-NEXT: - - 1.00 - - - - - froundnx.h fs1, fs2
422422
# CHECK-NEXT: - - 1.00 - - - - - fround.s fs1, fs2

0 commit comments

Comments
 (0)