[Mlir-commits] [mlir] [ROCDL] Added BallotOp and lit test (PR #84856)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Mar 11 17:08:39 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
@llvm/pr-subscribers-mlir-llvm
Author: Zahi Moudallal (zahimoud)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/84856.diff
2 Files Affected:
- (modified) mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td (+10)
- (modified) mlir/test/Target/LLVMIR/rocdl.mlir (+7)
``````````diff
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
index 32b5a1c016b6f8..1a0b13e94cd7c0 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
@@ -158,6 +158,16 @@ Arguments<(ins I32:$index,
}];
}
+def ROCDL_BallotOp :
+ ROCDL_Op<"ballot">,
+ Results<(outs LLVM_Type:$res)>,
+ Arguments<(ins LLVM_Type:$pred)> {
+ string llvmBuilder = [{
+ $res = createIntrinsicCall(builder,
+ llvm::Intrinsic::amdgcn_ballot, {$pred});
+ }];
+ let hasCustomAssemblyFormat = 1;
+}
//===----------------------------------------------------------------------===//
// Thread index and Block index
diff --git a/mlir/test/Target/LLVMIR/rocdl.mlir b/mlir/test/Target/LLVMIR/rocdl.mlir
index d35acb0475e6f8..af16a6d325080a 100644
--- a/mlir/test/Target/LLVMIR/rocdl.mlir
+++ b/mlir/test/Target/LLVMIR/rocdl.mlir
@@ -88,6 +88,13 @@ llvm.func @rocdl.bpermute(%src : i32) -> i32 {
llvm.return %0 : i32
}
+llvm.func @rocdl.ballot(%pred : i1) -> i32 {
+ // CHECK-LABEL: rocdl.ballot
+ // CHECK: call i32 @llvm.amdgcn.ballot
+ %0 = rocdl.ballot %pred : (i1) -> i32
+ llvm.return %0 : i32
+}
+
llvm.func @rocdl.waitcnt() {
// CHECK-LABEL: rocdl.waitcnt
// CHECK-NEXT: call void @llvm.amdgcn.s.waitcnt(i32 0)
``````````
</details>
https://github.com/llvm/llvm-project/pull/84856
More information about the Mlir-commits
mailing list