[Mlir-commits] [mlir] [mlir][arith] Canonicalize cmpi select to min/max (PR #201737)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Jun 4 20:02:35 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 3793 tests passed
* 430 tests skipped
* 2 tests failed

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

### MLIR
<details>
<summary>MLIR.Dialect/SparseTensor/sparse_fill_zero.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir --linalg-generalize-named-ops --pre-sparsification-rewrite --sparse-reinterpret-map --sparsification --sparse-tensor-conversion --canonicalize --cse | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir' --linalg-generalize-named-ops --pre-sparsification-rewrite --sparse-reinterpret-map --sparsification --sparse-tensor-conversion --canonicalize --cse
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir:68:11: error: CHECK: expected string not found in input
# | // CHECK: %[[VAL_57:.*]] = arith.cmpi ult, %[[VAL_56]], %[[VAL_55]] : index
# |           ^
# | <stdin>:68:47: note: scanning from here
# |  %22 = memref.load %9[%arg4] : memref<?xindex>
# |                                               ^
# | <stdin>:68:47: note: with "VAL_56" equal to "22"
# |  %22 = memref.load %9[%arg4] : memref<?xindex>
# |                                               ^
# | <stdin>:68:47: note: with "VAL_55" equal to "21"
# |  %22 = memref.load %9[%arg4] : memref<?xindex>
# |                                               ^
# | <stdin>:70:2: note: possible intended match here
# |  %24 = arith.cmpi eq, %21, %23 : index
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_fill_zero.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            63:  %23 = arith.andi %21, %22 : i1 
# |            64:  scf.condition(%23) %arg3, %arg4, %arg5 : index, index, index 
# |            65:  } do { 
# |            66:  ^bb0(%arg3: index, %arg4: index, %arg5: index): 
# |            67:  %21 = memref.load %7[%arg3] : memref<?xindex> 
# |            68:  %22 = memref.load %9[%arg4] : memref<?xindex> 
# | check:68'0                                                   X error: no match found
# | check:68'1                                                     with "VAL_56" equal to "22"
# | check:68'2                                                     with "VAL_55" equal to "21"
# |            69:  %23 = arith.minui %22, %21 : index 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            70:  %24 = arith.cmpi eq, %21, %23 : index 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:68'3      ?                                      possible intended match
# |            71:  %25 = arith.cmpi eq, %22, %23 : index 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            72:  %26 = arith.andi %24, %25 : i1 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            73:  %27 = scf.if %26 -> (index) { 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            74:  %32 = memref.load %2[%arg3] : memref<?xf64> 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            75:  %33 = memref.load %10[%arg4] : memref<?xindex> 
# | check:68'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>MLIR.Dialect/SparseTensor/sparse_kernels_to_iterator.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir --sparse-reinterpret-map -sparsification="sparse-emit-strategy=sparse-iterator" --cse | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir --check-prefix="ITER"
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir' --sparse-reinterpret-map -sparsification=sparse-emit-strategy=sparse-iterator --cse
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir' --check-prefix=ITER
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir --sparse-reinterpret-map -sparsification="sparse-emit-strategy=sparse-iterator" --cse --sparse-space-collapse --lower-sparse-iteration-to-scf --loop-invariant-code-motion -cse --canonicalize | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir' --sparse-reinterpret-map -sparsification=sparse-emit-strategy=sparse-iterator --cse --sparse-space-collapse --lower-sparse-iteration-to-scf --loop-invariant-code-motion -cse --canonicalize
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir:107:11: error: CHECK: expected string not found in input
# | // CHECK: %[[VAL_25:.*]] = arith.cmpi ult, %[[VAL_24]], %[[VAL_23]] : index
# |           ^
# | <stdin>:47:47: note: scanning from here
# |  %14 = memref.load %6[%arg3] : memref<?xindex>
# |                                               ^
# | <stdin>:47:47: note: with "VAL_24" equal to "14"
# |  %14 = memref.load %6[%arg3] : memref<?xindex>
# |                                               ^
# | <stdin>:47:47: note: with "VAL_23" equal to "13"
# |  %14 = memref.load %6[%arg3] : memref<?xindex>
# |                                               ^
# | <stdin>:49:2: note: possible intended match here
# |  %16 = arith.cmpi eq, %13, %15 : index
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\mlir\test\Dialect\SparseTensor\sparse_kernels_to_iterator.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             42:  %15 = arith.andi %13, %14 : i1 
# |             43:  scf.condition(%15) %arg2, %arg3 : index, index 
# |             44:  } do { 
# |             45:  ^bb0(%arg2: index, %arg3: index): 
# |             46:  %13 = memref.load %2[%arg2] : memref<?xindex> 
# |             47:  %14 = memref.load %6[%arg3] : memref<?xindex> 
# | check:107'0                                                   X error: no match found
# | check:107'1                                                     with "VAL_24" equal to "14"
# | check:107'2                                                     with "VAL_23" equal to "13"
# |             48:  %15 = arith.minui %14, %13 : index 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             49:  %16 = arith.cmpi eq, %13, %15 : index 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:107'3      ?                                      possible intended match
# |             50:  %17 = arith.cmpi eq, %14, %15 : index 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             51:  %18 = arith.andi %16, %17 : i1 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             52:  scf.if %18 { 
# | check:107'0     ~~~~~~~~~~~~~~
# |             53:  %23 = sparse_tensor.values %arg0 : tensor<10xi32, #sparse1> to memref<?xi32> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             54:  %24 = memref.load %23[%arg2] : memref<?xi32> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# 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/201737


More information about the Mlir-commits mailing list