This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME] Add the zero intrinsic
ClosedPublic

Authored by david-arm on Jun 15 2022, 3:23 AM.

Details

Summary

The SME zero instruction takes a mask as an input declaring which
64-bit element tiles should be zeroed. There is a 1:1 mapping
between the zero intrinsic and the instruction, however we also
want to make the register allocator aware that some tile
registers are being written to.

We can actually just use the custom inserter for a pseudo instruction
to correctly mark all the appropriate registers in the mask as
implicitly defined by the operation.

Diff Detail

Event Timeline

david-arm created this revision.Jun 15 2022, 3:23 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 15 2022, 3:23 AM
david-arm requested review of this revision.Jun 15 2022, 3:23 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 15 2022, 3:23 AM
llvm/test/CodeGen/AArch64/sme-intrinsics-zero.ll
526

@llvm.aarch64.sme.zero.all() doesn't appear to be called anywhere in this testcase. Also, I cannot find a definition or pattern for this intrinsic.

Matt added a subscriber: Matt.Jun 16 2022, 4:43 PM
  • Removed pointless declaration of non-existent intrinsic
david-arm marked an inline comment as done.Jun 17 2022, 12:56 AM
david-arm added inline comments.
llvm/test/CodeGen/AArch64/sme-intrinsics-zero.ll
526

Good spot! It's not needed at all so I removed it.

This revision is now accepted and ready to land.Jun 17 2022, 12:58 AM
david-arm closed this revision.Jun 20 2022, 8:48 AM
david-arm marked an inline comment as done.

For some reason this didn't get automatically closed when merging - see https://reviews.llvm.org/rG013358632e657f3138f055313ef7b51cbafe06ce for the commit