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

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP] On AMDGPU we loose (or never generate) `invariant load` annotation for some dispatch ptr loads
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            openmp
      </td>
    </tr>

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

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

<pre>
    I'm seeing this, and then reloads later, with PHIs and complexity. We should not need any of this, the load is invariant and the value is constant (I think).

```
%13 = tail call align 4 dereferenceable(64) ptr addrspace(4) @llvm.amdgcn.dispatch.ptr() #14
%14 = getelementptr i8, ptr addrspace(4) %13, i64 4
%15 = load i16, ptr addrspace(4) %14, align 4
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8Uk1vnToQ_TVmMwoytvlasMh7V_e9LKJkU3Vt8FxwamxkDzfNv69MbpqqqiohED6eM3POHJ2SnT3iwOp_mBAvyz5ibJgQrD4VeqclxOHFBIwXjFSMwbwND0y0KyRE62egxSYm_gXtDdCCHiK6oE0CpwljRl4tLfD8_0M67kxh3Rx-t_RWwleEtITdGfCBwCMa0P4NwuUnKy0ImQ5sAuuvOlrt6aMXXLXbMUNT8IkywkT3kIv9Nyb6kvET4_e3d8Nvz_uvqCsJTJ6AtHUwaedAOzt7UGAw4gUj-gn16JCJrlFM9LBRBG1MTJue8ulxyBR37rqWejXz5Etj06ZpWsqNIhPdcUPISn12VUfXGQkdrugps9oui_0zfx40o7ZR8AtNfdC8e1M1fy1Xx37exf1mRmEGaXrZ6wKHqmnbru9qJYplMG1XI0opdNty5HIajeq7UWnNVTXWsrCD4EJyyRUXda1EybvR8KpuLhcpsUfJFMdVW1ce9oQ4FzalHYemqtqucHpEl26hCxv6dbtlLg654G7c55S9tYnSJwVZckdUnzb0j8-sPsGTh_vH03_PX-A1ZyUkzCkIETxeMcKMHqMmPMxo-GeIsnWs4aC9D6TJBg-XECGFFeFji4enR5yLPbphIdoSk_dMnJk4z5aWfSynsDJxzhPePndbDC84ERPnQ3Fi4nyI_hEAAP__GfAOXg">