[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