xref: /llvm-project/mlir/test/Target/LLVMIR/Import/comdat.ll (revision b126ee65fcbb49054e32fd11fdac07279d00f159)
1; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s
2
3; CHECK: llvm.comdat @__llvm_global_comdat {
4; CHECK: llvm.comdat_selector @foo any
5$foo = comdat any
6; CHECK: }
7
8; CHECK: llvm.mlir.global external @foo(42 : i64) comdat(@__llvm_global_comdat::@foo)
9@foo = global i64 42, comdat
10; CHECK: llvm.mlir.global external @bar(42 : i64) comdat(@__llvm_global_comdat::@foo)
11@bar = global i64 42, comdat($foo)
12
13; // -----
14
15; CHECK: llvm.comdat @__llvm_global_comdat {
16; CHECK: llvm.comdat_selector @foo any
17$foo = comdat any
18; CHECK: }
19
20
21; CHECK: llvm.func @foo() comdat(@__llvm_global_comdat::@foo)
22define void @foo() comdat {
23  ret void
24}
25; CHECK: llvm.func @bar() comdat(@__llvm_global_comdat::@foo)
26define void @bar() comdat($foo) {
27  ret void
28}
29
30; // -----
31
32; CHECK: llvm.comdat @__llvm_global_comdat {
33; CHECK: llvm.comdat_selector @exact exactmatch
34$exact = comdat exactmatch
35; CHECK: llvm.comdat_selector @largest largest
36$largest = comdat largest
37; CHECK: llvm.comdat_selector @nodedup nodeduplicate
38$nodedup = comdat nodeduplicate
39; CHECK: llvm.comdat_selector @same samesize
40$same = comdat samesize
41; CHECK: }
42
43@exact = global i64 42, comdat
44@largest = global i64 42, comdat
45@nodedup = global i64 42, comdat
46@same = global i64 42, comdat
47
48; // -----
49
50; Verify a global comdat operation is only created if there are comdats to import.
51; CHECK-NOT: llvm.comdat
52; CHECK: llvm.mlir.global external @foobar
53; CHECK-NOT: llvm.comdat
54@foobar = global i64 42
55