The generic argument lowering code for GISel can already handle i128 (as it does for function calls) so we just need to bypass the weird extend/pad edge-cases to support i128 in returns as well.
It also seems to work for larger vectors as a bonus.
Paths
| Differential D106544
AArch6+GISel: support larger return types like i128 ClosedPublic Authored by t.p.northover on Jul 22 2021, 6:31 AM.
Details
Diff Detail
Unit TestsFailed Event Timeline
This revision is now accepted and ready to land.Jul 22 2021, 5:59 PM
Revision Contents
Diff 360787 llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
llvm/test/CodeGen/AArch64/GlobalISel/translate-ret.ll
llvm/test/CodeGen/AArch64/arm64-subvector-extend.ll
|
I feel like this should be moved to the translate-ret case rather than just be deleted.