summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/ppc32-vacopy.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/PowerPC/ppc32-vacopy.ll')
-rw-r--r--test/CodeGen/PowerPC/ppc32-vacopy.ll24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/ppc32-vacopy.ll b/test/CodeGen/PowerPC/ppc32-vacopy.ll
new file mode 100644
index 000000000000..bc394125f135
--- /dev/null
+++ b/test/CodeGen/PowerPC/ppc32-vacopy.ll
@@ -0,0 +1,24 @@
+; RUN: llc -mtriple="powerpc-unknown-linux-gnu" < %s | FileCheck %s
+; PR15286
+
+%va_list = type {i8, i8, i16, i8*, i8*}
+declare void @llvm.va_copy(i8*, i8*)
+
+define void @test_vacopy() nounwind {
+entry:
+ %0 = alloca %va_list
+ %1 = alloca %va_list
+ %2 = bitcast %va_list* %0 to i8*
+ %3 = bitcast %va_list* %1 to i8*
+
+ call void @llvm.va_copy(i8* %3, i8* %2)
+
+ ret void
+}
+; CHECK: test_vacopy:
+; CHECK: lwz [[REG1:[0-9]+]], {{.*}}
+; CHECK: lwz [[REG2:[0-9]+]], {{.*}}
+; CHECK: lwz [[REG3:[0-9]+]], {{.*}}
+; CHECK: stw [[REG1]], {{.*}}
+; CHECK: stw [[REG2]], {{.*}}
+; CHECK: stw [[REG3]], {{.*}}