xref: /llvm-project/mlir/test/Dialect/Transform/test-interpreter-printing.mlir (revision a8cfa7cbdf6cc1a94ed25c90897d2e031f77a5a9)
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