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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] One-shot-bufferize Pass triggers Assertion Failure in memref::DimOp::fold
        </td>
    </tr>

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

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

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

<pre>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/159cac50
Reproduced with: 
`mlir-opt --one-shot-bufferize temp.mlir`

temp.mlir:
``` 
func.func @func(%arg0: tensor<?x?x?xf32>, %arg1: index) -> index {
 %c1 = arith.constant 1 : index
  %extracted_slice = tensor.extract_slice %arg0[0, 0, 0] [1, %arg1, 1] [1, 1, 1] : tensor<?x?x?xf32> to tensor<1x?xf32>
  %dim = tensor.dim %extracted_slice, %c1 : tensor<1x?xf32>
  return %dim : index

```
 
trace:
```console  
Assertion failed: (subview.isDynamicSize(sourceIndex) && "expected dynamic subview size"), function fold, file MemRefOps.cpp, line 1109.
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 --one-shot-bufferize 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 0x0000000100be8818 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000100be7880 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x0000000100be8eb0 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                 0x0000000102700680 mlir::memref::DimOp::fold(mlir::memref::DimOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) (.cold.14) + 0
8  mlir-opt                 0x0000000101525914 mlir::memref::DimOp::fold(mlir::memref::DimOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) + 1388
9  mlir-opt                 0x000000010150ac00 mlir::LogicalResult mlir::Op<mlir::memref::DimOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::IndexType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::NOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::OpAsmOpInterface::Trait, mlir::OpTrait::MemRefsNormalizable, mlir::ConditionallySpeculatable::Trait, mlir::MemoryEffectOpInterface::Trait, mlir::ShapedDimOpInterface::Trait, mlir::InferTypeOpInterface::Trait>::foldSingleResultHook<mlir::memref::DimOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 176
10 mlir-opt                 0x0000000101509d94 mlir::RegisteredOperationName::Model<mlir::memref::DimOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 48
11 mlir-opt                 0x0000000102308174 mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 72
12 mlir-opt 0x0000000102248bc4 mlir::OperationFolder::tryToFold(mlir::OpBuilder&, mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&, llvm::function_ref<void (mlir::Operation*)>) + 556
13 mlir-opt 0x0000000102248850 mlir::OperationFolder::tryToFold(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, llvm::function_ref<void (mlir::Operation*)>, bool*) + 508
14 mlir-opt 0x000000010224d3c4 mlir::applyPatternsAndFoldGreedily(llvm::MutableArrayRef<mlir::Region>, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig) + 3592
15 mlir-opt                 0x00000001022139a8 (anonymous namespace)::Canonicalizer::runOnOperation() + 124
16 mlir-opt 0x00000001021fe6c4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
17 mlir-opt                 0x00000001021febf4 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
18 mlir-opt                 0x0000000100e172fc (anonymous namespace)::OneShotBufferizePass::runOnOperation() + 832
19 mlir-opt 0x00000001021fe6c4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
20 mlir-opt 0x00000001021febf4 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
21 mlir-opt                 0x0000000102200570 mlir::PassManager::run(mlir::Operation*) + 1148
22 mlir-opt 0x00000001021f9934 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                 0x00000001021f9504 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                 0x00000001022649a0 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 0x00000001021f792c 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                 0x00000001021f7e20 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
27 mlir-opt 0x0000000100a8b41c main + 108
28 dyld 0x00000001058d1088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl9v2zgS_zTKCxGDoiRbesiD4yTbAHEdxEWB2xeDokY2rxSpI6k07qc_kJJsObETt9g79A4b7Fo2NRzOb_6PVGoMX0uAqyC5DpKbC9rYjdJXMxBgLJewrLjdXOSq2F7NH-6fUN5wYRG1iKmq4hZtrK1NEE0DcheQuzW3myYfMVUF5E6I5_5yWWv1T2A2IHftvoDchUnGKEtwgG8CPH2CWquiYVCg79xugmiK2hvBGFeC60tVW3R5qSRcmo2yl3lTlqD5D0AWqnrkSIJxx6v93K9H0x2r9r-OddlINnIfKIixuwYkDUhC9Rq78y1Io3QQzYLo7qX_v4xIEN0GZIZaytBRclnAS0AydBlEt-0vFEyu21McIQtREN0gqrndjJiSxlJpkVvsN7ekjhZerKbMQrEygjPwG1tRRt2t_kYnanKNnTzdR3KDguQ6HEpIZigcrg9W3oeJrNrfDof49-IWvBqK6H--AdFJw8LDE4-x1GAbLfecDxQUTG7QK1v2Sm5trimDt_Z2GlcCUEc1NQa05UqiknIBhXc2kpomf-bwfcTNzVbSirMl_wFuXTWawX1v44CMAzJGASHwUoPDiIqWHnUckPEbSUAyB9x5VnuaEoVf4ALQHKonKBe1GbG6dquCS0BhiLNRK-Xjw-10eet4ujijKG_WSEOttHVm-em448Y0YAJyh6gsEJdMNAUguwHENDUblFP2zauvO35pKfuGiqaqd_rEowBnj1qtNa0Q1eumAmmdEOjcCH3F2Ye6aiwy2ypXAklagXGmAGkaDWirGrShz4A8lpaI_wCNuHT3NHqcfvmElEYGrIcC8plrJZ1c6JlqFIzxw8PX-Wr5j_n14uH-z9unldviUoBVqFZcemW6fJTtYaI9HvyC278Q4xzSNEy9LI42mpqtab88ai6th_XFOyBJ90Safl8pYzXQynvODHFpWz-6Rsm4PTIcHPn671CESZriYyI8NXLJ15KKT1QWArTxuaw9JQxJeww5jQxyjA4YBCQdCBrFccsiQkjw3GyNhWpVC2pLpatRsRU8H7CktIjDmMVoZfjaalrVB3DjAyZ2o4EWx3iQDACjjmD1jQvh2ZA0bfkkQz7sCAc2jqMYI5q7qPGqGHdbxx9vjSZJjEBrv7HLM5PzDEUmGI9TjPryE00rqDSU7fcbXi3q9mubEtJ36P4ACZqzaUFr65Pm3vhTren2yVHP9gym1mqeNxZcTnWVyhkwHTElilEY9_bs4KTnwQkTkmRh_NvAuUZh1PtAdi4ETBkeWuRBrTmj4glMI-xg3WGZvYeUzA6ov2jKbfvjT9DqCdZcSfMO1UJCe-j7NF-2NRQd4VAgX4jcTa8Rv1LV4gOplg1jYIzS7wn2eVGDprIwQTQjzbnsF_W9fKaaU1cLXpFNTeVuW9BlV5ijabv1NL-2MJrPSldU8B80F3BIPVOy4K6gUiG2yxpYI6j1ZKf4z6FSentblsDsOfIsN7SGwlv7Y-J7WYJ29jhB3KvRxcaSy7XorP9JqW8feJrz93SoJtDUAQ_I1HcMPxE6B-TLigrxFZhV2ht3uGtR3ymx87tbX7O6mJv01QqfG3JZkQ2zhosNY0FDsYPymVadtuaqAPGxQna69Pr7jdQTdwkpDM8rERFOw0mMjsk_zKX_ZRSTrlUIydFWgZA4zdlRqR1H6Bat3n5Rd6-LwaK-brgnahuhc0z3HoqvVDTQiz_c1HfcK-8-s2fFC_SOq2SDwpLsWrLopALSBP-qAk7B_CWJ_wIGuVKiXWjR496J41Poi-jA_LSuxfaRWgtamqksHOY_NEDBxfbAe-eNz9FHnbitmZ1I--U7rX6AfILvmlvozliCRX6AfuND_tRtRz1TsuTrXfeaZL1bJ-cFJwmjjKZOg1Qqua1UY9rppPb9fdZVInfTNRFuKOna_UYu5EDX-yacdB10OD6u2rCE8YFqC7CUi12FVIv6kRqz65y60w6M7Ag63zrtdYPkIanYGm7mVNK1C8veIWaokf65UDGcVmLSe8fkPC2GJeTlz0N65DW4afiV_zrSnaQfJJBfwDjc5I66l8ZqP-Iq_YbrIcEga_eyP1IN0t7LUvXuuguyiHTdd5ieN_VBOCEl-8gZFxKWG2Wv-7Hb-8L7PplGfVhk__M-SfBJCH_74GkfJGd2KwTjZIJfnd7jOWr3VwWnexLRd0nkRH8RllkWxagGXSpdTX1NMx88UOl12V-NLVrS1Spsv5gN1VCsans4cS79k735WgfR7YmqMn-4f5opaeHFflS0T42Wb6Jh6ECHhbi_9tW4KxkkOjffZgmOT864vyL5W102kv-rgTe6bGesNvscN0IBJW2EXRUgwPWrpzZ3g_5Q069tnu0mAUaFyCn7tirlAZC54HpR2znl8gPv-T0Q_pW-tKe44VQAs-3cpbcn4uW8a1dmAhKvcDuZCiXXv48G3_hIO8_sYig-M9GN44wOE52pBbdTWTxqxcCYXvrfJDL-LyL5XYrjuXHcz2kkOVVIJhlh6O-M8B_MCO3T-LC3xPjcKjUBgk9apmuE2Ia2Lc_rBwJWc7l2E-TZuPoBrB9uyeT4axCa5nHIUEW5bHfsNqSo2IpiSJykRYjTFBlLu1cLSa-HVy8fL4qrqMiijF7AVTieRFmYZji92FwlOWEsIinL05QVYZIVYUyTSRmPy5DhCF_wK4JJhMNwgkOSknQ0SSgDkmVJmSZZniZBjKGiXIycekZKry_8W76rMcZZeCFoDsL4F_uESPiO_M2AkCC5udBX_p1a3qxNEGPBjTV7LpZb4f9FgNdvcoMWb1_qOVdDVvP1GrRB-1eqd5SLRgPiEr3zkuCi0eLq199heoD_DgAA__9b_uMG">