<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">