// 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 }