diff options
Diffstat (limited to 'test/Linker')
-rw-r--r-- | test/Linker/Inputs/syncscope-1.ll | 6 | ||||
-rw-r--r-- | test/Linker/Inputs/syncscope-2.ll | 6 | ||||
-rw-r--r-- | test/Linker/Inputs/thumb-module-inline-asm.ll | 3 | ||||
-rw-r--r-- | test/Linker/link-arm-and-thumb-module-inline-asm.ll | 20 | ||||
-rw-r--r-- | test/Linker/syncscopes.ll | 11 |
5 files changed, 46 insertions, 0 deletions
diff --git a/test/Linker/Inputs/syncscope-1.ll b/test/Linker/Inputs/syncscope-1.ll new file mode 100644 index 0000000000000..90578e931dd53 --- /dev/null +++ b/test/Linker/Inputs/syncscope-1.ll @@ -0,0 +1,6 @@ +define void @syncscope_1() { + fence syncscope("agent") seq_cst + fence syncscope("workgroup") seq_cst + fence syncscope("wavefront") seq_cst + ret void +} diff --git a/test/Linker/Inputs/syncscope-2.ll b/test/Linker/Inputs/syncscope-2.ll new file mode 100644 index 0000000000000..527c5bf93d005 --- /dev/null +++ b/test/Linker/Inputs/syncscope-2.ll @@ -0,0 +1,6 @@ +define void @syncscope_2() { + fence syncscope("image") seq_cst + fence syncscope("agent") seq_cst + fence syncscope("workgroup") seq_cst + ret void +} diff --git a/test/Linker/Inputs/thumb-module-inline-asm.ll b/test/Linker/Inputs/thumb-module-inline-asm.ll new file mode 100644 index 0000000000000..7792ff96d5b57 --- /dev/null +++ b/test/Linker/Inputs/thumb-module-inline-asm.ll @@ -0,0 +1,3 @@ +target triple = "thumbv7-linux-gnueabihf" + +module asm "orn r1, r2, r2" diff --git a/test/Linker/link-arm-and-thumb-module-inline-asm.ll b/test/Linker/link-arm-and-thumb-module-inline-asm.ll new file mode 100644 index 0000000000000..13779f37ffa0e --- /dev/null +++ b/test/Linker/link-arm-and-thumb-module-inline-asm.ll @@ -0,0 +1,20 @@ +; This test checks that proper directives to switch between ARM and Thumb mode +; are added when linking ARM and Thumb modules. + +; RUN: llvm-as %s -o %t1.bc +; RUN: llvm-as %p/Inputs/thumb-module-inline-asm.ll -o %t2.bc +; RUN: llvm-link %t1.bc %t2.bc -S 2> %t3.out | FileCheck %s + +target triple = "armv7-linux-gnueabihf" + +module asm "add r1, r2, r2" + +; CHECK: .text +; CHECK-NEXT: .balign 4 +; CHECK-NEXT: .arm +; CHECK-NEXT: add r1, r2, r2 +; CHECK-NEXT: module asm +; CHECK-NEXT: .text +; CHECK-NEXT: .balign 2 +; CHECK-NEXT: .thumb +; CHECK-NEXT: orn r1, r2, r2 diff --git a/test/Linker/syncscopes.ll b/test/Linker/syncscopes.ll new file mode 100644 index 0000000000000..a572c23cffbdb --- /dev/null +++ b/test/Linker/syncscopes.ll @@ -0,0 +1,11 @@ +; RUN: llvm-link %S/Inputs/syncscope-1.ll %S/Inputs/syncscope-2.ll -S | FileCheck %s + +; CHECK-LABEL: define void @syncscope_1 +; CHECK: fence syncscope("agent") seq_cst +; CHECK: fence syncscope("workgroup") seq_cst +; CHECK: fence syncscope("wavefront") seq_cst + +; CHECK-LABEL: define void @syncscope_2 +; CHECK: fence syncscope("image") seq_cst +; CHECK: fence syncscope("agent") seq_cst +; CHECK: fence syncscope("workgroup") seq_cst |