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

    <tr>
        <th>Summary</th>
        <td>
            [mlir]
        </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/0ee6bad6a6725c2913116a8fa7769b067c219f0
Reproduced with:  
`mlir-opt --convert-async-to-llvm temp.mlir`

temp.mlir:
```mlir   
module {
  func.func @func1(){
    %false = arith.constant false  
    %cst = arith.constant 15 : index 
    %cst_605 = arith.constant dense<false> : vector<6xi1>
 %199 = vector.insertelement %false, %cst_605[%cst : index] : vector<6xi1>
    return 
  }
}
```

I found that this crash is due to the OOB access of `vector.insertelement`. If I replace `%cst = arith.constant 15: index` with `%cst = arith.constant 1: index`, the pass succeeds without crash.

trace:
```console 
Assertion failed: (idx < size()), function operator[], file SmallVector.h, line 294.
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 --convert-async-to-llvm 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 0x00000001053f2568 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 72
1  mlir-opt                 0x00000001053f2a84 PrintStackTraceSignalHandler(void*) + 28
2  mlir-opt 0x00000001053f0b34 llvm::sys::RunSignalHandlers() + 148
3  mlir-opt 0x00000001053f46f0 SignalHandler(int) + 252
4 libsystem_platform.dylib 0x000000019970d4c4 _sigtramp + 56
5 libsystem_pthread.dylib  0x00000001996f5ee0 pthread_kill + 288
6 libsystem_c.dylib        0x0000000199630340 abort + 168
7 libsystem_c.dylib        0x000000019962f754 err + 0
8  mlir-opt 0x000000010544b6d4 llvm::SmallVectorTemplateCommon<mlir::Attribute, void>::operator[](unsigned long) + 88
9  mlir-opt 0x0000000107b38cd0 mlir::vector::InsertElementOp::fold(llvm::ArrayRef<mlir::Attribute>) + 332
10 mlir-opt                 0x0000000107bde9f0 mlir::LogicalResult mlir::Op<mlir::vector::InsertElementOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::VectorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::AtLeastNOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::InferTypeOpInterface::Trait>::foldSingleResultHook<mlir::vector::InsertElementOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 68
11 mlir-opt                 0x0000000107bde998 mlir::Op<mlir::vector::InsertElementOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::VectorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::AtLeastNOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::InferTypeOpInterface::Trait>::getFoldHookFn()::'lambda'(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&)::operator()(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) const + 60
12 mlir-opt                 0x0000000107bde948 mlir::LogicalResult llvm::detail::UniqueFunctionBase<mlir::LogicalResult, mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&>::CallImpl<mlir::Op<mlir::vector::InsertElementOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::VectorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::AtLeastNOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::InferTypeOpInterface::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>&) + 124
13 mlir-opt 0x00000001095c6764 llvm::unique_function<mlir::LogicalResult (mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) const>::operator()(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) const + 92
14 mlir-opt 0x00000001095c005c mlir::RegisteredOperationName::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) const + 72
15 mlir-opt                 0x00000001095bff50 mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 104
16 mlir-opt 0x00000001093c50bc mlir::OpBuilder::tryFold(mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&) + 388
17 mlir-opt 0x00000001092b5f48 (anonymous namespace)::OperationLegalizer::legalizeWithFold(mlir::Operation*, mlir::ConversionPatternRewriter&) + 224
18 mlir-opt 0x00000001092b59fc (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 824
19 mlir-opt 0x00000001092b5098 (anonymous namespace)::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) + 64
20 mlir-opt                 0x0000000109299554 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 568
21 mlir-opt 0x0000000109299284 mlir::applyPartialConversion(llvm::ArrayRef<mlir::Operation*>, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) + 124
22 mlir-opt                 0x0000000109299778 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) + 72
23 mlir-opt 0x0000000107ec7470 (anonymous namespace)::ConvertAsyncToLLVMPass::runOnOperation() + 452
24 mlir-opt 0x0000000109158c58 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 512
25 mlir-opt 0x0000000109159328 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 364
26 mlir-opt                 0x000000010915b56c mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) + 108
27 mlir-opt                 0x000000010915b344 mlir::PassManager::run(mlir::Operation*) + 864
28 mlir-opt 0x000000010914061c performActions(llvm::raw_ostream&, bool, bool, llvm::SourceMgr&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 560
29 mlir-opt 0x00000001091401b0 processBuffer(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, bool, bool, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) + 496
30 mlir-opt 0x000000010913ff78 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::operator()(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const + 204
31 mlir-opt                 0x000000010913fe8c 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&) + 80
32 mlir-opt                 0x000000010934b440 llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const + 96
33 mlir-opt                 0x000000010934af24 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) + 128
34 mlir-opt 0x000000010913d8cc 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) + 320
35 mlir-opt                 0x000000010913dad4 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::PassPipelineCLParser const&, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool, bool) + 296
36 mlir-opt                 0x000000010913e698 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 2912
37 mlir-opt                 0x0000000104c08f50 main + 148
38 dyld                     0x0000000123001088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW9tP47ga_2vCizXIcS5NHngoBbRIsCDgzNHZl8pJvrQ-49g5tsNM968_snMhLW0JuztaZjUI0Uvsz7_vfkmgWrOVADjzonMvujihjVlLdbaQnMtaKtNofJLJYnN2e3P9gLKGcYOoQbmsKmbQ2phae8HcI1ceuVoxs26y01xWHrni_Ll_-VQr-V_IjUeu2n0eucIAcUaLmMYzEuUk9QPfj2lS0tksTjMcz3LipyX28IWH5w9QK1k0ORToKzNrL5gj1F7xYlxxpj7J2qBPn3IpnkGZT1RvRP7JyE_2dGSgqk_tKi_u6LV_X74P5gO19td-i_ozKlk0HJA3O28_I1Q2Ij-1f5AXYvvqeyTxSDpagpBHopJyDcgLLhBVzKxPcym0ocKg9gLaWpxrs2-pHyHLLxMFfHu1YRnjaN-mAoQGL1i4c7zg0pF4htxI5QWL-BvzveCyI-aRyE9TR6VdccqEBmWAQwXCDHx4ZDE61ZpLj7lD50UXx85BCCkwjRIDF97sopP78KZXwFhP16iUjSiQWVODzJpplCuq14hpVDSAjERmDeju7hzRPAetkSyRF-N9zHgxPkXXJbpGCmpOc7ALj8n-hbkYO9t7Y8N4vRWYRVZTrZFu8hyg0I6IbEzLw-mWPSqaw2tbtMSltT_39VxbdpgUqKSMQ2EP9EjCim_ICxZIs9-hs0X7u3Cm6pbLGhS1enF-7i4xDuixopx_bkW1tt9yJgCRNOyg3d9czh8vkW4y6-8UZc3Kyk4qYwX_bv9nWjegPXKFqCgQEzlvCnBSanWa0fyLk0N3_KOh-RdUNFU9CAafeji9V3KlaIWoWjVWsRYEekck2CE-aEVvqkxyJGgF2soVhG4UoI1s0Jo-A3LstIvY76AQE_aaQvfzp1-QVEiDcdyAeGZKCudAz1RZq7m5-Xy7fPzP7fndzfVvlw9Lu8ValZGolkw4edrQmL5wil5Ywt9w--PjKChJFCcOi10bzPVGt2_uFRPGsfXkjIkkL4sU_bqU2iiglUdiq2om7HHII-doRtoj_dGRuz87EGgSop3zHtlKUP4LFQUH5ZHkWbLCI_P-EJK0h5CDfOEsCPfx9dCILdq6tXFH1Q87ssFBsmFcYrQLbsQ9iTr2Q8RZpjfaQLWsOTWlVNVpseEsG1FM0xkuwjxES81WRtGqdkSiuKURjWmYtQJadCS2aMRlBIBRt2L5hXHeCaljJx7RyXsKu5pI0zjAQYgRzaxLOnnEHYHZRAKknEUhAqXc9i70JgeEGYZZXIx1NAogT1BZocFCVpUUXrDok2swnxujWNYYl0WcWQSX7ZXduJQ0wlUkBeJSrHoN9UJJ98OaZUGSFxi9HNgnIfv-2qWAyzYF3NXtl6XkxZZ_zJWimwcoD-AOLnssQdA7C57kLLOsgLQcg7uRK5ZT_gC64Wb0vcW2mMYDWWzte1KUmfbDb6DkA6yYFPrIqjsB7fHH1zxtaii6hWNoncI3NQyKvK5q_gasx8YlaKmOIZubG6Da_HpnDUMU2gsWpJl6yl19LZ6pYtSmhK1lCykKZjMh5XzzWEPecGpoxqG93NI4gop_pRs93meR7Nl1C5VUm8uyhNxYNAZU2eX1vadcixKcIA8s7hm39vrIxIp3evtFyi-TrcUabzLmzPock8IF5wV6lxMs9ju_U8x41119JflgO5cu57QO1Aco35_uP2ny009--skEP1mBsXZn3eNKdKWwu-CRGadVVlCPzD6IN-xkwK5u_xDQkOtpWnftSgKfTHfXMDmY7l5AFWAo4-37fwn2vwauum7lnLr29QCJXfP7e2TUG9yCcr5n_c8I9TNC_fgRqg0Dbf0wdHMfwfv65o-EXXAK9jYGaZTHs3jcrzQu0Cz7ucjhKIM-nAp-iGyR9s1ReEghGEf5yIJshNMGFBQD_l9pBS9Vr6t0Pxyfw8QkmpQV0ygrywjv9ZyB0_f2o3-B_-Def-L96gryCGf5FuzzhvECuo9Gba5a5FP0cwzkZ8ob2EYX9G2_P9uPjmRRGSbWU6mQYlPJRrezu9pNv9IdPDewom5u137Pu4__Zmb9JhNb-ecZlGZS3FNjQIkH-KqYATVCToa4lBxEnpb5n0X-FyJOBsTpQcQ4nS7r9kzTI-4GsluAj8M6nGW6LrLDS6ZNYVKSplEU_kn8w2X9tq9ugd511z7_LJXbZXPrdsK5YHQlpDYs73uFYQAV9Q008Q-oKk1JEo7kR-uab-6pMozyF6n_IRb2qe-JqhWYV1q7UvJ36JXaqfgRTJfQ2tUvAC5AaHgEcxjA6-W3tL4WpTy6ZZg2Xo6MZ6gbyLSmxop0NkumiPR9Dvnjia5PfGR_xTWDfBbO8Ft-1rnXXG9E_iRvbj7f3lPdTftVI-7ECMsw6g_7OT05UFz4UZJHYy2NW8y7-kne1faYeUHroR9TzbbWHI63ytxRRhaUbzTTt1TQlQ1dC5RJ6TqbYZI9utUQ-T0L0SEW0oC8n4V7VgNnYjcj2KUDsqNB9Q_xNN5kj7oW2ih3Q84WqPNjC0alT4_9nioQxlplb-eD0QVDtI-n-asfZVGc75ze8zMIjWoNeqLPvhJKX0H1wXg2GVkQhm8gO4KpS9eDQA4UGH6IYz9HNahSqmqev05ar28I9kruX0eFm2xUDrer11Z0e3P9sJDCwDfzKtDsJLlJjdauxaZd3tnG1ifCbjRFDtQsfoj9DKNayRy0Pm_K0t36OyYDbYr20nLpb3WMtVFesHjZ2o4Hepr7NhZQ0oabZQEcbMV-aHMXYV_L_63X7yPprRqEQ27aDk1tXuWdJ3fv8t6hGSwzTLsboQE-oJSgLLdS6S1n6q42t5SJD6ycv0fY7zWJzj1akh4Jl_jA2OBjiHJXxeMOm_S9aTDtPpE1LEjyCYPn6Qr8oFIapkE55Tyj-ZdluT3J-ulS39elLq1U3fMJH0WCrz3JlQldggwmtjlBmIUh_ke6yg8YAYdMGkzVHi3JuLTUNWdmLor7nQLoY7D-j7Ctoyv2l61-_yBccKiNDYokz39WSN8znLdtJenj48Qpvh8UtAh_OM1sS7nvtxc391RpUFtTpe8j7m2xkyGwTe3mA4jTwy1DN4vI17SdOuzedTCKidUDlNP563H205pgWnMf5jhxd3koEzsPpyao2PDi1eZtAiSwVJIEaUO7xzkjPx4_JD48Fn5SnAVFGqT0BM78eIYTP_RJcLI-Izj0fR-TuMQlToOARmVZBkUKJMBlFuITdkYwIT7xCQ4wweQU4jDxA5LOyhmmeUm8EENFGT-1IjyVanXiHts-i9IwCk84zYBr9_8ihAj4itxFjxAvujhRZ-4J6axZaS_EnGmjX6gYZrj7RxOng-jipFH87I8_Qu7g_D8AAP__n-t6rw">