[x86] Add the initial skeleton of type-based dispatch for AVX vectors in
authorChandler Carruth <chandlerc@gmail.com>
Fri, 15 Aug 2014 11:01:40 +0000 (11:01 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 15 Aug 2014 11:01:40 +0000 (11:01 +0000)
commit12e69a0267138476775f34ba115a669a4dd37e9e
tree2b97c14cbae86b709bf9090d95e01c225d83873d
parentd996c5b54bff05047ab628447446d5db470ee59c
[x86] Add the initial skeleton of type-based dispatch for AVX vectors in
the new shuffle lowering and an implementation for v4 shuffles.

This allows us to handle non-half-crossing shuffles directly for v4
shuffles, both integer and floating point. This currently misses places
where we could perform the blend via UNPCK instructions, but otherwise
generates equally good or better code for the test cases included to the
existing vector shuffle lowering. There are a few cases that are
entertainingly better. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215702 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shuffle-256-v4.ll