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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]converting vector to scf triggers LLVM ERROR 'Building op `tensor.extract` but it isn't registered in this MLIRContext'
        </td>
    </tr>

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

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

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

<pre>
    Test on [LLVM 16](https://github.com/llvm/llvm-project/tree/release/16.x)

steps to reproduce:
```
mlir-opt test.mlir -convert-vector-to-scf
```
test case:
```
#map = affine_map<() -> (0)>
module {
  func.func @vector_transfer_ops_0d_tensor(%arg0: tensor<f32>) -> vector<1xf32> {
 %0 = llvm.mlir.constant(0.000000e+00 : f32) : f32
    %1 = vector.transfer_read %arg0[], %0 {permutation_map = #map} : tensor<f32>, vector<1xf32>
    return %1 : vector<1xf32>
  }
}
```
crash trace:
```
LLVM ERROR: Building op `tensor.extract` but it isn't registered in this MLIRContext: the dialect may not be loaded or this operation isn't registered by the dialect. See also https://mlir.llvm.org/getting_started/Faq/#registered-loaded-dependent-whats-up-with-dialects-management
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/ty/llvm16/llvm/mlir/build/bin/mlir-opt -convert-vector-to-scf test.mlir
 #0 0x0000000000481d7d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/ty/llvm16/llvm/lib/Support/Unix/Signals.inc:567:11
 #1 0x000000000048220b PrintStackTraceSignalHandler(void*) /home/ty/llvm16/llvm/lib/Support/Unix/Signals.inc:641:1
 #2 0x00000000004805a6 llvm::sys::RunSignalHandlers() /home/ty/llvm16/llvm/lib/Support/Signals.cpp:104:5
 #3 0x0000000000482935 SignalHandler(int) /home/ty/llvm16/llvm/lib/Support/Unix/Signals.inc:412:1
 #4 0x00007fbf38fc1980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007fbf37eb1e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007fbf37eb37f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00000000004c4654 llvm::report_fatal_error(llvm::Twine const&, bool) /home/ty/llvm16/llvm/lib/Support/ErrorHandling.cpp:125:5
 #8 0x0000000000aabf82 mlir::RegisteredOperationName mlir::OpBuilder::getCheckRegisteredInfo<mlir::tensor::ExtractOp>(mlir::MLIRContext*) /home/ty/llvm16/mlir/include/mlir/IR/Builders.h:453:12
 #9 0x0000000002be0379 mlir::tensor::ExtractOp mlir::OpBuilder::create<mlir::tensor::ExtractOp, mlir::detail::TypedValue<mlir::ShapedType>, mlir::OperandRange>(mlir::Location, mlir::detail::TypedValue<mlir::ShapedType>&&, mlir::OperandRange&&) /home/ty/llvm16/mlir/include/mlir/IR/Builders.h:461:26
#10 0x0000000002bdfe8e TransferOpReduceRank::matchAndRewrite(mlir::vector::TransferReadOp, mlir::PatternRewriter&) const /home/ty/llvm16/mlir/lib/Dialect/Vector/Transforms/VectorTransferPermutationMapRewritePatterns.cpp:302:28
#11 0x000000000111b7cb mlir::detail::OpOrInterfaceRewritePatternBase<mlir::vector::TransferReadOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const /home/ty/llvm16/mlir/include/mlir/IR/PatternMatch.h:330:12
#12 0x0000000004a54ee0 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&)>) /home/ty/llvm16/mlir/lib/Rewrite/PatternApplicator.cpp:200:25
#13 0x0000000003b4fe83 (anonymous namespace)::GreedyPatternRewriteDriver::simplify(llvm::MutableArrayRef<mlir::Region>) /home/ty/llvm16/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:292:19
#14 0x0000000003b4f31e mlir::applyPatternsAndFoldGreedily(llvm::MutableArrayRef<mlir::Region>, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig) /home/ty/llvm16/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:452:8
#15 0x000000000063d935 mlir::applyPatternsAndFoldGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig) /home/ty/llvm16/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h:86:10
#16 0x000000000323b70c (anonymous namespace)::ConvertVectorToSCFPass::runOnOperation() /home/ty/llvm16/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp:1307:11
#17 0x0000000003a697a7 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/ty/llvm16/mlir/lib/Pass/Pass.cpp:471:21
#18 0x0000000003a69dbd mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/ty/llvm16/mlir/lib/Pass/Pass.cpp:534:16
#19 0x0000000003a6b6fc mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/ty/llvm16/mlir/lib/Pass/Pass.cpp:839:10
#20 0x0000000003a6b621 mlir::PassManager::run(mlir::Operation*) /home/ty/llvm16/mlir/lib/Pass/Pass.cpp:819:60
#21 0x0000000003a61f82 performActions(llvm::raw_ostream&, bool, bool, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:91:17
#22 0x0000000003a61bdf processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, bool, bool, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:139:12
#23 0x0000000003a61998 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:181:12
#24 0x0000000003a6188d 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>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/ty/llvm16/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#25 0x0000000003b93ae9 llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/ty/llvm16/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#26 0x0000000003b930c5 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) /home/ty/llvm16/mlir/lib/Support/ToolUtilities.cpp:28:12
#27 0x0000000003a608c3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:186:10
#28 0x0000000003a60a5f mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::PassPipelineCLParser const&, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool, bool) /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:209:10
#29 0x0000000003a616a1 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) /home/ty/llvm16/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:306:14
#30 0x00000000004116d9 main /home/ty/llvm16/mlir/tools/mlir-opt/mlir-opt.cpp:271:7
#31 0x00007fbf37e94c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#32 0x00000000004113ba _start (/home/ty/llvm16/llvm/mlir/build/bin/mlir-opt+0x4113ba)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWktz27oV_jXwBiMNCVB8LLyQZatNx649sm8Wd6MByUMJDQXyAmBs9dd3AJLiw1akOL5N2rmZjEWK4MF3vvMEBKYU3wiASzS7QrPrC1bpbSEvr4Dlv0O53cuLuEj3l0-gNC4ERrOr29vPd9j10ewakXCrdakQnSOyRGS54XpbxdOk2CGyzPOv7ceklMW_INGILLUEQGQpIQemzJXrT18QiZBzjZx5_VdpKBXWBZZQyiKtEjAz1AN8p_lvb3c5l5Oi1FiD0lNzhydJIb6C1JOvkOhCTnQxUUn25tvmJZwYGEfEI0J3rMSIXmOWZVzAesdKRBeIhIhEeILoDUYkdAx-etNAKtIqB4yCq_oe46wSydT8wchzalRrLZlQGch1Uaq1k641CFVIK3fG5MZBdI6b7-gio8SIb2esRSC6cF_qJ73JEJk5Fq-h3RIyTQqhNBPaAJ069h8gcuWYcXNsJJDocNlAxkaQawXVs00PgCWwFLcorc8gsmjmDa5KkLtKM80LsW6pq1lEwTV-U6vFa4U6GBJ0JUWLZn58KAquG5sdLoa2TCRTW6wlO-5N1rNvVqv7lZnqquJ5ysUGFyVGvlPjnsKLEaGR7-C40phrzJVAJNBYwoYrDRJSzAXWW67w3e2n1aIQGl60VX0LOOUsh0TjHdtjUWgcA84LlkKKC1m_VJQgLYFvSY73fSlT_AiAWa4KPAxEa3jrAoXcmMAErbnYrJVmUkOKyHLJ_rBDaSd8UgOZpFCCSEHoyfOWaTWpyskz19tJM6ma7JhgG9iB0DVvD7c388cbrKp4xzVmOK42JnQLqU0Qf3eK4EpVoBBZYiYMl0lepWDVrm0Ys-SLteO0nv5Rs-QLTqtdeTCsM0VO9CCLjWQ7zOSmMmANCIzIclvsTOLR-2Zq1--gGOIQWcbG9uaTi-ZLm2Xezi1d8jkEIXWw8-Ic_nmhmwapjUkDkc7VXtUXD5ILbRV4sp5Jwm6QZM_rQmkJbIeIbwKFmyiOTumQ8xiR5WNVGgsgsvxN8BfzBd8IlqspFwmi85kfIDp33Q6yO4JMiBPjEb5axt-ZSHMw2eprwVNE5h8FyvdcA6rDREaYnBnz36JxVYkBNNVk6O8E1aJJSuNKruMZojo0dMxQRGd4TMkH2shzyZAOrwEQZHFGwyxxo9DB67UEpQsJa6mx1buR_hL6a9-b5FxUL5ONqOoHpd6aFD5VxdQxZeDFJVFdwQ7TzPrTBBC7EAZYMq4A92Jjk_M4mSw-_-P59_hwS6YkQGSprB6ILKdTc7dXKZQmoqtaTbVXXy0aUZlbK3pqvdLY3-mQ-CMkNMhczOLCanoeEp3WbNi37CThaJJgaNbE82dez8nqTLbOmGb5GqS0Zbp7_PTMBWBbZJsojYsif4cL3BjR1o-42LQuSGZDFwwHWBmLs5Bgm3rqODgk8_u2ivyT7aA34r60dQ2a2w3oxRaSL92Ln0RWILro3mgLtrm-qavffWkrd9gN6le6b-eDJsM2ab374tMKkWWDTU23xv1n1FLQaR_1tScxODSI8Amkx3VPJDANZ-hKFj0hKWjG88b2-xLSzyyvhlIet6yE1DxsGpw-BJBMpCsmNjDm8LZIrMV-dD6_8cMjszbPP8RCvgkl4h-6ZdcZWijNIAT81PSO9-UKTDe_YuJLDWzHdLKdi3QFz5JrGNDRtnpW8UbCClg6NsgD0xqkaETIRjkbkKdUrEPwuu5rEFl-rqcky3q-Qu7U4dsWwkPX4d6xspm1wdBWDuqYxE3CjpdBcXVdNw6S-IiR78t7-UlokBlLYCj_yq5VFmdxRG9OU3xIEjZmP4jUt_2mEXhn0FjfodTpRbfhaFDsPTbzAJzXkOZlmfOEHdT-OP0WvaRvlmt2ESMhQ3RhUjoeiG4E9BJ_1AT7USGmWfphIf10seEJy1egqlyfJ_dkzNcBcaBy-YrzxsGJY4xHZp3xBr0Rjb0MQmpAMVGI_a6oFBZsB6q0TW5Uw_ybBEj3Q1NcS_61TdCK78qcZ_tBvb2rNItzmEvJ9qsRJaaKFeJ7VB0E-m-a5-bzOK5W_cg2ZlGnvjdWn7r9qsvKMm8FqrlIl0We2ll4_i7t-q68lMW_QQwTxSPoQUvSja51a0YvCpHxzZ9MljczZPVy4WzQw_g0NW302VydE93_DUpepbkBO99gxSS_0Lfri44Tf-A_hMaBk5wKn0W9GG3KU_G4WD4w1SyIZCXuRY-gb66GBkaupSr71rIne3jX9qfU6S8jjSaDbpoyPwpYcLTSPRX3pQE9T1l5yOiyEqNsptQrEx83_lywfK-4urO7FLLryBe4EnazMz21kB4QUk9vP1qPDmzb01M6HCudxul3K_3AS8i5GJcwM_Sgy1uN3Y-xMKyKSn0SSku7X2I6oVdlsz-gnrl-0GB_YBKENmuINtjOWQwcI3pGzQrc7fWX0Yjo2M-SEb5W4wOtTClQZ2aOV7S9G3tIo2GME-cVduKewP4N1O8H5hpgvS1u4o6AuWZRWYI0yWxumw91YmOqda32U-m0KeFbJiFdl1oiuugkPBaVTOBuIxG9OZKVxyvKH--JhmHUdlpD6OdWwqKwxa_dGURkeZdzeV_qO8ZFQ3RkN7OCjmcy5jlOM1zKIgGlrqosA3mC5gOtleB_VPCK1jvYFXLfiuqNTyFjVa7XKeRgl7xH3jGLhjdYOf3559imG9Gs0eptCrl_1a8_2U2tB4vm_OA4y4xuHcjdQoXQsR2jKOx7bifil7Hnz7HP93pRE4O1SES8tVNf1j-JNL-PRYiEP4O4sfm-a4_hPE-zO5N9T_PGnhaG_b5iaLL32PiXIPKwV5GwPI9Z8mWdiQHsvyLqIyPqxnBYiM3P4ut1IJ3YKe-WWs0X8-snRJaPT7fLhnqW293adt94FEWz4eI8ogyi_4No-Z_Miu8zqR-OTOqPTeok_T0EVeZcz0X6MGqufu308EvY7-SId7bM3Q9dphb-pnnONYd2UULGBh5vIzhhQv_qsT6uInxo2zLazSLj7RCHzbJf3HhDQ7TbGYvbByYVyCNr1I-0yJ9hGeKM9yDG-yeuz9yjlmn2h5Itq3eCRqvwRy252KwgO5-Uj1SOOtbtvINy40M3ruunEd4xLk7Nql_P1162TNotv24tfzgt05xMiLwkDPB6nfM4qU9ZrduJzzmlkKiqPSxRX9qHVo49skA9rzuzYKYnY1VpzHA9cXMG5N2nnOyhkFpidy6zPSh3kV7SNKIRu4BL1w_CwIlcn15sLxlhzPHBiTyXZe4sc2fMyTzqURalfhLMLvglcQh1qEtd4vgOnVLPjRmdxUkMTuKxBHkO7BjPD-fWLuxBsEvfpYF_kbMYcmVPqRIi4Bnbh4gQNLu-kJf2CFlcbRTynJwrrTopmuvcHm-9u_20QrPr5gwXF5vmNCHWBbbHuCTfbEAq3J0DxIgEH3wOkAQXlcwv338qzvLxnwAAAP__xBKDTg">