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.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
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.