[PATCH] D93823: [RISCV] Define vmsbf.m/vmsif.m/vmsof.m/viota.m/vid.v intrinsics.

Hsiangkai Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Dec 26 19:11:52 PST 2020


HsiangKai added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:541
+
+class VPseudoUnaryMask<VReg RetClass, VReg OpClass, string Constraint> :
+        Pseudo<(outs GetVRegNoV0<RetClass>.R:$rd),
----------------
Put VPseudoUnaryNoMask and VPseudoUnaryMask after VMaskPseudoUnaryMOutMask to make the order consistent.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:550
+  let usesCustomInserter = 1;
+  let usesCustomInserter = 1;
+  let Constraints = Join<[Constraint, "$rd = $merge"], ",">.ret;
----------------
duplicated.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:1149
+
+class VPatUnaryMask<string intrinsic_name,
+                     string inst,
----------------
Put VPatUnaryNoMask and VPatUnaryMask after VPatMaskUnaryMOut for consistency.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:1403
+  foreach mti = AllMasks in {
+    def : Pat<(mti.Mask (!cast<Intrinsic>(intrinsic_name)
+                        (mti.Mask VR:$rs1), GPR:$vl)),
----------------
Put the pattern into a class just like VPatUnary for consistency.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:2389
+
+let mayLoad = 0, mayStore = 0, hasSideEffects = 0, usesCustomInserter = 1,
+    Uses = [VL, VTYPE] in {
----------------
Could it be wrapped using multiclass/class like other instructions?


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:2929
+//===----------------------------------------------------------------------===//
+foreach vti = AllIntegerVectors in {
+  defm "" : VPatUnary<"int_riscv_viota", "PseudoVIOTA", "M",
----------------
Put foreach into multiclass definition for consistency.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:2938
+//===----------------------------------------------------------------------===//
+foreach vti = AllIntegerVectors in {
+  def : Pat<(vti.Vector (int_riscv_vid (XLenVT GPR:$vl))),
----------------
Could it be wrapped using multiclass/class like other instructions?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93823



More information about the llvm-commits mailing list