<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/67761>67761</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] --convert-amdgpu-to-rocdl crashed with assertion failure "invalid index for shaped type"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
anonymousMCS
</td>
</tr>
</table>
<pre>
git version: 8c1270740f6bf659e5fbf556c1145ddaa7aa5366
system: ```Ubuntu 20.04.6 LTS (Focal Fossa)```
reproduced with: ```mlir-opt --convert-amdgpu-to-rocdl a.mlir```
a.mlir:
```
func.func nested @func2() {
%c0 = arith.constant 0 : index
%c22 = arith.constant 22 : index
%22 = tensor.empty(%c22) : tensor<?x10xi32>
%64 = tosa.reduce_min %22 {axis = 0 : i32} : (tensor<?x10xi32>) -> tensor<1x10xi32>
%90 = tosa.slice %64 {size = array<i64>, start = array<i64>} : (tensor<1x10xi32>) -> tensor<i32>
vector.warp_execute_on_lane_0(%c0)[32] {
%155 = tosa.reverse %90 {axis = 0 : i32} : (tensor<i32>) -> tensor<1x10xi32>
}
return
}
```
trace:
```
mlir-opt: /data/bin/llvm-project/build/tools/mlir/include/mlir/IR/BuiltinTypeInterfaces.h.inc:195: int64_t mlir::ShapedType::getDimSize(unsigned int) const: Assertion `idx < getRank() && "invalid index for shaped 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: /data/bin/llvm-project/build/bin/mlir-opt --convert-amdgpu-to-rocdl a.mlir
#0 0x000055bfe0860d4f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/bin/llvm-project/build/bin/mlir-opt+0x157cd4f)
#1 0x000055bfe085dde4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007fec00a8c420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007fec0057700b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007fec00556859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007fec00556729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007fec00567fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x000055bfe2561570 auto llvm::dyn_cast_if_present<mlir::DenseElementsAttr, mlir::Attribute>(mlir::Attribute const&) (/data/bin/llvm-project/build/bin/mlir-opt+0x327d570)
#8 0x000055bfe25675d3 mlir::tosa::ReverseOp::fold(mlir::tosa::ReverseOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) (/data/bin/llvm-project/build/bin/mlir-opt+0x32835d3)
#9 0x000055bfe24d73e9 mlir::LogicalResult llvm::detail::UniqueFunctionBase<mlir::LogicalResult, mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&>::CallImpl<mlir::Op<mlir::tosa::ReverseOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::TensorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::OneOperand, mlir::OpTrait::OpInvariants, mlir::BytecodeOpInterface::Trait, mlir::InferShapedTypeOpInterface::Trait, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::tosa::TosaOp::Trait>::getFoldHookFn()::'lambda'(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) const>(void*, mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/bin/llvm-project/build/bin/mlir-opt+0x31f33e9)
#10 0x000055bfe254e8a6 mlir::RegisteredOperationName::Model<mlir::tosa::ReverseOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/bin/llvm-project/build/bin/mlir-opt+0x326a8a6)
#11 0x000055bfe349c3e2 mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/bin/llvm-project/build/bin/mlir-opt+0x41b83e2)
#12 0x000055bfe349c728 mlir::Operation::fold(llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/bin/llvm-project/build/bin/mlir-opt+0x41b8728)
#13 0x000055bfe33cec6a mlir::OpBuilder::tryFold(mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&) (/data/bin/llvm-project/build/bin/mlir-opt+0x40eac6a)
#14 0x000055bfe333bbcb (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#15 0x000055bfe333c687 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#16 0x000055bfe333eaf4 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) (/data/bin/llvm-project/build/bin/mlir-opt+0x405aaf4)
#17 0x000055bfe2827b25 (anonymous namespace)::ConvertAMDGPUToROCDLPass::runOnOperation() AMDGPUToROCDL.cpp:0:0
#18 0x000055bfe3293e8e mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/bin/llvm-project/build/bin/mlir-opt+0x3fafe8e)
#19 0x000055bfe329436a mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/bin/llvm-project/build/bin/mlir-opt+0x3fb036a)
#20 0x000055bfe3294b94 mlir::PassManager::run(mlir::Operation*) (/data/bin/llvm-project/build/bin/mlir-opt+0x3fb0b94)
#21 0x000055bfe328546b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#22 0x000055bfe3286924 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 0x000055bfe3286ad4 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 0x000055bfe3384f84 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) (/data/bin/llvm-project/build/bin/mlir-opt+0x40a0f84)
#25 0x000055bfe327fef7 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/bin/llvm-project/build/bin/mlir-opt+0x3f9bef7)
#26 0x000055bfe3286dfb mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/bin/llvm-project/build/bin/mlir-opt+0x3fa2dfb)
#27 0x000055bfe0799feb main (/data/bin/llvm-project/build/bin/mlir-opt+0x14b5feb)
#28 0x00007fec00558083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#29 0x000055bfe0831a0e _start (/data/bin/llvm-project/build/bin/mlir-opt+0x154da0e)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWsty4zazfhp6g7KKAu8LL-SLEleNj122k8XZqJpkU8YZCOABQI81T_8XQEoiZNnWxFPJ5E8ljkg0Gv31Bd0NArRmS4F4FiTnQXJ5Ap15kuoMhBTrlez0zcXDSSnr9dmSGfKMSjMpgmhG8mpKszCLwyYtmzQpMGnKJknSajqNk7oGyACSKE2D8DIIZ_1fvdYGV3Z2kIb9v3-UnTAdoeEkjCcp-fL4QAKaz2UFnMyl1hDQYks85qWwVbLuKqzJN2aePKYrztSpbA05Pa2keEZlTmFVL9vu1MhTJauaE5hYooOch6FoNn65R9l0oprYP0SgNliTIA7tIw1oHtCCBNl5T0hIQJMqJEF0SUAx8zSppNAGhCH25YwwUePLmJbSQ8Tu7Wvqgdig0FJNcNWatZPAsnFyRLNhMIgugmj-Mg1fWESD6GrEJI17JlLDRKHV6WLFxIZ9dg4vTDuKQeKIBtml-xnQ_A3utCCnQXS1W3x6cOki3C2tOatwI092rtl3HDShYB1EFyyNHecLog0oc2jsgFjT94Ty5HnGykg1-QaqXeALVp3BhRQLDgIX4aDV0Lpjch7RILkcG9mBmSbJWJE2WHAD8lgt_oj6ssvhp0LTKTE46ubtQd82Cip837U3wdNLNq_BQEDnJRMBnXP-vDptlfw_rIx92TFeB3RupOQ6oHMXN3TORMW7Gncvru8DOj_vGDdMPK5bvBYGVQMV6snThIkqiGbTIun926TxwpBNBEazhydosbaz-uclmku2emDfMaB5J9zmVdt5VmcuXCyfmdaoDJPCbgqsfiFBdEGWaO5BfN2EKE0DmpKAUiaegbO6Dy7SSEW0W5QYu6oNpIw0wDjWk15Fd1-uZg9XRHflihkCpOyWRGErlSFGkidjWm2FpfOAzpfMPHXlpJKrQX-v1ci07tDqj4CwUjjtEfOEpFKgn0gJ1VdnuGH5BwPVV1J3q3ZryXBC3D93Si4VrAioZbdCYfQPWLEfPH7v7H0voFFIwpcwDMMkKRsM8zSs44Y4qM5ieq37H3eKCeOEf3RuSPMdkYJvC6mNQlg5w1xsTOqs9RfkD-h5-DJNsqqOGxu0W2mnvrRJXWNMHthSAP8dRM1RBTQfFu9f60nVWlWH7r8tIzowyhqswhDyKqYhWSwUaiMVLuwO5WTnrAzo_CVPF2l8ypnoXk6XousHWvOkEOqJlpOwlziOaejJG3nLJFkWhiVRwNze8hH_ynJOHec4CsPS4xz7nJM0TwoCpTxK8hFnSvOk8Dgn-5yzrSWP5plRn2fq80yzpk5_jGcUNXXq8czGvkCTdJpkIYHOyJH71muxqECbBWsWrUKNwgTRxW6DukSh8YqjC7eZMco6727YvmFlZ9Bt6_mBgWHXsl7_SXePaFYnme8--R7ELKmjkXg2V_W_7vuEddv2j420q-TvUv6GAhWrZjW0xmWpndZmNjHfY-OpytNFn-U-iTePkjry8BYe3rjOIixGeL_IJauA36PuuBlbGQ0w3v_-Q7D_73DeicpmkHPQ6KHwWPjGvm1RgZ0U0Jkd-RF9eOQPK-D8T1eQXK9a7s26beeS18PydmLq1GmHLoDzA_Te4yGL74F4VMBM__C_qOQ9LpkU-h2qW4GH1eHT2Cy-FXwk0qOrcvocPyBxKN4X66GrKtRaqg8kc0YR9XtE7bV4BsXAJkyP7HxtsJI1WoqhZhlEdrM92mvRoNqVK8dMuZCiZtZfgPP1Q4tVx8FAyd-e4ck9499grcfzrNoOzLrBlVTrq6bByhwj185HHqWGzZYwrHy1LcSsH_4u5de56GuqfiCgGYdVWUNAM28H-aeiY1cY2h34WbJ6EOCXEO1zO-C0iSLcJUpb34T-jh9jDukIqo1mbVBhvQX9P7AafOFG1sg_3C42LtAM9v9VrPzJZJJCDqmnSq9WjOKiipAe9Jpxyvy3AI6nZR4h9QDTfcAZzX8A8D-AIOt3ni2CyEMQVVil4CGwfWiNG-9W6_l-ofO2A78H70_gHf4sXCFClYKHK_ZxRWVZlXaV7UEdEbBC3brGqthD8gWXwNn3DWo-PL4L28tSw8HfHRiDStzjN8WMbZQc1ksGHCuzI3vdL1kEyR6CKs2zoxH0zM0GwdCabof1x3Hn4dsPvWYo9hbKzbI5gnjauWSwFFIbVvWgh_L1SOjpHnSEJh4pGNqWr-9AGQZ8x-qHrfMIaolm1E6MyeZKfseN5QY7PuxR7_ThmpoHNG9r8DX5DbTXopHvTnHJdyj-Zz8hThKAJvbixG_pcpqVNPnIywbnmt1c_nb3x6O8v724_HIHeji2UJ24FSMg7vTIoz1sdK_zimgRYY4jg4w7jtv2Ud62dsltLzWs7DmBk-mj0mWUaQTwtWb6BgQs0fWlpZSurN4_OPtc5mygwRw9MxR74OPI24aPA3_HWuRM7O9TlnSLKf3p2hhPsktdC22UO02T6hVXn2CUGzey34FCYWxgbELt834fNWUY-fmBhvsKL4t4T84N8oO-5SvuJwhYFl5gUr-WonkSpyVpUTVSrWbV60389YmgNnU_pJ9AYb1ojX_m8CA7VeHNUgXR1Ru74M2X6_sLKQy-mFemvOFM3bbmBpjNNg1begczo9GD4U7pHr60oDFplbQ96nnXNO5c8Sh4nTt_eAWvb-I2rEb0NTbQcbOokaMtK9-aM-y7x2Ie0w15ru8d1PpVvnh0x5h3Lp5mR6kr2lcX1PER5zR7ifqtCQHN_z51vm3UYtsqVcB5CdXXRSM8sUd6-gXd47DZjwyZg6cBv4xVaM6lWP69in1HpI8DZq8ByOMmHweMbjkzM1Hf7e04_wS6f2GQvkuxqxT6_3-6bIWwyf3s6DdHNGuwyQ4H2n_bNvHZSqMosck8Xab7qaVuyjd1OZR81RP0xd1-y28UE0vbS36I-PNVNK2b0kPiNTNhVhQNlmQF7nLGZz6LxmXSoL9UvvfJLg_ziCwWnJXVwt23WIzWPfYjXhzmkbdK4X98jaYQIlkM9zk-96U3riHc9SCzUip3L4fmlVTovpZjvZNlc-fhpD6L6iIq4ATPpmmRFElexMXJ01lSZ1mYhtOkmoZ5moVTWhWQN3FZZoCYFSfsjIY0CgtahFFMaTGhMS0jcL-hTqIkiENcAeMTi2Ii1fLEfeg_S7MsnZ5wKJFrd-uK0v6eBA2SyxN15kCX3VIHcciZNnrHwDDD3U0tNyG5fOcjvbs6MFyOIrC9DtEA453CY649nHSKn_31ywwO5n8CAAD__wFquWM">