brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · e8c0b7a Raw
96 lines · plain
1// RUN: mlir-opt %s -transform-interpreter -verify-diagnostics -split-input-file2 3// expected-note @below {{associated payload op}}4module attributes {transform.with_named_sequence} {5  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {6    // expected-remark @below {{extension absent}}7    transform.test_check_if_test_extension_present %arg0 : !transform.any_op8    transform.test_add_test_extension "A"9    // expected-remark @below {{extension present, A}}10    transform.test_check_if_test_extension_present %arg0 : !transform.any_op11    transform.test_remove_test_extension12    // expected-remark @below {{extension absent}}13    transform.test_check_if_test_extension_present %arg0 : !transform.any_op14    transform.yield15  }16}17 18// -----19 20// expected-note @below {{associated payload op}}21module attributes {transform.with_named_sequence} {22  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {23    transform.test_add_test_extension "A"24    transform.test_remove_test_extension25    transform.test_add_test_extension "B"26    // expected-remark @below {{extension present, B}}27    transform.test_check_if_test_extension_present %arg0 : !transform.any_op28    transform.yield29  }30}31 32// -----33 34// expected-note @below {{associated payload op}}35module attributes {transform.with_named_sequence} {36  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {37    transform.test_add_test_extension "A"38    // expected-remark @below {{extension present, A}}39    transform.test_check_if_test_extension_present %arg0 : !transform.any_op40    // expected-note @below {{associated payload op}}41    transform.test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op42    // expected-remark @below {{extension present, A}}43    transform.test_check_if_test_extension_present %arg0 : !transform.any_op44    transform.yield45  }46}47 48// -----49 50module attributes {transform.with_named_sequence} {51  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {52    transform.test_add_test_extension "A"53     // This is okay because we are replacing the top-level module operation54     // (0 results) with this operation that has _more_ (1) results.55    %dummy = transform.test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op56    transform.yield57  }58}59 60// -----61 62module attributes {transform.with_named_sequence} {63  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {64    transform.test_add_test_extension "A"65    %dummy = transform.test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op66    // This is still okay. Even though we are replacing the previous67    // operation with (1 result) with this operation that has less (0) results,68    // there is no handle to the result, hence no issue with value handle update.69    transform.test_remap_operand_to_self %dummy : (!transform.any_op) -> !transform.any_op70    transform.yield71  }72}73 74// -----75 76module attributes {transform.with_named_sequence} {77  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {78    transform.test_add_test_extension "A"79    // expected-error @below {{cannot replace an op with another op producing fewer results while tracking handles}}80    %dummy = transform.test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op81    %valuehandle = transform.get_result %dummy[0] : (!transform.any_op) -> !transform.any_value82    transform.test_remap_operand_to_self %dummy : (!transform.any_op) -> ()83    transform.yield84  }85}86 87// -----88 89module attributes {transform.with_named_sequence} {90  transform.named_sequence @__transform_main(%arg0: !transform.any_op) {91    // expected-error @below {{TestTransformStateExtension missing}}92    transform.test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op93    transform.yield94  }95}96