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

    <tr>
        <th>Summary</th>
        <td>
            mlir-opt --arith-expand crashed
        </td>
    </tr>

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

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

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

<pre>
    The `mlir-opt --arith-expand temp.mlir` crashed with the following backtrace.

```

Assertion failed: (isIntOrFloat() && "only integers and floats have a bitwidth"), function getIntOrFloatBitWidth, file Types.cpp, line 92.
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 --arith-expand temp.mlir
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  mlir-opt                 0x00000001047896e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000104788694 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt                 0x0000000104789d80 SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001aae114c4 _sigtramp + 56
4  libsystem_pthread.dylib  0x00000001aadf9ee0 pthread_kill + 288
5  libsystem_c.dylib        0x00000001aad34340 abort + 168
6  libsystem_c.dylib        0x00000001aad33754 err + 0
7  mlir-opt                 0x00000001066977a0 mlir::TypeRange::TypeRange(llvm::ArrayRef<mlir::Type>) (.cold.1) + 0
8  mlir-opt                 0x00000001053d0c30 mlir::Type::getIntOrFloatBitWidth() const + 152
9  mlir-opt                 0x000000010535a328 mlir::Builder::getIntegerAttr(mlir::Type, long long) + 68
10 mlir-opt                 0x00000001048635dc (anonymous namespace)::CeilDivSIOpConverter::matchAndRewrite(mlir::arith::CeilDivSIOp, mlir::PatternRewriter&) const + 92
11 mlir-opt                 0x0000000106330560 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&)>) + 1236
12 mlir-opt                 0x0000000105314fe8 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 1948
13 mlir-opt                 0x000000010530eae0 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 936
14 mlir-opt                 0x0000000105310c08 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >*) + 80
15 mlir-opt                 0x0000000104865450 (anonymous namespace)::ArithmeticExpandOpsPass::runOnOperation() + 512
16 mlir-opt                 0x00000001052d9ea4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 376
17 mlir-opt                 0x00000001052da424 mlir::detail::OpToOpPassAdaptor::runPipeline(llvm::iterator_range<llvm::pointee_iterator<std::__1::unique_ptr<mlir::Pass, std::__1::default_delete<mlir::Pass> >*, mlir::Pass> >, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 120
18 mlir-opt                 0x00000001052dde50 auto mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_8::operator()<std::__1::pair<mlir::Operation*, mlir::AnalysisManager> >(std::__1::pair<mlir::Operation*, mlir::AnalysisManager>&) const + 344
19 mlir-opt                 0x00000001052dd980 mlir::LogicalResult mlir::failableParallelForEach<std::__1::__wrap_iter<std::__1::pair<mlir::Operation*, mlir::AnalysisManager>*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_8&>(mlir::MLIRContext*, std::__1::__wrap_iter<std::__1::pair<mlir::Operation*, mlir::AnalysisManager>*>, std::__1::__wrap_iter<std::__1::pair<mlir::Operation*, mlir::AnalysisManager>*>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_8&) + 136
20 mlir-opt                 0x00000001052daeac mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) + 996
21 mlir-opt                 0x00000001052d9fbc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 656
22 mlir-opt                 0x00000001052da424 mlir::detail::OpToOpPassAdaptor::runPipeline(llvm::iterator_range<llvm::pointee_iterator<std::__1::unique_ptr<mlir::Pass, std::__1::default_delete<mlir::Pass> >*, mlir::Pass> >, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 120
23 mlir-opt                 0x00000001052db974 mlir::PassManager::run(mlir::Operation*) + 640
24 mlir-opt                 0x00000001052b50f8 performActions(llvm::raw_ostream&, bool, bool, llvm::SourceMgr&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>) + 468
25 mlir-opt                 0x00000001052b3324 processBuffer(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer> >, bool, bool, bool, bool, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, llvm::ThreadPool*) + 568
26 mlir-opt                 0x00000001052b30a4 mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer> >, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool) + 284
27 mlir-opt                 0x00000001052b3c9c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 2180
28 mlir-opt                 0x000000010455a618 main + 220 
29 dyld                     0x000000010a1d9088 start + 516
```

The `temp.mlir` is attached [here](https://drive.google.com/file/d/1C_x0vQnB8JgWSAhrziF8iQViNfafMZos/view?usp=sharing). I was planed to reduce the file through `mlir-reduce`, however, `mlir-reduce` crashed. The detail please refered to this [issue](https://github.com/llvm/llvm-project/issues/58257)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWVtzqzgS_jXOiyou7oYHPzhOUpOteJNJUjO18-IS0MbawYiVhH18fv22BBhs50LqZGZ2tzZxYkBSX76-qBvFPN1PX9ZARoG1yZm45KUil5dUMLW-hG8lLVKiYFOO9SDOIYmgcg0p2eEEonDhiuc537EiIzFNfleCJjAeWdcja9b8D6zm03s4kxKEYrwgK8pySEfujIyckMm7Qj2I25xThbcjJ8KnAX7wy-FFviesUJCBkEQLttLzJFnTLRBKYqZ2LFVrnIoLR86crKoiMUwyUB3hK6Z-refhDGROXvYlyHFSlvpJzgogkdOo8Hh_M3u-IbKKN0xpHlVGBJRcKKI4WStVShR95NziJ0NEqnic8A3e5Pm2_bosBf8nJKjQLZOyAokXRnxWJHmVgkHRwHqG4LPCByStNqXmYh5ZOBQ9Cp4JuiFUZNUGCqWFIB-b74SmsSGvFJH7TcxzUtANSG0GKGQlgOx5VWNrtKgnse8gUHA9Jsjj7OUnwgWRoIwSUGyZ4IWWiGyp0D51f__LYvn8j8XVw_3dbzdPS71EuxGiV3I0pr5gStvroCDpNDn9sb5Z9Y9teZMwCiA0sum17kzuZX3xKJCwUfNFY4kKdZME3S25VALoxnjWXHtU7WdXxA9qEezBIoRB5L0mwlNVPLOsoPlPaIEc_fXgzVfEtp2ajTNc0zS0yBFBHSyd4K7n1SRdgg4coxho9GWZU7XiYjNO9_iwR5JSsG0v8chSsgz9DV2hr753REStEay0oXFEJF1FABZpZix_Z3lu6DhhWBPy-4SSlsSpgkjI9VzPIjTWcWUgChoKwWAK7sT3CAhh1je5ZjIM4CCIJhNqmbm1-XRGeKJFBqe3fVeaCUH3T7AaufPjlSP3pjZMiMkgT8d2a6ZGrHCYWL6bWol7KlZ99UZCMz6W8EI2MPqNp0VDOfrUdcIex6uK5SmIPlOdfmdKaQ88kUxnT477gP7Xqtwa0raG-XoYuH6aaOxowYv9hleyzkulieSoZjcHll-z7fPdQznnxRa3klbGDVXJelakT7DDHAhHQpqseEZAi93NeaQKaRXNcmFyRB_SqEHUtoe5lutafmCdM5iVZc4SqvgAuR9KEFTvYyNn9rG0814-ajfApTBuGnOuIzQ8I1ArWCtrvPcdIlvO0h8m0i2-5xnikD-BrHI1jG6TRh23TdfOQO-2vRXuGB_41gHte8io2e_q53lzO9A0tV9KHHrdpYwKkdeGhztQBQsoptyhKpwER1LfHoblx_nsSMFPe8Y1o1mB2y1LzswXHaznDbWelVj93EQxhPaPFMtImndof9o8L1hEgWpCp5twK_h3aI3WmPAZ65zOGftIXGPJBDj8Nnbn0xe0vCtW_N0lGlIEjRjgZi12YbOR2P7QpOp7_odeM9PpcQNorBtTOD6U8pHKpqARVfFQ9KQ7VDN-W83YwTA7OmkE1OshnYLCHqDV_4U_lJrtLKXlITsi95PMgHKdmvRtY8-wbtpLJhe0oJmOwDnRqVB_VwWWQAWk_TLQnbSuORmqEvWcz6v0yErQ7cZRFOoUobeFpajrj3k3ZApmgGU7BQelSuux5dKuL6qC_asCLNvEkWPViM3J-YIUVhRT7zKFHBScL-p53_HW0xv7YjOc8rnDkBOm0UGlXxOkm1BzrgcaeDFF4IAOtTZ4Z90e0kZSONTSKWAk0Qrbls-auxc_2CgUyd2mRN3DGoImBkeOtwzrS142Vjax9qqtS8rEu-njbexby4VfTPWsYDq0JnY0GOIo7FdMxxVC91y_OaBxru1L8xzyWy5uaLJ-FanlcidoaSLn65HstsY_ziUQVmOujsPi_u4JdzEF31Qj41-m9v8m3m2OaAsVZ1gLo3cDoMkXy1bXTFEryrDuQ--1q_jzovyJe23QvnRwBhbx_99r_9v3Wmdgr-OkcTTxTrgfssBrrnoMR-NgXst2YJ_hxL61CgmS0u_OZsl5o3T-DrGFtv3u5j7zSiSwyMRZg3Gev3-0W-7QOW22vPY1jDOsY0AQXBcBKwVPQMqrarUyrxzfw-CD8OiWLmDDxb6lOShM3ljchcSpAd42yNdB2zcmNro5JOoJMoag7M_6wxfzivTRSHNwTf9glaGtU-xaR63TAq8eSrWgrPhPts5fg_5HPtHfWZ2wqVKdoS1f7CZR8qYpmtSarGmdRE_i-1kJVmT6XctgPRo57bb3d4Z1LJ7v00B3NyhXTQHLmIZCRNJ9np6tPqFA7TSywhAdgTZv5307eOdorzlMPDo0ZJJQpbA4x11n5F-tQcDIv0acjk_QUsG2MM44z3JoztH0AZ0ewT97vvxmbX8ursK_Zb8-z9biO7sN2c-_sL-v6GrxG9fnalsGu5F7W8ly5F5LRJ-ZV9Fjckd2VJIyp3rjw-ZNQFol9dGbOQNUa8GrbH04Bq3HtWpogTXfwbYOh7Px9kB0TLTidTGCfIBKQCYYBzU_tUYMUHVzAvia7p85PfRDx5-gWhcwtYPAd0M3cqOLdOqm-E0vFFM5TN86DmzkvahEPv0xEcKL9dRz3EkaB_ibemGcrGJ3tZoktjtx_MiyvPQCWzTI5RRVHzlOATtSI-A4CMIFmzqW49joZVbghn40ngQQ09iyfDsJsXYNRp4F6Lr5WMsx5iK7EFMjUlxlEgdzDBTZDWKm0KUNGHZIH_v0NRfTuT6i1oe2lbQuDP-pkf_fdchItA">