[PATCH] D22859: [X86][SSE] Enable target shuffle combining to combine multiple shuffle inputs.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 27 06:24:00 PDT 2016
RKSimon created this revision.
RKSimon added reviewers: chandlerc, delena, ab, spatel, andreadb.
RKSimon added a subscriber: llvm-commits.
RKSimon set the repository for this revision to rL LLVM.
We currently only support combining target shuffles that consist of a single source input (plus elements known to be undef/zero).
This patch generalizes the recursive combining of the target shuffle to collect all the inputs, merging any duplicates along the way, into a full set of src ops and its shuffle mask.
We uncover a number of cases where we have failed to combine a unary shuffle because the input has been duplicated and separated during lowering.
This will allow us to combine to 2-input shuffles in a future patch.
Repository:
rL LLVM
https://reviews.llvm.org/D22859
Files:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512-build-vector.ll
test/CodeGen/X86/clear_upper_vector_element_bits.ll
test/CodeGen/X86/vector-shuffle-256-v16.ll
test/CodeGen/X86/vector-shuffle-256-v32.ll
test/CodeGen/X86/vector-shuffle-combining.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22859.65719.patch
Type: text/x-patch
Size: 19852 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160727/5f0ae7cd/attachment.bin>
More information about the llvm-commits
mailing list