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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]-test-diagnostic-filter pass crashed on mlir::SymbolOpInterface with assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </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/c3440e213ca02c2fcd91f3f8cf65774a2b1a9e6f
steps to reproduce:
```
mlir-opt test.mlir -test-diagnostic-filter=filters=mysource1
```
test case:
```
module {
  func.func @main(%arg2: tensor<34x1x55x47xi32>){
    %collapsed = tensor.collapse_shape %arg2 [[0, 1], [2], [3]] : tensor<34x1x55x47xi32> into tensor<34x55x47xi32>
 return
  }
}
```

The error message is as follows:
```
Test 'mlir-opt: /home/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From *) [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/llvm-project/mlir/build/bin/mlir-opt test.mlir -test-diagnostic-filter=filters=mysource1
 #0 0x0000000002722d6d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x000000000272325b PrintStackTraceSignalHandler(void*) /home/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x00000000027212e6 llvm::sys::RunSignalHandlers() /home/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x0000000002723a35 SignalHandler(int) /home/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f7868d54980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f78677fde87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f78677ff7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f78677ef3fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #8 0x00007f78677ef472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #9 0x000000000616d8d8 decltype(auto) llvm::cast<mlir::SymbolOpInterface, mlir::Operation>(mlir::Operation*) /home/llvm-project/llvm/include/llvm/Support/Casting.h:579:39
#10 0x0000000006c2b03d mlir::InterfacePass<mlir::SymbolOpInterface>::getOperation() /home/llvm-project/mlir/include/mlir/Pass/Pass.h:426:38
#11 0x0000000007421561 (anonymous namespace)::TestDiagnosticFilterPass::runOnOperation() /home/llvm-project/mlir/test/lib/IR/TestDiagnostics.cpp:34:33
#12 0x000000000764c5cb mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#13 0x000000000764c565 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:5
#14 0x0000000002748c19 llvm::function_ref<void ()>::operator()() const /home/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:5
#15 0x000000000764f71d void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/llvm-project/mlir/include/mlir/IR/MLIRContext.h:276:3
#16 0x0000000007647c8a mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/llvm-project/mlir/lib/Pass/Pass.cpp:509:17
#17 0x000000000764823d mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/llvm-project/mlir/lib/Pass/Pass.cpp:569:16
#18 0x0000000007649cbc mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/llvm-project/mlir/lib/Pass/Pass.cpp:880:10
#19 0x0000000007649bde mlir::PassManager::run(mlir::Operation*) /home/llvm-project/mlir/lib/Pass/Pass.cpp:860:60
#20 0x000000000763ddf2 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:384:17
#21 0x000000000763da29 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPool*) /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:441:12
#22 0x000000000763d81b mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_2::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:512:12
#23 0x000000000763d79d 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&)::$_2>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#24 0x00000000077c2ef9 llvm::function_ref<mlir::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#25 0x00000000077c24d5 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/llvm-project/mlir/lib/Support/ToolUtilities.cpp:28:12
#26 0x000000000763aa89 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:515:10
#27 0x000000000763ad2d mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:550:14
#28 0x000000000763af08 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:566:10
#29 0x00000000026a4888 main /home/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:284:33
#30 0x00007f78677e0c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#31 0x00000000026a451a _start (/home/llvm-project/mlir/build/bin/mlir-opt+0x26a451a)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWltz4yoS_jXkhYpLAl0f8uDYce1szdSkkpzzcF5cCCGbPRi0gM7Y_34LJFuXSRwnm52dqZNKWRcQ_fXXTTctRIzhG8nYDYhvQby8Io3dKn1zy4j4g9Xbg74qVHm4eWLGQqp2O24BnsOttbUBeA7QCqDVhtttU8yo2gG0EuKv4-G61upfjFqAVt2jaEVxFAUMhZiSAFFU0TIPK1xltEriNI0IKkKSs6QCwRIEc2NZbaBVULNaq7KhzAn1TSAJun9_uRNcX6vaQsuMnbkreO1Or0tONlIZy-l1xYVlGuBle2IAXu4ORjWasvDZQa3XmpiXpaqyEQyC9La9hrBqJJ25HwiiYEe4BCgDKCZ6gxxxlkmjNMALHO3DfRzvo3TPMQL4DqB8MAyEAMVUCUFqw0oI8LJ7dHa8uTZbUjPYjQ29-W4DgBYwBPHSHUF8i_pT7E7jJTyPAnJp1ah9hLFFp5lttDxCBemy4-Z0Miap_X3aMsi0VhrumDFkwyA3kBhYKSHUN_MSw97xAEqP9nXwAVpt1Y5972Wd73FJRVOy_sZjU9dKux4LYiyXm9kW4HmcZm60klFhDzUDKCONVQDl0D-G5wDPKTEWoGyl1Q4CNHeNIL59Ut4iDlPb7fGwK5T4Wn-SlumKUOZIbx8a9ftaM00sV9IZA8_h3Bim3TUEScANAXjxpLwzZL8T4aWhBKAEAoQ8FLx4OrTtrpHoTbNj0kJVQS6p2tXE8kIw2OoTAoQASmFFuGDlrCX0_vPd_PEOmqbYcQsJLJqNm11KWzfP3jyxuTENMwCtIJEl7JiHdssg1cRsYUHon1YTyjrxj5bQP2HZ7OqTxYMZ9H_3Wm002Z20Mmdt7UlFq6LhonRHN9NWHxMFIEA4gME-OP6hFKEyKQd-YQ6mPbnXXFqv1JP2ds_6Tpp8WytjNSM7b8aFm12tUc87sODFyGt_k3zvbvCNJMLMuKQAz1OEAZ6HA8zhBDNGcQEnANsx_kFkKZgGKPtL8fLo2B-CKneTagAKTUCFiCXPEfnQyBE20_n4W1Ed4dDaeVgYxG6m93DwlCOCYzgl5SPNFIV4TEjUIUirNEuyMo7yLIDrtWbGKs3W2oW77DT6PkvWSXQtuGz21xvZtA213WpGyplRswCg22AfojwLXAo5iYmHYtK0KlmWQk24cTnjNG02ghf0evH7P7_9UZwu0QylAK2M1wOg1Wzmrg6mZLWb6U2rpjmYvzwa2bhLP_TMaRyHAM-DHkkyQVKlVQhJobymlyGxZcuGf8oLySZC0rEQVuGKwPWa-AC7dhFwXZDLdW-fO520IvOxyGwqMkrRBbajzmqJtxoOohSNrJYP3TMJkzIrswsyFF68koueS0E-jTzXcFk4uDjLOtpwp6OLUqPQmlBUBLgcADzhvifGvKIZvmtbNswO4J-PG13i6OF3N7y49uCBRyhxwLMe-Ci-phEK4yR0BidSycNONQZKsmOm9pznLTK3flmeks_Kp5xWMZ8hGvlVvhW5S2gnH_v0ANBqLOQY-3DkfnCPfxSK0ySiMS0GxJfMEi6OzvCkvtYO6LwktVX6hHfkMy1n85c8bNoyl0QcDDdfiCQbF2kXsFBKuGMjfR1Sdimy7Q9QtE7bU-UHVbrlqGOKKulXh-f5aokamrflJ3BxOe3pwd_Rk8TQ5cfBbHMre6faWrMK4IVv7SAdfZESIdyqZ13Jkff-tPS6MCCU3Lxr0s-XT27qP31edcwQcbe3mnRzaJB9HcXROPtGGQ3zt7H7Hj94H_YkG2OPJ-5RpWHZukdvgS-fPz0slLRsb9sbbM9oY9mcthF3MbbtnW_lSnbtI2u2xk86-1zIEVoM6JxrTQ4PvtsgvD78Jl0Rf_e8tPdETh-DBqp7-lDqw2fPXzLhL6UZ-Umjz7tDShzkk6CSTrTO0CjZXab1Pa-Z4JJN8rXrelIm-XAapu7xSRqrfWXmpt_8XIdugeEbOuz3RDNpP8lKtdP1tVXGa0wnnumkZzqbMJ3Tgk4AHlU-8epWd-bMKugsb-8Hn2U-9wQ9-HwKvijZK-Dft3h7DVnikCU9MhSMkeGyrBCsma6U3rVhy7xS9BpbdrXelmhWrmurAV70Tzz62vvLRgN8d_SNiTcP4-rULl8E119r-4VwuVCy4pvBGJcS8aSUMIP3By6e9cMe11NZNJ7cKJxyQ1AOa60oM-a2qSpfTF5ETSP5vxv2HTVf2E7pw3GoQf-SVaQRdl0ywSx7-RmXNu8u52vYb8mJYNQ-sA03Vh-69l7Oky9B733oeIPPXUR1FLnyLkQ91WhKdRYWzyv1E1L-PJUXunC_VkMvLIF-nEovE_u2xfhFThCHaOIEeOoEaT5Mpp_VhlMiHphphH15WfnSAz8Lk69WEn8XZ-8Lkx-pyTkf_1-UR0MHH9VHaUoRq87UR7-MI_-aEeu_KBuHNo2nNo3KeDAdTC24ncvyfrJs-H9Q9Av619kefWXTHi9do_RvMl2i-s1ywS1nxzUymlp4UtliQrL877E2-dh0H4-LIpROeS1R-SKvXclKt6QtTudj13i0msvNA6vO3D5PyscqG_sKMOqVzabKVkH2Icr-SK2SZGLCUV2LEhJlWQZ3hMvX33J_L_B4epqHkxfcp03b445MQLMUrteCF3RtLNF2fRR9yR4QNc1x86s99Y1-HL8fhKOo3xBy4sOpsnFIYCu42xd6x1a23yjqBjttFc0LpS3zL_6o0szvp7Py1Hz6huKqvMFljnNyxW7CNAjTLMyi7Gp7kydBVtCcVkHOorhIc4RZXEQoKrI4yXF6xW9QgHCIgjjEYRBlM1RVUZnkQRQUIaMRBVHAdoSLmVNmpvTmyn8KcJNGURJfCVIwYfxHRQi1-iEQL6_0jde9aDYGRIHgxpp-AMut8B8iuXIfxMsXtu5hTYxpPy9gJVTy3HcY8Bu3W0h-xGcWV40WN-__fsLz9p8AAAD__yluhHc">