This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Extend more reductions during lowering
ClosedPublic

Authored by dmgreen on Jul 15 2021, 3:43 AM.

Details

Summary

This relaxes the VMLAV and VADDV reduction recognition code to handle smaller than legal types, extending them as needed. This was already handled for some reductions, this extends that to more types in a more generic way. If a smaller than legal value is found it is extended to the legal type as needed.

Diff Detail

Event Timeline

dmgreen created this revision.Jul 15 2021, 3:43 AM
dmgreen requested review of this revision.Jul 15 2021, 3:43 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 15 2021, 3:43 AM
SjoerdMeijer added inline comments.Jul 16 2021, 2:51 AM
llvm/lib/Target/ARM/ARMISelLowering.cpp
16016

Was curious if we can still us llvm::any_of for this as a bit of a shorter notation.

dmgreen added inline comments.Jul 16 2021, 6:44 AM
llvm/lib/Target/ARM/ARMISelLowering.cpp
16016

Yeah.. let me try that. I removed it as I thought the nested lambdas were getting ugly, but you might be alright that it's OK really.

dmgreen updated this revision to Diff 359309.Jul 16 2021, 6:55 AM

Use any_of again.

SjoerdMeijer accepted this revision.Jul 16 2021, 7:54 AM

Cheers, LGTM

This revision is now accepted and ready to land.Jul 16 2021, 7:54 AM
This revision was landed with ongoing or failed builds.Jul 19 2021, 12:58 AM
This revision was automatically updated to reflect the committed changes.