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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] Backend assertion hit during codegen
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AMDGPU
      </td>
    </tr>

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

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

<pre>
    The AMDGPU backend hits an assertion while attempting to get a register for the following reduced code https://godbolt.org/z/46dccMErP. This only occurs with assertions enabled and seems to work fine with a standard build.
```llvm
target triple = "amdgcn-amd-amdhsa"

define void @foo() #0 {
  %1 = alloca [2 x i8], align 1, addrspace(5)
  %2 = getelementptr [2 x i8], ptr addrspace(5) %1, i32 0, i32 1
  br label %._crit_edge

._crit_edge:                                      ; preds = %.._crit_edge_crit_edge, %0
  store i8 1, ptr addrspace(5) %2, align 1
  br label %3

3:                                                ; preds = %3, %._crit_edge
  %4 = phi i64 [ 1, %3 ], [ 0, %._crit_edge ]
 %5 = trunc i64 %4 to i32
  %6 = getelementptr i8, ptr addrspace(5) %1, i32 %5
  %7 = load i8, ptr addrspace(5) %6, align 1
  %8 = getelementptr i8, ptr null, i64 %4
  store i8 %7, ptr %8, align 1
  br i1 false, label %.._crit_edge_crit_edge, label %3

.._crit_edge_crit_edge:                           ; preds = %3
 br label %._crit_edge
}

attributes #0 = { "target-cpu"="gfx1030" }
```
```
**llc: /root/llvm-project/llvm/include/llvm/CodeGen/MachineOperand.h:370: llvm::Register llvm::MachineOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed.**
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVV-P2roT_TTmZbTIGZOQPPAAy48-rX5V1ftcOfGQuDU2sp1uez_9lZ1wobvs3kUBJZPxmTN_mCND0L0l2rByx8r9Qo5xcH7zfRhb8tWider35utAsH3af_r8F7Sy-0FWwaBjAGlBhkA-amfhedCGQMZIp3PUtofooKcIEjz1OkTycHQe4kBwdMa45-TjSY0dKeicIhhiPAcmtgwPDA-9U60zcel8z_DwN8PDqlJd9_Q__3kJXwcdwFnzG1zXjT7As47DlUwAsrI1pEBaBYHoFBKdZ-d_wFFbmt0hRGmV9AraURu1ZHzP-JZVfLqM-XmaTFH6lEr0-mwImNgDQ5Qn1Xf2QZ5U-g5BMsQZIf8qyqF-Oq2ArfjROYY1wwYYCg5svZvcABiWRQaVxrhOAit3CL9A16zcM3wEaXRvoci3Svlwlh0xrEuGzQ0EZoieIhk6kY3n6F8hJdtLiBw-vdQCgV9uigty68HIlkxyW37rvI7fSPV0m-itWWzhQx8mdnD2pMJczXJ5g3KDh4_pJb-wCdF5Al1P1XgrHbyt2p08xC178WHO77AXM9FXFcqtWWW386BBV6vUlIl-OgdzZ5KRvwbJrycghmWZcaIfbTchJejoUsNuolV3BkHXH2p_inGDtM5Ixkn1HwDVnYIzLOt3mdjRmBx4zuRVjxODi3NCu99VXcBRmpBH5Tqpb07T_SF4w__dybgzBBOr9_8y6_1tYBmj1-0YKcxrIUGtd2m_TEvnoTuPabGIPUPsj78KLjhDhCvOZV3df8R0GdOlXBgevHOR4SGttoezd9-puzwyPGjbmVHR1fDoFH0iy_DwJLtBW_r_mby0ajkwsRVrnkCzq9gysf1y2fNX05_HJltP8Qv18y7snA0xwWz_FRJWcR2uHgwrhlUqSF76OoB1f6iKm8GxSHXCNRylNqSWU-ovqrJQG6Ea0cgFbYqqKbFA3uBi2KzXddsUdbuqeC1JcLk6SsGbtj2qrlYtLvQGOQreIC-wWJW4VKhWuBKiUciLuinZitNJarNM6SfZWugQRtpUVd00izwRIass4qyiTGwnWU3Ey_3Cb3Jf2rEPbMWNDjFcwaKOJqv0fKTcw24W46sIDzqCGn2S1iSpPdnF6M3mhbLqOIztsnOna6dfDERmHhgeMvl_AgAA__-sSFNQ">