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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`-test-elements-attr-interface` pass crashes in `testElementsAttrIteration` with assertion failure `isa<To>(Val) && "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>
          BealZephyr
      </td>
    </tr>
</table>

<pre>
    Test commit: https://github.com/llvm/llvm-project/commit/e7281c6f614230860cd18a9d1f24612c5c38e9ca

Steps to reproduce:
```
mlir-opt test.mlir -test-elements-attr-interface
```
Test case:
```
module {
 func.func @main() {
    %cst= spirv.Constant dense<[2.000000e+00, 3.000000e+00]> : vector<2xf32>
    return
  }
}
```
Crash trace:
```
mlir-opt: /home/ty/llvm-project/llvm/include/llvm/Support/Casting.h:567: decltype(auto) llvm::cast(const From&) [with To = mlir::IntegerAttr; From = mlir::Attribute]: 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-elements-attr-interface
 #0 0x00005555de7465fa llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ty/llvm-project/build/bin/mlir-opt+0x22b5fa)
 #1 0x00005555de74388c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f5f7a517980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f5f791c8e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f5f791ca7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007f5f791ba3fa __assert_fail_base /build/glibc-CVJwZb/glibc-2.27/assert/assert.c:89:0
 #6 0x00007f5f791ba472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #7 0x00005555dff1f182 (/home/ty/llvm-project/build/bin/mlir-opt+0x1a04182)
 #8 0x00005555dff247e4 void (anonymous namespace)::TestElementsAttrInterface::testElementsAttrIteration<mlir::IntegerAttr>(mlir::Operation*, mlir::ElementsAttr, llvm::StringRef) (.isra.176.constprop.188) TestBuiltinAttributeInterfaces.cpp:0:0
 #9 0x00005555dff25b9c void llvm::function_ref<void (mlir::Operation*)>::callback_fn<(anonymous namespace)::TestElementsAttrInterface::runOnOperation()::'lambda'(mlir::Operation*)>(long, mlir::Operation*) TestBuiltinAttributeInterfaces.cpp:0:0
#10 0x00005555dff1f519 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) (.constprop.181) TestBuiltinAttributeInterfaces.cpp:0:0
#11 0x00005555dff25255 (anonymous namespace)::TestElementsAttrInterface::runOnOperation() TestBuiltinAttributeInterfaces.cpp:0:0
#12 0x00005555e0064e4e mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b49e4e)
#13 0x00005555e0065ca3 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
#14 0x00005555e006632d mlir::PassManager::run(mlir::Operation*) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b4b32d)
#15 0x00005555e005a2a3 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#16 0x00005555e005a971 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
#17 0x00005555e005ab61 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
#18 0x00005555e012ca70 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+0x1c11a70)
#19 0x00005555e0055c83 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+0x1b3ac83)
#20 0x00005555e00584ae mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/home/ty/llvm-project/build/bin/mlir-opt+0x1b3d4ae)
#21 0x00005555de712560 main (/home/ty/llvm-project/build/bin/mlir-opt+0x1f7560)
#22 0x00007f5f791abc87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#23 0x00005555de7253ca _start (/home/ty/llvm-project/build/bin/mlir-opt+0x20a3ca)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWVtv2zoS_jXMCxFBInV98IPjxNguGiRog7PAeTFGFGVzS5Nakmrif78g5diWGjdp093tnqKxLrzMzDffDMdjsFasFeczlF2h7PoCerfRZnbFQf7Ju83OXNS62c0euHWY6e1WOETneONcZxGdI7JEZLkWbtPXEdNbRJZSfn2-XHZG_5Mzh8hyv5QseUHKhOVtnqSExmUesyYpoWqSlqR5QljGaMkrBii-RvF8-PzseGex09jwzuimZ9yLHibk8f5_eNxKYS5157Dj1kX-CV_620su-ZYrZy_BOXMplOOmBcZf3GSwFex5KbrpJceouBqecdsrFvkPjNJ4C0IhUiJSnczAGCOSMesQvca2E-ZrtNDKOlAON1x5WQuUXZEoDv84IldxjMgC0_Gb7BrRG-xd8JUzpw2iC_LUUoLozVGS4a436vkZFdd7Kw43Y3MWBuwGOwOv4-oFI7Lc6C1HZOl23zp6736hmOwbfnzxue86bfyMBVgn1DraIDrP8sJv2XAm3a7jiJTQO-2hC8voHNE5A-sQKZmHCy-NJ1kewM2uHoXb4AeNPahexWHBB-X4mpu5cwbRq7BkMsMPibp3POA5x3NruXFCK4zyWFhAdPGgPaSk_ANkEOZl5hgREtShi4fdMO4Hwax7zy6sWywU09sOnKglx4NNCSIEkQK3ICRvogHR-48388832Pb1VjgMuO7Xnt7aOE_0H44vYW3PLSJLDKrBe_Sx23DMgndrYF-Ch6PnkAL2BTf9tju4PI5QXN0bvTawPZhkX_d43QvZ-Kun_fLnIhAjQmMcP3mmZ1mWNbxI86yFExrYnR1u7o1QLuj_EChLyuMkA48rbZ3hMLBkgYVyg__Kn7HCB90TIXXWAiLVUddkoistS4Y_i7UC-TdQjeQGkXIvenhtI9Z5rOPwd9iI7Dcq2qwtIEuKqozxamW4ddrwlXF7zaWoEVk-lfkqTy-lUP3T5Vr1w0DnNoZDE1kdxUHhhFRlPNKXnoqpElbyssAGhOX4xPa1FDW7XPzx98c_68MjiUiByNIGKxBZRpF_2tmGd55vvRJPw4uvQRvV-8ewdcR8hCdjg9OJJlC0CYZaB0vfpolrBjTCqiCknAjJxkJqoC3g1QpCmK98HK5qeLvtw7rDzSCyGovMpyLTgrzBd8x7LQ9eo3FakJHXilOWtW3SJiV5F5MTiNOkHAspx0JIWvAUf9Wi8ZJAabXb6t5iBVtuuxBv1RBr_pi82Qe1T6gfDiEdht102HEDPsciujiTq30-PQ7ddc8LyNxH8nHkdFs_coz_z84Itf7E233MR8IaiJIij8Lx0RndRUkZkrZX_6oX0gl1OA4OJpyJ1mqCVVZXbMDqqIIvA7zWK8NbRBfPSJ6zq_Jm7885KX2aXrUeoveBb3p1p04ElYeFiBQStnUDyFP7-2qRUmq1HmM_mfbDMPrkGU95nSXVAONRTsMdCDncP4L8MmLNUptHMM1AKf0qc97nnJH5_wD55c40Pr8PBDvlVfKzgCRTXpEse2f4vcSAn9KNnOjG4zhPecrP-Omue9B33T1YO2-gC47ZqzLC2E_4JqbPR_tcgdxZYW9BwZqHgK-1lv7aq_DlpfkVp3xSpxVP-SE3etvpxPaMAf1h2-9Fx6VQfMIzP_VgUv7LwThd5EV9UNaZUNJp882u4wn7LB0G9rrfg-HKfVCtxoHw--AfB0CW-KID-81eplI6gTOnpJlo8WzXi8SZ5p53urumpBm5OxvrlwEBijtuWm2285A37CvVpnXNvlrdgOHNqvPH2uLkfNK9Yfx27VPWM5IT399-_PBpoZXjT-4bP91KYe46dwtCLbRqxfpkjwqfjL6Mfz61ryoS3BnNuLVXfduGqvVN5vVK_Kvn35h3y7fa7J63Opnf8BZ66VYNl9zx82v8WXjzdptP510LkJy5T3wtrDO7_fhRzkMoku9DsMzfBFcxhavOkxOBH_VaMJCfuO2lO3_GnFuASPnfg_O8U8_VHy864Dekx8tuf2PIvFgS_TZeOZZfv4VKrwdMOQqYhDAo4hNX2E4KN1fN_STj_C-s-z8M0u_OOJYBw_WdhyNLEiji0eFYTbJhxkr6cpz91bLEO-sMCqykp1CSeAJlmQI_C-W-mmMbGOq2-dlvvK8b_Eu4UdMmhVGdTCbtsIRkeYy3INT7JLVFlo9ISMi4ywI1Kwu8WklRs5V1YNxqL_VNfR1m--eG1nAbBsM-ocdD03SU4Agd20kyygAPgt_XYYyBsmOH8dB8v2hmtKloBRd8luRlTHJK8vJiM4OK0SQFVmeQlgnNeFqSitcxy2mW1yS-EDMSExpTmiRJWqRlVBQszXnFgOdJy9sMpTHfgpCR1zLSZn0RWsizPCnz4kJCzaUNvwkRovgjDoOIEJRdX5hZsKzu1xalsRTW2eMuTjgZfkzydSzKrlEef7__m8e4A2uHPjW3WIQm_PnuUR7j0PaHQ8--BSF7w_9jvfuL3sjZz3fkA6L_DgAA__-quWsu">