summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Linker/module-flags-1-a.ll16
-rw-r--r--llvm/test/Linker/module-flags-1-b.ll8
-rw-r--r--llvm/test/Linker/module-flags-2-a.ll10
-rw-r--r--llvm/test/Linker/module-flags-2-b.ll6
-rw-r--r--llvm/test/Linker/module-flags-3-a.ll14
-rw-r--r--llvm/test/Linker/module-flags-3-b.ll8
-rw-r--r--llvm/test/Linker/module-flags-4-a.ll10
-rw-r--r--llvm/test/Linker/module-flags-4-b.ll8
-rw-r--r--llvm/test/Linker/module-flags-5-a.ll9
-rw-r--r--llvm/test/Linker/module-flags-5-b.ll6
-rw-r--r--llvm/test/Linker/module-flags-6-a.ll9
-rw-r--r--llvm/test/Linker/module-flags-6-b.ll6
12 files changed, 110 insertions, 0 deletions
diff --git a/llvm/test/Linker/module-flags-1-a.ll b/llvm/test/Linker/module-flags-1-a.ll
new file mode 100644
index 00000000000..973aa80822c
--- /dev/null
+++ b/llvm/test/Linker/module-flags-1-a.ll
@@ -0,0 +1,16 @@
+; RUN: llvm-link %s %p/module-flags-1-b.ll -S -o - | sort | FileCheck %s
+
+; Test basic functionality of module flags.
+
+; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37}
+; CHECK: !1 = metadata !{i32 1, metadata !"qux", i32 42}
+; CHECK: !2 = metadata !{i32 1, metadata !"mux", metadata !3}
+; CHECK: !3 = metadata !{metadata !"hello world", i32 927}
+; CHECK: !4 = metadata !{i32 2, metadata !"bar", i32 42}
+; CHECK: !llvm.module.flags = !{!0, !1, !2, !4}
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+!1 = metadata !{ i32 2, metadata !"bar", i32 42 }
+!2 = metadata !{ i32 1, metadata !"mux", metadata !{ metadata !"hello world", i32 927 } }
+
+!llvm.module.flags = !{ !0, !1, !2 }
diff --git a/llvm/test/Linker/module-flags-1-b.ll b/llvm/test/Linker/module-flags-1-b.ll
new file mode 100644
index 00000000000..bf3f5e55550
--- /dev/null
+++ b/llvm/test/Linker/module-flags-1-b.ll
@@ -0,0 +1,8 @@
+; This file is used with module-flags-1-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+!1 = metadata !{ i32 1, metadata !"qux", i32 42 }
+!2 = metadata !{ i32 1, metadata !"mux", metadata !{ metadata !"hello world", i32 927 } }
+
+!llvm.module.flags = !{ !0, !1, !2 }
diff --git a/llvm/test/Linker/module-flags-2-a.ll b/llvm/test/Linker/module-flags-2-a.ll
new file mode 100644
index 00000000000..3ae02889d16
--- /dev/null
+++ b/llvm/test/Linker/module-flags-2-a.ll
@@ -0,0 +1,10 @@
+; RUN: llvm-link %s %p/module-flags-2-b.ll -S -o - | sort | FileCheck %s
+
+; Test the 'override' behavior.
+
+; CHECK: !0 = metadata !{i32 4, metadata !"foo", i32 37}
+; CHECK: !llvm.module.flags = !{!0}
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 927 }
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-2-b.ll b/llvm/test/Linker/module-flags-2-b.ll
new file mode 100644
index 00000000000..ab55e4b997c
--- /dev/null
+++ b/llvm/test/Linker/module-flags-2-b.ll
@@ -0,0 +1,6 @@
+; This file is used with module-flags-2-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 4, metadata !"foo", i32 37 } ; Override the "foo" value.
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-3-a.ll b/llvm/test/Linker/module-flags-3-a.ll
new file mode 100644
index 00000000000..4233a0a7a5b
--- /dev/null
+++ b/llvm/test/Linker/module-flags-3-a.ll
@@ -0,0 +1,14 @@
+; RUN: llvm-link %s %p/module-flags-3-b.ll -S -o - | sort | FileCheck %s
+
+; Test 'require' behavior.
+
+; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37}
+; CHECK: !1 = metadata !{i32 3, metadata !"foo", metadata !2}
+; CHECK: !2 = metadata !{metadata !"bar", i32 42}
+; CHECK: !3 = metadata !{i32 1, metadata !"bar", i32 42}
+; CHECK: !llvm.module.flags = !{!0, !1, !3}
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+!1 = metadata !{ i32 1, metadata !"bar", i32 42 }
+
+!llvm.module.flags = !{ !0, !1 }
diff --git a/llvm/test/Linker/module-flags-3-b.ll b/llvm/test/Linker/module-flags-3-b.ll
new file mode 100644
index 00000000000..76be8026337
--- /dev/null
+++ b/llvm/test/Linker/module-flags-3-b.ll
@@ -0,0 +1,8 @@
+; This file is used with module-flags-3-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 3, metadata !"foo",
+ metadata !{ metadata !"bar", i32 42 }
+}
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-4-a.ll b/llvm/test/Linker/module-flags-4-a.ll
new file mode 100644
index 00000000000..0199ef486cc
--- /dev/null
+++ b/llvm/test/Linker/module-flags-4-a.ll
@@ -0,0 +1,10 @@
+; RUN: not llvm-link %s %p/module-flags-4-b.ll -S -o - |& FileCheck %s
+
+; Test 'require' error.
+
+; CHECK: Linking module flags 'bar': does not have the required value
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+!1 = metadata !{ i32 1, metadata !"bar", i32 927 }
+
+!llvm.module.flags = !{ !0, !1 }
diff --git a/llvm/test/Linker/module-flags-4-b.ll b/llvm/test/Linker/module-flags-4-b.ll
new file mode 100644
index 00000000000..3a460bbeb0b
--- /dev/null
+++ b/llvm/test/Linker/module-flags-4-b.ll
@@ -0,0 +1,8 @@
+; This file is used with module-flags-4-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 3, metadata !"foo",
+ metadata !{ metadata !"bar", i32 42 }
+}
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-5-a.ll b/llvm/test/Linker/module-flags-5-a.ll
new file mode 100644
index 00000000000..21b20a31efd
--- /dev/null
+++ b/llvm/test/Linker/module-flags-5-a.ll
@@ -0,0 +1,9 @@
+; RUN: not llvm-link %s %p/module-flags-5-b.ll -S -o - |& FileCheck %s
+
+; Test the 'override' error.
+
+; CHECK: Linking module flags 'foo': IDs have conflicting override values
+
+!0 = metadata !{ i32 4, metadata !"foo", i32 927 }
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-5-b.ll b/llvm/test/Linker/module-flags-5-b.ll
new file mode 100644
index 00000000000..1e99b207544
--- /dev/null
+++ b/llvm/test/Linker/module-flags-5-b.ll
@@ -0,0 +1,6 @@
+; This file is used with module-flags-5-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 4, metadata !"foo", i32 37 } ; Override the "foo" value.
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-6-a.ll b/llvm/test/Linker/module-flags-6-a.ll
new file mode 100644
index 00000000000..aeade470ca1
--- /dev/null
+++ b/llvm/test/Linker/module-flags-6-a.ll
@@ -0,0 +1,9 @@
+; RUN: not llvm-link %s %p/module-flags-6-b.ll -S -o - |& FileCheck %s
+
+; Test module flags error messages.
+
+; CHECK: Linking module flags 'foo': IDs have conflicting values
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-6-b.ll b/llvm/test/Linker/module-flags-6-b.ll
new file mode 100644
index 00000000000..2bc5a96045b
--- /dev/null
+++ b/llvm/test/Linker/module-flags-6-b.ll
@@ -0,0 +1,6 @@
+; This file is used with module-flags-6-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 38 }
+
+!llvm.module.flags = !{ !0 }
OpenPOWER on IntegriCloud