xref: /llvm-project/mlir/test/Dialect/Linalg/match-ops.mlir (revision 3fe7127d48fde531901c795826b566d93dbf1ea4)
1// RUN: mlir-opt %s | mlir-opt | FileCheck %s
2
3transform.sequence failures(propagate) {
4^bb0(%arg0: !transform.any_op):
5  transform.match.structured %arg0 : !transform.any_op {
6  ^bb1(%arg1: !transform.any_op):
7    // Checking the syntax of positional specifications.
8    // CHECK: dim %{{.*}}[all]
9    transform.match.structured.dim %arg1[all] : !transform.any_op
10    // CHECK: dim %{{.*}}[0]
11    transform.match.structured.dim %arg1[0] : !transform.any_op
12    // CHECK: dim %{{.*}}[0, 1, -2]
13    transform.match.structured.dim %arg1[0, 1, -2] : !transform.any_op
14    // CHECK: dim %{{.*}}[except(0)]
15    transform.match.structured.dim %arg1[except(0)] : !transform.any_op
16    // CHECK: dim %{{.*}}[except(0, -1, 2)]
17    transform.match.structured.dim %arg1[except(0, -1, 2)] : !transform.any_op
18
19    transform.match.structured.yield
20  }
21
22  // Checking the syntax of trailing types.
23  // CHECK: structured %{{.*}} : !transform.any_op
24  transform.match.structured %arg0 : !transform.any_op {
25  ^bb1(%arg1: !transform.any_op):
26    transform.match.structured.yield
27  }
28  // CHECK: structured %{{.*}} : (!transform.any_op) -> !transform.any_op
29  transform.match.structured %arg0 : (!transform.any_op) -> !transform.any_op {
30  ^bb1(%arg1: !transform.any_op):
31    transform.match.structured.yield %arg1 : !transform.any_op
32  }
33  // CHECK: structured %{{.*}} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
34  transform.match.structured %arg0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op) {
35  ^bb1(%arg1: !transform.any_op):
36    transform.match.structured.yield %arg1, %arg1 : !transform.any_op, !transform.any_op
37  }
38
39  transform.yield
40}
41