[PATCH] D60545: [DAGCombiner] narrow shuffle of concatenated vectors
Sanjay Patel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 10 15:35:51 PDT 2019
spatel created this revision.
spatel added reviewers: dmgreen, sdesmalen, efriedma, RKSimon, craig.topper.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar, mcrosier.
Herald added a project: LLVM.
// shuffle (concat X, undef), (concat Y, undef), Mask -->
// concat (shuffle X, Y, Mask0), (shuffle X, Y, Mask1)
Someone with more ARM NEON experience can confirm, but I think the changes with 'vtrn' are improvements.
The x86 changes look neutral or better. There's one test with an extra instruction, but that could be reversed for a subtarget with the right attributes.
But by default, I think we want to avoid the 256-bit op when possible (in my motivating benchmark, a handful of ymm ops sprinkled into a sequence of xmm ops are triggering frequency throttling on Haswell resulting in signficantly worse perf).
https://reviews.llvm.org/D60545
Files:
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/ARM/vuzp.ll
llvm/test/CodeGen/ARM/vzip.ll
llvm/test/CodeGen/X86/mulvi32.ll
llvm/test/CodeGen/X86/oddshuffles.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60545.194598.patch
Type: text/x-patch
Size: 9697 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190410/98b36f68/attachment.bin>
More information about the llvm-commits
mailing list