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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] convert vector to array for groupshared
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:DirectX
      </td>
    </tr>

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

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

<pre>
    DXIL requires vector to be removed
https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst#vectors

Normally, vectors are removed by the scalarizer. 
However, for groupshared memory, keeping elements of vector next to each other helps maintain the layout so that the data can be loaded/stored in a continuous address.
This will be done by convert vector into array.

AC:
    A pass to convert vector into array.
    Test.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEkk-PmzAQxT-NuYwWgQn5c-CQJoq60qqX7mGvAx6Cu8ZDPSbb9NNXJpu22kN7AYTm-b03_qGIPXuiRtWfVH3McI4Dh2a6xoF99XpGylo21-b48vgEgb7PNpDAhbrIASJDSxBo5AsZVRxVsR9inERVe6VPSp_ONg5zm3c8Kn0abRdYuI9Kn442UBdfvg5oKBx4nKyjoPSpddymUbRe6ZPhTtLwy-NTHiQqXd2M5eZ1e37hMKJzV6UP77kEMPyOBe0V4kAgHToM9ieFHG7Cz_xGl-R6gJ4DnAPPkwwYyMBII4flxFeiyfozkKORfBTg_t7e04-YVkDYDcBxoAADuUkgpY9o_eLr8MpzBGGIA8bll8GI0KFPy3OMhozSJ4mcnK0HhI59tH7mWQCNCSSS3yI_D1bgzTqXpIY9pXYd-wuFeI9lfWTAEPCa_72m_SHdyvIJALCHCUVS_P_J0_QzScwz01RmV-0wo6bclPWm2G60zoaGDK3XW9qWqDfrrqqLui5WfV9i225xU9eZbXShV0VdrsrNqtY6r3blVu92tOlNvzZ9oVYFjWhd7txlzDmcMysyU7PTZV1lDltyshCqdYvdK3mjqv07Q0rrBG5okvahnc-iVoWzEuXPadFGtyB-19THj73vrT-ykM3BNf-gOnm8vx6mwN-oS3wv8RO7S4NfAQAA__-fDCD1">