<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108376>108376</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] -inline crashes in TestDialectInterfaces.cpp:326: virtual void (anonymous namespace)::TestInlinerInterface::handleTerminator(Operation *, ValueRange) const: Assertion `returnOp.getNumOperands() == valuesToRepl.size()' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
axeabc
</td>
</tr>
</table>
<pre>
git version: 8168088f0a9015b
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -inline a.mlir`
a.mlir:
```
module {
llvm.func @f(%0: f16,%arg0: f16) attributes {llvm.emit_c_interface} {
%1 = "test.op_with_bitcast_type"(%0) : (f16) -> tensor<4xf32>
%2 = "test.op_with_bitcast_type"(%arg0) : (f16) -> tensor<2xi32>
"test.return"(%1, %2) : (tensor<4xf32>, tensor<2xi32>) -> ()
}
llvm.func @_mlir_ciface_f(%arg0: f16, %arg1: f16) attributes {llvm.emit_c_interface} {
llvm.call @f(%arg0, %arg1) : (f16, f16) -> ()
llvm.return
}
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/mlir/test/lib/Dialect/Test/TestDialectInterfaces.cpp:326: virtual void (anonymous namespace)::TestInlinerInterface::handleTerminator(Operation *, ValueRange) const: Assertion `returnOp.getNumOperands() == valuesToRepl.size()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -inline a.mlir
#0 0x00005617d91b12c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10dc2c8)
#1 0x00005617d91aedde llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10d9dde)
#2 0x00005617d91b1c5d SignalHandler(int) Signals.cpp:0:0
#3 0x00007fe302033420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007fe30167000b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007fe30164f859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007fe30164f729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007fe30164f729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007fe301660fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x00005617dbef6221 (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x3e21221)
#10 0x00005617dc35cd0d inlineRegionImpl(mlir::InlinerInterface&, mlir::Region*, mlir::Block*, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::IRMapping&, mlir::ValueRange, mlir::TypeRange, std::optional<mlir::Location>, bool, mlir::CallOpInterface) InliningUtils.cpp:0:0
#11 0x00005617dc35db6a mlir::inlineCall(mlir::InlinerInterface&, mlir::CallOpInterface, mlir::CallableOpInterface, mlir::Region*, bool) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4288b6a)
#12 0x00005617dc3566eb mlir::Inliner::doInlining() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42816eb)
#13 0x00005617dc2fe575 (anonymous namespace)::InlinerPass::runOnOperation() InlinerPass.cpp:0:0
#14 0x00005617dc2d8156 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4203156)
#15 0x00005617dc2d8ac0 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4203ac0)
#16 0x00005617dc2db102 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4206102)
#17 0x00005617dc2d3931 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#18 0x00005617dc2d358b llvm::LogicalResult llvm::function_ref<llvm::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>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#19 0x00005617dc37ff25 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x42aaf25)
#20 0x00005617dc2ce9b5 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41f99b5)
#21 0x00005617dc2cec5f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41f9c5f)
#22 0x00005617dc2cef8e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x41f9f8e)
#23 0x00005617d9191f07 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10bcf07)
#24 0x00007fe301651083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#25 0x00005617d9191a8e _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x10bca8e)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV9z4ygS_zTkhYoLof8PefAkk7pUJZdUkr1XFUJI5haDDlA23k9_Bci2JGf-7Y5v6-6qZhypQd39-3U3jRAxhneSsSuQfgLpzQUZ7EbpK_LOSE0vatXsrjpu4RvThisJ4jUsoqxARdEiUqIorQG6AWgdfs3OWLZ1k0CGfqkHaQcYFSuUrDJ4__oCMjSdrVmvVTNQBn_jdjM-tRVcX6rewksuBZcMkpUTLR4Nv-NQvBdmKPyD4X6rmkEwCPJP4R4K8bZdtYOkECSoBbgAOEXObhtlAF8DnBLdHQUlJNZqXg-WGafFP8623Fa04tIy3RLKQH4zsQBwGkEQ30CAsWXGrlRfOXBVzS0lxlZ21zOA8d42LqHHjYvR4iWIP0PLpFEaxNfJextjEH8etUPoDODvN-DhfMMGfudTG3u9mtlBy4OmCOBrb3yi7tRNfP2B3r1Fr6jcQwH5zUdRqVxEK8odtVU7QXGIEgyS6M-ECcJglRIhJrkQ6DpaWDB3DacEzuGMCkfWlhiPF4sUNZbQX6HVzsN4ltsnyTzWRXDotiGWAHxrft8BfPtwf_cM8K3z4FIzwYhh-9teq38yagG-9aWCb11w3SCvAb694USE0dcgdn9G4d2eOrOifQ_idYwzZ_yNazsQAd8UbxwJRCq526rBQEm2zPQOCi4dmnjt1N35MtYHdWFkQ2Qj2CvTWy6JVRrg4rFnmliuJAR47dj-BxEDeyaycwohVdJ49GtjmA7zMhQIf-xXHbN_H7Zeh2xMCI4rFFcrb06ReVXPrBcrw39nY-xwDlvCBWtWgeOn-8_rl8_QDPWWW0hgPXRQs15pC62CG2t747zHtwDfdtxuhnpF1Xak-pRxbszADMC3kMgGcknF0DBoNwxSTcwG1oT-6kM_mn_xydAM2_6QC2gF4ZNWnSZbSHQ3bJm05g-nQD1w0bi_XI4J8dFKu18HYgTRO0IIpVmUN2VUR5gWPs1DCM3OhIsnzaX1zr_6RMbFcZImv1XKWM3IFmBfQ1xaHxoXgp-GAeBP6D1CDcV0UpUAx9EcA2FNwz7C8DzIF95JIv7mE1MfMugsbpZNw2Zu4iXVNG3gzCGAi5G5IN5XJfL_D4riUVHeshhhFMcJRrCqNDNWaVZpOyIK9f9eZFWWXAouh_fLTg5hoLcbzUizMmqFgsdJgtHM32RqJspyhFANNeGGwQn4TvCaXt7TO4zeD7d4FUeOS48C4NvVyt3tTMN6VyuD5O9B8Oa9kYO79apXFMTr1C380dGTdO5J0hZpCUmtPNLv88Q2gQ3_lDdSOCP50Ui2NJLjEnbMVsHvyrDOVWblF5rvtculdfiFIs3WdJQE0ylya2dxtJ1_ZLuSonIPVo3aEi7_nMkyd0kUJ0ebxdxmhtom-47EoS5lMp8ycdw22SxlymmK16zNMI7OUV4xwxHG0cG2WwRmKxmNU9ogtyC7Ve-ZdVzJu20vAC7228l4fdK1wuJ1nBCeGzvVUfxJKPrrKD0uM1xwYytuXYPzm6PlUMMs4SJIpGpYpXrX4QyIr4-6Dw3S77P0wPyWhAjjL1w_PhWETdlBFi6CcAL2-YH0PZfdCcppC57KX3f9UWxsE6TBaSJmXt8rGpwOVmulxFzXNRHisZ8wXULPPpfdL5Z_tNC5kEaLkDZ1RiZKQ3Cd6h8L64kzy0FSC_bFCbOkCEjP0kISXBR1RmY5jheEZBmr4QnycNOoPcPna3MJLqKM1TMf45mPuGVpnn5rDzk6_kTM2Kr1IB_lpBaKQ8aEWR_nSzI33RRRmk3omRbgY_-qHnunat2Q3hfsaHeWS96jZf1P_FqMrCURO8PNA5Gkc_38WAuD9O_gzRn3RglGcZRms2ikS0oIRT9MyRPvmaN-Rk2YekCa_XSOpg85U3fSWO13x-5VYv21CeNi5AdG35-IZtLeyVaNbxlOw9nCQCiahSFbhKGOEF54v-fjwzyc03kut7MI4Znb-cLtuIwj2DPdKr1d09C9vv4mcOgbZkM0a6rezlvjixo0ZQ-ddq_bY2AWqeSAXStp2bs9CfuD4Pqxtw-Ey2slW95NdJRwMvrxglEs8aVFPWnp96rjlIhnZgZhJ_J2kB58pVk7QzN_AODiAH-Q_F8DO4H_wLZK7z4NbRsq4TC_YS0ZhNs0CGbZl5-JP48998tBKP0kN0KJEO6FtGrlrH1PePrecJ4dz9G78azC9V1j9e40P76WA2EKwEmFvOJCKNcQ_5NIvhKZb2doOe_4edvidILd9ILbtWyetKLMmL27f0ne_RdWxVdnTMderOaye2btF8VnWpMJaXE6XZPx_D0HU1bW6cfV8L9Wy2dhOGrLsp4zHC0Zpmn7RYbHrQrdkLApWf9o4nyLnrPBpmk7g42XsNuC_RTYfxG-tmAzfPH8_K2MWpTD8WTlDAeANW1RPnNgcaCWRqiIYVUJXtPKWKJt9SPnPNQM-5O1cOkHvR5_4hMn2P0ezadL_KRgMBg-FwNkGoLDx46L5ipuyrgkF-wqynEWJThJ8MXmqi7zhDZl2WY0Q6TMyrqJszxnMYrjqGjxBb_CCCeojHCEEYrLVV6jtsZ5m6MmThPWggSxLeFi5b_UKN1d-AP6K0d1nl0IUjNh_GdQjMPHEgzSmwt95XHVQ2dAggQ31hw1WG6F_3TqH0hvDmfp_oSfGcgl_H_9pnIxaHH1xz-ajGF5u8L_DgAA__-PVlVu">