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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Crash when using --pass-pipeline="builtin.module(func.func(tosa-to-linalg-named))"
        </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() {
        %arg0 = tensor.empty() : tensor<3x4x5xi32>
        %1110 = arith.constant dense<[3, 0, 1]> : tensor<3xi32>
        %143 = tosa.transpose %arg0, %1110: (tensor<3x4x5xi32>, tensor<3xi32>) -> tensor<3x4x5xi32>
        return 
}
```
The above MLIR program will cause a crash when using the following command:
```
mlir-opt --pass-pipeline="builtin.module(func.func(tosa-to-linalg-named))" test.mlir
```
And the crash backtrace is:
```
mlir-opt: /data/tmp/v0718/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:257: const T& llvm::ArrayRef<T>::operator[](size_t) const [with T = mlir::OpFoldResult; size_t = long unsigned int]: Assertion `Index < Length && "Invalid index!"' 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 --pass-pipeline=builtin.module(func.func(tosa-to-linalg-named)) test.mlir
 #0 0x0000561de31ef8af llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x14f38af)
 #1 0x0000561de31ec924 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fc703d34420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007fc70380100b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007fc7037e0859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007fc7037e0729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007fc7037f1fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x0000561de4133b8f _ZN4llvm9to_vectorIRNS_14iterator_rangeINS_15mapped_iteratorINS_6detail15SafeIntIteratorIjLb0EEEZN4mlir16applyPermutationINS6_12OpFoldResultEEENS_11SmallVectorIT_XsrNS_42CalculateSmallVectorDefaultInlinedElementsISA_EE5valueEEENS_8ArrayRefISA_EENSE_IlEEEUllE_S8_EEEEEENS9_INSt12remove_constINSt16remove_referenceIDTdecl5begincl7declvalIRSA_EEEEE4typeEE4typeEXsrNSB_ISS_EE5valueEEEOSA_ (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x2437b8f)
 #8 0x0000561de5bab068 (anonymous namespace)::TransposeConverter::matchAndRewrite(mlir::tosa::TransposeOp, mlir::PatternRewriter&) const TosaToLinalgNamed.cpp:0:0
 #9 0x0000561de53ad64f mlir::detail::OpOrInterfaceRewritePatternBase<mlir::tosa::TransposeOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x36b164f)
#10 0x0000561de939c848 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)
#11 0x0000561de6366c86 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#12 0x0000561de636843e mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x466c43e)
#13 0x0000561de636b13b mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x466f13b)
#14 0x0000561de636b6ad mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x466f6ad)
#15 0x0000561de5b594cd (anonymous namespace)::TosaToLinalgNamed::runOnOperation() TosaToLinalgNamedPass.cpp:0:0
#16 0x0000561de62c0861 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c4861)
#17 0x0000561de62c0cba 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 0x0000561de62c164c 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 0x0000561de62bfdb5 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c3db5)
#20 0x0000561de62c05e6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c45e6)
#21 0x0000561de62c0cba 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 0x0000561de62c1474 mlir::PassManager::run(mlir::Operation*) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45c5474)
#23 0x0000561de62b2a0b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#24 0x0000561de62b33c4 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 0x0000561de62b3574 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 0x0000561de63bc2de 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 0x0000561de62ab194 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 0x0000561de62b36cc mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45b76cc)
#29 0x0000561de62b3b96 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x45b7b96)
#30 0x0000561de310ad6b main (/data/tmp/v0718/llvm-project/build/bin/mlir-opt+0x140ed6b)
#31 0x00007fc7037e2083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#32 0x0000561de31c2d9e _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/eJzsWttu4zjSfhrmhoghkTpe5MJxHPwGckLsf7GYG4GiKJkzNKklqXQyT7-gJDuS4hy6x9szO9iG245IqljHr6ooEWN4JRm7AOElCK_OSGO3Sl98I7J6UbL61SdnuSpeLlZwS54YtFsGSyWE-sZlBW9vVo-w1qrSZAfwHHhXwJtbZuxsJ7g-jIDI6z_tZdlIOnNfEASe-_UBSgBKIYgv-xu8FKCQ6MqDAF9By6RResZ2tX3ZL8XzfhjgBX4OnsNnjhHAyyEB3_c7AkRzu51RJY0l0sKCScMAXoDwEgO0gJ778kF4BfBySvkI1QB3XClDZlYTaWplGOwZdqT6rR0lgJLjbKLFkV1QCs8dDx9LpplttIT9dXx1VMmbLYMkV09sZCT4jQsBKWkMgwRSTcwWftsyCRvj7Dm2LlW7HZHFe2Z0Jj5XtYXn5zUx5rzmNRNcMoCvAEJ5w4XlcrZTRSMYQMnB6k4lypBzq84Fl0RU55LsWAFQ2n4QfHWgY9vOZdHy2TGfE_qb1YQyyM1njHb2uC6IJQBd210N0PWTF_sJQNdCPO3Oa61-ZdT2lwBdc0lFU7DXgfnVxn1rTV4eWTnbAjxHYewIt84FNwBFsF2L5wDP9wsBXmycBdtBVTNNrNJdwAGUGP47y6wzfkcEhJffuN3CTetm-0jC8_v6WonikZlGWIAvYXdfu0goWcFGtqFcQC5t68xzODeGacuVhCDyVrJgzxDgBbxhsrJbCFDk-AUIreQTEdzdWbBngHyAEEAxLAkXrJh1any4Wc7XS2iafMctJDBvKqhZrbSFVsGttXVrAXQN0HXF7bbJZ1TtXnU3UTE3pmEGoGtIpNu41fQxy_bbry2hv8Gi2dUHO3sz4KUPvWcTXTU7Jq35DjM7Jy3cL5cAXX_g0D_ozVNXhgBhD3rPnud5YeQXDPusTEg5cBnzYro_HjSXthV647QAUPK6SJNvmTJWM7JrbbhoTe5g0aHjHxAdoEvv2Q9KnJDSiXDg2p9wTVMUwDWvJBH_R2QhmAYo6Znohs2M1s5UXvv_QAj1hOKSxh4ucBAgD2aZZsYqzTJtexkEzwG6fk6iLAqcZpvn80o23URtt5qRYmbUzOs5DpA34hePtkk83_NyqAlvgfoz-tRRjlrKAfa8fEQ5GFGOmZeEqUPaL3E-oIxQEqYjyuGUcnyw6JdpxmhMMxrTLP2yiL6PJsZlEY1oxkNfCHyM86SE2S93gXOx1KrsiVGr9Orxbp35Abcd3GWayIqt3Fi4I3XNimw_5QajglnChR-uSclW0q72c7_e5N5yufzlLnBO6kekrsXLA9O7xhKHbKu7dZT5aAiOy-XSbeOvd0SIf3TMbLJ_Gn23zgK0III2glg2mL5iJWmEXUkX78VSsBZJVut5tlyGT0Q0rKOZ7BG9m7pbL7OVWC6X_y_EMlsn2bL9d7dOs9Xd2vpIs516YlmL6-1I1I9oVjLNJGWrq03BqAhzVjkMjN3FExGrx3aD5XIZ2Jea7X9aGS6z1Xo9ZOx-Pc9OE_oowHGejEM_GZo7zEnuRYnbjUglX3aqMdAhnqlbkEo7gNrsy6KFkk9MW9ansB2xdDuXxSP7prl1oPaa3hyMTu6-rx22vS55INYyLfu7dYt9-6y5UYZs1E2LwXcOgo_jTzqSBpMiCsrBDp0X7vPtvV5Jy3RJKOv37Dm4JG0B-Rnz-5T_kdj3bTnAlQRo_nVpT2JtHOV-FLxa2-H8KD2lOKVJkLzlaV7XgtO2ijmxgItBLnT51d3oogXgRa6UgCPSPYFOJ51--tr6XSJPihd_mMjrxI2qOCWiw52v0T1Rlo4j4iVBMjLeKEtHOIpoEn0Wqgfz3LCKCP77PlRFf_lFW3aBbriSx932ihPBqH1d9jY8nQRoIkESYAaP7D_BFdpdjnj9mKPFMaqtVCeyTxBFNMBsZB88kS73cf516Q7TZlQMDpqMd0Q6odcFUVT6OB9JFUylikgxkKpN2NeNEK8G-W6f2hBdMTsIpeGya61-Z3IM0Ot3V78SXShZ8uqkqolIMVJNOM6dYRrQ4tPcOU1kfc3fyHs50FV7DPJm7QMxRwpvx0o0shKiXhL57ya-jbqvHal5QeoDyOtGTgDOmDc2e9-ac0nEi-HmlkhSuShcQIfo7nfUuZ7MHiENksgf2SOeKoHm5LuV8LDvC8de7JYeZPsQYX5IK-PEacxKGqvbjlfpI5l1uKDbuZvoeX8gmkm7kqXah8kJkS-kAc3JSPHJRPF-FNDvVvzA_-fmRdLVrhYAJZ2--ugBKBZklxcEoHhkoNNtcV8_3DrN7XP66FCnjcufsnFfCb4f8elY53lZ5OGJdX4yh8FFHg4dBnnTSA1Z9LeHq5BFIyX4_4OrPwWuEJrCVRAHE373Gjjqa_-ZijKkYRAHI0bxJMYR8XJYM10qvZvTt8Xi25NDY_sCw2yJZkVWWz3qcNaq0ZTdVhrg5Tsl1e3N6nGhpGXP9o1pbwXX97W9Jbyvt4b9EBzMHsUwFEzkw5gGsNaKMmMum7Jszx2_JF4j-b8a9ka8W7ZT-mVParC-6I6EsoIJZtn797gef_l1mYfr-p7okVXcWP3ypv_dtMecD0qJwzFE70-f6i2c6i2MA_he2_ojfe7P0-v71k0PByyUCJET-ltWylEbNNDTX9BPjtv_i7FztNz5y1gFJULJ6ucq9gOWPg-YcXuEc4qK4cGDqQW3c1k8TKDnz5DuvzBIP1wxnFtbzWX1yMp3h0_WrVMPFaPjGTTpDknup8HxcPy7gcmpChRS-um4QEmmiSii9F2d9pUj3ZKuRpx_r3N8ppCTCZrHEaUjQafdFs7T6CSC_jSJ8nTUfUyfVHukiHK4I1ye6jGzx4podJR4eMy8fwSKvATDLBM8p5mxRNtssP9XH4oGXoJHu6CxYBQVKYMd_VOJRqMifQWXNasOjQ1sI9ztQ5Vm7QsNbHBoOH515fYFVtzC_sAScgNxmucoCIgfsTCleVIiL_HKNGJpwcI09bw4jlCEw9lZcYGLFKfkjF34MfKxHwWBd7a98PKSRFGMSMFQkucRSnyapmHs4TIPS5-e8QvkocAJ7Yco9tNZnAYFLqMA51FepD4Fgcd2hIuZ08hM6eqsfZnjIk1DH58JkjNh2vfJEGqdFyEQXp3pi1aBeVMZEHiCG2teCVhuRfsOWntDeAUX03eTTvyW0VmjxcWPv7TSifp0gf4dAAD__1sIH2o">