[llvm] [RISCV][CodeGen] Add CodeGen support of Zibi experimental extension (PR #146858)

Sam Elliott via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 16 21:02:58 PDT 2025


================
@@ -42,3 +42,24 @@ let Predicates = [HasStdExtZibi] in {
   def BEQI : Branch_imm<0b010, "beqi">;
   def BNEI : Branch_imm<0b011, "bnei">;
 } // Predicates = [HasStdExtZibi]
+
+multiclass BccImmPat<CondCode Cond, Branch_imm Inst> {
+  def : Pat<(riscv_brcc (XLenVT GPR:$rs1), imm5_zibi:$cimm, Cond, bb:$imm12),
+            (Inst GPR:$rs1, imm5_zibi:$cimm, bare_simm13_lsb0_bb:$imm12)>;
+}
+
+defm CC_Imm5_Zibi : SelectCC_GPR_riirr<GPR, imm5_zibi>;
+
+class SelectZibi<CondCode Cond>
+    : Pat<(riscv_selectcc_frag:$cc (XLenVT GPR:$lhs), uimm7:$cimm, Cond,
+              (XLenVT GPR:$truev), GPR:$falsev),
+          (Select_GPR_Using_CC_Imm5_Zibi GPR:$lhs, uimm7:$cimm,
+              (IntCCtoRISCVCC $cc), GPR:$truev, GPR:$falsev)>;
----------------
lenary wrote:

I don't understand why this has uimm7 ops when the `Select_GPR_Using_CC_Imm5_Zibi` is expecting a imm5_zibi.

https://github.com/llvm/llvm-project/pull/146858


More information about the llvm-commits mailing list