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

    <tr>
        <th>Summary</th>
        <td>
            mlir-opt asserts on quantized types: "only integers and floats have a bitwidth"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    I have a quantized Tensorflow lite model which is in TOSA dialect. I would like to reduce this to linalg so I'm trying to use mlir-opt to do this but seeing this:

mlir-opt: /working_dir/llvm-project/mlir/lib/IR/Types.cpp:92: 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 "-pass-pipeline=any( tosa-to-arith, tosa-to-linalg-named, tosa-to-linalg)" --canonicalize -convert-tensor-to-linalg -linalg-init-tensor-to-alloc-tensor -eliminate-alloc-tensors -linalg-bufferize -arith-bufferize -tensor-bufferize -func-bufferize -finalizing-bufferize -buffer-deallocation --buffer-results-to-out-params --canonicalize -cse output/net.mlir -o output/net-linalg-buffers.mlir
 #0 0x0000000000936973 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm-project/bin/mlir-opt+0x936973)
 #1 0x00000000009346fe llvm::sys::RunSignalHandlers() (/opt/llvm-project/bin/mlir-opt+0x9346fe)
 #2 0x0000000000936f6f SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f0aa2892420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f0aa232500b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007f0aa2304859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f0aa2304729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f0aa2315fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x0000000001ac68ef mlir::Type::getIntOrFloatBitWidth() const (/opt/llvm-project/bin/mlir-opt+0x1ac68ef)
 #9 0x0000000001669cda (anonymous namespace)::ConvConverter::matchAndRewrite(mlir::tosa::Conv2DOp, mlir::tosa::Conv2DOpAdaptor, mlir::ConversionPatternRewriter&) const TosaToLinalgNamed.cpp:0:0
#10 0x000000000166968b mlir::OpConversionPattern<mlir::tosa::Conv2DOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const TosaToLinalgNamed.cpp:0:0
#11 0x00000000019e50b2 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/opt/llvm-project/bin/mlir-opt+0x19e50b2)
#12 0x0000000001b4a9c2 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (/opt/llvm-project/bin/mlir-opt+0x1b4a9c2)
#13 0x00000000019f0959 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#14 0x00000000019e8703 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) DialectConversion.cpp:0:0
#15 0x00000000019eb863 mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&) (/opt/llvm-project/bin/mlir-opt+0x19eb863)
#16 0x00000000016681da (anonymous namespace)::TosaToLinalgNamed::runOnOperation() TosaToLinalgNamedPass.cpp:0:0
#17 0x00000000019a8790 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/opt/llvm-project/bin/mlir-opt+0x19a8790)
#18 0x00000000019a8f34 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/opt/llvm-project/bin/mlir-opt+0x19a8f34)
#19 0x00000000019ae126 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_12::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#20 0x00000000019adf6b mlir::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_12&>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_12&) Pass.cpp:0:0
#21 0x00000000019aa1f8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/opt/llvm-project/bin/mlir-opt+0x19aa1f8)
#22 0x00000000019a8888 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/opt/llvm-project/bin/mlir-opt+0x19a8888)
#23 0x00000000019a8f34 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/opt/llvm-project/bin/mlir-opt+0x19a8f34)
#24 0x00000000019aaf43 mlir::PassManager::run(mlir::Operation*) (/opt/llvm-project/bin/mlir-opt+0x19aaf43)
#25 0x00000000019802d6 performActions(llvm::raw_ostream&, bool, bool, llvm::SourceMgr&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>) MlirOptMain.cpp:0:0
#26 0x000000000197e5da processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) MlirOptMain.cpp:0:0
#27 0x000000000197e277 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool) (/opt/llvm-project/bin/mlir-opt+0x197e277)
#28 0x000000000197ee7c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) (/opt/llvm-project/bin/mlir-opt+0x197ee7c)
#29 0x00000000008d20f8 main (/opt/llvm-project/bin/mlir-opt+0x8d20f8)
#30 0x00007f0aa2306083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#31 0x00000000008d1dde _start (/opt/llvm-project/bin/mlir-opt+0x8d1dde)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltT47gS_jXhRZWUIzu-POQhw6WWKjhQQO0-pmRbdrTjSF5JBjK__rRkJ7EcGAgLZ09tTQoSS2r15etWq2U7FflmfolW5JEigv5qCNfsB83RA-VKyKIST6himqK1yGmFnlYsWyGmEOPo4eZ-gXJGKprpCbpET6KpciD-TpEWSNK8yeBqBcTQrBgnVYmUQJcjHK2RlhvGSzPSKGBeMTkWtTbtXLST0kYjRamlgvbIX4y8s5HXfW9nQDca4YsnIb8D5TJnElpV9bge11L8CZpB09CaXpbC9-UdfD1saqomWV3D9AQbHg1XrORgN-PaqmPk-QtD2F6VVF9yfSMvKkH0N6b_YLlejXA8wgnKBFdWk4VSVGomOBqFHlP7CR3hCIfwBz9Y8GpjZNGSSoUIz1Fh6NTWESnTT60EDHihgrCK5pPW9tur88X9OVJNumba0DYlwF0LafFbaV1btPAF_JVMr5p0kol1h8shPEyphiq4sGownlVNbhxHUSaJWqGUZN-1JBntxN9r6EB5s653PvFgKLmVopRkjYgsmzXl2iix9ywYMq6JUuOa1RSiAWA9I3wDwIDSioy1GBPJjMGnu442aMacrGl-2A-AAlM0HmeEC84yUkHgojE44xGcMNY2gPfkaMuOcdYfJVUlsq6NxqDaGsg0dfrVbnLaFAWVVpBVt9_R8ez1FA3PnLZhwn5ApPZ728txTq1IYuNnvO2VVDWVVkZT0WiAECBWh0bDIoLhujEO5VRPDO5oLJxO1wZlaVr_gXd8D3nP3u6T-GES-chGjI1_tVHtxa2EsLUx8GCCAhy4J5LkaSmUlpSsbaifmhBvAx_i_8Ks14PwSxnv1qhdz_ib99wKN_7daTcdaBeEBX1Ju7uG38NCJtVvEMwVWLlbeccpYPg7CuAhPEVYIEcUiOisbbu3Ccaz_ztGfscoKjxCcJzgAHtouQQ_ayHpUupO1zZdPcfhMgyM55rnccmbdqDWK8A4nygx8azC0wC4OPoGjhgfzzwvRZIwCJS3-WeGc2g5Bz5MdDjPXM5eEM8SRFLxLs17nDGGiQ7ncMg52nnu3Twj7PKMXJ7TWZGHx_H0fZji8Iz7sTAlWRjT4mObxpFx2clylEkcZcIwyXJi2Jr8sFmLRiGTP1Vt12rS6nUKOfK0zZO0U3pNdLZa8PyOPkFeM8t6b5DJu_uJ-OymNkv7Z-OLnNQQzi5ZK1FBerslGgTzTpa0uWKLyAMwexBXNlX9x2T-w2Vk8oE3NDuM056sm_pA2sg__alJ_vnbSNzUVNoEPcILY9w-Ay2kJJs78E1fyu-kaqhh_HU4OIlxmtCZl-KfyTrexv3Iz9Q9MpBbRXeBbCxxMuw0DUiS4UPhi7quYNszwfXJlvS9aTZuMxHSsvFoKkSFHNYdg670s0B0fn6VyaNg-d9msp98JUqz_d_Z-uB9fI_dBjsnOF7y3XgrvGSWvJVudn64oqUtWDo9q675Tqe9tW7O2rPInuzlFRMMVkwcef67LRhkza7Y3A0rpxx6MSc49h0dMmBjyaHEYpnj13eaPhuYnsah3wOYwNraXDRVtedztGseoPynultQe4ILKX7QrcM6991T3Q_R41OIUd8JznCwKcTTt_fCgzzblbINv-E9g-2efUB7Cyeal6GOXKhJHCVeD4-cajjSbWF9EDe1YbXdNrcaDFa1UgfAv-6SBSi5UUxdE05Kardik8bMb_-w-xHgrTEO8PHQ2gIK0GOtvd2eDN2YM6Q7I8JPN9_dFhQc2uEAYw-wpn452Df6BK3kdqDT_ZZIGLjkhdiG9uJjCAOADsLJAGE6xeHRCPciGo5MPLtc14BI3ALTrYcRDpZT3F4LS21wiO1pO_4KgTDz2gDmlBOvLizsDYDIi7Bf-Lnb4r7f3EEhaWUcBMdsWl0IeU6yFSTZ5RKq_mX2_NwSLpdcyDWplmZnaeuM068128aY0l3ieYSw-B8I7Unsbjt8vVBTYZ8flMOfHroQR0ZGL1ivry7vYIvS9Fl3cP9y-j_h9F-o__uWGqTs15P14HRKyLSIP1mf4_dWo0R_b8V4WL3A599Tq8HHsdb_Vat9ba2Gg2HUF4E_UGxr6ovR4yL1kQgHgY5Gg4Nf7OE8RCClgPy7yA5Proc38rcO2f7uae9FIzN6XR56_HDb_bv3Ndzo2p5-r4HiptbXhL187sXuuTCJ6AzOhQBiRpX6Zp-GvGH9LoE3nP3V0GWtTQbfz7imayE3W1Y9-pwWBOxY5rSimr4-Z5eshzi_jvvnIdj3WXcn4Y6WDBDYHNwZe7BPHm6tNot3gR8NwcdR1A-S_fz_Gyf8MyC_5fqPbngWcScdxEOX0Ch71SVd5s1WpM2xg4V8ryXjpbnL9W4TP2ICaOiY4JyHvTjHnqksQOMjebcz-6x3T0K3j6FCL_ahdDVPhZZKE6mXPTnvfTAVABNHynRgwDTPKWr5H22CmbtjfkLn0zDEXpjEcXKSz_088RNyopmu6Hz3PJ7YVxUUErz30oc270WM7CsVx7yhcNLIav7x9w5m0WyKT1ZzP_GjeOYHPiFBEURhQGAjC4Mii6ezqEjjEzjA00rNR7NvIJTTJ2RZmFckZmcnbI49jL3Em8J3ECQTGhVBOp15EUnyDE_zUeBRcFw1MXpMhCxP5NyqlDalgsEKAlXtBwEgU3lQKw74k0avhJyvmx_EJIvvpDqx4udW_f8CnxD_gA">