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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR] invalid bound type
        </td>
    </tr>

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

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

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

<pre>
    Test on commit : 0f9720a6

steps to reproduce:
`
mlir-opt  temp.mlir -pass-pipeline='builtin.module(func.func(test-affine-reify-value-bounds))'
`
test case:
```mlir
module {
  func.func @reify_bounds_example(%size1: index, %size2: index) -> (index, index) {
    %c1 = arith.constant 1 : index
 %tensor0 = tensor.empty(%size1, %size2) : tensor<?x?xf64>
    
    %pos0 = arith.constant 0 : index
    %element_value = arith.constant 1.0 : f64
 %tensor1 = tensor.insert %element_value into %tensor0[%pos0, %pos0] : tensor<?x?xf64>
  
    %dim0 = tensor.dim %tensor1, %c1 : tensor<?x?xf64>
 %dim1 = tensor.dim %tensor1, %c1 : tensor<?x?xf64>
  
    %lower_bound = "test.reify_bound"(%dim0) {type = "LB"} : (index) -> (index)
 %upper_bound = "test.reify_bound"(%dim1) {type = "UB"} : (index) -> (index)

    return %lower_bound, %upper_bound : index, index
  }

 func.func @test_scalable_bounds(%dimX: index) -> index {
    %constant_bound = arith.constant 10 : index
    %scalable_bound = "test.reify_bound"(%dimX) {type = "scalable", vscaleMin = 1, vscaleMax = 4} : (index) -> (index)

    %result = arith.addi %constant_bound, %scalable_bound : index
    return %result : index
  }

  func.func @loop_with_bound_reification(%start: index, %end: index, %step: index) {
 scf.for %i = %start to %end step %step {
      %reified_bound = "test.reify_bound"(%i) {type = "EQ"} : (index) -> (index)
 "test.some_use"(%reified_bound) : (index) -> ()
    }
    return
 }
}
```

crash trace:
```
invalid bound type
UNREACHABLE executed at /home/fuzzing/llvm-project/mlir/test/lib/Dialect/Test/TestOpDefs.cpp:844!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
 #0 0x000000000113ce77 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113ce77)
 #1 0x000000000113aa0e llvm::sys::RunSignalHandlers() (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113aa0e)
 #2 0x000000000113d855 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x000075758e08b520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000075758e0df9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x000075758e08b476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x000075758e0717f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000000001124c11 (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x1124c11)
 #8 0x0000000004469c44 (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x4469c44)
 #9 0x0000000004415a03 mlir::WalkResult llvm::function_ref<mlir::WalkResult (mlir::Operation*)>::callback_fn<std::enable_if<(!(llvm::is_one_of<test::ReifyBoundOp, mlir::Operation*, mlir::Region*, mlir::Block*>::value)) && (std::is_same<mlir::WalkResult, mlir::WalkResult>::value), mlir::WalkResult>::type mlir::detail::walk<(mlir::WalkOrder)1, mlir::ForwardIterator, testReifyValueBounds(mlir::FunctionOpInterface, bool, bool)::$_1, test::ReifyBoundOp, mlir::WalkResult>(mlir::Operation*, testReifyValueBounds(mlir::FunctionOpInterface, bool, bool)::$_1&&)::'lambda'(mlir::Operation*)>(long, mlir::Operation*) TestReifyValueBounds.cpp:0:0
#10 0x00000000012714f7 mlir::WalkResult mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<mlir::WalkResult (mlir::Operation*)>, mlir::WalkOrder) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x12714f7)
#11 0x0000000004415641 (anonymous namespace)::TestReifyValueBounds::runOnOperation() TestReifyValueBounds.cpp:0:0
#12 0x00000000042452f7 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42452f7)
#13 0x0000000004245b61 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x4245b61)
#14 0x000000000424aede auto void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >&&)::operator()<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&>(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >&&) const Pass.cpp:0:0
#15 0x000000000424be92 std::_Function_handler<void (), llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&&)::'lambda'()>::_M_invoke(std::_Any_data const&) Pass.cpp:0:0
#16 0x000000000424b8a8 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<std::function<void ()> > >, void> >::_M_invoke(std::_Any_data const&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424b8a8)
#17 0x000000000424b807 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424b807)
#18 0x000075758e0e2ee8 (/lib/x86_64-linux-gnu/libc.so.6+0x99ee8)
#19 0x000000000424bbd1 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<std::function<void ()> > >, void>::_M_complete_async() (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424bbd1)
#20 0x000000000424bc7c std::_Function_handler<void (), std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(std::function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()>::_M_invoke(std::_Any_data const&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424bc7c)
#21 0x0000000006b27fa5 llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x6b27fa5)
#22 0x0000000006b29637 void* llvm::thread::ThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0> >(void*) ThreadPool.cpp:0:0
#23 0x000075758e0ddac3 (/lib/x86_64-linux-gnu/libc.so.6+0x94ac3)
#24 0x000075758e16ebf4 __clone (/lib/x86_64-linux-gnu/libc.so.6+0x125bf4)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW19zq7b2_TTKiyYeEBjwQx7IH_-amXN-yc1Je_vGCNjYugGJi0Ti9NPfkQQGbCepW7c90-ZMcuIIsffaa21tSaBQKdmKA1yg-SWaX5_RVq1Fc_HAHpjr-mepyF8vHkEqLDjORFUxhZEXY6dYhMShAXJi5MRSQS2xEriBuhF5mwHydDsKHOTEVcmac1ErjBVU9Uz_is9rKuV5zWooGQfkXSMSpi0rFeOzSuRtCYhERcuzmf4PkUiBVOe0KBiH8wZY8Xr-TMsWzlPR8lwisjBf4dap7o8zKkdIzJf2rjEZHxiFl8iJMd56wsh3jPnEGk5gQ6vaoEFkLtkv4OrwGc9hg8gV7hrJqHGBz5F3gxGJtr22V3p_WN-YuRh515g2TK1nmeBSUa6wiwdbTqz7KeBSNI7pbD_PoKrV6xjTGIr248VdV-RdIW-50d9F4CPvpve_hVEL6RwC4kyB2M5QQgVcJYb8g_Bn9j7tbAzfHcNnXEKj9u0xrsQoYp2SFl8Xn_k4v_4wvAFvzqoJcTmrRpg6s5n7kUVryT2BpRG2UrxAY_PMGEaE6KydjfIPEWJV1nF0CaRea-j7f7nUPULLyJBxeym46IJo6_oYl-4Blz8e4bKLtQHVNnwn5I6xKaLRyBoSD4XXna3JMNXAE5nRkqYlJH0d6JD_vD8gzW87I7DL2hEju-l8cBRMvf4aJn8-wGRvxfS7ws_6d_jKuLnujproxjT5x7GOyLwB2ZZqFBfNc7YfeF89dqOaxj2ouDUbH1RpKlMpRJ28MLW2ZhNNEMuoYoJ3BUzRRu0WVeD5Xp1VUE9U7aSUWTErRKO7sI5aaxPbYgI8x_re3sYoBTqSWMEg_5VasgNC3vzrqFFojUtRQdJK2Fqe4OiL-CFrnSHccz6IY-xbHez__axnlckaKtdYNTTbnRWREzP-TEuWY0uDDg858Y___3ATX_0QX365wbCBrFWQY6or93ItKkBkWbS__ML4CpFlWT5X53Uj_gOZQmRpJlqy1LHqiyxFZHnNaGmvPtpm_eOuvoZCzrJaqxv5PiIucuL7Lzfxtxss21QvOShO25VeXQgr61qpWuoYyBKR5YqpdZvOMlF1MPbRMClbkIgsMeU5Zjwr2xywWgO2pKQ0ezLEzKxGnoOdjdP_c10vgzDExrYXIy-Wr9J-uG8YV98UzZ4eDa8kGjo19CURUjVAK0QCW9SUUVaL-CGDej2U65-Md3zqVRQil86mA7RNKc_dgUupA4fgPrT8G1txWv5AeV5CYyvmaRBpnwMisoMoj-ZzPPFtcltpWiRbMV6IRCESm7onWG4-Lro7-vRwzLd14HUOwnk4j8CJ0jlxujhstm2iIAn885LxdnO-4q29kM2kmAUGs0_mxBkQ-1ODebEoMlyrdQM0T55YWR5nfREsimywPt-F64cBXkkT3rGw_TAYDAdTw6EbFh6mqTALrCPMkigsvMFsONWP-JnrniJNjKHBTTR24_vBIvP93--mMzS4WUzduHPqeNiUKDMs_k3Lpwc7qw2DRs9geppKGiiQd3WwNyLR0H5XQ9NNbDp39YrPtGe0LHWBSQqOvCupctsM3My2TBs3EbuT6sFkIjgkQl82VdQOYD0nXeoafVfrofKW9_GVB1gdar4sRfakW3ucZhFut1LYFKxAx7fFy2QiaQVvUDG1PWrft_5BRzO1Dj1yUJSV9vMLLZ8sW1MLd02u68nCnRpfiuaFNvmt0syIRl_UTBoOf9JwLvtV4-ieTvW7-pYraApT1K9wKkQ5_FzYvoj4idtb_UifaaRv580fgzEwX9u2sKRVmlO9Y_4gg0lUCj363k61BX48AHinYus5ajqnktD1i_DwIHxX_bf1_YDX0w7tPXH7JDxBlbTcdMt54rnubvkKfFOMKRf8tRKtxJxWIGuTCJ3Ih0Tp1iUtv-OjiKIjNJxM6z7x52Si4Viuu_pR3NX3VMo4p7XRp_M-oVZ32KtNbxezmNPyVTL5lXK6gmac9y03z7Lyky2zuvgGHbzd6NPAPTr6-_6p1zTBdNdtUMHJ6RjfpF3dcqmatgJuCmP8Xgfr2V7osN_TBri65YXAZi_ZFYKTMJ4G7sC4v8M4hRwwbZUwi8QR5Jo2tCyhXIrmhmZr5F0lyYq3SbbZ2A5JwkVT0TJh23Jxdax0o2ETy1ee3VZ1iUg0Kbh39f1XTUxH6nb6fIbsz3A68kjLUmR_RqR6X2q_p2l0OldmFpvvFvivX24frgRXsOl3Dp-a_zWaf_L-txtr7y4ZP_X-K_SeKCLqfldjngj-0bEHtvh-Cv8XCm_XWlibPrA0n-8slVJYkAF30m8ak3X3-M27MkuoLn8m-6MvYsUyWu7txgrKzCuC-8_F1neRF1efq-DvVZjPVfA_T_NP3v92Y-1zFfzd6b1V5LMMfo_yfPL-TyuD43edydeE8WfxBOM3h0nMX5OcKto_LDabmTe2McHuNiai0fvbmO3FlrP_tpDUatKaJEWr2gaStDsO6sWJ3dnYlrFyH_W1LddQgtKub0a7p3dtPFL5lEhQ6vcB7vZsnd6_GfXkZnvAoetza7SboFFtXcK4oX95trOB3N-X9L8emxineIugs2Z4ixDu5ZQTvk_fN0WVbfiJbAPIhdZwHMCIi-8gCzX18fAK6GSvZDRdA5nR9MAJEIDoyKMxC4CROotdddLcfZ-MayigaSBPpJZpkq1_ZDZvEyETVa3JT6ium6c6Q9WFviWGOLvEZGF21BOdbV-5ppouy-RQRUaPfB4NcfdClMOZAjuZbaeGUfE5OAKm_E2fKA3mdSn8v0a0df8q_XQzykkUyMJsUGDy4j1ISVjQ-SiqbyofArNNdSMykFJHKSfned5k4PfD7oANsMkO7EXghf2puhH88WDp4DVi83povLwb86oRL_1pvtG6wdmOoGh0om-4eX_yJzuH-vKcZt6RtcWnmTcwMT3U5waQFj5OkqwUHI4z7JJ5WnRHyuJUNApMsmeiAZy3VQ1557U_VHuWX3j5wlvQM7hwQ9-Ze4sFIWfrixS8xcKHeVCAm3mEgEMCoK4bOlmU-150xi6IQ-YOIYHjuZFPZgvPHI6DIMsjkhEX-Q5UlJUzLctMNKszc8D1wiVR5MzPSppCKc2f9BBiD-ISNL8-ay5MTqXtSiLfKZlUcrCgmCrNnwHpjRSaX-P9E8FnbVNe_Paztx265wvyvwAAAP__Q-ow3A">