[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
Fri Dec 18 11:45:10 PST 2020


frasercrmck added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelLowering.h:85
   // scalar is split into two i32 operands: low and high halves
   SPLAT_VECTOR_I64_PAIR,
 };
----------------
craig.topper wrote:
> Is there a different patch that adds SPLAT_VECTOR_I64_PAIR?
Sorry, I messed up my first update and it only included my latest commit. You should see the full diff now (if you refresh).


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:636
+let Complexity = 1 in
+def SplatPat       : ComplexPattern<vAny, 1, "SelectVSplat", [splat_vector, rv32_splat_i64]>;
+def SplatPat_simm5 : ComplexPattern<vAny, 1, "SelectVSplat_simm5", [splat_vector, rv32_splat_i64]>;
----------------
craig.topper wrote:
> I don't think you want anything in the square brackets. That autogenerates a pattern for splat_vector/rv32_splat_i64 as the root node for the isel match. I guess your vmv.v.v pattern is getting priority so its not causing a problem?
I'm not sure I follow, sorry. I think I'll need to read up on `ComplexPattern`s as I've managed to avoid them thus far.


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