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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Copy in/copy out parameter passing
        </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>
    ## Description
In HLSL parameter passing is copy-in/copy-out as specified by the `in`, `inout` and `out` parameter modifier keywords.

A proposal for how this will be implemented is documented in the [Clang HLSL docs](https://clang.llvm.org/docs/HLSL/FunctionCalls.html).

## Deliverable
A full implementation of the solution in the document above and any required updates to the document. 

## Acceptance Criteria
* Documentation reflects the implementation
* Implementation is fully tested with codegen tests for DXIL and SPIR-V code generation.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkk0GPmzwQhn-NuYyCHBMgOXBgE6Ev0h4-daWqV2MP4NbY1DYb0V9f2cnuKuoJD8wMj9-Zl3uvRoPYkPKFlJeMr2GyrtH6fd71yM2frLdyawgrCCvggl44tQRlDaHt1cB_r2-vsHDHZwzoYIntzAjKg7DLtlOGsC6d7BqAe_ALCjUolNBvECYEUlFlSEUJO9_Pdg2kosCNjPEj-vrDbGWsd_ALt5t10ueEtoS2LSzOLtZzDYN1MNkbhEl5uCmtoUdQ86JxRhNQRjppxfoRmTtI-XLW3Iz3K0krPCkvhB2nEBZPipawLt4lpuRRndy6kbAuJbIuFhHWdasRUZwz19rnU5g1YacH4aeEWr2j473GhD2sWn_R8VgNdkhI3uo1xQ_ED2jgvX3HJBE3Gzj8vSqHEtZF8oAegn1Kz-EJoBUCl8CNQDg7FdApnj62cHkU3CEcDhpF8KnXM-Aj__pMrXy6zAYBfRT2psIEwkoc0aR3Po3m8uP6mtjf_r9-231PGTCiQZfa5JlsCnkqTjzDZl_v2b4qjlWVTc2xqFHQvq6qWrChl0VxKBkdsJJVX-yZyFTDKDvQAy32NT2wKq-wZlTs-UFK5CfByYHizJX-HGCmvF-xOdYlqzLNe9Q-GYGx-0BZtMSHG9bRkwPVygf_1SCooJN5UkF5gbNdNvjce4h7_48_stXp5nmxRhWmtc-FnQnrYvfHY7c4-xNFIKxLrHHZEu7fAAAA___ZKTyY">