OSDN Git Service

[x86] Restructure the checking patterns for v16 and v32 avx2 vector
authorChandler Carruth <chandlerc@gmail.com>
Fri, 21 Nov 2014 14:53:03 +0000 (14:53 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 21 Nov 2014 14:53:03 +0000 (14:53 +0000)
commit46c5a97adcc677c6baec90477104c488d91e55a5
tree63aa916572c9dae6249d783a0017079aad8ed310
parent28a626319e7009c068a13536ce0f825ea58a2ce2
[x86] Restructure the checking patterns for v16 and v32 avx2 vector
shuffle lowering to allow much better blend matching.

Specifically, with the new structure the code seems clearer to me and we
correctly can hit the cases where merging two 128-bit lanes is a clear
win and can be shuffled cheaply afterward.

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