OSDN Git Service

[DAG] Allow build-to-shuffle combine to combine builds from two wide vectors.
authorMichael Kuperstein <mkuper@google.com>
Tue, 13 Sep 2016 21:53:32 +0000 (21:53 +0000)
committerMichael Kuperstein <mkuper@google.com>
Tue, 13 Sep 2016 21:53:32 +0000 (21:53 +0000)
commit33893419506150322836ecb439b9c23c986522eb
tree09b94d87c02e661df227c37eeaaa1fc79bafd81e
parent7402add75dd667fd3b0485a389589723e4a92bb2
[DAG] Allow build-to-shuffle combine to combine builds from two wide vectors.

This allows us to, in some cases, create a vector_shuffle out of a build_vector, when
the inputs to the build are extract_elements from two different vectors, at least one
of which is wider than the output. (E.g. a <8 x i16> being constructed out of
elements from a <16 x i16> and a <8 x i16>).

Differential Revision: https://reviews.llvm.org/D24491

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281402 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/oddshuffles.ll