| // RUN: mlir-opt %s | mlir-opt | FileCheck %s |
| |
| transform.sequence failures(propagate) { |
| ^bb0(%arg0: !transform.any_op): |
| transform.match.structured %arg0 : !transform.any_op { |
| ^bb1(%arg1: !transform.any_op): |
| // Checking the syntax of positional specifications. |
| // CHECK: dim %{{.*}}[all] |
| transform.match.structured.dim %arg1[all] : !transform.any_op |
| // CHECK: dim %{{.*}}[0] |
| transform.match.structured.dim %arg1[0] : !transform.any_op |
| // CHECK: dim %{{.*}}[0, 1, -2] |
| transform.match.structured.dim %arg1[0, 1, -2] : !transform.any_op |
| // CHECK: dim %{{.*}}[except(0)] |
| transform.match.structured.dim %arg1[except(0)] : !transform.any_op |
| // CHECK: dim %{{.*}}[except(0, -1, 2)] |
| transform.match.structured.dim %arg1[except(0, -1, 2)] : !transform.any_op |
| |
| transform.match.structured.yield |
| } |
| |
| // Checking the syntax of trailing types. |
| // CHECK: structured %{{.*}} : !transform.any_op |
| transform.match.structured %arg0 : !transform.any_op { |
| ^bb1(%arg1: !transform.any_op): |
| transform.match.structured.yield |
| } |
| // CHECK: structured %{{.*}} : (!transform.any_op) -> !transform.any_op |
| transform.match.structured %arg0 : (!transform.any_op) -> !transform.any_op { |
| ^bb1(%arg1: !transform.any_op): |
| transform.match.structured.yield %arg1 : !transform.any_op |
| } |
| // CHECK: structured %{{.*}} : (!transform.any_op) -> (!transform.any_op, !transform.any_op) |
| transform.match.structured %arg0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op) { |
| ^bb1(%arg1: !transform.any_op): |
| transform.match.structured.yield %arg1, %arg1 : !transform.any_op, !transform.any_op |
| } |
| |
| transform.yield |
| } |