55 lines
1.4 KiB
LLVM
55 lines
1.4 KiB
LLVM
|
; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s
|
||
|
|
||
|
; CHECK: llvm.comdat @__llvm_global_comdat {
|
||
|
; CHECK: llvm.comdat_selector @foo any
|
||
|
$foo = comdat any
|
||
|
; CHECK: }
|
||
|
|
||
|
; CHECK: llvm.mlir.global external @foo(42 : i64) comdat(@__llvm_global_comdat::@foo)
|
||
|
@foo = global i64 42, comdat
|
||
|
; CHECK: llvm.mlir.global external @bar(42 : i64) comdat(@__llvm_global_comdat::@foo)
|
||
|
@bar = global i64 42, comdat($foo)
|
||
|
|
||
|
; // -----
|
||
|
|
||
|
; CHECK: llvm.comdat @__llvm_global_comdat {
|
||
|
; CHECK: llvm.comdat_selector @foo any
|
||
|
$foo = comdat any
|
||
|
; CHECK: }
|
||
|
|
||
|
|
||
|
; CHECK: llvm.func @foo() comdat(@__llvm_global_comdat::@foo)
|
||
|
define void @foo() comdat {
|
||
|
ret void
|
||
|
}
|
||
|
; CHECK: llvm.func @bar() comdat(@__llvm_global_comdat::@foo)
|
||
|
define void @bar() comdat($foo) {
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
; // -----
|
||
|
|
||
|
; CHECK: llvm.comdat @__llvm_global_comdat {
|
||
|
; CHECK: llvm.comdat_selector @exact exactmatch
|
||
|
$exact = comdat exactmatch
|
||
|
; CHECK: llvm.comdat_selector @largest largest
|
||
|
$largest = comdat largest
|
||
|
; CHECK: llvm.comdat_selector @nodedup nodeduplicate
|
||
|
$nodedup = comdat nodeduplicate
|
||
|
; CHECK: llvm.comdat_selector @same samesize
|
||
|
$same = comdat samesize
|
||
|
; CHECK: }
|
||
|
|
||
|
@exact = global i64 42, comdat
|
||
|
@largest = global i64 42, comdat
|
||
|
@nodedup = global i64 42, comdat
|
||
|
@same = global i64 42, comdat
|
||
|
|
||
|
; // -----
|
||
|
|
||
|
; Verify a global comdat operation is only created if there are comdats to import.
|
||
|
; CHECK-NOT: llvm.comdat
|
||
|
; CHECK: llvm.mlir.global external @foobar
|
||
|
; CHECK-NOT: llvm.comdat
|
||
|
@foobar = global i64 42
|