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 @@ -292,6 +292,16 @@ def : WriteRes; } +// Single-bit instructions +// BEXT[I] instruction is available on all ALUs and the other instructions +// are only available on the SiFive7B pipe. +let Latency = 3 in { +def : WriteRes; +def : WriteRes; +def : WriteRes; +def : WriteRes; +} + // Memory def : WriteRes; def : WriteRes; @@ -987,6 +997,9 @@ def : SiFive7AnyToGPRBypass; def : SiFive7AnyToGPRBypass; def : SiFive7AnyToGPRBypass; +// Single-bit instructions +def : SiFive7AnyToGPRBypass; +def : SiFive7AnyToGPRBypass; // 6. Configuration-Setting Instructions def : ReadAdvance; @@ -1158,7 +1171,6 @@ //===----------------------------------------------------------------------===// // Unsupported extensions defm : UnsupportedSchedZbc; -defm : UnsupportedSchedZbs; defm : UnsupportedSchedZbkb; defm : UnsupportedSchedZbkx; defm : UnsupportedSchedZfa;