diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-08-18 11:11:58 +0100 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-08-18 11:11:58 +0100 |
commit | d2057a8015e97b5e212f3963923dbdcce9356a8f (patch) | |
tree | 20298a2959511d734ee0915f27795f4c2c8598e2 /llvm/tools/llvm-objdump | |
parent | eaff200429a3dcf36eebfae39d2e859d6815285e (diff) | |
download | llvm-d2057a8015e97b5e212f3963923dbdcce9356a8f.zip llvm-d2057a8015e97b5e212f3963923dbdcce9356a8f.tar.gz llvm-d2057a8015e97b5e212f3963923dbdcce9356a8f.tar.bz2 |
[X86][AVX] Lower v16i8/v8i16 binary shuffles using VTRUNC/TRUNCATE
This patch adds lowerShuffleWithVTRUNC to handle basic binary shuffles that can be lowered either as a pure ISD::TRUNCATE or a X86ISD::VTRUNC (with undef/zero values in the remaining upper elements).
We concat the binary sources together into a single 256-bit source vector. To avoid regressions we perform this after we've tried to lower with PACKS/PACKUS which typically does a cleaner job than a concat.
For non-AVX512VL cases we have to canonicalize VTRUNC cases to use a 512-bit source vectors (inserting undefs/zeros in the upper elements as necessary), truncate and then (possibly) extract the 128-bit result.
This should address the last regressions in D66004
Differential Revision: https://reviews.llvm.org/D86093
Diffstat (limited to 'llvm/tools/llvm-objdump')
0 files changed, 0 insertions, 0 deletions