[Mlir-commits] [mlir] ce5c702 - [mlir][linalg][nfc] Fix formatting for linalg.elementwise
Andrzej Warzynski
llvmlistbot at llvm.org
Fri Feb 21 07:51:59 PST 2025
Author: Andrzej Warzynski
Date: 2025-02-21T15:50:24Z
New Revision: ce5c702d8443fa91524cd768ee9998f3f101bad8
URL: https://github.com/llvm/llvm-project/commit/ce5c702d8443fa91524cd768ee9998f3f101bad8
DIFF: https://github.com/llvm/llvm-project/commit/ce5c702d8443fa91524cd768ee9998f3f101bad8.diff
LOG: [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<sub>
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<sub>
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.
Added:
mlir/test/Dialect/Linalg/elementwise/generalize-named-ops.mlir
mlir/test/Dialect/Linalg/elementwise/roundtrip.mlir
Modified:
mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
mlir/test/Dialect/Linalg/elementwise/invalid.mlir
Removed:
mlir/test/Dialect/Linalg/elementwise/generalize_named_ops.mlir
mlir/test/Dialect/Linalg/elementwise/round-trip.mlir
################################################################################
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<exp>
- ins(%x : tensor<4x16x8xf32>)
- outs(%y: tensor<4x16x8xf32>) -> tensor<4x16x8xf32>
- ```
+ ```mlir
+ %exp = linalg.elemwise
+ kind=#linalg.elemwise_kind<exp>
+ 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<add>
- indexing_maps = [#transpose, #broadcast, #identity]
- ins(%exp, %arg1 : tensor<4x16x8xf32>, tensor<4x16xf32>)
- outs(%arg2: tensor<4x8x16xf32>) -> tensor<4x8x16xf32>
+ kind=#linalg.elemwise_kind<add>
+ 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<exp>
- ins(%A : tensor<8x16x32xf32>)
- outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32>
+ kind=#linalg.elementwise_kind<exp>
+ 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<tanh>
- 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<tanh>
+ 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<div>
- ins(%A, %B: memref<16x8xf32>, memref<16x8xf32>)
- outs(%C: memref<16x8xf32>)
+ kind=#linalg.elementwise_kind<div>
+ 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<mul>
- ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>)
- outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32>
+ kind=#linalg.elementwise_kind<mul>
+ 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<sub>
- 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<sub>
+ 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<add>
- 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<add>
+ 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<select>
- 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>
+ kind=#linalg.elementwise_kind<select>
+ 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 at +3 {{custom op 'linalg.elementwise' [parseNamedStructuredOpRegion] ods-gen generated region expects 2 args, got 3}}
// expected-error at +2 {{custom op 'linalg.elementwise' unable to parse elemwise op}}
linalg.elementwise kind=#linalg.elementwise_kind<exp> 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 at +3 {{custom op 'linalg.elementwise' [parseNamedStructuredOpRegion] ods-gen generated region expects 3 args, got 2}}
// expected-error at +2 {{custom op 'linalg.elementwise' unable to parse elemwise op}}
linalg.elementwise kind=#linalg.elementwise_kind<add> 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<exp>
- ins(%A : tensor<8x16x32xf32>)
- outs(%B: tensor<8x16x32xf32>) -> tensor<8x16x32xf32>
+ kind=#linalg.elementwise_kind<exp>
+ 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<?x16xf32>,
%B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32> {
%r = linalg.elementwise
- kind=#linalg.elementwise_kind<tanh>
- indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>,
- affine_map<(d0, d1, d2) -> (d0, d1, d2)>]
- ins(%A : tensor<?x16xf32>)
- outs(%B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32>
+ kind=#linalg.elementwise_kind<tanh>
+ indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d1)>,
+ affine_map<(d0, d1, d2) -> (d0, d1, d2)>]
+ ins(%A : tensor<?x16xf32>)
+ outs(%B: tensor<8x16x?xf32>) -> tensor<8x16x?xf32>
return %r : tensor<8x16x?xf32>
}
@@ -48,9 +48,9 @@ func.func @unary_projection_tanh(%A: tensor<?x16xf32>,
func.func @binary_identity_div(%A: tensor<16x8xf32>, %B: tensor<16x8xf32>,
%C: tensor<16x8xf32>) -> tensor<16x8xf32> {
%r = linalg.elementwise
- kind=#linalg.elementwise_kind<div>
- ins(%A, %B: tensor<16x8xf32>, tensor<16x8xf32>)
- outs(%C: tensor<16x8xf32>) -> tensor<16x8xf32>
+ kind=#linalg.elementwise_kind<div>
+ 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<mul>
- ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>)
- outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32>
+ kind=#linalg.elementwise_kind<mul>
+ 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<mul>
- indexing_maps = [#map, #map, #map]
- ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>)
- outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32>
+ kind=#linalg.elementwise_kind<mul>
+ indexing_maps = [#map, #map, #map]
+ ins(%A, %B: tensor<1x2x3x4x5xi32>, tensor<1x2x3x4x5xi32>)
+ outs(%C: tensor<1x2x3x4x5xi32>) -> tensor<1x2x3x4x5xi32>
return %r : tensor<1x2x3x4x5xi32>
}
More information about the Mlir-commits
mailing list