This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Use SplatPat/SplatPat_simm5 to handle PseudoVMV_V_X_/PseudoVMV_V_I_ selection as well.
ClosedPublic

Authored by craig.topper on Feb 5 2021, 10:58 PM.

Details

Summary

This ensures that we'll match immediates consistently regardless
of whether we match them as a standalone splat or as part of
another operation.

While I was there I added complexities to the simm5/uimm5 patterns so
we didn't have to assume that the 1 on the non-immediate was lower
than what tablegen inferred.

I had to make a minor tweak to tablegen to fix one place that
didn't expect to see a ComplexPattern that wasn't a "leaf".

Diff Detail

Event Timeline

craig.topper created this revision.Feb 5 2021, 10:58 PM
craig.topper requested review of this revision.Feb 5 2021, 10:58 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 5 2021, 10:58 PM
Herald added a subscriber: MaskRay. · View Herald Transcript
frasercrmck accepted this revision.Feb 8 2021, 1:39 AM

LGTM. Thanks for fixing that TableGen issue. I think I ran into that a few times but I tend to naively assume TableGen does things for a reason.

This revision is now accepted and ready to land.Feb 8 2021, 1:39 AM
This revision was landed with ongoing or failed builds.Feb 8 2021, 9:55 AM
This revision was automatically updated to reflect the committed changes.