[Mlir-commits] [mlir] [MLIR][NVVM] Fix results-check for mbarrier Op (PR #171657)
Durgadoss R
llvmlistbot at llvm.org
Fri Dec 12 05:33:39 PST 2025
https://github.com/durga4github updated https://github.com/llvm/llvm-project/pull/171657
>From 9141b611632699272f51bf3aa2b41749cc20fb86 Mon Sep 17 00:00:00 2001
From: Durgadoss R <durgadossr at nvidia.com>
Date: Wed, 10 Dec 2025 23:01:40 +0530
Subject: [PATCH] [MLIR][NVVM] Fix results-check for mbarrier Op
This patch fixes the lowering of the newly
added mbarrier.arrive Op w.r.t return value.
(Follow-up of PR #170545)
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
---
mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td | 6 ++----
mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir | 13 +++++++++++++
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
index 51d310970fda9..6ca2032b27a3e 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
@@ -785,8 +785,7 @@ def NVVM_MBarrierArriveOp : NVVM_Op<"mbarrier.arrive"> {
auto [id, args] = NVVM::MBarrierArriveOp::getIntrinsicIDAndArgs(
*op, moduleTranslation, builder);
- int addrSpace = llvm::cast<LLVMPointerType>(op.getAddr().getType()).getAddressSpace();
- if (addrSpace != static_cast<unsigned>(NVVM::NVVMMemorySpace::SharedCluster))
+ if (op.getNumResults() > 0)
$res = createIntrinsicCall(builder, id, args);
else
createIntrinsicCall(builder, id, args);
@@ -827,8 +826,7 @@ def NVVM_MBarrierArriveDropOp : NVVM_Op<"mbarrier.arrive_drop"> {
auto [id, args] = NVVM::MBarrierArriveDropOp::getIntrinsicIDAndArgs(
*op, moduleTranslation, builder);
- int addrSpace = llvm::cast<LLVMPointerType>(op.getAddr().getType()).getAddressSpace();
- if (addrSpace != static_cast<unsigned>(NVVM::NVVMMemorySpace::SharedCluster))
+ if (op.getNumResults() > 0)
$res = createIntrinsicCall(builder, id, args);
else
createIntrinsicCall(builder, id, args);
diff --git a/mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir b/mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir
index 6e7e1636c1de5..3a4e06636e96f 100644
--- a/mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir
+++ b/mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir
@@ -101,3 +101,16 @@ llvm.func @mbarrier_arrive_nocomplete_shared(%barrier: !llvm.ptr<3>) {
%0 = nvvm.mbarrier.arrive.nocomplete %barrier, %count : !llvm.ptr<3>, i32 -> i64
llvm.return
}
+
+llvm.func @mbarrier_arrive_ignore_retval(%count : i32, %barrier: !llvm.ptr<3>) {
+ // CHECK-LABEL: define void @mbarrier_arrive_ignore_retval(i32 %0, ptr addrspace(3) %1) {
+ // CHECK-NEXT: %3 = call i64 @llvm.nvvm.mbarrier.arrive.scope.cta.space.cta(ptr addrspace(3) %1, i32 %0)
+ // CHECK-NEXT: %4 = call i64 @llvm.nvvm.mbarrier.arrive.scope.cta.space.cta(ptr addrspace(3) %1, i32 %0)
+ // CHECK-NEXT: ret void
+ // CHECK-NEXT: }
+ nvvm.mbarrier.arrive %barrier, %count : !llvm.ptr<3>
+ nvvm.mbarrier.arrive %barrier, %count : !llvm.ptr<3>
+
+ llvm.return
+}
+
More information about the Mlir-commits
mailing list