This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Add isel support for vector G_ICMP and G_ASHR & G_LSR
ClosedPublic

Authored by aemerson on Apr 8 2019, 6:39 PM.

Details

Summary

The selection for G_ICMP is unfortunately not currently importable from SDAG due to the use of custom SDNodes. To support this, this selection method has an opcode table which has been generated by a script, indexed by various instruction properties. Ideally in future we will have a GISel native selection patterns that we can write in tablegen to improve on this.

For selection of some types we also need support for G_ASHR and G_LSR which are generated as a result of legalization. This patch also adds support for them, generating the same code as SelectionDAG currently does.

Diff Detail

Event Timeline

aemerson created this revision.Apr 8 2019, 6:39 PM
paquette accepted this revision.Apr 9 2019, 9:34 AM

LGTM

This revision is now accepted and ready to land.Apr 9 2019, 9:34 AM
This revision was automatically updated to reflect the committed changes.
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp