[PATCH] D32993: DAGCombine: Extend createBuildVecShuffle for case len(in_vec) = 4*len(result_vec)

Zvi Rackover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 9 00:57:55 PDT 2017


zvi created this revision.
Herald added a subscriber: javed.absar.

Add support for the case where there is a single input vector from which
elements are gathered into a build_vector, and that input vector is 4x longer
than the result vector.
VECTOR_SHUFFLE requires that the input vectors and result vector be of same type,
and createBuildVecShuffle() already has some recipes for handling numerous cases
to meet this requirement. As for the case the patch addresses:
This is done by splitting the input vector to two half-sized vectors and
extending the result vector to become twice as long.


https://reviews.llvm.org/D32993

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/ARM/vpadd.ll
  test/CodeGen/X86/oddshuffles.ll
  test/CodeGen/X86/shuffle-vs-trunc-512.ll
  test/CodeGen/X86/vector-shuffle-512-v32.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32993.98257.patch
Type: text/x-patch
Size: 16896 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170509/8e393292/attachment.bin>


More information about the llvm-commits mailing list