HomePhabricator

[AArch64][GlobalISel] Teach tryOptSelect to handle G_ICMP

Description

[AArch64][GlobalISel] Teach tryOptSelect to handle G_ICMP

This teaches tryOptSelect to handle folding G_ICMP, and removes the
requirement that the G_SELECT we're dealing with is floating point.

Some refactoring to make this work nicely as well:

  • Factor out the scalar case from the selection code for G_ICMP into emitIntegerCompare.
  • Make tryOptCMN return a MachineInstr* instead of a bool.
  • Make tryOptCMN not modify the instruction being selected.
  • Factor out the CMN emission into emitCMN for readability.

By doing this this way, we can get all of the compare selection optimizations
in select emission.

Differential Revision: https://reviews.llvm.org/D64084

Details

Committed
paquetteJul 2 2019, 12:44 PM
Differential Revision
D64084: [AArch64][GlobalISel] Teach tryOptSelect to handle G_ICMP
Parents
rL364960: [ThinLTO] Add summary entries for index-based WPD
Branches
Unknown
Tags
Unknown