This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME] Make all SME intrinsics use 32bit immediates.
ClosedPublic

Authored by sdesmalen on Oct 28 2022, 2:51 AM.

Details

Summary

This aligns with what was done for SVE, which consistently uses 32bit
immediates at the LLVM IR level.

Additionally, this change forces the intrinsic operands to be immediates
using ImmArg<>, which subsequently requires the codegenerator to match
TargetConstants instead of Constants.

Diff Detail

Event Timeline

sdesmalen created this revision.Oct 28 2022, 2:51 AM
sdesmalen requested review of this revision.Oct 28 2022, 2:51 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 28 2022, 2:51 AM
paulwalker-arm accepted this revision.Oct 28 2022, 4:20 AM

I do wonder if the original inconsistency has led to a lack of reuse for some of the operand classes (for example vector indices), plus there may now be some unused operand classes but am happy to circle back later once the implementation has settled down.

This revision is now accepted and ready to land.Oct 28 2022, 4:20 AM
Matt added a subscriber: Matt.Oct 28 2022, 1:26 PM