This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Fix incorrect MemOperand copy converting splat+load to vlse.
ClosedPublic

Authored by craig.topper on Feb 16 2022, 11:41 PM.

Details

Summary

Due to an incorrect copy/paste from load intrinsic handling we
checked if the splat node was a MemSDNode which of course it isn't.

Instead get the MemOperand from the LoadSDNode for the source of
the splat.

This enables LICM to see the load is loop invariant and hoist it
out of the loop.

Diff Detail

Event Timeline

craig.topper created this revision.Feb 16 2022, 11:41 PM
craig.topper requested review of this revision.Feb 16 2022, 11:41 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 16 2022, 11:41 PM
frasercrmck accepted this revision.Feb 17 2022, 7:28 AM

LGTM, good catch!

This revision is now accepted and ready to land.Feb 17 2022, 7:28 AM
This revision was landed with ongoing or failed builds.Feb 17 2022, 8:17 AM
This revision was automatically updated to reflect the committed changes.