]> granicus.if.org Git - llvm/commit
[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using Demanded...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 8 Aug 2019 15:54:20 +0000 (15:54 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 8 Aug 2019 15:54:20 +0000 (15:54 +0000)
commitad6087cf4a072c5a65536ffc61102991a07bbacc
tree05912fdb2f15fdcf651dfa5d03675f63212dfc0b
parent09fb75f1390bc79ecac03c6a16225df3b2367b8a
[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368307 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