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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] `-test-vector-unrolling-patterns` pass failed with assertion error "cast<Ty>() argument of incompatible type!"
        </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  585cbe3f
Reproduced with:  
`mlir-opt -test-vector-unrolling-patterns=unroll-based-on-type temp.mlir`

temp.mlir:
``` milr 
module {
  func.func nested @func1(%arg0: i64, %arg1: memref<?x?xf16>, %arg2: i16) {
    %cst_1 = arith.constant 0x4CD30FDD : f32
    %c0 = arith.constant 0 : index
 %c4 = arith.constant 4 : index
    %12 = tensor.empty() : tensor<7x5xf16>
    %23 = vector.broadcast %cst_1 : f32 to vector<23x8xf32>
    %24 = vector.extract_strided_slice %23 {offsets = [14], sizes = [6], strides = [1]} : vector<23x8xf32> to vector<6x8xf32>
 %splat_22 = tensor.splat %cst_1 : tensor<7x5xf32>
    %extracted = tensor.extract %12[%c4, %c0] : tensor<7x5xf16>
    %115 = vector.multi_reduction <minf>, %24, %cst_1 [0, 1] : vector<6x8xf32> to f32
    vector.print %115 : f32
    return
  }
}

```
 
trace:
```console
Assertion failed: (isa<To>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file Casting.h, line 566.
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 -test-vector-unrolling-patterns=unroll-based-on-type temp.mlir
 #0 0x000000010310cf18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/workspace/build/bin/mlir-opt+0x1002f8f18)
 #1 0x000000010310b1b4 llvm::sys::RunSignalHandlers() (/workspace/build/bin/mlir-opt+0x1002f71b4)
 #2 0x000000010310d5c4 SignalHandler(int) (/workspace/build/bin/mlir-opt+0x1002f95c4)
 #3 0x00000001be7894c4 (/usr/lib/system/libsystem_platform.dylib+0x1803414c4)
 #4 0x00000001be771ee0 (/usr/lib/system/libsystem_pthread.dylib+0x180329ee0)
 #5 0x00000001be6ac340 (/usr/lib/system/libsystem_c.dylib+0x180264340)
 #6 0x00000001be6ab754 (/usr/lib/system/libsystem_c.dylib+0x180263754)
 #7 0x00000001074e7bf0 inferStridedSliceOpResultType(mlir::VectorType, mlir::ArrayAttr, mlir::ArrayAttr, mlir::ArrayAttr) (.cold.1) (/workspace/build/bin/mlir-opt+0x1046d3bf0)
 #8 0x0000000104db4dd4 mlir::vector::ExtractStridedSliceOp::build(mlir::OpBuilder&, mlir::OperationState&, mlir::Value, llvm::ArrayRef<long long>, llvm::ArrayRef<long long>, llvm::ArrayRef<long long>) (/workspace/build/bin/mlir-opt+0x101fa0dd4)
 #9 0x0000000104ec294c mlir::vector::ExtractStridedSliceOp mlir::OpBuilder::create<mlir::vector::ExtractStridedSliceOp, mlir::Value, llvm::SmallVector<long long, 6u>&, llvm::SmallVector<long long, 6u>&, llvm::SmallVector<long long, 6u>&>(mlir::Location, mlir::Value&&, llvm::SmallVector<long long, 6u>&, llvm::SmallVector<long long, 6u>&, llvm::SmallVector<long long, 6u>&) (/workspace/build/bin/mlir-opt+0x1020ae94c)
#10 0x0000000104ec3880 (anonymous namespace)::UnrollMultiReductionPattern::matchAndRewrite(mlir::vector::MultiDimReductionOp, mlir::PatternRewriter&) const (/workspace/build/bin/mlir-opt+0x1020af880)
#11 0x0000000106d8f0f0 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+0x103f7b0f0)
#12 0x0000000106d8c3ec 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+0x103f783ec)
#13 0x00000001057bb420 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() (/workspace/build/bin/mlir-opt+0x1029a7420)
#14 0x00000001057b8c50 mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) (/workspace/build/bin/mlir-opt+0x1029a4c50)
#15 0x0000000105714640 (anonymous namespace)::TestVectorUnrollingPatterns::runOnOperation() (/workspace/build/bin/mlir-opt+0x102900640)
#16 0x000000010575c2a8 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/build/bin/mlir-opt+0x1029482a8)
#17 0x000000010575c998 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/build/bin/mlir-opt+0x102948998)
#18 0x000000010575da4c mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/workspace/build/bin/mlir-opt+0x102949a4c)
#19 0x000000010575c404 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/workspace/build/bin/mlir-opt+0x102948404)
#20 0x000000010575c998 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/workspace/build/bin/mlir-opt+0x102948998)
#21 0x000000010575e82c mlir::PassManager::run(mlir::Operation*) (/workspace/build/bin/mlir-opt+0x10294a82c)
#22 0x0000000105756d14 performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) (/workspace/build/bin/mlir-opt+0x102942d14)
#23 0x0000000105756368 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+0x102942368)
#24 0x00000001057d434c 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+0x1029c034c)
#25 0x0000000105750d1c 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+0x10293cd1c)
#26 0x000000010575118c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/workspace/build/bin/mlir-opt+0x10293d18c)
#27 0x0000000102e17510 main (/workspace/build/bin/mlir-opt+0x100003510)
#28 0x000000010e5b1088 

``` 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWllv2zge_zTMCxGDog7LD3lw7Hi3QIMESaf7aFAkZXNLkVqSauP59AtSPkQ5nSTe2cFgMEVjSzz-x-9_UjKxVmwU5zcgvwX58op0bqvNzUJLqVttXGfRVaXZ7ub-86cnWHVCOkgcpLpphIMwL3Na8bQGaAnQ_Im3RrOOcgZ_CLcF6RzCfgYUqJHCXOvWwWvHrbv-zqnT5rpTRksp1Oa6Jc5xoyxIl_3gdUUsZ9daXbtdy6HjTTvxRECB9kTD52k8nR-Z9f9hI6TZS9Bo1kkOwfS2v4ew7hSd-A-ouHWcQZAhf5sAXAKcE7NBXgNRZAAvYD-S-JGGN4bXIF2AdPXi_-qkAOndaRUO-5IC4NmQIfTT1Lp1AkG6hMQIt51QrawjykH0ki2WKVotl9Bvr1Mc70OvbgprhWL8Zb_aL81eW5qdLe0JJzisdlxZbSa8ad0uADAL6_thkC6mL_lBz-FunIbdvTUnldGEUWLdUNOgC3R6vwikC5y-lC9ewTGxbEiMvzhDqFtbZwTjbG2loPzAc3qr69pyZ8MOkN8mGciX3gRW_MqPo8VhMNA4LfbD0x7o16SKpC3GwgKc21YSt8YRdGEsVjxG71zhvYre9wYm6Ad72_iw9BbdOxdFIF--yzBJkg_BbDrpxNpw1lEntIIgXTRC1Se3xUcWvfT5LfIDyYHfK3B4lCI33fNqjVDuJMPIlw13nVGHezBd7oP2eBHH8AHzPtYNofw8zr2Pa8n70bm13AQdayIkZ14AgEthCUgXX3TQuPxKZPBwXABcQICxd1o_v-vn_SQxm67hykFdQ6GoblriRCU59OkI4ARgDPDMg-SzRuAYqPgBITlcEOuE2ky2fkQKxWFeFJNeyMfPd_PnO2i7yqdRAqtuAw33CdeDunWutV5NvAJ4tRFu21UTqhuAV1J-P3xdt0b_m1MH8EpY23EL8AoSxbywsmMcui2H1BC7hRWh3wJ2e_bPjtBvkHVNewQTTQCaPRq9MaQ5qm5DuvvdEvchfFIE0Qvq_yUoTRCtkxIG1dI5SOd2Z_uLR-9JQdgvwfK4PC0y5MdaW2c4aYIZF1Ao1xu1BHj1Q5tvtg2bVr5sMf8tFMCrgz4A36KXBCFcl3XiLX6SLxnJVyVV9pp8T516FhtF5D-JYpIbe8icHxZhmlRZJAIeicB8Wo-Yeae-VONZSCkDdumAXcWn5SzzVSTQ7azxHicqgFd2Zx1v-tv-eu2zXq1NM2G7sMazKFGaJdmIRRazmCaco3eycFvDCRtxwDPOUcQhjzgUhKbZOznQmDYusjSLaRcj2tU0fydAZ7TTaR4jMx3aeprxaVUjKFTNzXNf-5596Xton7jtpPsS0k95aHnS-dcQkf3wAp7G58aQ3dw589Hh4FETqiWbJBf4V1awtKpj-MqhihmrMsayAfNDdfHXd339i1Xvp_ZsB7o_tLd-zEdDEevz0HJDfFZ-dsTxs-mvRHYBr1NYBwSeQmcntdpA_7EvkL_Xog9jmdQEMRa7yyzCklM8y-hHsISvwRduqeEeq3TxEcu8BetzQ6T8emgfTnjgBSy6gErxB2wIZf0k52dNg3O8Kn3xx4j08Q0fdh-MCJ9l9Og-vrahkfukZRmyJFFa7RrdWahIw_fkZ710v4TCfu-byKdDD_nY1_1-QUMc3c4Ve-I_jHBxfhq6UCCxFM2RytiB9lT3dMxe7XCKuUD5uixRpHxU2QtW1qhG59znbSsFJUepf0u7Y54BeP62KkOTH9rGdX-arLSWMCK9J9Br3yNxlmpGRL5rwf5nIsMw2QhKZF943kd37zEAZ2vcX-qAkDZ9c7RvkS6yaFpPK1THFsUji9KU078t-rta9AIzlSmPs86wwUT5tKoy_GbW-YfhnO1i0JdGfD-Uq9Zoyq39lzbfpPAiX9J84xmZZjj2qWwkbEnzYZYgbSsPYtm5YistWZBVyF2E6BPfBDca9R4ro3_lB4X2dJ65GwA_XN2jsF-90KoWoSp45woOeonGGc1jjfNY4yQrsjfN84Vb11esXw6HwcfjWTAc0Tr1oAbRdJl5ECqyWNgiFjanmJQDwBh3RMhDLH_RD-0jsXbOSHsMf9OpketbexbtP88Dc0Xkzgp7TxTZcHMyxwJ2KjxQZReeRvEsKzEpI3WnY3Vns4-r-yhaLoUaZzq_9KjFzzroy_WPk6e1n5R1Jjxa8OXgLLsOF_Sc-4m97I_EcOU-qVofQuUy98_K2SyGuBxBzEjUUr8P4oGvz-1O0U9NKwEue2QuEdPHaSTmbOwJGcr-Qo6foWyoLkZ_O_7_2fFxMoKYl5iOJDvo-qr_xFBdIhIpceTkGI9EKliSwZabWptmHpoa-8aDQOtYP7VeJ_sndltiOFu3LhyuTocu3RnK7zcGpHc_qb73nz89LbRy_MWd2e1eCvPQunsiVF-Xh63TBVBglsQBkI6hSIthAMS93CXN3zlSnRL_6fgZUve80WZ329V17_XnGxmvSSfdmnHJwzOEn2xO786a1bEFQ9vZP5AgUlaEflvXKlJkgPyHfeGP0_Ak71IQyanz_aB1ZnfuZb_lSacDVdI_xjg8GPiTWu8Sz0-LOC-NOnCWpVFBtq0Ubq7YY38COGj2J_Hnv0T8_eaKU9m7uLuhKI27Gzw6g-SIJfT1GPnrx_zH8UwpS2I8x8ekJCl_jue-a6Fb0vcn89HjSWeE2jzx-m0dL5GdJWUse3TmwTyZ5gmCDRHqwy-7EErzJDo_4qjb53mVoLKEr759hlfsJmWzdEau-E1SzBBGsywtrrY3RVURRjkv6TRLckxLRvMZTRNWFSmpSHolbjDCKZriLMnSaVJMSjbFLCmSukymGUU5yBBviJATj_JEm81VeI17U2Roml9JUnFpw89yMFb8BwyTAGOQL6_MTXgBXHUbCzIkhXX2RMUJJ8PveYKZ8iUEBXrr1W2BYEus3b8yD7_egeT4Ip0bo83lb8mvOiNvLn-nHfD4bwAAAP__RFEVYQ">