This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s
ClosedPublic

Authored by paquette on Apr 18 2019, 11:03 AM.

Details

Summary

This adds legalization for G_SEXT, G_ZEXT, and G_ANYEXT for v8s8s.

We were falling back on G_ZEXT in arm64-vabs.ll before, preventing us from selecting the @llvm.aarch64.neon.sabd.v8i8 intrinsic.

This adds legalizer support for those 3, which gives us selection via the importer. Update the relevant tests (legalize-ext.mir, select-int-ext.mir) and add a GISel line to arm64-vabs.ll.

Diff Detail

Repository
rL LLVM

Event Timeline

paquette created this revision.Apr 18 2019, 11:03 AM
paquette updated this revision to Diff 195788.Apr 18 2019, 11:15 AM

Just realized that the G_ZEXT is the only thing relevant to check for in arm64-vabs.ll. Remove unnecessary check lines.

aemerson accepted this revision.Apr 18 2019, 11:19 AM
This revision is now accepted and ready to land.Apr 18 2019, 11:19 AM
This revision was automatically updated to reflect the committed changes.