HomePhabricator

[X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using…

Description

[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.

Details

Committed
RKSimonAug 8 2019, 8:54 AM
Parents
rL368306: Enable assembly output of local commons for AIX
Branches
Unknown
Tags
Unknown

Event Timeline

We're seeing some compilation timeouts that bisect to the patch (5-10s -> >900s). I'm working on a repro.

/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
34384

Depth + 1?

RKSimon marked an inline comment as done.Aug 16 2019, 7:55 AM

Please raise a bug if you manage to get a repro

/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
34384

Sorry, it has to be Depth == 0 at the moment (see the TODO and D66004 ) - the concept of Depth is still different between SimplifyDemandedVectorElts and combineX86ShufflesRecursively.

rupprecht added inline comments.Aug 16 2019, 10:32 AM
/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
34384

Ok, I'll file a bug once I have a reproducer -- it cleanly bisects to this patch being the culprit.

rupprecht added inline comments.Aug 16 2019, 3:52 PM
/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
34384

Reverted in r369167