OSDN Git Service

[x86] Teach the new vector shuffle lowering the first step toward more
authorChandler Carruth <chandlerc@gmail.com>
Sun, 21 Sep 2014 09:35:22 +0000 (09:35 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 21 Sep 2014 09:35:22 +0000 (09:35 +0000)
commit291140b11233769e0e860d9e9e3d91247700e73d
tree1002500880ecfa7931310400b8679cd129cd0462
parent31b080d57faa4fb56aa8dbd3a054ab344e0f4c9e
[x86] Teach the new vector shuffle lowering the first step toward more
actual support for complex AVX shuffling tricks. We can do independent
blends of the low and high 128-bit lanes of an avx vector, so shuffle
the inputs into place and then do the blend at 256 bits. This will in
many cases remove one blend instruction.

The next step is to permute the low and high halves in-place rather than
extracting them and re-inserting them.

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