// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s
llvm.comdat @__llvm_comdat {
// CHECK-DAG: $[[ANY:.*]] = comdat any
llvm.comdat_selector @any any
// CHECK-DAG: $[[EXACT:.*]] = comdat exactmatch
llvm.comdat_selector @exactmatch exactmatch
// CHECK-DAG: $[[LARGEST:.*]] = comdat largest
llvm.comdat_selector @largest largest
// CHECK-DAG: $[[NODEDUP:.*]] = comdat nodeduplicate
llvm.comdat_selector @nodeduplicate nodeduplicate
// CHECK-DAG: $[[SAME:.*]] = comdat samesize
llvm.comdat_selector @samesize samesize
}
// CHECK: @any = internal constant i64 1, comdat
llvm.mlir.global internal constant @any(1 : i64) comdat(@__llvm_comdat::@any) : i64
// CHECK: @any_global = internal constant i64 1, comdat($[[ANY]])
llvm.mlir.global internal constant @any_global(1 : i64) comdat(@__llvm_comdat::@any) : i64
// CHECK: @exact_global = internal constant i64 1, comdat($[[EXACT]])
llvm.mlir.global internal constant @exact_global(1 : i64) comdat(@__llvm_comdat::@exactmatch) : i64
// CHECK: @largest_global = internal constant i64 1, comdat($[[LARGEST]])
llvm.mlir.global internal constant @largest_global(1 : i64) comdat(@__llvm_comdat::@largest) : i64
// CHECK: define void @nodeduplicate() comdat
llvm.func @nodeduplicate() comdat(@__llvm_comdat::@nodeduplicate) { llvm.return }
// CHECK: define void @nodeduplicate_func() comdat($[[NODEDUP]])
llvm.func @nodeduplicate_func() comdat(@__llvm_comdat::@nodeduplicate) { llvm.return }
// CHECK: define void @samesize_func() comdat($[[SAME]])
llvm.func @samesize_func() comdat(@__llvm_comdat::@samesize) { llvm.return }