<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61344>61344</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR]Crashed on converting tosa to linalg
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</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/3b4cb1e96c645bb833fe710856479c31383859bb
The same crash occurred in [llvm16](https://github.com/llvm/llvm-project/tree/release/16.x)
steps to reproduce:
```
mlir-opt -pass-pipeline=builtin.module(func.func(tosa-to-linalg)) test.mlir
```
test case:
```
func.func @test_argmax(%arg0: tensor<?xf32>) -> tensor<?xi32> {
%0 = "tosa.argmax"(%arg0) {axis = 1 : i64} : (tensor<?xf32>) -> tensor<?xi32>
return %0 : tensor<?xi32>
}
```
crash trace:
```
mlir-opt: /home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/llvm/include/llvm/ADT/SmallVector.h:294: T& llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::operator[](llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type) [with T = mlir::utils::IteratorType; <template-parameter-1-2> = void; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::reference = mlir::utils::IteratorType&; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type = long unsigned int]: Assertion `idx < size()' 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/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt -pass-pipeline=builtin.module(func.func(tosa-to-linalg)) test.mlir
#0 0x0000561fa2394f1a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x221f1a)
#1 0x0000561fa239241c SignalHandler(int) Signals.cpp:0:0
#2 0x00007f10d2ed5980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
#3 0x00007f10d1fcde87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
#4 0x00007f10d1fcf7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
#5 0x00007f10d1fbf3fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
#6 0x00007f10d1fbf472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
#7 0x0000561fa380fee3 (anonymous namespace)::ArgMaxConverter::matchAndRewrite(mlir::tosa::ArgMaxOp, mlir::PatternRewriter&) const TosaToLinalg.cpp:0:0
#8 0x0000561fa37e7a78 mlir::detail::OpOrInterfaceRewritePatternBase<mlir::tosa::ArgMaxOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1674a78)
#9 0x0000561fa4029389 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1eb6389)
#10 0x0000561fa3cc7c67 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#11 0x0000561fa3cc86b7 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#12 0x0000561fa3ccc37f mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1b5937f)
#13 0x0000561fa37dfcbb (anonymous namespace)::TosaToLinalg::runOnOperation() TosaToLinalgPass.cpp:0:0
#14 0x0000561fa3c4c759 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ad9759)
#15 0x0000561fa3c4ca7a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ad9a7a)
#16 0x0000561fa3c4cdf8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#17 0x0000561fa3c4bf35 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ad8f35)
#18 0x0000561fa3c4c6ca mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ad96ca)
#19 0x0000561fa3c4d5b3 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
#20 0x0000561fa3c4dc9d mlir::PassManager::run(mlir::Operation*) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1adac9d)
#21 0x0000561fa3c40ca3 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#22 0x0000561fa3c413d9 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
#23 0x0000561fa3c41701 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
#24 0x0000561fa3d06380 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/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1b93380)
#25 0x0000561fa3c3e3e3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1acb3e3)
#26 0x0000561fa3c41ae8 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1aceae8)
#27 0x0000561fa2361330 main (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x1ee330)
#28 0x00007f10d1fb0c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#29 0x0000561fa2373fca _start (/home/verify/llvm-project-3b4cb1e96c645bb833fe710856479c31383859bb/build/bin/mlir-opt+0x200fca)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWt1u2zgWfhrmhrAhkfq9yIVix9guGiRojbmYG4OijmTuSKSWpNp4nn5ByXYkJ26d2dYzO1igjSWTPL_f-XgomRkjKglwi8I7FC5vWGe3St_eAat_hXa70ze5Kna3azAWK4m5ahphEc3w1trWIJohskJkVQm77fI5Vw0iq7r-cviYtVr9C7hFZLVfSlY0D3juQxrxKAjzPKG0hNj3kjAK4pRTnyY0CdM8R94Sedl6C9iwBjDXzGyx4rzTGgosJEbhndPhRyhcIpK82yKrARBZaaiBGXflR_NnRNJB8fDXWGgNtgpraLUqOg5OwzAh8vb_-tumFnqmWotnLTNm1ooWaiEB0WXeidoKOW9U0dWASFJ2ks_dH0QSqwybWTWrhWR15bSTFFswdu4EvqnJjWLuTD5jylE-RoHnZm-Yrhr2jEiCSMh05bkMWpBGaUQXiK6eS0oQvXe6Z4jeT8dEP4ZRfDeIxxiR0MOILjEixDkwP8gnIxUkdUvYszD9VB87pSIKULzsL53z7zPhoF6D7bQ8WJGdn4ri5ZsBGrBkNft-OgdLV1vVOIR8AS3K3QmUZhcj-ohEIXndFfDyRbZcI7L63LC6_gW4VXq-RTQjaeD0rxGJcD-RZohmo1lraNqaWVioplES0cUakQVGdGH3A7OWadaABT3zZ0Ma6f0gRrWgmVV6qHxEkh-uwYjfYWN3LfRYCO--CrvF6x4NPbj7SZ0VtRkuP9jBorVbQu--p2WJvyhRuIk_3HINJWiQHC40lkQ_xYxjAHszaiUr3MmesB0BWpc2muHMGNBWKIlR5Ini2QnHbmlfjCkiMS6ZqKGYD9B--niffb7HpssbYTHDeVc5elPaOqJ7N40KYzowiKwwk86sHtnYbg-UnTP-W19qe_WfLeO_4aJr2mPteXPkpU9aVZo1mOmqa0Ba84NLz9Fw4T6FRGT1E-kaI0I97D17nueFkV8yQtOg9NkIH2a3R9GTFtL2EVn3bDSuQs2-bpSxGljjAEYWfc5dKbm8_uS4IHLnPRPilz47bonOMf_EMRL4HH8WlWT1P5gsatCIJHs7h6_NnLcu1V7__yiI7AXFpe8VBIowTTy82WgwVmnYaLt3sxbOyOck2kSBC3v3PKtkNwy0dquBFXOj5l5vsE_SxJvYS8dq_JIXkMRYM2EAj3yvapHz2eKXf379NT_ekjmJEVmZ3gtEVvO5u9uZAloH906K5-GLL701snO3veg5RzQL_anDwYklZVz6mOWq9_QyS2wxRKNf1StJTpSEUyV5SUuGNxvWU8TG0cAmZ5f7Pqw7Xgwq06nK6FRlEJMLcsdd1qI-a9QLYjLJWjxGGU28EoA6mUwquWtUZ7BkDZi2L5l0KJdMVw_seaHkF9AW9oTdMMu3mSw-wVctrKuvFzJ3tTxe-ti6GnsZf2LWgpb7pbqvwRRzJY3Fa2XYWn3sWeBtfCcTF2KIWZyMhBdgmaiH68f2UX-QFnTJOOzV7ZXf9W3e4ptGH3aLb_n62G_2QklEssu9vBrR-FEcsDiZYCAdBzDwSEqT9LXdWdvWgvd9zA8OwmLE14793cKNhhLRRa5UjSei9wKGuA0x7JvZbwhxzct_LeRl8UdVCc7qT2C62l4m94o7iQ95RJP05XRFqD_ZIynnMY_i7xX5MYUfoWK1-P1Q5_X-9sJ8DyxhhJJvw38pWA3cvkx7XePOA__EgyTKL_fghKn4cHscNpNeINOa7T6dpHzi37vRthSskspYwSeQuNB1cuI6p3E5CjBr23q36ur6Rc67U7NmugK7r8WXCSutfgc5pcnPYMfoviKu8zClcTnBNZ0yf1HyPP8eKsb7yb776-SjHIXJkeNk23li5o3WyhkQTHMT8DhMz249a_XYOlFZwdoji-pOnjCIMa8ydT6HmWT1zgjzwCSrXFEtsKNM9zk5v1w1U6xI43DKQOFpoFjM3h2op8PRYYpvN_Xof_TDIzfdvYz5II3V_blJ6Te2t_GEQfMwsLf9iWmQ9oMs1aGMsqsnh8VskpzoNDlFeb6BOpecUQllZif5h6atEUmGmO5rD5G4Zk1eMOR63uRnqHhsnx5cdA9MO3n-sj-lX0Hxvq07zxzxSczzkoY_OOZXBVVS0nACquQUVBF_f8X_Hakx4tPqS08CVYQ5_T81Tqhx3t-3WrXzIHUwO19YxDsNJ0-LEysOfr2JsmlYrosNxtNijA1y0vYGHmcUt6BLpZuMv25eXz_IMrbYPwjbMg3FprUa0cXo-anqNIeHSiN6P2rsxol7-Pjh00JJC8_2VVIfaqEfW_vAhOuyS1FNmsPR6NvJOultA58WKW614mDMXVeW_TOui9zrpPh3B6_ce4BG6d1B1Gh-ASXrarspoAYL59e4I__95T6P5-37-09QCWP17tVRd90_UnvqKyu7KFz0NFyx5-NzB9M_cpK9XjjPJzU9PmbhrK5zxn_blHJi9ihOf0F4vJ32C0vmzT7pL5MVktRKVtcN7DdM-n7BTM9nhRfRxBulwrS1sJksnk4Y58_w7n-wSL8546VnuH47mqeUjt5OOCScHEApUKBvF-XfjVKu2cHwnAKdxP30bOkzSM7Gfd9U8i0b2sdsCrHPVgtZfYLykuj8CYcgDgySiffx9B1e5FPq4YYJec3nwUDptBaSk_dIHk9ivNnUIucbY5m2m72JF7254qY7vLIbLvvBXk7_FosGwZSU02lQYlpyhgfFV3zh6nnl-CA2_WXKTXFLi5Sm7AZu_ShOQhqkJLnZ3sYpi1NSBl6ZeDQOw4CQlELKkoKzoojiG3FLPEI96vu-HxAvmYesJLzIPQjCkCbAUeBBw0Q9d07Nla5u-tf6t5FPg-CmZjnUpv-NGCESvuJ-EBGCwuWNvu0DkXeVQYFXC2PNixQrbN3_uMy16yhcLjQzWyiG35L1D7yFrLBVhmGr8PBW_abT9e0f_xlCb_J_AgAA__92Guge">