[PATCH] D66718: [DAGCombiner] (insert_vector_elt (vector_shuffle X, Y), (extract_vector_elt X, N), IdxC) -> (vector_shuffle X, Y)

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 25 23:20:34 PDT 2019


lebedev.ri added inline comments.


================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:16448-16450
+      SmallVector<int, 16> NewMask(Mask.size());
+      for (size_t i = 0; i < Mask.size(); i++)
+        NewMask[i] = Mask[i];
----------------
lebedev.ri wrote:
> craig.topper wrote:
> > deadalnix wrote:
> > > lebedev.ri wrote:
> > > > So `NewMask` is simply inited as a copy of `SVN->getMask()`?
> > > > Would something like `SmallVector<int, 16> NewMask(SVN->getMask());` just work?
> > > I asked mys elf the same question. This doesn't seem to work.
> > Yeah SmallVector doesn't take an ArrayRef, but you can do
> > 
> > SmallVector<int, 16> NewMask(Mask.begin(), Mask.end());
> `SmallVector<int, 16> NewMask(SVN->getMask().begin(), SVN->getMask().end());` then.
Please mark comments as resolved as appropriate.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D66718





More information about the llvm-commits mailing list