This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Add lowerings for {ADD,SUB}CARRY and S{ADD,SUB}O_CARRY
AbandonedPublic

Authored by Kmeakin on Apr 4 2022, 4:54 AM.

Details

Reviewers
paulwalker-arm
Summary

Add lowerings for ADDCARRY, SUBCARRY`, SADDO_CARRY and SSUBO_CARRY, as well as a few DAG combines, to improve code generated for 128-bit integer arithmetic.

Diff Detail

Event Timeline

Kmeakin created this revision.Apr 4 2022, 4:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 4 2022, 4:54 AM
Kmeakin requested review of this revision.Apr 4 2022, 4:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 4 2022, 4:54 AM
Kmeakin edited the summary of this revision. (Show Details)Apr 4 2022, 4:56 AM

Sorry I've not had chance to review this patch yet but it is quite large so I ask if it can be broken down a bit. For example, you have lowerADDSUBCARRY to lower some ISD nodes and then removeDeadFlags, foldOverflowCheck and foldADCToCINC as a set of DAG combines where each represent new functionality and thus can be submitted separately to aid review and minimise the possibility of regressions. You are also changing some of the tests to use autogenerated CHECK lines, which is good to see, but usually this is done as a separate patch that doesn't typically need to go through review so that the "real" patches only show the new affect on the generated code.

Kmeakin abandoned this revision.Apr 7 2022, 10:08 AM