This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Enable vector support for G_SELECT->G_FMAXIMUM/MINIMUM.
ClosedPublic

Authored by aemerson on Oct 2 2022, 6:53 PM.

Details

Summary

Vector support seems to work immediately, as long as we run the combine before legalization (so the vector SELECTs don't get lowered) and the legalizer rules are there to enable generation.

Diff Detail

Event Timeline

aemerson created this revision.Oct 2 2022, 6:53 PM
Herald added a project: Restricted Project. · View Herald TranscriptOct 2 2022, 6:53 PM
aemerson updated this revision to Diff 464585.Oct 2 2022, 7:00 PM

Don't remove this from post-legalizer combining since it can still catch scalar patterns.

arsenm added a subscriber: arsenm.Oct 2 2022, 7:26 PM

Could use end to end IR tests to make sure the whole system works

aemerson updated this revision to Diff 464606.Oct 2 2022, 11:33 PM

Add IR test.

aemerson updated this revision to Diff 464619.Oct 3 2022, 1:41 AM

Add support for <2 x float> and <4 x half> types.

paquette accepted this revision.Oct 3 2022, 10:05 AM

LGTM

llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
5987–5988

drop TODO?

This revision is now accepted and ready to land.Oct 3 2022, 10:05 AM
This revision was landed with ongoing or failed builds.Oct 3 2022, 1:39 PM
This revision was automatically updated to reflect the committed changes.