This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Support lowering <1 x i8> arguments
ClosedPublic

Authored by aemerson on Feb 18 2021, 11:15 PM.

Details

Summary

We don't yet have working codegen for the resulting unmerge/merges, and if we did it would probably be horrible.

Diff Detail

Event Timeline

aemerson created this revision.Feb 18 2021, 11:15 PM
aemerson requested review of this revision.Feb 18 2021, 11:15 PM
arsenm added inline comments.Feb 19 2021, 5:16 AM
llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
551

Missing newline

560–561

Can't you directly unmerge into ArgReg?

llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
389 ↗(On Diff #324891)

I am working on the return complement to 62d946e133f748d4500903c2b80fc456ff409505 which will handle more cases here

aemerson added inline comments.Feb 19 2021, 9:36 AM
llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
389 ↗(On Diff #324891)

Ok I'll remove this part.

aemerson updated this revision to Diff 325022.Feb 19 2021, 9:55 AM
aemerson retitled this revision from [AArch64][GlobalISel] Support lowering <1 x i8> arguments and returning to [AArch64][GlobalISel] Support lowering <1 x i8> arguments.

Unmerge directly into register. Remove return handling/

aemerson updated this revision to Diff 325023.Feb 19 2021, 9:57 AM

Attach right patch.

paquette accepted this revision.Feb 22 2021, 9:20 AM

LGTM

llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
551

Would it be useful to include the number of elements + number of original elements in this debug output?

557

Nit: Might as well make this NumParts - 1

This revision is now accepted and ready to land.Feb 22 2021, 9:20 AM
This revision was landed with ongoing or failed builds.Feb 22 2021, 1:59 PM
This revision was automatically updated to reflect the committed changes.