This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Implement unpack intrinsics
ClosedPublic

Authored by kmclaughlin on Sep 13 2019, 6:44 AM.

Details

Summary

Implements the following intrinsics:

  • int_aarch64_sve_sunpkhi
  • int_aarch64_sve_sunpklo
  • int_aarch64_sve_uunpkhi
  • int_aarch64_sve_uunpklo

This patch also adds AArch64ISD nodes for UNPK instead of implementing
the intrinsics directly, as they are required for a future patch which
implements the sign/zero extension of legal vectors.

This patch includes tests for the Subdivide2Argument type added by D67549

Diff Detail

Event Timeline

kmclaughlin created this revision.Sep 13 2019, 6:44 AM
greened added inline comments.Oct 10 2019, 9:04 AM
lib/Target/AArch64/SVEInstrFormats.td
836 ↗(On Diff #220091)

Where is op used? I assume that comes later but it would help to understand where this is going.

Removed unused SDPatternOperator op from sve_int_perm_unpk class

kmclaughlin marked 2 inline comments as done.Oct 11 2019, 4:02 AM
kmclaughlin added inline comments.
lib/Target/AArch64/SVEInstrFormats.td
836 ↗(On Diff #220091)

Thanks for pointing this out, op isn't actually used here!

greened accepted this revision.Oct 17 2019, 8:47 AM

LGTM.

This revision is now accepted and ready to land.Oct 17 2019, 8:47 AM
This revision was automatically updated to reflect the committed changes.
kmclaughlin marked an inline comment as done.
Herald added a project: Restricted Project. · View Herald TranscriptOct 18 2019, 2:40 AM
Herald added a subscriber: hiraditya. · View Herald Transcript