This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Implement extract_subvector for predicates.
ClosedPublic

Authored by sdesmalen on Sep 6 2021, 4:01 AM.

Details

Summary

This patch implements extract_subvector for predicate types when
the input type is more than twice the size of the subvector that
is being extracted.

Diff Detail

Event Timeline

sdesmalen created this revision.Sep 6 2021, 4:01 AM
sdesmalen requested review of this revision.Sep 6 2021, 4:01 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 6 2021, 4:01 AM
sdesmalen edited the summary of this revision. (Show Details)Sep 6 2021, 4:05 AM
CarolineConcatto accepted this revision.Sep 7 2021, 5:34 AM

Thank you Sander!
It is nice to see that it also works for types like:
<vscale x 2 x i1> @llvm.experimental.vector.extract.nxv2i1.nxv6i1(<vscale x 6 x i1>, i64)
<vscale x 2 x i1> @llvm.experimental.vector.extract.nxv2i1.nxv12i1(<vscale x 12 x i1>, i64)
It would be too much if you add a test for these types/strides too?

This revision is now accepted and ready to land.Sep 7 2021, 5:34 AM

Thanks for the review @CarolineConcatto!

It is nice to see that it also works for types like:
<vscale x 2 x i1> @llvm.experimental.vector.extract.nxv2i1.nxv6i1(<vscale x 6 x i1>, i64)
<vscale x 2 x i1> @llvm.experimental.vector.extract.nxv2i1.nxv12i1(<vscale x 12 x i1>, i64)
It would be too much if you add a test for these types/strides too?

While these tests are useful, I don't think they should be part of this patch because this patch only implements the legal case.

This revision was landed with ongoing or failed builds.Sep 8 2021, 12:19 AM
This revision was automatically updated to reflect the committed changes.