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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] LLVM ERROR: Cannot select  (AtomicCmpSwap)
        </td>
    </tr>

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

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

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

<pre>
    live demo: https://godbolt.org/z/r1nq3EMx5

Command: llc -mtriple=amdgcn-amd-amdhsa -disable-promote-alloca-to-lds -mcpu=gfx908 -amdgpu-dump-hsa-metadata -filetype=asm  bugpoint-reduced-simplified.ll

```
; ModuleID = '<stdin>'
source_filename = "llvm-link"
target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7"
target triple = "amdgcn-amd-amdhsa"

define amdgpu_kernel void @"test"() local_unnamed_addr #0 {
entry:
  br label %for.cond

for.cond:                     ; preds = %entry
  br label %while.cond

while.cond:                       ; preds = %for.cond
  br i1 undef, label %for.cond.i74, label %while.body

while.body:                       ; preds = %while.cond
  %0 = cmpxchg i32 addrspace(5)* undef, i32 undef, i32 undef monotonic monotonic, align 4
  unreachable

for.cond.i74:                   ; preds = %for.cond.i74, %while.cond
  br label %for.cond.i74, !llvm.loop !1, !cray.depth !3
}

attributes #0 = { "unsafe-fp-math"="false" }

!llvm.module.flags = !{!0}

!0 = !{i32 7, !"Dwarf Version", i32 4}
!1 = distinct !{!1, !2}
!2 = !{!"llvm.loop.mustprogress"}
!3 = !{i32 1}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNVVtv4ygU_jXOCyKy8S15yEPadEYrTbWrjnZeKwzYZovBa3Da7q_fA7YnbpORJnKwD3znnO9cgMrw94OSZ4G46EyUHlHrXG_hIyJf4GkMr4xyWzM0IP0H_yHR_6YPj295FJ-i-DiN96brqOZeXymGcOcG2SsRpSfa8YZpDC__by1FmEtLKyVwP5jOOIGpUoZR7AxW3IIu60dQbOq3fbxDXqvpR8zHrsegjjvhKKcO7NRSCffeBy-2Q6gam95I7fAg-MgEx1Z2vZK1FHyr1JpuVMTzM4npHXo0fFTijxMCaygiZZTeW8eljtIHLwWcNePAxLP3q2knZihR6txhJfULfE9AR4dGOORpKvpuRrdAIWjIUZGFAffJWiDwTqcB9-layNawfL1SrAS5QM6Jn04KfCbZtHReMOdsN2P2AUN2gN77RZJ7fF4sn3niZ2EEQBzs-BdA4mDCv7AOZsHadzB9zPHXBGsJM-XnREzdsCThqiV-wqeRi1pqgabCP7-IQQuFzkZyFGUxYJ2wzquQXUT2yPeOeh61rwh_ppwP4CONUVTeTeaEdsO7b-ggQZsMSNEKTEYkr82wZQYad-X-5xw0862f75YeWszO8eSTgxvWX1volCv7q9lfeLjh4yPR4EYmaNSQq4jcXwe0lWX2YWHyWsF2v-YSZn-fy-ewkJ-Mwyrr-jfWNkimBPlS2J4yAYXKoVIROV4Ie8C1gDqjjTNassuXB1AlG42yxd2oB0FZ6w-RW4ULsd8M55dpXdJ1M7pbDXNRSPz23ypjei8k8yQb6PuWi961XkpnmuVpzZc62BfVCO08d6znVN75LTJqS2uB6x531LW-2dMTjDVVFtJJ0CdLC4suHGLbWtFmCTHx-4Ak8bVGvEL4CpQzdbB_eqVDjX6IwUqjw1abipRdrECoQR8Ocyc1cxdXSwrIGkw-0plPzZC2bTdaB3dBMwhrvbOVWvqJY3JZXI7wDT-kfJ_u6cZJp8Qhyu-Oj6evf_0d5Sf07duPR_Tw9PTnk2-Ie6qhqZAVSgBhMLs7OtNJdt_1319pDz26GQd1-HQDSteOFRS9A8GTnl_--voH7IAorR0FUP-SZ0Wab9pDlgq6Z7wUBaWkLAta5zymhahrJuiuLjahn6znCgFXlL2IcBrMxCEH-WkjDyQmJE7TOE6TMiPbLN6leVJXhYhFRVgGp6HoqFTbkEq4oTfDITCDi9DCooLS2MsitRZ2kQgZ8vbp6FozHFgrWTtq1gq9CYEcQhT_A-XDRvE">