[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