@@ -289,7 +289,8 @@ def TTNG_InvalBarrierOp : TTNG_Op<"inval_barrier", [
289289}
290290
291291def TTNG_BarrierExpectOp : TTNG_Op<"barrier_expect", [
292- DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>]> {
292+ DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>,
293+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
293294 let summary = "Signal a barrier of an expected number of bytes to be copied.";
294295
295296 let description = [{
@@ -307,10 +308,12 @@ def TTNG_BarrierExpectOp : TTNG_Op<"barrier_expect", [
307308 let assemblyFormat = [{
308309 $alloc `,` $size attr-dict `,` $pred `:` qualified(type($alloc))
309310 }];
311+
310312}
311313
312314def TTNG_WaitBarrierOp : TTNG_Op<"wait_barrier", [AttrSizedOperandSegments,
313- DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>]> {
315+ DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>,
316+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
314317 let summary = "wait until the mbarrier phase completes.";
315318
316319 let description = [{
@@ -357,7 +360,8 @@ def TTNG_WaitBarrierOp : TTNG_Op<"wait_barrier", [AttrSizedOperandSegments,
357360}
358361
359362def TTNG_ArriveBarrierOp : TTNG_Op<"arrive_barrier", [
360- DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>]> {
363+ DeclareOpInterfaceMethods<MBarrierOpInterface, ["getBarrier"]>,
364+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
361365 let summary = "perform the arrive operation on an mbarrier";
362366 let description = [{
363367 The `ttng.arrive_barrier` operation performs the "arrive" operation on an
@@ -406,7 +410,8 @@ def TTNG_AsyncCopyMbarrierArriveOp : TTNG_Op<"async_copy_mbarrier_arrive", [
406410
407411
408412def TTNG_AsyncTMACopyGlobalToLocalOp : TTNG_Op<"async_tma_copy_global_to_local", [
409- AttrSizedOperandSegments, DeclareOpInterfaceMethods<MBarrierOpInterface>]> {
413+ AttrSizedOperandSegments, DeclareOpInterfaceMethods<MBarrierOpInterface>,
414+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
410415 let summary = "copy data based on descriptor from global memory to local memory asynchronously";
411416
412417 let description = [{
@@ -466,6 +471,7 @@ def TTNG_AsyncTMACopyGlobalToLocalOp : TTNG_Op<"async_tma_copy_global_to_local",
466471 oilist(`cacheModifier` `=` $cache | `evictionPolicy` `=` $evict)
467472 attr-dict `:` qualified(type($desc)) `,` qualified(type($barrier)) `->` qualified(type($result))
468473 }];
474+
469475}
470476
471477def TTNG_AsyncTMACopyLocalToGlobalOp : TTNG_Op<"async_tma_copy_local_to_global"> {
@@ -517,7 +523,8 @@ def TTNG_AsyncTMAReduceOp : TTNG_Op<"async_tma_reduce", [MemoryEffects<[MemRead<
517523}
518524
519525def TTNG_AsyncTMAGatherOp : TTNG_Op<"async_tma_gather", [
520- DeclareOpInterfaceMethods<MBarrierOpInterface>]> {
526+ DeclareOpInterfaceMethods<MBarrierOpInterface>,
527+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
521528 let summary = "gather data based on descriptor from global memory to local memory asynchronously";
522529
523530 let description = [{
@@ -584,6 +591,7 @@ def TTNG_TCGen5MMAOp : TTNG_Op<"tc_gen5_mma", [
584591 DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
585592 DeclareOpInterfaceMethods<DotOpInterface>,
586593 DeclareOpInterfaceMethods<MMAv5OpInterface>,
594+ DeclareOpInterfaceMethods<PredicatedOpInterface>,
587595 DeclareOpInterfaceMethods<MBarrierOpInterface>,
588596 AttrSizedOperandSegments
589597]> {
@@ -645,6 +653,7 @@ def TTNG_TCGen5MMAScaledOp : TTNG_Op<"tc_gen5_mma_scaled", [
645653 DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
646654 DeclareOpInterfaceMethods<DotOpInterface, ["verifyDims", "verifyOutputDims"]>,
647655 DeclareOpInterfaceMethods<MMAv5OpInterface>,
656+ DeclareOpInterfaceMethods<PredicatedOpInterface>,
648657 DeclareOpInterfaceMethods<MBarrierOpInterface>,
649658 AttrSizedOperandSegments
650659]> {
@@ -715,7 +724,8 @@ def TTNG_TCGen5MMAScaledOp : TTNG_Op<"tc_gen5_mma_scaled", [
715724}
716725
717726def TTNG_TCGen5CommitOp : TTNG_Op<"tc_gen5_commit", [AttrSizedOperandSegments,
718- DeclareOpInterfaceMethods<MBarrierOpInterface>]> {
727+ DeclareOpInterfaceMethods<MBarrierOpInterface>,
728+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
719729 let summary = "make an mbarrier track completion of all prior async tcgen5 ops";
720730
721731 let description = [{
@@ -858,7 +868,8 @@ def TTNG_TMEMLoadOp : TTNG_Op<"tmem_load", [AttrSizedResultSegments]> {
858868 }];
859869}
860870
861- def TTNG_TMEMStoreOp : TTNG_Op<"tmem_store"> {
871+ def TTNG_TMEMStoreOp : TTNG_Op<"tmem_store", [
872+ DeclareOpInterfaceMethods<PredicatedOpInterface>]> {
862873 let summary = "Store a distributed tensor into a buffer in tensor memory";
863874
864875 let description = [{
0 commit comments