This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Convert VPSEL to VMOV in tail predicated loops
ClosedPublic

Authored by dmgreen on Aug 3 2020, 12:48 AM.

Details

Summary

VPSEL has slightly different schematics under tail predication (it can end up selecting from Qn, Qm and Qd). We do not model that at the moment so they block tail predicated loops from being formed.

This just converts them into a predicated VMOV instead (via a VORR), allowing tail predication to happen whilst still modelling the original behaviour of the input.

Diff Detail

Event Timeline

dmgreen created this revision.Aug 3 2020, 12:48 AM
dmgreen requested review of this revision.Aug 3 2020, 12:48 AM
samparker accepted this revision.Aug 3 2020, 3:34 AM

Thanks for sorting this out.

This revision is now accepted and ready to land.Aug 3 2020, 3:34 AM
This revision was automatically updated to reflect the committed changes.