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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Convert-linalg-to-std Pass crashed with "(op->getNumResults() == 0 && "Library call for linalg operation can be generated only for ops that " "have void return types")"
        </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/a0138390
Reproduced with: 
`mlir-opt --convert-linalg-to-std temp.mlir`

temp.mlir:
``` 
#map = affine_map<(d0, d1) -> (d0, d1)>
#map1 = affine_map<(d0, d1) -> (d0)>
module {
  func.func @func(%arg0: tensor<?x?xf32>, %arg1: tensor<?xf32>)  {
    %0 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "reduction"]} ins(%arg0 : tensor<?x?xf32>) outs(%arg1 : tensor<?xf32>) {
    ^bb0(%in: f32, %out: f32): 
 linalg.yield %in : f32
    } -> tensor<?xf32>
    return 
 }
}


```
 
trace:
```console  
Assertion failed: (op->getNumResults() == 0 && "Library call for linalg operation can be generated only for ops that " "have void return types"), function getLibraryCallSymbolRef, file LinalgToStandard.cpp, line 74.
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-linalg-to-std 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 0x0000000100ba45bc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  mlir-opt                 0x0000000100ba3624 llvm::sys::RunSignalHandlers() + 112
2  mlir-opt 0x0000000100ba4c54 SignalHandler(int) + 344
3  libsystem_platform.dylib 0x00000001a56894c4 _sigtramp + 56
4  libsystem_pthread.dylib 0x00000001a5671ee0 pthread_kill + 288
5  libsystem_c.dylib 0x00000001a55ac340 abort + 168
6  libsystem_c.dylib 0x00000001a55ab754 err + 0
7  mlir-opt                 0x0000000102435d40 mlir::linalg::LinalgOpToLibraryCallRewrite::matchAndRewrite(mlir::linalg::LinalgOp, mlir::PatternRewriter&) const (.cold.15) + 0
8  mlir-opt 0x00000001019f8fe0 mlir::linalg::LinalgOpToLibraryCallRewrite::matchAndRewrite(mlir::linalg::LinalgOp, mlir::PatternRewriter&) const + 1748
9  mlir-opt 0x0000000102043bd0 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&)>) + 1440
10 mlir-opt                 0x0000000101df14b0 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) + 1948
11 mlir-opt 0x0000000101deab1c (anonymous namespace)::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>, llvm::function_ref<void (mlir::Diagnostic&)>) + 928
12 mlir-opt 0x0000000101decdb8 mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget&, mlir::FrozenRewritePatternSet const&) + 80
13 mlir-opt                 0x00000001019fa110 (anonymous namespace)::ConvertLinalgToStandardPass::runOnOperation() + 556
14 mlir-opt                 0x0000000101daf4dc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) + 420
15 mlir-opt 0x0000000101dafa0c mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) + 320
16 mlir-opt                 0x0000000101db1388 mlir::PassManager::run(mlir::Operation*) + 1148
17 mlir-opt 0x0000000101daa840 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                 0x0000000101daa410 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                 0x0000000101e1502c 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 0x0000000101da8838 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                 0x0000000101da8d2c mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) + 1208
22 mlir-opt 0x0000000100a470a0 main + 108
23 dyld 0x00000001053c9088 start + 516

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWV1v2zrS_jXKzSAGRUm2dOELx0lwCiRvgiR4gd0bgxJpmVuK1JJUWp9fvyAp2fJHWuecXhSLLRp_SMPhzDPPfIgmxvBaMjaPspsou70ind0oPV8qIVSrtO0MuioV3c4fH768QNlxYYFYqFTTcAsba1sTJYsI30f4vuZ205WTSjURvhfifXi7brX6F6tshO_DugjfExQneVKgCN1GaPHCWq1oVzEK37jdRMkCwo1oihrB9bVqLVxfV0q-M22vBZdE1NdWXRtLwbKmnTipaNqrC6_768lipy38H7TjpCEtRMktkPWaS7ZqSBslywjnFEV4CTSOcAHXUXIHh9ei5G6sIv6Ujv3qRtFOMIhmN-E7wLqT1cS9QJQi9x7hPMIZ0TVyqFgmjdJOfXL_3f2tE-y04SUEqfhEapAoYLwPOHnkzQ5oTmommeaVE-KSsu9c1s4V42UcO7ynYSfvc5Tdum_cMk2s0iu7bdlIGrdEEyGYiDAOq7BmtKssV9Jdym6j2S1wafYewg9dLEB1di8dn0rvJQ89ze7KEoWFXLpVTjBApjq7u1DseTeAsuVMUPDrYJDb653dhrieM2InpZnttBz0RrPbnji7D-PXgaCDdCCyJhU7JXGlpFGCQS-1MIZpBy6sCReMemdwrlpnYs3s_3XNCzOd6CEsXKRcsBBEeBrhqQvQAy810VuoiBCwVrqHAVTrYux0V0RCycCThVhGQUmx9aKqNWA3xDo97m9D3hm8K04HBDw_PBkKB74jt1dZM9vvuyRCvG6bUokXtvYyXDB48Da8qVdLJCWaTqrW01BwyWCWToL7zw93i9c7MF3pChOBsqtBM1fCwKrPFypuTOesvQciKXBZiY4ysBsGlSZmAyWpvvq49Nu_WlJ9Bdo17S5QaBKh4lmrWpMGiK67hknrjIBPlLQj5b48qs6C8TCBJI3LOZwzaTrNYKs68MB7d4IQ_5Np4NLd0_C8ePsDlAbDrPeGyXeulXSmwTvREE3Rw8P_P65e__F48_Tw5Z93Lyu3xNVMq6BVXHo8XQ0v9p7C3iX0HYV_MUIlSbOy8rY42WRhtiZ8eNZcWu_Wmyc3zvdCmnxbKWM1I41n5hK4tJ6w-AayadgyHm15_O_QhGSK03MmvHTyldeSiD-IpILpXVrgG4jjPs3xx55VWQoHCiKcjwxN0jSoSAAEL83WWNasWkHsWulmQreClyOVJJvmRVqlsDK8tpo07YG76YESu9GM0HM6ZjFjCHqB1VcuhFeD8zzoycZ6qjMaMlIlKQJSusTxUEz7pdOfLy1nWQpMa7-wr2GzywKF0ySjKYKhXyeLkBHhcygBT-2bGlWKF_ZNc8uCRENstVlIOlzE-Y81OVrtJZ6JtUzLfrH2tCvAFVgHQj6plKCTOBti27uWnydHXKzzNfs9XbmBeJb2AS3Om49RmpQUnapctK3glWv1P7fzaWgYEV783L7lKD-HtrDSbB0ly1IpR-H8REFwKbjXT0AfKvFd6O8q2S9-UDWviAjd9DK9fVlJ0546MbooK2K6jtPSdeicSCW3jepMqPmtr5rFEdoPrCa-3vds6b9eGJql70WGK3meRN6FYqBPHJ9nP2WkjKuLTQ6b2sHkvh_ubpuD1rDQmmxfjsJx4NCnmXDLSS2Vsbw6CVeBB1fxR65WtMxHCJK2Fdv7Tog9lJ_G_o3omtk-L_YC91r9yYaI9PF5ZXbMNG90PjAsuYxhxZrE8U8Z1kfpeBR7JqbvprqTT3Lk3q6VZruOnV5IebJOaTXynDJLuBgAfFNPrdt2QUm7K0W6k0dpaMwJxB-Dv5BEbA03j0SS2tF9Ca7uuPdO-udjOp5BUjxgnH3AC7Im6PMuPPOWuaH2iDJOdGfZ9Jf7dFicjfkijdV-VlX6TPUeC4Sdw43e9meimbRf5FoNzFzsJqIdbNMLmVDGSZ4f7T74czbuh3AMs9yuYs0-ChfJUwQt0240W1Snded0JB2wHN6NpUF0tYr7QXNDNKOr1roHw72qV9Xpij3W2j047pN3DPLjw5eXpZKWfbd9AP5uUzok0NDqDn3o0xX1Y2ucX5quJI3H08KhIX_F8lMsO8n_3bETLB9Zo_T2pluvA8FPF1K2Jp2wK8oEc_PVR4uTu5POcRxzj1roUUQI9_y3WssDRx4F10-tfSRc_oQ9v4eHv5JLBw1VsMq-sJobq7cf5Mtl7333iXC6Qn6jXChZ_z4InnDE59Bsl0PFZTnE4gzhcb8wreB2IemzVhUzZrD-N8mM_4pM_qHE-do4HUYZjD5qJHmejBvW_yrCL68I4TwjHiIRX9qlcnqQYYeR6QehakPCyHPUdF-t5rLuzyQv86ufPTDqZw98_hECkXSGCIKGcBlW7BYkQLeCjoWzpCpQnoOxpD-cyQYcjo6Gr-g8oUVSkCs2j6ezJCtQPsuuNvNZVTKaFhiXsxTNECPTNEvLdJqyGOcxpld8jhFOUBwnaIrjOJvMUJEmZDpFKGZoVmZRilhDuJg4eCZK11f-qHSeFUU-uxKkZMLMww8Akn0DfzMc91_puT-VLLvaRCkS3Fiz12K5Ff5XKI9vdgvLsyejjm3hCLb_rQj8ifLvesyNrzot5n_99Nmj-p8AAAD__1QYVmA">