<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59984>59984</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Arith-unsigned-when-equivalent Pass violates assertion "!isUninitialized()" and crash.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Colloportus0
      </td>
    </tr>
</table>

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/a0138390
Reproduced with: 
`mlir-opt --arith-unsigned-when-equivalent temp.mlir`

temp.mlir:
```
func.func @func(%arg0: memref<2x32xf32>, %arg1: memref<2x32xf32>, %arg2: memref<32xf32>, %arg3: f32, %arg4: !gpu.async.token, %arg5: index, %arg6: index) -> memref<2x32xf32> {
  %c1 = arith.constant 1 : index  
  %2 = gpu.launch async [%arg4] blocks(%arg7, %arg8, %arg9) in (%arg13 = %c1, %arg14 = %c1, %arg15 = %c1) threads(%arg10, %arg11, %arg12) in (%arg16 = %c1, %arg17 = %c1, %arg18 = %c1) {
    gpu.terminator
  } 
  return %arg1 : memref<2x32xf32> 

```
 
trace:
```console 
Assertion failed: (!isUninitialized()), function getValue, file IntegerRangeAnalysis.h, line 42.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: mlir-opt --arith-unsigned-when-equivalent temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x000000010254c5bc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x000000010254b624 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x000000010254cc54 SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001a56894c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001a5671ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001a55ac340 abort + 168
6  libsystem_c.dylib 0x00000001a55ab754 err + 0
7  mlir-opt                 0x0000000103e782d0 mlir::dataflow::IntegerRangeAnalysis::visitNonControlFlowArguments(mlir::Operation*, mlir::RegionSuccessor const&, llvm::ArrayRef<mlir::dataflow::IntegerValueRangeLattice*>, unsigned int) (.cold.7) + 0
8  mlir-opt                 0x000000010374aaf0 mlir::dataflow::IntegerRangeAnalysis::visitNonControlFlowArguments(mlir::Operation*, mlir::RegionSuccessor const&, llvm::ArrayRef<mlir::dataflow::IntegerValueRangeLattice*>, unsigned int) + 2068
9  mlir-opt                 0x000000010374d4b0 mlir::dataflow::AbstractSparseDataFlowAnalysis::visitBlock(mlir::Block*) + 1320
10 mlir-opt                 0x000000010374ca80 mlir::dataflow::AbstractSparseDataFlowAnalysis::initializeRecursively(mlir::Operation*) + 152
11 mlir-opt                 0x000000010374caac mlir::dataflow::AbstractSparseDataFlowAnalysis::initializeRecursively(mlir::Operation*) + 196
12 mlir-opt                 0x000000010374caac mlir::dataflow::AbstractSparseDataFlowAnalysis::initializeRecursively(mlir::Operation*) + 196
13 mlir-opt                 0x0000000103736c2c mlir::DataFlowSolver::initializeAndRun(mlir::Operation*) + 352
14 mlir-opt 0x00000001026902a8 (anonymous namespace)::ArithUnsignedWhenEquivalentPass::runOnOperation() + 168
15 mlir-opt                 0x00000001037574dc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 420
16 mlir-opt 0x0000000103757a0c mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
17 mlir-opt                 0x0000000103759388 mlir::PassManager::run(mlir::Operation*) + 1148
18 mlir-opt 0x0000000103752840 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
19 mlir-opt                 0x0000000103752410 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
20 mlir-opt                 0x00000001037bd02c mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
21 mlir-opt 0x0000000103750838 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 216
22 mlir-opt                 0x0000000103750d2c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
23 mlir-opt 0x00000001023ef0a0 main + 108
24 dyld 0x0000000106ca5088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVtv47gV_jXKCxGDoi6WHvyg3LABkk7gzG7RvhiUdCyzoUgtSSXx_vqClGTJjj3xTgfo9BIEcUIdHn7nO1cxVGtWCYCFF1150c0Fbc1GqsW15Fw2UplW44tcltvF48P9EuUt4wZRgwpZ18ygjTGN9oLMI3ceuauY2bT5rJC1R-44fx0-Lhsl_wGF8chdt88jdxT7QRKk2MM3Hs6W0ChZtgWU6I2ZjRdkqHvgxbjmTF3KxqDLS6qY2Vy2wkEuL982IC7h95a9Ug7CIAN1M7PiXtzr7X6O60G2U9t_uz_XrShm9gfyQmw_PZJ4JKKqwhZKDbWCtRdck_eAvK8D4gW3HrlGnYj_uQjZEzkiEFgBu7hbCR0HxK-adkb1VhQzI19AjAKRFWCihPdxLZ6spejSC26PAkPe_KozHNmNhY-84AY5cmeFFNpQYZBd7JUhNJEmTtjC4rQVxQY5dMiGTw88ukE5l8WL3rE4HyEm46-pBckE2on5gdPtIE34DY-uRtPVFJmNAlqOR_p4IjvdRz6cGh_VPz-6muyfOiESOU4MqJoJaqTaUTa_2dGnwLRKDLrQqcAZYn-38yBc-1WjaAEfQ9p6UHLohTKtQRkmBVpTxqHswirxiM_0r4IJZhjl7A8o3WLqvq-RzQG3qQLzG-UtuEXGAd0LAxWoJRUVZILyrWZ6trGPOROAQjLrzn16uM2eb5Fuc1snKMrbCimwFQUZ-efrBtO6Be2RO0RFiZgoeFsCMhtAhaJ6g3JavDg--uOfDS1eUNnWzY4gPPNw-qRkpWiNqKraGoTRzgffUWEOTnFlS7YG6W2dS44ErUFbokHoVgHayhZt6CsgZ1cnxP4AZSNxK1uFnrKvvyCpkAbjzALxypQUFiN6pQp5MX54-O1x9fy3x6svD_d_v12u7BYvxpbPRjLhiLW1NR1NRqNt-B13Xz4mUVhEeeGwWNkg01vd_fKkmDDOrK8uukgyCin6tpLaKKC1R2LrciaMywJyhaK4O9KfHHn4tQ8hj0l4DMKyFc-sEpT_QkXJQXU53Z3i-6Q7hpy2rIhCtKfAI8kEaBCGnYoAIc5yvdUG6lXDqVlLVc_KLWf5RCWN4iQNixCtNKuMonWzZ264p6QrQsd0zH0AjHqB1Qvj3KkhSdLpiaZ6iiMaIloEIUY0txnkqIj7rfHnW_N5FCJQym3si8j8PEcFME9IidHQPoOspIauuXzr_jpWD7onr0wz8xcprqUwSvI7Lt-yXdaRZFT4pQFFbbXxSGajanyyhIpJ8dwWBWgtFXLNqY-9MXIypeh26YroJyhdKXNQH6gxzMZ31vfhIeXHmE5mheTlbD4ETs9bciZv85DS9f8ib1eI4CE207PJKsP8NFlZrm1xN88NVRpuqKGOlY-0Xdm5Y4-kfiXbVZCA9I708bnYCpr8a9jGNruEolWavQLffsOXPdSoL3a-fz5SWvw7kKZD9Sf_MUiDM5EGcUGmSAc0z5K_gjrEkoly2YpPYQQ714bH-1icYkITW4WokGJby1Z3M0XjunI6ZDAzm1_7DPzrBsTtblR5oronSrXii5iAGJvpkKV-dCYX0Tws97wGhjI-mPlVfmnssVlJGzsAD6fvseFwHdar05Vs8PkjFbSyrfwa5VLyU5Un3CV3fJRXawLFf96EJ9aAnW8PHGtFd8jiH27TdJM96l5oo1wjkOqD1n2B7uTuQY_9iSoQ5l6s5dAPxnDc0TY_NxLSIEkOTh_sOer3o8noh0MEJqfcRZIQowaUHc4y906iPxlKBy6HT23KTnS18vtRc0MVlKvGKC-4HlU9y1YV8Fgp-wo2bZmjFY8P90vbl-Hd9A4Ytw_vTCt10FIfZMUKypegW25nt-Q4bfastO-q-zb0EzbuB1c_PddJJPSnjWsfyPcg_8hlK9jvLXzg8hFqqbZX7XrdBfjHjSWsacvNqgQOBk5vDm57Tk773LHmnhSUc_squFqLPUMeOVNfGvNImfgken4OC39kLE1aF6McCmOnQ23U9kS-nPfZdyCPhCvsDkq4FNXPw-CHGHE5NB9yiJw7_OUl3mv_uuHMZKJ8UtIO1wP6nyQz_isy-ZsSx2tjPLyPE_9UI8FJMG1Y_68IP7widO9-_uCJc18FIlzuZdi-Z_pBqNjQbuQ5aLrPRjFR2ZfYs-3qZw-C-9mDBMdH8ADWmGJUU3dZfIX83YYQlVteToXjgkY4SZA2tL-eiQYeDm5nL8pFUKZBSi9g4cfzIEoxwf7FZhGUUZngch6vIz-MyzCF0i9yyKkfrOkayAVbEEwC7PsBjn2M_VmUp3kwD0nox0VCc-qFGGrK-MzSM5OqunC3posoTZPwgtMcuB7-zaMW7iIybyvthZgzbfS4zTDD3T-EHKHRDcq-fStq4wy9MsmpAY3o7sbZI-T0PTNxN7nu9nZ20Sq--P47YWfgPwMAAP__pVAMBg">