This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Fold predicate_cast(load) into vldr p0
ClosedPublic

Authored by dmgreen on Aug 27 2020, 5:11 AM.

Details

Summary

This adds a simple tablegen pattern for folding predicate_cast(load) into vldr p0, providing the alignment and offset are correct.

Diff Detail

Event Timeline

dmgreen created this revision.Aug 27 2020, 5:11 AM
dmgreen requested review of this revision.Aug 27 2020, 5:11 AM

Sorry for kind of asking the usual testing question....but was curious if there's a negative test with a pattern where its condition isn't met, so alignment < 4, if that makes sense.

dmgreen updated this revision to Diff 288314.Aug 27 2020, 6:47 AM

align2 test now actually has an alignment of 2.

simon_tatham accepted this revision.Sep 3 2020, 1:54 AM
simon_tatham added inline comments.
llvm/lib/Target/ARM/ARMInstrMVE.td
4388

It seems surprising that there isn't a ready-made family of PatFrags like this one somewhere central where all targets can use it! But I had a quick look, didn't see any, and did see that several targets define their own, so there we go.

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