xref: /llvm-project/llvm/test/Transforms/GlobalSplit/nonlocal.ll (revision 0f46e31cfbf415fcd3d3ce121bef94e92c6ccfc8)
1; RUN: opt -S -passes=globalsplit %s | FileCheck %s
2
3target datalayout = "e-p:64:64"
4target triple = "x86_64-unknown-linux-gnu"
5
6; CHECK: @global =
7@global = constant { [2 x ptr], [1 x ptr] } {
8  [2 x ptr] [ptr @f, ptr @g],
9  [1 x ptr] [ptr @h]
10}
11
12define ptr @f() {
13  ret ptr getelementptr inrange(0, 16) ({ [2 x ptr], [1 x ptr] }, ptr @global, i32 0, i32 0, i32 0)
14}
15
16define ptr @g() {
17  ret ptr null
18}
19
20define ptr @h() {
21  ret ptr null
22}
23
24define void @foo() {
25  %p = call i1 @llvm.type.test(ptr null, metadata !"")
26  ret void
27}
28
29declare i1 @llvm.type.test(ptr, metadata) nounwind readnone
30