[PATCH] [DagCombiner] Allow shuffles to merge through bitcasts
Simon Pilgrim
llvm-dev at redking.me.uk
Fri Feb 27 07:23:57 PST 2015
Hi chandlerc, andreadb, qcolombet,
Currently shuffles may only be combined if they are of the same type, despite the fact that bitcasts are often introduced in between shuffle nodes (e.g. x86 shuffle type widening).
This patch allows a single input shuffle to peek through bitcasts and if the input is another shuffle will merge them, shuffling using the smallest sized type, and re-applying the bitcasts at the inputs and output instead.
Dropped old ShuffleToZext test - this patch removes the use of zext and vector-zext.ll covers these anyhow.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7939
Files:
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/2013-02-12-ShuffleToZext.ll
test/CodeGen/X86/vector-shuffle-128-v16.ll
test/CodeGen/X86/vector-shuffle-128-v2.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-mmx.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7939.20853.patch
Type: text/x-patch
Size: 11650 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150227/fcccebf2/attachment.bin>
More information about the llvm-commits
mailing list