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