OSDN Git Service

[X86][SSE] Simplify demanded elements from BROADCAST shuffle source.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 27 Jan 2018 19:48:13 +0000 (19:48 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 27 Jan 2018 19:48:13 +0000 (19:48 +0000)
commitbff47ee6d19c71fccf37c257a8ef3eed0942e837
tree0219ae1d4169b22d1dc4bf32a77d003f5cbd093b
parente2b8d977230752e0403307185b0bde9ee6e10b20
[X86][SSE] Simplify demanded elements from BROADCAST shuffle source.

If broadcasting from another shuffle, attempt to simplify it.

We can probably generalize this a lot more (embedding in combineX86ShufflesRecursively), but BROADCAST is one of the more troublesome as it accepts inputs of different sizes to the result.

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