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

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 25 11:45:20 PDT 2019


craig.topper 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];
----------------
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());


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