1
- //===-- RISCVSchedGenericOOO.td - Generic O3 Processor - ----*- tablegen -*-===//
1
+ //===-- RISCVSchedGenericOOO.td - Generic OOO Processor ----*- tablegen -*-===//
2
2
//
3
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
4
// See https://llvm.org/LICENSE.txt for license information.
13
13
// * IXU (Integer ALU Unit): 4 units, only one can execute mul/div.
14
14
// * FXU (Floating-point Unit): 2 units.
15
15
// * LSU (Load/Store Unit): 2 units.
16
- // * VXU (Vector Unit): 1 unit.
17
16
// * Latency:
18
17
// * Integer instructions: 1 cycle.
19
18
// * Multiplication instructions: 4 cycles.
20
19
// * Division instructions: 13-21 cycles.
21
20
// * Floating-point instructions: 2-6 cycles.
22
21
// * Floating-point fdiv/fsqrt instructions: 9-21 cycles.
23
- // * Vector instructions: 2-6 cycles.
24
22
// * Load/Store:
25
23
// * IXU: 4 cycles.
26
24
// * FXU: 4 cycles.
27
- // * VXU: 6 cycles.
28
25
// * Integer/floating-point/vector div/rem/sqrt/... are non-pipelined.
26
+ //
27
+ // TODO: Add vector scheduling.
29
28
//===----------------------------------------------------------------------===//
30
29
31
30
def GenericOOOModel : SchedMachineModel {
@@ -49,8 +48,6 @@ def GenericOOOLSU : ProcResource<2>;
49
48
def GenericOOOFMulDiv : ProcResource<1>;
50
49
def GenericOOOFloat : ProcResource<1>;
51
50
def GenericOOOFPU : ProcResGroup<[GenericOOOFMulDiv, GenericOOOFloat]>;
52
- // TODO: Add vector scheduling.
53
- // def GenericOOOVXU : ProcResource<1>;
54
51
55
52
//===----------------------------------------------------------------------===//
56
53
// Branches
@@ -318,10 +315,10 @@ let Latency = 2 in {
318
315
319
316
// Other than Zfhmin
320
317
let Latency = 2 in {
321
- def : WriteRes<WriteFCvtI64ToF16, []>;
322
- def : WriteRes<WriteFCvtI32ToF16, []>;
323
- def : WriteRes<WriteFCvtF16ToI64, []>;
324
- def : WriteRes<WriteFCvtF16ToI32, []>;
318
+ def : WriteRes<WriteFCvtI64ToF16, [GenericOOOFPU ]>;
319
+ def : WriteRes<WriteFCvtI32ToF16, [GenericOOOFPU ]>;
320
+ def : WriteRes<WriteFCvtF16ToI64, [GenericOOOFPU ]>;
321
+ def : WriteRes<WriteFCvtF16ToI32, [GenericOOOFPU ]>;
325
322
}
326
323
327
324
// Arithmetic and logic
0 commit comments