| ; 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 |