summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSundeep Kushwaha <sundeepk@codeaurora.org>2015-05-12 20:13:10 +0000
committerSundeep Kushwaha <sundeepk@codeaurora.org>2015-05-12 20:13:10 +0000
commit83a4039c177f5a4b13da73f22e35c44cfd6b1b7c (patch)
treec947177ae1f487416d1729a0b49cb1b7290ffbda
parent833f34d837eca1e11370fbdea0bcbae10fee70b7 (diff)
downloadbcm5719-llvm-83a4039c177f5a4b13da73f22e35c44cfd6b1b7c.tar.gz
bcm5719-llvm-83a4039c177f5a4b13da73f22e35c44cfd6b1b7c.zip
[PATCH] [HEXAGON] Add a test program to verify calling convention
for large struct return by value. Differential Revision: http://reviews.llvm.org/D9709 llvm-svn: 237170
-rw-r--r--llvm/test/CodeGen/Hexagon/calling-conv-2.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/calling-conv-2.ll b/llvm/test/CodeGen/Hexagon/calling-conv-2.ll
new file mode 100644
index 00000000000..3c68c88bd71
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/calling-conv-2.ll
@@ -0,0 +1,13 @@
+; RUN: llc -march=hexagon -mcpu=hexagonv5 <%s | \
+; RUN: FileCheck %s --check-prefix=CHECK-ONE
+
+%struct.test_struct = type { i32, i8, i64 }
+
+; CHECK-ONE: r1 = #45
+define void @foo(%struct.test_struct* noalias nocapture sret %agg.result, i32 %a) #0 {
+entry:
+ call void @bar(%struct.test_struct* sret %agg.result, i32 45) #2
+ ret void
+}
+
+declare void @bar(%struct.test_struct* sret, i32) #1
OpenPOWER on IntegriCloud