This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Support widening unmerge results with pointer source
ClosedPublic

Authored by arsenm on Jan 21 2020, 8:16 AM.

Diff Detail

Event Timeline

arsenm created this revision.Jan 21 2020, 8:16 AM
arsenm updated this revision to Diff 239335.Jan 21 2020, 8:31 AM

Fix to equal size case

Why is it better to generate a G_LSHR than a G_ANYEXT? On AArch64 I'd expect G_ANYEXT to be better, since we don't necessarily have to produce a real instruction there.

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
1451–1452

Some debug output explaining that this isn't supported in non-integral address spaces might be useful for people trying to get GISel going.

1483–1484

Debug output might be useful here too?

paquette accepted this revision.Jan 21 2020, 10:12 AM

Why is it better to generate a G_LSHR than a G_ANYEXT? On AArch64 I'd expect G_ANYEXT to be better, since we don't necessarily have to produce a real instruction there.

Wait nevermind this is fine, this is legalization.

LGTM with inline comments.

This revision is now accepted and ready to land.Jan 21 2020, 10:12 AM
arsenm marked 2 inline comments as done.Jan 21 2020, 2:13 PM
arsenm closed this revision.Feb 1 2020, 7:48 AM

bc101ffd77738a5ec40fc16689eafaf1fb6fa8d6, but I moved the utility function change here to break the dependency on D72610