[PATCH] D82792: [SVE][CodeGen] Legalisation of unpredicated load instructions

Kerry McLaughlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 30 11:24:34 PDT 2020


kmclaughlin marked 5 inline comments as done.
kmclaughlin added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:2379
+    auto VS0 = N0.getOperand(1)->getConstantOperandAPInt(0);
+    auto VS1 = N1->getConstantOperandAPInt(0);
+    auto VS = DAG.getVScale(DL, VT, VS0 + VS1);
----------------
efriedma wrote:
> Is there some reason to expect the two integers have the same width?
I thought we could expect that the integers will have the same width here, since we're explicitly checking the opcodes used in the expression. I would have thought if the integers had different widths that the expression would also include a sign/zero extend or a truncate somewhere?


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:1549
+              IncrementSize));
+    MPI = LD->getPointerInfo();
+    Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr, BytesIncrement);
----------------
efriedma wrote:
> kmclaughlin wrote:
> > Where `LoVT` is not scalable we update the PointerInfo with the offset, IncrementSize. For scalable types I've just reused `LD->getPointerInfo()` for now; I'm not entirely sure how best to handle the PointerInfo for scalable vectors as MachinePointerInfo currently has no knowledge of scaled offsets.
> You can get an "empty" MachinePointerInfo.  Something like `MachinePointerInfo(LD->getPointerInfo()->getAddrSpace());`
Thanks for the suggestion on this!


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

https://reviews.llvm.org/D82792





More information about the llvm-commits mailing list