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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Array by-value casting
        </td>
    </tr>

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

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

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

<pre>
    In HLSL arrays generally don't decay to pointers, and explicit array casts historically were by-value casts of the elements. There is some incongruence between existing HLSL implementations. FXC and DXC's SPIR-V code generation do by-value conversions and DXC's DXIL code generation does a pointer conversion.

See [DXC on Compiler Explorer](https://godbolt.org/z/4qeMT5nvn) and [FXC on Shader Playground](https://shader-playground.timjones.io/f37fafcf90151b43bb3a53fc00b1ed64)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsksFuszgUhZ_GbK6CwNghLFikyaCp1JGqSTXK1tgXcGVsxjZp06cfQdL5219dsTnf0bn4EyHo3iLWhD8QfkzEHAfna2Mu46ZFYT-S1qlr_Wjhz6fTEwjvxTVAjxa9MOYKyllCywgKpbhCdDA5bSP6QOgBhFWA75PRUscbClKEGGDQITqv5Vrxhh6hvW4uwsx4D7gO4oCABke0MaTwMiwpHSC4EUFb6WzvZ7QSocX4hmgB33WI2va3pXqcbrCI2tmQQnO-DTqeD4SWAU7Pj39v_gHpFN7vWYKg3Jctzl7Qh4X_hh7Pj08_gBhAfN7_hU1JtifZ_oQIhD8czwdwFg5unLRBD3-8T8Z59IQfCd0NMU6BFHtCG0Kb3qnWmZg63xPafBDasH_xrxduL5bQap1E-ENzazwNQqGHZyOuvXezVT81hjW0mf4PpVGPr85iSLUjtOmKshOd7Kos53nLirYtBC86mWVtjmrLCK0SVReqKiqRYJ2XNK_obrfdJUNd7VjJtphxyTrBFVWdqrIdo1suWdvxMtE1zSjLSsrzsmC0TBljWFZ8JyWvcmQ5YRmOQpt00W-5OtEhzFjnWbbNqsSIFk1YTaV0eWRC6eLsp65zHwjLjA4x_GqIOprV7hXgR9ivHn7zTds-mb2pf_v7Og5zm0o3EtosfffPZvLuFWUktFnnBUKb-8JLTf8LAAD__5xyF4Q">