1// RUN: mlir-opt %s --transform-interpreter -allow-unregistered-dialect --split-input-file --verify-diagnostics 2 3module attributes {transform.with_named_sequence} { 4 transform.named_sequence @__transform_main(%root: !transform.any_op) { 5 transform.with_pdl_patterns %root : !transform.any_op { 6 ^bb0(%arg0: !transform.any_op): 7 sequence %arg0 : !transform.any_op failures(propagate) { 8 ^bb0(%arg1: !transform.any_op): 9 %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op 10 transform.debug.emit_remark_at %0, "matched" : !transform.any_op 11 } 12 13 pdl.pattern @some : benefit(1) { 14 %0 = pdl.operation "test.some_op" 15 pdl.rewrite %0 with "transform.dialect" 16 } 17 18 pdl.pattern @other : benefit(1) { 19 %0 = pdl.operation "test.other_op" 20 pdl.rewrite %0 with "transform.dialect" 21 } 22 } 23 transform.yield 24 } 25} 26 27// expected-remark @below {{matched}} 28"test.some_op"() : () -> () 29"test.other_op"() : () -> () 30// expected-remark @below {{matched}} 31"test.some_op"() : () -> () 32 33 34// ----- 35 36module attributes {transform.with_named_sequence} { 37 transform.named_sequence @__transform_main(%root: !transform.any_op) { 38 transform.with_pdl_patterns %root : !transform.any_op { 39 ^bb0(%arg0: !transform.any_op): 40 sequence %arg0 : !transform.any_op failures(propagate) { 41 ^bb1(%arg1: !transform.any_op): 42 %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op 43 } 44 45 pdl.pattern @some : benefit(1) { 46 %0 = pdl.operation "test.some_op" 47 pdl.apply_native_constraint "verbose_constraint"(%0 : !pdl.operation) 48 pdl.rewrite %0 with "transform.dialect" 49 } 50 } 51 transform.yield 52 } 53} 54 55// expected-warning @below {{from PDL constraint}} 56"test.some_op"() : () -> () 57"test.other_op"() : () -> () 58