22 lines · plain
1// RUN: mlir-opt %s --gpu-to-llvm | FileCheck %s2 3module attributes {gpu.container_module} {4 5 func.func @foo() {6 // CHECK: %[[t0:.*]] = llvm.call @mgpuStreamCreate7 // CHECK: %[[e0:.*]] = llvm.call @mgpuEventCreate8 // CHECK: llvm.call @mgpuEventRecord(%[[e0]], %[[t0]])9 %t0 = gpu.wait async10 // CHECK: %[[t1:.*]] = llvm.call @mgpuStreamCreate11 // CHECK: llvm.call @mgpuStreamWaitEvent(%[[t1]], %[[e0]])12 // CHECK: llvm.call @mgpuEventDestroy(%[[e0]])13 %t1 = gpu.wait async [%t0]14 // CHECK: llvm.call @mgpuStreamSynchronize(%[[t0]])15 // CHECK: llvm.call @mgpuStreamDestroy(%[[t0]])16 // CHECK: llvm.call @mgpuStreamSynchronize(%[[t1]])17 // CHECK: llvm.call @mgpuStreamDestroy(%[[t1]])18 gpu.wait [%t0, %t1]19 return20 }21}22