104 lines · plain
1// RUN: mlir-opt %s --pass-pipeline="builtin.module(transform-interpreter{\2// RUN: debug-bind-trailing-args=func.func,func.return})" \3// RUN: --split-input-file --verify-diagnostics4 5module attributes {transform.with_named_sequence} {6 transform.named_sequence @__transform_main(7 %arg0: !transform.any_op, %arg1: !transform.any_op,8 %arg2: !transform.any_op) {9 transform.debug.emit_remark_at %arg1, "first extra" : !transform.any_op10 transform.debug.emit_remark_at %arg2, "second extra" : !transform.any_op11 transform.yield12 }13}14 15// expected-remark @below {{first extra}}16func.func @foo() {17 // expected-remark @below {{second extra}}18 return19}20 21// expected-remark @below {{first extra}}22func.func @bar(%arg0: i1) {23 cf.cond_br %arg0, ^bb1, ^bb224^bb1:25 // expected-remark @below {{second extra}}26 return27^bb2:28 // expected-remark @below {{second extra}}29 return30}31 32// -----33 34module attributes {transform.with_named_sequence} {35 transform.named_sequence @__transform_main(36 %arg0: !transform.any_op, %arg1: !transform.any_op,37 %arg2: !transform.param<i64>) {38 // expected-error @above {{wrong kind of value provided for top-level parameter}}39 transform.yield40 }41}42 43func.func @foo() {44 return45}46 47// -----48 49module attributes {transform.with_named_sequence} {50 transform.named_sequence @__transform_main(51 %arg0: !transform.any_op, %arg1: !transform.any_op,52 %arg2: !transform.any_value) {53 // expected-error @above {{wrong kind of value provided for the top-level value handle}}54 transform.yield55 }56}57 58func.func @foo() {59 return60}61 62// -----63 64 65module attributes {transform.with_named_sequence} {66 // expected-error @below {{operation expects 1 extra value bindings, but 2 were provided to the interpreter}}67 transform.named_sequence @__transform_main(68 %arg0: !transform.any_op, %arg1: !transform.any_op) {69 transform.yield70 }71}72 73// -----74 75module attributes {transform.with_named_sequence} {76 transform.named_sequence @__transform_main(77 %arg0: !transform.any_op, %arg1: !transform.any_op,78 %arg2: !transform.any_op) {79 transform.sequence %arg0, %arg1, %arg2 : !transform.any_op, !transform.any_op, !transform.any_op failures(propagate) {80 ^bb0(%arg3: !transform.any_op, %arg4: !transform.any_op, %arg5: !transform.any_op):81 transform.debug.emit_remark_at %arg4, "first extra" : !transform.any_op82 transform.debug.emit_remark_at %arg5, "second extra" : !transform.any_op83 }84 transform.yield85 }86}87 88// expected-remark @below {{first extra}}89func.func @foo() {90 // expected-remark @below {{second extra}}91 return92}93 94// expected-remark @below {{first extra}}95func.func @bar(%arg0: i1) {96 cf.cond_br %arg0, ^bb1, ^bb297^bb1:98 // expected-remark @below {{second extra}}99 return100^bb2:101 // expected-remark @below {{second extra}}102 return103}104