[PATCH] D26902: [AVX-512] Add support for changing the element size of PALIGNR/VALIGND/VALIGNQ shuffles if they feed a vselect with a different type
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 20 16:44:09 PST 2016
craig.topper created this revision.
craig.topper added reviewers: RKSimon, delena, zvi.
craig.topper added a subscriber: llvm-commits.
Shuffle lowering widens the element size of a shuffle if elements are contiguous. This is sometimes help because wider element types have more shuffle options. If the shuffle is one of the arguments to a vselect this shuffle widening can introduce a bitcast between the vselect and the shuffle. This will prevent isel from selecting a masked operation. If the shuffle can be written equally efficiently with a different element size to match the vselect type we should change the shuffle type to allow masking.
This patch does this conversion for all VALIGND/VALIGNQ sizes. It also supports turning 128-bit PALIGNR into VALIGND/VALIGNQ.
I plan to add support for more operations in future patches.
https://reviews.llvm.org/D26902
Files:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shuffle-512-v16.ll
test/CodeGen/X86/vector-shuffle-masked.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26902.78675.patch
Type: text/x-patch
Size: 11404 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161121/4e4eb812/attachment-0001.bin>
More information about the llvm-commits
mailing list