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

    <tr>
        <th>Summary</th>
        <td>
            [ARM] Incorrect __gnu_h2f_ieee ABI
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:ARM,
            miscompilation
      </td>
    </tr>

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

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

<pre>
    ```llvm
target triple = "arm-unknown-linux-gnueabihf"

define i1 @test(half %self) #0 {
  %_0 = fcmp une half %self, %self
  ret i1 %_0
}

attributes #0 = { "target-features"="+vfp2" }
```

Produces:
```asm
        .save   {r11, lr}
        push    {r11, lr}
        vmov    r0, s0
        bl      __gnu_h2f_ieee
        vcmp.f32        s0, s0
        mov     r0, #0
        vmrs    APSR_nzcv, fpscr
        movvs   r0, #1
        pop     {r11, lr}
        mov     pc, lr
```
LLVM 20 produced the correct:
```asm
        .save   {r11, lr}
        push    {r11, lr}
        vmov    r0, s0
        bl      __gnu_h2f_ieee
        vmov    s0, r0
        mov     r0, #0
        vcmp.f32        s0, s0
        vmrs    APSR_nzcv, fpscr
        movvs   r0, #1
        pop     {r11, lr}
        mov     pc, lr

```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEVE1vozoU_TWXjZXocg2hLFiQRpEqtVLVJ71tZIwJfjUfsg1vZn79yEA7yaKznJGigO7HOece7Cuc09deqQLSI6SnSEy-HWzR63cto2qovxdwwPVnzNwBll7Yq_LMWz0axYCfGBAJ2-2m_r0f_u93RvfTt921n5SodNsAEWAJWNaq0b1iOmaQoFfOAz20wjQMKHXKNEA5A-LIIDsClizEL7gwNLIb2dQrdl__-Pkayq3yC3joCozZaeUV3ltdTV65DT5Izo5B9jrLrlHCT1a5IJWfwj8d52YkIGIbzIcJK-SrHepJKge8vE0K1y35fO_ErABzyI42joNQYz_05OPk2q9yczfMgLnFEHcrW14ZwPxyufbTpaXmopVSW7Xsxn3DCTB3dx23KGHmD3DrAPPy9Z-3S_9DziHbjE7az6bZ3bbFm95h_EruyjPKLXzv0_Pzvy-MkI2rWTXzrWJysFZJ_7eNW6tX0-zvTfvK4z_h5o1FUV3wOue5iFQRZynFCU-RR20hKhRZTFzKqsamUZRLTOpG5VgdRH0QkS4IKcUsxhh5nPD9IcFD_VBXKB_qlKOEBFUntNmHG74f7DXSzk2qiJMs52lkRKWMWxYEUSXku-pr4GX59rLclEcg6rSTQzdqI7we-hBOT5EtAt6umq4OEjTaefeLwWtvlqUTYNITe-q3k8Huvxcrj0_RZE3Rej8u943OQOer9u1U7eXQAZ2XxbQ-dqMd_gvni87LDA7ovI0xF_QzAAD__wK8Y9U">