This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Select @llvm.aarch64.neon.ld2.*
ClosedPublic

Authored by paquette on Aug 23 2021, 3:27 PM.

Details

Summary

This is pretty similar to the ST2 selection code in AArch64InstructionSelector::selectIntrinsicWithSideEffects.

This is a GISel equivalent of the ld2 case in AArch64DAGToDAGISel::Select. There's some weirdness there that appears here too (e.g. using ld1 for scalar cases, which are 1-element vectors in SDAG.)

It's a little gross that we have to create the copy and then select it right after, but I think we'd need to refactor the existing copy selection code quite a bit to do better.

This was falling back while building llvm-project with GISel for AArch64.

Diff Detail

Event Timeline

paquette created this revision.Aug 23 2021, 3:27 PM
paquette requested review of this revision.Aug 23 2021, 3:27 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 23 2021, 3:27 PM
jroelofs accepted this revision.Aug 23 2021, 4:59 PM
This revision is now accepted and ready to land.Aug 23 2021, 4:59 PM
This revision was automatically updated to reflect the committed changes.