blob: 95da9666d053cf33e1b484dea64c8d52f6667426 [file] [edit]
// RUN: mlir-opt %s -split-input-file --verify-roundtrip --mlir-print-local-scope | FileCheck %s
// CHECK-LABEL: llvm.func @native
// CHECK: llvm.load
// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"foo":"bar">
// CHECK: llvm.fence
// CHECK-SAME: llvm.mmra = [#llvm.mmra_tag<"amdgpu-synchronize-as":"local">, #llvm.mmra_tag<"foo":"bar">]
// CHECK: llvm.store
// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"foo":"bar">
#mmra_tag = #llvm.mmra_tag<"foo":"bar">
llvm.func @native(%x: !llvm.ptr, %y: !llvm.ptr) {
%0 = llvm.load %x {llvm.mmra = #mmra_tag} : !llvm.ptr -> i32
llvm.fence syncscope("workgroup-one-as") release
{llvm.mmra = [#llvm.mmra_tag<"amdgpu-synchronize-as":"local">, #mmra_tag]}
llvm.store %0, %y {llvm.mmra = #llvm.mmra_tag<"foo":"bar">} : i32, !llvm.ptr
llvm.return
}
// -----
// CHECK-LABEL: llvm.func @foreign_op
// CHECK: rocdl.load.to.lds
// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"fake":"example">
llvm.func @foreign_op(%g: !llvm.ptr<1>, %l: !llvm.ptr<3>) {
rocdl.load.to.lds %g, %l, 4, 0, 0 {llvm.mmra = #llvm.mmra_tag<"fake":"example">} : !llvm.ptr<1>
llvm.return
}