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

    <tr>
        <th>Summary</th>
        <td>
            [mlir][linalg] Crash parsing `linalg.elemwise_unary`
        </td>
    </tr>

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

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

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

<pre>
    `mlir-opt` crashes when trying to parse/build ` linalg.elemwise_unary`, the unreachable is being hit in `ElemwiseUnaryOp::regionBuilder`


Reproducer:
```mlir
func.func @main(%arg0 : tensor<?xi32>) -> tensor<?xfi32> {
  %0 = linalg.elemwise_unary ins(%arg0 : tensor<?xi32>) outs(%arg0 : tensor<?xi32>) -> tensor<?xi32>
  return %0 : tensor<?xi32>
}
```

Truncated stack-trace:
```
unsupported non numeric type
UNREACHABLE executed at /home/nod/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:421!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
#11 0x00005bd2e86a9532 (anonymous namespace)::RegionBuilderHelper::buildUnaryFn(mlir::linalg::UnaryFn, mlir::Value) /home/nod/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:0:7
#12 0x00005bd2e86a93f3 mlir::linalg::ElemwiseUnaryOp::regionBuilder(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>) /home/nod/llvm-project/build/Debug/tools/mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOps.yamlgen.cpp.inc:123:25
#13 0x00005bd2e8865694 void std::__invoke_impl<void, void (*&)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>>(std::__invoke_other, void (*&)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:61:7
#14 0x00005bd2e886560d std::enable_if<is_invocable_r_v<void, void (*&)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>>, void>::type std::__invoke_r<void, void (*&)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>>(void (*&)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:117:5
#15 0x00005bd2e8865535 std::_Function_handler<void (mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>), void (*)(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>)>::_M_invoke(std::_Any_data const&, mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:290:2
#16 0x00005bd2e8896661 std::function<void (mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>)>::operator()(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>) const /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_function.h:591:2
#17 0x00005bd2e8896605 void llvm::function_ref<void (mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>)>::callback_fn<std::function<void (mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>)>>(long, mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>) /home/nod/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#18 0x00005bd2e88653b9 llvm::function_ref<void (mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>)>::operator()(mlir::ImplicitLocOpBuilder&, mlir::Block&, llvm::ArrayRef<mlir::NamedAttribute>) const /home/nod/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5

```

Full stacktrace here: https://gist.github.com/IanWood1/8f4d9c3d613c81b7490cac37872e8fe4


Commit: 746d8b0740095ea3939fef0112a51953ca22cd29
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkmFtv47gVxz8N_ULEoEhdH_yg2BZ2gHSnyMy2jwZFUTY7FCnwko2_fUFKju047Q6K7mSwAQTDJg8v539-h7QOtVbsFecrkN2DbLOg3h20WX2i6p9ad8mi1d1xBXI0SGHu9OhAjiAz1B64hb8fuILOHIXaQ6fhSI3lADetF7KDwVAKReV-ySUffheW77yi5ghyBPAaugOHXhlO2YG2kkNhYcvDTAfhoFBh_HYe91sY9nkEpAakNnwvtLoPa3AT5kL19Dzy0ejOM26CIapDX3zC1gGqe6_YMnxAkKKBCgVwCXBGzR5BQGrouLLaALIGpHkWBAOyBbiCd4Bsr_v6qROC4h6gGkKAszDD5m13oVD2-1bS3n2n5e2e5r6wHcOdN-q0q7fnQDUoNpcaTRJ-NV4x6ngHraPs250zlPFXagJUe2X9OGoTDJVWUPmBG8GgO44coPq3Xx-39fqX-v5hC_kzZz7YUQcBbg56CIQo3QHcSPk03I1G_4szB3ATw4QbKVqAm42gcmp-iKIC3Hx6fPn1ebRLNgYgUpwAnABU__1hW3_ZQuvbQThIYev30PCwyYDmwbnRBkdwA3CzF-7g2yXTw7yL280Iaz23ADeQqg4KxaTveGQ2wg9byr5FdZYA1V-CWLDzwzhrhUmSQPSMEEJZ22Fe5rTKCIYAl1RpdRy0t1DRgdsxCIyrCe3HS7R_4XKcUCZ1zKiYBU2gNioVOybipu8v_Wt4NvgHlT4s8KeIjwCpi9lf_Npf0hP49ka_I60vffw0jFIw4R40-zy-GOTXft5Lzb7NrTGisbU2hh4feQ_I-mz6Kx14VztnROsdnzPqD-SJAQjK8NYHOZzW0p5lm_k4N_x3BeMOvjjjmfOGd0HQIx3knqsg7FIoBkidYAJIjbNZX3Klb5lneZXCJy1CqnaTY7udUE_6G9-JYZSArENv0CNaxYOljgpVP1ze68n-_BXDouWtLtodwkofUZEwLJ9B9zYg2oYLsFkuX7J-zxjAzXOZ7_L0Tgrln-_2ygPcJORk-OrjjD0D-D4-k3Erwk3WTLIvD4DUeXJxVqQ3LKMLjLkK_wd2IrgkbIwdiy1m9_ThqZ78jr-CUbhx3zgAzIfXqfx4br93iidJAUh9uq-y1zmekeyC1MYr5oRWuwNVneQnYOG7ROmKlXcA5ZTNu7_NCXx1e9XquOuoo5BpZd3N4n9RsKzrdv0MScQLV-HvJp7xyq_xqvI8T854nQa-H1WnkOqRG-q0iXT9eLQmZt43cFmVXASuuAkcyqYEPLt3Gr4z0cV3DiGjUobXvV0fePrJGAtXndRq_8PPhD98ZZrfq8-4zA315ivAzZevD6crgMrtszPURljS_OIOKV_fIaStflpMfppM__8HJa9OQbmpGDVeyqlYFKsh8MANB6S-KbhYt7yqupzqiwA3ZZ92FSNdnhBWJm2RVohRRoqywLzsefpS4FvrYRAuzF6keVe2qEgRqjJOSUWqnvcoSTDNkiojjGLMOlwtuhXpKlLRBV8lRYqKpCKkWBxWNKe0avuirxKK874ntGsJTsuS9x0rE7IQK4xwhjAuUYbKrFj2KG-zpCxSnDOU9AlIER-okMug4FKb_SKWjFYJrpIyW0jacmljURXjqSiAQbZZmFWMSOv3FqRICuvseQYnnIyF2Dgg24Dsfq6bZBu4jnWnkRor1B6CHP2n4urCG7n63wteswNPK_zvAAAA__9AV7rr">