[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)
commit67c246bbe6a8042f1f8ce103303eedb4b06946f7
treefa693ca24b1bf1e67f2b18d60b5e058d38f839b2
parent8558aac82cd2329bdf2a2e887f42ba7bd246e746
[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.

llvm-svn: 368307
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/insertps-combine.ll
llvm/test/CodeGen/X86/shrink_vmul.ll
llvm/test/CodeGen/X86/vec_smulo.ll
llvm/test/CodeGen/X86/vec_umulo.ll