[PATCH] D130895: [RISCV] Make VL choosing for a splat-like VMV based on its users

Anton Sidorenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 16 10:01:21 PDT 2022


asi-sc added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:2452
+    return SDValue{};
+  const MCInstrDesc &MCID = TII.get(Node->getMachineOpcode());
+  if (!RISCVII::hasVLOp(MCID.TSFlags))
----------------
reames wrote:
> JFYI, this looks suspicious.  The node operands of the SDNode and the MI are not guaranteed by construction to be the same.  Or at least if they are, we haven't adjusted other code under that assumption and asserted appropriately.  
> JFYI, this looks suspicious.  The node operands of the SDNode and the MI are not guaranteed by construction to be the same.  

Then can we guarantee that 
  * policy operand is the last operand of the node (skipping glue and chain)
  * VL operand is just before the policy operand if there is policy, or the last
  * merge operand is the first operand after defs?
Of course, only if the corresponding RISCVII:has*Op checker is true.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130895



More information about the llvm-commits mailing list