[Mlir-commits] [mlir] [MLIR][NVVM] Add support for match.sync Op (PR #130718)
Durgadoss R
llvmlistbot at llvm.org
Tue Mar 11 03:06:43 PDT 2025
================
@@ -2583,6 +2583,52 @@ def NVVM_MapaOp: NVVM_Op<"mapa",
let assemblyFormat = "$a`,` $b attr-dict `:` type($a) `->` type($res)";
}
+//===----------------------------------------------------------------------===//
+// NVVM match.sync Op
+//===----------------------------------------------------------------------===//
+
+def MatchSyncKindAny : I32EnumAttrCase<"any", 0>;
+def MatchSyncKindAll : I32EnumAttrCase<"all", 1>;
+
+def MatchSyncKind : I32EnumAttr<"MatchSyncKind", "NVVM match sync kind",
+ [MatchSyncKindAny, MatchSyncKindAll]> {
+ let genSpecializedAttr = 0;
+ let cppNamespace = "::mlir::NVVM";
+}
+
+def MatchSyncKindAttr : EnumAttr<NVVM_Dialect, MatchSyncKind, "match_sync_kind">;
+
+def NVVM_MatchSyncOp : NVVM_Op<"match.sync">,
+ Results<(outs LLVM_Type:$res)>,
+ Arguments<(ins I32:$thread_mask,
+ AnyTypeOf<[I32, I64]>:$val,
+ MatchSyncKindAttr:$kind)> {
+ let summary = "NVVM Dialect Op for match.sync";
----------------
durga4github wrote:
For summary: "Broadcast and compare a value across threads in warp"
https://github.com/llvm/llvm-project/pull/130718
More information about the Mlir-commits
mailing list