xref: /llvm-project/mlir/test/Target/LLVMIR/comdat.mlir (revision b126ee65fcbb49054e32fd11fdac07279d00f159)
1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s
2
3llvm.comdat @__llvm_comdat {
4  // CHECK-DAG: $[[ANY:.*]] = comdat any
5  llvm.comdat_selector @any any
6  // CHECK-DAG: $[[EXACT:.*]] = comdat exactmatch
7  llvm.comdat_selector @exactmatch exactmatch
8  // CHECK-DAG: $[[LARGEST:.*]] = comdat largest
9  llvm.comdat_selector @largest largest
10  // CHECK-DAG: $[[NODEDUP:.*]] = comdat nodeduplicate
11  llvm.comdat_selector @nodeduplicate nodeduplicate
12  // CHECK-DAG: $[[SAME:.*]] = comdat samesize
13  llvm.comdat_selector @samesize samesize
14}
15
16// CHECK: @any = internal constant i64 1, comdat
17llvm.mlir.global internal constant @any(1 : i64) comdat(@__llvm_comdat::@any) : i64
18// CHECK: @any_global = internal constant i64 1, comdat($[[ANY]])
19llvm.mlir.global internal constant @any_global(1 : i64) comdat(@__llvm_comdat::@any) : i64
20// CHECK: @exact_global = internal constant i64 1, comdat($[[EXACT]])
21llvm.mlir.global internal constant @exact_global(1 : i64) comdat(@__llvm_comdat::@exactmatch) : i64
22// CHECK: @largest_global = internal constant i64 1, comdat($[[LARGEST]])
23llvm.mlir.global internal constant @largest_global(1 : i64) comdat(@__llvm_comdat::@largest) : i64
24
25// CHECK: define void @nodeduplicate() comdat
26llvm.func @nodeduplicate() comdat(@__llvm_comdat::@nodeduplicate) { llvm.return }
27// CHECK: define void @nodeduplicate_func() comdat($[[NODEDUP]])
28llvm.func @nodeduplicate_func() comdat(@__llvm_comdat::@nodeduplicate) { llvm.return }
29// CHECK: define void @samesize_func() comdat($[[SAME]])
30llvm.func @samesize_func() comdat(@__llvm_comdat::@samesize) { llvm.return }
31