[PATCH] D123587: [SLP] Generate shuffles if we can reorder an existing node

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 12 04:50:49 PDT 2022


dmgreen created this revision.
dmgreen added reviewers: ABataev, RKSimon, vporpo, dtemirbulatov.
Herald added a subscriber: hiraditya.
Herald added a project: All.
dmgreen requested review of this revision.
Herald added a project: LLVM.

Whilst vectorizing a tree element, if we detect a list of nodes which is a reordering of an existing tree element, we can create a shuffle instead of falling back to a "build-vector" (i.e inserts that we extract from a vector instruction). This can help reduce the number of insert/extracts sequences that need to be cleaned up by instcombine.


https://reviews.llvm.org/D123587

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
  llvm/test/Transforms/SLPVectorizer/X86/extractelement.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll
  llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
  llvm/test/Transforms/SLPVectorizer/X86/phi.ll
  llvm/test/Transforms/SLPVectorizer/X86/reorder_diamond_match.ll
  llvm/test/Transforms/SLPVectorizer/X86/reordered-top-scalars.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123587.422161.patch
Type: text/x-patch
Size: 39582 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220412/20ec7941/attachment.bin>


More information about the llvm-commits mailing list