]> granicus.if.org Git - llvm/commit
[X86][AVX] Fold concat(packus(),packus()) -> packus(concat(),concat()) (PR34773)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 7 May 2019 11:17:39 +0000 (11:17 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 7 May 2019 11:17:39 +0000 (11:17 +0000)
commitcaaa08d4ffba16e63f5cb677eceee56784072f71
treed2bf3fca02935fb78687377a83475e5367365d0b
parent5bb8ba389c2a71655e16cd3c8bb168d8b282be90
[X86][AVX] Fold concat(packus(),packus()) -> packus(concat(),concat()) (PR34773)

Basic "revectorization" combine, we can probably do more opcodes here but it can be a tricky cost-benefit depending on where the subvectors came from - but this case helps shuffle combining.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360134 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avg.ll
test/CodeGen/X86/masked_store_trunc.ll
test/CodeGen/X86/vector-reduce-and-bool.ll
test/CodeGen/X86/vector-reduce-or-bool.ll
test/CodeGen/X86/vector-reduce-xor-bool.ll
test/CodeGen/X86/vector-trunc-widen.ll
test/CodeGen/X86/vector-trunc.ll