This is an archive of the discontinued LLVM Phabricator instance.

[ARM] MVE VADDLV lowering
ClosedPublic

Authored by dmgreen on Feb 7 2020, 7:39 AM.

Details

Summary

Following on from the extra VADDV lowering, this extends things to handle VADDLV which allows summing values into a pair of i32 registers, together treated as a i64. This needs to be done in DAGCombine too as the types are otherwise illegal, which is a fairly simple addition on top of the existing code.

There is also a VADDLVA instruction handled here, that adds the initial values from the two general purpose registers. As opposed to the non-long version where we could just add patterns for add(x, VADDV), the long version needs to handle this early before the i64 has being split into too many pieces.

Diff Detail

Event Timeline

dmgreen created this revision.Feb 7 2020, 7:39 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 7 2020, 7:39 AM
This revision is now accepted and ready to land.Feb 10 2020, 2:21 AM
This revision was automatically updated to reflect the committed changes.