This is an archive of the discontinued LLVM Phabricator instance.

[SDAG] Allow scalable vectors in SimplifyDemanded routines
ClosedPublic

Authored by reames on Nov 1 2022, 1:19 PM.

Details

Summary

This is a continuation of the series of patches adding lane wise support for scalable vectors in various knownbit-esq routines.

The basic idea here is that we track a single lane for scalable vectors which corresponds to an unknown number of lanes at runtime. This is enough for us to perform lane wise reasoning on many arithmetic operations.

Diff Detail

Event Timeline

reames created this revision.Nov 1 2022, 1:19 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 1 2022, 1:19 PM
reames requested review of this revision.Nov 1 2022, 1:19 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 1 2022, 1:19 PM
reames retitled this revision from [DAG] Allow scalable vectors in SimplifyDemanded routines to [SDAG] Allow scalable vectors in SimplifyDemanded routines.
reames updated this revision to Diff 476482.Nov 18 2022, 7:58 AM

rebase and ping

craig.topper added inline comments.Nov 18 2022, 9:46 AM
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
2705

Have you already audited SimplifyDemandedBitsForTargetNode for scalable vectors?

reames added inline comments.Nov 18 2022, 11:00 AM
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
2705

Nope, good catch.

reames updated this revision to Diff 476532.Nov 18 2022, 11:03 AM

address reviewer comment and add conservative bailout for target nodes

This revision is now accepted and ready to land.Dec 5 2022, 11:41 AM
This revision was landed with ongoing or failed builds.Dec 5 2022, 12:42 PM
This revision was automatically updated to reflect the committed changes.