This is an archive of the discontinued LLVM Phabricator instance.

[ARM GlobalISel] Add support for s64 G_ADD and G_SUB.
ClosedPublic

Authored by efriedma on Jun 19 2019, 5:36 PM.

Details

Summary

Teach RegisterBankInfo to use the correct register class, and tell the legalizer it's legal. Everything else just works.

The one thing that's slightly weird about this compared to SelectionDAG isel is that legalization can't distinguish between i64 and <1 x i64>, so we might end up with more NEON instructions than the user expects.

(I'm not planning on spending more time on ARM 32-bit GISel at the moment; this was just a short experiment to familiarize myself with the code.)

Diff Detail

Repository
rL LLVM

Event Timeline

efriedma created this revision.Jun 19 2019, 5:36 PM
rovka accepted this revision.Jun 20 2019, 3:24 AM

LGTM, thanks!

This revision is now accepted and ready to land.Jun 20 2019, 3:24 AM
This revision was automatically updated to reflect the committed changes.