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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Add DirectXTargetCodeGenInfo and the code paths to convert HLSL types to DirectX target types
        </td>
    </tr>

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

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

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

<pre>
    Introduce `CGHLSLRuntime::convertHLSLSpecificType` and `TargetInfo::getHLSLType` interfaces and implement these in DirectXTargetCodeGenInfo to lower the HLSLResource built in type to DirectX-specific TargetExtTypes.

The interfaces should be similar to the OpenCL interfaces of the same names.

AC:
- The HLSLResource built in type used in HLSL's `RWBuffer` is converted to a `target("dx.TypedBuffer")` during clang codegen when targeting DXIL
- It's obvious where and how to add logic for other HLSL buffer and DXIL target types
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U01vqzgU_TVmYyUiDgRYsEiTSSdSpJHaSNOtsS_gkbGRP9L234-uoXp9T3pvY8A-59xzjy_cezUYgJaUT4Sxzg4GHGGMlOeMxzBa1y57WWflZ3s1wVkZBVByyE_Pf99eby_RBDUB2R_J_iiseYALuP86g1C9EvfPGcghp9xIJN25GyBcTW8XxgAJ_YVSJoDruQCfCGqaNUxgAg0jeKDK0LNyIMLbonOyEp7BoBwNlmr7Dg6hNDkDb6MTQLuodEBu-JwBcavGxq8e6aL210dAH35L8jPJj8t6H-G7Kz_aqCXtgHo1Kc0d6mHFf2Ywp9t3qO3TgecTUMOnX3SPJwwgvW7o_c-WoweJHwghrPIY5Mu_T7HvwaXUPF2TB4l-OAJC6omwmjAmP7bYmVwpjBHWIFFGp8xAhea4WgkDGPo-gqELGw_Pb9fbl89rSOVt91A2ekQ6SBc12vdUWEqq7aAE7a2jNozgkmnapcIJinqrfOrOZ7Ldy2bf8AzaXbWrK1bXNcvGtirqSjDJu31fNVyWdVc1dbHbF0yUIJsmUy3LWZEfdvXuUOwY2xaihg5qIctCyrrjpMhh4kpvtX5MW-uGTHkfoW3KpmSZ5h1ov47-km0afNcifNPFwZMi18oH_0MgqKDT75II5Zkepfz9UGLDOASYLZ15GD3GtF7WEk3K4NtU_pxNdLodQ5g9Tgu7EHYZVBhjtxV2IuyCttbHZnb2PxCBsEtq0hN2Wfp8tOz_AAAA__8K-EtL">