diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-02-17 10:37:49 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-02-17 10:37:49 +0000 |
commit | a50e8d3627eb7f56ebdf0351e18759bb50322c37 (patch) | |
tree | 9a969e91e7a84d0a70a6aed1a8608c0e8fc9498c /llvm/lib/Object/Error.cpp | |
parent | 11481f502c40f86037dc1479c4147f543f60a41b (diff) | |
download | llvm-a50e8d3627eb7f56ebdf0351e18759bb50322c37.zip llvm-a50e8d3627eb7f56ebdf0351e18759bb50322c37.tar.gz llvm-a50e8d3627eb7f56ebdf0351e18759bb50322c37.tar.bz2 |
[X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors
AVX1 doesn't support the shuffling of 256-bit integer vectors. For 32/64-bit elements we get around this by shuffling as float/double but for 8/16-bit elements (assuming they can't widen) we currently just split, shuffle as 128-bit vectors and concatenate the results back.
This patch adds the ability to lower using the bit-mask patterns before defaulting to the splitting behaviour. In some cases this ends up matching what AVX2 would do anyhow or what AVX1 does on the split vectors.
Part 1 of 2
Differential Revision: http://reviews.llvm.org/D17292
llvm-svn: 261081
Diffstat (limited to 'llvm/lib/Object/Error.cpp')
0 files changed, 0 insertions, 0 deletions