Skip to content

Commit f60cc63

Browse files
authored
[mlir][rocdl] Add s.sleep intrinsic (#147936)
1 parent 81614e5 commit f60cc63

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@ def ROCDL_SWaitcntOp : ROCDL_ConcreteNonMemIntrOp<"s.waitcnt", [], 0, [0], ["bit
251251
let assemblyFormat = "attr-dict $bitfield";
252252
}
253253

254+
def ROCDL_SSleepOp : ROCDL_ConcreteNonMemIntrOp<"s.sleep", [], 0, [0], ["count"]>,
255+
Arguments<(ins I32Attr:$count)> {
256+
let assemblyFormat = "attr-dict $count";
257+
}
258+
254259
def ROCDL_SBarrierOp : ROCDL_ConcreteNonMemIntrOp<"s.barrier", [], 0> {
255260
let assemblyFormat = "attr-dict";
256261
}

mlir/test/Dialect/LLVMIR/rocdl.mlir

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,6 +923,13 @@ llvm.func @rocdl.s.waitcnt() {
923923
llvm.return
924924
}
925925

926+
llvm.func @rocdl.s.sleep() {
927+
// CHECK-LABEL: rocdl.s.sleep
928+
// CHECK: rocdl.s.sleep 0
929+
rocdl.s.sleep 0
930+
llvm.return
931+
}
932+
926933
llvm.func @rocdl.s.barrier() {
927934
// CHECK-LABEL: rocdl.s.barrier
928935
// CHECK: rocdl.s.barrier

mlir/test/Target/LLVMIR/rocdl.mlir

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,13 @@ llvm.func @rocdl.s.waitcnt() {
151151
llvm.return
152152
}
153153

154+
llvm.func @rocdl.s.sleep() {
155+
// CHECK-LABEL: rocdl.s.sleep
156+
// CHECK-NEXT: call void @llvm.amdgcn.s.sleep(i32 0)
157+
rocdl.s.sleep 0
158+
llvm.return
159+
}
160+
154161
llvm.func @rocdl.s.barrier() {
155162
// CHECK-LABEL: rocdl.s.barrier
156163
// CHECK-NEXT: call void @llvm.amdgcn.s.barrier()

0 commit comments

Comments
 (0)