summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp
diff options
context:
space:
mode:
authorMichael Kuperstein <mkuper@google.com>2016-09-01 21:32:09 +0000
committerMichael Kuperstein <mkuper@google.com>2016-09-01 21:32:09 +0000
commit5f17d08f498167c1523136b3e62f51588769152d (patch)
tree8bc52e8b0d24f9fa1d17b95b08cdf0e7f82aeecd /lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp
parente68b47070f617ffa8becd3c9d777a93cf2c3b6a8 (diff)
downloadbcm5719-llvm-5f17d08f498167c1523136b3e62f51588769152d.tar.gz
bcm5719-llvm-5f17d08f498167c1523136b3e62f51588769152d.zip
[SelectionDAG] Generate vector_shuffle nodes for undersized result vector sizes
Prior to this, we could generate a vector_shuffle from an IR shuffle when the size of the result was exactly the sum of the sizes of the input vectors. If the output vector was narrower - e.g. a <12 x i8> being formed by a shuffle with two <8 x i8> inputs - we would lower the shuffle to a sequence of extracts and inserts. Instead, we can form a larger vector_shuffle, and then extract a subvector of the right size - e.g. shuffle the two <8 x i8> inputs into a <16 x i8> and then extract a <12 x i8>. This also includes a target-specific X86 combine that in the presence of AVX2 combines: (vector_shuffle <mask> (concat_vectors t1, undef) (concat_vectors t2, undef)) into: (vector_shuffle <mask> (concat_vectors t1, t2), undef) in cases where this allows us to form VPERMD/VPERMQ. (This is not a separate commit, as that pattern does not appear without the DAGBuilder change.) llvm-svn: 280418
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud