<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">