This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Adjust how NEON shifts are lowered
ClosedPublic

Authored by dmgreen on Jul 9 2019, 10:30 AM.

Details

Summary

This adjusts the way that we lower NEON shifts to use a DAG target node, not via a neon intrinsic. This is useful in D64212 for handling the way we lower MVE vector shift operations. It also renames some of the immediate shift nodes for consistency, and moves some of the processing of immediate shifts into LowerShift allowing it to capture more cases.

Diff Detail

Repository
rL LLVM

Event Timeline

dmgreen created this revision.Jul 9 2019, 10:30 AM
dmgreen retitled this revision from [ARM] Adjust to [ARM] Adjust how NEON shifts are lowered.Jul 9 2019, 10:32 AM
SjoerdMeijer added inline comments.Jul 10 2019, 6:01 AM
llvm/lib/Target/ARM/ARMISelLowering.cpp
5681 ↗(On Diff #208729)

Thanks for splitting the patch up. I now actually see that this code was not added, but moved up here from somewhere else.

llvm/lib/Target/ARM/ARMISelLowering.h
147 ↗(On Diff #208729)

bikeshedding names: other nodes with an immediate have IMM capatilised. I don't have strong opinions, but more consistent would be to do that here too?

dmgreen updated this revision to Diff 209780.Jul 15 2019, 2:11 AM
SjoerdMeijer accepted this revision.Jul 15 2019, 2:15 AM

Cheers, LGTM

This revision is now accepted and ready to land.Jul 15 2019, 2:15 AM
This revision was automatically updated to reflect the committed changes.