[PATCH] D93312: [RISCV] Add ISel support for RVV .vx and .vi forms

Fraser Cormack via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 21 11:22:15 PST 2020


frasercrmck marked an inline comment as done.
frasercrmck added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:467
   let SEWIndex = 3;
+  let HasDummyMask = 1;
   let BaseInstr = !cast<Instruction>(PseudoToVInst<NAME>.VInst);
----------------
craig.topper wrote:
> Why is this changed? The name of the class is NoDummyMask.
I had a rebase conflict at some point and must have resolved it incorrectly. Thanks for spotting this.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:2186
+foreach vti = AllIntegerVectors in {
+  def : Pat<(vti.Vector (splat_vector GPR:$rs1)),
+            (!cast<Instruction>("PseudoVMV_V_X_" # vti.LMul.MX)
----------------
One thing I'm not sure about is whether or not to keep `splat_vector` and `rv32_splat_i64` patterns separate as I've done here or whether to use the `ComplexPattern`s as root nodes to combine the two. Assuming `rv32_splat_i64` is only generated for RV32/i64 and `splat_vector` isn't created for that case, the result should be the same if a little less clear.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93312



More information about the llvm-commits mailing list