[X86][AVX] Better support for the variable mask form of VPERMILPD/VPERMILPS
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 3 Mar 2016 18:13:53 +0000 (18:13 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 3 Mar 2016 18:13:53 +0000 (18:13 +0000)
commitabcee45b7ad3a07359ac92cc2954f4ef489367ae
tree6a959c604e79d1423a9394b23c71ad0fed7f7615
parent57d1dda5581594ebdfabcb899bd224d037105a1a
[X86][AVX] Better support for the variable mask form of VPERMILPD/VPERMILPS

The variable mask form of VPERMILPD/VPERMILPS were only partially implemented, with much of it still performed as an intrinsic.

This patch properly defines the instructions in terms of X86ISD::VPERMILPV, permitting the opcode to be easily combined as a target shuffle.

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

llvm-svn: 262635
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrSSE.td
llvm/lib/Target/X86/X86IntrinsicsInfo.h
llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll