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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Tensor Bufferize Pass triggers Assertion Failure "CallOp::bufferize: cast incompatible"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </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/cb37cf6161
Reproduced with: 
`mlir-opt --tensor-bufferize temp.mlir`

temp.mlir:
``` 
func.func @func(%arg0: tensor<*xi32>)  { 
  %0 = tensor.cast %arg0 : tensor<*xi32> to tensor<*xi32>  
  return  
}
```
 
trace:
```console  
Assertion failed: (memref::CastOp::areCastCompatible(resultBuffer->getType(), resultMemRefType) && "CallOp::bufferize: cast incompatible"), function bufferize, file BufferizableOpInterfaceImpl.cpp, line 79.
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 --tensor-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 0x000000010508f7f4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x000000010508e85c llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x000000010508fe8c 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                 0x0000000106ca2b98 mlir::bufferization::detail::BufferizableOpInterfaceInterfaceTraits::FallbackModel<mlir::tensor::(anonymous namespace)::CastOpInterface>::bufferize(mlir::bufferization::detail::BufferizableOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::RewriterBase&, mlir::bufferization::BufferizationOptions const&) (.cold.8) + 0
8 mlir-opt                 0x0000000105f623e0 mlir::bufferization::detail::BufferizableOpInterfaceInterfaceTraits::FallbackModel<mlir::tensor::(anonymous namespace)::CastOpInterface>::bufferize(mlir::bufferization::detail::BufferizableOpInterfaceInterfaceTraits::Concept const*, mlir::Operation*, mlir::RewriterBase&, mlir::bufferization::BufferizationOptions const&) + 604
9  mlir-opt 0x00000001052b87a0 mlir::bufferization::bufferizeOp(mlir::Operation*, mlir::bufferization::BufferizationOptions const&, bool, mlir::bufferization::OpFilter const*, mlir::bufferization::BufferizationStatistics*) + 900
10 mlir-opt 0x0000000105f72e74 (anonymous namespace)::TensorBufferizePass::runOnOperation() + 280
11 mlir-opt 0x000000010669ebf8 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
12 mlir-opt                 0x000000010669f128 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
13 mlir-opt                 0x00000001066a31ac mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const + 176
14 mlir-opt                 0x00000001066a3028 mlir::LogicalResult mlir::failableParallelForEach<std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14&>(mlir::MLIRContext*, std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, std::__1::__wrap_iter<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_14&) + 360
15 mlir-opt                 0x000000010669fdf0 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) + 1396
16 mlir-opt                 0x000000010669ed28 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 732
17 mlir-opt 0x000000010669f128 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
18 mlir-opt                 0x00000001066a0aa4 mlir::PassManager::run(mlir::Operation*) + 1148
19 mlir-opt 0x0000000106699e68 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
20 mlir-opt                 0x0000000106699a38 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
21 mlir-opt                 0x0000000106704fac 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
22 mlir-opt 0x0000000106697e60 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
23 mlir-opt                 0x0000000106698354 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
24 mlir-opt 0x0000000104f322b8 main + 108
25 dyld 0x0000000109fbd088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsGdtu4jz6adwbq8hxQg4XXFDa6q9UBKLVSrs3yEm-gHccO2s7M8P_9CvnAIHClBlNV9VqqgqC853PtpkxfCMBJmh8h8b3N6y2W6UnMyWEqpS2tSE3qcp3k_nz0wqnNRcWM4szVZbc4q21lUH-FNFHRB833G7rdJSpEtFHIb72X7eVVv-GzCL62OK5h9SPsiL0Qg-Re0SmK6i0yusMcvyN2y3yp7h9gUJSCq5vVWXx7a0FaZS-TeuiAM3_BmyhrEYOAIWkQ2g-D-v-dE-o_e8IF7XMRu4Do4C4b0RjRMdMb4jj3nJC_gzR6XfuU-Q_IJpgjKK7jgDGiI4JRv59BzzKmLG4o4EvEMFWnV3eE9Vgay373yi6PxG_g-vU1CyDtypmSholoCcyNQa05UrignEBeWNdGpdQaigctj-dMWMXVfvMNLifM1VWzPJUAKKxBlMLe9fY_Rb5Dxuwr7sKGpsliM5wCzCHcgVF-ybBiIaIhhhROmNC9OT3znNiNCbjMhvwoh1F55NG6AOCW-UC8F23wlIBi-pJWtAFy-CprMQoqyoHJ7gEHCWj1gLL54fpywM2derCluG03mANLsCdP346jLkxNRhEHzGTuRNf1DlguwWcaWa2OGXZl8Y1HfsXy7IvOK_Lau8rMkIkWWq10azETG_qEqR1QuDrwv2EbpM1qrbY7MpUCSxZCcY5GaSpNeCdqvGWfQXcaNIC8b9BYy7dO42X09e_sNLYgG0UAfmVayWdVPgr0xiF5Pn5H_P1yz_nd4vnp389rNYOxeWTVbhSXDamdMmdHJTEB23Id9L-eWRM4iIqgkaWNibMzrQPS82lbdR6bUKbxgcgzb6tlbEaWNlE1gxzads4u8PjsGXpDVie_h2LAPE4OyfCqpYvfCOZ-IvJXIA2bZA3XDyPtmzoZc0gzvARAUTjgaB-ELQkfIwFT83OWCjXlWC2ULoc5TvB0wFJxvLAC7IArw3fWM3K6kjd4IiI3Wpg-TkaNAEguANYf-FCNGRoHLd0xkM62RkKWRj4AcEsdTnTmCLsUMP3Uf1oHGDQukHsKlh0naPCjNE0iXFfyw_1g7ni0C7lYBkX7fOl2tA_vGrGbefqRyaEy9W5ykEgf3Zg0pfoaVMWYiaV3JWqNm1iVU1oJsPSuafvGsVJnaPxh0g_UzKDyjVjaSyiU5cRB0aLCnTL5PTNCr5pbkHfMQNdIv1Qvrvh0qJyn6ZnGrZhHY8yJfLRPk86H8fX5WIRUh_IHxd_ahff4ZB0lSu5UPxoGkfsHT_uTbaojox2WZefF3eGU6XEu1QW1SMXFvQF677H98Uyy43lmWlQWxslpAt9j5y3URFRiAL8TsC9NrHZs4MlM11A6Fou5MBW-4yjcc_YO8s4DBNIi2EdHcbkonpVi8qxmeassn1a6FoeOamR4_oonEomdoabOZNs4_rgwTG1bPYd-bCFB7TrKB69rjWESeHRn1dpyStw4-FJ_DnQvaThb9dxiORYPUljdTP1Kf2G6jHAIAJ72ZdMg7RPslCD6O0GDNpHgn-lGZnvseynzTiIw6nZycxN34jGrfZJX1eDtRe0z6qBdsq2e4b4IxguquXcWaUrW41t2nEl6gfE4GqrkKPgelYbnjGxajY6g3W3p3K1fMk0EwLEo9IPLNsif2Zs3oKs117_8E2zau1K81Ev-ggDTJst6-wj_UrDhsfAk_Pnp9VMSQvf-4L6OYzwOaT4WFf0-d-fEXjjq8toXpDfLFybdH7SZ114rSyQ_0JJ_x92qcjvtoBedKnR_ulKP-pK120KwpARxoIT7r0-Z_1-bI5-wx70Q0VyyV0JhDGuQLv997Q5cjLvnDv0tuy_31YXs2Ua8nVlXXE5kHpRtc5gvtHIfzgaWH9UQQ_o_ZHYujm3m13qTW-yYRhASVeLjnXoDlH6CZ-Sa9M1Yf7lJvkrkr-1ZS35f2p4Y8s5lErv2hn5vBNyKFgt7DoHARYuI7vt3MOxpU99nuz3fFm3oVwX8kiRueB6Udk54_Kd6PkcGv7OWDpA3HMmILMr2HBj9e5Cvlz3PWhwpJ0zhJKbz2PBNzHS9od9DnnX5VBEguJo_DaV4HYq86VWGRjTS_9JMuP_IpN_CHG-Nob9kSullxpJBOFwjPpTEX57RWiPOrzeE9ducJPYHwcXPdMNQtmWtSPPSdN9sZrLzQqK6_XqZg9KutmDBmdDJih8StMYl4zLFmOPMMb5TuRD4KRIcxLH2FjWncCPezuc3P7d5BM_T_yE3cDECyM_joNwHN1sJ1lBWBpTljHKIhbENMmTDMbZ2E9SEvr5DZ9QQn3ieaE3Hkd-NGI0zxM_zNOAFMTzCQoIlIyLkTPPSOnNTXMVNgkJiYIbwVIQpr9K1pPmrimtNwYFRHBjzQHNciuaS-fGoON73J547W_2ALvIwlbzzQa0wYcrzEfGRa3hp28Vb2otJr9-09do-N8AAAD__-XlkmI">