OSDN Git Service

[X86][SSE] Improved blend+zero target shuffle combining to use combined shuffle mask...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 7 Jun 2016 12:20:14 +0000 (12:20 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 7 Jun 2016 12:20:14 +0000 (12:20 +0000)
commitc1e27cc45375fd8eb5c652401695af18ee9eadbe
treeb948887af397e81caeabe8c7fd4208125de3ed10
parent87f50aafbc14baf74a23c7b9f060df315ca66fea
[X86][SSE] Improved blend+zero target shuffle combining to use combined shuffle mask directly

We currently only combine to blend+zero if the target value type has 8 elements or less, but this was missing a lot of cases where the combined mask had been widened.

This change makes it so we use the combined mask to determine the blend value type, allowing us to catch more widened cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272003 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/clear_upper_vector_element_bits.ll
test/CodeGen/X86/vector-shuffle-combining-xop.ll
test/CodeGen/X86/vector-shuffle-variable-128.ll