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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`getTilingParameters` crashed with assertion violation `blockArgument.getType().isIndex() && "expected tiling parameters to be of index type."'
        </td>
    </tr>

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

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

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

<pre>
    Test on commit: https://github.com/llvm/llvm-project/commit/333ae0a6c4d2209e3b8c6c672986a52644bd5baf

steps to reproduce:
```
mlir-opt -test-affine-parametric-tile test.mlir
```
test case:
```
#map = affine_map<(d0) -> (d0)>
#map1 = affine_map<(d0) -> (d0 + 32)>
#map2 = affine_map<(d0) -> (d0 + 17)>
#map3 = affine_map<(d0) -> (d0 + 32, 85)>
#set = affine_set<(d0) : (-d0 + 53 >= 0)>
module {
  llvm.func @malloc(i64) -> !llvm.ptr<i8>
  func.func @main(%arg0: memref<76x85x17xi1>, %29:memref<85x17xi1>) {
    %6 = llvm.mlir.constant(false) : i1
 affine.for %arg5 = 0 to 85 step 32 {
      affine.for %arg6 = 0 to 17 step 32 {
        affine.if #set(%arg5) {
          affine.for %arg7 = #map(%arg5) to #map1(%arg5) {
            affine.for %arg8 = #map(%arg6) to #map2(%arg6) {
              affine.store %6, %29[%arg7, %arg8] : memref<85x17xi1>
            }
          }
        } else {
 affine.for %arg7 = #map(%arg5) to min #map3(%arg5) {
 affine.for %arg8 = #map(%arg6) to #map2(%arg6) {
 affine.store %6, %29[%arg7, %arg8] : memref<85x17xi1>
            }
 }
        }
      }
    }
    return
 }
}
```
crash trace:
```
mlir-opt: /home/ty/llvm-project/mlir/test/lib/Dialect/Affine/TestAffineLoopParametricTiling.cpp:62: void getTilingParameters(llvm::ArrayRef<mlir::AffineForOp>, llvm::SmallVectorImpl<mlir::Value>&): Assertion `blockArgument.getType().isIndex() && "expected tiling parameters to be of index type."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/ty/llvm-project/build/bin/mlir-opt -test-affine-parametric-tile test.mlir
 #0 0x000055f1de5324ea llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ty/llvm-project/build/bin/mlir-opt+0x2244ea)
 #1 0x000055f1de52f77c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f89accda980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f89abdd2e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f89abdd47f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007f89abdc43fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #6 0x00007f89abdc4472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #7 0x000055f1dfa3ea59 (anonymous namespace)::TestAffineLoopParametricTiling::runOnOperation() TestAffineLoopParametricTiling.cpp:0:0
 #8 0x000055f1dfdfafe9 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x1aecfe9)
 #9 0x000055f1dfdfb30a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1aed30a)
#10 0x000055f1dfdfb688 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#11 0x000055f1dfdfa7c5 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1aec7c5)
#12 0x000055f1dfdfaf5a mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x1aecf5a)
#13 0x000055f1dfdfbe43 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.495) Pass.cpp:0:0
#14 0x000055f1dfdfc52d mlir::PassManager::run(mlir::Operation*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1aee52d)
#15 0x000055f1dfdef453 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#16 0x000055f1dfdefb89 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#17 0x000055f1dfdefeb1 mlir::LogicalResult llvm::function_ref<mlir::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
#18 0x000055f1dfebace0 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1bacce0)
#19 0x000055f1dfdecb93 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/ty/llvm-project/build/bin/mlir-opt+0x1adeb93)
#20 0x000055f1dfdf02a6 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1ae22a6)
#21 0x000055f1de4fe650 main (/home/ty/llvm-project/build/bin/mlir-opt+0x1f0650)
#22 0x00007f89abdb5c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#23 0x000055f1de5114aa _start (/home/ty/llvm-project/build/bin/mlir-opt+0x2034aa)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVlv2zr2_zTMCxGDovaHPCiL8e8fDRK0xX24LwZFHdmcUqKGpNr42w9IKbZkO63TZDr3DgZoY3E52-8s3JgxYt0CXKH4GsW3F6y3G6WvroHJP6HbbPVFqart1RcwFqsWc9U0wqKwwBtrO4PCAtElosu1sJu-XHDVILqU8tvzz2Wn1T-AW0SXIyldhmHIgLCERxWlJIewzHjCk5TmWcJimkRRWcUlqxG5RaQY_hoLncFWYQ2dVlXPwYkeJiRk_OebjRT6UnUWX1ow9pLVtWjhsmOaNWC14JdWSMBubOGmnuThRjFn5kUhiIYN6zAKb_EgYNWwDoU3iGYVQTTHlyi8w88tFN5NyYKz6DCi1zikx-T0fPIgPSYPXyf9BmfxARMDdsrDgJ3ycLGBaHY58oidvDs3fYZEo6peAkbp9dDG2EXLou5bjlFEGial4ohmIokmigV-Umc1Cm9EtmOGsaObEIsW0QzRmOk1cfo00GioUXiTJk9Z_BSkTyJw1PQGIxo7tYrdlNl4PtUQu8mJN93r4cJnwVVrLGstolnNpIFnCEQwkg0oLWql8aBR7DkQF8xZjF1g45DO5eBjqmRPFaQvUe3oRI0HR-1wiI-MeUFQ6gUNsTKntmrsDn7K9QTf7BTfZMaXzvtP8t1xNlZp8B7ZuzG-Hm0Yu5xYFN_iWQxMHXzEHqW3h51HXSi9xSDNNHpfh2Ij2nEofAnJd4XvNyF2Cqhpx6w5a2iwvW4P2ew_5sWXa2Y22Gr280VgKEbLjWoA0aXdHq9Kfg2gS1fx3aAoEV3eCiaH0cIjh-jSrX9D46NS3eNuNfkipGjXC951KCwS6uR9U6LCa7DD0DgVtEE08wtjWKCwKLRm208eXa_B0OkFLJV-6MbqtCf47EriH8Ct0h-aTs7o_mCyB0-R-Bpb4MIY0FaoFqOElFLxr4Ve9w20duE023bgYyVfCPOhreBpaGHPIMGIUnjqgFuosPVW4G5nhou3ErCqsXCU2G47WCBKEU1xzYSEajH44PHjXfH5Dpu-bITFDJf92q3eSlvH4tXbB2FMDwbRJWZthUXLZV8BthvAQzyUjH_1MTGK_2wZ_4qrvul2QUIWiOSPWq01azAbATE_j5GyF7Jyv25dWf7SBsOlKMHkiRBC4rgOKohDGgGbeNhszfDxqEVrvfpffIxP40az7ytlrAbWeGfdYOHWHue67FeMQPSaPFEaRcBc6Ox0Dea60jpNOf4s1i2T_8faSoJ2i_Mgeug2YxIQ_3_HiI6M0jrLGecVyzOCVysNvhqttB01HzLvKUtWSXQpRds_Xa7bfhjo7EYDqxZGLYhXOKB5Rmb6hlMxZVVRyFKsmXBVem_7WoqSX9788f_f_yx3TbqgKaJL461AdLlYuNbWVNC5cOtb8TR0fPPatL1retYLjsIiDuYGRweaRGkdYFYqb-l5mthqQMNTeSHZgZB4LoRHYc3wasV82q9cGq5Kdr7tA93uYxCZz0UmhyKjlJ7hO-68lnivhSRK6cxr6TTKahYCi30ks1a120b1BresAdP5LMiHDPhxJR6zpG8f2ocONHM1cCxuZ5Xwg-jNZgpWNashx_vCW4FlQg7fD90X9dA9MmOKinVW6Z0qiGZ7EjcB0cJl7r5zourBSNEyuTXC3LOWrV3S3eBSKel--9af3Kr3qAABA15DPnNOfmB7GRL2atsfRQfSL6HZ1Fw3dWdS8u5gTImcqA-tsdpXe6WPuM4nDJKHgVH3R6ahtR_aWmG_2_cc3ox3FZJ9yXUVlxzinWTZq_GehH1hti33ewWaDTCNGYRoKllTVgy55M_-HSIeusd7B9huR4LCQnkq5wCXjr9F8OAv7Jgd57fDPDjM75TH74z5m_My5fEsTuhRTYpfn5d_l5oUz3MkPMwRiML_1aRZTRpuJDqtukWU-1Ply-EfHcDJY1odaPFs18nAmcPyZndDTKuZu-O5flBHcYg70LXSTcGdYPOT3bGx1bi73jAN1Wq4O5ocq1SvOdyvNQrvnpE88P39xw-fblRr4cke-eleCv3Q2Xsm2hvV1mI94ZHjyehp_JND-8osx51WHIy57uva77LPMq9vxT97ODLvHhqlt8-sJvMrqFkv7aoCCRZepgnvxpPoeTZP542n6E-wFsbq7Ti-l_PFb-offbIUZ8GVHsIFZTAR-FGtBWfyE5he2omgum99rKz0wXl7ToBo9vvgfNmp_o7Uj3AmpTvVrup2pvYEp79geJx2-5kpc3KD8pfxCs2kate_F9gfqPTzhJkfX6BkHMjEFaaTwhZt9XhQcf4T1v0Nk_SHM_bbgHfZB5aMcyCzxfHgfAa8zMPTefbfViXeuM-ooMzDKZT08OhFKEtehHLczfENG_ZtxcFFrdWiXX-C-hyD3-mMQClLZgbNr--iGpKY4Ib5d4c3SKpJEs-CkNL5rVAZ8yzFq5UUJV8Zy7RdjVLPuofipn--gBs-_aDn4--kwiiaFTgazq8pgyBiDA-C33YjSsKITY4ez68LF9VVWOVhzi7gKkjSnOYkitKLzVVNspLXdcJZTUkS5cDTOsmjsqQVpRUNLsQVJTQkISUkDiOSLKooioI0yPOAJDEkAYoINEzIhX9bVHp94W-8r5IgpvmFZCVI8_xIr6-8KWW_NigiUhhr9mRWWOmf893GFcW3KCGnXiMSMlycQ4W_C7vBbPdk8E0oyX7748FFr-XVr78KeJj-FQAA___GteUz">