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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL][SPIRV] Propagate address space casts to their uses
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL,
            backend:SPIR-V
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          s-perron
      </td>
    </tr>
</table>

<pre>
    In SPIR-V shaders, you cannot cast a pointer from one storage class to another (address space casts in llvm-ir). So we need to try to remove the address space casts when possible, and fails nicely when not possible.


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxskTFv4zAMhX-NvBAxHFpO7MFD2iK44joUV6A7LdG27hTJEOUW-fcHpznc0okL-fje-0jETYG5V82DQvzJHNYsClE1TwWteY6pl93CKcVQDNFe--cAb6_Pv3bvIDNZTqLwEa5xBUMhxAyGJAPBEl3InGBM8QIxMEiOiSYG40kEcgQKMc-cQGFL1iYWAVnI8E1BwAXw_uOyc0lhV8JbhE-GwGy325yu20h8iR8MeWb4TuJz5gBLFHGD580mBQsjOS8QnGF__drYXP_bKlV1UtWpsH1tu7qjgvv9UTe6xkN7KObeatJ0HLpqqCoz6Lazx6Zuq1GjGYc9dYXrscKm0ljvW9T6UB4PTWtHa7AZx7ZttdIVX8j5cktXxjQVTmTlfl8fq_pQeBrYyx3Hj5e3l40FPirEgcwfDlbVp6_-75BSf6tpWCdRuvJOsvyXzi77G9ubUvOkmoft-F01T_Ca4kIT5e-720qe2SVYhaVYk-_nnBdR9UnhWeF5cnleh9LEi8Lz9u8-dkuKv9lkhedbLlF4vkf76PFvAAAA__8qksrJ">