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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Sparse compiler pass triggers OOB access on 0-ranked tensor type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/97a1c98f
Reproduced with: 
`mlir-opt --sparse-compiler temp.mlir`

temp.mlir:
``` milr 
func.func @func(%arg0: tensor<f32>, %arg1: index) -> index {
  %0 = tensor.dim %arg0, %arg1 : tensor<f32>
  return %0 : index

```
 
trace:
```console  
Assertion failed: (Index < Length && "Invalid index!"), function operator[], file ArrayRef.h, line 255.
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 --sparse-compiler temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt 0x000000010247b8c4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x000000010247a92c llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x000000010247bf5c SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001aad414c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001aad29ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001aac64340 abort + 168
6  libsystem_c.dylib 0x00000001aac63754 err + 0
7  mlir-opt                 0x0000000103fc05f4 mlir::LLVM::ExtractValueOp::build(mlir::OpBuilder&, mlir::OperationState&, mlir::Value, llvm::ArrayRef<long long>) (.cold.4) + 0
8  mlir-opt 0x0000000102bca47c mlir::LLVM::ExtractValueOp::build(mlir::OpBuilder&, mlir::OperationState&, mlir::Type, mlir::Value, mlir::detail::DenseArrayAttrImpl<long long>) + 0
9  mlir-opt 0x000000010368bcec mlir::LLVM::ExtractValueOp mlir::OpBuilder::create<mlir::LLVM::ExtractValueOp, mlir::Value&, llvm::ArrayRef<long long>>(mlir::Location, mlir::Value&, llvm::ArrayRef<long long>&&) + 136
10 mlir-opt                 0x000000010368bf00 mlir::MemRefDescriptor::size(mlir::OpBuilder&, mlir::Location, mlir::Value, long long) + 192
11 mlir-opt                 0x00000001036e486c (anonymous namespace)::DimOpLowering::matchAndRewrite(mlir::memref::DimOp, mlir::memref::DimOpAdaptor, mlir::ConversionPatternRewriter&) const + 1256
12 mlir-opt                 0x00000001036e428c mlir::ConvertOpToLLVMPattern<mlir::memref::DimOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const + 168
13 mlir-opt                 0x0000000103b2eaf8 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const + 200
14 mlir-opt 0x0000000103d9753c 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&)>) + 1420
15 mlir-opt                 0x0000000103b39ba4 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 1948
16 mlir-opt 0x0000000103b327e8 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 936
17 mlir-opt 0x0000000103b348d8 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) + 80
18 mlir-opt                 0x00000001036e0a04 (anonymous namespace)::MemRefToLLVMConversionPass::runOnOperation() + 524
19 mlir-opt 0x0000000103af7518 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
20 mlir-opt 0x0000000103af7a48 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
21 mlir-opt                 0x0000000103af93c4 mlir::PassManager::run(mlir::Operation*) + 1148
22 mlir-opt 0x0000000103af2788 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
23 mlir-opt                 0x0000000103af2358 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
24 mlir-opt                 0x0000000103b5d04c mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
25 mlir-opt 0x0000000103af0780 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) + 216
26 mlir-opt                 0x0000000103af0c74 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
27 mlir-opt 0x000000010231dcf0 main + 108
28 dyld 0x00000001071cd088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWVtv47oR_jXKCxGDoiRLesiD4yQ4ARIkSBYHaF8MihrJ7FKkSlLZ9fn1BSnJl9jeaHMW6KJoEPgiksP5Zr650KTG8FoCXAXJdZDcXNDOrpW-WiohVKu07Qy-KFS5uXp8uH9BRceFRdQippqGW7S2tjVBtAjIXUDuam7XXTFjqgnInRBv49tlq9W_gNmA3PXrAnKXpzRkeVYF-CbAixdotSo7BiX6xu06iBaoHwjmuBFcX6rWostL01Jt4JKppuUCNLLQtDM3HszxMN-_7p5Hi62c_h81XOhBeNVJNnMvKIixew9IFpCE6ho7DSxIo3QQLauIBNFtQJaoHw3dKJclfA9Iji6D6Lb_hoL0upeM3EyMguhmkDIreYNG2TtB6NQ-gwQNttNyFDRu2KNJb9A7XMOqAb-mDI6xMyWNEoCGWQtjQFuuJKooF1B6q5PsvocSLdEDyNquUUDmAZmjgJB7-UYFL0fsYUBIQHKHx1nPi1ItaGqV7unkh7gAtNCabl6gmq3dI8ElIJIks16R54fbxestMl3hOEVR0dVIg2MfsurnOcaN6cAE5A5R6XRloisB2TUgpqlZo4Kyr95Cw_avlrKvqOyadmsyPAtw_qxVrWmDqK67BqR1SqBJbHwn1nNadRaZTVMogSRtwDhTgzSdBrRRHVrTN0AeSD-J_wUacenGNHpefPkDKY0MWI8D5BvXSjql0BvVKJjjh4c_H1ev_3i8fnq4_-fty8otcXS3CrWKS29JF3j5DiPagcHfcf8XYhKnRcZir4ubGy3MxvQfnjWX1sP64glGst0kTb-tlLEaaOP5skRcuu1QQK5RMu-3DPe2fP93qALNCTulwksnX3ktqfiDylKANj5k-13CkPTbkPPIqoShAwEByfYUjeK4FxEhJHhhNsZCs2oFtZXSzazcCF7siaS0jMOYxWhleG01bdoDuPGBELvWQMtTMkgOgNEwYfWVC-HFkCzr5ST7ctgJCWweRzFGtHAh400xH5bOP14apUmMQGu_cMgj6TRHRRXDSRWjMdVGC0fD_tPtdxdj9k8qOnhq-2eufJQByXbzn9pr98z5wZNmf8QlEq7kq6UWjoa9XJ9LtiQZc0wQLYWSNXIvPm8732YzpkQ5i0dPD0CzM1QpGI1T9t8A9mXTwhmou0clWMpF__kGpAGPfWGtvm9acdIAW8j5acjRPCsYTIGMTqH0X5kGBylaTrDbKYjzaQ51kPZM_aCYt-ffEelL3DaRRGO-wtPCYJ4VFcZ7mz9C8wLVDRimeeuqYZ_F-F8wkSQ_xLREO91HlfMh94XhRJUhzubMBQaVSm4a1Zm-LrU-s-cDt3jz1D6ob6C5s5N71FDL1gtZvsA3ze0hngYa7Wy7XXqo_tHwoqTeOgezlkq-gTZcyWdqLWg57KQHD7kuZshyZFtYyGTUJGNHm9mn9otyTB12PGDwMShHwY9MsY3ygCzOUvC9Z_sm81OmGBN-GE2zREGAVtmP9vp5jLuRj9QleEhGYXw6GZV5mkTsWOKibQVndBtSv069fReN3ezKO35ZKOUqcnYkoEfUoxucd1bIm-Ll3xaynyBqzqh4AdMJO03ukCliMto-mUiVKC9o_FGq2Fr7AWrq29f-uRi-TnTNR5Tvk108sn1-mj5FRFLIJqs8ZIFtGRuTwjBsDjrdk_F7AOinmXDDaS2VsZwduSvf1qL0HNQ4K_cDmbat2DxTbTkVO2v-tPm_UF2DPSpMd1r9BaNTBhe9gt0j2z5y35u8gj1vq-Ppj7S9l5X64RJnwrETWIymykZeZ1OLAab4Q173pbwvD_vkNMOJRHfySe7ptz2OJGQ4S4T5ac_RKk3C7ExX5yrSU-u2GYvkuNu7WDfmyInn3buQVGwMN49U0hp84XXJzb130v8QVO6f22IyxBnBZyHQ-OchPPMWBJfvc4KbutXsXNf8eUyHFcCYe2ms9id714IclYj9Cf3O_cCg-zPVIK1j6sj9LRGjMcOSic0YrfKIxe92H_Gc9PuhOcbz75gWCTnnLpJmGWpBu-Psgh0nt-Nj_GjL8d3Ysp-6WoVDW7umGspVa7XrqreiXlWnGTzWOohuD9LDXpv8cP-yVNLCd3uUCz5X-Q4JNNbTQwxDeOIhPMnEjolWJEoydE6Rz2h-bMtO8n93cGTLR2iU3lx3VdUT_HhhCRXthF2VIMAfwc4sHpLmvqXf-zzfNriMClFQ9nVVHbbEj4Lrp9Y-Ui4_YM_vgfBXcumgagtg9gVqbqzenImXae9DsQlIvML9-bY_3f0uFjziiI-hdBtD8cRWMilxvN_Wm1Zwu5Dls1YMjBm1_00i438ikn8443RunI_napKcKyQ4zQ5-8Ph_RvjVGaE_KIejJ-ZTqxRmaXzWM0MjxNa0b3neFd1Xq7ms3eFmMq6h9yB47D1On1NIFJaswqihXPYrtgsyVG5EuT85DVmJswwZS4cftJPRDu-utC7Kq6jMo5xewFU4T-MoTrMsvlhfpXNMsyKFKg2rpMozlpAkT4FBGOakKugFvyKYRDgkBOMow_EsTuZpMic4y0rC3CE5xtBQLmbOPDOl6wt_sXQ1x2GeXAhagDD-1pQQCd-QHwwICZKbC33lb3KKrjZBjAU31uykWG6Fv2719k1u0Ku_R0Lbe6SWGoOs5nUN2qCnp2tEmUuOSEmELzWVX6EcLg2R3bRw0Wlx9flbMo_nPwEAAP__Eu0Rlw">