This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES
ClosedPublic

Authored by arsenm on Jul 3 2019, 8:51 AM.

Details

Summary

Use an anyext to the requested type for the leftover operand to
produce a slightly wider type, and then truncate the final merge.

I have another implementation almost ready which handles arbitrary
widens, but I think it produces worse code in this example (which I
think is 90% due to not folding redundant copies or folding out
implicit_def users), so I wanted to add this as a baseline first.

Diff Detail

Event Timeline

arsenm created this revision.Jul 3 2019, 8:51 AM

ping, this mostly doesn't matter as it is largely replaced by D64155

I didn't bother reviewing this as the other patch seemed to supersede it. Can it be abandoned?

I didn't bother reviewing this as the other patch seemed to supersede it. Can it be abandoned?

I'll just commit at the same time. I wanted to preserve the test diff in history

aemerson accepted this revision.Jul 17 2019, 11:27 AM
This revision is now accepted and ready to land.Jul 17 2019, 11:27 AM
arsenm closed this revision.Jul 17 2019, 1:22 PM

r366366