[PATCH] D29000: [SelectionDAG] Teach getNode to simplify a couple easy cases of EXTRACT_SUBVECTOR
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jan 22 19:26:08 PST 2017
craig.topper created this revision.
This teaches getNode to simplify extracting from Undef. This is similar to what is done for EXTRACT_VECTOR_ELT. It also adds support for extracting from CONCAT_VECTOR when we can reused one of the inputs to the concat. These seem like simple non-target specific optimizations.
For X86 we currently handle undef in extractSubvector, but not all EXTRACT_SUBVECTOR creations go through there.
Ultimately, my motivation here is to simplify extractSubvector and remove custom lowering for EXTRACT_SUBVECTOR since we don't do anything but handle undef and BUILD_VECTOR optimizations, but those should be DAG combines.
https://reviews.llvm.org/D29000
Files:
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
test/CodeGen/X86/avx512-ext.ll
test/CodeGen/X86/avx512-pmovxrm.ll
test/CodeGen/X86/avx512dq-intrinsics-upgrade.ll
test/CodeGen/X86/vector-zext.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29000.85310.patch
Type: text/x-patch
Size: 20033 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170123/baa8e06c/attachment.bin>
More information about the llvm-commits
mailing list