summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-12-05 21:25:33 +0000
committerTim Northover <tnorthover@apple.com>2016-12-05 21:25:33 +0000
commitd1fd383b281ea6c4f645b28178066839eace0b37 (patch)
tree871dc91b3e0c3dc22ca650e7f56c1b8c627e795a /llvm/lib/Target/AArch64
parent92f377bd74aa89dadfa51521f5065f9d9b931349 (diff)
downloadbcm5719-llvm-d1fd383b281ea6c4f645b28178066839eace0b37.tar.gz
bcm5719-llvm-d1fd383b281ea6c4f645b28178066839eace0b37.zip
GlobalISel: handle 1-element aggregates during ABI lowering.
llvm-svn: 288706
Diffstat (limited to 'llvm/lib/Target/AArch64')
-rw-r--r--llvm/lib/Target/AArch64/AArch64CallLowering.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64CallLowering.cpp b/llvm/lib/Target/AArch64/AArch64CallLowering.cpp
index 3d929426ce0..d9dd65858e7 100644
--- a/llvm/lib/Target/AArch64/AArch64CallLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64CallLowering.cpp
@@ -168,8 +168,10 @@ void AArch64CallLowering::splitToValueTypes(const ArgInfo &OrigArg,
ComputeValueVTs(TLI, DL, OrigArg.Ty, SplitVTs, &Offsets, 0);
if (SplitVTs.size() == 1) {
- // No splitting to do, just forward the input directly.
- SplitArgs.push_back(OrigArg);
+ // No splitting to do, but we want to replace the original type (e.g. [1 x
+ // double] -> double).
+ SplitArgs.emplace_back(OrigArg.Reg, SplitVTs[0].getTypeForEVT(Ctx),
+ OrigArg.Flags);
return;
}
OpenPOWER on IntegriCloud