This is an archive of the discontinued LLVM Phabricator instance.

[InstCombine] Allow splats with poison/undef in llvm::decomposeBitTestICmp
ClosedPublic

Authored by jmciver on Jan 31 2023, 4:39 PM.

Details

Summary

This change is made to enable conversion of a masked icmp splat vector
containing poison/undef to an equality expression.

llvm::decomposeBitTestICmp Alive2 correctness examples using splat/masking vectors:

Tests have been verified using Alive2:

Diff Detail

Event Timeline

jmciver created this revision.Jan 31 2023, 4:39 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 31 2023, 4:39 PM
jmciver retitled this revision from [InstCombine] Allow splats with undef in llvm::decomposeBitTestICmp to [InstCombine] Allow splats with poison/undef in llvm::decomposeBitTestICmp.Jan 31 2023, 4:40 PM
jmciver edited the summary of this revision. (Show Details)Jan 31 2023, 8:59 PM
jmciver updated this revision to Diff 494029.Feb 1 2023, 12:06 PM

Update patch per changes to test label names in D143031

jmciver updated this revision to Diff 494069.Feb 1 2023, 2:00 PM

Update per change to poison based splat vectors in D143031

jmciver published this revision for review.Feb 1 2023, 3:10 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 1 2023, 3:10 PM
jmciver updated this revision to Diff 508463.Mar 26 2023, 8:01 PM

Rebase onto latest main.

please can you add alive2 links?

jmciver edited the summary of this revision. (Show Details)Mar 27 2023, 1:54 PM

I have added Alive2 links to the summary as per @RKSimon request.

jmciver edited the summary of this revision. (Show Details)Mar 29 2023, 3:59 PM

@RKSimon I added Alive2 examples exercising llvm::decomposeBitTestICmp using splat/mask vectors for all supported comparisons.

RKSimon accepted this revision.Apr 4 2023, 5:04 AM

LGTM

This revision is now accepted and ready to land.Apr 4 2023, 5:04 AM
jmciver added a comment.EditedApr 4 2023, 9:13 PM

Thanks @RKSimon for reviewing! Can you please review the predecessor D143031?

@RKSimon thanks for taking the time to review the patch!

I have recently requested repository access. In the interim can you please land this patch for me?

Name: John McIver
Email: john.mciver.iii@gmail.com

This revision was landed with ongoing or failed builds.Apr 11 2023, 1:03 AM
This revision was automatically updated to reflect the committed changes.