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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Crash when using --tosa-optional-decompositions
        </td>
    </tr>

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

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

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

<pre>
    I have the following MLIR program:
test.mlir:
```
func.func @func1() {
        %c0 = arith.constant 0 : index
        %39 = tensor.empty() : tensor<5x2x1x1xf32>
        %107 = tensor.empty() : tensor<7x19x17x1xf32>
        %146 = tensor.empty() : tensor<7xf32>
        %108 = tosa.transpose_conv2d %39, %107, %146 {out_pad = array<i64: 10, 10, 10, 10>, out_shape = array<i64: 5, 3, 3, 7>, stride = array<i64: 10, 5>} : (tensor<5x2x1x1xf32>, tensor<7x19x17x1xf32>, tensor<7xf32>) -> tensor<5x1x1x7xf32>
        %extracted = tensor.extract %108[%c0, %c0, %c0, %c0] : tensor<5x1x1x7xf32>
        vector.print %extracted : f32
        return 
}
```
The above MLIR program will cause a crash when using the following command:
```
mlir-opt --tosa-optional-decompositions test.mlir
```
And the crash backtrace is:
```
<unknown>:0: error: invalid tensor dimension size
mlir-opt: /data/tmp/v0718/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:179: static ConcreteT mlir::detail::StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT, Traits>::get(mlir::MLIRContext*, Args&& ...) [with Args = {llvm::ArrayRef<long int>&, mlir::Type&, mlir::Attribute&}; ConcreteT = mlir::RankedTensorType; BaseT = mlir::TensorType; StorageT = mlir::detail::RankedTensorTypeStorage; UniquerT = mlir::detail::TypeUniquer; Traits = {mlir::ShapedType::Trait}]: Assertion `succeeded(ConcreteT::verify(getDefaultDiagnosticEmitFn(ctx), args...))' 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/tmp/v0718/llvm-project/build/bin/mlir-opt --tosa-optional-decompositions test.mlir
 #0 0x000055ca1d17b8af llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x14f38af)
 #1 0x000055ca1d178924 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f1998835420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f199830200b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007f19982e1859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007f19982e1729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007f19982f2fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x000055ca203fcbe4 mlir::RankedTensorType mlir::detail::StorageUserBase<mlir::RankedTensorType, mlir::TensorType, mlir::detail::RankedTensorTypeStorage, mlir::detail::TypeUniquer, mlir::ShapedType::Trait>::get<llvm::ArrayRef<long>&, mlir::Type&, mlir::Attribute&>(mlir::MLIRContext*, llvm::ArrayRef<long>&, mlir::Type&, mlir::Attribute&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x4774be4)
 #8 0x000055ca203fcc2d mlir::RankedTensorType::get(llvm::ArrayRef<long>, mlir::Type, mlir::Attribute) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x4774c2d)
 #9 0x000055ca1f393586 mlir::tosa::SliceOp (anonymous namespace)::createOpAndInfer<mlir::tosa::SliceOp, mlir::Value&, mlir::detail::DenseArrayAttrImpl<long>, mlir::detail::DenseArrayAttrImpl<long>>(mlir::PatternRewriter&, mlir::Location, mlir::Type, mlir::Value&, mlir::detail::DenseArrayAttrImpl<long>&&, mlir::detail::DenseArrayAttrImpl<long>&&) TosaDecomposeTransposeConv.cpp:0:0
#10 0x000055ca1f395d9f (anonymous namespace)::TransposeConvStridedConverter::matchAndRewrite(mlir::tosa::TransposeConv2DOp, mlir::PatternRewriter&) const TosaDecomposeTransposeConv.cpp:0:0
#11 0x000055ca1f38d0ff mlir::detail::OpOrInterfaceRewritePatternBase<mlir::tosa::TransposeConv2DOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x37050ff)
#12 0x000055ca23328848 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x76a0848)
#13 0x000055ca20301ed0 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() GreedyPatternRewriteDriver.cpp:0:0
#14 0x000055ca20304cfb mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x467ccfb)
#15 0x000055ca1f3781ac (anonymous namespace)::TosaOptionalDecompositions::runOnOperation() TosaOptionalDecompositions.cpp:0:0
#16 0x000055ca2024c861 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c4861)
#17 0x000055ca2024ccba mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c4cba)
#18 0x000055ca2024d64c mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#19 0x000055ca2024bdb5 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c3db5)
#20 0x000055ca2024c5e6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c45e6)
#21 0x000055ca2024ccba mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c4cba)
#22 0x000055ca2024d474 mlir::PassManager::run(mlir::Operation*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c5474)
#23 0x000055ca2023ea0b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#24 0x000055ca2023f3c4 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) MlirOptMain.cpp:0:0
#25 0x000055ca2023f574 llvm::LogicalResult llvm::function_ref<llvm::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
#26 0x000055ca203482de mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x46c02de)
#27 0x000055ca20237194 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45af194)
#28 0x000055ca2023f6cc mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45b76cc)
#29 0x000055ca2023fb96 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45b7b96)
#30 0x000055ca1d096d6b main (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x140ed6b)
#31 0x00007f19982e3083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#32 0x000055ca1d14ed9e _start (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x14c6d9e)
Segmentation fault (core dumped)
```
My git version is 39bb244a16e59cb8f2080f96e9de599007762635.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWttP67qa_2vCi0WVOPcHHkpLZ5AWAgEz81g59pfUe6V2xnag3X_9kZOUJqEtXWtVa--zdSQEwfmuv-_iS0y05oUAuHHCWyecX5HarKS6eSei2EpR_OGRq0yy7c09WpE3QGYFKJdlKd-5KNDDt_tnVClZKLJ2_Knjzh13akCbybrk6mPEidzup_k3rwWd2F_ICVz713Nw4uAUOfFtx-CmDg6pixx_jojiZjWhUmhDhEF2cIq4YLDpE_tpQ2xAaKkmsK7MdifVn3bDjj8LN3jjbbxN7mPHv-sL8Nz4LAnxxks3XnxYRhCdKeOQ_qTllZpMjCJCV1LDkkrxhhlqPHTwDLWW7p6svvhW1mZZEdahpcjW8Wc8CqxKz7Wko9_-nX2wXHpFKjjEF1oK_-NX3PFoozg7yNAKDy1dPG-8dXByDHY8O4Hn8OVuMEXXjn_XD6SVdwhI2BhFqAE2CEU72MKX2Fy3-dXBePAhnI8z56DCN6BGqkmluGik97VPkSXeUSowtRKo-z-eH6yN1xUgksk3GNQWeudliSipNSCCqCJ6hd5XIFCtbRkOi5LK9ZoIdqz6bGVey8qg62ubavaRS0HKawZUriupuf1fo30ZH5IyFaxR29qSEfrdug2I62N6HX9Wi-9CvgsLnz91LT6glAXX1vMbKTnr4EaMr0FoLgXS_E8YGt7m1oIRQxy8MOvKwYs3N_YSBy_K8m19XSn5B1Dj4EVjPl5wQcuawX7g_tnBixcjFSngfwT__xrUS11VUpnJyvGnXpxaJdoQwymaSUEVGHhFu6bmTxkYwsv2eSdHg7olGhx_9sFhs8mONQ8dXfPcKW2eXxXhRregOP60AOPgZK_K5sFMCgMb4-CpZZiqQjs4cnCEJpNJ01zC23duVs2bJuud-NZC0UqY2kp9htzxZ6UUBeLCNCUVWWF7Ra_bCj4NTo1RPKtN8yaeO_5tDw-raU_6TMR3YK9NABtZ_m3r_IhuSLFDZUTUB3gsuGOx3DscT3Bbjo7McrRo70Das7zYTshaqxo2S2c9Duc2F6Zag7KFgZzI1TWlAAyYg5N9rBu2N1A8tz2_ADOHnNSlmXNSCKkNp3drbhbCwQk1Gwc37ZyoQrdBbH5ilBNeApu0Kf_07W76cod0na25QQRldYEU2DxFRqKVMVVTbnjh4EXBzarOJlSuuzr4XA5c6xq0gxeICIa6qjhUxp36F0Pod8TqdfVR1O7EcdOnrisRVdRrEDZ5zy7JrOYls3-56OrxJ5oRcrDvInfjuq4bhpR4zIuzhORon_R6q9uHJ9uZG09erWsOTvZEirwvpTYKyLrLfFsbtqDspP0L_jj41t14Qe4nJLeB_bDaG1mdpDhAL7wQpPxvIlgJysFJZ0Q7rCe0qrp-6e4F4U5QnHtpmiR-GGAXLZcKtJEKlsp0PpQ8c_Bik0TLKLguuag314Wo2xeVWSkgbKLlxO0sDrA7sNcfqPFd7LoZUoRrOEM-tZKjRnLgu242kBwMJGPwkjC1U99ZlvckY5yE6UByOJYcf0T0bJkxHsqMhjJznLPox2T6fs6igcy4lwvY9XOaQXCin549_ZxoycOGf2T8nN57lKHfbgdEhxtsf9bzZ0fnrJ-bryzTyZn0wvou1TiCOA4yCAbJkoyThWJ2cvLdryVOe_nZxSP-XdA5itnAubTfFXM_9cMk6hlhp4YuiUpO4bGylhAhxXYta40EWYOumt6etmRUATHwWE0Fuxe5nfhnJ6QNPf5fUtaf49xP8TkIDQ2UFp37dVUew_NsrlGmPhFjQIlneFfc2EIaWfNNUmInxq-i96u-RL_Mm6JXqcm8m83hdbevnUnx9nlisxOkO8qFkKX5V_EeiH1p9qjMPoKy6DUka2LoaipYh-kA7n1GDATh-Tg3DsUlRc3RxA_76Q39TJib50eAfqwe1b0woHJCoVPemfKp5Z_yZddsT2HxWIHqcmt6vvMX6Qx-7IZuvl8vWZRwv-35Pk6SIPls07SqSk6JkWcE-8cc7M8ReS2oZVyqpoNmUpboUNm2mLT4dC3hqJA3ydkvC9m_-CYLTkn5DLouzXlyL9TW44i4SZAMgucP5yzXA-Z-Vcr_pQDYdhiKueJvuzqulKSg9f9J9b3k1pHmdO041-HiC0aWBTTPeplAqqrcSdNTwRayZI0KXm4HoD5D0WTSqEsulPwTxLBSX8D0sO9Tt8Z31DMpcl5YAptfTY5eauKNYkrzbBChcNiE4sQj9MtmKzV57PZp88E2rdtU1eJR9Kos2c0Ch5kOBygaBAgHNIm8o93xVT5WT0TrKSPVRw9QtRjlv9afSv54M5gKUm411w9EkKJdy7YBmaFaNEfm7KKbxSCkQRJ5g-jEYxBoRn4YhCdeQcnFuAla0g_fooujMuyrWt8LbVRzWCDVgcbbJ2g1ty8625-IAmHuRS53JXTBsghpQDMyAD4ZAc-igP4w8L0imOqtoM0CCSctXl0tOTguyTpjxMHxIECXU_FYPT1Y5HYt347JhstGomnYv0Nxt1Cwwg5XfDrCPGNZeGHML5YwPsvCfsJgd1ypIUT_-HYVQjQAwftPu_pL2hXG43YVxMHI3h0CB3NtCODlDA2DOBgYOlwQYh-Im6EKVC7VekrbNcTp81ltWHe-uyIK2LIyarAAfpG1ovBQKMe_O7Lc-nwM1HtXcvVYmQfCRbsQ6y-XUe_twR6Gg5F_uU8D1K1Yb-s8b053z3Kvbo7QPrn3AGuptjtRPXrWfmtYMijBwHGe7qzhXJ_7dHNOSqDGLnm1UdtP26PX5jD5ScryY6_a5dOXuIVj3MI4QMd2NT-zDfp9uB6Pbvqx_6akLDNCvy9zMdi793D6G-bJ4fifWTsHlzt_m6jgpDm2-q3AnjDp64IZbo_8IMGs_31AVyU3U8GeRq3nr_Du37BIT1L0370YxUXxDPnR4Yvt3amLGQwm09Hu0I-9NDhcjv-0ZnKpBQrJvXS4QEnGE1FE6VFMu5UjXZF2jTj90eT4CpCLOZrFEaUDR9Oxo1kaXcTR3-ZRlg52H6P7AG4asShDa8LFpT7mu8CiwenZx8f83Ydm3018tFyWPKNLbYgyy57-cz89B27iD7Tg4ZWBAFgKqJV_KddoxNJ9c3mB4mNjg5oKt3qoVNDcBYH9t7vRFa-HLSq4QW-gmqtbXCM_zTIcBMSLIExpluTYTdw8jSBlEKap68ZxhCM_nFyxG5-lfkqu4MaLsed7UZjEV6ubIMs97CeBmwQho9iLaRD7aRrQAKfEheCK39gtj3XaC3EaxBMauSELiReTJPHjGJzAhTXh5cQiMpGquGruwdykaeiFVyXJoNTN7VeM2-th2AnnV-qmATCrC-0Ebsm10XsBhpuyuTHbMIRzNBtfyTt9n-WqVuXNz1_faS1_u8H_CgAA__8JLGcX">