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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] StructuredBuffers with 16 bit types are failing validation
        </td>
    </tr>

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

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

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

<pre>
    Command: clang-dxc -enable-16bit-types -T cs_6_5 -Fo x.o DebugTest.hlsl
```
File Edit Options Buffers Tools Help
RWStructuredBuffer<half> Out : register(u1);

[numthreads(1,1,4)]
void main() {
  Out[0] = (half)3.14159;
}
```
Fails validation with the error
```
error: structured buffer element size must be a multiple of 4 bytes (actual size 2 bytes). 'U0: StructuredBuffer (u1)'
Validation failed.
```

Working in dxc: https://godbolt.org/z/enrafEjvq
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcU0tvtDYU_TWXzRUILo-BBQsmE9TdJ7Vp011k8AWcGjy1zeTx6yvPpIk0EgjJHN_z8LFwTs0bcwvlEcpTJHa_GNu6s9A6Goz8aB_MuopNQt7hqMU2x_J9xJg3MWiOs2pQPvYfZ3YYP-HoXqqXEuPe4Hti8MTDPj-x88minYa0gyr9etKuV5rxUSqPv85emc3hcZ8mtg6fjNEOf2N9hrT7_fkPb_fR75blDQD5wyL0BPkj_to9BmGWZ-U8W6B6z4AayI-BLe2gPG776hfLQjqgOgN6CG8RQOUJ0u5ilMRVqA2oBmoQDmErhtFQHlMoTwj5CYHqKyk1eZIVWfk_xeF0b0so7fAitJIi2MI35Rf0CyNba-wd-raWd-i-TeJwdYmseeXNo1OfjOvuPA6MAtdde3XWjGbCAocPzy6IE6Pfhb6B6bYM1CQIdPgzDQT3KeJ3VnSAtPvrR_AklGaZ3CmFtHs29h-1zag2lO9jGLp4f3aQd0A9UD8bORjtE2NnoP4TqOfNiunx9fJvJNtcNnkjIm6zQ3GgkqiuoqWtqlIWtSjqnAqaBB2GseCsLGTOYszrIVItpVSmZVZkTZlRlTTT2KTVVDE3guWQQZHyKpROtL6sgTtSzu3cZnnTlEWkxcDaXetNtPEbXv8CUWi7bcOmeNhnB0WqlfPuZ4xXXl_vxUlZHv3foQr3Kbrb8WYVDsrj7R4Iy9cMQ1Q_PYh2q9u7vJRf9iEZzQrUB9qvT3y25pVHD9RfxTqg_svNpaX_AgAA__9bHSdR">