[Mlir-commits] [mlir] [mlir][rocdl] Add `s.sleep` intrinsic (PR #147936)
Ivan Butygin
llvmlistbot at llvm.org
Thu Jul 10 03:53:02 PDT 2025
https://github.com/Hardcode84 created https://github.com/llvm/llvm-project/pull/147936
None
>From 051db45cd59725dc767948ee138617742eb177a6 Mon Sep 17 00:00:00 2001
From: Ivan Butygin <ivan.butygin at gmail.com>
Date: Thu, 10 Jul 2025 12:47:49 +0200
Subject: [PATCH] [mlir][rocdl] Add `s.sleep` intrinsic
---
mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td | 5 +++++
mlir/test/Dialect/LLVMIR/rocdl.mlir | 7 +++++++
mlir/test/Target/LLVMIR/rocdl.mlir | 7 +++++++
3 files changed, 19 insertions(+)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
index 1dadb7d9e8852..906aaca21187b 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
@@ -251,6 +251,11 @@ def ROCDL_SWaitcntOp : ROCDL_ConcreteNonMemIntrOp<"s.waitcnt", [], 0, [0], ["bit
let assemblyFormat = "attr-dict $bitfield";
}
+def ROCDL_SSleepOp : ROCDL_ConcreteNonMemIntrOp<"s.sleep", [], 0, [0], ["count"]>,
+ Arguments<(ins I32Attr:$count)> {
+ let assemblyFormat = "attr-dict $count";
+}
+
def ROCDL_SBarrierOp : ROCDL_ConcreteNonMemIntrOp<"s.barrier", [], 0> {
let assemblyFormat = "attr-dict";
}
diff --git a/mlir/test/Dialect/LLVMIR/rocdl.mlir b/mlir/test/Dialect/LLVMIR/rocdl.mlir
index 0503c2a15860b..a6a29bf858e59 100644
--- a/mlir/test/Dialect/LLVMIR/rocdl.mlir
+++ b/mlir/test/Dialect/LLVMIR/rocdl.mlir
@@ -923,6 +923,13 @@ llvm.func @rocdl.s.waitcnt() {
llvm.return
}
+llvm.func @rocdl.s.sleep() {
+ // CHECK-LABEL: rocdl.s.sleep
+ // CHECK: rocdl.s.sleep 0
+ rocdl.s.sleep 0
+ llvm.return
+}
+
llvm.func @rocdl.s.barrier() {
// CHECK-LABEL: rocdl.s.barrier
// CHECK: rocdl.s.barrier
diff --git a/mlir/test/Target/LLVMIR/rocdl.mlir b/mlir/test/Target/LLVMIR/rocdl.mlir
index a6a03c586dd25..0742eb3620a7c 100644
--- a/mlir/test/Target/LLVMIR/rocdl.mlir
+++ b/mlir/test/Target/LLVMIR/rocdl.mlir
@@ -151,6 +151,13 @@ llvm.func @rocdl.s.waitcnt() {
llvm.return
}
+llvm.func @rocdl.s.sleep() {
+ // CHECK-LABEL: rocdl.s.sleep
+ // CHECK-NEXT: call void @llvm.amdgcn.s.sleep(i32 0)
+ rocdl.s.sleep 0
+ llvm.return
+}
+
llvm.func @rocdl.s.barrier() {
// CHECK-LABEL: rocdl.s.barrier
// CHECK-NEXT: call void @llvm.amdgcn.s.barrier()
More information about the Mlir-commits
mailing list