This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Don't create G_UADDE with constant false carry in
ClosedPublic

Authored by arsenm on Aug 13 2019, 10:23 AM.

Details

Summary

I'm not sure what to do about the x86 test failures. The x86 tests are now broken (in paticular add-scalar.ll now hits the
DAG fallback) due to not handling G_UADDO. The DAG x86 backend has a
custom lowering for this, so that will need to be implemented.

Diff Detail

Event Timeline

arsenm created this revision.Aug 13 2019, 10:23 AM
paquette added inline comments.Aug 20 2019, 2:54 PM
test/CodeGen/X86/GlobalISel/legalize-add.mir
3–7

I think it would make sense to use fallback remarks to check for the specific fallback here.

arsenm updated this revision to Diff 216457.Aug 21 2019, 1:18 PM

Check fallback

paquette accepted this revision.Aug 21 2019, 2:51 PM

LGTM

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
665–674

You can just pull the i == 0 case out of the loop and start the loop at 1.

This revision is now accepted and ready to land.Aug 21 2019, 2:51 PM
arsenm marked an inline comment as done.Aug 22 2019, 9:51 AM
arsenm added inline comments.
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
665–674

This requires slightly more code since the createGenericVirtualRegister calls need to be duplicated

arsenm closed this revision.Aug 22 2019, 10:28 AM

r369673