1// RUN: mlir-opt %s --transform-interpreter --allow-unregistered-dialect --verify-diagnostics | FileCheck %s 2 3// RUN: mlir-opt %s --transform-interpreter --allow-unregistered-dialect --verify-diagnostics \ 4// RUN: --mlir-print-debuginfo | FileCheck %s --check-prefix=CHECK-LOC 5 6func.func @nested_ops() { 7 "test.qux"() ({ 8 // expected-error @below{{fail_to_verify is set}} 9 "test.baz"() ({ 10 "test.bar"() : () -> () 11 }) : () -> () 12 }) : () -> () 13} 14 15module attributes {transform.with_named_sequence} { 16 transform.named_sequence @__transform_main(%arg0: !transform.any_op) { 17 // CHECK-LABEL{LITERAL}: [[[ IR printer: START top-level ]]] 18 // CHECK-NEXT: module { 19 // CHECK-LOC-LABEL{LITERAL}: [[[ IR printer: START top-level ]]] 20 // CHECK-LOC-NEXT: #{{.+}} = loc( 21 // CHECK-LOC-NEXT: module { 22 transform.print {name = "START"} 23 24 // CHECK{LITERAL}: [[[ IR printer: Local scope top-level ]]] 25 // CHECK-NEXT: module { 26 // CHECK-LOC{LITERAL}: [[[ IR printer: Local scope top-level ]]] 27 // CHECK-LOC-NEXT: module { 28 transform.print {name = "Local scope", use_local_scope} 29 30 %baz = transform.structured.match ops{["test.baz"]} in %arg0 : (!transform.any_op) -> !transform.any_op 31 32 // CHECK{LITERAL}: [[[ IR printer: ]]] 33 // CHECK-NEXT: "test.baz"() ({ 34 // CHECK-NEXT: "test.bar"() : () -> () 35 // CHECK-NEXT: }) : () -> () 36 transform.print %baz : !transform.any_op 37 38 // CHECK{LITERAL}: [[[ IR printer: Baz ]]] 39 // CHECK-NEXT: "test.baz"() ({ 40 transform.print %baz {name = "Baz"} : !transform.any_op 41 42 // CHECK{LITERAL}: [[[ IR printer: No region ]]] 43 // CHECK-NEXT: "test.baz"() ({...}) : () -> () 44 transform.print %baz {name = "No region", skip_regions} : !transform.any_op 45 46 // CHECK{LITERAL}: [[[ IR printer: No verify ]]] 47 // CHECK-NEXT: "test.baz"() ({ 48 // CHECK-NEXT: transform.test_dummy_payload_op {fail_to_verify} : () -> () 49 transform.test_produce_invalid_ir %baz : !transform.any_op 50 transform.print %baz {name = "No verify", assume_verified} : !transform.any_op 51 52 // CHECK-LABEL{LITERAL}: [[[ IR printer: END top-level ]]] 53 transform.print {name = "END"} 54 transform.yield 55 } 56} 57