[Mlir-commits] [mlir] [MLIR][Transform] Enable strict property assembly format (PR #217290)

Mehdi Amini llvmlistbot at llvm.org
Wed Aug 19 03:51:56 PDT 2026


https://github.com/joker-eph created https://github.com/llvm/llvm-project/pull/217290

Enable strict property assembly format mode for the Transform dialect and its extensions. Bind transform operation options directly in declarative assembly formats so strict parsing does not rely on fallback handling.

Update transform dialect, extension, and transform-driven tests to use the direct property spelling.

Assisted-by: Codex

>From 223c4ba1420a356a53f970bdc46d167a1d8e76ea Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Wed, 6 May 2026 16:50:11 -0700
Subject: [PATCH] [MLIR][Transform] Enable strict property assembly format

Enable strict property assembly format mode for the Transform dialect and its
extensions. Bind transform operation options directly in declarative assembly
formats so strict parsing does not rely on fallback handling.

Update transform dialect, extension, and transform-driven tests to use the
direct property spelling.

Assisted-by: Codex
---
 .../Affine/TransformOps/AffineTransformOps.td |   3 +-
 .../TransformOps/ArmNeonVectorTransformOps.td |   4 +-
 .../TransformOps/ArmSVEVectorTransformOps.td  |   4 +-
 .../TransformOps/BufferizationTransformOps.td |  11 +-
 .../Func/TransformOps/FuncTransformOps.td     |   4 +-
 .../GPU/TransformOps/GPUTransformOps.td       |  14 +-
 .../Linalg/TransformOps/LinalgMatchOps.td     |  31 ++--
 .../Linalg/TransformOps/LinalgTransformOps.td | 102 +++++------
 .../MemRef/TransformOps/MemRefTransformOps.td |  24 +--
 .../NVGPU/TransformOps/NVGPUTransformOps.td   |  15 +-
 .../SCF/TransformOps/SCFTransformOps.td       |  19 +--
 .../Tensor/TransformOps/TensorTransformOps.td |  18 +-
 .../DebugExtension/DebugExtensionOps.td       |   2 +-
 .../Dialect/Transform/IR/TransformDialect.td  |   1 +
 .../mlir/Dialect/Transform/IR/TransformOps.td |  22 ++-
 .../TuneExtension/TuneExtensionOps.td         |   3 +-
 .../Vector/TransformOps/VectorTransformOps.td |  58 ++++---
 .../X86/TransformOps/X86TransformOps.td       |  12 +-
 .../XeGPU/TransformOps/XeGPUTransformOps.td   |  12 +-
 mlir/test/CAPI/transform_interpreter.c        |   2 +-
 .../FuncToLLVM/func-memref-return.mlir        |   7 +-
 .../Conversion/FuncToLLVM/func-to-llvm.mlir   |   7 +-
 .../Conversion/GPUToNVVM/gpu-to-nvvm-32b.mlir |  14 +-
 .../Conversion/GPUToNVVM/gpu-to-nvvm.mlir     |  15 +-
 .../Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir |   4 +-
 .../Transforms/transform-ops.mlir             |   8 +-
 mlir/test/Dialect/Func/func-transform.mlir    |   6 +-
 .../Dialect/GPU/transform-gpu-failing.mlir    |  37 ++--
 mlir/test/Dialect/GPU/transform-gpu.mlir      |  36 ++--
 .../lower-to-llvm-transform-symbol-def.mlir   |  10 +-
 mlir/test/Dialect/LLVM/transform-e2e.mlir     |   4 +-
 .../Linalg/continuous-tiling-full.mlir        |  12 +-
 .../continuous-tiling-multiway-split.mlir     |   8 +-
 .../Linalg/convert-conv2d-to-img2col.mlir     |  24 +--
 mlir/test/Dialect/Linalg/hoisting.mlir        |   8 +-
 .../Dialect/Linalg/match-ops-interpreter.mlir |  28 ++--
 .../Dialect/Linalg/match-ops-invalid.mlir     |  24 +--
 .../Linalg/matmul-shared-memory-padding.mlir  |  20 +--
 .../Dialect/Linalg/multisize-tiling-full.mlir |  16 +-
 .../Linalg/pad-to-specific-memory-space.mlir  |  22 +--
 mlir/test/Dialect/Linalg/promote.mlir         |   8 +-
 .../Dialect/Linalg/promotion_options.mlir     |   4 +-
 .../Dialect/Linalg/td/decompose-pack.mlir     |   2 +-
 .../Dialect/Linalg/td/decompose-unpack.mlir   |   2 +-
 .../Linalg/td/propagate-data-layout.mlir      |   2 +-
 .../Linalg/td/vectorize-with-patterns.mlir    |   4 +-
 .../Dialect/Linalg/transform-lower-pack.mlir  |   4 +-
 .../transform-op-bufferize-to-allocation.mlir |  20 +--
 .../Dialect/Linalg/transform-op-fuse.mlir     |  40 ++---
 ...-op-hoist-pad-build-packing-loop-nest.mlir |  25 +--
 .../Linalg/transform-op-hoist-pad.mlir        |  30 +---
 .../Linalg/transform-op-multitile-sizes.mlir  |   8 +-
 ...m-op-pad-tiling-interface-multiple-of.mlir |  44 ++---
 .../transform-op-pad-tiling-interface.mlir    |  16 +-
 .../test/Dialect/Linalg/transform-op-pad.mlir |  83 ++-------
 ...-rewrite-in-destination-passing-style.mlir |   6 +-
 .../transform-op-specialize-matmul.mlir       |   2 +-
 ...ansform-op-split-reduction-by-scaling.mlir |   2 +-
 .../Linalg/transform-op-split-reduction.mlir  |  20 +--
 .../Dialect/Linalg/transform-op-split.mlir    |  22 +--
 .../Linalg/transform-op-vectorize.mlir        |  12 +-
 .../Dialect/Linalg/transform-ops-invalid.mlir |   8 +-
 mlir/test/Dialect/Linalg/transform-ops.mlir   |   4 +-
 .../Dialect/Linalg/transform-promotion.mlir   |   8 +-
 .../transform-tile-and-fuse-pack-unpack.mlir  |   4 +-
 .../Linalg/transform-winograd-conv2d.mlir     |  10 +-
 .../vectorization/contraction-interface.mlir  |  24 +--
 .../convolution-with-patterns-flatten.mlir    |  16 +-
 .../convolution-with-patterns.mlir            |  50 +++---
 .../Dialect/Linalg/vectorization/extract.mlir |  20 +--
 .../insert-slice-with-patterns.mlir           |   8 +-
 .../linalg-ops-with-patterns.mlir             | 158 +++++++++---------
 .../Linalg/vectorization/linalg-ops.mlir      |   4 +-
 .../vectorization/pad-with-patterns.mlir      |  28 ++--
 .../Linalg/vectorization/unsupported.mlir     |   2 +-
 .../Dialect/MemRef/make-loop-independent.mlir |   4 +-
 mlir/test/Dialect/MemRef/transform-ops.mlir   |  16 +-
 .../NVGPU/transform-create-async-groups.mlir  |   8 +-
 .../NVGPU/transform-pipeline-shared.mlir      |   8 +-
 .../Dialect/SCF/transform-op-coalesce.mlir    |   2 +-
 .../Dialect/SCF/transform-ops-invalid.mlir    |  30 ++--
 mlir/test/Dialect/SCF/transform-ops.mlir      |  56 +++----
 mlir/test/Dialect/Tensor/fold-empty-op.mlir   |   2 +-
 .../transform-op-make-loop-independent.mlir   |  10 +-
 .../lower-to-llvm-transform-symbol-def.mlir   |  10 +-
 .../Transform/check-use-after-free.mlir       |   2 +-
 .../Dialect/Transform/expensive-checks.mlir   |   6 +-
 .../include/Library/lower-to-llvm.mlir        |  10 +-
 .../Transform/interpreter-entry-point-2.mlir  |   4 +-
 mlir/test/Dialect/Transform/normal-forms.mlir |  18 +-
 mlir/test/Dialect/Transform/ops-invalid.mlir  |  16 +-
 mlir/test/Dialect/Transform/ops.mlir          |  14 +-
 .../Transform/selective-targeting.mlir        |   4 +-
 .../Transform/test-dialect-injection.mlir     |   2 +-
 .../Transform/test-interpreter-printing.mlir  |  14 +-
 .../Dialect/Transform/test-interpreter.mlir   |  70 ++++----
 .../Transform/test-loop-transforms.mlir       |   2 +-
 .../Transform/test-pass-application.mlir      |  30 ++--
 .../Transform/test-pattern-application.mlir   |  24 ++-
 .../Transform/test-tune-extension.mlir        |   2 +-
 .../Vector/transform-op-vector-to-llvm.mlir   |   2 +-
 .../test/Dialect/Vector/transform-vector.mlir |   4 +-
 ...ctor-transfer-drop-unit-dims-patterns.mlir |   4 +-
 .../Examples/transform-opt/external-def.mlir  |   2 +-
 .../transform-opt/self-contained.mlir         |   2 +-
 .../transform/Ch1/invalidation-2.mlir         |   2 +-
 .../test/Examples/transform/Ch1/sequence.mlir |   2 +-
 .../test/Examples/transform/Ch2/sequence.mlir |   2 +-
 .../test/Examples/transform/Ch3/sequence.mlir |   2 +-
 .../test/Examples/transform/Ch4/features.mlir |   6 +-
 mlir/test/Examples/transform/ChH/full.mlir    |   5 +-
 mlir/test/Integration/Dialect/EmitC/td.mlir   |  13 +-
 .../CPU/ArmSVE/pack-scalable-inner-tile.mlir  |   4 +-
 .../Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir  |  12 +-
 .../Linalg/CPU/ArmSVE/td/pack-unpack.mlir     |  14 +-
 .../Integration/Dialect/Linalg/CPU/mmt4d.mlir |   2 +-
 .../Linalg/CPU/pack-dynamic-inner-tile.mlir   |   4 +-
 .../Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir |   2 +-
 .../Linalg/CPU/unpack-dynamic-inner-tile.mlir |   4 +-
 .../Transform/match_matmul_common.mlir        |   2 +-
 .../Dialect/Transform/match_reduction.mlir    |  18 +-
 .../tile-and-fuse-using-interface.mlir        |   2 +-
 .../Transforms/test-block-legalization.mlir   |   5 +-
 .../TestTransformDialectExtension.td          |  28 ++--
 .../TestTilingInterfaceTransformOps.td        |  21 +--
 125 files changed, 850 insertions(+), 1049 deletions(-)

diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td b/mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
index 8edc531e11bb5..446e54c64c0a8 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
@@ -122,8 +122,7 @@ def SuperVectorizeOp
   let assemblyFormat = [{
       $target $vector_sizes
           (`fastest_varying_pattern` `=` $fastest_varying_pattern^)? 
-          (`vectorize_reductions` `=` $vectorize_reductions^)? 
-          attr-dict `:` type($target)
+          (`vectorize_reductions` `=` $vectorize_reductions^)? attr-dict `:` type($target)
   }];
   let hasVerifier = 1;
 }
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.td b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.td
index 35747126d3db1..925d86e4e982d 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.td
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.td
@@ -21,7 +21,7 @@ def ApplyArmNeonContractionToI8MMPatternsOp
     to ArmNeon dialect operations mapping to instructions from FEAT_I8MM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyArmNeonContractionToBFMMLAPatternsOp
@@ -32,7 +32,7 @@ def ApplyArmNeonContractionToBFMMLAPatternsOp
     to ArmNeon dialect operations mapping to instructions from FEAT_BF16.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 #endif // ARM_NEON_VECTOR_TRANSFORM_OPS
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.td b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.td
index 7777e6060ea76..d24cf4768c803 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.td
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.td
@@ -20,7 +20,7 @@ def ApplyArmSVELowerContractionToI8MMPatternsOp
     to ArmSVE dialect operations mapping to instructions from FEAT_I8MM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyArmSVELowerContractionToBFMMLAPatternsOp
@@ -31,6 +31,6 @@ def ApplyArmSVELowerContractionToBFMMLAPatternsOp
     ArmSVE dialect operations mapping to instructions from FEAT_BF16.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 #endif // ARMSVE_VECTOR_TRANSFORM_OPS
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td b/mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td
index 53b3b0505b399..132d841a4aa91 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td
@@ -96,7 +96,16 @@ def OneShotBufferizeOp
   let hasVerifier = 1;
   let assemblyFormat = [{
     (`layout` `{` $function_boundary_type_conversion^ `}`)?
-    $target attr-dict `:` functional-type($target, results)
+    $target oilist(
+      `allow_return_allocs_from_loops` `=` $allow_return_allocs_from_loops |
+      `allow_unknown_ops` `=` $allow_unknown_ops |
+      `bufferize_function_boundaries` `=` $bufferize_function_boundaries |
+      `dump_alias_sets` `=` $dump_alias_sets |
+      `test_analysis_only` `=` $test_analysis_only |
+      `print_conflicts` `=` $print_conflicts |
+      `check_parallel_regions` `=` $check_parallel_regions |
+      `memcpy_op` `=` $memcpy_op
+    ) attr-dict `:` functional-type($target, results)
   }];
 }
 
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.td b/mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.td
index b64b3fcdb275b..2fbc374084eb7 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.td
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.td
@@ -25,7 +25,7 @@ def ApplyFuncToLLVMConversionPatternsOp : Op<Transform_Dialect,
     These patterns require an "LLVMTypeConverter".
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def CastAndCallOp : Op<Transform_Dialect,
@@ -130,7 +130,7 @@ def ReplaceFuncSignatureOp
     $function_name
     `args_interchange` `=` $args_interchange
     `results_interchange` `=` $results_interchange
-    `at` $module attr-dict `:` functional-type(operands, results)
+    `at` $module oilist(`adjust_func_calls` $adjust_func_calls) attr-dict `:` functional-type(operands, results)
   }];
 }
 
diff --git a/mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td b/mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
index 3a8caf8aa42e2..f8e30f75ae58b 100644
--- a/mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
+++ b/mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
@@ -27,7 +27,7 @@ def ApplyGPUToNVVMConversionPatternsOp : Op<Transform_Dialect,
     patterns require an "LLVMTypeConverter".
   }];
   let arguments = (ins DefaultValuedAttr<I16Attr, "1">:$benefit);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`benefit` `=` $benefit) attr-dict";
 }
 
 def ApplyGPUWwmaToNVVMConversionPatternsOp : Op<Transform_Dialect,
@@ -39,7 +39,7 @@ def ApplyGPUWwmaToNVVMConversionPatternsOp : Op<Transform_Dialect,
     to NVVM dialect ops.
     These patterns require an "LLVMTypeConverter".
   }];
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyGPUSubgroupReduceToNVVMConversionPatternsOp : Op<Transform_Dialect,
@@ -51,7 +51,7 @@ def ApplyGPUSubgroupReduceToNVVMConversionPatternsOp : Op<Transform_Dialect,
     to NVVM dialect ops.
     These patterns require an "LLVMTypeConverter".
   }];
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyGPUToROCDLConversionPatternsOp : Op<Transform_Dialect,
@@ -81,7 +81,7 @@ def ApplyGPURewritePatternsOp : Op<Transform_Dialect,
       2. GpuGlobalIdRewriter patterns
       3. GpuShuffleRewriter patterns
   }];
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyUnrollVectorsSubgroupMmaOp : Op<Transform_Dialect,
@@ -245,8 +245,7 @@ def MapNestedForallToThreads :
     $target
     `block_dims` `=` $block_dims
     (`sync_after_distribute` `=` $sync_after_distribute^)?
-    (`warp_size` `=` $warp_size^)?
-    attr-dict
+    (`warp_size` `=` $warp_size^)? attr-dict
     `:` functional-type($target, $result)
   }];
   let extraClassDeclaration = [{
@@ -309,8 +308,7 @@ def MapForallToBlocks :
   let assemblyFormat = [{
     $target
     (`generate_gpu_launch` $generate_gpu_launch^)?
-    (`grid_dims` `=` $grid_dims^)?
-    attr-dict
+    (`grid_dims` `=` $grid_dims^)? attr-dict
     `:` functional-type($target, $result)
   }];
   let hasVerifier = 1;
diff --git a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.td b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.td
index 2da52bbf86166..76f8846fbac4e 100644
--- a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.td
+++ b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.td
@@ -71,7 +71,7 @@ def MatchStructuredOp : Op<Transform_Dialect, "match.structured", [
   let assemblyFormat =
     "(`failures` `(` $failure_propagation_mode^ `)`)?"
     "$current `:` custom<SemiFunctionType>(type($current), type($outputs))"
-    "attr-dict-with-keyword regions";
+    " attr-dict-with-keyword regions";
   let hasVerifier = 1;
 
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration # [{
@@ -128,7 +128,7 @@ def MatchStructuredBodyOp : Op<Transform_Dialect, "match.structured.body", [
                        UnitAttr:$passthrough,
                        UnitAttr:$elementwise,
                        OptionalAttr<StrArrayAttr>:$contraction);
-  let assemblyFormat = "$operand_handle attr-dict `:` type($operand_handle)";
+  let assemblyFormat = "$operand_handle oilist(`reduction_position` `=` $reduction_position | `passthrough` $passthrough | `elementwise` $elementwise | `contraction` `=` $contraction) attr-dict `:` type($operand_handle)";
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration;
   let hasVerifier = 1;
 }
@@ -148,7 +148,7 @@ def MatchStructuredClassifyContractionDimsOp
       C(batch, m, n) += A(batch, m, k) * B(batch, k, n)
 
     That is:
-    
+
       - 'batch' are parallel dimensions used in inputs and result;
       - 'm' are parallel dimensions used in the LHS and result;
       - 'n' are parallel dimensions used in rhe RHS and result;
@@ -256,7 +256,7 @@ def MatchStructuredDimOp : Op<Transform_Dialect, "match.structured.dim", [
     the criteria specified as attributes. May capture the numeric value of the
     dimension into a parameter that it returns.
 
-    }], 
+    }],
     StructuredDimDescription<"dimension">.description,
     [{
 
@@ -272,7 +272,7 @@ def MatchStructuredDimOp : Op<Transform_Dialect, "match.structured.dim", [
     parameter will be associated with the value of the second-to-last dimension
     followed by the last dimension. If the dimension is dynamic, the parameter
     will contain a negative value corresponding to kDynamic in C++.
-    
+
     }], StructuredPredicate.extraDescription, [{
 
     #### Return modes
@@ -293,7 +293,7 @@ def MatchStructuredDimOp : Op<Transform_Dialect, "match.structured.dim", [
   let assemblyFormat =
       "$operand_handle `[`"
       "custom<TransformMatchDims>($raw_dim_list, $is_inverted, $is_all)"
-      "`]` attr-dict `:` "
+      "`]` oilist(`parallel` $parallel | `reduction` $reduction) attr-dict `:` "
       "custom<SemiFunctionType>(type($operand_handle), type($result))";
 
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration # [{
@@ -335,7 +335,7 @@ class MatchStructuredOperandOp<string opname> : Op<Transform_Dialect, opname, [
     SingleOpMatcher,
     MatchOpInterface,
     MemoryEffectsOpInterface]> {
-      
+
   // TODO: consider an attribute controlling whether to fail or succeed on
   // out-of-bounds accesses.
   let arguments = (ins TransformHandleTypeInterface:$operand_handle,
@@ -352,7 +352,8 @@ class MatchStructuredOperandOp<string opname> : Op<Transform_Dialect, opname, [
   let assemblyFormat =
       "$operand_handle `[`"
       "custom<TransformMatchDims>($raw_position_list, $is_inverted, $is_all)"
-      "`]` attr-dict "
+      "`]` oilist(`permutation` $permutation | "
+      "`projected_permutation` $projected_permutation) attr-dict "
       "`:` custom<SemiFunctionType>(type($operand_handle), type($result))";
 
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration # [{
@@ -369,7 +370,7 @@ def MatchStructuredInputOp : MatchStructuredOperandOp<"match.structured.input">
     "Captures input operand(s) of a structured operation";
   let description = !strconcat([{
     Produces a transform dialect value depending on the result type:
-    
+
       - If the result type is a value handle, it will be associated with the input
         operand(s) of the payload operation associated with the operand handle.
       - If the result type is an operation handle, it will be associated with the
@@ -397,7 +398,7 @@ def MatchStructuredInputOp : MatchStructuredOperandOp<"match.structured.input">
 
     The match succeeds if the conditions specified as attributes succeed.
 
-    }], 
+    }],
     StructuredDimDescription<"input">.description,
     [{
 
@@ -446,7 +447,7 @@ def MatchStructuredInitOp : MatchStructuredOperandOp<"match.structured.init"> {
 
     The match succeeds if the conditions specified as attributes succeed.
 
-    }], 
+    }],
     StructuredDimDescription<"init">.description,
     [{
 
@@ -488,7 +489,7 @@ def MatchStructuredNumInputsOp
   let arguments = (ins TransformHandleTypeInterface:$operand_handle);
   let results = (outs TransformParamTypeInterface:$result);
   let assemblyFormat =
-    "$operand_handle attr-dict `:` functional-type(operands, results)";  
+    "$operand_handle attr-dict `:` functional-type(operands, results)";
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration;
 }
 
@@ -516,7 +517,7 @@ def MatchStructuredNumInitsOp
   let arguments = (ins TransformHandleTypeInterface:$operand_handle);
   let results = (outs TransformParamTypeInterface:$result);
   let assemblyFormat =
-    "$operand_handle attr-dict `:` functional-type(operands, results)";  
+    "$operand_handle attr-dict `:` functional-type(operands, results)";
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration;
 }
 
@@ -587,9 +588,9 @@ def MatchStructuredResultOp : Op<Transform_Dialect, "match.structured.result", [
                        UnitAttr:$any,
                        UnitAttr:$single);
   let results = (outs TransformAnyHandle:$result);
-  let assemblyFormat = 
+  let assemblyFormat =
       "$operand_handle `[` $position `]` (`any` $any^)? (`single` $single^)?"
-      "attr-dict `:` functional-type(operands, results)";
+      " attr-dict `:` functional-type(operands, results)";
   let hasVerifier = 1;
 
   let extraClassDeclaration = SingleOpMatcher.extraDeclaration # [{
diff --git a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
index 9a6796f999931..529f265c742d4 100644
--- a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
+++ b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
@@ -33,7 +33,7 @@ def ApplyEraseUnnecessaryInputsPatternsOp : Op<Transform_Dialect,
     `linalg.generic` ops.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyDecomposeTensorPackUnpackPatternsOp
@@ -44,7 +44,7 @@ def ApplyDecomposeTensorPackUnpackPatternsOp
     tensor::PadOp, linalg::transposeOp Ops. Requires all outer dims to be unit.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyDecomposeTensorPadPatternsOp
@@ -55,7 +55,7 @@ def ApplyDecomposeTensorPadPatternsOp
     linalg::FillOp and tensor::InsertSliceOp.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldUnitExtentDimsViaReshapesPatternsOp : Op<Transform_Dialect,
@@ -66,7 +66,7 @@ def ApplyFoldUnitExtentDimsViaReshapesPatternsOp : Op<Transform_Dialect,
     linalg ops on tensors via reassociative reshape ops.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldUnitExtentDimsViaSlicesPatternsOp : Op<Transform_Dialect,
@@ -77,7 +77,7 @@ def ApplyFoldUnitExtentDimsViaSlicesPatternsOp : Op<Transform_Dialect,
     linalg ops on tensors via rank-reducing slices.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyTilingCanonicalizationPatternsOp : Op<Transform_Dialect,
@@ -87,7 +87,7 @@ def ApplyTilingCanonicalizationPatternsOp : Op<Transform_Dialect,
     Collects canonicalization patterns relevant to apply after tiling patterns.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldAddIntoDestPatternsOp : Op<Transform_Dialect,
@@ -98,7 +98,7 @@ def ApplyFoldAddIntoDestPatternsOp : Op<Transform_Dialect,
     for achieving the sum.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyPadVectorizationPatternsOp : Op<Transform_Dialect,
@@ -110,7 +110,7 @@ def ApplyPadVectorizationPatternsOp : Op<Transform_Dialect,
     These patterns rewrite tensor.pad Ops using vector.transfer_read and
     vector.transfer_write operations. This is done either by:
       1. Folding tensor.pad with an existing vector.transfer_read /
-      vector.transfer_write Op (generated prior to running these patterns). 
+      vector.transfer_write Op (generated prior to running these patterns).
       2. Rewriting it (when matched together with q tensor.insert_slice
       consumer Op) as a vector.transfer_read + vector.transfer_write pair.
 
@@ -118,7 +118,7 @@ def ApplyPadVectorizationPatternsOp : Op<Transform_Dialect,
     matched tensor.pad Op to find opportunities for vectorization.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldIntoPackAndUnpackPatternsOp : Op<Transform_Dialect,
@@ -129,7 +129,7 @@ def ApplyFoldIntoPackAndUnpackPatternsOp : Op<Transform_Dialect,
     be folded into linalg.pack and linalg.unpack operations, respectively.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldPackUnpackIntoEmptyPatternsOp : Op<Transform_Dialect,
@@ -140,7 +140,7 @@ def ApplyFoldPackUnpackIntoEmptyPatternsOp : Op<Transform_Dialect,
   }];
 
   let arguments = (ins DefaultValuedAttr<BoolAttr, "false">:$fold_single_use_only);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`fold_single_use_only` `=` $fold_single_use_only) attr-dict";
 }
 
 def ApplyDataLayoutPropagationPatternsOp : Op<Transform_Dialect,
@@ -152,7 +152,7 @@ def ApplyDataLayoutPropagationPatternsOp : Op<Transform_Dialect,
   }];
 
   let arguments = (ins DefaultValuedAttr<BoolAttr, "false">:$poison_padding);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`poison_padding` `=` $poison_padding) attr-dict";
 }
 
 def ApplyExtractSliceSinkingPatternsOp : Op<Transform_Dialect,
@@ -162,7 +162,7 @@ def ApplyExtractSliceSinkingPatternsOp : Op<Transform_Dialect,
     Patterns to sink extract slice across other operations.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 //===----------------------------------------------------------------------===//
@@ -250,7 +250,7 @@ def BufferizeToAllocationOp : Op<Transform_Dialect,
                        UnitAttr:$emit_dealloc);
   let results = (outs Transform_AnyValue:$allocated_buffer,
                       Transform_AnyOpType:$new_ops);
-  let assemblyFormat = "$target attr-dict `:` type($target)";
+  let assemblyFormat = "$target oilist(`memory_space` `=` qualified($memory_space) | `memcpy_op` `=` $memcpy_op | `alloc_op` `=` $alloc_op | `bufferize_destination_only` $bufferize_destination_only | `emit_dealloc` $emit_dealloc) attr-dict `:` type($target)";
   let hasVerifier = 1;
 }
 
@@ -482,7 +482,9 @@ def FuseOp : Op<Transform_Dialect, "structured.fuse",
       `tile_sizes` custom<PackedOrDynamicIndexList>($packed_tile_sizes,
                                                     $tile_sizes,
                                                     $static_tile_sizes) |
-      `interchange` custom<DynamicIndexList>($tile_interchange, $static_tile_interchange)
+      `interchange` custom<DynamicIndexList>($tile_interchange, $static_tile_interchange) |
+      `apply_cleanup` $apply_cleanup |
+      `use_forall` $use_forall
     )
     (`inner_tile_alignments` `=`
         custom<InnerTileAlignmentArray>($inner_tile_alignments)^)?
@@ -594,7 +596,7 @@ def GeneralizeOp : Op<Transform_Dialect, "structured.generalize",
   let arguments = (ins TransformHandleTypeInterface:$target);
   let results = (outs TransformHandleTypeInterface:$transformed);
   let assemblyFormat = [{
-      $target attr-dict `:` 
+      $target attr-dict `:`
       custom<SemiFunctionType>(type($target), type($transformed), "false")
   }];
 
@@ -634,7 +636,7 @@ def SpecializeOp : Op<Transform_Dialect, "structured.specialize",
                        DefaultValuedAttr<BoolAttr, "false">:$emit_category);
   let results = (outs TransformHandleTypeInterface:$transformed);
   let assemblyFormat = [{
-      $target attr-dict `:` 
+      $target oilist(`emit_category` `=` $emit_category) attr-dict `:`
       custom<SemiFunctionType>(type($target), type($transformed), "false")
   }];
 
@@ -750,7 +752,7 @@ def LowerPackOp : Op<Transform_Dialect, "structured.lower_pack", [
                       Transform_ConcreteOpType<"tensor.expand_shape">:$expand_shape_op,
                       Transform_ConcreteOpType<"linalg.transpose">:$transpose_op);
   let assemblyFormat = [{
-    $target attr-dict `:` functional-type(operands, results)
+    $target oilist(`lowerPadLikeWithInsertSlice` `=` $lowerPadLikeWithInsertSlice) attr-dict `:` functional-type(operands, results)
   }];
 
   let extraClassDeclaration = [{
@@ -792,7 +794,7 @@ def LowerUnPackOp : Op<Transform_Dialect, "structured.lower_unpack", [
                       Transform_ConcreteOpType<"tensor.extract_slice">:$extract_slice_op,
                       Transform_ConcreteOpType<"linalg.copy">:$copy_op);
   let assemblyFormat = [{
-    $target attr-dict `:` functional-type(operands, results)
+    $target oilist(`lowerUnpadLikeWithExtractSlice` `=` $lowerUnpadLikeWithExtractSlice) attr-dict `:` functional-type(operands, results)
   }];
 
   let extraClassDeclaration = [{
@@ -945,7 +947,7 @@ def MultiTileSizesOp : Op<Transform_Dialect, "structured.multitile_sizes",
                       TransformAnyParamTypeOrAnyHandle:$split_point);
   let hasVerifier = 1;
   let assemblyFormat =
-    "$target attr-dict `:` custom<MultitileSizesTypes>("
+    "$target `dimension` `=` $dimension `target_size` `=` $target_size oilist(`divisor` `=` $divisor) attr-dict `:` custom<MultitileSizesTypes>("
     "type($target), type($low_size), type($high_size), type($split_point))";
 
   let extraClassDeclaration = [{
@@ -1032,8 +1034,7 @@ def PackOp : Op<Transform_Dialect, "structured.pack", [
   let assemblyFormat = [{
     $target
     `packed_sizes` `=` custom<DynamicIndexList>($packed_sizes,
-                                                $static_packed_sizes)
-    attr-dict
+                                                $static_packed_sizes) attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -1135,8 +1136,7 @@ def PackGreedilyOp : Op<Transform_Dialect, "structured.pack_greedily", [
       (`matmul_padded_sizes_next_multiple_of` `=`
         $matmul_padded_sizes_next_multiple_of^)?
       `matmul_inner_dims_order` `=` $matmul_inner_dims_order
-    )
-    attr-dict
+    ) attr-dict
     `:` functional-type(operands, results)
   }];
   let hasVerifier = 1;
@@ -1205,8 +1205,7 @@ def PackTransposeOp : Op<Transform_Dialect, "structured.pack_transpose", [
     $target_pack_or_un_pack_op
     `with_compute_op` `(` $target_linalg_op `)`
     (`outer_perm` `=` $outer_perm^ )?
-    (`inner_perm` `=` $inner_perm^ )?
-    attr-dict
+    (`inner_perm` `=` $inner_perm^ )? attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -1265,10 +1264,9 @@ def PadOp : Op<Transform_Dialect, "structured.pad",
                       TransformHandleTypeInterface:$copy);
 
   let assemblyFormat = [{
-    $target 
+    $target
     (`pad_to_multiple_of` custom<DynamicIndexList>($pad_to_multiple_of, $static_pad_to_multiple_of)^)?
-    (`use_prescribed_tensor_shapes` $use_prescribed_tensor_shapes^)?
-    attr-dict
+    (`use_prescribed_tensor_shapes` $use_prescribed_tensor_shapes^)? oilist(`padding_values` `=` $padding_values | `padding_dimensions` `=` $padding_dimensions | `nofold_flags` `=` $nofold_flags | `transpose_paddings` `=` $transpose_paddings | `copy_back_op` `=` $copy_back_op) attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -1325,12 +1323,12 @@ def PadTilingInterfaceOp : Op<Transform_Dialect, "structured.pad_tiling_interfac
     across the op semantics and, unlike for simple elementwise ops, may not be
     trivially deducible or specifiable on operands only (e.g. convolutions).
     Currently, only a limited set of projected permutation maps are supported.
-    
+
     The specification of `padding_sizes` follows that of `tile_sizes` during
     tiling: the value "0" on a particular iterator encode "no padding". Like in
     the case of tiling, an automatic completion by 0 to the operation rank
     occurs.
-    
+
     This transformation returns a handle to the padded operation and to the
     padding operation ("tensor.pad").
 
@@ -1341,8 +1339,8 @@ def PadTilingInterfaceOp : Op<Transform_Dialect, "structured.pad_tiling_interfac
 
     This operation ignores non-IndexingMapOpInterface ops and drops them in the
     return. In the future, this operation will support all TilingInterfaceOps
-    for which the contract between iteration domain and operands can be 
-    reified.    
+    for which the contract between iteration domain and operands can be
+    reified.
 
     This operation may produce a definite failure if the padding fails for any
     reason.
@@ -1367,8 +1365,7 @@ def PadTilingInterfaceOp : Op<Transform_Dialect, "structured.pad_tiling_interfac
     $target
     `to`
     (`padding_sizes` custom<DynamicIndexList>($padding_sizes, $static_padding_sizes)^)?
-    (`pad_to_multiple_of` $pad_to_multiple_of^)?
-    attr-dict
+    (`pad_to_multiple_of` $pad_to_multiple_of^)? oilist(`padding_values` `=` $padding_values) attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -1437,8 +1434,7 @@ def HoistPadBuildPackingLoopNestOp :
   let assemblyFormat = [{
     $target
     `above` $loop
-    (`,` `transpose` `by` $transpose^)?
-    attr-dict
+    (`,` `transpose` `by` $transpose^)? attr-dict
     `:` functional-type(operands, results)
   }];
   let hasVerifier = 1;
@@ -1480,8 +1476,7 @@ def HoistPadOp : Op<Transform_Dialect, "structured.hoist_pad",
   let assemblyFormat = [{
     $target
     `by` $num_loops `loops`
-    (`,` `transpose` `by` $transpose^)?
-    attr-dict
+    (`,` `transpose` `by` $transpose^)? attr-dict
     `:` functional-type(operands, results)
   }];
   let hasVerifier = 1;
@@ -1534,7 +1529,7 @@ def PromoteOp : Op<Transform_Dialect, "structured.promote",
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat = [{
-    $target attr-dict `:`
+    $target oilist(`operands_to_promote` `=` $operands_to_promote | `use_full_tile_buffers` `=` $use_full_tile_buffers | `use_full_tiles_by_default` $use_full_tiles_by_default | `use_original_subview_size` $use_original_subview_size | `use_alloca` $use_alloca | `memory_space` `(` qualified($memory_space) `)` | `mapping` `=` $mapping | `alignment` `=` $alignment) attr-dict `:`
     custom<SemiFunctionType>(type($target), type($transformed), "false")
   }];
 
@@ -1949,7 +1944,7 @@ def SplitReductionOp : Op<Transform_Dialect, "structured.split_reduction",
                       TransformHandleTypeInterface:$combining_linalg_op);
 
   let assemblyFormat =
-      "$target attr-dict `:`"
+      "$target oilist(`split_factor` `=` $split_factor | `insert_split_dimension` `=` $insert_split_dimension | `inner_parallel` $inner_parallel | `use_scaling_algorithm` $use_scaling_algorithm | `use_alloc` $use_alloc) attr-dict `:`"
       "functional-type(operands, results)";
 
   let builders = [
@@ -2068,8 +2063,7 @@ def TileReductionUsingForOp : Op<Transform_Dialect, "structured.tile_reduction_u
   let assemblyFormat = [{
     $target
     (`reduction_dims` `=` $reduction_dims^)?
-    `by` `tile_sizes` `=` $tile_sizes
-    attr-dict
+    `by` `tile_sizes` `=` $tile_sizes attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -2181,8 +2175,7 @@ def TileReductionUsingForallOp :
     `by`
     (`num_threads` `=` $num_threads^)?
     (`tile_sizes` `=` $tile_sizes^)?
-    (`mapping` `=` $mapping^)?
-    attr-dict
+    (`mapping` `=` $mapping^)? attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -2236,7 +2229,7 @@ def ContinuousTileSizesOp : Op<Transform_Dialect, "structured.continuous_tile_si
                       TransformAnyParamTypeOrAnyHandle:$chunk_sizes);
   let hasVerifier = 1;
   let assemblyFormat =
-    "$target attr-dict `:` custom<ContinuousTileSizeTypes>("
+    "$target `dimension` `=` $dimension `target_size` `=` $target_size attr-dict `:` custom<ContinuousTileSizeTypes>("
     "type($target), type($tile_sizes), type($chunk_sizes))";
 
 }
@@ -2567,7 +2560,7 @@ def VectorizeChildrenAndApplyPatternsOp :
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat =
-      "$target attr-dict `:`"
+      "$target oilist(`fold_type_extensions_into_contract` $fold_type_extensions_into_contract | `vectorize_padding` $vectorize_padding | `vectorize_nd_extract` $vectorize_nd_extract | `flatten_1d_depthwise_conv` $flatten_1d_depthwise_conv | `disable_multi_reduction_to_contract_patterns` $disable_multi_reduction_to_contract_patterns | `disable_transfer_permutation_map_lowering_patterns` $disable_transfer_permutation_map_lowering_patterns) attr-dict `:`"
       "functional-type(operands, results)";
 
   let builders = [
@@ -2640,9 +2633,8 @@ def VectorizeOp : Op<Transform_Dialect, "structured.vectorize",
       `vector_sizes` custom<DynamicIndexList>(
         $vector_sizes,
         $static_vector_sizes,
-        $scalable_sizes))
-    attr-dict
-    `:` type($target)(`,`type($vector_sizes)^)? 
+        $scalable_sizes)) oilist(`vectorize_nd_extract` $vectorize_nd_extract | `assume_dynamic_dims_match_vec_sizes` $assume_dynamic_dims_match_vec_sizes | `create_named_contraction` $create_named_contraction) attr-dict
+    `:` type($target)(`,`type($vector_sizes)^)?
   }];
 
   let hasVerifier = 1;
@@ -2690,7 +2682,7 @@ def HoistRedundantVectorTransfersOp :
                    UnitAttr:$verify_non_zero_trip);
   let results = (outs TransformHandleTypeInterface:$transformed);
 
-  let assemblyFormat = "$target attr-dict `:` functional-type(operands, results) ";
+  let assemblyFormat = "$target oilist(`verify_non_zero_trip` $verify_non_zero_trip) attr-dict `:` functional-type(operands, results) ";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -2921,8 +2913,7 @@ def TransposeMatmulOp : Op<Transform_Dialect,
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat = [{
-    $target (`<` $inputToTranspose^ `>`)?
-    attr-dict `:` functional-type($target, results)
+    $target (`<` $inputToTranspose^ `>`)? attr-dict `:` functional-type($target, results)
   }];
 
   let extraClassDeclaration = [{
@@ -3011,8 +3002,7 @@ def MapCopyToThreadsOp :
   let assemblyFormat = [{
     $target
     `total_num_threads` `=` $total_num_threads
-    `desired_bit_alignment` `=` $desired_bit_alignment
-    attr-dict
+    `desired_bit_alignment` `=` $desired_bit_alignment attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -3062,7 +3052,7 @@ def WinogradConv2DOp : Op<Transform_Dialect,
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat =
-    "$target attr-dict `:` functional-type($target, results)";
+    "$target `fmr` `(` $fmr `)` attr-dict `:` functional-type($target, results)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
diff --git a/mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td b/mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td
index d07dbf3ec335b..441ef06cbdb15 100644
--- a/mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td
+++ b/mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td
@@ -41,12 +41,12 @@ def MemrefToLLVMTypeConverterOp : Op<Transform_Dialect,
   }];
 
   let arguments = (ins
-      DefaultValuedOptionalAttr<BoolAttr, "false">:$use_aligned_alloc,
-      DefaultValuedOptionalAttr<I64Attr, "64">:$index_bitwidth,
-      DefaultValuedOptionalAttr<BoolAttr, "false">:$use_generic_functions,
-      DefaultValuedOptionalAttr<BoolAttr, "false">:$use_bare_ptr_call_conv,
+      DefaultValuedAttr<BoolAttr, "false">:$use_aligned_alloc,
+      DefaultValuedAttr<I64Attr, "64">:$index_bitwidth,
+      DefaultValuedAttr<BoolAttr, "false">:$use_generic_functions,
+      DefaultValuedAttr<BoolAttr, "false">:$use_bare_ptr_call_conv,
       OptionalAttr<StrAttr>:$data_layout);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`use_aligned_alloc` `=` qualified($use_aligned_alloc) | `index_bitwidth` `=` qualified($index_bitwidth) | `use_generic_functions` `=` qualified($use_generic_functions) | `use_bare_ptr_call_conv` `=` qualified($use_bare_ptr_call_conv) | `data_layout` `=` qualified($data_layout)) attr-dict";
 }
 
 def ApplyAllocToAllocaOp : Op<Transform_Dialect,
@@ -79,7 +79,7 @@ def ApplyExpandOpsPatternsOp : Op<Transform_Dialect,
       size to `memref.reinterpret_cast`.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyExpandStridedMetadataPatternsOp : Op<Transform_Dialect,
@@ -90,7 +90,7 @@ def ApplyExpandStridedMetadataPatternsOp : Op<Transform_Dialect,
     (sizes, offset, strides) of a memref into easier to analyze constructs.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyExtractAddressComputationsPatternsOp : Op<Transform_Dialect,
@@ -113,7 +113,7 @@ def ApplyExtractAddressComputationsPatternsOp : Op<Transform_Dialect,
     ```
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldMemrefAliasOpsPatternsOp : Op<Transform_Dialect,
@@ -126,7 +126,7 @@ def ApplyFoldMemrefAliasOpsPatternsOp : Op<Transform_Dialect,
     other ops (e.g., memref.subview).
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyResolveRankedShapedTypeResultDimsPatternsOp : Op<Transform_Dialect,
@@ -138,7 +138,7 @@ def ApplyResolveRankedShapedTypeResultDimsPatternsOp : Op<Transform_Dialect,
     in terms of shapes of its input operands.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def Transform_MemRefAllocOp : Transform_ConcreteOpType<"memref.alloc">;
@@ -313,7 +313,7 @@ def MemRefMultiBufferOp : Op<Transform_Dialect, "memref.multibuffer",
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat =
-    "$target attr-dict `:` functional-type(operands, results)";
+    "$target `factor` `=` $factor oilist(`skip_analysis` $skip_analysis) attr-dict `:` functional-type(operands, results)";
 }
 
 def MemRefEraseDeadAllocAndStoresOp
@@ -385,7 +385,7 @@ def MemRefMakeLoopIndependentOp
   let arguments = (ins TransformHandleTypeInterface:$target, I64Attr:$num_loops);
   let results = (outs TransformHandleTypeInterface:$transformed);
   let assemblyFormat =
-      "$target attr-dict `:` functional-type($target, $transformed)";
+      "$target `num_loops` `=` $num_loops attr-dict `:` functional-type($target, $transformed)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
diff --git a/mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.td b/mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.td
index 0225562baa58c..1b12d6daeb6c4 100644
--- a/mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.td
+++ b/mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.td
@@ -27,7 +27,7 @@ def ApplyNVGPUToNVVMConversionPatternsOp : Op<Transform_Dialect,
     Collects patterns that convert NVGPU dialect ops to NVVM dialect ops. These
     patterns require an "LLVMTypeConverter".
   }];
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 //===----------------------------------------------------------------------===//
@@ -63,7 +63,7 @@ def CreateAsyncGroupsOp :
   let results = (outs TransformHandleTypeInterface:$result);
 
   let assemblyFormat = [{
-    $target attr-dict `:` functional-type(operands, results)
+    $target oilist(`bypass_l1` $bypass_l1) attr-dict `:` functional-type(operands, results)
   }];
 
   let extraClassDeclaration = [{
@@ -93,7 +93,7 @@ def PipelineSharedMemoryCopiesOp :
     Applies software pipelining to a given scf.for loop. The pipelining
     strategy will look for a load into shared memory and pipeline it to overlap
     it with the rest of the loop.
-    
+
     NOTE: It is user responsibility to ensure that there are no dependency
     between `depth` iterations of the loop by using multi-buffering. It is
     also user responsibility to ensure a sufficient amount of shared memory
@@ -130,10 +130,9 @@ def PipelineSharedMemoryCopiesOp :
                      :$failure_propagation_mode);
   let results = (outs TransformHandleTypeInterface:$result);
 
-  let assemblyFormat = [{ 
+  let assemblyFormat = [{
     `failures` `(` $failure_propagation_mode `)`
-    $for_op
-    attr-dict 
+    $for_op `depth` `=` $depth oilist(`peel_epilogue` $peel_epilogue) attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -152,9 +151,9 @@ def PipelineSharedMemoryCopiesOp :
 
 def RewriteMatmulAsMmaSyncOp :
   Op<Transform_Dialect, "nvgpu.rewrite_matmul_as_mma_sync",
-    [FunctionalStyleTransformOpTrait, 
+    [FunctionalStyleTransformOpTrait,
      MemoryEffectsOpInterface,
-     TransformEachOpTrait, 
+     TransformEachOpTrait,
      TransformOpInterface,
      ReportTrackingListenerFailuresOpTrait]> {
   let description = [{
diff --git a/mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td b/mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
index a9ac0c3dad76b..94d42d9b89b7d 100644
--- a/mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
+++ b/mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
@@ -24,7 +24,7 @@ def ApplyForLoopCanonicalizationPatternsOp : Op<Transform_Dialect,
     loop bounds and loop steps are canonicalized.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySCFStructuralConversionPatternsOp : Op<Transform_Dialect,
@@ -35,7 +35,7 @@ def ApplySCFStructuralConversionPatternsOp : Op<Transform_Dialect,
     Collects patterns for performing structural conversions of SCF operations.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySCFToControlFlowPatternsOp : Op<Transform_Dialect,
@@ -46,7 +46,7 @@ def ApplySCFToControlFlowPatternsOp : Op<Transform_Dialect,
     control flow.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def Transform_ScfForOp : Transform_ConcreteOpType<"scf.for">;
@@ -165,7 +165,7 @@ def LoopOutlineOp : Op<Transform_Dialect, "loop.outline",
                       TransformHandleTypeInterface:$call);
 
   let assemblyFormat =
-    "$target attr-dict `:` functional-type(operands, results)";
+    "$target `func_name` `=` $func_name attr-dict `:` functional-type(operands, results)";
 }
 
 def LoopPeelOp : Op<Transform_Dialect, "loop.peel",
@@ -212,7 +212,7 @@ def LoopPeelOp : Op<Transform_Dialect, "loop.peel",
                       TransformHandleTypeInterface:$remainder_loop);
 
   let assemblyFormat =
-    "$target attr-dict `:` functional-type(operands, results)";
+    "$target oilist(`peel_front` `=` $peel_front | `fail_if_already_divisible` `=` $fail_if_already_divisible) attr-dict `:` functional-type(operands, results)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -255,7 +255,7 @@ def LoopPipelineOp : Op<Transform_Dialect, "loop.pipeline",
   let results = (outs TransformHandleTypeInterface:$transformed);
 
   let assemblyFormat =
-    "$target attr-dict `:` functional-type(operands, results)";
+    "$target oilist(`iteration_interval` `=` $iteration_interval | `read_latency` `=` $read_latency) attr-dict `:` functional-type(operands, results)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -320,7 +320,7 @@ def LoopUnrollOp : Op<Transform_Dialect, "loop.unroll",
   let arguments = (ins TransformHandleTypeInterface:$target,
                        ConfinedAttr<I64Attr, [IntPositive]>:$factor);
 
-  let assemblyFormat = "$target attr-dict `:` type($target)";
+  let assemblyFormat = "$target `factor` `=` $factor attr-dict `:` type($target)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -384,7 +384,7 @@ def LoopUnrollAndJamOp : Op<Transform_Dialect, "loop.unroll_and_jam",
   let arguments = (ins TransformHandleTypeInterface:$target,
                        ConfinedAttr<I64Attr, [IntPositive]>:$factor);
 
-  let assemblyFormat = "$target attr-dict `:` type($target)";
+  let assemblyFormat = "$target `factor` `=` $factor attr-dict `:` type($target)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -479,8 +479,7 @@ def TakeAssumedBranchOp : Op<Transform_Dialect, "scf.take_assumed_branch", [
 
   let assemblyFormat = [{
       $target
-      (`take_else_branch` $take_else_branch^)?
-      attr-dict
+      (`take_else_branch` $take_else_branch^)? attr-dict
        `:` functional-type(operands, results)
   }];
 
diff --git a/mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.td b/mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.td
index 9f6387d985f77..6b618db34c8c7 100644
--- a/mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.td
+++ b/mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.td
@@ -23,7 +23,7 @@ def ApplyDecomposeTensorConcatPatternsOp : Op<Transform_Dialect,
     tensor.insert_slice operations inserting into a materialized destination.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 
@@ -36,7 +36,7 @@ def ApplyDropRedundantInsertSliceRankExpansionPatternsOp : Op<Transform_Dialect,
     follows an inverse tensor.insert_slice rank expansion.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldTensorEmptyPatternsOp : Op<Transform_Dialect,
@@ -51,7 +51,7 @@ def ApplyFoldTensorEmptyPatternsOp : Op<Transform_Dialect,
   }];
 
   let arguments = (ins DefaultValuedAttr<BoolAttr, "false">:$fold_single_use_only);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`fold_single_use_only` `=` $fold_single_use_only) attr-dict";
 }
 
 def ApplyFoldTensorSubsetOpsPatternsOp : Op<Transform_Dialect,
@@ -62,7 +62,7 @@ def ApplyFoldTensorSubsetOpsPatternsOp : Op<Transform_Dialect,
     tensor.expand_shape and tensor.collapse_shape.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldTensorSubsetOpsIntoVectorTransfersPatternsOp : Op<Transform_Dialect,
@@ -74,7 +74,7 @@ def ApplyFoldTensorSubsetOpsIntoVectorTransfersPatternsOp : Op<Transform_Dialect
     vector tranfer read and write ops
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyMergeConsecutiveInsertExtractSlicePatternsOp : Op<Transform_Dialect,
@@ -86,7 +86,7 @@ def ApplyMergeConsecutiveInsertExtractSlicePatternsOp : Op<Transform_Dialect,
     because the bufferization is sensitive to IR structure.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyReassociativeReshapeFoldingPatternsOp : Op<Transform_Dialect,
@@ -98,7 +98,7 @@ def ApplyReassociativeReshapeFoldingPatternsOp : Op<Transform_Dialect,
     reductions (via tensor.insert_slice / tensor.extract_slice).
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyBubbleUpExtractSlicePatternsOp : Op<Transform_Dialect,
@@ -109,7 +109,7 @@ def ApplyBubbleUpExtractSlicePatternsOp : Op<Transform_Dialect,
     the result of the slice.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyRewriteTensorOpsAsConstantPatternsOp : Op<Transform_Dialect,
@@ -161,7 +161,7 @@ def MakeLoopIndependentOp
   let arguments = (ins TransformHandleTypeInterface:$target, I64Attr:$num_loops);
   let results = (outs TransformHandleTypeInterface:$transformed);
   let assemblyFormat =
-      "$target attr-dict `:` functional-type($target, $transformed)";
+      "$target `num_loops` `=` $num_loops attr-dict `:` functional-type($target, $transformed)";
 
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
diff --git a/mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.td b/mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.td
index 4a6898e36d343..71e01c80320a6 100644
--- a/mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.td
+++ b/mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.td
@@ -61,7 +61,7 @@ def EmitParamAsRemarkOp
                        Optional<TransformHandleTypeInterface>:$anchor,
                        OptionalAttr<StrAttr>:$message);
   let assemblyFormat = "$param (`,` $message^)?  (`at` $anchor^)?"
-                       "attr-dict `:` type($param) (`,` type($anchor)^)?";
+                       " attr-dict `:` type($param) (`,` type($anchor)^)?";
 }
 
 #endif // MLIR_DIALECT_TRANSFORM_DEBUGEXTENSION_DBEUGEXTENSIONOPS
diff --git a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
index ce0ad30ad2c8c..d53761074db21 100644
--- a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
+++ b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
@@ -19,6 +19,7 @@ def Transform_Dialect : Dialect {
   let cppNamespace = "::mlir::transform";
 
   let hasOperationAttrVerify = 1;
+  let useStrictPropertiesInAssemblyFormat = 1;
   let extraClassDeclaration = [{
     /// Symbol name for the default entry point "named sequence".
     constexpr const static ::llvm::StringLiteral
diff --git a/mlir/include/mlir/Dialect/Transform/IR/TransformOps.td b/mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
index 2daa2ad655e34..5b5988295eddc 100644
--- a/mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
+++ b/mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
@@ -99,7 +99,7 @@ def AlternativesOp : TransformDialectOp<"alternatives",
 
   let assemblyFormat =
     "($scope^ `:` type($scope))? (`->` type($results)^)? "
-    "attr-dict-with-keyword regions";
+    " attr-dict-with-keyword regions";
   let hasVerifier = 1;
 }
 
@@ -222,8 +222,7 @@ def ApplyConversionPatternsOp : TransformDialectOp<"apply_conversion_patterns",
 
   let assemblyFormat = [{
     `to` $target $patterns
-    (`with` `type_converter` $default_type_converter_region^)?
-    attr-dict `:` type($target)
+    (`with` `type_converter` $default_type_converter_region^)? oilist(`legal_ops` `=` $legal_ops | `illegal_ops` `=` $illegal_ops | `legal_dialects` `=` $legal_dialects | `illegal_dialects` `=` $illegal_dialects | `partial_conversion` $partial_conversion | `preserve_handles` $preserve_handles) attr-dict `:` type($target)
   }];
   let hasVerifier = 1;
 
@@ -339,7 +338,7 @@ def ApplyPatternsOp : TransformDialectOp<"apply_patterns",
   let results = (outs);
   let regions = (region MaxSizedRegion<1>:$patterns);
 
-  let assemblyFormat = "`to` $target $patterns attr-dict `:` type($target)";
+  let assemblyFormat = "`to` $target $patterns oilist(`apply_cse` $apply_cse | `max_iterations` `=` $max_iterations | `max_num_rewrites` `=` $max_num_rewrites) attr-dict `:` type($target)";
   let hasVerifier = 1;
 
   let skipDefaultBuilders = 1;
@@ -367,7 +366,7 @@ def ApplyCanonicalizationPatternsOp
     This op populates all canonicalization patterns of all loaded dialects in
     an `apply_patterns` transform.
   }];
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLoopInvariantCodeMotionOp : TransformDialectOp<"apply_licm",
@@ -613,8 +612,7 @@ def ForeachMatchOp : TransformDialectOp<"foreach_match", [
           )
     `in`
     $root (`,` $forwarded_inputs^)?
-    custom<ForeachMatchSymbols>($matchers, $actions)
-    attr-dict
+    custom<ForeachMatchSymbols>($matchers, $actions) attr-dict
     `:` functional-type(operands, results)
   }];
 
@@ -759,7 +757,7 @@ def GetParentOp : TransformDialectOp<"get_parent_op",
                                          "1">:$nth_parent);
   let results = (outs TransformHandleTypeInterface:$parent);
   let assemblyFormat =
-    "$target attr-dict `:` functional-type(operands, results)";
+    "$target oilist(`isolated_from_above` $isolated_from_above | `allow_empty_results` $allow_empty_results | `op_name` `=` $op_name | `deduplicate` $deduplicate | `nth_parent` `=` $nth_parent) attr-dict `:` functional-type(operands, results)";
 }
 
 def GetProducerOfOperand : TransformDialectOp<"get_producer_of_operand",
@@ -907,7 +905,7 @@ def IncludeOp : TransformDialectOp<"include",
 
   let assemblyFormat =
       "$target `failures` `(` $failure_propagation_mode `)`"
-      "`(` $operands `)` attr-dict `:` functional-type($operands, $results)";
+      "`(` $operands `)` oilist(`arg_attrs` `=` $arg_attrs | `res_attrs` `=` $res_attrs) attr-dict `:` functional-type($operands, $results)";
 
   let extraClassDeclaration = [{
     ::mlir::CallInterfaceCallable getCallableForCallee() {
@@ -1116,7 +1114,7 @@ def SplitHandleOp : TransformDialectOp<"split_handle",
   ];
 
   let assemblyFormat = [{
-    $handle attr-dict `:` functional-type(operands, results)
+    $handle oilist(`pass_through_empty_handle` `=` $pass_through_empty_handle | `fail_on_payload_too_small` `=` $fail_on_payload_too_small | `overflow_result` `=` $overflow_result) attr-dict `:` functional-type(operands, results)
   }];
 }
 
@@ -1152,7 +1150,7 @@ def PayloadOp : Op<Transform_Dialect, "payload",
   let arguments =
       (ins TypedArrayAttrBase<NormalFormAttrInterface,
                               "normal form attributes">:$normal_forms);
-  let assemblyFormat = "attr-dict-with-keyword regions";
+  let assemblyFormat = " `normal_forms` `=` $normal_forms attr-dict-with-keyword regions";
 }
 
 def PrintOp : TransformDialectOp<"print",
@@ -1190,7 +1188,7 @@ def PrintOp : TransformDialectOp<"print",
     OpBuilder<(ins "Value":$target, CArg<"StringRef", "StringRef()">:$name)>
   ];
 
-  let assemblyFormat = "$target attr-dict (`:` type($target)^)?";
+  let assemblyFormat = "$target oilist(`name` `=` $name | `assume_verified` $assume_verified | `use_local_scope` $use_local_scope | `skip_regions` $skip_regions) attr-dict (`:` type($target)^)?";
 }
 
 def ReplicateOp : TransformDialectOp<"replicate",
diff --git a/mlir/include/mlir/Dialect/Transform/TuneExtension/TuneExtensionOps.td b/mlir/include/mlir/Dialect/Transform/TuneExtension/TuneExtensionOps.td
index eeb32486433e1..1a4807ef1196a 100644
--- a/mlir/include/mlir/Dialect/Transform/TuneExtension/TuneExtensionOps.td
+++ b/mlir/include/mlir/Dialect/Transform/TuneExtension/TuneExtensionOps.td
@@ -97,8 +97,7 @@ def AlternativesOp : Op<Transform_Dialect, "tune.alternatives", [
   let assemblyFormat = [{
     `<` $name `>`
     (`selected_region` `=` custom<AlternativesOpSelectedRegion>(
-        $selected_region_attr, $selected_region_param)^)?
-    attr-dict-with-keyword
+        $selected_region_attr, $selected_region_param)^)? attr-dict-with-keyword
     (`:` type($selected_region_param)^)?
     (`->` type($results)^)?
     regions
diff --git a/mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td b/mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
index da3489e604155..274c85ba9ddeb 100644
--- a/mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
+++ b/mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
@@ -34,7 +34,7 @@ def ApplyVectorToLLVMConversionPatternsOp : Op<Transform_Dialect,
       DefaultValuedAttr<BoolAttr, "false">:$reassociate_fp_reductions,
       DefaultValuedAttr<BoolAttr, "true">:$force_32bit_vector_indices,
       DefaultValuedAttr<BoolAttr, "false">:$use_vector_alignment);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " oilist(`reassociate_fp_reductions` `=` $reassociate_fp_reductions | `force_32bit_vector_indices` `=` $force_32bit_vector_indices | `use_vector_alignment` `=` $use_vector_alignment) attr-dict";
 }
 
 
@@ -50,7 +50,7 @@ def ApplyCastAwayVectorLeadingOneDimPatternsOp : Op<Transform_Dialect,
     pairs or forward write-read pairs.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyRankReducingSubviewPatternsOp : Op<Transform_Dialect,
@@ -66,7 +66,7 @@ def ApplyRankReducingSubviewPatternsOp : Op<Transform_Dialect,
     This is complemented by shape_cast folding patterns.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyDropUnitDimWithShapeCastPatternsOp : Op<Transform_Dialect,
@@ -82,7 +82,7 @@ def ApplyDropUnitDimWithShapeCastPatternsOp : Op<Transform_Dialect,
     shape_cast folding patterns.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyDropInnerMostUnitDimsFromXferOpsPatternsOp : Op<Transform_Dialect,
@@ -96,7 +96,7 @@ def ApplyDropInnerMostUnitDimsFromXferOpsPatternsOp : Op<Transform_Dialect,
     past-bufferization.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyTransferPermutationPatternsOp : Op<Transform_Dialect,
@@ -117,7 +117,7 @@ def ApplyTransferPermutationPatternsOp : Op<Transform_Dialect,
     dimensions and materializes the permutation_map as a vector.transpose.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerBitCastPatternsOp : Op<Transform_Dialect,
@@ -131,7 +131,7 @@ def ApplyLowerBitCastPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerBroadcastPatternsOp : Op<Transform_Dialect,
@@ -145,7 +145,7 @@ def ApplyLowerBroadcastPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerContractionPatternsOp : Op<Transform_Dialect,
@@ -175,7 +175,7 @@ def ApplyLowerCreateMaskPatternsOp : Op<Transform_Dialect,
     finer-grained vector primitives.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerMasksPatternsOp : Op<Transform_Dialect,
@@ -189,7 +189,7 @@ def ApplyLowerMasksPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerMaskedTransfersPatternsOp : Op<Transform_Dialect,
@@ -206,7 +206,7 @@ def ApplyLowerMaskedTransfersPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyMaterializeMasksPatternsOp : Op<Transform_Dialect,
@@ -220,7 +220,7 @@ def ApplyMaterializeMasksPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyReorderMultiReductionPatternsOp: Op<Transform_Dialect,
@@ -299,7 +299,7 @@ def ApplyLowerOuterProductPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerGatherPatternsOp : Op<Transform_Dialect,
@@ -310,7 +310,7 @@ def ApplyLowerGatherPatternsOp : Op<Transform_Dialect,
     finer-grained vector primitives.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyUnrollFromElementsPatternsOp : Op<Transform_Dialect,
@@ -321,7 +321,7 @@ def ApplyUnrollFromElementsPatternsOp : Op<Transform_Dialect,
     along the outermost dimension.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyUnrollToElementsPatternsOp : Op<Transform_Dialect,
@@ -332,7 +332,7 @@ def ApplyUnrollToElementsPatternsOp : Op<Transform_Dialect,
     along the outermost dimension.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerScanPatternsOp : Op<Transform_Dialect,
@@ -343,7 +343,7 @@ def ApplyLowerScanPatternsOp : Op<Transform_Dialect,
     finer-grained vector primitives.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerShapeCastPatternsOp : Op<Transform_Dialect,
@@ -357,7 +357,7 @@ def ApplyLowerShapeCastPatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyLowerStepPatternsOp : Op<Transform_Dialect,
@@ -419,8 +419,7 @@ def ApplyLowerTransposePatternsOp : Op<Transform_Dialect,
     oilist (
       `lowering_strategy` `=` $lowering_strategy
       | `avx2_lowering_strategy` `=` $avx2_lowering_strategy
-    )
-    attr-dict
+    ) attr-dict
   }];
 }
 
@@ -435,7 +434,7 @@ def ApplyLowerInterleavePatternsOp : Op<Transform_Dialect,
     process of lowering to e.g. LLVM or NVVM.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyInterleaveAndDeinterleaveToShufflePatternsOp : Op<Transform_Dialect,
@@ -449,7 +448,7 @@ def ApplyInterleaveAndDeinterleaveToShufflePatternsOp : Op<Transform_Dialect,
     interleave and deinterleave operations.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyRewriteNarrowTypePatternsOp : Op<Transform_Dialect,
@@ -464,7 +463,7 @@ def ApplyRewriteNarrowTypePatternsOp : Op<Transform_Dialect,
     Warning: these patterns currently only work for little endian targets.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySplitTransferFullPartialPatternsOp : Op<Transform_Dialect,
@@ -508,8 +507,7 @@ def ApplyTransferToScfPatternsOp : Op<Transform_Dialect,
     oilist (
         `max_transfer_rank` `=` $max_transfer_rank
       | `full_unroll` `=` $full_unroll
-    )
-    attr-dict
+    ) attr-dict
   }];
 }
 
@@ -521,7 +519,7 @@ def ApplyFoldArithExtensionPatternsOp : Op<Transform_Dialect,
     into vector contract for the backends with native support.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFoldElementwiseToVectorPatternsOp : Op<Transform_Dialect,
@@ -532,7 +530,7 @@ def ApplyFoldElementwiseToVectorPatternsOp : Op<Transform_Dialect,
     dialect.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyVectorReductionToContractPatternsOp : Op<Transform_Dialect,
@@ -552,7 +550,7 @@ def ApplyVectorReductionToContractPatternsOp : Op<Transform_Dialect,
     vector.contract.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySinkVectorPatternsOp : Op<Transform_Dialect,
@@ -577,7 +575,7 @@ def ApplySinkVectorPatternsOp : Op<Transform_Dialect,
     vector.transpose and vector.extract.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySinkVectorMemPatternsOp : Op<Transform_Dialect,
@@ -601,7 +599,7 @@ def ApplySinkVectorMemPatternsOp : Op<Transform_Dialect,
     ```
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyFlattenVectorTransferOpsPatternsOp : Op<Transform_Dialect,
diff --git a/mlir/include/mlir/Dialect/X86/TransformOps/X86TransformOps.td b/mlir/include/mlir/Dialect/X86/TransformOps/X86TransformOps.td
index 48aabf90914e2..15d72d5a512cf 100644
--- a/mlir/include/mlir/Dialect/X86/TransformOps/X86TransformOps.td
+++ b/mlir/include/mlir/Dialect/X86/TransformOps/X86TransformOps.td
@@ -24,7 +24,7 @@ def ApplyVectorContractToFMAPatternsOp : Op<Transform_Dialect,
     Collect patterns to lower a F32 type vector.contract operation to a FMA.
   }];
   
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyVectorContractToPackedTypeDotProductPatternsOp : Op<Transform_Dialect,
@@ -35,7 +35,7 @@ def ApplyVectorContractToPackedTypeDotProductPatternsOp : Op<Transform_Dialect,
 	to a BF16/Int8 dot-product.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyVectorContractBF16ToFMAPatternsOp : Op<Transform_Dialect,
@@ -46,7 +46,7 @@ def ApplyVectorContractBF16ToFMAPatternsOp : Op<Transform_Dialect,
         to a FMA via emulation lowering using BF16 packed operations.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplySinkVectorProducerOpsPatternsOp : Op<Transform_Dialect,
@@ -57,7 +57,7 @@ def ApplySinkVectorProducerOpsPatternsOp : Op<Transform_Dialect,
          place them immediately before their first use.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyShuffleVectorFMAOpsPatternsOp : Op<Transform_Dialect,
@@ -68,7 +68,7 @@ def ApplyShuffleVectorFMAOpsPatternsOp : Op<Transform_Dialect,
     such that FMAs are grouped with respect to odd/even packed index.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyVectorContractToAMXDotProductPatternsOp : Op<Transform_Dialect,
@@ -79,7 +79,7 @@ def ApplyVectorContractToAMXDotProductPatternsOp : Op<Transform_Dialect,
 	to a BF16/Int8 AMX tiled dot-product.
   }];
 
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
 }
 
 def ApplyMoveAccumulatorForContractLoopPatternsOp : Op<Transform_Dialect,
diff --git a/mlir/include/mlir/Dialect/XeGPU/TransformOps/XeGPUTransformOps.td b/mlir/include/mlir/Dialect/XeGPU/TransformOps/XeGPUTransformOps.td
index 40b9136874e7c..2ed4690129708 100644
--- a/mlir/include/mlir/Dialect/XeGPU/TransformOps/XeGPUTransformOps.td
+++ b/mlir/include/mlir/Dialect/XeGPU/TransformOps/XeGPUTransformOps.td
@@ -81,8 +81,7 @@ def SetAnchorLayoutOp : Op<Transform_Dialect, "xegpu.set_anchor_layout", [
     `sg_data` `=` custom<DynamicIndexList>($sg_data, $static_sg_data)
     (`inst_data` `=` custom<DynamicIndexList>($inst_data, $static_inst_data)^)?
     (`order` `=` $order^)?
-    (`slice_dims` `=` $slice_dims^)?
-    attr-dict `:` qualified(type(operands))
+    (`slice_dims` `=` $slice_dims^)? attr-dict `:` qualified(type(operands))
   }];
 
   let extraClassDeclaration = [{
@@ -128,8 +127,7 @@ def SetGPULaunchThreadsOp
 
   let assemblyFormat = [{
     $target
-    `threads` `=` custom<DynamicIndexList>($threads, $static_threads)
-    attr-dict `:` qualified(type(operands))
+    `threads` `=` custom<DynamicIndexList>($threads, $static_threads) attr-dict `:` qualified(type(operands))
   }];
 
   let extraClassDeclaration = [{
@@ -167,8 +165,7 @@ def InsertPrefetchOp : Op<Transform_Dialect, "xegpu.insert_prefetch", [
 
   let assemblyFormat = [{
     $target
-    `nb_prefetch` `=` ($dynamic_nb_prefetch^):($static_nb_prefetch)?
-    attr-dict `:` functional-type(operands, results)
+    `nb_prefetch` `=` ($dynamic_nb_prefetch^):($static_nb_prefetch)? attr-dict `:` functional-type(operands, results)
   }];
 
   let extraClassDeclaration = [{
@@ -241,8 +238,7 @@ def ConvertLayoutOp : Op<Transform_Dialect, "xegpu.convert_layout", [
     `target_sg_layout` `=` custom<DynamicIndexList>($target_sg_layout, $static_target_sg_layout)
     `target_sg_data` `=` custom<DynamicIndexList>($target_sg_data, $static_target_sg_data)
     (`target_inst_data` `=` custom<DynamicIndexList>($target_inst_data, $static_target_inst_data)^)?
-    (`target_order` `=` $target_order^)?
-    attr-dict `:` functional-type(operands, results)
+    (`target_order` `=` $target_order^)? attr-dict `:` functional-type(operands, results)
   }];
 
   let extraClassDeclaration = [{
diff --git a/mlir/test/CAPI/transform_interpreter.c b/mlir/test/CAPI/transform_interpreter.c
index a849b2f245264..d0eb37bc4dc6c 100644
--- a/mlir/test/CAPI/transform_interpreter.c
+++ b/mlir/test/CAPI/transform_interpreter.c
@@ -23,7 +23,7 @@ int testApplyNamedSequence(MlirContext ctx) {
   const char module[] =
       "module attributes {transform.with_named_sequence} {"
       "  transform.named_sequence @__transform_main(%root: !transform.any_op) {"
-      "    transform.print %root { name = \"from interpreter\" }: "
+      "    transform.print %root name = \"from interpreter\": "
       "!transform.any_op"
       "    transform.yield"
       "  }"
diff --git a/mlir/test/Conversion/FuncToLLVM/func-memref-return.mlir b/mlir/test/Conversion/FuncToLLVM/func-memref-return.mlir
index 22ebbf8618bde..cb75d3b620ae6 100644
--- a/mlir/test/Conversion/FuncToLLVM/func-memref-return.mlir
+++ b/mlir/test/Conversion/FuncToLLVM/func-memref-return.mlir
@@ -112,11 +112,8 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.func.func_to_llvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-        {use_bare_ptr_call_conv = true, use_opaque_pointers = true}
-    } {
-      legal_dialects = ["llvm"],
-      partial_conversion
-    } : !transform.any_op
+        use_bare_ptr_call_conv = true {use_opaque_pointers = true}
+    } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Conversion/FuncToLLVM/func-to-llvm.mlir b/mlir/test/Conversion/FuncToLLVM/func-to-llvm.mlir
index 6a04960e3513a..db19b3237f2eb 100644
--- a/mlir/test/Conversion/FuncToLLVM/func-to-llvm.mlir
+++ b/mlir/test/Conversion/FuncToLLVM/func-to-llvm.mlir
@@ -575,11 +575,8 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.func.func_to_llvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-        {index_bitwidth = 32, use_opaque_pointers = true}
-    } {
-      legal_dialects = ["llvm"],
-      partial_conversion
-    } : !transform.any_op
+        index_bitwidth = 32 {use_opaque_pointers = true}
+    } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-32b.mlir b/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-32b.mlir
index 1bc7acfe46a4a..b18f546c025e4 100644
--- a/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-32b.mlir
+++ b/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm-32b.mlir
@@ -58,22 +58,16 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.vector.vector_to_llvm
       transform.apply_conversion_patterns.func.func_to_llvm
       transform.apply_conversion_patterns.dialect_to_llvm "memref"
-      transform.apply_conversion_patterns.gpu.gpu_to_nvvm {benefit = 10 : i16}
+      transform.apply_conversion_patterns.gpu.gpu_to_nvvm benefit = 10
       transform.apply_conversion_patterns.gpu.gpu_wmma_to_nvvm
       transform.apply_conversion_patterns.gpu.gpu_subgroup_reduce_to_nvvm {has_redux = true}
       transform.apply_conversion_patterns.nvgpu.nvgpu_to_nvvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-        {index_bitwidth = 32, use_opaque_pointers = true}
-    } {
-      legal_dialects = ["llvm", "memref", "nvvm"],
-      legal_ops = ["gpu.module", "gpu.yield"],
-      illegal_dialects = ["gpu"],
-      illegal_ops = ["llvm.cos", "llvm.exp", "llvm.exp2", "llvm.fabs", "llvm.fceil",
+        index_bitwidth = 32 {use_opaque_pointers = true}
+    } legal_dialects = ["llvm", "memref", "nvvm"] legal_ops = ["gpu.module", "gpu.yield"] illegal_dialects = ["gpu"] illegal_ops = ["llvm.cos", "llvm.exp", "llvm.exp2", "llvm.fabs", "llvm.fceil",
                     "llvm.ffloor", "llvm.log", "llvm.log10", "llvm.log2", "llvm.pow",
-                    "llvm.sin", "llvm.sqrt"],
-      partial_conversion
-    } : !transform.any_op
+                    "llvm.sin", "llvm.sqrt"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir b/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
index d97ff465af444..dd65fbfedcee3 100644
--- a/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
+++ b/mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
@@ -1073,23 +1073,16 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.vector.vector_to_llvm
       transform.apply_conversion_patterns.func.func_to_llvm
       transform.apply_conversion_patterns.dialect_to_llvm "memref"
-      transform.apply_conversion_patterns.gpu.gpu_to_nvvm {benefit = 10 : i16}
+      transform.apply_conversion_patterns.gpu.gpu_to_nvvm benefit = 10
       transform.apply_conversion_patterns.gpu.gpu_wmma_to_nvvm
       transform.apply_conversion_patterns.gpu.gpu_subgroup_reduce_to_nvvm
       transform.apply_conversion_patterns.nvgpu.nvgpu_to_nvvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-        {index_bitwidth = 64,
-        use_bare_ptr_call_conv = false}
-    } {
-      legal_dialects = ["llvm", "memref", "nvvm", "test"],
-      legal_ops = ["gpu.module", "gpu.yield"],
-      illegal_dialects = ["gpu"],
-      illegal_ops = ["llvm.copysign", "llvm.cos", "llvm.exp", "llvm.exp2", "llvm.fabs", "llvm.fceil",
+        index_bitwidth = 64 use_bare_ptr_call_conv = false
+    } legal_dialects = ["llvm", "memref", "nvvm", "test"] legal_ops = ["gpu.module", "gpu.yield"] illegal_dialects = ["gpu"] illegal_ops = ["llvm.copysign", "llvm.cos", "llvm.exp", "llvm.exp2", "llvm.fabs", "llvm.fceil",
                     "llvm.ffloor", "llvm.frem", "llvm.log", "llvm.log10", "llvm.log2", "llvm.pow",
-                    "llvm.roundeven", "llvm.round", "llvm.sin", "llvm.sqrt"],
-      partial_conversion
-    } : !transform.any_op
+                    "llvm.roundeven", "llvm.round", "llvm.sin", "llvm.sqrt"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir b/mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir
index 380a93adfe739..8d915b9b1873d 100644
--- a/mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir
+++ b/mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir
@@ -1390,8 +1390,8 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.nvgpu.nvgpu_to_nvvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-        {use_opaque_pointers = true}
-    } {legal_dialects = ["arith", "func", "llvm", "memref", "nvvm", "vector", "scf"], partial_conversion} : !transform.any_op
+         {use_opaque_pointers = true}
+    } legal_dialects = ["arith", "func", "llvm", "memref", "nvvm", "vector", "scf"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir b/mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir
index 5e9ccc9c19074..d60a9ee30027c 100644
--- a/mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir
+++ b/mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir
@@ -34,7 +34,7 @@ func.func @test_function(%A : tensor<?xf32>, %v : vector<4xf32>) -> (tensor<?xf3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.bufferization.one_shot_bufferize %0 {memcpy_op = "linalg.copy"} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.bufferization.one_shot_bufferize %0 memcpy_op = "linalg.copy" : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -65,7 +65,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1 = transform.bufferization.one_shot_bufferize %0
-        {test_analysis_only = true} : (!transform.any_op) -> !transform.any_op
+        test_analysis_only = true : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -135,7 +135,7 @@ func.func @test_function(%A : tensor<?xf32>, %v : vector<4xf32>) -> (tensor<?xf3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.bufferization.one_shot_bufferize layout{IdentityLayoutMap} %arg1
-      { bufferize_function_boundaries = true } : (!transform.any_op) -> !transform.any_op
+      bufferize_function_boundaries = true : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -221,7 +221,7 @@ module attributes {transform.with_named_sequence} {
     %alloc_tensor = transform.structured.match ops{["bufferization.alloc_tensor"]} in %arg1
       : (!transform.any_op) -> !transform.op<"bufferization.alloc_tensor">
     %2, %new = transform.structured.bufferize_to_allocation %alloc_tensor
-      {alloc_op = "memref.alloca"}
+      alloc_op = "memref.alloca"
         : !transform.op<"bufferization.alloc_tensor">
     transform.yield
   }
diff --git a/mlir/test/Dialect/Func/func-transform.mlir b/mlir/test/Dialect/Func/func-transform.mlir
index 8a71511e3ed5b..b9244266474de 100644
--- a/mlir/test/Dialect/Func/func-transform.mlir
+++ b/mlir/test/Dialect/Func/func-transform.mlir
@@ -174,7 +174,7 @@ module attributes {transform.with_named_sequence} {
     %funcs = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     %f:2 = transform.split_handle %funcs : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %module = transform.get_parent_op %f#0 : (!transform.any_op) -> !transform.any_op
-    transform.func.replace_func_signature @func_with_reverse_order_no_result args_interchange = [0, 2, 1] results_interchange = [] at %module {adjust_func_calls} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    transform.func.replace_func_signature @func_with_reverse_order_no_result args_interchange = [0, 2, 1] results_interchange = [] at %module adjust_func_calls : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -210,7 +210,7 @@ module attributes {transform.with_named_sequence} {
     %funcs = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     %f:2 = transform.split_handle %funcs : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %module = transform.get_parent_op %f#0 : (!transform.any_op) -> !transform.any_op
-    transform.func.replace_func_signature @func_with_reverse_order args_interchange = [0, 2, 1] results_interchange = [1, 0] at %module {adjust_func_calls} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    transform.func.replace_func_signature @func_with_reverse_order args_interchange = [0, 2, 1] results_interchange = [1, 0] at %module adjust_func_calls : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -246,7 +246,7 @@ module attributes {transform.with_named_sequence} {
     %funcs = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     %f:2 = transform.split_handle %funcs : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %module = transform.get_parent_op %f#0 : (!transform.any_op) -> !transform.any_op
-    transform.func.replace_func_signature @func_with_reverse_order_with_attr args_interchange = [0, 2, 1] results_interchange = [1, 0] at %module {adjust_func_calls} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    transform.func.replace_func_signature @func_with_reverse_order_with_attr args_interchange = [0, 2, 1] results_interchange = [1, 0] at %module adjust_func_calls : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/GPU/transform-gpu-failing.mlir b/mlir/test/Dialect/GPU/transform-gpu-failing.mlir
index 98f20f0d50765..099283826cee0 100644
--- a/mlir/test/Dialect/GPU/transform-gpu-failing.mlir
+++ b/mlir/test/Dialect/GPU/transform-gpu-failing.mlir
@@ -28,7 +28,7 @@ func.func @map_nested_forall_to_threads_excessive_threads(%x: memref<2 x 32 x f3
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
 
@@ -40,7 +40,7 @@ func.func @map_nested_forall_to_threads_excessive_threads(%x: memref<2 x 32 x f3
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
 
@@ -72,7 +72,7 @@ func.func @map_nested_forall_to_threads_fewer_threads(%x: memref<2 x 32 x f32>,
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
 
@@ -84,7 +84,7 @@ func.func @map_nested_forall_to_threads_fewer_threads(%x: memref<2 x 32 x f32>,
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
 
@@ -113,7 +113,7 @@ func.func @map_nested_forall_to_threads_dynamic_trip_count(%x: memref<2 x 32 x f
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
   return %y : memref<2 x 32 x f32>
@@ -187,14 +187,14 @@ func.func @map_forall_to_blocks_not_unique(%x: memref<2 x 32 x f32>, %y: memref<
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
 
     scf.forall (%i, %j) in (%c7, %c9) {
         %4 = memref.load %x[%i, %j] : memref<2 x 32 x f32>
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
 
@@ -224,14 +224,14 @@ func.func @map_forall_to_blocks_large_loop(%x: memref<2 x 32 x f32>, %y: memref<
       %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
       %6 = math.fma %alpha, %4, %5 : f32
       memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-  }  { mapping = [#gpu.thread<x>, #gpu.thread<y>] }
+  }  {mapping = [#gpu.thread<x>, #gpu.thread<y>]}
 
   scf.forall (%i, %j) in (%c7, %c9) {
       %4 = memref.load %x[%i, %j] : memref<2 x 32 x f32>
       %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
       %6 = math.fma %alpha, %4, %5 : f32
       memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-  }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+  }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
 
   return %y : memref<2 x 32 x f32>
 }
@@ -240,7 +240,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %funcop = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{could not find a unique topLevel scf.forall}}
-    %1 = transform.gpu.map_forall_to_blocks %funcop { generate_gpu_launch } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.gpu.map_forall_to_blocks %funcop generate_gpu_launch : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -255,7 +255,7 @@ func.func @map_forall_to_blocks_large_loop(%x: memref<2 x 32 x f32>, %y: memref<
       %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
       %6 = math.fma %alpha, %4, %5 : f32
       memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-  }  { mapping = [#gpu.block<x>, #gpu.block<y>] }
+  }  {mapping = [#gpu.block<x>, #gpu.block<y>]}
   return %y : memref<2 x 32 x f32>
 }
 
@@ -282,7 +282,7 @@ func.func @saxpy2d_singleloop(%x: !type, %y: !type, %stream : !gpu.async.token)
         %5 = memref.load %y[%i, %j] : !type
         %6 = arith.mulf %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.thread<x>, #gpu.warp<y>] }
+     }  {mapping = [#gpu.thread<x>, #gpu.warp<y>]}
     gpu.terminator
   }
   return %y : !type
@@ -311,7 +311,7 @@ func.func @saxpy2d_singleloop(%x: !type, %y: !type, %stream : !gpu.async.token)
         %5 = memref.load %y[%i, %j] : !type
         %6 = arith.mulf %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.thread<x>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<x>, #gpu.thread<x>]}
     gpu.terminator
   }
   return %y : !type
@@ -340,7 +340,7 @@ func.func @saxpy2d_singleloop(%x: !type, %y: !type, %stream : !gpu.async.token)
         %5 = memref.load %y[%i, %j] : !type
         %6 = arith.mulf %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.thread<x>, #gpu.thread<linear_dim_0>] }
+     }  {mapping = [#gpu.thread<x>, #gpu.thread<linear_dim_0>]}
     gpu.terminator
   }
   return %y : !type
@@ -418,7 +418,7 @@ func.func @masking_mapping_attribute_requires_linear_mapping(
         %5 = memref.load %y[%i] : memref<32xf32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i] : memref<32xf32>
-     }  { mapping = [#gpu.warp<x>, #gpu.mask<0x33>] }
+     }  {mapping = [#gpu.warp<x>, #gpu.mask<0x33>]}
     gpu.terminator
   }
 
@@ -448,7 +448,7 @@ func.func @masking_mapping_attribute_requires_linear_mapping(
         %5 = memref.load %y[%i] : memref<32xf32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i] : memref<32xf32>
-     }  { mapping = [#gpu.thread<linear_dim_0>, #gpu.mask<0xff>] }
+     }  {mapping = [#gpu.thread<linear_dim_0>, #gpu.mask<0xff>]}
     gpu.terminator
   }
 
@@ -497,7 +497,7 @@ func.func @not_a_thread_or_warp_mapping_attribute(%x: memref<2 x 32 x f32>, %y:
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.block<y>, #gpu.block<x>] }
+     }  {mapping = [#gpu.block<y>, #gpu.block<x>]}
     gpu.terminator
   }
 
@@ -527,7 +527,7 @@ func.func @map_nested_forall_to_threads_invalid_block_dims(%x: memref<2 x 32 x f
         %5 = memref.load %y[%i, %j] : memref<2 x 32 x f32>
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : memref<2 x 32 x f32>
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
   return %y : memref<2 x 32 x f32>
@@ -541,4 +541,3 @@ module attributes {transform.with_named_sequence} {
     transform.yield
   }
 }
-
diff --git a/mlir/test/Dialect/GPU/transform-gpu.mlir b/mlir/test/Dialect/GPU/transform-gpu.mlir
index 7e4a02109227a..337cee73f8e35 100644
--- a/mlir/test/Dialect/GPU/transform-gpu.mlir
+++ b/mlir/test/Dialect/GPU/transform-gpu.mlir
@@ -24,7 +24,7 @@ func.func @blocks_3d(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %stream :
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.block<x>, #gpu.block<y>]}
+     }  {mapping = [#gpu.block<x>, #gpu.block<y>]}
     gpu.terminator
   }
   return %y : !type
@@ -76,7 +76,7 @@ func.func @warpgroup_3d(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %stream
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.warpgroup<x>, #gpu.warpgroup<y>]}
+     }  {mapping = [#gpu.warpgroup<x>, #gpu.warpgroup<y>]}
     gpu.terminator
   }
   return %y : !type
@@ -129,7 +129,7 @@ func.func @warp_3d(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %stream : !g
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.warp<x>, #gpu.warp<y>, #gpu.warp<z>]}
+     }  {mapping = [#gpu.warp<x>, #gpu.warp<y>, #gpu.warp<z>]}
     gpu.terminator
   }
   return %y : !type
@@ -180,12 +180,12 @@ func.func @threads_3d(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %stream :
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>]}
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
      scf.forall (%i) in (%c12) {
         %7 = memref.load %t[%i] : !type1d
         %8 = arith.addf %alpha, %7 : f32
         memref.store %8, %t[%i] : !type1d
-     }  {mapping = [#gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<x>]}
     gpu.terminator
   }
   return %y : !type
@@ -227,15 +227,15 @@ func.func @saxpy4d(%x: !type4d, %y: !type4d, %alpha : f32) -> !type4d {
       %5 = memref.load %y[%i, %j, %k, %l] : !type4d
       %6 = math.fma %alpha, %4, %5 : f32
       memref.store %6, %y[%i, %j, %k, %l] : !type4d
-    }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
-  }  { mapping = [#gpu.block<x>, #gpu.block<y>] }
+    }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
+  }  {mapping = [#gpu.block<x>, #gpu.block<y>]}
   return %y : !type4d
 }
 
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %funcop = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %gpuLaunch = transform.gpu.map_forall_to_blocks %funcop { generate_gpu_launch } : (!transform.any_op) -> !transform.any_op
+    %gpuLaunch = transform.gpu.map_forall_to_blocks %funcop generate_gpu_launch : (!transform.any_op) -> !transform.any_op
     transform.gpu.map_nested_forall_to_threads %gpuLaunch block_dims = [32, 4, 1] : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -262,7 +262,7 @@ func.func @saxpy2d_no_barrier(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
   return %y : !type
@@ -296,7 +296,7 @@ func.func @saxpy2d_singleloop(%x: !type, %y: !type, %stream : !gpu.async.token)
         %5 = memref.load %y[%i, %i] : !type
         %6 = arith.mulf %4, %5 : f32
         memref.store %6, %y[%i, %i] : !type
-     }  { mapping = [#gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<x>]}
     gpu.terminator
   }
   return %y : !type
@@ -334,7 +334,7 @@ func.func @saxpy3d_fold_id_z(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %s
         %6 = math.fma %alpha, %4, %5 : f32
 //      CHECK:   memref.store %{{.*}}, %{{.*}}[%[[C0]]
         memref.store %6, %y[%i, %j, %k] : !type
-     }  { mapping = [#gpu.thread<z>, #gpu.thread<y>, #gpu.thread<x>] }
+     }  {mapping = [#gpu.thread<z>, #gpu.thread<y>, #gpu.thread<x>]}
     gpu.terminator
   }
   return %y : !type
@@ -391,7 +391,7 @@ func.func @warpgroup_linear(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %st
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.warpgroup<linear_dim_0>, #gpu.warpgroup<linear_dim_1>]}
+     }  {mapping = [#gpu.warpgroup<linear_dim_0>, #gpu.warpgroup<linear_dim_1>]}
     gpu.terminator
   }
   return %y : !type
@@ -447,7 +447,7 @@ func.func @warp_linear(%x: !type, %y: !type, %t: !type1d, %alpha : f32, %stream
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.warp<linear_dim_0>, #gpu.warp<linear_dim_1>]}
+     }  {mapping = [#gpu.warp<linear_dim_0>, #gpu.warp<linear_dim_1>]}
     gpu.terminator
   }
   return %y : !type
@@ -502,7 +502,7 @@ func.func @map_multi_level_linear(%x: !type, %y: !type, %t: !type1d, %alpha : f3
       %5 = memref.load %y[%i, %j] : !type
       %6 = math.fma %alpha, %4, %5 : f32
       memref.store %6, %y[%i, %j] : !type
-    }  { mapping = [#gpu.thread<y>, #gpu.thread<x>]}
+    }  {mapping = [#gpu.thread<y>, #gpu.thread<x>]}
 
     // CHECK-DAG: %[[LIN:.*]] = affine.apply #[[$MAPLIN]]()[%[[TIDX]], %[[TIDY]]]
     // CHECK-DAG: %[[WIDX:.*]] = affine.apply #[[$MAPWX]]()[%[[TIDX]], %[[TIDY]]]
@@ -513,7 +513,7 @@ func.func @map_multi_level_linear(%x: !type, %y: !type, %t: !type1d, %alpha : f3
         %7 = memref.load %x[%i, %j] : !type
         %8 = arith.addf %alpha, %7 : f32
         memref.store %8, %y[%i, %j] : !type
-     }  {mapping = [#gpu.warp<linear_dim_0>, #gpu.warp<linear_dim_1>, #gpu.warp<linear_dim_2>] }
+     }  {mapping = [#gpu.warp<linear_dim_0>, #gpu.warp<linear_dim_1>, #gpu.warp<linear_dim_2>]}
 
     // CHECK-DAG: %[[LIDX:.*]] = affine.apply #[[$MAPLX]]()[%[[TIDX]], %[[TIDY]]]
     // CHECK-DAG: %[[LIDY:.*]] = affine.apply #[[$MAPLY]]()[%[[TIDX]], %[[TIDY]]]
@@ -525,7 +525,7 @@ func.func @map_multi_level_linear(%x: !type, %y: !type, %t: !type1d, %alpha : f3
         %7 = memref.load %t[%i] : !type1d
         %8 = arith.addf %alpha, %7 : f32
         memref.store %8, %t[%j] : !type1d
-     }  {mapping = [#gpu.thread<linear_dim_0>, #gpu.thread<linear_dim_1>] }
+     }  {mapping = [#gpu.thread<linear_dim_0>, #gpu.thread<linear_dim_1>]}
     gpu.terminator
   }
   return %y : !type
@@ -581,7 +581,7 @@ func.func @block_linear_existing_launch(
         %5 = memref.load %y[%i, %j] : !type
         %6 = math.fma %alpha, %4, %5 : f32
         memref.store %6, %y[%i, %j] : !type
-     }  { mapping = [#gpu.block<linear_dim_0>, #gpu.block<linear_dim_1>]}
+     }  {mapping = [#gpu.block<linear_dim_0>, #gpu.block<linear_dim_1>]}
     gpu.terminator
   }
   return %y : !type
@@ -629,7 +629,7 @@ func.func @block_linear_generate_launch(
     %5 = memref.load %y[%i, %j] : !type
     %6 = math.fma %alpha, %4, %5 : f32
     memref.store %6, %y[%i, %j] : !type
-  }  { mapping = [#gpu.block<linear_dim_0>, #gpu.block<linear_dim_1>]}
+  }  {mapping = [#gpu.block<linear_dim_0>, #gpu.block<linear_dim_1>]}
 
   return %y : !type
 }
diff --git a/mlir/test/Dialect/LLVM/lower-to-llvm-transform-symbol-def.mlir b/mlir/test/Dialect/LLVM/lower-to-llvm-transform-symbol-def.mlir
index 46fba4a517927..63d9566736620 100644
--- a/mlir/test/Dialect/LLVM/lower-to-llvm-transform-symbol-def.mlir
+++ b/mlir/test/Dialect/LLVM/lower-to-llvm-transform-symbol-def.mlir
@@ -23,14 +23,8 @@ transform.named_sequence @lower_to_cpu(
     transform.apply_conversion_patterns.dialect_to_llvm "cf"
   } with type_converter {
     transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-      {index_bitwidth = 64,
-       use_bare_ptr = false,
-       use_bare_ptr_memref_call_conv = false,
-       use_opaque_pointers = true}
-  } {
-    legal_dialects = ["llvm"],
-    partial_conversion
-  } : !transform.any_op
+      index_bitwidth = 64 {use_bare_ptr = false, use_bare_ptr_memref_call_conv = false, use_opaque_pointers = true}
+  } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
 
   %m2 = transform.apply_registered_pass "reconcile-unrealized-casts" to %module : (!transform.any_op) -> !transform.any_op
   transform.yield %m2 : !transform.any_op
diff --git a/mlir/test/Dialect/LLVM/transform-e2e.mlir b/mlir/test/Dialect/LLVM/transform-e2e.mlir
index bf7eba6e50174..43a2dae4ff18b 100644
--- a/mlir/test/Dialect/LLVM/transform-e2e.mlir
+++ b/mlir/test/Dialect/LLVM/transform-e2e.mlir
@@ -16,10 +16,10 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%module_op: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %module_op : (!transform.any_op) -> !transform.any_op
     %1, %loops:3 = transform.structured.tile_using_for %0 tile_sizes [2, 2, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
-    %2 = transform.get_parent_op %1 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 isolated_from_above : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize_children_and_apply_patterns %2 : (!transform.any_op) -> !transform.any_op
     %b = transform.bufferization.one_shot_bufferize layout{IdentityLayoutMap}
-        %module_op {bufferize_function_boundaries = true}
+        %module_op bufferize_function_boundaries = true
         : (!transform.any_op) -> !transform.any_op
 
     %f = transform.structured.match ops{["func.func"]} in %b
diff --git a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
index 95bcd50028287..a859c5a83de23 100644
--- a/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
+++ b/mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
@@ -4,8 +4,8 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 { dimension = 0, target_size = 9 } : (!transform.any_op) -> !transform.any_op
-    %linalg_splits = transform.structured.split %0 after %chunk_sizes { dimension = 0, multiway } : !transform.any_op, !transform.any_op
+    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 dimension = 0 target_size = 9 : (!transform.any_op) -> !transform.any_op
+    %linalg_splits = transform.structured.split %0 after %chunk_sizes {dimension = 0, multiway} : !transform.any_op, !transform.any_op
     transform.foreach %linalg_splits, %tile_sizes : !transform.any_op, !transform.any_op {
     ^bb1(%linalg_split: !transform.any_op, %tile_size: !transform.any_op):
       %tiled_linalg_split, %dim0_loop = transform.structured.tile_using_for %linalg_split tile_sizes [%tile_size] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
@@ -65,8 +65,8 @@ func.func @continuous_tile_linalg_matmul(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 { dimension = 0, target_size = 9 } : (!transform.any_op) -> !transform.param<i64>
-    %linalg_splits = transform.structured.split %0 after %chunk_sizes { dimension = 0, multiway } : !transform.any_op, !transform.param<i64>
+    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 dimension = 0 target_size = 9 : (!transform.any_op) -> !transform.param<i64>
+    %linalg_splits = transform.structured.split %0 after %chunk_sizes {dimension = 0, multiway} : !transform.any_op, !transform.param<i64>
     transform.foreach %linalg_splits, %tile_sizes : !transform.any_op, !transform.param<i64> {
     ^bb1(%linalg_split: !transform.any_op, %tile_size: !transform.param<i64>):
       %tiled_linalg_split, %dim0_loop = transform.structured.tile_using_for %linalg_split tile_sizes [%tile_size] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op)
@@ -126,8 +126,8 @@ func.func @continuous_tile_static_linalg_matmul(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 { dimension = 0, target_size = 9 } : (!transform.any_op) -> !transform.any_op
-    %linalg_splits = transform.structured.split %0 after %chunk_sizes { dimension = 0, multiway } : !transform.any_op, !transform.any_op
+    %tile_sizes, %chunk_sizes = transform.structured.continuous_tile_sizes %0 dimension = 0 target_size = 9 : (!transform.any_op) -> !transform.any_op
+    %linalg_splits = transform.structured.split %0 after %chunk_sizes {dimension = 0, multiway} : !transform.any_op, !transform.any_op
     transform.foreach %linalg_splits, %tile_sizes with_zip_shortest : !transform.any_op, !transform.any_op {
     ^bb1(%linalg_split: !transform.any_op, %tile_size: !transform.any_op):
       %tiled_linalg_split, %dim0_loop = transform.structured.tile_using_for %linalg_split tile_sizes [%tile_size] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
diff --git a/mlir/test/Dialect/Linalg/continuous-tiling-multiway-split.mlir b/mlir/test/Dialect/Linalg/continuous-tiling-multiway-split.mlir
index 12fe8a2a2b6b5..ddbc257bed9e0 100644
--- a/mlir/test/Dialect/Linalg/continuous-tiling-multiway-split.mlir
+++ b/mlir/test/Dialect/Linalg/continuous-tiling-multiway-split.mlir
@@ -7,8 +7,8 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %tiles, %splits = transform.structured.continuous_tile_sizes %0 { dimension = 1, target_size = 9} : (!transform.any_op) -> !transform.any_op
-    %splits2 = transform.structured.split %0 after %splits { dimension = 1, multiway } : !transform.any_op, !transform.any_op
+    %tiles, %splits = transform.structured.continuous_tile_sizes %0 dimension = 1 target_size = 9 : (!transform.any_op) -> !transform.any_op
+    %splits2 = transform.structured.split %0 after %splits {dimension = 1, multiway} : !transform.any_op, !transform.any_op
     transform.yield
   }
 }
@@ -57,8 +57,8 @@ func.func @continuous_tile_linalg_matmul(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %tiles, %splits = transform.structured.continuous_tile_sizes %0 { dimension = 1, target_size = 9} : (!transform.any_op) -> !transform.param<i64>
-    %splits2 = transform.structured.split %0 after %splits { dimension = 1, multiway } : !transform.any_op, !transform.param<i64>
+    %tiles, %splits = transform.structured.continuous_tile_sizes %0 dimension = 1 target_size = 9 : (!transform.any_op) -> !transform.param<i64>
+    %splits2 = transform.structured.split %0 after %splits {dimension = 1, multiway} : !transform.any_op, !transform.param<i64>
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir b/mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir
index 22a06451b0693..19b108014c7a1 100644
--- a/mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir
+++ b/mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir
@@ -108,8 +108,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
@@ -364,8 +364,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
@@ -429,8 +429,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
@@ -467,8 +467,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
@@ -510,8 +510,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
@@ -551,8 +551,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %img2col_tensor_producer, %transformed = transform.structured.convert_conv2d_to_img2col %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    transform.print %img2col_tensor_producer {name = "tensor_producer"}: !transform.any_op
-    transform.print %transformed {name = "transformed"}: !transform.any_op
+    transform.print %img2col_tensor_producer name = "tensor_producer": !transform.any_op
+    transform.print %transformed name = "transformed": !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/hoisting.mlir b/mlir/test/Dialect/Linalg/hoisting.mlir
index aa0b97a4787fa..b3dd43c46524a 100644
--- a/mlir/test/Dialect/Linalg/hoisting.mlir
+++ b/mlir/test/Dialect/Linalg/hoisting.mlir
@@ -698,7 +698,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1
       : (!transform.any_op) -> !transform.any_op
-    transform.structured.hoist_redundant_vector_transfers %0 { verify_non_zero_trip }
+    transform.structured.hoist_redundant_vector_transfers %0 verify_non_zero_trip
       : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -731,7 +731,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1
       : (!transform.any_op) -> !transform.any_op
-    transform.structured.hoist_redundant_vector_transfers %0 { verify_non_zero_trip }
+    transform.structured.hoist_redundant_vector_transfers %0 verify_non_zero_trip
       : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -764,7 +764,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1
       : (!transform.any_op) -> !transform.any_op
-    transform.structured.hoist_redundant_vector_transfers %0 { verify_non_zero_trip }
+    transform.structured.hoist_redundant_vector_transfers %0 verify_non_zero_trip
       : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -797,7 +797,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.func"]} in %arg1
       : (!transform.any_op) -> !transform.any_op
-    transform.structured.hoist_redundant_vector_transfers %0 { verify_non_zero_trip }
+    transform.structured.hoist_redundant_vector_transfers %0 verify_non_zero_trip
       : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/match-ops-interpreter.mlir b/mlir/test/Dialect/Linalg/match-ops-interpreter.mlir
index 66cae5cfd923d..5b58a9464a76f 100644
--- a/mlir/test/Dialect/Linalg/match-ops-interpreter.mlir
+++ b/mlir/test/Dialect/Linalg/match-ops-interpreter.mlir
@@ -139,7 +139,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_structured_body_passthrough(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.body %arg1 { passthrough } : !transform.any_op
+      transform.match.structured.body %arg1 passthrough : !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -189,7 +189,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_structured_body_elementwise(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.body %arg1 { elementwise } : !transform.any_op
+      transform.match.structured.body %arg1 elementwise : !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -246,7 +246,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_structured_body_reduction(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.body %arg1 { reduction_position = 0 } : !transform.any_op
+      transform.match.structured.body %arg1 reduction_position = 0 : !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -414,7 +414,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_all_reduction(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     transform.match.structured failures(propagate) %arg0 : !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.dim %arg1[all] { reduction } : !transform.any_op
+      transform.match.structured.dim %arg1[all] reduction : !transform.any_op
       transform.match.structured.yield
     }
     transform.yield %arg0 : !transform.any_op
@@ -422,7 +422,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_all_parallel(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     transform.match.structured failures(propagate) %arg0 : !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.dim %arg1[all] { parallel } : !transform.any_op
+      transform.match.structured.dim %arg1[all] parallel : !transform.any_op
       transform.match.structured.yield
     }
     transform.yield %arg0 : !transform.any_op
@@ -430,7 +430,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_last_reduction(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     transform.match.structured failures(propagate) %arg0 : !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.dim %arg1[-1] { reduction } : !transform.any_op
+      transform.match.structured.dim %arg1[-1] reduction : !transform.any_op
       transform.match.structured.yield
     }
     transform.yield %arg0 : !transform.any_op
@@ -438,7 +438,7 @@ module attributes { transform.with_named_sequence } {
   transform.named_sequence @match_parallel_except_last(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op {
     transform.match.structured failures(propagate) %arg0 : !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.dim %arg1[except(-1)] { parallel } : !transform.any_op
+      transform.match.structured.dim %arg1[except(-1)] parallel : !transform.any_op
       transform.match.structured.yield
     }
     transform.yield %arg0 : !transform.any_op
@@ -576,7 +576,7 @@ module attributes { transform.with_named_sequence } {
       -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.init %arg1[0] { permutation }: !transform.any_op
+      transform.match.structured.init %arg1[0] permutation: !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -585,7 +585,7 @@ module attributes { transform.with_named_sequence } {
       -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.init %arg1[1] { permutation }: !transform.any_op
+      transform.match.structured.init %arg1[1] permutation: !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -594,7 +594,7 @@ module attributes { transform.with_named_sequence } {
       -> !transform.any_op {
     %0 = transform.match.structured failures(propagate) %arg0 : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      transform.match.structured.init %arg1[2] { projected_permutation }: !transform.any_op
+      transform.match.structured.init %arg1[2] projected_permutation: !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -767,7 +767,7 @@ module attributes { transform.with_named_sequence } {
     %0:2 = transform.match.structured failures(propagate) %arg0
          : (!transform.any_op) -> (!transform.any_op, !transform.any_op) {
     ^bb0(%arg1: !transform.any_op):
-      %1 = transform.match.structured.result %arg1[0] { single } : (!transform.any_op) -> !transform.any_op
+      %1 = transform.match.structured.result %arg1[0] single : (!transform.any_op) -> !transform.any_op
       transform.match.structured.yield %1, %arg1 : !transform.any_op, !transform.any_op
     }
     transform.yield %0#0, %0#1 : !transform.any_op, !transform.any_op
@@ -787,7 +787,7 @@ module attributes { transform.with_named_sequence } {
     %0 = transform.match.structured failures(propagate) %arg0
          : (!transform.any_op) -> !transform.any_op {
     ^bb0(%arg1: !transform.any_op):
-      %1 = transform.match.structured.result %arg1[-1] { any } : (!transform.any_op) -> !transform.any_op
+      %1 = transform.match.structured.result %arg1[-1] any : (!transform.any_op) -> !transform.any_op
       transform.match.structured.yield %arg1 : !transform.any_op
     }
     transform.yield %0 : !transform.any_op
@@ -917,7 +917,7 @@ module attributes { transform.with_named_sequence } {
     -> (!transform.any_op, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>) {
     %1:4 = transform.match.structured %arg0 : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>) {
     ^bb0(%struct: !transform.any_op):
-      transform.match.structured.body %struct { contraction = ["arith.mulf", "arith.addf"] } : !transform.any_op
+      transform.match.structured.body %struct contraction = ["arith.mulf", "arith.addf"] : !transform.any_op
       %0:4 = transform.match.structured.classify_contraction_dims %struct
         : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>)
       transform.match.structured.yield %0#0, %0#1, %0#2, %0#3
@@ -1034,7 +1034,7 @@ module attributes { transform.with_named_sequence } {
     -> (!transform.any_op, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>) {
     %1:8 = transform.match.structured %arg0 : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>) {
     ^bb0(%struct: !transform.any_op):
-      transform.match.structured.body %struct { contraction = ["arith.mulf", "arith.addf"] } : !transform.any_op
+      transform.match.structured.body %struct contraction = ["arith.mulf", "arith.addf"] : !transform.any_op
       %0:8 = transform.match.structured.classify_convolution_dims %struct
         : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>)
       transform.match.structured.yield %0#0, %0#1, %0#2, %0#3, %0#4, %0#5, %0#6, %0#7
diff --git a/mlir/test/Dialect/Linalg/match-ops-invalid.mlir b/mlir/test/Dialect/Linalg/match-ops-invalid.mlir
index 9ff430a350360..b048c470f8f64 100644
--- a/mlir/test/Dialect/Linalg/match-ops-invalid.mlir
+++ b/mlir/test/Dialect/Linalg/match-ops-invalid.mlir
@@ -40,7 +40,7 @@ transform.sequence failures(suppress) {
 transform.sequence failures(suppress) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error @below {{expects parent op to be 'transform.match.structured'}}
-  transform.match.structured.body %arg0 { passthrough } : !transform.any_op
+  transform.match.structured.body %arg0 passthrough : !transform.any_op
   transform.yield
 }
 
@@ -52,7 +52,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{expected predicate to apply to the surrounding structured op}}
-    transform.match.structured.body %arg0 { passthrough } : !transform.any_op
+    transform.match.structured.body %arg0 passthrough : !transform.any_op
     transform.match.structured.yield
   }
   transform.yield
@@ -65,7 +65,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{only one of {"reduction_position", "passthrough", "elementwise", "contraction"} is allowed}}
-    transform.match.structured.body %arg1 { passthrough, reduction_position = 0 } : !transform.any_op
+    transform.match.structured.body %arg1 passthrough reduction_position = 0 : !transform.any_op
     transform.match.structured.yield
   }
   transform.yield
@@ -78,7 +78,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{cannot request both 'all' and 'inverted' values in the list}}
-    "transform.match.structured.dim"(%arg1) { is_all, is_inverted, raw_dim_list = array<i64> } : (!transform.any_op) -> ()
+    "transform.match.structured.dim"(%arg1) <{is_all, is_inverted, raw_dim_list = array<i64>}> : (!transform.any_op) -> ()
     transform.match.structured.yield
   }
   transform.yield
@@ -91,7 +91,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{cannot both request 'all' and specific values in the list}}
-    "transform.match.structured.dim"(%arg1) { is_all, raw_dim_list = array<i64: 0, 1> } : (!transform.any_op) -> ()
+    "transform.match.structured.dim"(%arg1) <{is_all, raw_dim_list = array<i64: 0, 1>}> : (!transform.any_op) -> ()
     transform.match.structured.yield
   }
   transform.yield
@@ -103,7 +103,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{must request specific values in the list if 'all' is not specified}}
-    "transform.match.structured.dim"(%arg1) { raw_dim_list = array<i64> } : (!transform.any_op) -> ()
+    "transform.match.structured.dim"(%arg1) <{raw_dim_list = array<i64>}> : (!transform.any_op) -> ()
     transform.match.structured.yield
   }
   transform.yield
@@ -116,7 +116,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{op expected the listed values to be unique}}
-    "transform.match.structured.dim"(%arg1) { raw_dim_list = array<i64: 0, 0> } : (!transform.any_op) -> ()
+    "transform.match.structured.dim"(%arg1) <{raw_dim_list = array<i64: 0, 0>}> : (!transform.any_op) -> ()
     transform.match.structured.yield
   }
   transform.yield
@@ -129,7 +129,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):   
     // expected-error @below {{cannot request the same dimension to be both parallel and reduction}}
-    "transform.match.structured.dim"(%arg1) { is_all, parallel, reduction, raw_dim_list = array<i64> } : (!transform.any_op) -> ()
+    "transform.match.structured.dim"(%arg1) <{is_all, parallel, reduction, raw_dim_list = array<i64>}> : (!transform.any_op) -> ()
     transform.match.structured.yield
   }
   transform.yield
@@ -142,7 +142,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):   
     // expected-error @below {{"permutation" and "projected_permutation" are mutually exclusive}}
-    transform.match.structured.input %arg1[all] { permutation, projected_permutation } : !transform.any_op
+    transform.match.structured.input %arg1[all] permutation projected_permutation : !transform.any_op
     transform.match.structured.yield
   }
   transform.yield
@@ -167,7 +167,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):   
     // expected-error @below {{"permutation" and "projected_permutation" are mutually exclusive}}
-    transform.match.structured.init %arg1[all] { permutation, projected_permutation } : !transform.any_op
+    transform.match.structured.init %arg1[all] permutation projected_permutation : !transform.any_op
     transform.match.structured.yield
   }
   transform.yield
@@ -205,7 +205,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{expects either the any/single keyword or the type value handle result type}}
-    transform.match.structured.result %arg1[0] {any} : (!transform.any_op) -> !transform.any_value
+    transform.match.structured.result %arg1[0] any : (!transform.any_op) -> !transform.any_value
     transform.match.structured.yield
   }
   transform.yield
@@ -218,7 +218,7 @@ transform.sequence failures(suppress) {
   transform.match.structured %arg0 : !transform.any_op {
   ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{'any' and 'single' are mutually exclusive}}
-    transform.match.structured.result %arg1[0] {any, single} : (!transform.any_op) -> !transform.any_op
+    transform.match.structured.result %arg1[0] any single : (!transform.any_op) -> !transform.any_op
     transform.match.structured.yield
   }
   transform.yield
diff --git a/mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir b/mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir
index 6cab25b50460d..dc4d8d1075b32 100644
--- a/mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir
+++ b/mlir/test/Dialect/Linalg/matmul-shared-memory-padding.mlir
@@ -56,9 +56,7 @@ module attributes {transform.with_named_sequence} {
 
     // Pad linalg.matmul.
     %padded, %pad, %copy_back = transform.structured.pad %tiled_linalg_op
-        {padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-         padding_dimensions=[0, 1, 2], nofold_flags=[1, 1, 1],
-         copy_back_op = "linalg.copy"}
+        padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] copy_back_op = "linalg.copy"
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // Map and tile tensor.pad.
@@ -85,7 +83,7 @@ module attributes {transform.with_named_sequence} {
 
     // Assign shared memory buffer to padding.
     %buffer, %new_ops = transform.structured.bufferize_to_allocation
-        %pad_forall_op {memory_space = 3, bufferize_destination_only, emit_dealloc}
+        %pad_forall_op memory_space = 3 bufferize_destination_only emit_dealloc
         : !transform.any_op
 
     // Bufferize.
@@ -95,7 +93,7 @@ module attributes {transform.with_named_sequence} {
     transform.apply_dce to %func_op_1 : !transform.any_op
     transform.apply_cse to %func_op_1 : !transform.any_op
     %bufferized = transform.bufferization.one_shot_bufferize
-        layout{IdentityLayoutMap} %arg1 {bufferize_function_boundaries=true}
+        layout{IdentityLayoutMap} %arg1 bufferize_function_boundaries=true
         : (!transform.any_op) -> !transform.any_op
 
     // Apply vectorization to copy back from shared memory.
@@ -113,7 +111,7 @@ module attributes {transform.with_named_sequence} {
     transform.apply_patterns to %func_op_2 {
       transform.apply_patterns.canonicalization
       transform.apply_patterns.vector.lower_masked_transfers
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield
   }
 }
@@ -175,9 +173,7 @@ module attributes {transform.with_named_sequence} {
 
     // Pad linalg.matmul.
     %padded, %pad, %copy_back = transform.structured.pad %tiled_linalg_op
-        {padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-         padding_dimensions=[0, 1, 2], nofold_flags=[1, 1, 1],
-         copy_back_op = "linalg.copy"}
+        padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] copy_back_op = "linalg.copy"
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // Map and tile tensor.pad.
@@ -199,7 +195,7 @@ module attributes {transform.with_named_sequence} {
 
     // Assign shared memory buffer to padding.
     %buffer, %new_ops = transform.structured.bufferize_to_allocation
-        %pad_forall_op {memory_space = 3, bufferize_destination_only, emit_dealloc}
+        %pad_forall_op memory_space = 3 bufferize_destination_only emit_dealloc
         : !transform.any_op
 
     // Bufferize.
@@ -209,7 +205,7 @@ module attributes {transform.with_named_sequence} {
     transform.apply_dce to %func_op_1 : !transform.any_op
     transform.apply_cse to %func_op_1 : !transform.any_op
     %bufferized = transform.bufferization.one_shot_bufferize
-        layout{IdentityLayoutMap} %arg1 {bufferize_function_boundaries=true}
+        layout{IdentityLayoutMap} %arg1 bufferize_function_boundaries=true
         : (!transform.any_op) -> !transform.any_op
 
     // Apply vectorization to copy back from shared memory.
@@ -227,7 +223,7 @@ module attributes {transform.with_named_sequence} {
     transform.apply_patterns to %func_op_2 {
       transform.apply_patterns.canonicalization
       transform.apply_patterns.vector.lower_masked_transfers
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/multisize-tiling-full.mlir b/mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
index af041db9eeffb..41405dcc9a369 100644
--- a/mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
+++ b/mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
@@ -5,16 +5,16 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:3 = transform.structured.multitile_sizes %0 { dimension = 0, target_size = 3} : (!transform.any_op) -> !transform.any_op
-    %split = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op, !transform.any_op
+    %1:3 = transform.structured.multitile_sizes %0 dimension = 0 target_size = 3 : (!transform.any_op) -> !transform.any_op
+    %split = transform.structured.split %0 after %1#2 {dimension = 0} : !transform.any_op, !transform.any_op
     %2:2 = transform.split_handle %split : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %3:2 = transform.structured.tile_using_for %2#0 tile_sizes [%1#0] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
     %4:2 = transform.structured.tile_using_for %2#1 tile_sizes [%1#1] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
     %5 = transform.merge_handles %3#0, %4#0 : !transform.any_op
     transform.foreach %5 : !transform.any_op {
     ^bb0(%inner_linalg: !transform.any_op):
-      %low, %high, %split_point = transform.structured.multitile_sizes %inner_linalg { dimension = 1, target_size = 10} : (!transform.any_op) -> !transform.any_op
-      %split2 = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op, !transform.any_op
+      %low, %high, %split_point = transform.structured.multitile_sizes %inner_linalg dimension = 1 target_size = 10 : (!transform.any_op) -> !transform.any_op
+      %split2 = transform.structured.split %inner_linalg after %split_point {dimension = 1} : !transform.any_op, !transform.any_op
       %inner_linalg_low, %inner_linalg_high = transform.split_handle %split2 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.structured.tile_using_for %inner_linalg_low tile_sizes [0, %low] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.structured.tile_using_for %inner_linalg_high tile_sizes [0, %high] : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
@@ -111,9 +111,9 @@ func.func @two_d(%arg0: tensor<10x34xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:3 = transform.structured.multitile_sizes %0 { dimension = 0, target_size = 3} : (!transform.any_op) -> !transform.param<i64>
-    %t:3 = transform.structured.multitile_sizes %0 { dimension = 1, target_size = 10} : (!transform.any_op) -> !transform.param<i64>
-    %split = transform.structured.split %0 after %1#2 { dimension = 0 } : !transform.any_op, !transform.param<i64>
+    %1:3 = transform.structured.multitile_sizes %0 dimension = 0 target_size = 3 : (!transform.any_op) -> !transform.param<i64>
+    %t:3 = transform.structured.multitile_sizes %0 dimension = 1 target_size = 10 : (!transform.any_op) -> !transform.param<i64>
+    %split = transform.structured.split %0 after %1#2 {dimension = 0} : !transform.any_op, !transform.param<i64>
     %2:2 = transform.split_handle %split : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %3:2 = transform.structured.tile_using_for %2#0 tile_sizes [%1#0] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op)
     %4:2 = transform.structured.tile_using_for %2#1 tile_sizes [%1#1] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op)
@@ -121,7 +121,7 @@ module attributes {transform.with_named_sequence} {
     %tt:3 = transform.replicate num(%5) %t#0, %t#1, %t#2 : !transform.any_op, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>
     transform.foreach %5, %tt#0, %tt#1, %tt#2 : !transform.any_op, !transform.param<i64>, !transform.param<i64>, !transform.param<i64> {
     ^bb0(%inner_linalg: !transform.any_op, %low: !transform.param<i64>, %high: !transform.param<i64>, %split_point: !transform.param<i64>):
-      %split2 = transform.structured.split %inner_linalg after %split_point { dimension = 1 } : !transform.any_op, !transform.param<i64>
+      %split2 = transform.structured.split %inner_linalg after %split_point {dimension = 1} : !transform.any_op, !transform.param<i64>
       %inner_linalg_low, %inner_linalg_high = transform.split_handle %split2 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.structured.tile_using_for %inner_linalg_low tile_sizes [0, %low] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op)
       transform.structured.tile_using_for %inner_linalg_high tile_sizes [0, %high] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op)
diff --git a/mlir/test/Dialect/Linalg/pad-to-specific-memory-space.mlir b/mlir/test/Dialect/Linalg/pad-to-specific-memory-space.mlir
index 9f52cf8aa862a..48a6bb498c7ca 100644
--- a/mlir/test/Dialect/Linalg/pad-to-specific-memory-space.mlir
+++ b/mlir/test/Dialect/Linalg/pad-to-specific-memory-space.mlir
@@ -49,13 +49,9 @@ func.func @pad_to_memory_space(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
-    %buffer, %new_ops = transform.structured.bufferize_to_allocation %pad {memory_space = 3, emit_dealloc} : !transform.any_op
-    %2 = transform.bufferization.one_shot_bufferize %arg1 {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %buffer, %new_ops = transform.structured.bufferize_to_allocation %pad memory_space = 3 emit_dealloc : !transform.any_op
+    %2 = transform.bufferization.one_shot_bufferize %arg1 bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
     transform.yield
   }
@@ -108,16 +104,12 @@ func.func @vectorize_and_bufferize_pad(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.structured.vectorize %pad vector_sizes [10, 12] : !transform.any_op
     %vector_write = transform.structured.match ops{["vector.transfer_write"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %mask_op = transform.get_parent_op %vector_write {op_name = "vector.mask"} : (!transform.any_op) -> !transform.any_op
-    %buffer, %new_ops = transform.structured.bufferize_to_allocation %mask_op {memory_space = 3, emit_dealloc} : !transform.any_op
-    %2 = transform.bufferization.one_shot_bufferize %arg1 {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+    %mask_op = transform.get_parent_op %vector_write op_name = "vector.mask" : (!transform.any_op) -> !transform.any_op
+    %buffer, %new_ops = transform.structured.bufferize_to_allocation %mask_op memory_space = 3 emit_dealloc : !transform.any_op
+    %2 = transform.bufferization.one_shot_bufferize %arg1 bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/promote.mlir b/mlir/test/Dialect/Linalg/promote.mlir
index bab606c3a8169..6307e5e3e9d87 100644
--- a/mlir/test/Dialect/Linalg/promote.mlir
+++ b/mlir/test/Dialect/Linalg/promote.mlir
@@ -67,7 +67,7 @@ func.func @matmul_f32(%A: memref<?xi8>, %M: index, %N: index, %K: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { use_alloca } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 use_alloca : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -184,7 +184,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1, %loops:3 = transform.structured.tile_using_for %0 tile_sizes [16, 16, 16] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
-    %2 = transform.structured.promote %1 { operands_to_promote = [0, 1], mapping = [#gpu.memory_space<workgroup>] } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.promote %1 operands_to_promote = [0, 1] mapping = [#gpu.memory_space<workgroup>] : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -228,7 +228,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1, %loops:3 = transform.structured.tile_using_for %0 tile_sizes [16, 16, 16] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
-    %2 = transform.structured.promote %1 { operands_to_promote = [0, 1], mapping = [#gpu.memory_space<private>] } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.promote %1 operands_to_promote = [0, 1] mapping = [#gpu.memory_space<private>] : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -386,7 +386,7 @@ func.func @linalg_generic_update_all_function_inputs_outputs(%arg0: memref<8x4xf
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { memory_space = #gpu.address_space<workgroup> } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 memory_space(#gpu.address_space<workgroup>) : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/promotion_options.mlir b/mlir/test/Dialect/Linalg/promotion_options.mlir
index dbc073c2665f9..18679f74cbfa0 100644
--- a/mlir/test/Dialect/Linalg/promotion_options.mlir
+++ b/mlir/test/Dialect/Linalg/promotion_options.mlir
@@ -38,7 +38,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1, %loops:3 = transform.structured.tile_using_for %0 tile_sizes [16, 16, 16] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
-    %2 = transform.structured.promote %1 { operands_to_promote = [0, 2], force_full_tiles = [false, false], use_full_tiles_by_default } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.promote %1 operands_to_promote = [0, 2] use_full_tiles_by_default {force_full_tiles = [false, false]} : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -94,7 +94,7 @@ func.func @matmul_f32(%A: memref<512x256xf32>, %B: memref<256x512xf32>, %C: memr
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { use_original_subview_size } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 use_original_subview_size : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/td/decompose-pack.mlir b/mlir/test/Dialect/Linalg/td/decompose-pack.mlir
index 32054134266c7..48fecefce56e7 100644
--- a/mlir/test/Dialect/Linalg/td/decompose-pack.mlir
+++ b/mlir/test/Dialect/Linalg/td/decompose-pack.mlir
@@ -2,7 +2,7 @@ module @transforms attributes { transform.with_named_sequence } {
   transform.named_sequence @decompose_pack(%module: !transform.any_op {transform.readonly}) {
     %pack = transform.structured.match ops{["linalg.pack"]} in %module : (!transform.any_op) -> !transform.any_op
 
-    %1 = transform.get_parent_op %pack {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %pack isolated_from_above : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %1 {
       transform.apply_patterns.linalg.decompose_pack_unpack
     } : !transform.any_op
diff --git a/mlir/test/Dialect/Linalg/td/decompose-unpack.mlir b/mlir/test/Dialect/Linalg/td/decompose-unpack.mlir
index f5b8403af5e58..0fe284c8a5db4 100644
--- a/mlir/test/Dialect/Linalg/td/decompose-unpack.mlir
+++ b/mlir/test/Dialect/Linalg/td/decompose-unpack.mlir
@@ -2,7 +2,7 @@ module @transforms attributes { transform.with_named_sequence } {
   transform.named_sequence @decompose_unpack(%module: !transform.any_op {transform.readonly}) {
     %pack = transform.structured.match ops{["linalg.unpack"]} in %module : (!transform.any_op) -> !transform.any_op
 
-    %1 = transform.get_parent_op %pack {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %pack isolated_from_above : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %1 {
       transform.apply_patterns.linalg.decompose_pack_unpack
     } : !transform.any_op
diff --git a/mlir/test/Dialect/Linalg/td/propagate-data-layout.mlir b/mlir/test/Dialect/Linalg/td/propagate-data-layout.mlir
index 5167cbe0f1f2e..0eada8647e85c 100644
--- a/mlir/test/Dialect/Linalg/td/propagate-data-layout.mlir
+++ b/mlir/test/Dialect/Linalg/td/propagate-data-layout.mlir
@@ -3,7 +3,7 @@ module @transforms attributes { transform.with_named_sequence } {
     %func = transform.structured.match ops{["func.func"]} in %module : (!transform.any_op) -> !transform.any_op
 
     transform.apply_patterns to %func {
-      transform.apply_patterns.linalg.data_layout_propagation {poison_padding = true}
+      transform.apply_patterns.linalg.data_layout_propagation poison_padding = true
       transform.apply_patterns.linalg.extract_slice_sinking
     } : !transform.any_op
 
diff --git a/mlir/test/Dialect/Linalg/td/vectorize-with-patterns.mlir b/mlir/test/Dialect/Linalg/td/vectorize-with-patterns.mlir
index f8d1a50d7430d..a5f67772f8a03 100644
--- a/mlir/test/Dialect/Linalg/td/vectorize-with-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/td/vectorize-with-patterns.mlir
@@ -2,8 +2,8 @@ module @transforms attributes { transform.with_named_sequence } {
   transform.named_sequence @vectorize_with_patterns(%module: !transform.any_op {transform.readonly}) {
 
     %0 = transform.structured.match ops{["linalg.generic"]} in %module : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 { vectorize_nd_extract } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 vectorize_nd_extract : (!transform.any_op) -> !transform.any_op
 
     transform.yield
    }
diff --git a/mlir/test/Dialect/Linalg/transform-lower-pack.mlir b/mlir/test/Dialect/Linalg/transform-lower-pack.mlir
index 8f5a810ff428f..efe832233f1cc 100644
--- a/mlir/test/Dialect/Linalg/transform-lower-pack.mlir
+++ b/mlir/test/Dialect/Linalg/transform-lower-pack.mlir
@@ -116,7 +116,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%module_op: !transform.any_op {transform.readonly}) {
     %pack = transform.structured.match ops{["linalg.pack"]} in %module_op
       : (!transform.any_op) -> !transform.op<"linalg.pack">
-    transform.structured.lower_pack %pack {lowerPadLikeWithInsertSlice = false}: (!transform.op<"linalg.pack">)
+    transform.structured.lower_pack %pack lowerPadLikeWithInsertSlice = false: (!transform.op<"linalg.pack">)
       -> (!transform.op<"tensor.pad">, !transform.op<"tensor.expand_shape">, !transform.op<"linalg.transpose">)
       transform.yield
   }
@@ -285,7 +285,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%module_op: !transform.any_op {transform.readonly}) {
     %unpack = transform.structured.match ops{["linalg.unpack"]} in %module_op
       : (!transform.any_op) -> !transform.op<"linalg.unpack">
-    transform.structured.lower_unpack %unpack {lowerUnpadLikeWithExtractSlice = false}: (!transform.op<"linalg.unpack">)
+    transform.structured.lower_unpack %unpack lowerUnpadLikeWithExtractSlice = false: (!transform.op<"linalg.unpack">)
       -> (!transform.op<"tensor.empty">,
           !transform.op<"linalg.transpose">,
           !transform.op<"tensor.collapse_shape">,
diff --git a/mlir/test/Dialect/Linalg/transform-op-bufferize-to-allocation.mlir b/mlir/test/Dialect/Linalg/transform-op-bufferize-to-allocation.mlir
index 15a0a94079b2e..92135f23c80e3 100644
--- a/mlir/test/Dialect/Linalg/transform-op-bufferize-to-allocation.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-bufferize-to-allocation.mlir
@@ -32,7 +32,7 @@ func.func @tensor_pad_constant(%t: tensor<?x10xindex>, %l2: index, %h1: index,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 emit_dealloc : !transform.any_op
 
     // Ensure that one linalg.fill was generated.
     %fill_op = transform.select "linalg.fill" in %new : (!transform.any_op) -> !transform.any_op
@@ -71,7 +71,7 @@ func.func @tensor_pad_constant_with_custom_copy(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 3, alloc_op = "memref.alloca", memcpy_op = "linalg.copy", emit_dealloc}: !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 3 alloc_op = "memref.alloca" memcpy_op = "linalg.copy" emit_dealloc: !transform.any_op
 
     // Ensure that one linalg.fill was generated.
     %fill_op = transform.select "linalg.fill" in %new : (!transform.any_op) -> !transform.any_op
@@ -119,7 +119,7 @@ func.func @tensor_pad_constant(%t: tensor<?x10xindex>, %l2: index, %h1: index,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 emit_dealloc : !transform.any_op
     // Make sure that One-Shot Bufferize can bufferize the rest.
     %4 = transform.bufferization.one_shot_bufferize %arg1 : (!transform.any_op) -> !transform.any_op
     transform.yield
@@ -145,7 +145,7 @@ func.func @tensor_insert(%t: tensor<?x10xindex>, %idx: index, %v: index) -> tens
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["tensor.insert"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 emit_dealloc : !transform.any_op
     // Make sure that One-Shot Bufferize can bufferize the rest.
     %4 = transform.bufferization.one_shot_bufferize %arg1 : (!transform.any_op) -> !transform.any_op
     transform.yield
@@ -170,7 +170,7 @@ func.func @tensor_insert_into_empty(%idx: index, %v: index) -> tensor<10xindex>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     %0 = transform.structured.match ops{["tensor.insert"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 emit_dealloc : !transform.any_op
     // Make sure that One-Shot Bufferize can bufferize the rest.
     %4 = transform.bufferization.one_shot_bufferize %arg1 : (!transform.any_op) -> !transform.any_op
     transform.yield
@@ -189,7 +189,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.extract"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below{{failed to bufferize operation}}
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 emit_dealloc : !transform.any_op
     transform.yield
   }
 }
@@ -212,7 +212,7 @@ func.func @vector_mask(%t: tensor<?xf32>, %val: vector<16xf32>, %idx: index, %m0
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["vector.mask"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 emit_dealloc : !transform.any_op
     transform.yield
   }
 }
@@ -235,7 +235,7 @@ func.func @tensor_insert_destination(%t: tensor<?x10xindex>, %idx: index, %v: in
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, bufferize_destination_only, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 bufferize_destination_only emit_dealloc : !transform.any_op
     transform.yield
   }
 }
@@ -261,7 +261,7 @@ func.func @scf_for_destination(%t: tensor<?x10xindex>, %lb: index, %ub: index, %
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["scf.for"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, bufferize_destination_only, emit_dealloc} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 bufferize_destination_only emit_dealloc : !transform.any_op
     transform.yield
   }
 }
@@ -278,7 +278,7 @@ func.func @tensor_insert_destination_no_dealloc(%t: tensor<?x10xindex>, %idx: in
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2, %new = transform.structured.bufferize_to_allocation %0 {memory_space = 4, bufferize_destination_only} : !transform.any_op
+    %2, %new = transform.structured.bufferize_to_allocation %0 memory_space = 4 bufferize_destination_only : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-op-fuse.mlir b/mlir/test/Dialect/Linalg/transform-op-fuse.mlir
index a9e3f06736174..2db4fedb34c2e 100644
--- a/mlir/test/Dialect/Linalg/transform-op-fuse.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-fuse.mlir
@@ -104,7 +104,7 @@ func.func @fuse_unary_forall(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf32>) ->
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.add"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1, %loop = transform.structured.fuse %0 tile_sizes [32, 32] {use_forall}
+    %1, %loop = transform.structured.fuse %0 tile_sizes [32, 32] use_forall
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -164,7 +164,7 @@ module attributes {transform.with_named_sequence} {
     %c32 = transform.param.constant 32 : i64 -> !transform.any_param
     %c64 = transform.param.constant 64 : i64 -> !transform.any_param
     %tiles = transform.merge_handles %c32, %c64 : !transform.any_param
-    %1, %loops = transform.structured.fuse %0 tile_sizes *(%tiles) {use_forall}
+    %1, %loops = transform.structured.fuse %0 tile_sizes *(%tiles) use_forall
       : (!transform.any_op, !transform.any_param) -> (!transform.any_op, !transform.any_op)
     // Verify that correct number of loops is present in packed result.
     %loop:1 = transform.split_handle %loops : (!transform.any_op)
@@ -384,7 +384,7 @@ func.func @fuse_through_slice(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf32>) ->
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.add"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] {apply_cleanup}
+    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] apply_cleanup
       : (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op)
     transform.yield
   }
@@ -418,7 +418,7 @@ func.func @fuse_through_slice_and_cast_chain(%arg0: tensor<100x100xf32>, %arg1:
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.add"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] {apply_cleanup}
+    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] apply_cleanup
       : (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op)
     transform.yield
   }
@@ -453,7 +453,7 @@ func.func @fuse_unrelated_slices(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf32>)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.add"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] {apply_cleanup}
+    %1, %loops:2 = transform.structured.fuse %0 tile_sizes [32, 32] interchange [0, 1] apply_cleanup
       : (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op)
     transform.yield
   }
@@ -479,9 +479,9 @@ func.func @bubble_up_extract_slice_through_expand_shape(%0: tensor<60xf32>) -> t
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:3 = transform.structured.fuse %0 tile_sizes [1, 1, 5] interchange [0, 1, 2] {apply_cleanup} : 
+    %transformed, %loops:3 = transform.structured.fuse %0 tile_sizes [1, 1, 5] interchange [0, 1, 2] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op, !transform.any_op)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -504,9 +504,9 @@ func.func @bubble_up_extract_slice_through_expand_shape_full_inner_dim(%0: tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:2 = transform.structured.fuse %0 tile_sizes [1, 2, 0] interchange [0, 1, 2] {apply_cleanup} :
+    %transformed, %loops:2 = transform.structured.fuse %0 tile_sizes [1, 2, 0] interchange [0, 1, 2] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -528,9 +528,9 @@ func.func @no_bubble_up_extract_slice_through_expand_shape_non_contiguous(%0: te
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:3 = transform.structured.fuse %0 tile_sizes [1, 2, 5] interchange [0, 1, 2] {apply_cleanup} :
+    %transformed, %loops:3 = transform.structured.fuse %0 tile_sizes [1, 2, 5] interchange [0, 1, 2] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op, !transform.any_op)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -559,9 +559,9 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:4 = transform.structured.fuse %0 tile_sizes [1, 2, 0, 1, 4] interchange [0, 1, 2, 3, 4] {apply_cleanup} :
+    %transformed, %loops:4 = transform.structured.fuse %0 tile_sizes [1, 2, 0, 1, 4] interchange [0, 1, 2, 3, 4] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op, !transform.any_op, !transform.any_op)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -588,9 +588,9 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [0, 0, 1, 0] interchange [0, 1, 2, 3] {apply_cleanup} :
+    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [0, 0, 1, 0] interchange [0, 1, 2, 3] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -615,7 +615,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     %transformed, %loops:3 = transform.structured.fuse %0 tile_sizes [1, 1, 5] interchange [0, 1, 2] :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">, !transform.any_op, !transform.any_op)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -636,9 +636,9 @@ func.func @bubble_up_extract_slice_through_collapse_shape(%0: tensor<1x8x1800x32
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [1, 0, 0] interchange [0, 1, 2] {apply_cleanup} : 
+    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [1, 0, 0] interchange [0, 1, 2] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">)
-    transform.yield 
+    transform.yield
   }
 }
 
@@ -662,9 +662,9 @@ func.func @bubble_up_extract_slice_through_collapse_shape_with_collapse_producer
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.exp"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [1, 0, 0] interchange [0, 1, 2] {apply_cleanup} : 
+    %transformed, %loops:1 = transform.structured.fuse %0 tile_sizes [1, 0, 0] interchange [0, 1, 2] apply_cleanup :
       (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">)
-    transform.yield 
+    transform.yield
   }
 }
 
diff --git a/mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir b/mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
index a6943cf338d42..6b2c67e7d9125 100644
--- a/mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-hoist-pad-build-packing-loop-nest.mlir
@@ -17,10 +17,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // In this case, the pad op is actually empty: we only tile the first dimension
     // and it does not have an impact on the RHS operand.
@@ -51,10 +48,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[2]
       : (!transform.any_op) -> !transform.any_op
@@ -91,10 +85,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[0]
       : (!transform.any_op) -> !transform.any_op
@@ -131,10 +122,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[0]
       : (!transform.any_op) -> !transform.any_op
@@ -169,10 +157,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1:2 = transform.structured.tile_using_for %matmul tile_sizes [5, 0, 7] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[2]
       : (!transform.any_op) -> !transform.any_op
diff --git a/mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir b/mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
index e075ff57666b0..3661d3bb1b4af 100644
--- a/mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
@@ -17,11 +17,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      copy_back_op = "none"
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] copy_back_op = "none" : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // In this case, the pad op is actually empty: we only tile the first dimension
     // and it does not have an impact on the RHS operand.
@@ -55,11 +51,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      copy_back_op = "none"
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] copy_back_op = "none" : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[2]
       : (!transform.any_op) -> !transform.op<"tensor.pad">
@@ -100,11 +92,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      copy_back_op = "none"
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] copy_back_op = "none" : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[0]
       : (!transform.any_op) -> !transform.any_op
@@ -147,11 +135,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      copy_back_op = "none"
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] copy_back_op = "none" : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[0]
       : (!transform.any_op) -> !transform.any_op
@@ -193,11 +177,7 @@ module attributes {transform.with_named_sequence} {
 
     %matmul_l1, %loops_l1:2 = transform.structured.tile_using_for %matmul tile_sizes [5, 0, 7] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
-    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      copy_back_op = "none"
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %matmul_padded, %0, %copy_back = transform.structured.pad %matmul_l1 padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] copy_back_op = "none" : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     %pad = transform.get_producer_of_operand %matmul_padded[2]
       : (!transform.any_op) -> !transform.op<"tensor.pad">
diff --git a/mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir b/mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir
index e58ba94c7b1dd..41fa9f6b57bcb 100644
--- a/mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir
@@ -5,7 +5,7 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-      transform.structured.multitile_sizes %0 { target_size = 3, dimension = 0 } : (!transform.any_op) -> !transform.any_op
+      transform.structured.multitile_sizes %0 dimension = 0 target_size = 3 : (!transform.any_op) -> !transform.any_op
       transform.yield
   }
 }
@@ -32,7 +32,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
       %low_tile, %high_tile, %split_point =
-        transform.structured.multitile_sizes %0 { target_size = 3, dimension = 0 }
+        transform.structured.multitile_sizes %0 dimension = 0 target_size = 3
         : (!transform.any_op) -> !transform.param<i64>
       // expected-remark @below {{2 : i64}}
       transform.debug.emit_param_as_remark %low_tile : !transform.param<i64>
@@ -60,7 +60,7 @@ func.func @multitile_sizes_static_gen(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-      transform.structured.multitile_sizes %0 { target_size = 3, divisor = 2, dimension = 0 } : (!transform.any_op) -> !transform.any_op
+      transform.structured.multitile_sizes %0 dimension = 0 target_size = 3 divisor = 2 : (!transform.any_op) -> !transform.any_op
       transform.yield
   }
 }
@@ -104,7 +104,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
       // expected-error @below {{cannot compute parametric tile sizes for dynamically shaped payload op}}
-      transform.structured.multitile_sizes %0 { target_size = 3, divisor = 2, dimension = 0 }
+      transform.structured.multitile_sizes %0 dimension = 0 target_size = 3 divisor = 2
         : (!transform.any_op) -> !transform.param<i64>
         transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface-multiple-of.mlir b/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface-multiple-of.mlir
index 981f5dc37c859..ea19eaf353821 100644
--- a/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface-multiple-of.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface-multiple-of.mlir
@@ -35,9 +35,7 @@ module attributes {transform.with_named_sequence} {
 
     // Tile to 5 then pad to 8 (supposedly to better hit vector ops).
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul_l1 to padding_sizes [8] pad_to_multiple_of {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul_l1 to padding_sizes [8] pad_to_multiple_of padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     transform.yield
   }
@@ -72,9 +70,7 @@ module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [3, 0, 5] pad_to_multiple_of {
-        padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32]
-      } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [3, 0, 5] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.yield
     }
   }
@@ -126,9 +122,7 @@ module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [3, 0, 5] pad_to_multiple_of {
-        padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32]
-      } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [3, 0, 5] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.yield
     }
   }
@@ -169,9 +163,7 @@ module attributes {transform.with_named_sequence} {
       : (!transform.any_op) -> !transform.any_op
 
     // Pad then tile should produce static shapes.
-    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul to padding_sizes [8, 0, 16] pad_to_multiple_of {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul to padding_sizes [8, 0, 16] pad_to_multiple_of padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     %m, %l0, %l1 = transform.structured.tile_using_for %matmul_padded tile_sizes [8, 0, 16]
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
@@ -182,13 +174,13 @@ module attributes {transform.with_named_sequence} {
       : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %func2 {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     %minmax = transform.structured.match ops{["affine.min", "affine.max"]} in %module_op
       : (!transform.any_op) -> !transform.any_op
     transform.affine.simplify_min_max_affine_ops %minmax : !transform.any_op
     transform.apply_patterns to %func2 {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield
   }
 }
@@ -230,9 +222,7 @@ module attributes {transform.with_named_sequence} {
     %m, %l0, %l1 = transform.structured.tile_using_for %matmul tile_sizes [8, 0, 16]
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
-    %matmul_padded, %_ = transform.structured.pad_tiling_interface %m to padding_sizes [8, 0, 16] pad_to_multiple_of {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %matmul_padded, %_ = transform.structured.pad_tiling_interface %m to padding_sizes [8, 0, 16] pad_to_multiple_of padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     transform.yield
   }
@@ -264,9 +254,7 @@ module attributes {transform.with_named_sequence} {
     %m, %l0, %l1 = transform.structured.tile_using_for %matmul tile_sizes [8, 0, 16]
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
-    %matmul_padded, %_ = transform.structured.pad_tiling_interface %m to padding_sizes [8, 0, 16] pad_to_multiple_of {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %matmul_padded, %_ = transform.structured.pad_tiling_interface %m to padding_sizes [8, 0, 16] pad_to_multiple_of padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     transform.yield
   }
@@ -296,9 +284,7 @@ func.func @pad_conv(%arg0: tensor<1x16x16x4xf32>, %arg1: tensor<16x3x3x4xf32>, %
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of {
-      padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -337,9 +323,7 @@ func.func @pad_conv_dynamic(%arg0: tensor<1x16x?x4xf32>, %arg1: tensor<16x3x3x4x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of {
-      padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -368,9 +352,7 @@ func.func @pad_conv_strided(%arg0: tensor<1x42x42x4xf32>, %arg1: tensor<16x3x3x4
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of {
-      padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -399,9 +381,7 @@ func.func @pad_conv_dilated(%arg0: tensor<1x18x18x4xf32>, %arg1: tensor<16x3x3x4
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of {
-      padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [0, 0, 16, 0, 0, 0, 16] pad_to_multiple_of padding_values = [0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface.mlir b/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface.mlir
index 9a3dcf0b485d5..d9e67d3905d35 100644
--- a/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-pad-tiling-interface.mlir
@@ -17,9 +17,7 @@ module attributes {transform.with_named_sequence} {
     %fill_l1, %loops_l1 = transform.structured.tile_using_for %fill tile_sizes [5]
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
-    %fill_padded, %_ = transform.structured.pad_tiling_interface %fill_l1 to padding_sizes [8] {
-      padding_values= [#ub.poison, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %fill_padded, %_ = transform.structured.pad_tiling_interface %fill_l1 to padding_sizes [8] padding_values= [#ub.poison, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     transform.yield
   }
@@ -53,9 +51,7 @@ module attributes {transform.with_named_sequence} {
 
     // Tile to 5 then pad to 8 (supposedly to better hit vector ops).
     %matmul_l1, %loops_l1 = transform.structured.tile_using_for %matmul tile_sizes [5] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul_l1 to padding_sizes [8] {
-      padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %matmul_padded, %_ = transform.structured.pad_tiling_interface %matmul_l1 to padding_sizes [8] padding_values=[0.0: f32, 0.0 : f32, 0.0 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     transform.yield
   }
@@ -89,9 +85,7 @@ module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [8, 0, 14] {
-        padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]
-      } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [8, 0, 14] padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.yield
     }
   }
@@ -144,9 +138,7 @@ module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
       %0 = transform.structured.match ops{["linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [8, 0, 14] {
-        padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]
-      } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+      %padded, %pad = transform.structured.pad_tiling_interface %0 to padding_sizes [8, 0, 14] padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
       transform.yield
     }
   }
diff --git a/mlir/test/Dialect/Linalg/transform-op-pad.mlir b/mlir/test/Dialect/Linalg/transform-op-pad.mlir
index 51bf4a23406d4..6a86c7bcf5451 100644
--- a/mlir/test/Dialect/Linalg/transform-op-pad.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-pad.mlir
@@ -36,11 +36,7 @@ func.func @static_sizes_output_divisible(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.op<"bufferization.materialize_in_destination">)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.op<"bufferization.materialize_in_destination">)
     %p = transform.num_associations %copy_back : (!transform.op<"bufferization.materialize_in_destination">) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark %p : !transform.param<i64>
@@ -73,11 +69,7 @@ func.func @pad_to_multiple(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 pad_to_multiple_of [2, 2, 1] {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 pad_to_multiple_of [2, 2, 1] padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -109,11 +101,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %c2 = transform.param.constant 2 : i64 -> !transform.param<i64>
-    %padded, %pad, %copy_back = transform.structured.pad %0 pad_to_multiple_of [%c2, 2, 1] {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 pad_to_multiple_of [%c2, 2, 1] padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -152,11 +140,7 @@ func.func @static_sizes_output_divisible_on_empty_op(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -175,11 +159,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{op expects a padding value of type 'f32', got 0 : i32}}
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0: i32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0: i32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -198,11 +178,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{expects a padding that parses to 'f32', got "{foo}"}}
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=["{foo}", 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=["{foo}", 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -236,11 +212,7 @@ func.func @zero_pad_static(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 0]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 0] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -274,12 +246,8 @@ func.func @zero_pad_dynamic(%arg0: tensor<?x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      // Note - only the static dim is padded
-      padding_dimensions=[2],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] // Note - only the static dim is padded
+      padding_dimensions=[2] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -301,12 +269,8 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{failed to pad op}}
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      // Note - attempting to pad non-static dim
-      padding_dimensions=[1],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] // Note - attempting to pad non-static dim
+      padding_dimensions=[1] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -334,14 +298,11 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %padded, %pad, %copy_back = transform.structured.pad %0
-    pad_to_multiple_of [7] use_prescribed_tensor_shapes {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    pad_to_multiple_of [7] use_prescribed_tensor_shapes padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     %func = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %func {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield
   }
 }
@@ -394,11 +355,7 @@ func.func @outs_not_produced_by_empty_or_extract_slice(%a : tensor<128x2044xf32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -446,11 +403,7 @@ func.func @pack_everything(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy_back = transform.structured.pad %0 {
-      padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32],
-      padding_dimensions=[0, 1, 2],
-      nofold_flags=[1, 1, 1]
-    } : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy_back = transform.structured.pad %0 padding_values=[0.0 : f32, 0.0 : f32, 0.0 : f32] padding_dimensions=[0, 1, 2] nofold_flags=[1, 1, 1] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     transform.yield 
   }
 }
@@ -473,18 +426,18 @@ func.func @dyn_pad_tiling(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf32>, %arg2:
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %padded, %pad, %copy = transform.structured.pad %0 pad_to_multiple_of [32] use_prescribed_tensor_shapes {padding_dimensions = [2], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %padded, %pad, %copy = transform.structured.pad %0 pad_to_multiple_of [32] use_prescribed_tensor_shapes padding_dimensions = [2] padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     %tiled_linalg_op, %loops = transform.structured.tile_using_for %padded tile_sizes [0, 0, 32] : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %1 = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     %2 = transform.apply_registered_pass "resolve-shaped-type-result-dims" to %1 : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %2 {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     %3 = transform.structured.match ops{["affine.min", "affine.max"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     transform.affine.simplify_min_max_affine_ops %3 : !transform.any_op
     transform.apply_patterns to %2 {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield 
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-op-rewrite-in-destination-passing-style.mlir b/mlir/test/Dialect/Linalg/transform-op-rewrite-in-destination-passing-style.mlir
index 38be8aad98de7..5625c433eb1e8 100644
--- a/mlir/test/Dialect/Linalg/transform-op-rewrite-in-destination-passing-style.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-rewrite-in-destination-passing-style.mlir
@@ -139,7 +139,7 @@ func.func @tensor_pad(%t1: tensor<?x10xindex>, %l2: index, %h1: index,
   ^bb0(%arg0: index, %arg1: index):
     %m = arith.muli %arg0, %arg1 : index
     tensor.yield %m : index
-  } { test.discardable.attr = 1 : i64 } : tensor<?x10xindex> to tensor<?x?xindex>
+  } {test.discardable.attr = 1 : i64} : tensor<?x10xindex> to tensor<?x?xindex>
   return %0 : tensor<?x?xindex>
 }
 
@@ -175,7 +175,7 @@ func.func @tensor_pad_constant(%t1: tensor<?x10xindex>, %l2: index, %h1: index,
   ^bb0(%arg0: index, %arg1: index):
     %c = arith.constant 50 : index
     tensor.yield %c : index
-  } { test.discardable.attr = 1 : i64 } : tensor<?x10xindex> to tensor<?x?xindex>
+  } {test.discardable.attr = 1 : i64} : tensor<?x10xindex> to tensor<?x?xindex>
   return %0 : tensor<?x?xindex>
 }
 
@@ -209,7 +209,7 @@ func.func @tensor_pad_invariant(%t1: tensor<?x10xindex>, %l2: index, %h1: index,
   %0 = tensor.pad %t1 low[5, %l2] high[%h1, %h2] {
   ^bb0(%arg0: index, %arg1: index):
     tensor.yield %padding : index
-  } { test.discardable.attr = 1 : i64 } : tensor<?x10xindex> to tensor<?x?xindex>
+  } {test.discardable.attr = 1 : i64} : tensor<?x10xindex> to tensor<?x?xindex>
   return %0 : tensor<?x?xindex>
 }
 
diff --git a/mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir b/mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir
index a7764da4b8a66..04f3589578adf 100644
--- a/mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir
@@ -90,7 +90,7 @@ func.func @category_contract(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf32>, %ar
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match interface{LinalgOp} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.specialize %0 {emit_category = true} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.specialize %0 emit_category = true : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir b/mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir
index bc5fffbdca44b..c3f6c3b5cb0e1 100644
--- a/mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir
@@ -22,7 +22,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1:4 = transform.structured.split_reduction %0
-      { split_factor = 4, insert_split_dimension = 2, use_scaling_algorithm, use_alloc}
+      split_factor = 4 insert_split_dimension = 2 use_scaling_algorithm use_alloc
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir b/mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
index 9849f36285b16..399b9cb9ce8fd 100644
--- a/mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
@@ -34,7 +34,7 @@ func.func @matmul_split(%A : tensor<16x256xf32>, %B: tensor<256x32xf32>, %C: ten
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -85,7 +85,7 @@ func.func @generic_split_1d(%arg0: tensor<32xf32>, %arg1: tensor<f32>, %out: ten
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 0}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 0
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -139,7 +139,7 @@ func.func @generic_split_3d(%input: tensor<32x2xf32>, %input_2: tensor<5x32xf32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -197,7 +197,7 @@ func.func @generic_split_3d_ninf(%input: tensor<32x2xf32>, %input_2: tensor<5x32
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -239,7 +239,7 @@ func.func @matmul_split(%A : tensor<16x256xf32>, %B: tensor<256x32xf32>, %C: ten
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -290,7 +290,7 @@ func.func @generic_split_1d(%arg0: tensor<32xf32>, %arg1: tensor<f32>, %out: ten
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 0, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 0 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -344,7 +344,7 @@ func.func @generic_split_3d(%input: tensor<32x2xf32>, %input_2: tensor<5x32xf32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -402,7 +402,7 @@ func.func @generic_split_3d(%input: tensor<32x2xf32>, %input_2: tensor<5x32xf32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 2, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 2 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -448,7 +448,7 @@ func.func @generic_split_maxnumf(%in: tensor<32xf32>, %out: tensor<f32>) -> tens
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 0, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 0 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
@@ -494,7 +494,7 @@ func.func @generic_split_minnumf(%in: tensor<32xf32>, %out: tensor<f32>) -> tens
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1:4 = transform.structured.split_reduction %0 { split_factor = 4, insert_split_dimension = 0, inner_parallel}
+    %1:4 = transform.structured.split_reduction %0 split_factor = 4 insert_split_dimension = 0 inner_parallel
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
       transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/transform-op-split.mlir b/mlir/test/Dialect/Linalg/transform-op-split.mlir
index 7f0ef401c8422..f68a14eb39ae7 100644
--- a/mlir/test/Dialect/Linalg/transform-op-split.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-split.mlir
@@ -3,7 +3,7 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.split %0 after 42 { dimension = 0 } : !transform.any_op
+    %1 = transform.structured.split %0 after 42 {dimension = 0} : !transform.any_op
     transform.yield
   }
 }
@@ -53,7 +53,7 @@ func.func @one_d_static(%arg0: tensor<100xf32>, %arg1: tensor<100xf32>) -> tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.split %0 after 42 { dimension = 0 } : !transform.any_op
+    %1 = transform.structured.split %0 after 42 {dimension = 0} : !transform.any_op
     transform.yield
   }
 }
@@ -89,7 +89,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1 = transform.structured.match ops{["func.call"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.split %0 after %1 { dimension = 0 } : !transform.any_op, !transform.any_op
+    transform.structured.split %0 after %1 {dimension = 0} : !transform.any_op, !transform.any_op
     transform.yield
   }
 }
@@ -138,9 +138,9 @@ func.func @dynamic(%arg0: tensor<100xf32>, %arg1: tensor<100xf32>) -> tensor<100
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %t = transform.structured.split %0 after 4 { dimension = 0 } : !transform.any_op
+    %t = transform.structured.split %0 after 4 {dimension = 0} : !transform.any_op
     %1:2 = transform.split_handle %t : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %2 = transform.structured.split %1#1 after 16 { dimension = 1 } : !transform.any_op
+    %2 = transform.structured.split %1#1 after 16 {dimension = 1} : !transform.any_op
     transform.yield
   }
 }
@@ -198,7 +198,7 @@ func.func @two_d(%arg0: tensor<10x34xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.consumed}) {
     // expected-error @below {{expects either a dynamic or a static split point to be provided}}
-    %0 = "transform.structured.split"(%arg1) { dimension = 1, static_chunk_sizes = -9223372036854775808 } : (!transform.any_op) -> (!transform.any_op)
+    %0 = "transform.structured.split"(%arg1) {dimension = 1, static_chunk_sizes = -9223372036854775808} : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
@@ -210,7 +210,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1 = transform.structured.match ops{["func.call"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{expected dynamic split point handle to point to a single-result index-typed op}}
-    transform.structured.split %0 after %1 { dimension = 0 } : !transform.any_op, !transform.any_op
+    transform.structured.split %0 after %1 {dimension = 0} : !transform.any_op, !transform.any_op
     transform.yield
   }
 }
@@ -238,7 +238,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1 = transform.structured.match ops{["func.call"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{expected the dynamic split point handle to point to as many operations (0) as the target handle (1)}}
-    transform.structured.split %0 after %1 { dimension = 0 } : !transform.any_op, !transform.any_op
+    transform.structured.split %0 after %1 {dimension = 0} : !transform.any_op, !transform.any_op
     transform.yield
   }
 }
@@ -263,7 +263,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["func.return"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{only applies to structured ops}}
-    transform.structured.split %0 after 16 { dimension = 1 } : !transform.any_op
+    transform.structured.split %0 after 16 {dimension = 1} : !transform.any_op
     transform.yield
   }
 }
@@ -279,7 +279,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{dimension 1 does not exist in target op}}
-    transform.structured.split %0 after 16 { dimension = 1 } : !transform.any_op
+    transform.structured.split %0 after 16 {dimension = 1} : !transform.any_op
     transform.yield
   }
 }
@@ -304,7 +304,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{splitting does not produce the second part for a subset of targets}}
     // expected-note @below {{expected splitting to produce the second part of all or none of the targets}}
-    %1 = transform.structured.split %0 after 142 { dimension = 0 } : !transform.any_op
+    %1 = transform.structured.split %0 after 142 {dimension = 0} : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-op-vectorize.mlir b/mlir/test/Dialect/Linalg/transform-op-vectorize.mlir
index 0d59dbba8940d..84926fe0410ba 100644
--- a/mlir/test/Dialect/Linalg/transform-op-vectorize.mlir
+++ b/mlir/test/Dialect/Linalg/transform-op-vectorize.mlir
@@ -19,7 +19,7 @@ func.func @vectorize_matmul(%arg0: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -46,7 +46,7 @@ func.func @vectorize_matmul_memref(%arg0: memref<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -68,7 +68,7 @@ func.func @vectorize_copy_memref(%arg0: memref<100x100xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.copy"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -116,7 +116,7 @@ func.func @vectorize_keep_pad(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -166,8 +166,8 @@ func.func @vectorize_pad(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 {vectorize_padding} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-ops-invalid.mlir b/mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
index 5a6e0cc62b95c..2476e80c38c92 100644
--- a/mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
+++ b/mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
@@ -11,7 +11,7 @@ transform.sequence failures(propagate) {
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error at below {{expects padding_dimensions to contain positive integers, found [1, -7]}}
-  transform.structured.pad %arg0 {padding_dimensions=[1, -7]} : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+  transform.structured.pad %arg0 padding_dimensions=[1, -7] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 }
 
 // -----
@@ -19,7 +19,7 @@ transform.sequence failures(propagate) {
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error at below {{expects nofold_flags to contain booleans (0/1), found [1, 7]}}
-  transform.structured.pad %arg0 {nofold_flags=[1, 7]} : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+  transform.structured.pad %arg0 nofold_flags=[1, 7] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 }
 
 // -----
@@ -27,7 +27,7 @@ transform.sequence failures(propagate) {
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error at below {{expects transpose_paddings to be a permutation, found [1, 1]}}
-  transform.structured.pad %arg0 {transpose_paddings=[[1, 1]]} : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+  transform.structured.pad %arg0 transpose_paddings=[[1, 1]] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 }
 
 // -----
@@ -43,7 +43,7 @@ transform.sequence failures(propagate) {
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error at below {{expects all results type to be the same}}
-  "transform.structured.multitile_sizes"(%arg0) { target_size = 3, divisor = 2, dimension = 0 }
+  "transform.structured.multitile_sizes"(%arg0) <{target_size = 3, divisor = 2, dimension = 0}>
       : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i32>)
 }
 
diff --git a/mlir/test/Dialect/Linalg/transform-ops.mlir b/mlir/test/Dialect/Linalg/transform-ops.mlir
index c92f29b441f72..fd989899dd063 100644
--- a/mlir/test/Dialect/Linalg/transform-ops.mlir
+++ b/mlir/test/Dialect/Linalg/transform-ops.mlir
@@ -40,9 +40,9 @@ transform.sequence failures(propagate) {
 
 transform.sequence failures(propagate) {
 ^bb1(%arg0: !transform.any_op):
-  %t = transform.structured.split %arg0 after 42 { dimension = 0 } : !transform.any_op
+  %t = transform.structured.split %arg0 after 42 {dimension = 0} : !transform.any_op
   %0:2 = transform.split_handle %t : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
-  transform.structured.split %0#0 after %0#1 { dimension = 1 } : !transform.any_op, !transform.any_op
+  transform.structured.split %0#0 after %0#1 {dimension = 1} : !transform.any_op, !transform.any_op
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/mlir/test/Dialect/Linalg/transform-promotion.mlir b/mlir/test/Dialect/Linalg/transform-promotion.mlir
index 7c4cd623c742d..75d1e1e5ee8ba 100644
--- a/mlir/test/Dialect/Linalg/transform-promotion.mlir
+++ b/mlir/test/Dialect/Linalg/transform-promotion.mlir
@@ -61,7 +61,7 @@ func.func @promote_subview_matmul(%arg0: memref<?x?xf32, strided<[?, 1], offset:
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { operands_to_promote = [0, 1, 2], use_full_tiles_by_default } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 operands_to_promote = [0, 1, 2] use_full_tiles_by_default : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -123,7 +123,7 @@ func.func @promote_first_subview_matmul(%arg0: memref<?x?xf32, strided<[?, 1], o
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { operands_to_promote = [0], use_full_tiles_by_default } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 operands_to_promote = [0] use_full_tiles_by_default : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -155,7 +155,7 @@ func.func @aligned_promote_fill(%arg0: memref<?x?xf32, strided<[?, 1], offset: ?
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %0 = transform.structured.match ops{["linalg.fill"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { operands_to_promote = [1], use_full_tile_buffers = [false, true], alignment = 32} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 operands_to_promote = [1] use_full_tile_buffers = [false, true] alignment = 32 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -188,7 +188,7 @@ func.func @aligned_promote_fill_complex(%arg0: memref<?x?xcomplex<f32>, strided<
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %0 = transform.structured.match ops{["linalg.fill"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.promote %0 { operands_to_promote = [1], use_full_tile_buffers = [false, true], alignment = 32} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.structured.promote %0 operands_to_promote = [1] use_full_tile_buffers = [false, true] alignment = 32 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/transform-tile-and-fuse-pack-unpack.mlir b/mlir/test/Dialect/Linalg/transform-tile-and-fuse-pack-unpack.mlir
index dc4d2e434c0db..e9c3e4a521d5e 100644
--- a/mlir/test/Dialect/Linalg/transform-tile-and-fuse-pack-unpack.mlir
+++ b/mlir/test/Dialect/Linalg/transform-tile-and-fuse-pack-unpack.mlir
@@ -38,7 +38,7 @@ module {
       // Find and lower pack operation.
       %pack = transform.structured.match ops{["linalg.pack"]} in %arg1
         : (!transform.any_op) -> !transform.op<"linalg.pack">
-      %paded, %expanded, %transpose = transform.structured.lower_pack %pack {lowerPadLikeWithInsertSlice = false}
+      %paded, %expanded, %transpose = transform.structured.lower_pack %pack lowerPadLikeWithInsertSlice = false
         : (!transform.op<"linalg.pack">)
         -> (!transform.op<"tensor.pad">,
             !transform.op<"tensor.expand_shape">,
@@ -154,7 +154,7 @@ module {
       // Find and lower unpack operation.
       %unpack = transform.structured.match ops{["linalg.unpack"]} in %arg1
           : (!transform.any_op) -> !transform.op<"linalg.unpack">
-      transform.structured.lower_unpack %unpack {lowerUnpadLikeWithExtractSlice = false}
+      transform.structured.lower_unpack %unpack lowerUnpadLikeWithExtractSlice = false
         : (!transform.op<"linalg.unpack">)
         -> (!transform.op<"tensor.empty">,
             !transform.op<"linalg.transpose">,
diff --git a/mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir b/mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir
index e0ead54c956fc..54c395edab9e3 100644
--- a/mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir
+++ b/mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir
@@ -8,7 +8,7 @@ func.func @conv2d(%arg0: tensor<2x10x10x5xf32>, %arg1: tensor<2x3x3x5xf32>, %arg
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.winograd_conv2d %0 { fmr = 1: i32 } : (!transform.any_op) -> (!transform.any_op)
+    %1 = transform.structured.winograd_conv2d %0 fmr(F_4_3) : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
@@ -29,7 +29,7 @@ func.func @conv2d_unaligned(%arg0: tensor<2x11x11x5xf32>, %arg1: tensor<2x3x3x5x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.structured.winograd_conv2d %0 { fmr = 1: i32 } : (!transform.any_op) -> (!transform.any_op)
+    %1 = transform.structured.winograd_conv2d %0 fmr(F_4_3) : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
@@ -54,7 +54,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_hwcf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @+1 {{this operation is not supported to convert to Winograd Conv2D}}
-    %1 = transform.structured.winograd_conv2d %0 { fmr = 1: i32 } : (!transform.any_op) -> (!transform.any_op)
+    %1 = transform.structured.winograd_conv2d %0 fmr(F_4_3) : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
@@ -70,7 +70,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @+1 {{apply Winograd Conv2D failed}}
-    %1 = transform.structured.winograd_conv2d %0 { fmr = 1: i32 } : (!transform.any_op) -> (!transform.any_op)
+    %1 = transform.structured.winograd_conv2d %0 fmr(F_4_3) : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
@@ -86,7 +86,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_2d_nhwc_fhwc"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @+1 {{apply Winograd Conv2D failed}}
-    %1 = transform.structured.winograd_conv2d %0 { fmr = 1: i32 } : (!transform.any_op) -> (!transform.any_op)
+    %1 = transform.structured.winograd_conv2d %0 fmr(F_4_3) : (!transform.any_op) -> (!transform.any_op)
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/contraction-interface.mlir b/mlir/test/Dialect/Linalg/vectorization/contraction-interface.mlir
index d8f897cca958d..a048e6dae7c7e 100644
--- a/mlir/test/Dialect/Linalg/vectorization/contraction-interface.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/contraction-interface.mlir
@@ -32,7 +32,7 @@ func.func @matmul(%A: tensor<8x4xf32>, %B: tensor<4x16xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -134,7 +134,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize %0 vector_sizes [8, 16, 4]
-      {create_named_contraction} : !transform.any_op
+      create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -168,7 +168,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize %0 vector_sizes [8, 16, 4]
-      {create_named_contraction} : !transform.any_op
+      create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -207,7 +207,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize %0 vector_sizes [8, [16], 4]
-      {create_named_contraction} : !transform.any_op
+      create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -243,7 +243,7 @@ func.func @matmul_transpose(%A: tensor<4x8xf32>, %B: tensor<16x4xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -280,7 +280,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize %0 vector_sizes [8, 16, 4]
-      {create_named_contraction} : !transform.any_op
+      create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -308,7 +308,7 @@ func.func @negative_matmul_broadcast(%A: tensor<4xf32>, %B: tensor<4x16xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -341,7 +341,7 @@ func.func @matmul_mixed_precision(%A: tensor<8x4xf16>, %B: tensor<4x16xf16>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -374,7 +374,7 @@ func.func @batch_matmul(%A: tensor<3x8x4xf32>, %B: tensor<3x4x16xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.batch_matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -407,7 +407,7 @@ func.func @batch_reduce_matmul(%A: tensor<3x8x4xf32>, %B: tensor<3x4x16xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.batch_reduce_matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -443,7 +443,7 @@ func.func @contract(%A: tensor<4x8x2xf32>, %B: tensor<8x16x2xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.contract"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
@@ -478,7 +478,7 @@ func.func @negative_generic(%A: tensor<8x4xf32>, %B: tensor<4x16xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 {create_named_contraction} : !transform.any_op
+    transform.structured.vectorize %0 create_named_contraction : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns-flatten.mlir b/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns-flatten.mlir
index 4198c1341c6fd..59ba9d958c269 100644
--- a/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns-flatten.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns-flatten.mlir
@@ -23,8 +23,8 @@ func.func @depthwise_conv1d_nwc_wc_1x8x3xi8_tensor(%input: tensor<1x8x3xi8>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 {flatten_1d_depthwise_conv} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 flatten_1d_depthwise_conv : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -110,8 +110,8 @@ func.func @depthwise_conv1d_nwc_wc_3x5x4xf32_memref_dillation_2(%input: memref<3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 {flatten_1d_depthwise_conv} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 flatten_1d_depthwise_conv : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -174,8 +174,8 @@ func.func @depthwise_conv1d_nwc_wc_3x5x4xi8_memref_dilation_2(%input: memref<3x5
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 {flatten_1d_depthwise_conv} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 flatten_1d_depthwise_conv : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -306,8 +306,8 @@ func.func @depthwise_conv1d_nwc_wc_3x9x4xi8_tensor_stride_2(%input: tensor<3x9x4
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 {flatten_1d_depthwise_conv} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 flatten_1d_depthwise_conv : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns.mlir b/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns.mlir
index 97b27befd44e2..06d5a0272126d 100644
--- a/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/convolution-with-patterns.mlir
@@ -67,7 +67,7 @@ func.func @conv1d_nwc_4x2x8_memref(%input: memref<4x6x3xf32>, %filter: memref<1x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -106,7 +106,7 @@ func.func @conv1d_nwc_4x2x8_memref_i1(%input: memref<4x6x3xi1>, %filter: memref<
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -183,7 +183,7 @@ func.func @conv1d_nwc_4x2x8_i8i8i32_memref(%input: memref<4x6x3xi8>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -269,7 +269,7 @@ func.func @conv1d_nwc_4x2x8_memref(%input: memref<4x6x3xf32>, %filter: memref<2x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -327,7 +327,7 @@ func.func @conv1d_nwc_4x2x8_memref(%input: memref<4x6x3xf32>, %filter: memref<2x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -407,7 +407,7 @@ func.func @conv1d_ncw_4x8x2_memref(%input: memref<4x3x6xf32>, %filter: memref<8x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_ncw_fcw", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -447,7 +447,7 @@ func.func @conv1d_ncw_4x8x2_memref_i1(%input: memref<4x3x6xi1>, %filter: memref<
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_ncw_fcw", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -541,7 +541,7 @@ func.func @conv1d_ncw_4x8x2_memref(%input: memref<4x3x6xf32>, %filter: memref<8x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_ncw_fcw", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -608,7 +608,7 @@ func.func @conv1d_ncw_4x8x2_memref(%input: memref<4x3x6xf32>, %filter: memref<8x
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_ncw_fcw", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -670,7 +670,7 @@ func.func @conv1d_8_tensor(%input: tensor<11xf32>, %filter: tensor<4xf32>, %outp
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -723,7 +723,7 @@ func.func @conv1d_mixed_precision_bf16_f32(%input: tensor<5xbf16>, %filter: tens
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -773,7 +773,7 @@ func.func @depthwise_conv1d_nwc_wc_3x5x4xf32_memref(%input: memref<3x5x4xf32>, %
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -827,7 +827,7 @@ func.func @depthwise_conv1d_nwc_wc_3x5x4xi8_memref(%input: memref<3x5x4xi8>, %fi
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.depthwise_conv_1d_nwc_wc", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -863,7 +863,7 @@ func.func @conv_1d_nwc_wcf_mixed_type_memref(%input: memref<1x2x3xf16>, %filter:
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -897,7 +897,7 @@ func.func @conv_1d_nwc_wcf_mixed_int_fp_memref(%input: memref<1x2x3xi8>, %filter
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.conv_1d_nwc_wcf", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -932,7 +932,7 @@ func.func @pooling_nwc_sum_memref_1_2_1_3(%input: memref<4x4x3xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -967,7 +967,7 @@ func.func @pooling_nwc_max_memref_1_2_1_3(%input: memref<4x4x3xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_max", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1008,7 +1008,7 @@ func.func @pooling_nwc_sum_i8i8i32_memref_1_2_1_3(%input: memref<4x4x3xi8>, %fil
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1049,7 +1049,7 @@ func.func @pooling_nwc_max_i8i8i32_memref_1_2_1_3(%input: memref<4x4x3xi8>, %fil
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_max", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1088,7 +1088,7 @@ func.func @pooling_nwc_sum_memref_2_2_2_3(%input: memref<4x6x3xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1127,7 +1127,7 @@ func.func @pooling_ncw_sum_memref_1_2_1_3(%input: memref<4x3x4xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_ncw_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1158,7 +1158,7 @@ func.func @pooling_nwc_sum_mixed_type_memref_1_2_1_1(%input: memref<1x2x3xf16>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1190,7 +1190,7 @@ func.func @pooling_nwc_sum_memref_2_2_2_1(%input: memref<4x4x3xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_nwc_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1232,7 +1232,7 @@ func.func @pooling_ncw_sum_memref_2_2_2_3(%input: memref<4x3x6xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_ncw_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1266,7 +1266,7 @@ func.func @pooling_ncw_sum_memref_2_3_2_1(%input: memref<4x2x5xf32>, %filter: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pooling_ncw_sum", "linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/vectorization/extract.mlir b/mlir/test/Dialect/Linalg/vectorization/extract.mlir
index fc0a11ef9810e..bc31ec0b1a2dd 100644
--- a/mlir/test/Dialect/Linalg/vectorization/extract.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/extract.mlir
@@ -50,7 +50,7 @@ func.func @masked_static_vectorize_nd_tensor_extract_with_affine_apply_contiguou
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 4] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 4] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
@@ -111,7 +111,7 @@ func.func @masked_static_vectorize_nd_tensor_extract_with_affine_apply_contiguou
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, [4]] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, [4]] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
@@ -169,7 +169,7 @@ func.func @masked_dynamic_vectorize_nd_tensor_extract_with_affine_apply_contiguo
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 4] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 4] vectorize_nd_extract : !transform.any_op
      transform.yield
   }
 }
@@ -227,7 +227,7 @@ func.func @masked_dynamic_vectorize_nd_tensor_extract_with_affine_apply_contiguo
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, [4]] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, [4]] vectorize_nd_extract : !transform.any_op
      transform.yield
   }
 }
@@ -267,7 +267,7 @@ func.func @masked_vectorize_nd_tensor_extract_with_affine_apply_gather(%6: tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 4] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 4] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
@@ -324,7 +324,7 @@ func.func @masked_dynamic_vectorize_nd_tensor_extract_with_affine_apply_gather(%
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 4] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 4] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
@@ -376,7 +376,7 @@ func.func @extract_masked_vectorize(%arg0: tensor<?x?xf32>, %arg1: tensor<?x?xf3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [3, 3] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [3, 3] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
@@ -421,7 +421,7 @@ func.func @tensor_extract_dynamic_shape(%arg1: tensor<123x321xf32>, %arg2: tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 3, 8] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 3, 8] vectorize_nd_extract : !transform.any_op
      transform.yield
   }
 }
@@ -473,7 +473,7 @@ func.func @scalar_broadcast(%init : tensor<1x1x3xi32>, %src: tensor<1x3x2x4xi32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%module: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %module : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %0 vector_sizes [1, 1, 4] {vectorize_nd_extract} : !transform.any_op
+    transform.structured.vectorize %0 vector_sizes [1, 1, 4] vectorize_nd_extract : !transform.any_op
     transform.yield
   }
 }
@@ -522,7 +522,7 @@ func.func @masked_contiguous_extract_rank_reducing_mask(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     transform.structured.vectorize %0 vector_sizes [1, 4] {vectorize_nd_extract} : !transform.any_op
+     transform.structured.vectorize %0 vector_sizes [1, 4] vectorize_nd_extract : !transform.any_op
      transform.yield
    }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/insert-slice-with-patterns.mlir b/mlir/test/Dialect/Linalg/vectorization/insert-slice-with-patterns.mlir
index f7764be9be73f..d664bcf9a20bf 100644
--- a/mlir/test/Dialect/Linalg/vectorization/insert-slice-with-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/insert-slice-with-patterns.mlir
@@ -22,8 +22,8 @@ func.func @insert_static_slice_default_pad(%arg0: tensor<1x2x3xf32>, %arg1: tens
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert_slice"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -51,7 +51,7 @@ func.func @insert_static_slice_non_zero_pad(%arg0: tensor<1x2x3xf32>, %pad : f32
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert_slice"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -83,7 +83,7 @@ func.func @insert_dynamic_slice_non_zero_pad(%arg0: tensor<1x?x3xf32>, %pad : f3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert_slice"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/vectorization/linalg-ops-with-patterns.mlir b/mlir/test/Dialect/Linalg/vectorization/linalg-ops-with-patterns.mlir
index 95959fcf085fc..70ef44f62f5a9 100644
--- a/mlir/test/Dialect/Linalg/vectorization/linalg-ops-with-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/linalg-ops-with-patterns.mlir
@@ -41,8 +41,8 @@ func.func @contraction_matvec(%A: memref<1584x1584xf32>, %B: memref<1584xf32>, %
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matvec"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -65,8 +65,8 @@ func.func @contraction_matmul(%A: memref<1584x1584xf32>, %B: memref<1584x1584xf3
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -86,8 +86,8 @@ func.func @float_mixed_precision_matmul(%A: memref<1584x1584xbf16>, %B: memref<1
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { fold_type_extensions_into_contract } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  fold_type_extensions_into_contract : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -108,8 +108,8 @@ func.func @vectorization_test_2(%A: memref<8x16xf32>, %B: memref<16x32xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -142,8 +142,8 @@ func.func @matmul_tensors(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -167,8 +167,8 @@ func.func @contraction_batch_matmul(%A: memref<1584x1584x1584xf32>, %B: memref<1
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.batch_matmul"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -203,7 +203,7 @@ func.func @matmul_as_contract(%A: tensor<24x12xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.contract"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     // TODO: also tests the other available vectorization strategies
     transform.yield
@@ -232,8 +232,8 @@ func.func @float_mixed_precision_matmul_as_contract(%A: tensor<24x12xbf16>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.contract"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 { fold_type_extensions_into_contract } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 fold_type_extensions_into_contract : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -255,7 +255,7 @@ func.func @test_vectorize_fill(%A : memref<8x16xf32>, %arg0 : f32) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.fill"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -275,7 +275,7 @@ func.func @test_vectorize_fill_0d(%A : memref<f32>, %arg0 : f32) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.fill"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -300,7 +300,7 @@ func.func @pack_no_padding(%arg0: tensor<32x8x16xf32>, %arg1: tensor<4x1x32x16x2
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pack"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -342,7 +342,7 @@ func.func @pack_with_padding(%arg0: tensor<32x7x15xf32>, %arg1: tensor<32x4x1x16
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.pack"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -372,7 +372,7 @@ func.func @vectorize_map(%arg0: memref<64xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.map"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -397,7 +397,7 @@ func.func @vectorize_transpose(%arg0: memref<16x32x64xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.transpose"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -426,7 +426,7 @@ func.func @vectorize_reduce(%arg0: memref<16x32x64xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.reduce"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -470,8 +470,8 @@ func.func @vectorization_test(%A: memref<8x16xf32>, %B: memref<16x32xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -512,8 +512,8 @@ func.func @generic_0d(%arg0: tensor<f32>, %arg1: tensor<f32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -552,8 +552,8 @@ func.func @generic_output_transpose(%A: memref<8x16xf32>, %B: memref<16x32xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -581,8 +581,8 @@ func.func @generic_interchanged_transpose(%arg0: tensor<12x128x32xf32>) -> tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -621,8 +621,8 @@ func.func @vectorization_test_integer(%A: memref<8x16xi32>, %B: memref<16x32xi32
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -648,7 +648,7 @@ func.func @test_vectorize_scalar_input(%A : memref<8x16xf32>, %arg0 : f32) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -674,7 +674,7 @@ func.func @test_do_not_vectorize_unsupported_element_types(%A : memref<8x16xcomp
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -721,8 +721,8 @@ func.func @vectorize_affine_apply(%arg0: tensor<5xf32>, %arg3: index) -> tensor<
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
      %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-     %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-     %2 = transform.structured.vectorize_children_and_apply_patterns %1 { vectorize_nd_extract } : (!transform.any_op) -> !transform.any_op
+     %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+     %2 = transform.structured.vectorize_children_and_apply_patterns %1 vectorize_nd_extract : (!transform.any_op) -> !transform.any_op
      transform.yield
   }
 }
@@ -751,7 +751,7 @@ func.func @test_vectorize_trailing_index(%arg0: memref<1x2x4x8xindex>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -782,7 +782,7 @@ func.func @test_vectorize_inner_index(%arg0: memref<1x2x4x8xindex>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -867,8 +867,8 @@ func.func @generic_vectorize(%arg0: memref<4x256xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -960,8 +960,8 @@ func.func @generic_vectorize_tensor(%arg0: tensor<4x256xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 { disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1006,8 +1006,8 @@ func.func @generic_vectorize_broadcast_transpose(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1051,8 +1051,8 @@ func.func @vectorization_transpose(%A: memref<14x7xf32>, %B: memref<16x14xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1087,7 +1087,7 @@ func.func @sum_exp(%input: tensor<4x16x8xf32>, %output: tensor<4x16xf32>)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1134,8 +1134,8 @@ func.func @sum_exp_2(%input: tensor<3x2xf32>, %input_2: tensor<5x4xf32>, %output
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %5 = transform.structured.vectorize_children_and_apply_patterns %4  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %5 = transform.structured.vectorize_children_and_apply_patterns %4  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1165,8 +1165,8 @@ func.func @red_maximumf_2d(%arg0: tensor<4x4xf32>) -> tensor<4xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %5 = transform.structured.vectorize_children_and_apply_patterns %4 { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %5 = transform.structured.vectorize_children_and_apply_patterns %4 vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1197,8 +1197,8 @@ func.func @red_maxnumf_2d(%arg0: tensor<4x4xf32>) -> tensor<4xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %5 = transform.structured.vectorize_children_and_apply_patterns %4 { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %5 = transform.structured.vectorize_children_and_apply_patterns %4 vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1230,7 +1230,7 @@ func.func @red_minimumf_2d(%arg0: tensor<4x4xf32>) -> tensor<4xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1263,7 +1263,7 @@ func.func @red_minnumf_2d(%arg0: tensor<4x4xf32>) -> tensor<4xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1295,7 +1295,7 @@ func.func @red_mul_2d(%arg0: tensor<4x4xf32>) -> tensor<4xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1327,7 +1327,7 @@ func.func @red_or_2d(%arg0: tensor<4x4xi1>) -> tensor<4xi1> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1359,7 +1359,7 @@ func.func @red_and_2d(%arg0: tensor<4x4xi1>) -> tensor<4xi1> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1391,7 +1391,7 @@ func.func @red_xor_2d(%arg0: tensor<4x4xi1>) -> tensor<4xi1> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1427,7 +1427,7 @@ func.func @explicit_broadcast(%arg0: tensor<4x4xf32>, %arg1: tensor<4x1xf32>) ->
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1469,11 +1469,11 @@ func.func @fused_broadcast_red_2d(%arg0: tensor<4x4xf32>, %arg1: tensor<4x1xf32>
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.fill"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
 
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1516,7 +1516,7 @@ func.func @reduce_to_rank_0(%arg0: tensor<32xf32>) -> tensor<f32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1568,7 +1568,7 @@ func.func @reduce_to_rank_1(%arg0: tensor<32xf32>) -> tensor<1xf32> {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1601,7 +1601,7 @@ func.func @not_projected_permutation(%arg0: tensor<8x8xf32>) -> tensor<6x6x3x3xf
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1642,8 +1642,8 @@ func.func @mixed_parallel_reduced_results(%arg0 : tensor<2x4x8xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { disable_multi_reduction_to_contract_patterns, disable_transfer_permutation_map_lowering_patterns } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  disable_multi_reduction_to_contract_patterns disable_transfer_permutation_map_lowering_patterns : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1715,7 +1715,7 @@ func.func @wrong_reduction_detection(%input: tensor<120x64xf32>) -> tensor<120x6
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1746,7 +1746,7 @@ func.func @tensor_size0(%arg0: tensor<0xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1770,7 +1770,7 @@ func.func @zero_dim_tensor(%input: tensor<f32>, %output: tensor<f32>) -> tensor<
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1809,7 +1809,7 @@ func.func @multi_output_generic_different_perm_maps(%in0: tensor<4x1xf32>,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %5 = transform.structured.vectorize_children_and_apply_patterns %4 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1842,7 +1842,7 @@ func.func @generic_with_reduction_and_broadcast(%arg0: tensor<1x12x197x197xf32>)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1895,8 +1895,8 @@ func.func @float_mixed_precision_matmul_as_generic(%A: memref<8x16xbf16>, %B: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { fold_type_extensions_into_contract } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  fold_type_extensions_into_contract : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1933,8 +1933,8 @@ func.func @integer_mixed_precision_matmul_as_generic(%A: memref<8x16xi8>, %B: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["linalg.generic"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { fold_type_extensions_into_contract } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  fold_type_extensions_into_contract : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -1956,7 +1956,7 @@ func.func @test_vectorize_copy(%A : memref<8x16xf32>, %B : memref<8x16xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.copy"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1978,7 +1978,7 @@ func.func @test_vectorize_copy_0d(%A : memref<f32>, %B : memref<f32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.copy"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
@@ -1996,7 +1996,7 @@ func.func @test_vectorize_copy_complex(%A : memref<8x16xcomplex<f32>>, %B : memr
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.copy"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
diff --git a/mlir/test/Dialect/Linalg/vectorization/linalg-ops.mlir b/mlir/test/Dialect/Linalg/vectorization/linalg-ops.mlir
index a5d94bc4f581c..1a0266a1c3977 100644
--- a/mlir/test/Dialect/Linalg/vectorization/linalg-ops.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/linalg-ops.mlir
@@ -933,7 +933,7 @@ func.func @mmt4d_scalable_with_assume(%A: memref<16x16x8x1xf32>, %B: memref<16x1
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %mmt4d = transform.structured.match ops{["linalg.mmt4d"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %mmt4d vector_sizes [16, 16, 16, 8, [4], 1] {assume_dynamic_dims_match_vec_sizes} : !transform.any_op
+    transform.structured.vectorize %mmt4d vector_sizes [16, 16, 16, 8, [4], 1] assume_dynamic_dims_match_vec_sizes : !transform.any_op
     transform.yield
   }
 }
@@ -1031,7 +1031,7 @@ func.func @batch_mmt4d_scalable_with_assume(%A: memref<2x16x16x8x1xf32>, %B: mem
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %batch_mmt4d = transform.structured.match ops{["linalg.batch_mmt4d"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    transform.structured.vectorize %batch_mmt4d vector_sizes [2, 16, 16, 16, 8, [4], 1] {assume_dynamic_dims_match_vec_sizes} : !transform.any_op
+    transform.structured.vectorize %batch_mmt4d vector_sizes [2, 16, 16, 16, 8, [4], 1] assume_dynamic_dims_match_vec_sizes : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/pad-with-patterns.mlir b/mlir/test/Dialect/Linalg/vectorization/pad-with-patterns.mlir
index 4086d5458313e..7de7b6abe066e 100644
--- a/mlir/test/Dialect/Linalg/vectorization/pad-with-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/pad-with-patterns.mlir
@@ -27,8 +27,8 @@ func.func @pad_static(%arg0: tensor<2x?x2xf32>, %pad_value: f32) -> tensor<2x3x4
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1 { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1 vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -58,8 +58,8 @@ func.func @pad_static_source(%arg0: tensor<2x5x2xf32>, %pad_value: f32) -> tenso
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -97,8 +97,8 @@ func.func @pad_static_dynamic(%arg0: tensor<1x2x2x?xf32>, %low: index, %high: in
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -119,8 +119,8 @@ func.func @pad_static_complex(%arg0: tensor<2x5x2xcomplex<f32>>, %pad_value: com
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -158,8 +158,8 @@ func.func @pad_and_insert_slice_dest(
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %5 = transform.structured.vectorize_children_and_apply_patterns %4  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %5 = transform.structured.vectorize_children_and_apply_patterns %4  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -197,8 +197,8 @@ func.func @pad_tensor_non_const_pad_value(%arg0: tensor<5x6xf32>) -> tensor<12x1
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %3 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %5 = transform.structured.vectorize_children_and_apply_patterns %4  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %5 = transform.structured.vectorize_children_and_apply_patterns %4  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -220,8 +220,8 @@ func.func @test_masked_pad_static_dynamic(%arg0: tensor<1x2x2x?xf32>, %low: inde
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
-    %2 = transform.structured.vectorize_children_and_apply_patterns %1  { vectorize_padding } : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
+    %2 = transform.structured.vectorize_children_and_apply_patterns %1  vectorize_padding : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Linalg/vectorization/unsupported.mlir b/mlir/test/Dialect/Linalg/vectorization/unsupported.mlir
index 59d51e432b743..9f1fdb62e0db0 100644
--- a/mlir/test/Dialect/Linalg/vectorization/unsupported.mlir
+++ b/mlir/test/Dialect/Linalg/vectorization/unsupported.mlir
@@ -406,7 +406,7 @@ func.func @insert_dynamic_slice_unknown_pad(%arg0: tensor<1x?x3xf32>, %arg1: ten
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.insert_slice"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %2 = transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
diff --git a/mlir/test/Dialect/MemRef/make-loop-independent.mlir b/mlir/test/Dialect/MemRef/make-loop-independent.mlir
index dca7bc1e67586..1989909727a88 100644
--- a/mlir/test/Dialect/MemRef/make-loop-independent.mlir
+++ b/mlir/test/Dialect/MemRef/make-loop-independent.mlir
@@ -38,7 +38,7 @@ func.func @make_alloca_loop_independent(%lb: index, %ub: index, %step: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloca"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.memref.make_loop_independent %0 {num_loops = 1} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.memref.make_loop_independent %0 num_loops = 1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -72,7 +72,7 @@ func.func @make_alloca_loop_independent_static(%step: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloca"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.memref.make_loop_independent %0 {num_loops = 1} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.memref.make_loop_independent %0 num_loops = 1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/MemRef/transform-ops.mlir b/mlir/test/Dialect/MemRef/transform-ops.mlir
index 65dd659600158..133f4dd4b40ad 100644
--- a/mlir/test/Dialect/MemRef/transform-ops.mlir
+++ b/mlir/test/Dialect/MemRef/transform-ops.mlir
@@ -264,7 +264,7 @@ func.func @multi_buffer(%in: memref<16xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 : (!transform.op<"memref.alloc">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %1, "transformed" : !transform.any_op
     transform.yield
@@ -301,7 +301,7 @@ func.func @multi_buffer_on_affine_loop(%in: memref<16xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 : (!transform.op<"memref.alloc">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %1, "transformed" : !transform.any_op
     transform.yield
@@ -341,7 +341,7 @@ func.func @multi_buffer_uses_with_no_loop_dominator(%in: memref<16xf32>, %cond:
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 : (!transform.op<"memref.alloc">) -> !transform.any_op
     transform.yield
   }
 }
@@ -379,7 +379,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloca"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloca">
     // expected-error @below {{'transform.memref.multibuffer' op operand #0 must be Transform IR handle to memref.alloc operations, but got '!transform.op<"memref.alloca">'}}
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64} : (!transform.op<"memref.alloca">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 : (!transform.op<"memref.alloca">) -> !transform.any_op
     transform.yield
   }
 }
@@ -422,7 +422,7 @@ func.func @multi_buffer_one_alloc_with_use_outside_of_loop(%in: memref<16xf32>)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 : (!transform.op<"memref.alloc">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %1, "transformed" : !transform.any_op
     transform.yield
@@ -458,7 +458,7 @@ func.func @multi_buffer_no_analysis(%in: memref<16xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64, skip_analysis} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 skip_analysis : (!transform.op<"memref.alloc">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %1, "transformed" : !transform.any_op
     transform.yield
@@ -497,7 +497,7 @@ func.func @multi_buffer_dealloc(%in: memref<16xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.alloc"]} in %arg1 : (!transform.any_op) -> !transform.op<"memref.alloc">
-    %1 = transform.memref.multibuffer %0 {factor = 2 : i64, skip_analysis} : (!transform.op<"memref.alloc">) -> !transform.any_op
+    %1 = transform.memref.multibuffer %0 factor = 2 skip_analysis : (!transform.op<"memref.alloc">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %1, "transformed" : !transform.any_op
     transform.yield
@@ -677,7 +677,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.dialect_to_llvm "memref"
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-    } {legal_dialects = ["func", "llvm"]} : !transform.any_op
+    } legal_dialects = ["func", "llvm"] : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/NVGPU/transform-create-async-groups.mlir b/mlir/test/Dialect/NVGPU/transform-create-async-groups.mlir
index 8290001c45856..7e01acf3331e4 100644
--- a/mlir/test/Dialect/NVGPU/transform-create-async-groups.mlir
+++ b/mlir/test/Dialect/NVGPU/transform-create-async-groups.mlir
@@ -25,7 +25,7 @@ builtin.module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
       %top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
-      transform.nvgpu.create_async_groups %top_level_func {bypass_l1} : (!transform.any_op) -> (!transform.any_op)
+      transform.nvgpu.create_async_groups %top_level_func bypass_l1 : (!transform.any_op) -> (!transform.any_op)
       transform.yield
     }
   }
@@ -156,7 +156,7 @@ builtin.module {
   module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
       %top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
-      transform.nvgpu.create_async_groups %top_level_func {bypass_l1} : (!transform.any_op) -> (!transform.any_op)
+      transform.nvgpu.create_async_groups %top_level_func bypass_l1 : (!transform.any_op) -> (!transform.any_op)
       transform.yield
     }
   }
@@ -200,7 +200,7 @@ builtin.module {
       transform.apply_patterns to %top_level_func {
         transform.apply_patterns.vector.transfer_to_scf max_transfer_rank = 1 full_unroll = true
       } : !transform.any_op
-      transform.nvgpu.create_async_groups %top_level_func {bypass_l1} : (!transform.any_op) -> (!transform.any_op)
+      transform.nvgpu.create_async_groups %top_level_func bypass_l1 : (!transform.any_op) -> (!transform.any_op)
       %top_level_func_2 = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
       transform.apply_cse to %top_level_func_2 : !transform.any_op
       transform.yield
@@ -263,7 +263,7 @@ builtin.module {
       transform.apply_patterns to %top_level_func {
         transform.apply_patterns.vector.transfer_to_scf max_transfer_rank = 1 full_unroll = true
       } : !transform.any_op
-      transform.nvgpu.create_async_groups %top_level_func {bypass_l1} : (!transform.any_op) -> (!transform.any_op)
+      transform.nvgpu.create_async_groups %top_level_func bypass_l1 : (!transform.any_op) -> (!transform.any_op)
       %top_level_func_2 = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
       transform.apply_cse to %top_level_func_2 : !transform.any_op
       transform.yield
diff --git a/mlir/test/Dialect/NVGPU/transform-pipeline-shared.mlir b/mlir/test/Dialect/NVGPU/transform-pipeline-shared.mlir
index e959949babd9e..6038d514a5244 100644
--- a/mlir/test/Dialect/NVGPU/transform-pipeline-shared.mlir
+++ b/mlir/test/Dialect/NVGPU/transform-pipeline-shared.mlir
@@ -24,7 +24,7 @@ module attributes {transform.with_named_sequence} {
     %loop = transform.structured.match ops{["scf.for"]} in %arg0 : (!t) -> !t
     // expected-error @below {{irreversible pipelining failure}}
     // expected-note @below {{try setting "peel_epilogue"}}
-    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop { depth = 2 } : (!t) -> !t
+    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop depth = 2 : (!t) -> !t
     transform.yield
   }
 }
@@ -69,7 +69,7 @@ func.func @simple_depth_2_peeled(%global: memref<?xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !t {transform.readonly}) {
     %loop = transform.structured.match ops{["scf.for"]} in %arg0 : (!t) -> !t
-    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop { depth = 2, peel_epilogue } : (!t) -> !t
+    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop depth = 2 peel_epilogue : (!t) -> !t
     transform.yield
   }
 }
@@ -138,7 +138,7 @@ func.func @async_depth_2_predicated(%global: memref<?xf32>, %alloc_size: index)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !t {transform.readonly}) {
     %loop = transform.structured.match ops{["scf.for"]} in %arg0 : (!t) -> !t
-    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop { depth = 2 } : (!t) -> !t
+    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop depth = 2 : (!t) -> !t
     transform.yield
   }
 }
@@ -180,7 +180,7 @@ func.func @async_depth_2_peeled(%global: memref<?xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !t {transform.readonly}) {
     %loop = transform.structured.match ops{["scf.for"]} in %arg0 : (!t) -> !t
-    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop { depth = 2, peel_epilogue } : (!t) -> !t
+    transform.nvgpu.pipeline_shared_memory_copies failures(propagate) %loop depth = 2 peel_epilogue : (!t) -> !t
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/SCF/transform-op-coalesce.mlir b/mlir/test/Dialect/SCF/transform-op-coalesce.mlir
index 467020e331295..b487b62f0e3fe 100644
--- a/mlir/test/Dialect/SCF/transform-op-coalesce.mlir
+++ b/mlir/test/Dialect/SCF/transform-op-coalesce.mlir
@@ -93,7 +93,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["scf.for"]} attributes {coalesce} in %arg1 : (!transform.any_op) -> !transform.any_op
     %1 = transform.cast %0 : !transform.any_op to !transform.op<"scf.for">
     %2 = transform.loop.coalesce %1 : (!transform.op<"scf.for">) -> (!transform.op<"scf.for">)
-    transform.loop.unroll %2 {factor = 3} : !transform.op<"scf.for">
+    transform.loop.unroll %2 factor = 3 : !transform.op<"scf.for">
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/SCF/transform-ops-invalid.mlir b/mlir/test/Dialect/SCF/transform-ops-invalid.mlir
index 01b57a8ca56fa..8b3b2aef28f46 100644
--- a/mlir/test/Dialect/SCF/transform-ops-invalid.mlir
+++ b/mlir/test/Dialect/SCF/transform-ops-invalid.mlir
@@ -32,9 +32,9 @@ func.func @test_loops_do_not_get_unrolled() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "affine.for"} : (!transform.any_op) -> !transform.op<"affine.for">
+    %1 = transform.get_parent_op %0 op_name = "affine.for" : (!transform.any_op) -> !transform.op<"affine.for">
     // expected-error @below {{failed to unroll}}
-    transform.loop.unroll %1 { factor = 8 } : !transform.op<"affine.for">
+    transform.loop.unroll %1 factor = 8 : !transform.op<"affine.for">
     transform.yield
   }
 }
@@ -53,7 +53,7 @@ func.func @loop_unroll_full_unsupported_dynamic_trip_count(%upper_bound: index)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to fully unroll}}
     transform.loop.unroll_full %1 : !transform.op<"scf.for">
     transform.yield
@@ -75,9 +75,9 @@ func.func @loop_unroll_and_jam_unsupported_trip_count_not_multiple_of_factor() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to unroll and jam}}
-    transform.loop.unroll_and_jam %1 { factor = 3 } : !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 3 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -98,9 +98,9 @@ func.func @loop_unroll_and_jam_unsupported_loop_with_results() -> index {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to unroll and jam}}
-    transform.loop.unroll_and_jam %1 { factor = 4 } : !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -131,9 +131,9 @@ func.func private @loop_unroll_and_jam_unsupported_dynamic_trip_count(%arg0: mem
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.store"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to unroll and jam}}
-    transform.loop.unroll_and_jam %1 { factor = 4 } : !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -152,9 +152,9 @@ func.func @loop_unroll_and_jam_unsupported_dynamic_trip_count(%upper_bound: inde
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to unroll and jam}}
-    transform.loop.unroll_and_jam %1 { factor = 2 } : !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 2 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -181,7 +181,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["scf.while"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{failed to outline}}
-    transform.loop.outline %0 {func_name = "foo"} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    transform.loop.outline %0 func_name = "foo" : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -204,7 +204,7 @@ func.func @test_loop_peeling_not_beneficial() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to peel}}
     transform.loop.peel %1 : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
     transform.yield
@@ -226,7 +226,7 @@ func.func @test_loop_peeling_not_beneficial_already_peeled(%lb: index, %ub: inde
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to peel}}
     transform.loop.peel %1 : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
     transform.yield
@@ -249,7 +249,7 @@ func.func @test_loop_peeling_not_beneficial_already_peeled_lb_zero(%ub: index, %
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // expected-error @below {{failed to peel}}
     transform.loop.peel %1 : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
     transform.yield
diff --git a/mlir/test/Dialect/SCF/transform-ops.mlir b/mlir/test/Dialect/SCF/transform-ops.mlir
index ef7d5543e2d5c..d810bc385ced8 100644
--- a/mlir/test/Dialect/SCF/transform-ops.mlir
+++ b/mlir/test/Dialect/SCF/transform-ops.mlir
@@ -33,9 +33,9 @@ func.func @loop_outline_op(%arg0: index, %arg1: index, %arg2: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     // CHECK: = transform.loop.outline %{{.*}}
-    transform.loop.outline %1 {func_name = "foo"} : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
+    transform.loop.outline %1 func_name = "foo" : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
     transform.yield
   }
 }
@@ -66,7 +66,7 @@ func.func @loop_peel_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     %main_loop, %remainder = transform.loop.peel %1 : (!transform.op<"scf.for">) -> (!transform.op<"scf.for">, !transform.op<"scf.for">)
     // Make sure 
     transform.debug.emit_remark_at %main_loop, "main loop" : !transform.op<"scf.for">
@@ -99,8 +99,8 @@ func.func @loop_peel_first_iter_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    %main_loop, %remainder = transform.loop.peel %1 {peel_front = true} : (!transform.op<"scf.for">) -> (!transform.op<"scf.for">, !transform.op<"scf.for">)
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    %main_loop, %remainder = transform.loop.peel %1 peel_front = true : (!transform.op<"scf.for">) -> (!transform.op<"scf.for">, !transform.op<"scf.for">)
     transform.yield
   }
 }
@@ -134,7 +134,7 @@ func.func @loop_pipeline_op(%A: memref<?xf32>, %result: memref<?xf32>) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
     %2 = transform.loop.pipeline %1 : (!transform.op<"scf.for">) -> !transform.any_op
     // Verify that the returned handle is usable.
     transform.debug.emit_remark_at %2, "transformed" : !transform.any_op
@@ -160,8 +160,8 @@ func.func @loop_unroll_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll %1 { factor = 4 } : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -247,8 +247,8 @@ func.func @loop_unroll_and_jam_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll_and_jam %1 { factor = 4 } : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -320,8 +320,8 @@ func.func private @loop_unroll_and_jam_op(%arg0: memref<96x128xi8, 3>, %arg1: me
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["memref.store"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll_and_jam %1 { factor = 4 } : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -351,8 +351,8 @@ func.func @loop_unroll_and_jam_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll_and_jam %1 { factor = 4 } : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 4 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -377,8 +377,8 @@ func.func @loop_unroll_and_jam_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll_and_jam %1 { factor = 2 } : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 2 : !transform.op<"scf.for">
     transform.yield
   }
 }
@@ -423,9 +423,9 @@ func.func @loop_unroll_and_jam_op(%arg0: memref<21x30xf32, 1>, %init : f32, %ini
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addf"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "affine.for"} : (!transform.any_op) -> !transform.op<"affine.for">
-    %2 = transform.get_parent_op %1 {op_name = "affine.for"} : (!transform.op<"affine.for">) -> !transform.op<"affine.for">
-    transform.loop.unroll_and_jam %2 { factor = 2 } : !transform.op<"affine.for">
+    %1 = transform.get_parent_op %0 op_name = "affine.for" : (!transform.any_op) -> !transform.op<"affine.for">
+    %2 = transform.get_parent_op %1 op_name = "affine.for" : (!transform.op<"affine.for">) -> !transform.op<"affine.for">
+    transform.loop.unroll_and_jam %2 factor = 2 : !transform.op<"affine.for">
     transform.yield
   }
 }
@@ -448,9 +448,9 @@ func.func @loop_unroll_op() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "affine.for"} : (!transform.any_op) -> !transform.op<"affine.for">
+    %1 = transform.get_parent_op %0 op_name = "affine.for" : (!transform.any_op) -> !transform.op<"affine.for">
     transform.debug.emit_remark_at %1, "affine for loop" : !transform.op<"affine.for">
-    transform.loop.unroll %1 { factor = 4, affine = true } : !transform.op<"affine.for">
+    transform.loop.unroll %1 factor = 4 {affine = true} : !transform.op<"affine.for">
     transform.yield
   }
 }
@@ -475,9 +475,9 @@ func.func @test_mixed_loops() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "affine.for"} : (!transform.any_op) -> !transform.op<"affine.for">
+    %1 = transform.get_parent_op %0 op_name = "affine.for" : (!transform.any_op) -> !transform.op<"affine.for">
     transform.debug.emit_remark_at %1, "affine for loop" : !transform.op<"affine.for">
-    transform.loop.unroll %1 { factor = 4 } : !transform.op<"affine.for">
+    transform.loop.unroll %1 factor = 4 : !transform.op<"affine.for">
     transform.yield
   }
 }
@@ -544,7 +544,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.scf.structural_conversions
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {  partial_conversion  } : !transform.any_op
+    } partial_conversion : !transform.any_op
     transform.yield
   }
 }
@@ -613,7 +613,7 @@ func.func @loop_pipeline(%arg0: memref<4x16xf32>, %arg1: vector<16xf32>) -> vect
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["scf.for"]} in %arg1 : (!transform.any_op) -> !transform.op<"scf.for">
-    %1 = transform.loop.pipeline %0 {iteration_interval = 1 : i64, read_latency = 5 : i64,  scheduling_type = "full-loops"} : (!transform.op<"scf.for">) -> !transform.any_op
+    %1 = transform.loop.pipeline %0 iteration_interval = 1 read_latency = 5 {scheduling_type = "full-loops"} : (!transform.op<"scf.for">) -> !transform.any_op
      transform.yield
  }
 }
@@ -640,7 +640,7 @@ func.func @loop_pipeline_lb_gt_0(%arg0: memref<4x16xf32>, %arg1: vector<16xf32>)
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["scf.for"]} in %arg1 : (!transform.any_op) -> !transform.op<"scf.for">
-    %1 = transform.loop.pipeline %0 {iteration_interval = 1 : i64, read_latency = 5 : i64,  scheduling_type = "full-loops"} : (!transform.op<"scf.for">) -> !transform.any_op
+    %1 = transform.loop.pipeline %0 iteration_interval = 1 read_latency = 5 {scheduling_type = "full-loops"} : (!transform.op<"scf.for">) -> !transform.any_op
      transform.yield
  }
 }
@@ -665,8 +665,8 @@ func.func @loop_unroll_and_jam_zero_trip_count() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["arith.addi"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.op<"scf.for">
-    transform.loop.unroll_and_jam %1 {factor = 3 : i64} : !transform.op<"scf.for">
+    %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.op<"scf.for">
+    transform.loop.unroll_and_jam %1 factor = 3 : !transform.op<"scf.for">
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Tensor/fold-empty-op.mlir b/mlir/test/Dialect/Tensor/fold-empty-op.mlir
index 4a821b3f33b31..c97d003734444 100644
--- a/mlir/test/Dialect/Tensor/fold-empty-op.mlir
+++ b/mlir/test/Dialect/Tensor/fold-empty-op.mlir
@@ -89,7 +89,7 @@ module attributes {transform.with_named_sequence} {
     %func_op = transform.structured.match ops{["func.func"]} in %root : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op {
       transform.apply_patterns.tensor.fold_tensor_empty
-          {fold_single_use_only = true}
+          fold_single_use_only = true
     } : !transform.op<"func.func">
     transform.yield
   }
diff --git a/mlir/test/Dialect/Tensor/transform-op-make-loop-independent.mlir b/mlir/test/Dialect/Tensor/transform-op-make-loop-independent.mlir
index 382dd25914b79..a4882e2ab151d 100644
--- a/mlir/test/Dialect/Tensor/transform-op-make-loop-independent.mlir
+++ b/mlir/test/Dialect/Tensor/transform-op-make-loop-independent.mlir
@@ -32,7 +32,7 @@ func.func @make_pad_loop_independent_1(%lb: index, %ub: index, %step: index,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.tensor.make_loop_independent %0 {num_loops = 1} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.tensor.make_loop_independent %0 num_loops = 1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -71,7 +71,7 @@ func.func @make_pad_loop_independent_1(%lb: index, %ub: index, %step: index,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.tensor.make_loop_independent %0 {num_loops = 1} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.tensor.make_loop_independent %0 num_loops = 1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -99,7 +99,7 @@ func.func @two_loops(%lb: index, %ub: index, %step: index,
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.tensor.make_loop_independent %0 {num_loops = 2} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.tensor.make_loop_independent %0 num_loops = 2 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -126,7 +126,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.pad"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error at below {{could not find 2-th enclosing loop}}
-    %1 = transform.tensor.make_loop_independent %0 {num_loops = 3} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.tensor.make_loop_independent %0 num_loops = 3 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -155,7 +155,7 @@ func.func @make_empty_loop_independent(%lb: index, %ub: index, %step: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["tensor.empty"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %1 = transform.tensor.make_loop_independent %0 {num_loops = 1} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.tensor.make_loop_independent %0 num_loops = 1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Transform/Library/lower-to-llvm-transform-symbol-def.mlir b/mlir/test/Dialect/Transform/Library/lower-to-llvm-transform-symbol-def.mlir
index 0ba50bd2362b3..0cb7c75cf903b 100644
--- a/mlir/test/Dialect/Transform/Library/lower-to-llvm-transform-symbol-def.mlir
+++ b/mlir/test/Dialect/Transform/Library/lower-to-llvm-transform-symbol-def.mlir
@@ -23,14 +23,8 @@ transform.named_sequence @lower_to_llvm(
     transform.apply_conversion_patterns.dialect_to_llvm "cf"
   } with type_converter {
     transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-      {index_bitwidth = 64,
-       use_bare_ptr = false,
-       use_bare_ptr_memref_call_conv = false,
-       use_opaque_pointers = true}
-  } {
-    legal_dialects = ["llvm"],
-    partial_conversion
-  } : !transform.any_op
+      index_bitwidth = 64 {use_bare_ptr = false, use_bare_ptr_memref_call_conv = false, use_opaque_pointers = true}
+  } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
 
   // Need to rematch here because:
   //   1. applying reconcile-unrealized-casts on the whole module yields the
diff --git a/mlir/test/Dialect/Transform/check-use-after-free.mlir b/mlir/test/Dialect/Transform/check-use-after-free.mlir
index 76f4b4fb6bd69..fa950188a2113 100644
--- a/mlir/test/Dialect/Transform/check-use-after-free.mlir
+++ b/mlir/test/Dialect/Transform/check-use-after-free.mlir
@@ -219,7 +219,7 @@ module attributes {transform.with_named_sequence} {
       sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = transform.pdl_match @match_const in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.any_op
+        %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.any_op
         alternatives %1 : !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
         }
diff --git a/mlir/test/Dialect/Transform/expensive-checks.mlir b/mlir/test/Dialect/Transform/expensive-checks.mlir
index f932c6b05684e..942543b0cbb0f 100644
--- a/mlir/test/Dialect/Transform/expensive-checks.mlir
+++ b/mlir/test/Dialect/Transform/expensive-checks.mlir
@@ -21,7 +21,7 @@ module attributes {transform.with_named_sequence} {
       ^bb1(%arg1: !transform.any_op):
         // expected-note @below {{handle to invalidated ops}}
         %0 = pdl_match @return in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
         test_consume_operand %1 : !transform.any_op
         // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
@@ -119,7 +119,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%0: !transform.any_op) {
     %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
     %2 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
-    transform.merge_handles %1, %2 { deduplicate } : !transform.any_op
+    transform.merge_handles deduplicate %1, %2 : !transform.any_op
     transform.yield
   }
 }
@@ -392,7 +392,7 @@ module attributes {transform.with_named_sequence}  {
     // expected-note @below {{invalidated by this transform op that consumes its operand #0 and invalidates all handles to payload IR entities associated with this operand and entities nested in them}}
     transform.test_consume_operand %arg0 : !transform.any_op
     // expected-error @below {{uses a handle invalidated by a previously executed transform op}}
-    transform.test_consume_operand %0 { allow_repeated_handles } : !transform.any_op
+    transform.test_consume_operand %0 allow_repeated_handles : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Transform/include/Library/lower-to-llvm.mlir b/mlir/test/Dialect/Transform/include/Library/lower-to-llvm.mlir
index afd1c89dd2b52..49ebdbf9360d4 100644
--- a/mlir/test/Dialect/Transform/include/Library/lower-to-llvm.mlir
+++ b/mlir/test/Dialect/Transform/include/Library/lower-to-llvm.mlir
@@ -24,14 +24,8 @@ transform.named_sequence @lower_to_llvm(
     transform.apply_conversion_patterns.dialect_to_llvm "cf"
   } with type_converter {
     transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-      {index_bitwidth = 64,
-       use_bare_ptr = false,
-       use_bare_ptr_memref_call_conv = false,
-       use_opaque_pointers = true}
-  } {
-    legal_dialects = ["llvm"],
-    partial_conversion
-  } : !transform.any_op
+      index_bitwidth = 64 {use_bare_ptr = false, use_bare_ptr_memref_call_conv = false, use_opaque_pointers = true}
+  } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
 
   // Need to rematch here because:
   //   1. applying reconcile-unrealized-casts on the whole module yields the
diff --git a/mlir/test/Dialect/Transform/interpreter-entry-point-2.mlir b/mlir/test/Dialect/Transform/interpreter-entry-point-2.mlir
index 5c97c4c25ea41..7be9fc09e3fe1 100644
--- a/mlir/test/Dialect/Transform/interpreter-entry-point-2.mlir
+++ b/mlir/test/Dialect/Transform/interpreter-entry-point-2.mlir
@@ -4,14 +4,14 @@ module @td_module_4 attributes {transform.with_named_sequence} {
   module @foo_module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) -> () {
       // CHECK: IR printer: foo_module top-level
-      transform.print {name="foo_module"}
+      transform.print name="foo_module"
       transform.yield
     }
   }
   module @bar_module attributes {transform.with_named_sequence} {
     transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) -> () {
       // CHECK: IR printer: bar_module top-level
-      transform.print {name="bar_module"}
+      transform.print name="bar_module"
       transform.yield
     }
   }
diff --git a/mlir/test/Dialect/Transform/normal-forms.mlir b/mlir/test/Dialect/Transform/normal-forms.mlir
index ec421fe8809d4..bfdbfb5b12f67 100644
--- a/mlir/test/Dialect/Transform/normal-forms.mlir
+++ b/mlir/test/Dialect/Transform/normal-forms.mlir
@@ -84,8 +84,7 @@ module attributes {transform.with_named_sequence} {
 
 module attributes {transform.with_named_sequence} {
   // expected-remark @below {{matched}}
-  transform.payload attributes {
-      normal_forms = [#transform.test_single_block_normal_form<nested true>]} {
+  transform.payload normal_forms = [#transform.test_single_block_normal_form<nested true>] {
     transform.test_dummy_payload_op : () -> ()
   }
 
@@ -103,15 +102,14 @@ module attributes {transform.with_named_sequence} {
 
 // expected-note @below {{previous instance}}
 // expected-error @below {{duplicate normal form}}
-transform.payload attributes {normal_forms = [
+transform.payload normal_forms = [
     #transform.test_single_block_normal_form<nested false>,
-    #transform.test_single_block_normal_form<nested true>]} {
+    #transform.test_single_block_normal_form<nested true>] {
 }
 
 // -----
 
-transform.payload attributes {
-    normal_forms = [#transform.test_single_block_normal_form<nested true>]} {
+transform.payload normal_forms = [#transform.test_single_block_normal_form<nested true>] {
   // expected-error @below {{normal form test_single_block_normal_form requires payload operations to have a single region}}
   "test.foo"() ({
     cf.br ^bb1
@@ -122,12 +120,11 @@ transform.payload attributes {
 
 // -----
 
-transform.payload attributes {
-    normal_forms = [#transform.test_single_block_normal_form<nested true>]} {
+transform.payload normal_forms = [#transform.test_single_block_normal_form<nested true>] {
   // We should see the diagnostic from the inner op verifier, and never hit
   // the normal form check.
   // expected-error @below {{fail_to_verify is set}}
-  transform.test_dummy_payload_op {fail_to_verify} : () -> ()
+  transform.test_dummy_payload_op fail_to_verify : () -> ()
   "test.foo"() ({
     cf.br ^bb1
   ^bb1:
@@ -148,8 +145,7 @@ transform.payload attributes {
 // CHECK-SAME: test.counting_normal_form_count = 2
 
 module @verification_count attributes {transform.with_named_sequence} {
-  transform.payload attributes {
-      normal_forms = [#transform.test_counting_normal_form]} {
+  transform.payload normal_forms = [#transform.test_counting_normal_form] {
     transform.test_dummy_payload_op : () -> ()
   }
 
diff --git a/mlir/test/Dialect/Transform/ops-invalid.mlir b/mlir/test/Dialect/Transform/ops-invalid.mlir
index c50c773a1e814..585736d30269e 100644
--- a/mlir/test/Dialect/Transform/ops-invalid.mlir
+++ b/mlir/test/Dialect/Transform/ops-invalid.mlir
@@ -94,10 +94,10 @@ transform.sequence failures(propagate) {
 
 %0 = "test.generate_something"() : () -> !transform.any_op
 // expected-error @below {{does not expect extra operands when used as top-level}}
-"transform.sequence"(%0) ({
+"transform.sequence"(%0) <{failure_propagation_mode = 1 : i32, operandSegmentSizes = array<i32: 0, 1>}> ({
 ^bb0(%arg0: !transform.any_op):
   "transform.yield"() : () -> ()
-}) {failure_propagation_mode = 1 : i32, operandSegmentSizes = array<i32: 0, 1>} : (!transform.any_op) -> ()
+}) : (!transform.any_op) -> ()
 
 // -----
 
@@ -343,7 +343,7 @@ transform.sequence failures(suppress) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error @below {{TransformOpInterface requires memory effects on operands to be specified}}
   // expected-note @below {{no effects specified for operand #0}}
-  transform.test_required_memory_effects %arg0 {modifies_payload} : (!transform.any_op) -> !transform.any_op
+  transform.test_required_memory_effects %arg0 modifies_payload : (!transform.any_op) -> !transform.any_op
 }
 
 // -----
@@ -352,13 +352,13 @@ transform.sequence failures(suppress) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error @below {{TransformOpInterface requires 'allocate' memory effect to be specified for results}}
   // expected-note @below {{no 'allocate' effect specified for result #0}}
-  transform.test_required_memory_effects %arg0 {has_operand_effect, modifies_payload} : (!transform.any_op) -> !transform.any_op
+  transform.test_required_memory_effects %arg0 has_operand_effect modifies_payload : (!transform.any_op) -> !transform.any_op
 }
 
 // -----
 
 // expected-error @below {{attribute can only be attached to operations with symbol tables}}
-"test.unknown_container"() { transform.with_named_sequence } : () -> ()
+"test.unknown_container"() {transform.with_named_sequence} : () -> ()
 
 // -----
 
@@ -421,7 +421,7 @@ module attributes { transform.with_named_sequence } {
   transform.sequence failures(suppress) {
   ^bb0(%arg0: !transform.any_op):
     // expected-error @below {{requires attribute 'target'}}
-    "transform.include"() {failure_propagation_mode = 1 : i32} : () -> ()
+    "transform.include"() <{failure_propagation_mode = 1 : i32}> : () -> ()
   }
 }
 
@@ -549,7 +549,7 @@ module attributes { transform.with_named_sequence } {
 
 module attributes { transform.with_named_sequence } {
   // expected-error @below {{argument #0 cannot be both readonly and consumed}}
-  transform.named_sequence @foo(%op: !transform.any_op { transform.readonly, transform.consumed } )
+  transform.named_sequence @foo(%op: !transform.any_op {transform.readonly, transform.consumed} )
 }
 
 // -----
@@ -624,7 +624,7 @@ module attributes { transform.with_named_sequence } {
 
 // Checking that consumptions annotations are used correctly in invocation checks.
 module attributes { transform.with_named_sequence } {
-  transform.named_sequence @foo(%op: !transform.any_op { transform.consumed } )
+  transform.named_sequence @foo(%op: !transform.any_op {transform.consumed} )
 
   // expected-error @below {{'transform.sequence' op block argument #0 has more than one potential consumer}}
   transform.sequence failures(propagate) {
diff --git a/mlir/test/Dialect/Transform/ops.mlir b/mlir/test/Dialect/Transform/ops.mlir
index e9baffde262fa..98e960847ee95 100644
--- a/mlir/test/Dialect/Transform/ops.mlir
+++ b/mlir/test/Dialect/Transform/ops.mlir
@@ -105,13 +105,13 @@ transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   transform.print %arg0 : !transform.any_op
   transform.print
-  transform.print %arg0 {name = "test"} : !transform.any_op
-  transform.print {name = "test"}
-  transform.print {name = "test", assume_verified}
-  transform.print %arg0 {assume_verified} : !transform.any_op
-  transform.print %arg0 {use_local_scope} : !transform.any_op
-  transform.print %arg0 {skip_regions} : !transform.any_op
-  transform.print %arg0 {assume_verified, use_local_scope, skip_regions} : !transform.any_op
+  transform.print %arg0 name = "test" : !transform.any_op
+  transform.print name = "test"
+  transform.print name = "test" assume_verified
+  transform.print %arg0 assume_verified : !transform.any_op
+  transform.print %arg0 use_local_scope : !transform.any_op
+  transform.print %arg0 skip_regions : !transform.any_op
+  transform.print %arg0 assume_verified use_local_scope skip_regions : !transform.any_op
 }
 
 // CHECK: transform.sequence
diff --git a/mlir/test/Dialect/Transform/selective-targeting.mlir b/mlir/test/Dialect/Transform/selective-targeting.mlir
index 69342100935c7..78303451d186b 100644
--- a/mlir/test/Dialect/Transform/selective-targeting.mlir
+++ b/mlir/test/Dialect/Transform/selective-targeting.mlir
@@ -81,7 +81,7 @@ module attributes {transform.with_named_sequence} {
         %0 = pdl_match @pdl_target_attrA in %arg1 : (!transform.any_op) -> !transform.any_op
         transform.structured.tile_using_for %0 tile_sizes [4, 4, 4] : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
         %1 = pdl_match @pdl_target_attrC in %arg1 : (!transform.any_op) -> !transform.any_op
-        %2 = get_parent_op %1 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %2 = get_parent_op %1 isolated_from_above : (!transform.any_op) -> !transform.any_op
         transform.structured.vectorize_children_and_apply_patterns %2 : (!transform.any_op) -> !transform.any_op
       }
     }
@@ -131,7 +131,7 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = pdl_match @pdl_target in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         transform.structured.vectorize_children_and_apply_patterns %1 : (!transform.any_op) -> !transform.any_op
       }
     }
diff --git a/mlir/test/Dialect/Transform/test-dialect-injection.mlir b/mlir/test/Dialect/Transform/test-dialect-injection.mlir
index 400ee8e6c7b8b..1e14c51130acf 100644
--- a/mlir/test/Dialect/Transform/test-dialect-injection.mlir
+++ b/mlir/test/Dialect/Transform/test-dialect-injection.mlir
@@ -7,7 +7,7 @@
 transform.test_transform_op
 
 // CHECK: = transform.test_produce_self_handle_or_forward_operand {foo = "bar"}
-%0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
+%0 = transform.test_produce_self_handle_or_forward_operand {foo = "bar"} : () -> !transform.any_op
 
 // CHECK: transform.test_consume_operand_of_op_kind_or_fail %{{.*}},
 transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
diff --git a/mlir/test/Dialect/Transform/test-interpreter-printing.mlir b/mlir/test/Dialect/Transform/test-interpreter-printing.mlir
index a54c83d2b249e..7941375c25a9c 100644
--- a/mlir/test/Dialect/Transform/test-interpreter-printing.mlir
+++ b/mlir/test/Dialect/Transform/test-interpreter-printing.mlir
@@ -19,13 +19,13 @@ module attributes {transform.with_named_sequence} {
     // CHECK-LOC-LABEL{LITERAL}: [[[ IR printer: START top-level ]]]
     // CHECK-LOC-NEXT:  #{{.+}} = loc(
     // CHECK-LOC-NEXT:  module {
-    transform.print {name = "START"}
+    transform.print name = "START"
 
     // CHECK{LITERAL}: [[[ IR printer: Local scope top-level ]]]
     // CHECK-NEXT:      module {
     // CHECK-LOC{LITERAL}: [[[ IR printer: Local scope top-level ]]]
     // CHECK-LOC-NEXT:      module {
-    transform.print {name = "Local scope", use_local_scope}
+    transform.print name = "Local scope" use_local_scope
 
     %baz = transform.structured.match ops{["test.baz"]} in %arg0 : (!transform.any_op) -> !transform.any_op
 
@@ -37,20 +37,20 @@ module attributes {transform.with_named_sequence} {
 
     // CHECK{LITERAL}: [[[ IR printer: Baz ]]]
     // CHECK-NEXT:      "test.baz"() ({
-    transform.print %baz {name = "Baz"} : !transform.any_op
+    transform.print %baz name = "Baz" : !transform.any_op
 
     // CHECK{LITERAL}: [[[ IR printer: No region ]]]
     // CHECK-NEXT:      "test.baz"() ({...}) : () -> ()
-    transform.print %baz {name = "No region", skip_regions} : !transform.any_op
+    transform.print %baz name = "No region" skip_regions : !transform.any_op
 
     // CHECK{LITERAL}: [[[ IR printer: No verify ]]]
     // CHECK-NEXT:      "test.baz"() ({
-    // CHECK-NEXT:        transform.test_dummy_payload_op  {fail_to_verify} : () -> ()
+    // CHECK-NEXT:        transform.test_dummy_payload_op  fail_to_verify : () -> ()
     transform.test_produce_invalid_ir %baz : !transform.any_op
-    transform.print %baz {name = "No verify", assume_verified} : !transform.any_op
+    transform.print %baz name = "No verify" assume_verified : !transform.any_op
 
     // CHECK-LABEL{LITERAL}: [[[ IR printer: END top-level ]]]
-    transform.print {name = "END"}
+    transform.print name = "END"
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Transform/test-interpreter.mlir b/mlir/test/Dialect/Transform/test-interpreter.mlir
index 5e49ba784f79a..4e4c74c8936d9 100644
--- a/mlir/test/Dialect/Transform/test-interpreter.mlir
+++ b/mlir/test/Dialect/Transform/test-interpreter.mlir
@@ -14,7 +14,7 @@ module attributes {transform.with_named_sequence} {
 
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
-    %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
+    %0 = transform.test_produce_self_handle_or_forward_operand {foo = "bar"} : () -> !transform.any_op
     // expected-remark @below {{succeeded}}
     transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     transform.yield
@@ -25,7 +25,7 @@ module attributes {transform.with_named_sequence} {
 
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
-    %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
+    %0 = transform.test_produce_self_handle_or_forward_operand {foo = "bar"} : () -> !transform.any_op
     // expected-error @below {{expected the operand to be associated a payload op of kind transform.sequence got transform.test_produce_self_handle_or_forward_operand}}
     transform.test_consume_operand_of_op_kind_or_fail %0, "transform.sequence" : !transform.any_op
     transform.yield
@@ -39,7 +39,7 @@ module attributes {transform.with_named_sequence} {
 // to detect double-consumption.
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
-    %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
+    %0 = transform.test_produce_self_handle_or_forward_operand {foo = "bar"} : () -> !transform.any_op
     %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
     // expected-remark @below {{succeeded}}
     transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
@@ -125,7 +125,7 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %f = pdl_match @const in %arg1 : (!transform.any_op) -> !transform.any_op
-        %m = get_parent_op %f {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %m = get_parent_op %f isolated_from_above : (!transform.any_op) -> !transform.any_op
         transform.debug.emit_remark_at %m, "parent function" : !transform.any_op
       }
     }
@@ -152,9 +152,9 @@ func.func @test_get_nth_parent() {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     %f = transform.structured.match ops{["test.bar"]} in %arg0 : (!transform.any_op) -> !transform.any_op
-    %parent = transform.get_parent_op %f {nth_parent = 1, op_name = "test.foo"} : (!transform.any_op) -> !transform.any_op
+    %parent = transform.get_parent_op %f nth_parent = 1 op_name = "test.foo" : (!transform.any_op) -> !transform.any_op
     transform.debug.emit_remark_at %parent, "1st parent" : !transform.any_op
-    %parent2 = transform.get_parent_op %f {nth_parent = 2, op_name = "test.foo"} : (!transform.any_op) -> !transform.any_op
+    %parent2 = transform.get_parent_op %f nth_parent = 2 op_name = "test.foo" : (!transform.any_op) -> !transform.any_op
     transform.debug.emit_remark_at %parent2, "2nd parent" : !transform.any_op
     transform.yield
   }
@@ -224,13 +224,13 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         // expected-error @below {{all alternatives failed}}
         transform.alternatives %1 : !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
           // expected-remark @below {{applying}}
-          transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
+          transform.test_emit_remark_and_erase_operand %2, "applying" fail_after_erase : !transform.any_op
         }
       }
     }
@@ -262,12 +262,12 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         transform.alternatives %1 : !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
           // expected-remark @below {{applying}}
-          transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
+          transform.test_emit_remark_and_erase_operand %2, "applying" fail_after_erase : !transform.any_op
         }, {
         ^bb2(%arg2: !transform.any_op):
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
@@ -277,7 +277,7 @@ module attributes {transform.with_named_sequence} {
         ^bb2(%arg2: !transform.any_op):
           // This alternative is never run, so we must not have a remark here.
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
-          transform.test_emit_remark_and_erase_operand %2, "should not happen" {fail_after_erase} : !transform.any_op
+          transform.test_emit_remark_and_erase_operand %2, "should not happen" fail_after_erase : !transform.any_op
         }
       }
     }
@@ -308,12 +308,12 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         transform.alternatives %1 : !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
           // expected-remark @below {{applying}}
-          transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
+          transform.test_emit_remark_and_erase_operand %2, "applying" fail_after_erase : !transform.any_op
         }, {
         ^bb2(%arg2: !transform.any_op):
           %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
@@ -349,12 +349,12 @@ module attributes {transform.with_named_sequence} {
       transform.sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+        %1 = get_parent_op %0 isolated_from_above : (!transform.any_op) -> !transform.any_op
         %2 = transform.alternatives %1 : !transform.any_op -> !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
           %3 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
           // expected-remark @below {{applying}}
-          transform.test_emit_remark_and_erase_operand %3, "applying" {fail_after_erase} : !transform.any_op
+          transform.test_emit_remark_and_erase_operand %3, "applying" fail_after_erase : !transform.any_op
           %4 = transform.test_produce_self_handle_or_forward_operand %3 : (!transform.any_op) -> !transform.any_op
           transform.yield %4 : !transform.any_op
         }, {
@@ -428,7 +428,7 @@ module attributes {transform.with_named_sequence} {
       sequence %arg0 : !transform.any_op failures(propagate) {
       ^bb1(%arg1: !transform.any_op):
         %0 = transform.pdl_match @match_const in %arg1 : (!transform.any_op) -> !transform.any_op
-        %1 = transform.get_parent_op %0 {op_name = "scf.for"} : (!transform.any_op) -> !transform.any_op
+        %1 = transform.get_parent_op %0 op_name = "scf.for" : (!transform.any_op) -> !transform.any_op
         // expected-error @below {{only isolated-from-above ops can be alternative scopes}}
         alternatives %1 : !transform.any_op {
         ^bb2(%arg2: !transform.any_op):
@@ -720,7 +720,7 @@ module attributes {transform.with_named_sequence} {
         %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
         // Not expecting error here because we are suppressing it.
         // expected-remark @below {{foo}}
-        test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase} : !transform.any_op
+        test_emit_remark_and_erase_operand %0, "foo" fail_after_erase : !transform.any_op
       }
     }
     transform.yield
@@ -750,7 +750,7 @@ module attributes {transform.with_named_sequence} {
         %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
         // expected-error @below {{silenceable error}}
         // expected-remark @below {{foo}}
-        test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase} : !transform.any_op
+        test_emit_remark_and_erase_operand %0, "foo" fail_after_erase : !transform.any_op
       }
     }
     transform.yield
@@ -1140,7 +1140,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%fun: !transform.any_op) {
     %muli_2 = transform.structured.match ops{["arith.muli"]} in %fun : (!transform.any_op) -> !transform.any_op
     // No error, last result handle is empty.
-    %h:3 = transform.split_handle %muli_2 {fail_on_payload_too_small = false} : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
+    %h:3 = transform.split_handle %muli_2 fail_on_payload_too_small = false : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
     %p = transform.num_associations %h#0 : (!transform.any_op) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark  %p : !transform.param<i64>
@@ -1167,7 +1167,7 @@ func.func @split_handle(%a: index, %b: index, %c: index) {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%fun: !transform.any_op) {
     %muli_2 = transform.structured.match ops{["arith.muli"]} in %fun : (!transform.any_op) -> !transform.any_op
-    %h:2 = transform.split_handle %muli_2 {overflow_result = 0} : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+    %h:2 = transform.split_handle %muli_2 overflow_result = 0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %p = transform.num_associations %h#0 : (!transform.any_op) -> !transform.param<i64>
     // expected-remark @below {{3}}
     transform.debug.emit_param_as_remark  %p : !transform.param<i64>
@@ -1483,7 +1483,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     // expected-error @below {{expected to produce an Operation * for result #0}}
     transform.test_produce_transform_param_or_forward_operand %arg0
-      { first_result_is_param }
+      first_result_is_param
       : (!transform.any_op) -> (!transform.any_op, !transform.param<i64>)
     transform.yield
   }
@@ -1496,7 +1496,7 @@ module attributes {transform.with_named_sequence} {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     transform.test_produce_transform_param_or_forward_operand %arg0
-      { first_result_is_null }
+      first_result_is_null
       : (!transform.any_op) -> (!transform.any_op, !transform.param<i64>)
     transform.yield
   }
@@ -1509,7 +1509,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     // expected-error @below {{expected to produce an Attribute for result #1}}
     transform.test_produce_transform_param_or_forward_operand %arg0
-      { second_result_is_handle }
+      second_result_is_handle
       : (!transform.any_op) -> (!transform.any_op, !transform.param<i64>)
     transform.yield
   }
@@ -1522,7 +1522,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     // expected-error @below {{expected to produce a Value for result #0}}
     transform.test_produce_transform_param_or_forward_operand %arg0
-      { second_result_is_handle }
+      second_result_is_handle
       : (!transform.any_op) -> (!transform.any_value, !transform.param<i64>)
     transform.yield
   }
@@ -2121,17 +2121,17 @@ module attributes {transform.with_named_sequence} {
     %1 = transform.param.constant 1 -> !transform.param<i64>
     %2 = transform.param.constant 1 -> !transform.param<i64>
     %3 = transform.param.constant 2 -> !transform.param<i64>
-    %4 = transform.merge_handles %1, %2 { deduplicate } : !transform.param<i64>
+    %4 = transform.merge_handles deduplicate %1, %2 : !transform.param<i64>
     %p = transform.num_associations %4 : (!transform.param<i64>) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark %p : !transform.param<i64>
 
-    %5 = transform.merge_handles %1, %1 { deduplicate } : !transform.param<i64>
+    %5 = transform.merge_handles deduplicate %1, %1 : !transform.param<i64>
     %p2 = transform.num_associations %5 : (!transform.param<i64>) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark %p2 : !transform.param<i64>
 
-    %6 = transform.merge_handles %1, %3 { deduplicate } : !transform.param<i64>
+    %6 = transform.merge_handles deduplicate %1, %3 : !transform.param<i64>
     %p3 = transform.num_associations %6 : (!transform.param<i64>) -> !transform.param<i64>
     // expected-remark @below {{2}}
     transform.debug.emit_param_as_remark %p3 : !transform.param<i64>
@@ -2154,18 +2154,18 @@ module attributes {transform.with_named_sequence} {
     %2 = transform.test_produce_value_handle_to_result %1, 0 : (!transform.any_op) -> !transform.any_value
     %3 = transform.test_produce_value_handle_to_result %1, 1 : (!transform.any_op) -> !transform.any_value
 
-    %4 = transform.merge_handles %2, %2 { deduplicate } : !transform.any_value
+    %4 = transform.merge_handles deduplicate %2, %2 : !transform.any_value
     %p = transform.num_associations %4 : (!transform.any_value) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark %p : !transform.param<i64>
 
-    %5 = transform.merge_handles %2, %3 { deduplicate } : !transform.any_value
+    %5 = transform.merge_handles deduplicate %2, %3 : !transform.any_value
     %p2 = transform.num_associations %5 : (!transform.any_value) -> !transform.param<i64>
     // expected-remark @below {{2}}
     transform.debug.emit_param_as_remark %p2 : !transform.param<i64>
 
     %6 = transform.test_produce_value_handle_to_result %1, 0 : (!transform.any_op) -> !transform.any_value
-    %7 = transform.merge_handles %2, %6 { deduplicate } : !transform.any_value
+    %7 = transform.merge_handles deduplicate %2, %6 : !transform.any_value
     %p3 = transform.num_associations %6 : (!transform.any_value) -> !transform.param<i64>
     // expected-remark @below {{1}}
     transform.debug.emit_param_as_remark %p3 : !transform.param<i64>
@@ -2364,7 +2364,7 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["test.qux"]} in %arg1 : (!transform.any_op) -> !transform.any_op
 
     // Get parent by name.
-    %1 = transform.get_parent_op %0 {op_name = "test.foo"} : (!transform.any_op) -> !transform.any_op
+    %1 = transform.get_parent_op %0 op_name = "test.foo" : (!transform.any_op) -> !transform.any_op
     transform.debug.emit_remark_at %1, "found test.foo parent" : !transform.any_op
 
     // Get immediate parent.
@@ -2376,7 +2376,7 @@ module attributes {transform.with_named_sequence} {
 
     // Deduplicate results.
     %3 = transform.structured.match ops{["test.qux"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %4 = transform.get_parent_op %3 {deduplicate} : (!transform.any_op) -> !transform.any_op
+    %4 = transform.get_parent_op %3 deduplicate : (!transform.any_op) -> !transform.any_op
     %p2 = transform.num_associations %4 : (!transform.any_op) -> !transform.param<i64>
     // expected-remark @below{{1}}
     transform.debug.emit_param_as_remark %p2 : !transform.param<i64>
@@ -2391,7 +2391,7 @@ module attributes {transform.with_named_sequence} {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
     // expected-error @below{{could not find a parent op that matches all requirements}}
-    %3 = transform.get_parent_op %arg0 {op_name = "builtin.module"} : (!transform.any_op) -> !transform.any_op
+    %3 = transform.get_parent_op %arg0 op_name = "builtin.module" : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -2572,7 +2572,7 @@ module @named_inclusion attributes { transform.with_named_sequence } {
   transform.named_sequence @match_constant_not_under_scf_for(%root: !transform.any_op {transform.readonly})
     -> !transform.any_op {
     transform.match.operation_name %root ["arith.constant"] : !transform.any_op
-    %for = transform.get_parent_op %root { op_name = "scf.for", allow_empty_results }
+    %for = transform.get_parent_op %root op_name = "scf.for" allow_empty_results
       : (!transform.any_op) -> (!transform.any_op)
     transform.match.operation_empty %for : !transform.any_op
     transform.yield %root : !transform.any_op
@@ -2606,7 +2606,7 @@ module @named_inclusion attributes { transform.with_named_sequence } {
   transform.named_sequence @match_constant_not_under_scf_for(%root: !transform.any_op {transform.readonly})
     -> !transform.any_op {
     transform.match.operation_name %root ["arith.constant"] : !transform.any_op
-    %for = transform.get_parent_op %root { op_name = "scf.for", allow_empty_results }
+    %for = transform.get_parent_op %root op_name = "scf.for" allow_empty_results
       : (!transform.any_op) -> (!transform.any_op)
     transform.match.operation_empty %for : !transform.any_op
     transform.yield %root : !transform.any_op
diff --git a/mlir/test/Dialect/Transform/test-loop-transforms.mlir b/mlir/test/Dialect/Transform/test-loop-transforms.mlir
index 475be0169dc66..9ac3125df827b 100644
--- a/mlir/test/Dialect/Transform/test-loop-transforms.mlir
+++ b/mlir/test/Dialect/Transform/test-loop-transforms.mlir
@@ -132,7 +132,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %0 = transform.structured.match ops{["scf.for"]} in %arg0 : (!transform.any_op) -> !transform.any_op
     transform.loop.hoist_loop_invariant_subsets %0 : !transform.any_op
-    transform.loop.unroll %0 { factor = 4 } : !transform.any_op
+    transform.loop.unroll %0 factor = 4 : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Transform/test-pass-application.mlir b/mlir/test/Dialect/Transform/test-pass-application.mlir
index 4806daf7ce73f..846ade5568093 100644
--- a/mlir/test/Dialect/Transform/test-pass-application.mlir
+++ b/mlir/test/Dialect/Transform/test-pass-application.mlir
@@ -183,7 +183,7 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2 = transform.get_parent_op %1 { deduplicate } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 deduplicate : (!transform.any_op) -> !transform.any_op
     %symbol_a = transform.param.constant "a" -> !transform.any_param
     %symbol_b = transform.param.constant "b" -> !transform.any_param
     %multiple_symbol_names = transform.merge_handles %symbol_a, %symbol_b : !transform.any_param
@@ -215,7 +215,7 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2 = transform.get_parent_op %1 { deduplicate } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 deduplicate : (!transform.any_op) -> !transform.any_op
     transform.apply_registered_pass "symbol-privatize"
         with options = { exclude = ["a", "b"] } to %2
         : (!transform.any_op) -> !transform.any_op
@@ -244,7 +244,7 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2 = transform.get_parent_op %1 { deduplicate } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 deduplicate : (!transform.any_op) -> !transform.any_op
     %multiple_symbol_names = transform.param.constant ["a","b"] -> !transform.any_param
     transform.apply_registered_pass "symbol-privatize"
         with options = { exclude = %multiple_symbol_names } to %2
@@ -274,7 +274,7 @@ module {
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg1: !transform.any_op) {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
-    %2 = transform.get_parent_op %1 { deduplicate } : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 deduplicate : (!transform.any_op) -> !transform.any_op
     %symbol_a = transform.param.constant "a" -> !transform.any_param
     %symbol_b = transform.param.constant "b" -> !transform.any_param
     transform.apply_registered_pass "symbol-privatize"
@@ -328,7 +328,7 @@ module attributes {transform.with_named_sequence} {
     // expected-error @+3 {{the param_operand attribute is a marker reserved for indicating a value will be passed via params and is only used in the generic print format}}
     // expected-error @+2 {{expected a valid attribute or operand as value associated to key 'top-down'}}
     %2 = transform.apply_registered_pass "canonicalize"
-        with options = { "top-down" = #transform.param_operand<index=0> } to %1 : (!transform.any_op) -> !transform.any_op
+        with options = {"top-down" = #transform.param_operand<index=0>} to %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -360,7 +360,7 @@ module attributes {transform.with_named_sequence} {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @+2 {{expected key to either be an identifier or a string}}
     %2 = transform.apply_registered_pass "canonicalize"
-        with options = { @label = 0 } to %1 : (!transform.any_op) -> !transform.any_op
+        with options = {@label = 0} to %1 : (!transform.any_op) -> !transform.any_op
     transform.yield
   }
 }
@@ -418,11 +418,9 @@ module attributes {transform.with_named_sequence} {
     %0 = "transform.structured.match"(%arg0) <{ops = ["func.func"]}> : (!transform.any_op) -> !transform.any_op
     %1 = "transform.param.constant"() <{value = 10 : i64}> : () -> !transform.any_param
     // expected-error @below {{dynamic option index 1 is out of bounds for the number of dynamic options: 1}}
-    %2 = "transform.apply_registered_pass"(%0, %1) <{
-      options = {"max-iterations" = #transform.param_operand<index=1 : i64>,
+    %2 = "transform.apply_registered_pass"(%0, %1) <{options = {"max-iterations" = #transform.param_operand<index=1 : i64>,
                  "test-convergence" = true,
-                 "top-down" = false},
-      pass_name = "canonicalize"}>
+                 "top-down" = false}, pass_name = "canonicalize"}>
     : (!transform.any_op, !transform.any_param) -> !transform.any_op
     "transform.yield"() : () -> ()
   }) : () -> ()
@@ -442,12 +440,10 @@ module attributes {transform.with_named_sequence} {
     %1 = "transform.param.constant"() <{value = 10 : i64}> : () -> !transform.any_param
     %2 = "transform.param.constant"() <{value = 1 : i64}> : () -> !transform.any_param
     // expected-error @below {{dynamic option index 0 is already used in options}}
-    %3 = "transform.apply_registered_pass"(%0, %1, %2) <{
-      options = {"max-iterations" = #transform.param_operand<index=0 : i64>,
+    %3 = "transform.apply_registered_pass"(%0, %1, %2) <{options = {"max-iterations" = #transform.param_operand<index=0 : i64>,
                  "max-num-rewrites" = #transform.param_operand<index=0 : i64>,
                  "test-convergence" = true,
-                 "top-down" = false},
-      pass_name = "canonicalize"}>
+                 "top-down" = false}, pass_name = "canonicalize"}>
     : (!transform.any_op, !transform.any_param, !transform.any_param) -> !transform.any_op
     "transform.yield"() : () -> ()
   }) : () -> ()
@@ -466,11 +462,9 @@ module attributes {transform.with_named_sequence} {
     %1 = "transform.param.constant"() <{value = 10 : i64}> : () -> !transform.any_param
     %2 = "transform.param.constant"() <{value = 1 : i64}> : () -> !transform.any_param
     // expected-error @below {{a param operand does not have a corresponding param_operand attr in the options dict}}
-    %3 = "transform.apply_registered_pass"(%0, %1, %2) <{
-      options = {"max-iterations" = #transform.param_operand<index=0 : i64>,
+    %3 = "transform.apply_registered_pass"(%0, %1, %2) <{options = {"max-iterations" = #transform.param_operand<index=0 : i64>,
                  "test-convergence" = true,
-                 "top-down" = false},
-      pass_name = "canonicalize"}>
+                 "top-down" = false}, pass_name = "canonicalize"}>
     : (!transform.any_op, !transform.any_param, !transform.any_param) -> !transform.any_op
     "transform.yield"() : () -> ()
   }) : () -> ()
diff --git a/mlir/test/Dialect/Transform/test-pattern-application.mlir b/mlir/test/Dialect/Transform/test-pattern-application.mlir
index f78b4b6f6798c..da52706ea6c18 100644
--- a/mlir/test/Dialect/Transform/test-pattern-application.mlir
+++ b/mlir/test/Dialect/Transform/test-pattern-application.mlir
@@ -48,7 +48,7 @@ module attributes {transform.with_named_sequence} {
       %1 = transform.structured.match ops{["test.foo"]} in %arg1 : (!transform.any_op) -> !transform.any_op
       transform.apply_patterns to %0 {
         transform.apply_patterns.transform.test_patterns
-      }  {max_num_rewrites = 1} : !transform.any_op
+      }  max_num_rewrites = 1 : !transform.any_op
     }
     transform.yield
   }
@@ -271,7 +271,7 @@ module attributes {transform.with_named_sequence} {
     %1 = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.any_op
     transform.apply_patterns to %1 {
       transform.apply_patterns.canonicalization
-    } {apply_cse} : !transform.any_op
+    } apply_cse : !transform.any_op
     transform.yield
   }
 }
@@ -294,7 +294,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.transform.test_conversion_patterns
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {legal_ops = ["func.func", "func.return", "test.new_op"]}
+    } legal_ops = ["func.func", "func.return", "test.new_op"]
         : !transform.any_op
     transform.yield
   }
@@ -320,7 +320,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.transform.test_conversion_patterns
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {legal_ops = ["func.func", "func.return", "test.new_op"]}
+    } legal_ops = ["func.func", "func.return", "test.new_op"]
         : !transform.any_op
     transform.yield
   }
@@ -349,8 +349,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.transform.test_conversion_patterns
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {legal_ops = ["func.func", "func.return", "test.new_op"],
-       partial_conversion} : !transform.any_op
+    } legal_ops = ["func.func", "func.return", "test.new_op"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
@@ -364,7 +363,7 @@ module attributes {transform.with_named_sequence} {
     transform.apply_conversion_patterns to %0 {
       // expected-note @below{{pattern descriptor op}}
       transform.apply_conversion_patterns.transform.test_conversion_patterns
-    } {illegal_ops = ["test.foo"]} : !transform.any_op
+    } illegal_ops = ["test.foo"] : !transform.any_op
     transform.yield
   }
 }
@@ -379,8 +378,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.dialect_to_llvm "test"
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {illegal_ops = ["test.foo"],
-       legal_ops = ["func.func", "func.return", "test.new_op"]}
+    } illegal_ops = ["test.foo"] legal_ops = ["func.func", "func.return", "test.new_op"]
         : !transform.any_op
     transform.yield
   }
@@ -396,8 +394,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.dialect_to_llvm "this_dialect_does_not_exist"
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-    } {illegal_ops = ["test.foo"],
-       legal_ops = ["func.func", "func.return", "test.new_op"]}
+    } illegal_ops = ["test.foo"] legal_ops = ["func.func", "func.return", "test.new_op"]
         : !transform.any_op
     transform.yield
   }
@@ -413,8 +410,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.dialect_to_llvm "transform"
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-    } {illegal_ops = ["test.foo"],
-       legal_ops = ["func.func", "func.return", "test.new_op"]}
+    } illegal_ops = ["test.foo"] legal_ops = ["func.func", "func.return", "test.new_op"]
         : !transform.any_op
     transform.yield
   }
@@ -470,7 +466,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.transform.test_conversion_patterns
     } with type_converter {
       transform.apply_conversion_patterns.transform.test_type_converter
-    } {legal_ops = ["func.func", "func.return", "test.new_op"], preserve_handles}
+    } legal_ops = ["func.func", "func.return", "test.new_op"] preserve_handles
         : !transform.any_op
     // Add an attribute to %1, which is now mapped to a new op.
     transform.annotate %1 "annotated" : !transform.any_op
diff --git a/mlir/test/Dialect/Transform/test-tune-extension.mlir b/mlir/test/Dialect/Transform/test-tune-extension.mlir
index 5da48a2218ec6..b7f2b699b6244 100644
--- a/mlir/test/Dialect/Transform/test-tune-extension.mlir
+++ b/mlir/test/Dialect/Transform/test-tune-extension.mlir
@@ -184,4 +184,4 @@ module attributes {transform.with_named_sequence} {
     }
     transform.yield
   }
-}
\ No newline at end of file
+}
diff --git a/mlir/test/Dialect/Vector/transform-op-vector-to-llvm.mlir b/mlir/test/Dialect/Vector/transform-op-vector-to-llvm.mlir
index 271cdf0e059f4..5a94fb889f3f8 100644
--- a/mlir/test/Dialect/Vector/transform-op-vector-to-llvm.mlir
+++ b/mlir/test/Dialect/Vector/transform-op-vector-to-llvm.mlir
@@ -15,7 +15,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.vector.vector_to_llvm
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-    } {legal_dialects = ["func", "llvm"]} : !transform.any_op
+    } legal_dialects = ["func", "llvm"] : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Dialect/Vector/transform-vector.mlir b/mlir/test/Dialect/Vector/transform-vector.mlir
index 4dc11c26e83f1..3d71063259bbe 100644
--- a/mlir/test/Dialect/Vector/transform-vector.mlir
+++ b/mlir/test/Dialect/Vector/transform-vector.mlir
@@ -18,11 +18,11 @@ module attributes {transform.with_named_sequence} {
     %0 = transform.structured.match ops{["linalg.matmul"]} in %module_op : (!transform.any_op) -> !transform.any_op
     %1, %loops:3 = transform.structured.tile_using_for %0 tile_sizes [8, 4, 2]
       : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
-    %2 = transform.get_parent_op %1 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %2 = transform.get_parent_op %1 isolated_from_above : (!transform.any_op) -> !transform.any_op
     transform.structured.vectorize_children_and_apply_patterns %2 : (!transform.any_op) -> !transform.any_op
     %b = transform.bufferization.one_shot_bufferize
         layout{IdentityLayoutMap} %module_op
-        {bufferize_function_boundaries = true, allow_return_allocs = true}
+        bufferize_function_boundaries = true {allow_return_allocs = true}
         : (!transform.any_op) -> !transform.any_op
 
     %f = transform.structured.match ops{["func.func"]} in %b
diff --git a/mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir b/mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
index e6c9fc297215c..3650f3330e4f9 100644
--- a/mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
+++ b/mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
@@ -210,7 +210,7 @@ func.func @transfer_read_with_mask_dynamic_rank_reducing_1_constant_mask(
 //  CHECK-SAME:     %[[ARG:.+]]: memref<?x1xi8
 //   CHECK-NOT:   vector.constant_mask
 //       CHECK:   %[[SUBVIEW:.+]] = memref.subview %[[ARG]][0, 0] [{{.*}}, 1] [1, 1] : memref<?x1xi8, {{.*}}> to memref<?xi8, {{.*}}>
-//       CHECK:   vector.transfer_read %[[SUBVIEW]]{{.*}} {in_bounds = [true]} : memref<?xi8, {{.*}}>, vector<[16]xi8>
+//       CHECK:   vector.transfer_read %[[SUBVIEW]]{{.*}} {in_bounds = [true]} : memref<?xi8, {{.*}}, vector<[16]xi8>
 
 func.func @transfer_read_with_mask_dynamic_rank_reducing_2_create_mask(
       %arg : memref<1x?x3x1x?x1xi8, strided<[?, ?, ?, ?, ?, ?], offset: ?>>,
@@ -332,7 +332,7 @@ func.func @transfer_write_with_mask_dynamic_rank_reducing_constant_mask(
 //  CHECK-SAME:     %[[ARG:.+]]: memref<?x1xi8
 //   CHECK-NOT:   vector.constant_mask
 //       CHECK:   %[[SUBVIEW:.+]] = memref.subview %[[ARG]][0, 0] [{{.*}}, 1] [1, 1] : memref<?x1xi8, {{.*}}> to memref<?xi8, {{.*}}>
-//       CHECK:   vector.transfer_write {{.*}}, %[[SUBVIEW]]{{.*}} {in_bounds = [true]} : vector<[16]xi8>, memref<?xi8, {{.*}}>
+//       CHECK:   vector.transfer_write {{.*}}, %[[SUBVIEW]]{{.*}} {in_bounds = [true]} : vector<[16]xi8>, memref<?xi8, {{.*}}
 
 /// Only vector.create_mask and vector.constant_mask masks are supported.
 func.func @transfer_read_with_unsupported_mask_dynamic_rank_reducing_1(
diff --git a/mlir/test/Examples/transform-opt/external-def.mlir b/mlir/test/Examples/transform-opt/external-def.mlir
index 9dc4fbbdd6b61..cdc1c28390ac8 100644
--- a/mlir/test/Examples/transform-opt/external-def.mlir
+++ b/mlir/test/Examples/transform-opt/external-def.mlir
@@ -2,7 +2,7 @@
 
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @external_def(%root: !transform.any_op {transform.readonly}) {
-    transform.print %root { name = "external_def" } : !transform.any_op
+    transform.print %root name = "external_def" : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Examples/transform-opt/self-contained.mlir b/mlir/test/Examples/transform-opt/self-contained.mlir
index b9a93af61b8bb..e23311594c07c 100644
--- a/mlir/test/Examples/transform-opt/self-contained.mlir
+++ b/mlir/test/Examples/transform-opt/self-contained.mlir
@@ -15,7 +15,7 @@
 // CHECK-NOT: @__transform_main
 module attributes {transform.with_named_sequence} {
   transform.named_sequence private @__transform_main(%root: !transform.any_op) {
-    transform.print %root { name = "in self-contained" } : !transform.any_op
+    transform.print %root name = "in self-contained" : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/Examples/transform/Ch1/invalidation-2.mlir b/mlir/test/Examples/transform/Ch1/invalidation-2.mlir
index e09aca31a90da..f72131ed02919 100644
--- a/mlir/test/Examples/transform/Ch1/invalidation-2.mlir
+++ b/mlir/test/Examples/transform/Ch1/invalidation-2.mlir
@@ -91,7 +91,7 @@ module attributes {transform.with_named_sequence} {
       : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
 
   // expected-note @below {{invalidated by this transform op that consumes its operand #0 and invalidates all handles to payload IR entities associated with this operand and entities nested in them}}
-  %func, %call = transform.loop.outline %outline_target {func_name = "outlined"}
+  %func, %call = transform.loop.outline %outline_target func_name = "outlined"
       : (!transform.any_op) -> (!transform.any_op, !transform.op<"func.call">)
 
   // expected-error @below {{uses a handle invalidated by a previously executed transform op}}
diff --git a/mlir/test/Examples/transform/Ch1/sequence.mlir b/mlir/test/Examples/transform/Ch1/sequence.mlir
index f8dfd2de01d97..e0aa750e94367 100644
--- a/mlir/test/Examples/transform/Ch1/sequence.mlir
+++ b/mlir/test/Examples/transform/Ch1/sequence.mlir
@@ -104,7 +104,7 @@ module attributes {transform.with_named_sequence} {
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %_1, %outline_target = transform.structured.fuse_into_containing_op %matmul_fused_2 into %loop_third
         : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %func, %call = transform.loop.outline %outline_target {func_name = "outlined"}
+    %func, %call = transform.loop.outline %outline_target func_name = "outlined"
         : (!transform.any_op) -> (!transform.any_op, !transform.op<"func.call">)
   
     transform.yield
diff --git a/mlir/test/Examples/transform/Ch2/sequence.mlir b/mlir/test/Examples/transform/Ch2/sequence.mlir
index 8d6e129c25f7d..253bdc4d1bbd0 100644
--- a/mlir/test/Examples/transform/Ch2/sequence.mlir
+++ b/mlir/test/Examples/transform/Ch2/sequence.mlir
@@ -100,7 +100,7 @@ module attributes {transform.with_named_sequence} {
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %_1, %outline_target = transform.structured.fuse_into_containing_op %matmul_fused_2 into %loop_third
         : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %func, %call = transform.loop.outline %outline_target {func_name = "outlined"}
+    %func, %call = transform.loop.outline %outline_target func_name = "outlined"
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
 
     // Rewrite the call target.
diff --git a/mlir/test/Examples/transform/Ch3/sequence.mlir b/mlir/test/Examples/transform/Ch3/sequence.mlir
index 877b0064647d3..73d0fa81b24d2 100644
--- a/mlir/test/Examples/transform/Ch3/sequence.mlir
+++ b/mlir/test/Examples/transform/Ch3/sequence.mlir
@@ -100,7 +100,7 @@ module attributes {transform.with_named_sequence} {
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     %_1, %outline_target = transform.structured.fuse_into_containing_op %matmul_fused_2 into %loop_third
         : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
-    %func, %call = transform.loop.outline %outline_target {func_name = "outlined"}
+    %func, %call = transform.loop.outline %outline_target func_name = "outlined"
         : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
     // Cast to our new type.
     %casted = transform.cast %call : !transform.any_op to !transform.my.call_op_interface
diff --git a/mlir/test/Examples/transform/Ch4/features.mlir b/mlir/test/Examples/transform/Ch4/features.mlir
index d23b6e8435ef5..1c763461b7a24 100644
--- a/mlir/test/Examples/transform/Ch4/features.mlir
+++ b/mlir/test/Examples/transform/Ch4/features.mlir
@@ -88,14 +88,14 @@ module @transforms attributes { transform.with_named_sequence } {
       transform.match.param.cmpi eq %n_inits, %c1 : !transform.param<i64>
 
       // All inputs and inits are accessed with a projected permutation.
-      transform.match.structured.input %c[all] {projected_permutation}
+      transform.match.structured.input %c[all] projected_permutation
         : !transform.any_op
-      transform.match.structured.init %c[0] {projected_permutation}
+      transform.match.structured.init %c[0] projected_permutation
         : !transform.any_op
 
       // The body is a mulf/addf contraction with appropriate dimensions.
       transform.match.structured.body %c 
-        { contraction = ["arith.mulf", "arith.addf"] } : !transform.any_op
+        contraction = ["arith.mulf", "arith.addf"] : !transform.any_op
       %batch, %lhs, %rhs, %reduction =
       transform.match.structured.classify_contraction_dims %c
         : (!transform.any_op)
diff --git a/mlir/test/Examples/transform/ChH/full.mlir b/mlir/test/Examples/transform/ChH/full.mlir
index 1293406d72475..b9b22552dfe4b 100644
--- a/mlir/test/Examples/transform/ChH/full.mlir
+++ b/mlir/test/Examples/transform/ChH/full.mlir
@@ -316,9 +316,8 @@ module attributes { transform.with_named_sequence } {
     // --pass-pipeline expressions with operations. Note that we apply the
     // pipeline to functions rather than entire module to avoid running it
     // on the transform IR that is contained in the module.
-    %arg1 = transform.bufferization.one_shot_bufferize %arg0 {
-      bufferize_function_boundaries = true,
-      function_boundary_type_conversion = 1 : i32 }
+    %arg1 = transform.bufferization.one_shot_bufferize layout{IdentityLayoutMap}
+      %arg0 bufferize_function_boundaries = true
       : (!transform.any_op) -> !transform.any_op
     %f = transform.structured.match ops{["func.func"]} in %arg1
       : (!transform.any_op) -> !transform.any_op
diff --git a/mlir/test/Integration/Dialect/EmitC/td.mlir b/mlir/test/Integration/Dialect/EmitC/td.mlir
index 97bb878dc7945..fc1c16b325070 100644
--- a/mlir/test/Integration/Dialect/EmitC/td.mlir
+++ b/mlir/test/Integration/Dialect/EmitC/td.mlir
@@ -1,24 +1,21 @@
 module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%module:
-  !transform.any_op{transform.consumed}) {
+  !transform.any_op {transform.consumed}) {
     // 1. TOSA --> Linalg
     %func_h_1 = transform.structured.match ops{["func.func"]} in %module : (!transform.any_op) -> !transform.any_op
     transform.apply_registered_pass "tosa-to-linalg"
       to %func_h_1 : (!transform.any_op) -> !transform.any_op
 
     // 2. Bufferize
-    // As per BufferizationEnums.td, value 1 for `LayoutMapOption` corresponds
-    // to `IdentityLayoutMap`.
-    %module_bufferized = transform.bufferization.one_shot_bufferize %module
-      { bufferize_function_boundaries=true,
-        function_boundary_type_conversion = 1 : i32}
+    %module_bufferized = transform.bufferization.one_shot_bufferize
+      layout{IdentityLayoutMap} %module bufferize_function_boundaries=true
       : (!transform.any_op) -> !transform.op<"builtin.module">
 
     // 3. Apply BufferResultsToOutParams - otherwise the following error is raised:
     //    * "error: 'emitc.func' op cannot return array type"
     // "hoist-static-allocs" is an optional optimization step.
     %func_h_2 = transform.structured.match ops{["func.func"]} in %module_bufferized : (!transform.op<"builtin.module">) -> !transform.any_op
-    %module_h_1 = transform.get_parent_op %func_h_2 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    %module_h_1 = transform.get_parent_op %func_h_2 isolated_from_above : (!transform.any_op) -> !transform.any_op
     %module_results_as_out_param = transform.apply_registered_pass "buffer-results-to-out-params"
       with options = { "hoist-static-allocs" = true }
       to %module_h_1 : (!transform.any_op) -> !transform.any_op
@@ -35,7 +32,7 @@ module attributes {transform.with_named_sequence} {
     //  * https://github.com/llvm/llvm-project/issues/179247
     // %func_h_3 = transform.structured.match ops{["func.func"]} in %module_final_no_linalg
     //   : (!transform.any_op) -> !transform.any_op
-    // %module_h_2 = transform.get_parent_op %func_h_3 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
+    // %module_h_2 = transform.get_parent_op %func_h_3 isolated_from_above : (!transform.any_op) -> !transform.any_op
     // transform.apply_registered_pass "convert-to-emitc" to %module_h_2
     //   : (!transform.any_op) -> !transform.op<"builtin.module">
 
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
index ce21de22b596f..0c40f113bed3a 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-scalable-inner-tile.mlir
@@ -146,7 +146,7 @@ module @transforms attributes { transform.with_named_sequence } {
     //  %inserted_slice = tensor.insert_slice %slice_of_A into %fill[0, 0] [%4, %5] [1, 1] :
     //    tensor<?x?xi32> into tensor<8x1xi32>
     //
-    %func_op = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.linalg.decompose_pad
@@ -164,7 +164,7 @@ module @transforms attributes { transform.with_named_sequence } {
 
     // 3. Bufferize before lowering to LLVM
     %bufferize = transform.bufferization.one_shot_bufferize %module
-      {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+      bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
     // 4. Canonicalize + rank-reducing patters (to get rid of the trailing unit
     // dim).
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
index da517bbbe6789..25e1167c48010 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/pack-unpack-mmt4d.mlir
@@ -272,7 +272,7 @@ module @transforms attributes { transform.with_named_sequence } {
     // HANDLE MMT4D
     //==========================================================================
     %mmt4d = transform.collect_matching @match_mmt4d in %module : (!transform.any_op) -> (!transform.any_op)
-    %mmt4d_func = transform.get_parent_op %mmt4d {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %mmt4d_func = transform.get_parent_op %mmt4d isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
 
     // Step 1: Tile
     // Tile parallel dims (note, the N dim is scalable!)
@@ -285,7 +285,7 @@ module @transforms attributes { transform.with_named_sequence } {
     // Step 2: Vectorize linalg.mmt4d (note, the N dim is scalable!)
     // TODO: Lower directly to named contractions: https://github.com/llvm/llvm-project/issues/159749
     transform.structured.vectorize %tiled_mmt4d
-      vector_sizes  [1, 1, 1, 8, [8], 1]  {assume_dynamic_dims_match_vec_sizes} : !transform.any_op
+      vector_sizes  [1, 1, 1, 8, [8], 1]  assume_dynamic_dims_match_vec_sizes : !transform.any_op
 
     // Step 3: Simplify
     // vector.multi_reduction --> vector.contract
@@ -331,7 +331,7 @@ module @transforms attributes { transform.with_named_sequence } {
        : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // 2.1. Decompose tiled PackOp into lower-level Ops + simplify
-    %func_op_pack = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op_pack = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op_pack {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.linalg.decompose_pad
@@ -343,7 +343,7 @@ module @transforms attributes { transform.with_named_sequence } {
     } : !transform.op<"func.func">
 
     // 2.2. Decompose tiled UnpackOp into lower-level Ops + simplify
-    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op_unpack {
       transform.apply_patterns.linalg.decompose_pack_unpack
     } : !transform.op<"func.func">
@@ -357,13 +357,13 @@ module @transforms attributes { transform.with_named_sequence } {
    // BUFFERIZATION
    //==========================================================================
    %bufferize = transform.bufferization.one_shot_bufferize %module
-     {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+     bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
    //==========================================================================
    // SIMPLIFY THE CONTRACT Op
    //==========================================================================
    %contract = transform.collect_matching @match_contract in %bufferize : (!transform.any_op) -> (!transform.any_op)
-   %contract_func = transform.get_parent_op %contract {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+   %contract_func = transform.get_parent_op %contract isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
 
    // Drop trailing unit dims (the correspondong pattern works only
    // post-bufferization)
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/td/pack-unpack.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/td/pack-unpack.mlir
index 80aa49ab4d945..bbce19eb9c291 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/td/pack-unpack.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSVE/td/pack-unpack.mlir
@@ -18,7 +18,7 @@ module @transforms attributes { transform.with_named_sequence } {
        : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // 2.1. Decompose tiled PackOp into lower-level Ops
-    %func_op_pack = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op_pack = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op_pack {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.linalg.decompose_pad
@@ -30,7 +30,7 @@ module @transforms attributes { transform.with_named_sequence } {
     } : !transform.op<"func.func">
 
     // 2.2. Decompose tiled UnpackOp into lower-level Ops
-    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op_unpack {
       transform.apply_patterns.linalg.decompose_pack_unpack
     } : !transform.op<"func.func">
@@ -42,7 +42,7 @@ module @transforms attributes { transform.with_named_sequence } {
 
    // 3. Bufferize before lowering to LLVM
    %bufferize = transform.bufferization.one_shot_bufferize %module
-     {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+     bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
    // 4. Canonicalize
    %func_op_bufferized = transform.structured.match ops{["func.func"]} in %bufferize : (!transform.any_op) -> !transform.op<"func.func">
@@ -70,7 +70,7 @@ module @transforms attributes { transform.with_named_sequence } {
        : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // 2.1. Decompose tiled PackOp into lower-level Ops
-    %func_op_pack = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op_pack = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op_pack {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.linalg.decompose_pad
@@ -82,8 +82,8 @@ module @transforms attributes { transform.with_named_sequence } {
     } : !transform.op<"func.func">
 
     // 2.2. Vectorize tiled UnpackOp into lower-level Ops
-    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
-    transform.structured.vectorize %tiled_unpack_op_p vector_sizes  [1, 1, 4, [4]]  {assume_dynamic_dims_match_vec_sizes} : !transform.any_op
+    %func_op_unpack = transform.get_parent_op %tiled_unpack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
+    transform.structured.vectorize %tiled_unpack_op_p vector_sizes  [1, 1, 4, [4]]  assume_dynamic_dims_match_vec_sizes : !transform.any_op
 
     transform.apply_patterns to %func_op_unpack {
       transform.apply_patterns.vector.transfer_permutation_patterns
@@ -93,7 +93,7 @@ module @transforms attributes { transform.with_named_sequence } {
 
     // 3. Bufferize
     %bufferize = transform.bufferization.one_shot_bufferize %module
-     {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+     bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
     // 4. Canonicalize
     %func_op_bufferized = transform.structured.match ops{["func.func"]} in %bufferize : (!transform.any_op) -> !transform.op<"func.func">
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
index dcd7686eb1f2c..207509eda0997 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/mmt4d.mlir
@@ -67,7 +67,7 @@ func.func @mmt4d() {
 module @transforms attributes { transform.with_named_sequence } {
   transform.named_sequence @__transform_main(%module: !transform.any_op {transform.readonly}) {
    %mmt4d = transform.collect_matching @match_mmt4d in %module : (!transform.any_op) -> (!transform.any_op)
-   %func = transform.get_parent_op %mmt4d {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+   %func = transform.get_parent_op %mmt4d isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
 
    // Step 1: Tile
    // Tile parallel dims
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
index 99e2f8b097b25..7c428203392b5 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/pack-dynamic-inner-tile.mlir
@@ -106,7 +106,7 @@ module @transforms attributes { transform.with_named_sequence } {
     //  %inserted_slice = tensor.insert_slice %slice_of_A into %fill[0, 0] [%4, %5] [1, 1] :
     //    tensor<?x?xi32> into tensor<8x1xi32>
     //
-    %func_op = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.linalg.decompose_pad
@@ -124,7 +124,7 @@ module @transforms attributes { transform.with_named_sequence } {
 
     // 4. Bufferize before lowering to LLVM
     %bufferize = transform.bufferization.one_shot_bufferize %module
-      {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+      bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
     // 5. Deallocate buffers.
     %func_op_bufferized = transform.structured.match ops{["func.func"]} in %bufferize : (!transform.any_op) -> !transform.op<"func.func">
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
index ac5e83c9669fb..48f2a7b14f821 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/pack-unpack-mmt4d.mlir
@@ -104,7 +104,7 @@ func.func private @mmt4d(%A: tensor<7x16xi32>, %B: tensor<16x13xi32>, %C: tensor
 module @transforms attributes { transform.with_named_sequence } {
   transform.named_sequence @__transform_main(%module: !transform.any_op {transform.readonly}) {
    %mmt4d = transform.collect_matching @match_mmt4d in %module : (!transform.any_op) -> (!transform.any_op)
-   %func = transform.get_parent_op %mmt4d {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+   %func = transform.get_parent_op %mmt4d isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
 
    // Step 1: Tile
    // Tile parallel dims
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
index aaad5e745f02f..d0ca0c1bcdba6 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/unpack-dynamic-inner-tile.mlir
@@ -89,7 +89,7 @@ module @transforms attributes { transform.with_named_sequence } {
        : (!transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.any_op, !transform.any_op)
 
     // 2. Decompose the tiled unpack Op into tensor.extract_slice + tensor.insert_slice:
-    %func_op = transform.get_parent_op %tiled_pack_op_p {isolated_from_above} : (!transform.any_op) -> !transform.op<"func.func">
+    %func_op = transform.get_parent_op %tiled_pack_op_p isolated_from_above : (!transform.any_op) -> !transform.op<"func.func">
     transform.apply_patterns to %func_op {
       transform.apply_patterns.linalg.decompose_pack_unpack
       transform.apply_patterns.canonicalization
@@ -102,7 +102,7 @@ module @transforms attributes { transform.with_named_sequence } {
 
     // 4. Bufferize before lowering to LLVM
     %bufferize = transform.bufferization.one_shot_bufferize %module
-      {bufferize_function_boundaries=true} : (!transform.any_op) -> !transform.any_op
+      bufferize_function_boundaries=true : (!transform.any_op) -> !transform.any_op
 
     // 5. Canonicalize
     %func_op_bufferized = transform.structured.match ops{["func.func"]} in %bufferize : (!transform.any_op) -> !transform.op<"func.func">
diff --git a/mlir/test/Integration/Dialect/Transform/match_matmul_common.mlir b/mlir/test/Integration/Dialect/Transform/match_matmul_common.mlir
index 78f92efae54fb..efe68cc0004b9 100644
--- a/mlir/test/Integration/Dialect/Transform/match_matmul_common.mlir
+++ b/mlir/test/Integration/Dialect/Transform/match_matmul_common.mlir
@@ -32,7 +32,7 @@ module attributes { transform.with_named_sequence } {
       %init = transform.match.structured.init %struct[0] : (!transform.any_op) -> !transform.any_op
       transform.match.operation_name %init ["linalg.fill"] : !transform.any_op
 
-      transform.match.structured.body %struct { contraction = ["arith.mulf", "arith.addf"] } : !transform.any_op
+      transform.match.structured.body %struct contraction = ["arith.mulf", "arith.addf"] : !transform.any_op
       %dim_kinds:4 = transform.match.structured.classify_contraction_dims %struct
         : (!transform.any_op) -> (!transform.param<i64>, !transform.param<i64>, !transform.param<i64>, !transform.param<i64>)
 
diff --git a/mlir/test/Integration/Dialect/Transform/match_reduction.mlir b/mlir/test/Integration/Dialect/Transform/match_reduction.mlir
index 8a155aaafe777..63444346aa911 100644
--- a/mlir/test/Integration/Dialect/Transform/match_reduction.mlir
+++ b/mlir/test/Integration/Dialect/Transform/match_reduction.mlir
@@ -7,9 +7,9 @@ module attributes { transform.with_named_sequence } {
 
     transform.match.structured %entry : !transform.any_op {
     ^bb0(%struct: !transform.any_op):
-      transform.match.structured.dim %struct[all] {parallel} : !transform.any_op
-      transform.match.structured.input %struct[all] {projected_permutation} : !transform.any_op
-      transform.match.structured.init %struct[all] {permutation} : !transform.any_op
+      transform.match.structured.dim %struct[all] parallel : !transform.any_op
+      transform.match.structured.input %struct[all] projected_permutation : !transform.any_op
+      transform.match.structured.init %struct[all] permutation : !transform.any_op
       %ni = transform.match.structured.num_inits %struct : (!transform.any_op) -> !transform.param<i64>
       transform.match.param.cmpi eq %ni, %c1 : !transform.param<i64>
     }
@@ -31,8 +31,8 @@ module attributes { transform.with_named_sequence } {
       transform.match.param.cmpi ge %rank, %c2 : !transform.param<i64>
       transform.match.param.cmpi le %rank, %c4 : !transform.param<i64>
 
-      transform.match.structured.dim %struct[-1] {reduction} : !transform.any_op
-      transform.match.structured.dim %struct[except(-1)] {parallel} : !transform.any_op
+      transform.match.structured.dim %struct[-1] reduction : !transform.any_op
+      transform.match.structured.dim %struct[except(-1)] parallel : !transform.any_op
       %dims = transform.match.structured.dim %struct[all] : (!transform.any_op) -> !transform.param<i64>
 
       %n_inputs = transform.match.structured.num_inputs %struct : (!transform.any_op) -> !transform.param<i64>
@@ -40,8 +40,8 @@ module attributes { transform.with_named_sequence } {
       transform.match.param.cmpi eq %n_inputs, %c1 : !transform.param<i64>
       transform.match.param.cmpi eq %n_outputs, %c1 : !transform.param<i64>
 
-      transform.match.structured.input %struct[0] {projected_permutation} : !transform.any_op
-      transform.match.structured.init %struct[0] {projected_permutation} : !transform.any_op
+      transform.match.structured.input %struct[0] projected_permutation : !transform.any_op
+      transform.match.structured.init %struct[0] projected_permutation : !transform.any_op
       %init = transform.match.structured.init %struct[0] : (!transform.any_op) -> !transform.any_value
 
       // This danse is necessary to create an empty handle if there is no single
@@ -50,7 +50,7 @@ module attributes { transform.with_named_sequence } {
       ^bb0(%struct_inner: !transform.any_op):
         %result = transform.match.structured failures(propagate) %struct_inner : (!transform.any_op) -> !transform.any_op {
         ^bb0(%struct_inner_inner: !transform.any_op):
-          %result_inner = transform.match.structured.result %struct_inner_inner[0] {single} : (!transform.any_op) -> !transform.any_op
+          %result_inner = transform.match.structured.result %struct_inner_inner[0] single : (!transform.any_op) -> !transform.any_op
           %trailing = transform.include @_reduce_leading_trailing failures(propagate) (%result_inner) : (!transform.any_op) -> !transform.any_op
           transform.match.structured.yield %trailing : !transform.any_op
         }
@@ -82,7 +82,7 @@ module attributes { transform.with_named_sequence } {
 
       %bitwidth = transform.match.structured.elemental_bitwidth %init : (!transform.any_value) -> !transform.param<i64>
 
-      transform.match.structured.body %struct { reduction_position = 0 } : !transform.any_op
+      transform.match.structured.body %struct reduction_position = 0 : !transform.any_op
       transform.match.structured.yield %rank, %dims, %bitwidth, %operand_optional, %init, %trailing_optional
         : !transform.param<i64>, !transform.param<i64>, !transform.param<i64>,
           !transform.any_op, !transform.any_value, !transform.any_op
diff --git a/mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-interface.mlir b/mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-interface.mlir
index 43a6705777623..11a13bae12032 100644
--- a/mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-interface.mlir
+++ b/mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-interface.mlir
@@ -713,7 +713,7 @@ module attributes {transform.with_named_sequence} {
   transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
     %consumer = transform.structured.match ops{["linalg.generic"]} in %arg0
         : (!transform.any_op) -> !transform.any_op
-    %tiled, %loop = transform.structured.fuse %consumer tile_sizes [0, 32] {apply_cleanup}
+    %tiled, %loop = transform.structured.fuse %consumer tile_sizes [0, 32] apply_cleanup
         : (!transform.any_op) -> (!transform.any_op, !transform.op<"scf.for">)
     transform.yield
   }
diff --git a/mlir/test/Transforms/test-block-legalization.mlir b/mlir/test/Transforms/test-block-legalization.mlir
index d739f95a56947..239a91dc15406 100644
--- a/mlir/test/Transforms/test-block-legalization.mlir
+++ b/mlir/test/Transforms/test-block-legalization.mlir
@@ -35,10 +35,7 @@ module attributes {transform.with_named_sequence} {
       transform.apply_conversion_patterns.scf.scf_to_control_flow
     } with type_converter {
       transform.apply_conversion_patterns.memref.memref_to_llvm_type_converter
-    } {
-      legal_dialects = ["llvm"], 
-      partial_conversion
-    } : !transform.any_op
+    } legal_dialects = ["llvm"] partial_conversion : !transform.any_op
     transform.yield
   }
 }
diff --git a/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td b/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
index d55311eb89651..08da3376f311a 100644
--- a/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
+++ b/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
@@ -131,7 +131,7 @@ def TestConsumeOperand : Op<Transform_Dialect, "test_consume_operand",
     Optional<TransformHandleTypeInterface>:$second_operand,
     UnitAttr:$allow_repeated_handles);
   let assemblyFormat = 
-      "$operand (`,` $second_operand^)? attr-dict `:` type($operand)"
+      "$operand (`,` $second_operand^)? oilist(`allow_repeated_handles` $allow_repeated_handles) attr-dict `:` type($operand)"
       "(`,` type($second_operand)^)?";
   let cppNamespace = "::mlir::test";
 }
@@ -211,7 +211,7 @@ def TestRemoveTestExtensionOp
   : Op<Transform_Dialect, "test_remove_test_extension",
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         NoMemoryEffect]> {
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
   let cppNamespace = "::mlir::test";
 }
 
@@ -230,7 +230,7 @@ def TestTransformOpWithRegions
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
   let regions = (region AnyRegion:$first, AnyRegion:$second);
-  let assemblyFormat = "attr-dict-with-keyword regions";
+  let assemblyFormat = " attr-dict-with-keyword regions";
   let cppNamespace = "::mlir::test";
 }
 
@@ -249,7 +249,7 @@ def TestEmitRemarkAndEraseOperandOp
      FunctionalStyleTransformOpTrait]> {
   let arguments = (ins TransformHandleTypeInterface:$target, StrAttr:$remark,
                    UnitAttr:$fail_after_erase);
-  let assemblyFormat = "$target `,` $remark attr-dict `:` type($target)";
+  let assemblyFormat = "$target `,` $remark oilist(`fail_after_erase` $fail_after_erase) attr-dict `:` type($target)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -411,7 +411,7 @@ def TestProduceTransformParamOrForwardOperandOp
                        UnitAttr:$second_result_is_handle);
   let results = (outs AnyType:$out,
                       TransformParamTypeInterface:$param);
-  let assemblyFormat = "$in attr-dict `:` functional-type(operands, results)";
+  let assemblyFormat = "$in oilist(`first_result_is_param` $first_result_is_param | `first_result_is_null` $first_result_is_null | `second_result_is_handle` $second_result_is_handle) attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
 
   let extraClassDeclaration = [{
@@ -428,7 +428,7 @@ def TestProduceNullPayloadOp
       [DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
        DeclareOpInterfaceMethods<TransformOpInterface>]> {
   let results = (outs TransformHandleTypeInterface:$out);
-  let assemblyFormat = "attr-dict `:` type($out)";
+  let assemblyFormat = " attr-dict `:` type($out)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -437,7 +437,7 @@ def TestProduceEmptyPayloadOp
       [DeclareOpInterfaceMethods<TransformOpInterface>,
        MemoryEffectsOpInterface, FunctionalStyleTransformOpTrait]> {
   let results = (outs TransformHandleTypeInterface:$out);
-  let assemblyFormat = "attr-dict `:` type($out)";
+  let assemblyFormat = " attr-dict `:` type($out)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -446,7 +446,7 @@ def TestProduceNullParamOp
       [DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
        DeclareOpInterfaceMethods<TransformOpInterface>]> {
   let results = (outs TransformParamTypeInterface:$out);
-  let assemblyFormat = "attr-dict `:` type($out)";
+  let assemblyFormat = " attr-dict `:` type($out)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -455,7 +455,7 @@ def TestProduceNullValueOp
        [DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
         DeclareOpInterfaceMethods<TransformOpInterface>]> {
   let results = (outs TransformValueHandleTypeInterface:$out);
-  let assemblyFormat = "attr-dict `:` type($out)";
+  let assemblyFormat = " attr-dict `:` type($out)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -468,7 +468,7 @@ def TestRequiredMemoryEffectsOp
                        UnitAttr:$has_result_effect,
                        UnitAttr:$modifies_payload);
   let results = (outs TransformHandleTypeInterface:$out);
-  let assemblyFormat = "$in attr-dict `:` functional-type(operands, results)";
+  let assemblyFormat = "$in oilist(`has_operand_effect` $has_operand_effect | `has_result_effect` $has_result_effect | `modifies_payload` $modifies_payload) attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -484,7 +484,7 @@ def TestDummyPayloadOp
   let arguments = (ins Variadic<AnyType>:$args,
                        UnitAttr:$fail_to_verify);
   let results = (outs Variadic<AnyType>:$outs);
-  let assemblyFormat = "$args attr-dict `:` functional-type(operands, results)";
+  let assemblyFormat = "$args oilist(`fail_to_verify` $fail_to_verify) attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
   let hasVerifier = 1;
 
@@ -513,7 +513,7 @@ def ApplyTestPatternsOp
       [DeclareOpInterfaceMethods<PatternDescriptorOpInterface>]> {
   let arguments = (ins);
   let results = (outs);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
   let cppNamespace = "::mlir::test";
 }
 
@@ -522,7 +522,7 @@ def ApplyTestConversionPatternsOp
       [DeclareOpInterfaceMethods<ConversionPatternDescriptorOpInterface>]> {
   let arguments = (ins);
   let results = (outs);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
   let cppNamespace = "::mlir::test";
 }
 
@@ -532,7 +532,7 @@ def TestTypeConverterOp
                                  ["getTypeConverter"]>]> {
   let arguments = (ins);
   let results = (outs);
-  let assemblyFormat = "attr-dict";
+  let assemblyFormat = " attr-dict";
   let cppNamespace = "::mlir::test";
 }
 
diff --git a/mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td b/mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
index efa16212f0fef..fa7a0e58cfeb9 100644
--- a/mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
+++ b/mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
@@ -44,7 +44,7 @@ def TestFuseAndYieldOp : Op<Transform_Dialect, "test.fuse_and_yield",
 
   let assemblyFormat = [{
     $target ($tile_sizes^)? (`interchange` $tile_interchange^)?
-    (`use_forall` $use_forall^)? attr-dict 
+    (`use_forall` $use_forall^)? attr-dict
     `:` functional-type(operands, results)
   }];
 }
@@ -64,7 +64,7 @@ def TestFuseConsumerUsingSliceOp : Op<Transform_Dialect, "test.fuse_consumer_usi
     fusion.
   }];
 
-  let arguments = (ins 
+  let arguments = (ins
       Variadic<TransformHandleTypeInterface>:$targets,
       Variadic<TransformHandleTypeInterface>:$loops,
       DefaultValuedAttr<I32Attr, "1">:$num_consumer_to_fuse);
@@ -73,8 +73,7 @@ def TestFuseConsumerUsingSliceOp : Op<Transform_Dialect, "test.fuse_consumer_usi
 
   let assemblyFormat = [{
     $targets `in` `(` $loops `)`
-    (`num_consumer_to_fuse` `=` $num_consumer_to_fuse^)? 
-    attr-dict `:` functional-type(operands, results)
+    (`num_consumer_to_fuse` `=` $num_consumer_to_fuse^)? attr-dict `:` functional-type(operands, results)
   }];
 }
 
@@ -83,7 +82,7 @@ def TestFuseConsumerOp : Op<Transform_Dialect, "test.fuse_consumer",
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
         ReportTrackingListenerFailuresOpTrait]> {
   let description = [{
-    For the `consumer` that uses the result of the outer-most loop of a loop nest passed in 
+    For the `consumer` that uses the result of the outer-most loop of a loop nest passed in
     as `loops` (that are typically generated through tiling), fuse the consumer into the
     loop.
 
@@ -137,8 +136,7 @@ def TestTileUsingForallOp : Op<Transform_Dialect, "test.tile_using_forall",
 
   let assemblyFormat = [{
     $target ($tile_sizes^)? (`interchange` `=` $interchange^)?
-    (`mapping` `=` $mapping^)?
-    attr-dict `:` functional-type(operands, results)
+    (`mapping` `=` $mapping^)? attr-dict `:` functional-type(operands, results)
   }];
 }
 
@@ -160,8 +158,7 @@ def TestFuseUsingForallOp : Op<Transform_Dialect, "test.fuse_using_forall",
 
   let assemblyFormat = [{
     $root_op ($tile_sizes^)? (`interchange` $interchange^)?
-    (`mapping` `=` $mapping^)?
-    attr-dict `:` functional-type(operands, results)
+    (`mapping` `=` $mapping^)? attr-dict `:` functional-type(operands, results)
   }];
 }
 
@@ -184,8 +181,7 @@ def TestTileAndFuseOuterParallelPartialReductionOp : Op<
                  Variadic<TransformHandleTypeInterface>:$loops);
   let assemblyFormat = [{
     $root_op (`reduction_dims` `=` $reduction_dims^)?
-    (`tile_sizes` `=` $tile_sizes^)? (`mapping` `=` $mapping^)?
-    attr-dict `:` functional-type(operands, results)
+    (`tile_sizes` `=` $tile_sizes^)? (`mapping` `=` $mapping^)? attr-dict `:` functional-type(operands, results)
   }];
 }
 
@@ -207,8 +203,7 @@ def TestTileUsingCustomLoopOp : Op<
                   Variadic<TransformHandleTypeInterface>:$loops);
 
   let assemblyFormat = [{
-    $root_op `tile_sizes` `=` $tile_sizes
-    attr-dict `:` functional-type(operands, results)
+    $root_op `tile_sizes` `=` $tile_sizes attr-dict `:` functional-type(operands, results)
   }];
 }
 



More information about the Mlir-commits mailing list