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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR]`-test-bytecode-roundtrip=test-kind=2` triggers Assertion Failure `isIntOrFloat() && "only integers and floats have a bitwidth"'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          xisang0
      </td>
    </tr>
</table>

<pre>
    Test on commit: https://github.com/llvm/llvm-project/commit/dca2ed31278c444f839e3e04fde0c21b62451d4a
steps to reproduce:
```
mlir-opt test.mlir --test-bytecode-roundtrip=test-kind=2
```
test case:
```
module {
 func.func @reshape_canonicalize_const() -> () {
    %0 = "tosa.const"() {value = dense<[0, 1, 2, 3, 4]> : tensor<5xi32>} : () -> tensor<5xi32>
 %1 = tosa.reshape %0 {new_shape = array<i64: 1, 5>} : (tensor<5xi32>) -> tensor<1x5xi32>
    return
  }
}
```
crash trace:
mlir-opt: /home/workdir/llvm-project-19/mlir/lib/IR/Types.cpp:134: unsigned int mlir::Type::getIntOrFloatBitWidth() const: Assertion `isIntOrFloat() && "only integers and floats have a bitwidth"' failed.
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 /home/workdir/test.mlir --test-bytecode-roundtrip=test-kind=2
 #0 0x00005926f2237258 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./mlir-opt+0x10b5258)
 #1 0x00005926f2234d7e llvm::sys::RunSignalHandlers() (./mlir-opt+0x10b2d7e)
 #2 0x00005926f2237c68 SignalHandler(int) Signals.cpp:0:0
 #3 0x000071d900b1a520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000071d900b6e9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x000071d900b1a476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x000071d900b007f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x000071d900b0071b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x000071d900b11e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x00005926f57ec105 mlir::Type::getIntOrFloatBitWidth() const (./mlir-opt+0x466a105)
#10 0x00005926f5719174 mlir::detail::getDenseElementBitWidth(mlir::Type) (./mlir-opt+0x4597174)
#11 0x00005926f571d457 mlir::DenseIntOrFPElementsAttr::getRaw(mlir::ShapedType, llvm::ArrayRef<char>) (./mlir-opt+0x459b457)
#12 0x00005926f57509f4 (anonymous namespace)::BuiltinDialectBytecodeInterface::readAttribute(mlir::DialectBytecodeReader&) const BuiltinDialectBytecode.cpp:0:0
#13 0x00005926f7702d14 (anonymous namespace)::AttrTypeReader::resolveAttribute(unsigned long) BytecodeReader.cpp:0:0
#14 0x00005926f77020a7 (anonymous namespace)::DialectReader::readAttribute(mlir::Attribute&) BytecodeReader.cpp:0:0
#15 0x00005926f477f2c4 llvm::LogicalResult mlir::DialectBytecodeReader::readAttribute<mlir::ElementsAttr>(mlir::ElementsAttr&) (./mlir-opt+0x35fd2c4)
#16 0x00005926f47e7c28 mlir::detail::BytecodeOpInterfaceInterfaceTraits::Model<mlir::tosa::ConstOp>::readProperties(mlir::DialectBytecodeReader&, mlir::OperationState&) (./mlir-opt+0x3665c28)
#17 0x00005926f76ff9f8 mlir::BytecodeReader::Impl::parseRegions(std::vector<mlir::BytecodeReader::Impl::RegionReadState, std::allocator<mlir::BytecodeReader::Impl::RegionReadState>>&, mlir::BytecodeReader::Impl::RegionReadState&) (./mlir-opt+0x657d9f8)
#18 0x00005926f76fb40b mlir::BytecodeReader::Impl::parseIRSection(llvm::ArrayRef<unsigned char>, mlir::Block*) (./mlir-opt+0x657940b)
#19 0x00005926f76f886d mlir::BytecodeReader::Impl::read(mlir::Block*, llvm::function_ref<bool (mlir::Operation*)>) (./mlir-opt+0x657686d)
#20 0x00005926f77011ee readBytecodeFileImpl(llvm::MemoryBufferRef, mlir::Block*, mlir::ParserConfig const&, std::shared_ptr<llvm::SourceMgr> const&) BytecodeReader.cpp:0:0
#21 0x00005926f770107e mlir::readBytecodeFile(llvm::MemoryBufferRef, mlir::Block*, mlir::ParserConfig const&) (./mlir-opt+0x657f07e)
#22 0x00005926f5629aff mlir::parseSourceFile(llvm::SourceMgr const&, mlir::Block*, mlir::ParserConfig const&, mlir::LocationAttr*) (./mlir-opt+0x44a7aff)
#23 0x00005926f562a198 mlir::parseSourceString(llvm::StringRef, mlir::Block*, mlir::ParserConfig const&, llvm::StringRef, mlir::LocationAttr*) (./mlir-opt+0x44a8198)
#24 0x00005926f54fa684 (anonymous namespace)::TestBytecodeRoundtripPass::doRoundtripWithConfigs(mlir::Operation*, mlir::BytecodeWriterConfig const&, mlir::ParserConfig const&) TestBytecodeRoundtrip.cpp:0:0
#25 0x00005926f54f84f0 (anonymous namespace)::TestBytecodeRoundtripPass::runOnOperation() TestBytecodeRoundtrip.cpp:0:0
#26 0x00005926f562cbcf mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (./mlir-opt+0x44aabcf)
#27 0x00005926f562d352 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (./mlir-opt+0x44ab352)
#28 0x00005926f562fade mlir::PassManager::run(mlir::Operation*) (./mlir-opt+0x44adade)
#29 0x00005926f562862b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#30 0x00005926f5628283 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
#31 0x00005926f56d19e5 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) (./mlir-opt+0x454f9e5)
#32 0x00005926f5621ee2 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (./mlir-opt+0x449fee2)
#33 0x00005926f5622193 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x44a0193)
#34 0x00005926f56223a2 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (./mlir-opt+0x44a03a2)
#35 0x00005926f2216477 main (./mlir-opt+0x1094477)
#36 0x000071d900b01d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#37 0x000071d900b01e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#38 0x00005926f2215fe5 _start (./mlir-opt+0x1093fe5)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWl1P4zwW_jXmxqJy7HxecFEK1SINAsFI72XlxCetlzTO2s4M7K9fOUmbDxqgvPvuanc0tCGxz3me8-FzYsONkdsS4AoF1yi4ueC13Sl99SoNL7fkIlXi7eonGItViTO130uL2BLvrK0MYktE14iut9Lu6nSRqT2i66L4dfi6rLT6O2QW0XU3la5FxikI5tEoznzfz2OWAAPi5wJIRr00pH7gCZ8jsjQWKoOtwhoqrUSdgdNIligk3X-y3BdSX6rKYgvGLtxv-PLSXV-mbxYyJeBSq7oUVssKsZvmyYssBWI3dCLKPcMZN6e0KFEXgFF0jcgS53WZLdwHRj7RYHa8gk3GS1XKjBfyn7DJVGksojGiCb5E7BZ3150AjDGiAcGI3WBEqVWGL7optB_5ixc1NGMElA7VCgXXBNEV9twHdR_MffgouGmUsCW2UBqlEVsFr5JRxG5RdNM8GKJ5P4i4AYHXaGvgdLQ6nNF1Cb833R12g7nW_A2xlQx9J7vBE4yVvdfxTrv3OtSPMdZga102v6Doxvmg_Rx4ItPc7LDV_BAMhwBo1a53ag-Irn8r_SKknsThpZcgunYz3AOZIrq-e0J0_fOtArPIqgqxpccaSnXZpIXAsrS4mcGWiC3dyPZqC_autA96XShur6X9Qwq764zc-pIt8dIY0FaqEqOQSNNPOHiZhoiGLgZUWbw5XbAFbTAvBc7dOIN3_BdgjlNpf7caKKIRzrksQCwQWT7-uF0-32JTp3tp3cB66_JFaesy5-w8lcbUYBBdNxhkmRW1AGx3gFvLpzx7aazvdD9bnr1gUe-r1hdkgZt_j1ptNd9jrrf1HkrrEOBFZ_omW0956nsZjBFlBJNXQggJEhrmlLKIBjFu-DWuMm-mvXjUsrQN6J9NANG4H6T5740yVgPfN15ZOW-0PoqH0BG9Jq8eSQMaOBd2CLwJAl9EcArBU10-y23Ji7_xUhSgzTEQTiqhIoJeCZ3SzMIYj8QhGneo29uHoCbNTyuFdVIiTySEpB4PKGlXhy4lXuNwE_qXhSzr18ttWbcPsoVRi7AB5tOAkh6WPxYYQpJnuLI7DVxsXmRRnCc9CZM866UHU7h-FOKtaeidC9uPwl5wOBZMSJQzzFOXOGeJpXGUs15s9E6sl54t0Et7gfHEAB4k4XkCWQLJgHgyDKMggswjwfeWuJNh64ch90jQ6nOpQcb6vMSL_IE-AZbL4qjxxtW62wLcujHQOcE3kzJ-kERe5Pe6vYlu4QfRQHejrOX42Ok0S2v1Ec0T_z1S_uxKoGghrAYJvnQF8QlyxFbZjuuu3M1ATP0g6iHSMcSAJLnvZrp-4m2vaoNLvgdTNQtW0qq7rmVhZXkjeQGZve7WybvSgs67ysiWLv8cGZnWFkYsJvOegAu3doS9Y08rmKwmDj0boo8iQoX3KXoHypmw09uBNar4BUO8xxJcqHLroI3xngDjT8EQHn0GpqM4xjJnuMHd8EuIgiEiP4pymvmDsPmhtq5lfAJTF8M247SDToBjq37SOIBvR8BHz1rsp4KTBbmg2SB_wjF-iDIaz-TuAexDdYzD48VPzaXtSuC9ElCMgLuGs71aueB7qBz6I9lHrSrXRLmu5EsxvBoAfKhAc9eAPVt-9NpJ5mEYZDTumUejWArzPMmHzE-55m5fdbaouDbwBFupSofaWNHe_wWZbVrfrwpqZbhnHYEVPgrjRaEy_ufkOUPfvrPamZhmjRoGkUjygVHjiVFTn6TnGfXu6Rky59BR8zZYfo-rxnEdHjErVPaC6PIDxIlP0h5xMkEcx6H4MmIXvqOg7dUPi4d7lXSUNrphkCrVdDYnorhF_kF1CYMojENxxE_JZEn0PADscB2Qr2UBDeKhPe9hr_TbdZ3noJ1ZZ2w4vPvovKNXqszltnsBasPqGK9mxzWITeVWp1Wv61nVOoP7rXPWYOLniyv1ptxIBANEU5Z_EcNZR-Tk0Lw7sOMyH9KE5_lAeBPcrSneYT1aaGTXbzukH_LDrR9SlW1VmE0K3-cRz_OeC5tw4V4Sn-bybLV0xXvIprn1Z6PqU3lf5xZ7Sb9E0VEPEfg5D-NPG5qfYPpCdHhXfeSmq3hCHW_-Ie2uZWM-yPBTa_EfWtpP3DkboCfxnUioYMI99nPyJ7nrunwoB-zic_CEkzjL0iyf6T4eqp_qodG7FLxqimKnfmTnBtjUxPPGX5a8eDPS3POSb117scJudXbfww2iD4KLp9kgcaIJIcECejahR1lBIUuYBJAbesQ51wZ9n-E40Iy5K43Vze6O0ifSdjig1dw-6LA_cg2lvStzdQjUjzI0ZQHtjRhPjJhzARPdBzYnY2BSTeeUCi4Gy3cyURqHNMUV6Fzp_bKp3uaT7aRv1sGhWe9_3D2tVGnh1b4z-X0h9UNl77ksT6wAg6fv82y8f-bI0ZjNvqXM9i1zE4YNcF3Kf9TwjvuwGo9sJSDndWE3AgpoXndm5nR97LAuTD2QHN8qMl4UKc9eNnk5ap0HRvqqL_9yPu9eeFz3bax-ex8cHwVAOwRRf0PaV8P2nfo_yeQDz3wSnuNNnFB4CQw3rExVSLss3YtiBsYcsP5Xgu5_MCU-HDHbaJ28Pbfj5ecJ9BuCbNoKewD0dCD_v6XhTK1JcoC-wLFpe029hM3apyvOzduuqwnLc532GbnZAkm8hPWg_Sloxuedeg7o76JjfGDSYHx04oV-FOE9l-XMyUvi-1G_R_vurMB9nbmpn4iE9AKnpwQe-ARvNm7Oxliu7eYA7hwV4A9UxBPKQQ4BboXPkWb5IU2XqdIWhBuYKQ3NGR8cthUOx7EX4oqJhCX8Aq68yCfUY77vXeyuAiZS7mWh72UijhMGGaM-S_2YxUEeAFzIK0poQCilJGYR9RYZBYhJGGaxF3seS5FPYM9lsXBBsVB6e9EcTF55NGY0uih4CoVp_mSB0vY8l6Lg5kJfNceZab01yCeFNNb0Eqy0RfNnDq6NQsENCsmXzxlDgq2W2-Zwtj_UXXNZ1Br-zYe7F7Uurr5_cNuZ6NcV_VcAAAD__zp8O8s">