The vpermilps and vpermilpd have different behaviour regarding the
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 27 Jul 2011 00:56:34 +0000 (00:56 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 27 Jul 2011 00:56:34 +0000 (00:56 +0000)
commitcea34e41fa3bde8a7271c725abc6bb79c31377c9
tree8f5f96c85a01817d810253ccd1f2c276c47bbc2b
parentcd9e5aed53987b70fa19396424b913f2e9d50f60
The vpermilps and vpermilpd have different behaviour regarding the
usage of the shuffle bitmask. Both work in 128-bit lanes without
crossing, but in the former the mask of the high part is the same
used by the low part while in the later both lanes have independent
masks. Handle this properly and and add support for vpermilpd.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136200 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrFragmentsSIMD.td
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/avx-vpermil.ll [new file with mode: 0644]