This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Optimize overflow checks for [s|u]mul.with.overflow.i32.
ClosedPublic

Authored by efriedma on Jul 10 2021, 11:38 PM.

Details

Summary

Saves one instruction for signed, uses a cheaper instruction for unsigned.

Diff Detail

Event Timeline

efriedma created this revision.Jul 10 2021, 11:38 PM
efriedma requested review of this revision.Jul 10 2021, 11:38 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 10 2021, 11:38 PM
dmgreen accepted this revision.Jul 12 2021, 12:26 AM

Sounds good to me. Is the fast ISel mostly updated to keep the test insync? I know that code less, but it seems OK to me.

llvm/lib/Target/AArch64/AArch64FastISel.cpp
3684–3690

Apparently we prefer "Register" now, over unsigned.

This revision is now accepted and ready to land.Jul 12 2021, 12:26 AM

Is the fast ISel mostly updated to keep the test insync?

Yes. In retrospect, maybe I should have just updated the test instead, but the change wasn't too complicated.

This revision was landed with ongoing or failed builds.Jul 12 2021, 3:31 PM
This revision was automatically updated to reflect the committed changes.