From f5df18bff0f888d4772ad80d137d2d591bb99b5e Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 29 May 2014 15:13:23 +0000 Subject: [PATCH] Add a test showing the ppc code sequence for getting a function pointer. This would have found the miscompile in r209638. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209820 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/PowerPC/func-addr.ll | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/CodeGen/PowerPC/func-addr.ll diff --git a/test/CodeGen/PowerPC/func-addr.ll b/test/CodeGen/PowerPC/func-addr.ll new file mode 100644 index 00000000000..0cce863992b --- /dev/null +++ b/test/CodeGen/PowerPC/func-addr.ll @@ -0,0 +1,21 @@ +; RUN: llc -mtriple powerpc64-linux < %s | FileCheck %s + +define void @foo() { + ret void +} +declare i32 @bar(i8*) + +; CHECK-LABEL: {{^}}zed: +; CHECK: addis 3, 2, .LC1@toc@ha +; CHECK-NEXT: ld 3, .LC1@toc@l(3) +; CHECK-NEXT: bl bar + + +; CHECK-LABEL: .section .toc,"aw",@progbits +; CHECK: .LC1: +; CHECK-NEXT: .tc foo[TC],foo + +define void @zed() { + call i32 @bar(i8* bitcast (void ()* @foo to i8*)) + ret void +}