30 lines · plain
1// RUN: mlir-opt %s -split-input-file --verify-roundtrip --mlir-print-local-scope | FileCheck %s2 3// CHECK-LABEL: llvm.func @native4// CHECK: llvm.load5// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"foo":"bar">6// CHECK: llvm.fence7// CHECK-SAME: llvm.mmra = [#llvm.mmra_tag<"amdgpu-synchronize-as":"local">, #llvm.mmra_tag<"foo":"bar">]8// CHECK: llvm.store9// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"foo":"bar">10 11#mmra_tag = #llvm.mmra_tag<"foo":"bar">12 13llvm.func @native(%x: !llvm.ptr, %y: !llvm.ptr) {14 %0 = llvm.load %x {llvm.mmra = #mmra_tag} : !llvm.ptr -> i3215 llvm.fence syncscope("workgroup-one-as") release16 {llvm.mmra = [#llvm.mmra_tag<"amdgpu-synchronize-as":"local">, #mmra_tag]}17 llvm.store %0, %y {llvm.mmra = #llvm.mmra_tag<"foo":"bar">} : i32, !llvm.ptr18 llvm.return19}20 21// -----22 23// CHECK-LABEL: llvm.func @foreign_op24// CHECK: rocdl.load.to.lds25// CHECK-SAME: llvm.mmra = #llvm.mmra_tag<"fake":"example">26llvm.func @foreign_op(%g: !llvm.ptr<1>, %l: !llvm.ptr<3>) {27 rocdl.load.to.lds %g, %l, 4, 0, 0 {llvm.mmra = #llvm.mmra_tag<"fake":"example">} : !llvm.ptr<1>28 llvm.return29}30