[X86][AVX] Add support for shuffle decoding of vperm2f128/vperm2i128 with zero'd...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 6 Jul 2015 22:46:46 +0000 (22:46 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 6 Jul 2015 22:46:46 +0000 (22:46 +0000)
commit315fd864005873014fddb91fd6e8970d8c0642da
tree71c9c97b3f14bf58ddbea30094dc6f03420d2221
parent75a2ce32714b7e94e2b09f3debebc9879038d296
[X86][AVX] Add support for shuffle decoding of vperm2f128/vperm2i128 with zero'd lanes

The vperm2f128/vperm2i128 shuffle mask decoding was not attempting to deal with shuffles that give zero lanes. This patch fixes this so that the assembly printer can provide shuffle comments.

As this decoder is also used in X86ISelLowering for shuffle combining, I've added an early-out to match existing behaviour. The hope is that we can add zero support in the future, this would allow other ops' decodes (e.g. insertps) to be combined as well.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241516 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-vperm2x128.ll