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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] `half` should alias `float` when 16-bit types are not enabled
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            llvm-beanz
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          llvm-beanz
      </td>
    </tr>
</table>

<pre>
    In HLSL `decltype(half) == decltype(float)` when 16-bit types are not enabled. Today that is not the case. When 16-bit types are disabled today `half` is a distinct 32-bit type. This causes challenges in overload resolution. With 16-bit types disabled the following case should have an exact match:

```c++
float fn(float f);

half call(half x)
{
  return fn(x);
}
```

### Acceptance Criteria

A test case demonstrating correct overload resolution for the case above.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMU0Fr4zwU_DXy5VGjyIkSH3xIvxC-hd620POz9BxpUaQgPaft_vrFdtp0oYeFBwaNRqMZjbEUf4pEndg8CqVCuJ4fesL4WyglNocKR3Ypd_f1qk_2vfsR4f-nn08gtLRkAr9fSKidwzAI1YJoDqI5wBdkCAlZqFZoCa-OIqz0Q-8ZJrgAZoKYGChiH8jW8JwsvgM7ZPBlhtgRGCxUw8u3dOvLzAWeqULL-TJaTgfgBLOPhqFRn8Qanp0vYHAsVMA4DIHiiQr4COlKOSS0kKmkMLJPsYYXz-5v5buqIxhSCOnVx9N8USgujcGCwysBRqA3NAxnZONEsxdyHi2XMUI9TiP3c1AwxI_MYApUNI8LYfIEBkO4hQ1vEyr3YjttAMjEY44L_e1O3B6-it20VbMM7I2hC2M0BP9lz5Q9Llv2wFR4cWPpnGLhjDwbTDmT4e9igiHlz9cC7NOV6sp2jW2bFivqVlu5bdabjZKV61S72Wm7VjuLq8aSboZWabTaaIOD7HXlOyXVWiq5VarZrWWtV22z1dIMq75t2sGKtaQz-lBPDa1TPlW-lJG63Uqu2ypgT6Hcuj0V9tbqj0KPpyLWMvjC5X4Aew7z_zATNoevZbo9KgaPZVpfev0vpa7GHDrHfCnT86ujUMeTZzf2tUlnoY6T_O3zcMnpFxkW6jibKUIdZz9_AgAA__8KaSuw">