This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME2/SVE2p1] Add predicate-as-counter intrinsics for sel
ClosedPublic

Authored by sdesmalen on May 19 2023, 3:11 AM.

Details

Summary

These intrinsics are used to implement the sel intrinsics that selects
a tuple of 2 or 4 values based on a predicate-as-counter operand, e.g.

__attribute__((arm_streaming))
svuint8x2_t svsel[_u8_x2](svcount_t png, svuint8x2_t zn, svuint8x2_t zm);

__attribute__((arm_streaming))
svuint8x4_t svsel[_u8_x4](svcount_t png, svuint8x4_t zn, svuint8x4_t zm);

As described in https://github.com/ARM-software/acle/pull/217

Diff Detail

Event Timeline

sdesmalen created this revision.May 19 2023, 3:11 AM
sdesmalen requested review of this revision.May 19 2023, 3:11 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 19 2023, 3:11 AM
CarolineConcatto accepted this revision.May 19 2023, 6:39 AM
CarolineConcatto added a subscriber: CarolineConcatto.
CarolineConcatto added inline comments.
llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll
23

Nothing related to the patch, but I was wondering why the last sve registers and not z4 to z16?

This revision is now accepted and ready to land.May 19 2023, 6:39 AM
Matt added a subscriber: Matt.May 19 2023, 2:08 PM