This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Replace i64 add/sub lowering
ClosedPublic

Authored by arsenm on Jul 20 2017, 10:17 AM.

Details

Reviewers
tstellar
rampitec
Summary

Use VOP3 add/addc like usual.

This has some tradeoffs. Inline immediates fold
a little better, but other constants are worse off.
SIShrinkInstructions could be made smarter to handle
these cases.

This allows us to avoid selecting scalar adds where we
need to track the carry in scc and replace its users.
This makes it easier to use the carryless VALU adds.

Diff Detail

Event Timeline

arsenm created this revision.Jul 20 2017, 10:17 AM
rampitec edited edge metadata.Jul 20 2017, 10:37 AM

How does it work on pre-SI now?

How does it work on pre-SI now?

It replaces the SCC uses/defs with VCC and the VOP2 variants. It scans forward until it finds a def of SCC or the end of the block

This revision is now accepted and ready to land.Jul 20 2017, 10:57 AM
arsenm closed this revision.Nov 15 2017, 1:51 PM

r318340