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

    <tr>
        <th>Summary</th>
        <td>
            Problem casting a 128-bit integer to half float on arm64-apple-darwin
        </td>
    </tr>

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

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

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

<pre>
    The following emits a libcall to a non-existing builtin

```
❯ echo '_Float16 fun(__int128_t x) {return (_Float16) x;}' | clang -xc -shared -

Undefined symbols for architecture arm64:
  "___floattihf", referenced from:
      _fun in --6310a4.o
ld: symbol(s) not found for architecture arm64
```

Reproduced with clang 16.0.0 and Apple clang 14.0.3.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0Uk2P3CAM_TXkYiUiJp-HHGZ3Oueqas8RCWZCRWAEpDP776vMpOoeWoSM4Nn4-dkyRnN1RAOr31h9zuSWFh8GY410XTZ59TF8Xwi0t9bfjbsCrSZFkGDNNEtrIXmQ4LzL6WFi2j2mzdhkHONnxk-HbfixX9cvyPozO12A5sUDw3a8WC9T2YDeHMNuHI1LJXZjggfDHlj7FihtwcEOHr478GDijbVnhi2w9h1mK90V8scMeVxkIAX5Zxo_nCJtHCmIH-vkbQTtA8gwLybRnLZAIMPaVEwcAQAMcRxHvWdMZtEMkeE7BNIUyM2kQAe_fvLf16g3B8ZBnjei5LIq_Au1ionTkZphF_cCnE-g_ebU_6j8U7-n_Ua34NW2k7ibtBzFl03BCw7SKTjdbpb-PFcFL0TxiszUIFQvepnRUDZt35Y1lmW2DG1XNjVKrVsSU6P6rpmQi75rKqW7CnlmBuQouMCaCyFEWVDb9rVCRF1XuuEVqzit0tjC2l9r4cM1MzFuNDRl07eZlRPZ-Jw1REd3eIK7qPU5C8Mek0_bNbKKWxNT_PtLMsnS8DX4ydIKs3yNmoQSu3wyCYxLdKWwj-MirYZnx8C7l4q53KXIlQx347It2GFJ6Rb3vuGF4eVq0rJNxexXhpc953Hkt-B_0pwYXp5MI8PLs5LfAQAA___JsvvM">