[PATCH] D122145: [SLP] Cluster ordering for loads

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 21 08:17:18 PDT 2022


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

Given a load without a better order, this patch partially sorts the elements to form clusters of adjacent elements in memory. These clusters can potentially be loaded in fewer loads, meaning less overall shuffling (for example loading v4i8 clusters of a v16i8 as a single f32 loads, as opposed to multiple independent bytes loads and inserts).


https://reviews.llvm.org/D122145

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
  llvm/test/Transforms/SLPVectorizer/X86/split-load8_2-unord.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122145.416947.patch
Type: text/x-patch
Size: 30882 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220321/4890ab70/attachment.bin>


More information about the llvm-commits mailing list