[Mlir-commits] [mlir] [mlir][linalg] Fix unused output cycle removal (PR #236751)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Oct 29 05:28:33 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 10624 tests passed
* 660 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### MLIR
<details>
<summary>MLIR.Dialect/Linalg/fusion-elementwise-ops.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir -linalg-fuse-elementwise-ops -split-input-file | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/mlir-opt /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir -linalg-fuse-elementwise-ops -split-input-file
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir:665:17: error: CHECK-NEXT: is not on the line after the previous match
# |  // CHECK-NEXT: %[[R:.*]]:2 = linalg.generic
# |                 ^
# | <stdin>:326:2: note: 'next' match was here
# |  %1:2 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} outs(%arg0, %arg1 : tensor<1x8xf64>, tensor<1x8xi32>) {
# |  ^
# | <stdin>:320:31: note: previous match ended here
# |  func.func @generic_index_op2(%arg0: tensor<1x8xf64>, %arg1: tensor<1x8xi32>) -> tensor<1x8xi32> {
# |                               ^
# | <stdin>:321:1: note: non-matching line after previous match is here
# |  %0 = linalg.generic {indexing_maps = [#map], iterator_types = ["parallel", "parallel"]} outs(%arg0 : tensor<1x8xf64>) {
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/test/Dialect/Linalg/fusion-elementwise-ops.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           315: // ----- 
# |           316: #map = affine_map<(d0, d1) -> (d0, d1)> 
# |           317: module { 
# |           318:  func.func private @compute1(f64) -> f64 
# |           319:  func.func private @compute2(f64, i32) -> i32 
# |           320:  func.func @generic_index_op2(%arg0: tensor<1x8xf64>, %arg1: tensor<1x8xi32>) -> tensor<1x8xi32> { 
# | next:665'0                                  {                                                                       search range start (exclusive)
# |           321:  %0 = linalg.generic {indexing_maps = [#map], iterator_types = ["parallel", "parallel"]} outs(%arg0 : tensor<1x8xf64>) { 
# |           322:  ^bb0(%out: f64): 
# |           323:  %2 = func.call @compute1(%out) : (f64) -> f64 
# |           324:  linalg.yield %2 : f64 
# |           325:  } -> tensor<1x8xf64> 
# |           326:  %1:2 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} outs(%arg0, %arg1 : tensor<1x8xf64>, tensor<1x8xi32>) { 
# | next:665'1      !~~~~~~~~~~~~~~~~~~~~                                                                                                                                     error: match on wrong line
# |           327:  ^bb0(%out: f64, %out_0: i32): 
# |           328:  %2 = func.call @compute1(%out) : (f64) -> f64 
# |           329:  %3 = func.call @compute2(%2, %out_0) : (f64, i32) -> i32 
# |           330:  linalg.yield %2, %3 : f64, i32 
# |           331:  } -> (tensor<1x8xf64>, tensor<1x8xi32>) 
# |           332:  return %1#1 : tensor<1x8xi32> 
# |           333:  } 
# |           334: } 
# |           335:  
# |           336: // ----- 
# |           337: #map = affine_map<(d0, d1) -> (d0, d1)> 
# |           338: #map1 = affine_map<(d0, d1) -> (d0)> 
# |           339: module { 
# |           340:  func.func @no_fuse_constant_with_reduction() -> tensor<3xf32> { 
# | next:665'2                                                }                       search range end (exclusive)
# |           341:  %cst = arith.constant dense<3.000000e+00> : tensor<3x2xf32> 
# |           342:  %0 = tensor.empty() : tensor<3xf32> 
# |           343:  %1 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "reduction"]} ins(%cst : tensor<3x2xf32>) outs(%0 : tensor<3xf32>) { 
# |           344:  ^bb0(%in: f32, %out: f32): 
# |           345:  %2 = arith.addf %in, %out : f32 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/236751


More information about the Mlir-commits mailing list