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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR] crahsed on `-test-spirv-func-signature-conversion` pass: Assertion `succeeded(result) && "expected ConstantLike op to be foldable"' failed.
        </td>
    </tr>

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

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

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

<pre>
    test commit: [bd1be8a](https://github.com/llvm/llvm-project/commit/bd1be8a242384d98ef2087f4571b464e01501f5a)


step to reproduce:
`
mlir-opt test.mlir --test-spirv-func-signature-conversion


test case:
```
module {
 func.func private @async_dispatch_fn(%arg0: !async.group, %arg1: index, %arg2: index, %arg3: index, %arg4: index, %arg5: index, %arg6: index, %arg7: index, %arg8: memref<4x3x2xi1, strided<[?, ?, ?], offset: ?>>, %arg9: memref<4x2xi1>, %arg10: index, %arg11: index, %arg12: index, %arg13: index) {
    %c1 = arith.constant 1 : index
    %c2 = arith.constant 2 : index
 %0:2 = scf.while (%arg14 = %arg1, %arg15 = %arg2) : (index, index) -> (index, index) {
      %1 = arith.subi %arg15, %arg14 : index
      %2 = arith.cmpi sgt, %1, %c1 : index
      scf.condition(%2) %arg14, %arg15 : index, index
    } do {
    ^bb0(%arg14: index, %arg15: index):
      %1 = arith.subi %arg15, %arg14 : index
      %2 = arith.divsi %1, %c2 : index
 %3 = arith.addi %arg14, %2 : index
      %token = async.execute {
 func.call @async_dispatch_fn(%arg0, %3, %arg15, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13) : (!async.group, index, index, index, index, index, index, index, memref<4x3x2xi1, strided<[?, ?, ?], offset: ?>>, memref<4x2xi1>, index, index, index, index) -> ()
 async.yield
      }
      scf.yield %arg14, %3 : index, index
    }
 return
  }
}
```

Crash backtrace:
```
mlir-opt: /home/workdir/llvm-project/mlir/include/mlir/IR/Matchers.h:93: bool mlir::detail::constant_op_binder<AttrT>::match(mlir::Operation*) [with AttrT = mlir::Attribute]: Assertion `succeeded(result) && "expected ConstantLike op to be foldable"' failed.
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 test.mlir --test-spirv-func-signature-conversion
 #0 0x000055fb489ba020 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/workdir/llvm-project/build/bin/mlir-opt+0x16ef020)
 #1 0x000055fb489b6f2f llvm::sys::RunSignalHandlers() (/home/workdir/llvm-project/build/bin/mlir-opt+0x16ebf2f)
 #2 0x000055fb489b707a SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007f0642c90520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f0642ce49fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007f0642c90476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007f0642c767f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00007f0642c7671b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x00007f0642c87e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x000055fb4bb06053 mlir::Operation::fold(llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/home/workdir/llvm-project/build/bin/mlir-opt+0x483b053)
#10 0x000055fb4b99b46c (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() GreedyPatternRewriteDriver.cpp:0:0
#11 0x000055fb4b99da3d mlir::applyPatternsGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/home/workdir/llvm-project/build/bin/mlir-opt+0x46d2a3d)
#12 0x000055fb4d1d50c2 mlir::spirv::unrollVectorsInSignatures(mlir::Operation*) (/home/workdir/llvm-project/build/bin/mlir-opt+0x5f0a0c2)
#13 0x000055fb4b8e6201 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/workdir/llvm-project/build/bin/mlir-opt+0x461b201)
#14 0x000055fb4b8e66b1 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/workdir/llvm-project/build/bin/mlir-opt+0x461b6b1)
#15 0x000055fb4b8e7565 mlir::PassManager::run(mlir::Operation*) (/home/workdir/llvm-project/build/bin/mlir-opt+0x461c565)
#16 0x000055fb4b8d72f7 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#17 0x000055fb4b8d7dc5 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) MlirOptMain.cpp:0:0
#18 0x000055fb4b8d7f7d llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#19 0x000055fb4b9e09ae mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/home/workdir/llvm-project/build/bin/mlir-opt+0x47159ae)
#20 0x000055fb4b8ceeac mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/workdir/llvm-project/build/bin/mlir-opt+0x4603eac)
#21 0x000055fb4b8d80e0 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/mlir-opt+0x460d0e0)
#22 0x000055fb4b8d8607 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/mlir-opt+0x460d607)
#23 0x000055fb488f9b5f main (/home/workdir/llvm-project/build/bin/mlir-opt+0x162eb5f)
#24 0x00007f0642c77d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#25 0x00007f0642c77e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#26 0x000055fb4898d865 _start (/home/workdir/llvm-project/build/bin/mlir-opt+0x16c2865)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWl1v27wV_jXMDRGDor4vcqE69RagQYO02C4NijyyuUiiRlJpsl8_kJIjyXHaZK_RvRvg2DJ5eM55zifJmBkjdy3AFYo_ofj6gvV2r_SV-QHAxEWpxPOVBWMxV00jLQoLjOJPpQhKyBiKrxHN9tZ2BoUFohtENztp93254qpBdFPXj4ePy06rfwC3iG5GVnQzsqERDbNI5BlUlGRpFcVpUEZJBCSISVDFDNEckWJ4GQsdtgpr6LQSPQcnmRQoIYgUTS31peosdiqv3Dd8eemeL00n9eNl1bf80uFlttdwyVX7CNpI1Q4c8CBiwMvMjPXwIkWjRF8DRuknRArs2K3cG-60fGQWMIoIM88t3wppOmb5flu1iGaIxkzviLceDTzFaqdV3yG6xsNk4CZlK-BpGqMnxsITY9GJsfjEWHJiLD0xlrmxBhoNFQrX0VP4RJ9k4OaN1VKAQOHahUu48WumDxcPa6yqysAQKuEGhZ_d64V3fsTbc54TBOSERsEp8wSn7BPMDZQfPIWxm-YBRuE1Zlra_Yqr1ljWWuwGDysmUnqKlC5JEY2dsgOp4dXqx1666Dg4PIj8zMHBk47xbJx6NX1kZC9YXvS_ROHn0zMTMq_wHJrpS_kiaiY2eoXUL11AbTqJzc6Oqw5K89dGwh4xV62Q1mWQBz2AGaUdAZ65amHs9BoLNXdU_LksycyIp7w8D-98yNNzm0LIRyMXRnjt_nBGz4SQx9jpaTFWPUA7LPW1AJ6A93ZZVzir61_Vk0FIuLDLrFLMCsSsLszKwawKzJJ_lqvzrJwn4zwH56k3hfLrOnccwh98OHs9Ol2Efq3KlJRDXxp9-CyhFpOT0-tFnvjZ4-gIf5oV7kmD7XXrx4aR8X3WkhAp1pqZPS4Zf7Ca8VNta-yLg282e9UAopsfSj8IqV83aEeO6Ea2vO4FTAM394hubl0YgjarPQqL3FfbUqkae5qwQGEhwDJZD8-H0rlV3bZ0ADUK14W1-rt3hCNpHENEs4nB1w40G4pK4UMq_vRD2j3263zaTLRuTJa9BefssMCFMaDdWowSYnrOAVyA0EyD6Ws71KcE0QQjSuGpA25B4PWo5hf5AFj5DUYJuFK1YGUNiFJEU1wxWYNYIVLcfflcfPuMTV820mKGy37nNiRKW7fywxsiaUwPBtENZq3Ao9mx3QPmS8862d8s4w9Y9E03-Jmshii702qnWYOZ3vUNtNb4RvsHNkQY0ZBg8kQIIXFclVGWl4xQgj0Ib3zzbIaHOy1b6zX77iOQZhORZj-2ylgNrPGWd4E--iF7RzCWvayF-5TtGIk-kukn8hQkUBFKxjRENAyO1E0qWp1S975vvznQ9V9ZK2rQZkjms2hUVrSaNKJHGqUkZXgh2zd332-N3Mm2Ulvrw36NH5UUYwYMK8yKd87rxP8NAsJRQFqRJKI8JzElI45alohunrJkm0SXtWz7p8td2w8TfGXUKvE6RzSe2zBaMoQorzju7F4DE9sH6ZrSR7jnSV7xiXt8rG6UJnjnI_CDjCMapcnEOFkyTpO0CjErXUp-iC3N0iqc2Kav2AblhxkG5cQwWzLMUsiTjzEMc8hnwPN5hJUlSUgc4lO11H91JW2Rnd8aVtd_A26Vvmm6GoXr-dqNqsX9UDhde0zOkiRRFpYkHo3ssnZRZco8L6OEOzGsVe1zo3qDW9aA6XxlyQfd_qIBxPMdsxZ0ew8_tLRwreUjjLp3WnEw5u9KP9TS2DHB3151lFpOreBILcFCMbMs67r6wMp4xrJ-XvSxe9j5JuaL3jS80epfcJA-MvgG7ojdOkWPqAeVR-q1aiu5cwSu5x7a4x92SCIoC8XkkEXVEoGICaczlXzvGB77VqtD_Jiboaq6VmJ-3tD_qMZxRRjhdNI4XPgqg4SS4I0tydfuu_ra3TFjCsE6q0YS3bcLnR3BWIjfAjKfKVpWPxtpblnLdq6qH1y0xn3rr1jE2fpelAQlJcGEPjpGn5QfR38nO6hlC0eec6QvoJKzm2O-yIm6aY3VfgOj9CuuS4JZWTvofsc0tPamrdQhm86VIUGZlDOLx0cWT-MkPlL0AP1kdJ09I6Ik4HESTxomSw1FSqsUd6ArpZuCO9HmF9s0Y8WY73umQWw76zbvs9ahes3hdqfdceh08br9cnO_Vq2FJ_vKmbe11F87e8tkO5S1GY8cz2ZPlOb0GJzgMR5L_qe-qvy26l3Y-lb-s4dX2G6hUfr5wGpGL6BifW23Amqw8Paa6Zj5LsBzumvJauDWdQ9j9fM4P8n57vdid0rVN60FXfm2WPzaaNmx0apUzNh-UTvJWT20-9m4OyO4cNkOp-W3FiCa_T6jvu3a_OVcyVldu5PTtmoXu5qZkf6EQXLa-e_MmoEE0bRmTSkYoumfySs0q1W7-72G_YlKv8iW5b46B5IzWOyBammLVtwdFZ3_BrT_wQz9KcV87pvVst3dQ_Xm8DmaZxrEOYOX5kmXJ5KMAzB-Ogn_30rIOXYiJATGJ2MGR30nI0DeNOa4KeR7Nmz_io-Gw68scR6EggCZENJjhAlJz4Lwt0BJSDpBWRyksqzKy7jCDZPtOS7HKJRxNck6umpKU5F_8O6K5iKf-SE-ZggRwdutW7M1lmm7nSF5twiIZiKS5YWe83WMB-bnsBCn2WETX5RKWxCOK1ca_JUvHA7ph8v9C3EVijzM2QVcBWlEaU5pkF3sr0iW5IRWIiMhKQWUWUmiRPA4yZM0hjC7kFeU0JiEQRYQEobZKqchFxkrgaYggpCgiEDDZL1y-q-U3l34e-qrIAzSlFzUrITa-J8NUDr8g4Ci-PpCX3m8Zb8zKCK1NNZMHKy0tf-pgTsYoPgac832BgQe7uvfdzWdENy5w_lvue2_6HV99Z_f6I_Geryi_w4AAP__ULkbsA">