[x86] Implement v16i16 support with AVX2 in the new vector shuffle
authorChandler Carruth <chandlerc@gmail.com>
Thu, 25 Sep 2014 00:24:19 +0000 (00:24 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 25 Sep 2014 00:24:19 +0000 (00:24 +0000)
commitbdecfeb7237dc66d0a1977617fab627c5afc2ed3
tree446d7b551a488763f7cc2c25d617aad59ff39c1a
parente793862979e0222682356c280e9b63c65784202b
[x86] Implement v16i16 support with AVX2 in the new vector shuffle
lowering.

This also implements the fancy blend lowering for v16i16 using AVX2 and
teaches the X86 backend to print shuffle masks for 256-bit PSHUFB
and PBLENDW instructions. It also makes the mask decoding correct for
PBLENDW instructions. The yaks, they are legion.

Tests are updated accordingly. There are some missing tests for the
VBLENDVB lowering, but I'll add those in a follow-up as this commit has
accumulated enough cruft already.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218430 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/InstPrinter/X86InstComments.cpp
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/vector-shuffle-256-v16.ll