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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] `resolve-shaped-type-result-dims` pass failed with assertion failure "incorrect implementation of ReifyRankedShapedTypeOpInterface"
        </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  b4c54b20
Reproduced with:  
`mlir-opt --resolve-shaped-type-result-dims temp.mlir`

temp.mlir:
``` milr 

  func.func @func1(%arg0: tensor<22x22xi32>, %arg1: index, %arg2: tensor<?xi64>) {
    %true = arith.constant true
    %false = arith.constant false 
    %c0 = arith.constant 0 : index
    %c7 = arith.constant 7 : index
    %c8 = arith.constant 8 : index  
    %alloc_9 = memref.alloc() : memref<22x6xi1> 
    %c1_i16 = arith.constant 1 : i16
    %generated = tensor.generate %c7 {
    ^bb0(%arg3: index, %arg4: index):
      tensor.yield %c1_i16 : i16
    } : tensor<?x22xi16>
    %51 = vector.broadcast %true : i1 to vector<22xi1>
    %collapsed_25 = tensor.collapse_shape %generated [[0, 1]] : tensor<?x22xi16> into tensor<?xi16>
    %58 = index.casts %false : i1 to index
    %79 = index.shl %58, %c7
    %dim_30 = tensor.dim %collapsed_25, %c0 : tensor<?xi16> 
    %98 = vector.create_mask %c8, %c7 : vector<6x6xi1> 
    scf.index_switch %c7
    case 1 {
      %143 = scf.while (%arg3 = %98) : (vector<6x6xi1>) -> vector<6x6xi1> {
 affine.vector_store %51, %alloc_9[%dim_30, %79] : memref<22x6xi1>, vector<22xi1> 
        scf.condition(%false) %98 : vector<6x6xi1>
 } do {
      ^bb0(%arg3: vector<6x6xi1>):
        scf.yield %98 : vector<6x6xi1>
      }
      scf.yield
    }
    default {
 } 
    return 
  }
```
 
trace:
```console
Assertion failed: (shapedType.isDynamicDim(dim) == reifiedReturnShapes[resultIdx][dim].is<Value>() && "incorrect implementation of ReifyRankedShapedTypeOpInterface"), function reifyResultShapes, file InferTypeOpInterface.cpp, line 57.
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 --resolve-shaped-type-result-dims temp.mlir
 #0 0x000000010287c548 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/workspace/build/bin/mlir-opt+0x1002f8548)
 #1 0x000000010287a7e4 llvm::sys::RunSignalHandlers() (/workspace/build/bin/mlir-opt+0x1002f67e4)
 #2 0x000000010287cbf4 SignalHandler(int) (/workspace/build/bin/mlir-opt+0x1002f8bf4)
 #3 0x00000001a46cd4c4 (/usr/lib/system/libsystem_platform.dylib+0x1803414c4)
 #4 0x00000001a46b5ee0 (/usr/lib/system/libsystem_pthread.dylib+0x180329ee0)
 #5 0x00000001a45f0340 (/usr/lib/system/libsystem_c.dylib+0x180264340)
 #6 0x00000001a45ef754 (/usr/lib/system/libsystem_c.dylib+0x180263754)
 #7 0x0000000107353198 mlir::reifyResultShapes(mlir::OpBuilder&, mlir::Operation*, llvm::SmallVector<llvm::SmallVector<mlir::OpFoldResult, 6u>, 1u>&) (.cold.5) (/workspace/build/bin/mlir-opt+0x104dcf198)
 #8 0x000000010657a340 mlir::reifyResultShapes(mlir::OpBuilder&, mlir::Operation*, llvm::SmallVector<llvm::SmallVector<mlir::OpFoldResult, 6u>, 1u>&) (/workspace/build/bin/mlir-opt+0x103ff6340)
 #9 0x00000001039d94f0 (anonymous namespace)::DimOfReifyRankedShapedTypeOpInterface<mlir::tensor::DimOp>::matchAndRewrite(mlir::tensor::DimOp, mlir::PatternRewriter&) const (/workspace/build/bin/mlir-opt+0x1014554f0)
#10 0x000000010651fb74 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&)>)::$_2::operator()() const (/workspace/build/bin/mlir-opt+0x103f9bb74)
#11 0x000000010651ce70 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&)>) (/workspace/build/bin/mlir-opt+0x103f98e70)
#12 0x0000000104f652b4 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() (/workspace/build/bin/mlir-opt+0x1029e12b4)
#13 0x0000000104f62ae4 mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/workspace/build/bin/mlir-opt+0x1029deae4)
#14 0x00000001039da05c (anonymous namespace)::ResolveShapedTypeResultDimsPass::runOnOperation() (/workspace/build/bin/mlir-opt+0x10145605c)
#15 0x0000000104f05e34 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/build/bin/mlir-opt+0x102981e34)
#16 0x0000000104f06524 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/build/bin/mlir-opt+0x102982524)
#17 0x0000000104f083bc mlir::PassManager::run(mlir::Operation*) (/workspace/build/bin/mlir-opt+0x1029843bc)
#18 0x0000000104f00808 performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) (/workspace/build/bin/mlir-opt+0x10297c808)
#19 0x0000000104effd30 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>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_1>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) (/workspace/build/bin/mlir-opt+0x10297bd30)
#20 0x0000000104f7ebe0 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) (/workspace/build/bin/mlir-opt+0x1029fabe0)
#21 0x0000000104efa6e4 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/workspace/build/bin/mlir-opt+0x1029766e4)
#22 0x0000000104efab54 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/workspace/build/bin/mlir-opt+0x102976b54)
#23 0x000000010258758c main (/workspace/build/bin/mlir-opt+0x10000358c)
#24 0x000000010de55088 

``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1v2zrS_jXKDRFDoj59kQsnbt63QIMGycHZS4MSRzY3EqklqSbeX78gKdmi7DSNz2K_iyK2yeFw5plnOEPLRCm25QA3QXobpOsr0uudkDd3omlEJ6TuVXhVCrq_efj29QmVPWs0IhpVom2ZRqhMqjQpcRiE6yBcPUEnBe0roOiV6V0QrxByM0EWtg2T16LT6PpaghLND7hWO9IBvdb7DsxY3-hrylqFNLTdwsgH2aDZ_T2Ox6uDXvcftayRaCqMUN3zamH-oCAJzWsU4CLAKZHb0NimgSshg_gO4zeM31iMg_hLgO-Qk4mMDOMU3o5j2FsXxPdvLEvsqiUK8ttxZ2TEtewBBfEaEcn0blEJrjThGplxT7AmjTorOUxMZavwnKAZHG31pPNz0vl70sU56eIojXxbSNOIarO0i1poJdQLO2RRXtplbthBnL2xKIi_zPyJNizKzu0buX2jzJPfAgdJNFC7xEViMQ6OLnuBSL-UZXgIfHwmqMlkbHmgFrL_hh32DBrq2Ts3LV-jE24YUkWZocfUhTSytv-ASgu5KKUgtCJKTyhjdCMtBhGHnsXOh040DekU0A1Op2iM4xubXjPQTJbfhsb3KEjXQfozqxHjWszYfsYdxxqL38I4oqacHl05ZVu-nKxTu8bpGqJS5Z4sZe0mDqdOUtbOMRiXhqcuDf54OpfFNAyVBKJh0xL14lLhYIjVdohEdobGqqoX1o2NemW62s0dqIgCQ-cpLa0JURJbG4yC1x1rTLBGntoJa-aYSwEuTs0wk9fGnHMWHjYkdc04LJzMRmkhwTFxTAKXyYYdI9jDTL4cOXImlY3MCUfR1EkHTiU4ZZoJ7tyz3LBeDVE4h--gxeQVFSfYnUnqs9jMstmZc0jmjzZHQ2ZPPx4UeLl__EChJn2jJxbbo-EwL0H3kh8GDmsPlWxc5SqeJBWcVjtzSIpmqCIrpUAadFFNWAN04Iorrr_tO1gwtd5z0rJqzdoAF9T8tdlnOCaB1Qzok7Xr2SxSQXrryvFX-mZPiVuzJF0vmAriu99J04OF11ETZwHOUIAx45WQEiqNWNs10ALXxNolavQErN4_Ef4C9Plg2PfuK9cga-MjxiZc-M5WbbtK2iXWjsEsM2uy5CuvQc4ULKquMwIN44DSfOGwefz2ZfX8Bam-NO0KQWW_RRJMY2MOpZ3WnTLo4vsA32-Z3vXlohJtgO-b5sf4ct1J8WeodIDvmVK9seMeEU4R41XTU0B6B6iSRO1QSaoXG7Jh-2dNqhdE-7Y7xDBcBOHyUYqtJC0ictsbmJRNsEsapIEsOA5R-Ba6f1GIi7xKkwJZL-JVEK_UXrk3j5Jxbe36zXILF0chSV43QmkJpLVRvTMVwMW4CPD9q5AvqrOL7k0nSM0r4wG-H00P8G34FoUhros0Mew42hfN7CM5JOfse-r5M9ty0vw_4bQBqQ40-6wJWQ6JZwKeQ1TWCfI2C3Bxucdl7W8XT7YjSVbRpEoGvb2ShlysDPC92isNrfvo3m-6huhayHZB91bGbFGEcRIllb9F4m9RpgDhL26hdxIIne2AlwCht0Pq7ZDWYZz84g6VrxtnSZz4ujNfN9R5-osAneiO89RHJp_GOo_TOFoWaLw6xKszZ0txnP3e3ZpgGz7YLJjOmEbKVrKVPW0OBH5uSdP8PlaS98anmu5FQ50JRlPWDwU1cm-ygYWmnaOL9AJOJrSqo6WfhcUUlizNiQnnvyMsnwEirutszr3lFIh4SZdJbXlNuOD7VvQKcdLCoH7pbFuz9nv9YSGbejM2oePqzvhgP7VEV7sVp0_wKpkGD-fTVR7Yj0RrkHxYKQdM7L3ps8hESZom9REZc06HPkWiusyT091XXdewiujRzp_5M2fHz12ZsmfsBTau8yyFMNeE4kSB894hMfDlXSU_BKN_WMlx8TexZRVpHGN_Te9ApwAnG-zeCouQkK7WDRXvoojG9bIs88SLaDSLaAV5-L-I_l0jekGYCsj9xPPak6TOUlwmHx1J_ycB6N4HfS3ZDxgM7qSoQKk_CfnSMGPyJb0UXkKES59T8cxYTGB6SpCua0az1IpTc6hbW1mz9xB9gq2l0ayg3EvxVxgdGvQ8g54AP5V2KAzSd4LXbGsEDLksQS_wmAIB3-NkVjFImFYfhefJ9fHHQuFItWateiRq6Hhlz7_zSUZdEqIoSbMwrTyDUz9EYQrxNEQUNGHNmM-_ie-dMWlFSXc4AmTPZ_RX6iTj3z8LVpw0e8XUA-Fka86CMSR3qOf2a2d64QUDL4sIYj8-2czdLMWfd_eRdWBukLPTzogevPig97nAf_8AVeorV1rai6EpCScn7FTA7ewmBtsfiQSuv_JajOlyWQoUOMU-xPkM4iIuq5llo69n-eNDdYlJSVz6JC9mJoVFWKAOpLk-rez5rj644ipN3dRmEw130R2RQDednrWsopcVPGxlEH955yB6-Pb16U5wDW_6JG4PDZPfO_1AGHdH1LSKfB6KvCrCwoPCa2kTqGsaT8u8X9YuqYOnSPWc_aWHE6QeoBVyf9vXtWP96cLhW7INhQY0vL_YtMuzuj2P4PLQU1ekaUpSvWxq7jkyQf7TXPjHeXi0d81IA5U2pVFpuT9l2c-YdOwt3VegRSP49p_t20-idwHzSxp7nRMO_UMghxKmzFddw_SK00fXDI2e_Yvw-T8i_34qcSx77vWCmNekBD_m0ey0I5nXgP5X5fwFOZRlfnuL8RzPMn0fz6FrqXbE9SfzL320ZHz7BPXHPl5ke5n6tnuXEZwWeVpUqCWMf_pr3DCM08LrMLDX91NI07AovB8aHH-DcEVvYrqMl-QKbqJsGRZhEubR1e6mKkNIcQxpnidJmaZQEiAxYICwJFkdX7EbHOI4zOMoipI8DRdlgYuQVFFWJ1FM8yRIQmgJaxYG5YWQ2yv7LOImS3CaXTWkhEbZ33BgzOEV2ckA4yBdX8kb-xSj7LcqSEJzDVRHLZrpxv74w4YpXaMgCz94-mA87YhSw-Mm-1MPRLyHUL19vvhHHwhd9bK5ufwZjYXmbwEAAP__R_xx1w">