]> granicus.if.org Git - llvm/commit
[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using Demanded...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 13 Aug 2019 10:51:39 +0000 (10:51 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 13 Aug 2019 10:51:39 +0000 (10:51 +0000)
commitbaab7c15af63ab1bcd033b31875a035d4079f985
tree5d2ce5dd6e747ef15fa00b62804b984e693034c8
parent3b17e47a11266a40b6c0660d5e1829a2bed5c7db
[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask (reapplied)

If we don't demand all elements, then attempt to combine to a simpler shuffle.

At the moment we can only do this if Depth == 0 as combineX86ShufflesRecursively uses Depth to track whether the shuffle has really changed or not - we'll need to change this before we can properly start merging combineX86ShufflesRecursively into SimplifyDemandedVectorElts.

The insertps-combine.ll regression is because XFormVExtractWithShuffleIntoLoad can't see through shuffles of different widths - this will be fixed in a follow-up commit.

Reapplying this as rL368307 had to be reverted as part of rL368660 to revert rL368276

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368662 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
test/CodeGen/X86/insertps-combine.ll
test/CodeGen/X86/shrink_vmul.ll
test/CodeGen/X86/vec_smulo.ll
test/CodeGen/X86/vec_umulo.ll