| // 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 |
| } |
| } |