[Mlir-commits] [mlir] [mlir][linalg] Flag to guard MoveInitOperandsToInput in LinalgFoldUnitExtendDimsPass (PR #157941)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Sep 19 10:27:52 PDT 2025
MaheshRavishankar wrote:
Ok, Actually this is also related to another PR I was reviewing. First of all this input is wrong
```
%0 = linalg.generic {
indexing_maps = [<(affine_map<(d0) -> (d0), affine_map<(d0) -> (d0)>],
iterator_types = ["parallel"]}
ins(%input : tensor<?xf32>) outs(%output : tensor<?xf32>) {
^bb0(%b0 : f32, %b1: f32):
%1 = arith.maximumf %b0, %b1: f32
linalg.yield %1 : f32
} -> tensor<?xf32>
```
You are reading the `outs` value for a `parallel` operation. In my book that is undefined behavior. If anything the pattern you are masking off is actually trying to be too smart and making it the correct representation
```
%empty = tensor.empty(...) : tensor<?xf32>
%0 = linalg.generic {
indexing_maps = [<(affine_map<(d0) -> (d0), affine_map<(d0) -> (d0)>],
iterator_types = ["parallel"]}
ins(%input, %output : tensor<?xf32>, tensor<?xf32>) outs(%empty: tensor<?xf32>) {
^bb0(%b0 : f32, %b1: f32, %b2 : ):
%1 = arith.maximumf %b0, %b1 : f32
linalg.yield %1 : f32
} -> tensor<?xf32>
```
So before we go ahead with this change... id strongly suggest looking at your input... Input seems off to me.
https://github.com/llvm/llvm-project/pull/157941
More information about the Mlir-commits
mailing list