diff --git a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td --- a/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td +++ b/llvm/lib/Target/RISCV/RISCVSchedSiFive7.td @@ -110,6 +110,7 @@ def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; @@ -121,6 +122,7 @@ } let Latency = 2 in { +def : WriteRes; def : WriteRes; def : WriteRes; } @@ -136,6 +138,22 @@ def : WriteRes; } +// Half precision. +let Latency = 5 in { +def : WriteRes; +def : WriteRes; +def : WriteRes; +} +let Latency = 3 in { +def : WriteRes; +def : WriteRes; +} + +let Latency = 14, ResourceCycles = [1, 13] in { +def : WriteRes; +def : WriteRes; +} + // Single precision. let Latency = 5 in { def : WriteRes; @@ -170,21 +188,33 @@ // Conversions let Latency = 3 in { +def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; +def : WriteRes; +def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; +def : WriteRes; +def : WriteRes; def : WriteRes; def : WriteRes; def : WriteRes; @@ -224,36 +254,55 @@ def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; +def : ReadAdvance; def : ReadAdvance; def : ReadAdvance; @@ -446,5 +495,4 @@ defm : UnsupportedSchedZbkb; defm : UnsupportedSchedZbkx; defm : UnsupportedSchedZfa; -defm : UnsupportedSchedZfh; }