summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AArch64
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2015-07-02 23:23:52 +0000
committerNadav Rotem <nrotem@apple.com>2015-07-02 23:23:52 +0000
commit754eb7c5639e5c133b66d9806089d9dcf9650e04 (patch)
tree2f1ac7a4494ac3b81db025f22b5d018ade490fdd /llvm/test/CodeGen/AArch64
parent6be9099140df35cb308ac883db3183221cf7ed15 (diff)
downloadbcm5719-llvm-754eb7c5639e5c133b66d9806089d9dcf9650e04.tar.gz
bcm5719-llvm-754eb7c5639e5c133b66d9806089d9dcf9650e04.zip
Fix an overly aggressive assertion in getCopyFromPartsVector.
The assertion in getCopyFromPartsVector assumed that the vector 'part' must match the type of argument (arguments are potentially split into multiple parts). However, in some cases the targets return a 'part' of the right size but with a different type. We already handle this case correctly later on and generate a bitcast. This commit just makes sure that we are actually checking the property that we care about. llvm-svn: 241312
Diffstat (limited to 'llvm/test/CodeGen/AArch64')
-rw-r--r--llvm/test/CodeGen/AArch64/aarch-multipart.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/aarch-multipart.ll b/llvm/test/CodeGen/AArch64/aarch-multipart.ll
new file mode 100644
index 00000000000..fd42d6e8cd8
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/aarch-multipart.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -o - | FileCheck %s
+
+target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
+target triple = "arm64-apple-os"
+
+declare <4 x double> @user_func(<4 x double>) #1
+
+; Make sure we are not crashing on this code.
+; CHECK-LABEL: caller_function
+; CHECK: ret
+define void @caller_function(<4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double>) #1 {
+entry:
+ %r = call <4 x double> @user_func(<4 x double> %4)
+ ret void
+}
+
+attributes #1 = { nounwind readnone }
+
OpenPOWER on IntegriCloud