[X86][AVX512] Fixed VPERMT2* shuffle mask decoding and enabled target shuffle combining.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 6 Mar 2016 21:54:52 +0000 (21:54 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 6 Mar 2016 21:54:52 +0000 (21:54 +0000)
commit253ca348b2ea5fbde89377dfbbedab100cef4e7a
tree545634a99ba3b24f8074b422395e6d2024242bea
parentdc11054f20a3dc532319217ddc5a9f32a2ccaa07
[X86][AVX512] Fixed VPERMT2* shuffle mask decoding and enabled target shuffle combining.

Patch to add support for target shuffle combining of X86ISD::VPERMV3 nodes, including support for detecting unary shuffles.

This uncovered several issues with the X86ISD::VPERMV3 shuffle mask decoding of non-64 bit shuffle mask elements - the bit masking wasn't being correctly computed.

Removed non-constant pool mask decode path as we have no way of testing it right now.

Differential Revision: http://reviews.llvm.org/D17916

llvm-svn: 262809
llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll