<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61870>61870</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `-test-print-liveness` pass crashes in `TestLivenessPass` with assertion failure `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
BealZephyr
</td>
</tr>
</table>
<pre>
Test commit: https://github.com/llvm/llvm-project/commit/e7281c6f614230860cd18a9d1f24612c5c38e9ca
Steps to reproduce:
```
mlir-opt test.mlir -test-print-liveness
```
Test case:
```
func.func @convert_f_to_s_vector(%arg0 : vector<3xf32>) -> vector<3xi32> {
%0 = spirv.ConvertFToS %arg0 : vector<3xf32> to vector<3xi32>
spirv.ReturnValue %0 : vector<3xi32>
}
```
Crash trace:
```
Testing : mlir-opt: /home/ty/llvm-project/llvm/include/llvm/Support/Casting.h:579: decltype(auto) llvm::cast(From*) [with To = mlir::SymbolOpInterface; From = mlir::Operation]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/ty/llvm-project/build/bin/mlir-opt test.mlir -test-print-liveness
#0 0x000055e4c67d760a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ty/llvm-project/build/bin/mlir-opt+0x22b60a)
#1 0x000055e4c67d489c SignalHandler(int) Signals.cpp:0:0
#2 0x00007f950075a980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
#3 0x00007f94ff40be87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
#4 0x00007f94ff40d7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
#5 0x00007f94ff3fd3fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
#6 0x00007f94ff3fd472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
#7 0x000055e4c7da0e71 (anonymous namespace)::TestLivenessPass::runOnOperation() TestLiveness.cpp:0:0
#8 0x000055e4c80f79be mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b4b9be)
#9 0x000055e4c80f8813 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (.constprop.510) Pass.cpp:0:0
#10 0x000055e4c80f8e9d mlir::PassManager::run(mlir::Operation*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b4ce9d)
#11 0x000055e4c80ece13 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#12 0x000055e4c80ed4e1 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#13 0x000055e4c80ed6d1 mlir::LogicalResult llvm::function_ref<mlir::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&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#14 0x000055e4c81bf5e0 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1c135e0)
#15 0x000055e4c80e87f3 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b3c7f3)
#16 0x000055e4c80eb01e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b3f01e)
#17 0x000055e4c67a3570 main (/home/ty/llvm-project/build/bin/mlir-opt+0x1f7570)
#18 0x00007f94ff3eec87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#19 0x000055e4c67b63da _start (/home/ty/llvm-project/build/bin/mlir-opt+0x20a3da)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWFtz4ygW_jXkhYoKga4PeXCcdm1vdapTnVQ_zIsKoSObHQxaQOn432-BnNhyku70pHd2dqoSSwjO7TsX4HDn5FoDXKD8EuVXZ3z0G2MvLoGr32DY7OxZa7rdxR04j4XZbqVHbIE33g8OsQWiK0RXa-k3Y5sIs0V0pdT94-N8sOZfIDyiqz0pXUFJq1QUfZFmlJGqIKJLK153aU-zIqUiF6yCWnBErhBZTL-3HgaHvcEWBmu6UUAQPS0oyP4vDrdK2nMzeOzB-SSM8Hl4PR-s1P5cyXvQ4NyLtJOJ3L3KvB-1SMIPRhkRRt-D9U3feNO45h6ENxbRCtGc2zXBAaX9R7ZkDz2jiH1AtMbniH04npFxBqPycpKCMaJ5oL_CbpD2PllOklZ35hZ_l3tA6BnjPdOJ1Rfwo9VfuRrhUcriNRJUXr2IwtJyt8He8te9EJCUeh25P3okvCO62pgtILryu-chsg8cqYUaOzh8uB2HwdiwYskj32SD2CIv68CyA6H8bgBEKz56EwCOZGyB2EJw5xGtVjYE5iLMofzym_QbfGciwEG5aentbtsa9Xn4qD3YPtp2iQPhybrPA1jupdEovwryF86BDWOMCiIdR2x5Z6Knq69cRZG0QLTAiNKoDlve7ab5MMntetyC9tj0WGphtgP3slWAJ5tSRCmiJe65VNAlE7o3nz4sbj9gN7Zb6THH7bgOiWGsDwHw05kpnRvBIbrCXHd4jz72G8Aierrl4vfo7eQxGbn4HXfjdnhyP0kQqW-sWVu-fTLJ_djj7ShVF55SI7r6qdzFiDKCyQMhhOQ5ZKIou7Ig_Mj7bueml5tAH9W-i1FLq8Miy781xnkLfBsdtcRS-8lt1R9RHtFL8kBpWxCOaH3QNT3RNatqgW_lWnP1D647BaF27EVPn10ihgAxif9PjOieUdnXOSFlzuuK4Kax4Lyx0Fi_11zJFtHVQ1U0RXaupB4fztd6nCYGv7HAu8SZhESFU1pXZKYvO4jJ-j4jLVQltly6UDiebF8r2Yrz5dd_fvutfRrShJaIrly0AtFVkoTRznUwhDAbtXyYPtxHbfQYhpF1IkJip3ODsxNNurJPMW9NtPRtmvhuQiNSRSHViZB8JoT1Hes5bhoes7sJ6de0_O22T3RPL5PIei6yOBWZlfQNvhPBa0X0GiNZSWdeK4-jrOw4gTINPLk2erc1o8Oab8ENMQvqKQNCsf60z60b7vY5Y0f9WR-K3VStjpe-HJ3VsQIV6cu6haPq2YHnUj1W0jvzeQgSFx0f4g60F4xodSCJKoXivXyxCp_OLDRXOyfdNdd8HZJqiVtjVHiOOp50ul-R4WmbtXULM_DrE9urKmU_bfuNHEBJDTMMpqVPJhW_HIxjoiDqo3bexioezjSL7y2YJE8Te91vuAXtP-reYGF02IIXe7yTOB6sGZI8DQUHB2bPQykUTHIKJ9TdiRaPdr0YOHNY3u1uAXX35O6gXzrXDwSkDA9ge2O3CxEEux_sNM53-51qwy10zeDDKexAcWtGK-B6bcPZbo_kie-vP338sjTaw4N_5qdrJe3nwV9zqZdG93J9xKPGR7Mv409P7OsySPFgjQDnLse-jzvWm8wbtfz3CM_Mu4atsbtHVkfrO-j5qHzTgQIPr9OwD_Eg9Vabj9ddSa5A-C-wls7b3X7-IOcubpA3MVkWb4KLncJVdOmRwE9mLQVXX8CNyh8JCteJECuNhR6x5WsEiFZ_HpyvO7WOi6ajtVLhZNj0eqb2EU5_wfB42e1vTJlpCaKl4tu24yjs9H8dr9BKGb3-c4H9jko_TphsljBp2-dAjlzhBiX9Qnc3JxXnf2Hd_2GSfnfF4RgwPd-5OYqU5UBmm2N-Ug2rsmcv59nfrUq885zBRNmzGZTFCZQtSeFVKPenObHh07ltMQ-EW2-lXn-B_i0G_5LYaFlPUpgZVM6vwpzlJcFbLvX7JPVlXs6DsJrfsABEVeKmCZeoxnlufbOX-qY7nXDj42V2eo2TkU-837Esmxe4em5nW7CO40nw-7oLhLPu0F146r2ddResq1nNz-AiLSpCi4xV5GxzwauuIwTaNM-BMaiKlotUZCKvIAfesTN5QQllhLE0paSgJBEc6p5SUXeM1ETUKCOw5VIlQcvE2PVZ7BpdFGlVkjPFW1DusYFsL6Ip7bh2KCNKOu8OZF56FVvN4eCK8iuMCvJik6cgeODOTT0ocFjGBtuzu2pBcOzn8ac2XLirjxb-a-04fDZadfHHu2wRsv8EAAD__-4SNYw">