OSDN Git Service

[X86][SSE] Improve shuffling combining with horizontal operations
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 7 Oct 2017 12:42:23 +0000 (12:42 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 7 Oct 2017 12:42:23 +0000 (12:42 +0000)
commit963a551b0a73cda09e1279d733eecdd9347a6974
treee400af75367604ad3c4122c94317018aee31c5bc
parentc36f66203e3d0ac7a2d3bf0390e8129b337bd354
[X86][SSE] Improve shuffling combining with horizontal operations

Recognise cases when we can merge the shuffles with their horizontal (HADD/HSUB/PACK) instruction inputs.

Replaces an older implementation which performed some of this during lowering, expanding an existing target shuffle combine stage instead.

Differential Revision: https://reviews.llvm.org/D38506

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