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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Convert-complex-to-llvm triggers segmentation fault in `tosa::EqualOp::fold`
        </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>
    MLIR built at commit https://github.com/llvm/llvm-project/commit/97a1c98f
Reproduced with: 
`mlir-opt --convert-complex-to-llvm temp.mlir`

temp.mlir:
``` milr 
func.func @func(%arg0 : tensor<4xi32>, %arg1 : tensor<i32>) -> () { 
  %0 = "tosa.equal"(%arg0, %arg1) : (tensor<4xi32>, tensor<i32>) -> tensor<*xi1>
  return
}
```
 
trace:
```console  
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 --convert-complex-to-llvm 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 0x0000000100a278c4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000100a2692c llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x0000000100a27f5c SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001aad414c4 _sigtramp + 56
4  mlir-opt 0x00000001019c7344 mlir::tosa::EqualOp::fold(mlir::tosa::EqualOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) + 328
5  mlir-opt                 0x00000001019c7344 mlir::tosa::EqualOp::fold(mlir::tosa::EqualOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) + 328
6  mlir-opt                 0x000000010199bac4 mlir::LogicalResult mlir::Op<mlir::tosa::EqualOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::TensorType>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::NOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::InferTypeOpInterface::Trait, mlir::InferShapedTypeOpInterface::Trait, mlir::OpTrait::InferTensorType, mlir::OpTrait::ResultsBroadcastableShape, mlir::OpTrait::IsCommutative, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::tosa::TosaOp::Trait>::foldSingleResultHook<mlir::tosa::EqualOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 244
7  mlir-opt                 0x000000010199b024 mlir::RegisteredOperationName::Model<mlir::tosa::EqualOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 48
8  mlir-opt                 0x00000001021acf24 mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) + 72
9  mlir-opt 0x0000000102135c0c mlir::OpBuilder::tryFold(mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&) + 436
10 mlir-opt 0x00000001020e5968 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 1376
11 mlir-opt 0x00000001020de7e8 (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 936
12 mlir-opt 0x00000001020e08d8 mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void>>*) + 80
13 mlir-opt                 0x0000000101b9dfa0 (anonymous namespace)::ConvertComplexToLLVMPass::runOnOperation() + 400
14 mlir-opt 0x00000001020a3518 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 428
15 mlir-opt 0x00000001020a3a48 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
16 mlir-opt                 0x00000001020a53c4 mlir::PassManager::run(mlir::Operation*) + 1148
17 mlir-opt 0x000000010209e788 performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) + 504
18 mlir-opt                 0x000000010209e358 mlir::LogicalResult llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<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, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) + 704
19 mlir-opt                 0x000000010210904c mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) + 656
20 mlir-opt 0x000000010209c780 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, bool, bool) + 216
21 mlir-opt                 0x000000010209cc74 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
22 mlir-opt 0x00000001008c9cf0 main + 108
23 dyld 0x000000010589d088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWc1u4zgSfhrlQiSgKNmWDjk4TrIdIJkEcdDAzsUoU2WZ2xSpIal0e55-Qf3Ykh077sHsorHYIIhjqcj66qsfVklgrcgV4nUwuglGtxdQubU21zMtpS61cZWlF0udba6fHh9eybIS0hFwhOuiEI6snSttEE0Ddh-w-1y4dbW84roI2L2U793HZWn0v5C7gN036wJ2n04g5GmyCuhtQKevWBqdVRwz8l24dRBNSXMjGNNCCnOpS0cuL7lW72jcJddFKfHHpdOXfn_isCivvFwwpu26-u_uejTd7tf8kkJI0ypZVYpf-T8kiKn_DFgSsBGYnBIPxaGy2gTRLP4hIhZEdwGbkUYgHAp0t1NyGUR3pN4nJcHkptVE_DK_6S0JGHPawhX-UYEMGNvp7O1er_ZksORDEMcUb68HbPpDhP5Wq9-gq4xqyZjc7rHSSrXsGeB4yBzXymqJpJV6ebybzu-IrZY-IIAsq5wY9KFDnP75ABHWVmgDdk9AZUQoLqsMiVsj4QbsmiyBf6uBXTXq5w74N5JVRblFSq8Cmr4YnRsoCJi8KlA5D4L8VCjtbV8Hpq4csZtiqSVRUKD1jkFlK4NkoyuyhncktUGNkPgTDRHK3zPkZfr2hWhDLLraHlTvwmjlwZF3MCQY08fHr0-L-T-fbp4fH36_e134JT5WnSalFqpm1GdPurOV7IyiP2jzE1IKbJLwuMbiZaOp3djmnxcjlKvNeqv9y5KdkIHvC22dQSgCNvYBJpSrY5DdkNG4URn2VO7_DCGMU8Y_gvBaqbnIFcgvoDKJxnZ5wm5IGLJGDTtu2WrEyWCDgCU9oFEcN1tEhEixtBvrsFiUEtxKm-Iq20ix7G0JkMVhzGOysCJ3BopyYG78MY4w5ZMojklXXaKpz-bmvzuf0s9l82WlZRaw5ITcP1ChEXyaQenqpN1RNjUGNq-4CqLZboOpc0YsK4c-rZukr81mSYN4dJ6DfmELxudakC6B9y141LngIF_RVtL1rntTZqcMZbOB9JsB4Zovv6PRr5gLrewJqWeFjdLTMm-bErNWsA_ora7X_m7NiL_0UJTyE1jzinO0VptTyH57LtGAymwQzVh17vbP5YN6ByPAV86B2INaYY3Uizg0q_aQiKbN8kPh-RpKzM5dMoDRKNuRc1yyIdXeGA0ZB-tgKbFWfGp3O9NFUTlw4n1PbqZVJpzQCqTczEvklYR6z_NwT-V32Nj-Os_3B6uesNBmc7daIXfnsLOL3DdtocvQVvPdLl_nQuWyDckvWn_7JPx9DiZ9W9CAtz5gU6__Z9J5ID4vQMqvyJ02dcD1Vz2X91puk-GuPnCaOsC6Aj45vw5Q1q8DPmGtQ4PZ1pTfoGhpfdIZys8J2XJZ8_cL0RO3VTI5jx0WAl8N2Nnh79f3_7IVk_acTz8-X1kYjTjlA9Q3lZAZdj4zm_v9g-m4Y05h_Aqywj2Ko67ZoR-jozhKx4lv_0BptSl0ZZuOsKx7qnQPzyPmUHeDzXXZfj0JflCM3tFYodULOIdGveJ3I5zve7aIw2jSQQ6PQM5wgudDbpS6DnLbL29v288jZmDQftD4McvfW5h61bsWGRnQcSsgV9o6wRsre31CuvUOO-YdmmRJj0EoS7l5AeMEyB2bP03_G5gcXdsa7wTujf4TO6e0LpqjH5KV7aR3lt-isjhHd5yrQ_EnKB_USp9c4ins-qlpR1XSjnRhdF4lXabZCuhnQdLGxqyZnd60n1tewLbtvanUs-qh2_b2Me3QxEf8BtEo7PstQwdCbg9Y_Vx6Nds-s9U28GONY9-Fx507VSA3VtgnUJD7jJqRpdZ1a1Sp-tFI1h-C4q5FDUdHTYD45014ESVKofYrghfdIhv_7Tb1F3lVD8o6U4_L2hzsOhTonR8d9hcwqJyP0y7yp7vOvvP8-Lwzi8IoGnT2fSY-9PuQjm6Y7M7KcHLEXSlOkoSUaPxsOOWHpe1wJu647D6tyxrRxSJsJ901GMwWpRvOQnNdGY5PuQmiu0Fx6PWDjw-vM60c_nAHlWCvZB6beg6yoR9AaVuIhza0Az5t2642BT93UorRKDk6fv0V5IdcVkr8UeEBl03jfFOtVk2AHy7McAWVdIsMJfqu5djitmT2md73ebrtBzlIuQT-bbFSA0OepDDPpXsCoT6Jnl_Dwr8zlgZntkTumu7bbI7ky3mf7VETsHhBm_lEapX_OgwexEjT1W5zKD2zOacpjfttri2lcFOVvRjth_sO_S-SGf8TmXxS4uPaOO4eB7JjA0HKJwkl_68I_8GK0DwcCDtPhOeeUpxP4qOeaRshvoam5dkfHJ0RKvejzdl2tb0Ho23vwT6eUmjCU76ipAChmhXbBRHJNjLrC4-SNKNJQqwD45rTuuNh7_XMRXYdZWmUwgVeh-NJHMWjySi6WF_DiK8gHEfJCLJJloR0ldIwjZZ8hCycsMmFuGaURTRkjFLKougq5uF4HK_4mI1jlix5EFMsQMgrT8-VNvlF_bbmekzDlF1IWKK09XtExhR-J_XNgLFgdHthruvXIssqt0FMpbDO7nZxwsn6BWTN7-iWzI69nDEiz9FYYjHfNqGkDnniSRzTU4-wx_SiMvL6r7-Squ38dwAAAP__4e3Y3g">