[PATCH] D117468: [RISCV] Add intrinsic for Zbt extension

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 17 09:08:48 PST 2022


craig.topper added inline comments.


================
Comment at: clang/include/clang/Basic/BuiltinsRISCV.def:65
+// Zbt extension
+TARGET_BUILTIN(__builtin_riscv_cmov, "LiLiLiLi", "nc", "experimental-zbt")
+TARGET_BUILTIN(__builtin_riscv_cmix, "LiLiLiLi", "nc", "experimental-zbt")
----------------
cmov and cmix don't builtins don't seem very useful. The compiler can already match them from IR operations that can be expressed in C.


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:18971
+      break;
+    case RISCV::BI__builtin_riscv_fsri_32:
+    case RISCV::BI__builtin_riscv_fsri_64:
----------------
We shouldn't have an fsri builtin. The fsr builtin is sufficient. And `riscv_fsri` looks unhandled in the backend.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoZb.td:907
           (FSR GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
+def : Pat<(riscv_fsr GPR:$rs3, GPR:$rs1, uimmlog2xlen:$shamt),
+          (FSRI GPR:$rs1, GPR:$rs3, uimmlog2xlen:$shamt)>;
----------------
Need to also handle fsl with a constant argument.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117468/new/

https://reviews.llvm.org/D117468



More information about the cfe-commits mailing list