aboutsummaryrefslogtreecommitdiff
path: root/test/tools/llvm-split
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools/llvm-split')
-rw-r--r--test/tools/llvm-split/alias.ll19
-rw-r--r--test/tools/llvm-split/comdat.ll19
-rw-r--r--test/tools/llvm-split/function.ll17
-rw-r--r--test/tools/llvm-split/global.ll11
-rw-r--r--test/tools/llvm-split/internal.ll17
-rw-r--r--test/tools/llvm-split/unnamed.ll31
6 files changed, 114 insertions, 0 deletions
diff --git a/test/tools/llvm-split/alias.ll b/test/tools/llvm-split/alias.ll
new file mode 100644
index 000000000000..18e0e7f12d69
--- /dev/null
+++ b/test/tools/llvm-split/alias.ll
@@ -0,0 +1,19 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+; CHECK0-DAG: @afoo = alias [2 x i8*], [2 x i8*]* @foo
+; CHECK1-DAG: @afoo = external global [2 x i8*]
+@afoo = alias [2 x i8*], [2 x i8*]* @foo
+
+; CHECK0-DAG: declare void @abar()
+; CHECK1-DAG: @abar = alias void (), void ()* @bar
+@abar = alias void (), void ()* @bar
+
+@foo = global [2 x i8*] [i8* bitcast (void ()* @bar to i8*), i8* bitcast (void ()* @abar to i8*)]
+
+define void @bar() {
+ store [2 x i8*] zeroinitializer, [2 x i8*]* @foo
+ store [2 x i8*] zeroinitializer, [2 x i8*]* @afoo
+ ret void
+}
diff --git a/test/tools/llvm-split/comdat.ll b/test/tools/llvm-split/comdat.ll
new file mode 100644
index 000000000000..45faf4bfe26e
--- /dev/null
+++ b/test/tools/llvm-split/comdat.ll
@@ -0,0 +1,19 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+$foo = comdat any
+
+; CHECK0: define void @foo()
+; CHECK1: declare void @foo()
+define void @foo() comdat {
+ call void @bar()
+ ret void
+}
+
+; CHECK0: define void @bar()
+; CHECK1: declare void @bar()
+define void @bar() comdat($foo) {
+ call void @foo()
+ ret void
+}
diff --git a/test/tools/llvm-split/function.ll b/test/tools/llvm-split/function.ll
new file mode 100644
index 000000000000..37272dbbcee2
--- /dev/null
+++ b/test/tools/llvm-split/function.ll
@@ -0,0 +1,17 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+; CHECK0: define void @foo()
+; CHECK1: declare void @foo()
+define void @foo() {
+ call void @bar()
+ ret void
+}
+
+; CHECK0: declare void @bar()
+; CHECK1: define void @bar()
+define void @bar() {
+ call void @foo()
+ ret void
+}
diff --git a/test/tools/llvm-split/global.ll b/test/tools/llvm-split/global.ll
new file mode 100644
index 000000000000..6d2425691e10
--- /dev/null
+++ b/test/tools/llvm-split/global.ll
@@ -0,0 +1,11 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+; CHECK0: @foo = global i8* bitcast
+; CHECK1: @foo = external global i8*
+@foo = global i8* bitcast (i8** @bar to i8*)
+
+; CHECK0: @bar = external global i8*
+; CHECK1: @bar = global i8* bitcast
+@bar = global i8* bitcast (i8** @foo to i8*)
diff --git a/test/tools/llvm-split/internal.ll b/test/tools/llvm-split/internal.ll
new file mode 100644
index 000000000000..ce4272c5f0dd
--- /dev/null
+++ b/test/tools/llvm-split/internal.ll
@@ -0,0 +1,17 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+; CHECK0: define hidden void @foo()
+; CHECK1: declare hidden void @foo()
+define internal void @foo() {
+ call void @bar()
+ ret void
+}
+
+; CHECK0: declare void @bar()
+; CHECK1: define void @bar()
+define void @bar() {
+ call void @foo()
+ ret void
+}
diff --git a/test/tools/llvm-split/unnamed.ll b/test/tools/llvm-split/unnamed.ll
new file mode 100644
index 000000000000..fd24b4ca92bb
--- /dev/null
+++ b/test/tools/llvm-split/unnamed.ll
@@ -0,0 +1,31 @@
+; RUN: llvm-split -o %t %s
+; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK0 %s
+; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK1 %s
+
+; CHECK0: declare hidden void @__llvmsplit_unnamed()
+; CHECK1: define hidden void @__llvmsplit_unnamed()
+define internal void @0() {
+ ; CHECK1: call void @foo()
+ call void @foo()
+ ret void
+}
+
+; CHECK0: declare hidden void @__llvmsplit_unnamed.1()
+; CHECK1: define hidden void @__llvmsplit_unnamed.1()
+define internal void @1() {
+ ; CHECK1: call void @foo()
+ ; CHECK1: call void @foo()
+ call void @foo()
+ call void @foo()
+ ret void
+}
+
+; CHECK0: define void @foo()
+; CHECK1: declare void @foo()
+define void @foo() {
+ ; CHECK0: call void @__llvmsplit_unnamed.1()
+ ; CHECK0: call void @__llvmsplit_unnamed()
+ call void @1()
+ call void @0()
+ ret void
+}