[clang] [llvm] [RISCV] Add Qualcomm uC Xqcics(Conditional Select) extension (PR #119504)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 10 22:13:54 PST 2024


================
@@ -57,6 +57,86 @@ class QCIRVInstRR<bits<5> func5, DAGOperand InTyRs1, string opcodestr>
     : RVInstR<{0b00, func5}, 0b011, OPC_CUSTOM_0, (outs GPRNoX0:$rd),
               (ins InTyRs1:$rs1, GPRNoX0:$rs2), opcodestr, "$rd, $rs1, $rs2">;
 
+let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
+class QCISELECTIICC<bits<3> func3, string opcodestr>
+    : RVInst<(outs GPRNoX0:$rd_wb), (ins GPRNoX0:$rd, GPRNoX0:$rs1,
----------------
topperc wrote:

Can we use `RVInstR4` here? Then you only need to do

```
  let Constraints = "$rd = $rd_wb";
  bits<5> simm;
  bits<5> simm5;

  let rs3 = simm;
  let rs2 = simm5;
```

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


More information about the llvm-commits mailing list