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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] inout/out ABI for array parameters
        </td>
    </tr>

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

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

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

<pre>
    Basic `inout` and `out` parameter support is landed, however it doesn't currently work with `ArrayParameterType` arguments.

The following code should compile successfully:
```hlsl
void increment(inout int Arr[10]) {
  for (int I = 0; I < 10; I++)
    Arr[0] += 2;
}

export int call() {
  int A[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  increment(A);
  return A[0];
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxUUsuO4yAQ_Jr2pTURj_h18MGeKNqR5rDSzg8QuxOzS8ACnGz261eQRDMjoTJgqKpuSoWgT5aog3KAcleoNc7Od8Zczi8HUvZfcXDTrRtU0CNCxbR1a4SKobJTWj9Wi_LqTJE8hnVZnI-oAxplJ5pAvOLsrnQhjzri5ChYEHXEcfWebDQ3vDr_B686zomx917dfj75Pm4LZTl_Ws9kY9gA64H1HzPh0RnjrtqecHQTYZjdaiYc3XnRhjCs40ghHFdjbiDTHajYfcwmGGD9xekJtR09JWYQTS4OtY3Yew_lwBmUOxAtQj0A6xGPzmM-F_ENQe6QgRzy9BX5fQ5iyKPNF_DBlIgw7csdCpCJDerdvRT6e2-YjTgqY0A0XyWzm6eXrAn1gCx1lScQCWSCbYIyQZWgTtAkSGS7uyh-q7dPNh_7nuLqbZbKVX_1-OxbMXVyamWrCup4LUrBZVWVxdwdquogqJJlQyNjjI1H1vBmW_KWSHIxFroTTGxZyzhvGGflZsuVbGqaeHmshKwlbBmdlTablLyN86dCh7BSx1nV8row6kAm5JAKYemK-S8IkTL7jOt6CrBlRocYPmmijian-8f7r_fUwnuCxT49dT-85TdVKXOfIQ7F6k03x7iElByxB7E_6Tivh83oziD2if3xeVm8-01jYsyeAoj9w_SlE_8DAAD__4Xw_Zk">