// RUN: mlir-opt %s --transform-interpreter --allow-unregistered-dialect --verify-diagnostics | FileCheck %s // RUN: mlir-opt %s --transform-interpreter --allow-unregistered-dialect --verify-diagnostics \ // RUN: --mlir-print-debuginfo | FileCheck %s --check-prefix=CHECK-LOC func.func @nested_ops() { "test.qux"() ({ // expected-error @below{{fail_to_verify is set}} "test.baz"() ({ "test.bar"() : () -> () }) : () -> () }) : () -> () } module attributes {transform.with_named_sequence} { transform.named_sequence @__transform_main(%arg0: !transform.any_op) { // CHECK-LABEL{LITERAL}: [[[ IR printer: START top-level ]]] // CHECK-NEXT: module { // CHECK-LOC-LABEL{LITERAL}: [[[ IR printer: START top-level ]]] // CHECK-LOC-NEXT: #{{.+}} = loc( // CHECK-LOC-NEXT: module { transform.print {name = "START"} // CHECK{LITERAL}: [[[ IR printer: Local scope top-level ]]] // CHECK-NEXT: module { // CHECK-LOC{LITERAL}: [[[ IR printer: Local scope top-level ]]] // CHECK-LOC-NEXT: module { transform.print {name = "Local scope", use_local_scope} %baz = transform.structured.match ops{["test.baz"]} in %arg0 : (!transform.any_op) -> !transform.any_op // CHECK{LITERAL}: [[[ IR printer: ]]] // CHECK-NEXT: "test.baz"() ({ // CHECK-NEXT: "test.bar"() : () -> () // CHECK-NEXT: }) : () -> () transform.print %baz : !transform.any_op // CHECK{LITERAL}: [[[ IR printer: Baz ]]] // CHECK-NEXT: "test.baz"() ({ transform.print %baz {name = "Baz"} : !transform.any_op // CHECK{LITERAL}: [[[ IR printer: No region ]]] // CHECK-NEXT: "test.baz"() ({...}) : () -> () transform.print %baz {name = "No region", skip_regions} : !transform.any_op // CHECK{LITERAL}: [[[ IR printer: No verify ]]] // CHECK-NEXT: "test.baz"() ({ // CHECK-NEXT: transform.test_dummy_payload_op {fail_to_verify} : () -> () transform.test_produce_invalid_ir %baz : !transform.any_op transform.print %baz {name = "No verify", assume_verified} : !transform.any_op // CHECK-LABEL{LITERAL}: [[[ IR printer: END top-level ]]] transform.print {name = "END"} transform.yield } }