From ce5c702d8443fa91524cd768ee9998f3f101bad8 Mon Sep 17 00:00:00 2001 From: Andrzej Warzynski Date: Fri, 21 Feb 2025 14:31:20 +0000 Subject: [PATCH] [mlir][linalg][nfc] Fix formatting for linalg.elementwise Follow-up to #124661 to address minor formatting inconsistencies. **Changes:** 1. Standardized test file names by using hyphens (`-`) instead of underscores (`_`). 2. Renamed `"round-trip.mlir"` to `"roundtrip.mlir"` for consistency with similar tests. 3. Normalized indentation. For **(3)**, I ensured we follow the pre-existing formatting style introduced with `linalg.generic`, where all new lines are indented by **8 spaces**. Thus, the formatting is now: ```mlir %r = linalg.elementwise kind=#linalg.elementwise_kind indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, affine_map<(d0, d1) -> (d0, d1)>, affine_map<(d0, d1) -> (d0, d1)>] ins(%A, %B: tensor<8x16xf32>, tensor<16x8xf32>) outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> ``` instead of: ```mlir %r = linalg.elementwise kind=#linalg.elementwise_kind indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, affine_map<(d0, d1) -> (d0, d1)>, affine_map<(d0, d1) -> (d0, d1)>] ins(%A, %B: tensor<8x16xf32>, tensor<16x8xf32>) outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> ``` Submitting this without a review, as these are straightforward changes, and I want to reduce PR traffic/noise. However, please let me know if you prefer changes like these to go through a formal PR review. --- .../Dialect/Linalg/IR/LinalgStructuredOps.td | 20 +++--- ...med_ops.mlir => generalize-named-ops.mlir} | 68 +++++++++---------- .../Dialect/Linalg/elementwise/invalid.mlir | 6 +- .../{round-trip.mlir => roundtrip.mlir} | 36 +++++----- 4 files changed, 65 insertions(+), 65 deletions(-) rename mlir/test/Dialect/Linalg/elementwise/{generalize_named_ops.mlir => generalize-named-ops.mlir} (74%) rename mlir/test/Dialect/Linalg/elementwise/{round-trip.mlir => roundtrip.mlir} (76%) diff --git a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td index ce6e9e7bb28c4..e4dd458eaff84 100644 --- a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td +++ b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td @@ -566,20 +566,20 @@ def ElementwiseOp : LinalgStructuredBase_Op<"elementwise", [ Example: Defining a unary linalg.elemwise with default indexing-map: - ```mlir - %exp = linalg.elemwise - kind=#linalg.elemwise_kind - ins(%x : tensor<4x16x8xf32>) - outs(%y: tensor<4x16x8xf32>) -> tensor<4x16x8xf32> - ``` + ```mlir + %exp = linalg.elemwise + kind=#linalg.elemwise_kind + ins(%x : tensor<4x16x8xf32>) + outs(%y: tensor<4x16x8xf32>) -> tensor<4x16x8xf32> + ``` Defining a binary linalg.elemwise with user-defined indexing-map: ```mlir %add = linalg.elemwise - kind=#linalg.elemwise_kind - indexing_maps = [#transpose, #broadcast, #identity] - ins(%exp, %arg1 : tensor<4x16x8xf32>, tensor<4x16xf32>) - outs(%arg2: tensor<4x8x16xf32>) -> tensor<4x8x16xf32> + kind=#linalg.elemwise_kind + indexing_maps = [#transpose, #broadcast, #identity] + ins(%exp, %arg1 : tensor<4x16x8xf32>, tensor<4x16xf32>) + outs(%arg2: tensor<4x8x16xf32>) -> tensor<4x8x16xf32> ``` }]; diff --git a/mlir/test/Dialect/Linalg/elementwise/generalize_named_ops.mlir b/mlir/test/Dialect/Linalg/elementwise/generalize-named-ops.mlir similarity index 74% rename from mlir/test/Dialect/Linalg/elementwise/generalize_named_ops.mlir rename to mlir/test/Dialect/Linalg/elementwise/generalize-named-ops.mlir index 94a46d97e6e86..e884858c016f4 100644 --- a/mlir/test/Dialect/Linalg/elementwise/generalize_named_ops.mlir +++ b/mlir/test/Dialect/Linalg/elementwise/generalize-named-ops.mlir @@ -14,9 +14,9 @@ // func.func @unary_exp(%A : tensor<8x16x32xf32>, %B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - ins(%A : tensor<8x16x32xf32>) - outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> + kind=#linalg.elementwise_kind + ins(%A : tensor<8x16x32xf32>) + outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> return %r : tensor<8x16x32xf32> } // ----- @@ -36,11 +36,11 @@ func.func @unary_exp(%A : tensor<8x16x32xf32>, %B: tensor<8x16x32xf32>) -> tens // func.func @unary_transpose_broadcast_tanh(%A : tensor<32x16xf32>, %B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>, - affine_map<(d0, d1, d2) -> (d0, d1, d2)>] - ins(%A : tensor<32x16xf32>) - outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> + kind=#linalg.elementwise_kind + indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>, + affine_map<(d0, d1, d2) -> (d0, d1, d2)>] + ins(%A : tensor<32x16xf32>) + outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> return %r : tensor<8x16x32xf32> } // ----- @@ -59,9 +59,9 @@ func.func @unary_transpose_broadcast_tanh(%A : tensor<32x16xf32>, %B: tensor<8x1 // func.func @binary_div_on_memrefs(%A : memref<16x8xf32>, %B: memref<16x8xf32>, %C: memref<16x8xf32>) { linalg.elementwise - kind=#linalg.elementwise_kind
- ins(%A, %B: memref<16x8xf32>, memref<16x8xf32>) - outs(%C: memref<16x8xf32>) + kind=#linalg.elementwise_kind
+ ins(%A, %B: memref<16x8xf32>, memref<16x8xf32>) + outs(%C: memref<16x8xf32>) return } // ----- @@ -80,9 +80,9 @@ func.func @binary_div_on_memrefs(%A : memref<16x8xf32>, %B: memref<16x8xf32>, %C // func.func @binary_mul_on_tensors(%A : tensor<16x8xf32>, %B: tensor<16x8xf32>, %C: tensor<16x8xf32>) -> tensor<16x8xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>) - outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> + kind=#linalg.elementwise_kind + ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>) + outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> return %r : tensor<16x8xf32> } // ----- @@ -102,12 +102,12 @@ func.func @binary_mul_on_tensors(%A : tensor<16x8xf32>, %B: tensor<16x8xf32>, %C // func.func @binary_transpose_a(%A : tensor<8x16xf32>, %B: tensor<16x8xf32>, %C: tensor<16x8xf32>) -> tensor<16x8xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, - affine_map<(d0, d1) -> (d0, d1)>, - affine_map<(d0, d1) -> (d0, d1)>] - ins(%A, %B: tensor<8x16xf32>, tensor<16x8xf32>) - outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> + kind=#linalg.elementwise_kind + indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, + affine_map<(d0, d1) -> (d0, d1)>, + affine_map<(d0, d1) -> (d0, d1)>] + ins(%A, %B: tensor<8x16xf32>, tensor<16x8xf32>) + outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> return %r : tensor<16x8xf32> } // ----- @@ -128,12 +128,12 @@ func.func @binary_transpose_a(%A : tensor<8x16xf32>, %B: tensor<16x8xf32>, %C: t // func.func @binary_transpose_a_broadcast_b(%A : tensor<8x16xf32>, %B: tensor<16xf32>, %C: tensor<16x8xf32>) -> tensor<16x8xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, - affine_map<(d0, d1) -> (d0)>, - affine_map<(d0, d1) -> (d0, d1)>] - ins(%A, %B: tensor<8x16xf32>, tensor<16xf32>) - outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> + kind=#linalg.elementwise_kind + indexing_maps = [affine_map<(d0, d1) -> (d1, d0)>, + affine_map<(d0, d1) -> (d0)>, + affine_map<(d0, d1) -> (d0, d1)>] + ins(%A, %B: tensor<8x16xf32>, tensor<16xf32>) + outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> return %r : tensor<16x8xf32> } // ----- @@ -154,12 +154,12 @@ func.func @binary_transpose_a_broadcast_b(%A : tensor<8x16xf32>, %B: tensor<16xf // func.func @ternary(%A : tensor<32x16xi1>, %B: tensor<8x16x32xf32>, %C : tensor<8x16x32xf32>, %D : tensor<8x16x32xf32>) -> tensor<8x16x32xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind + indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>, + affine_map<(d0, d1, d2) -> (d0, d1, d2)>, + affine_map<(d0, d1, d2) -> (d0, d1, d2)>, + affine_map<(d0, d1, d2) -> (d0, d1, d2)>] + ins(%A, %B, %C : tensor<32x16xi1>, tensor<8x16x32xf32>, tensor<8x16x32xf32>) + outs(%D: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> return %r : tensor<8x16x32xf32> -} \ No newline at end of file +} diff --git a/mlir/test/Dialect/Linalg/elementwise/invalid.mlir b/mlir/test/Dialect/Linalg/elementwise/invalid.mlir index 3a47d231017b4..fe03519ae94b8 100644 --- a/mlir/test/Dialect/Linalg/elementwise/invalid.mlir +++ b/mlir/test/Dialect/Linalg/elementwise/invalid.mlir @@ -41,7 +41,7 @@ func.func @unary_too_many_args(%A : memref<8x16x32xf32>, %B: memref<8x16x32xf32> // expected-error@+3 {{custom op 'linalg.elementwise' [parseNamedStructuredOpRegion] ods-gen generated region expects 2 args, got 3}} // expected-error@+2 {{custom op 'linalg.elementwise' unable to parse elemwise op}} linalg.elementwise kind=#linalg.elementwise_kind ins(%A, %B : memref<8x16x32xf32>, memref<8x16x32xf32>) outs(%C: memref<8x16x32xf32>) - return + return } // ----- @@ -50,5 +50,5 @@ func.func @binary_too_few_args(%A : memref<8x16x32xf32>, %B: memref<8x16x32xf32> // expected-error@+3 {{custom op 'linalg.elementwise' [parseNamedStructuredOpRegion] ods-gen generated region expects 3 args, got 2}} // expected-error@+2 {{custom op 'linalg.elementwise' unable to parse elemwise op}} linalg.elementwise kind=#linalg.elementwise_kind ins(%A : memref<8x16x32xf32>) outs(%B: memref<8x16x32xf32>) - return -} \ No newline at end of file + return +} diff --git a/mlir/test/Dialect/Linalg/elementwise/round-trip.mlir b/mlir/test/Dialect/Linalg/elementwise/roundtrip.mlir similarity index 76% rename from mlir/test/Dialect/Linalg/elementwise/round-trip.mlir rename to mlir/test/Dialect/Linalg/elementwise/roundtrip.mlir index 6ae2a77eb19f8..20ebdd992b5a1 100644 --- a/mlir/test/Dialect/Linalg/elementwise/round-trip.mlir +++ b/mlir/test/Dialect/Linalg/elementwise/roundtrip.mlir @@ -8,9 +8,9 @@ // func.func @unary_identity_exp(%A : tensor<8x16x32xf32>, %B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - ins(%A : tensor<8x16x32xf32>) - outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> + kind=#linalg.elementwise_kind + ins(%A : tensor<8x16x32xf32>) + outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32> return %r : tensor<8x16x32xf32> } @@ -28,11 +28,11 @@ func.func @unary_identity_exp(%A : tensor<8x16x32xf32>, %B: tensor<8x16x32xf32>) func.func @unary_projection_tanh(%A: tensor, %B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>, - affine_map<(d0, d1, d2) -> (d0, d1, d2)>] - ins(%A : tensor) - outs(%B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32> + kind=#linalg.elementwise_kind + indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>, + affine_map<(d0, d1, d2) -> (d0, d1, d2)>] + ins(%A : tensor) + outs(%B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32> return %r : tensor<8x16x?xf32> } @@ -48,9 +48,9 @@ func.func @unary_projection_tanh(%A: tensor, func.func @binary_identity_div(%A: tensor<16x8xf32>, %B: tensor<16x8xf32>, %C: tensor<16x8xf32>) -> tensor<16x8xf32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind
- ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>) - outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> + kind=#linalg.elementwise_kind
+ ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>) + outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32> return %r : tensor<16x8xf32> } @@ -67,9 +67,9 @@ func.func @binary_identity_div(%A: tensor<16x8xf32>, %B: tensor<16x8xf32>, func.func @binary_identity_mul_5Di(%A: tensor<1x2x3x4x5xi32>, %B: tensor<1x2x3x4x5xi32>, %C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>) - outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> + kind=#linalg.elementwise_kind + ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>) + outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> return %r : tensor<1x2x3x4x5xi32> } @@ -82,9 +82,9 @@ func.func @binary_identity_mul_5Di(%A: tensor<1x2x3x4x5xi32>, %B: tensor<1x2x3x4 func.func @redundant_maps(%A: tensor<1x2x3x4x5xi32>, %B: tensor<1x2x3x4x5xi32>, %C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> { %r = linalg.elementwise - kind=#linalg.elementwise_kind - indexing_maps = [#map, #map, #map] - ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>) - outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> + kind=#linalg.elementwise_kind + indexing_maps = [#map, #map, #map] + ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>) + outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32> return %r : tensor<1x2x3x4x5xi32> }