OSDN Git Service

[x86] Add a slight variation on some of the other generic shuffle
authorChandler Carruth <chandlerc@gmail.com>
Sun, 15 Feb 2015 08:26:30 +0000 (08:26 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 15 Feb 2015 08:26:30 +0000 (08:26 +0000)
commit62ba2b29d8d80782c7820955b684712a85285fbd
treee66193e3dbb331c813e60354007184df7c5cf411
parentcc64d95696dd3a6548798f1df7ef8e97f29475d8
[x86] Add a slight variation on some of the other generic shuffle
lowerings -- one which decomposes into an initial blend followed by
a permute.

Particularly on newer chips, blends are handled independently of
shuffles and so this is much less bottlenecked on the single port that
floating point shuffles are executed with on Intel.

I'll be adding this lowering to a bunch of other code paths in
subsequent commits to handle still more places where we can effectively
leverage blends when they're available in the ISA.

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