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

    <tr>
        <th>Summary</th>
        <td>
            AMDGPU backend crashes on atomicrmw instruction when using -disable-promote-alloca-to-lds
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```
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"

; Function Attrs: alwaysinline convergent norecurse nounwind
define weak amdgpu_kernel void @__omp_offloading_67_6b1f7ec1_main_l3(i64 %A) #0 {
entry:
  %A.addr = alloca i64, align 8, addrspace(5)
  %A.addr.ascast = addrspacecast i64 addrspace(5)* %A.addr to i64*
  store i64 %A, i64* %A.addr.ascast, align 8
  %conv = bitcast i64* %A.addr.ascast to i32*
  %0 = atomicrmw add i32* %conv, i32 1 monotonic, align 4
  ret void
}

attributes #0 = { alwaysinline convergent norecurse nounwind "amdgpu-flat-work-group-size"="1,1024" "amdgpu-implicitarg-num-bytes"="56" "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "omp_target_num_teams"="1" "stack-protector-buffer-size"="8" "target-cpu"="gfx908" "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+flat-address-space,+gfx8-insts,+gfx9-insts,+mai-insts,+s-memrealtime,+s-memtime-inst" "uniform-work-group-size"="true" }
```
The LLVM IR above is crashing and produces the stack trace:
```
LLVM ERROR: Cannot select: t16: i32,ch = AtomicLoadAdd<(load store syncscope("agent") monotonic (s32) on %ir."$$_a_t5", addrspace 5)> t18, FrameIndex:i32<0>, Constant:i32<1>
  t11: i32 = FrameIndex<0>
  t15: i32 = Constant<1>
In function: targetatomic_simple_$ck_L5_1
PLEASE submit a bug report to Cray and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -mtriple=amdgcn-amd-amdhsa -disable-promote-alloca-to-lds -mcpu=gfx906 -filetype=asm a.out.bc 
1.      Running pass 'CallGraph Pass Manager' on module 'a.out.bc'.
2.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@"targetatomic_simple_$ck_L5_1"'
 #0 0x0000000002efd62e PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x0000000002efa99d SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f65969888bf (/lib64/libpthread.so.0+0x168bf)
 #3 0x00007f65956b8cba raise (/lib64/libc.so.6+0x4acba)
 #4 0x00007f65956ba354 abort (/lib64/libc.so.6+0x4c354)
 #5 0x0000000002e4f9d2 llvm::report_fatal_error(llvm::Twine const&, bool) 
 #6 0x0000000002cfc0dd llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*)
 #7 0x0000000002d0803a llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int)  
 #8 0x0000000000ee4d40 AMDGPUDAGToDAGISel::Select(llvm::SDNode*)
 #9 0x0000000002cfde88 llvm::SelectionDAGISel::DoInstructionSelection() 
#10 0x0000000002d00dc9 llvm::SelectionDAGISel::CodeGenAndEmitDAG() 
#11 0x0000000002d03bcd llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) 
#12 0x0000000002d0572a llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) 
#13 0x0000000000ee8599 AMDGPUDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) 
#14 0x0000000002264ee5 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) 
#15 0x00000000026e5c9e llvm::FPPassManager::runOnFunction(llvm::Function&) 
#16 0x0000000001e1a615 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) 
#17 0x00000000026e6617 llvm::legacy::PassManagerImpl::run(llvm::Module&) 
#18 0x0000000000951bf1 compileModule(char**, llvm::LLVMContext&) 
#19 0x000000000088eaf1 main 
#20 0x00007f65956a329c __libc_start_main (/lib64/libc.so.6+0x3529c)
#21 0x00000000009482b9 _start 
```
Any pointers or explanation on the issue would be great. Thanks.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylWF1T8zoO_jXlxpNOvj8uuCjlY5mBPcwLuzN7lXEcp_WS2JnYAXp-_UpOmiYFXs7uMtDUtvxIsqTHCoUqD5er2B1_3euVu9Gq7xjPK1FzSRtOVsE1Wfl-Xb81Ti3kK3wfBA3tdtyQkhpa04PqzVGUO-0q2MSh_XBabz7w4RkMH04bzAfhXCyar8SzgTiKvHk47cXOmx8OS29HmbcwHWUyK-OnIJ3hoh-hfBQfv0YezsInCLgWBx8g4loIfDjSwgLaM0BvIufOc6SAmeT8IEwn2no6L9qUOyYdeODfXtNJfPwMrshtL5kRSpKNMZ0GTELrd3rQQsJBc8KUfOMALQ2RquOs7zSHb718F7IcUEpeoeQ7p68ENbZ9_so7yWvypkRJVqGb56ppc1VVtaKlkLs8TvK48KqEMy9vqJB5Haz8FM4VrI42Kz-DZ-CSVXI1qAD13QFsG0bESq1pWXbWU1rXilGCYfG3MBI7SVL7FSR0SxkH8AhQP21fU82oHpJmErYzaMun7f5mptmoQeNklDZwQOTkxHZc_6RubuXJIjxpa0ghzNGEr3ZbxZAP_vw03MEFoxrBuuYdTR-FjtDWnsAnHmmUVEZJwU52hEeoDnIIozbmR3I9TxcKGSKK3nA9hgezLLn6LxLmmJRt71Q1Nc676l6dXaf61tHiT47pGVzDpwem2WLw_dkW0bS1YAJT3ZF94xQHMGXaAxU1SFcdUIbTKiEN76ZlqSQfBRohnZrvaO28cQZBc95FafaTpDuKSeWYjrYtJKzT0JmA6fojFOb1UHo5WJQbThs998IKaUPZq9N2ygzqir6qeLf0OB1lBzCHtf20tKs-MvdsveLU9N3M-5V_BTwEqeMIqQ3Mb2GGifmorBcjZbyzsX82Ds7G4dk4OhvHZ-NkMW7b4YsNPOYz19oZywvnwc10vgHdno-BJ-ZD7TS86TitjWj4bAqHVm48sF6KSnXNt6k2BXPK9eVV9LLn5OHhn4_k_hehhXqDCteEdVTvIS8IhZyGwJY9g6IwIGpjDTSMbh356gzRot38-vXHL2TbLZVQjkTzGpIDJ4y9VIbq3bK9rbKNLewHYM9NWa4CcDZFKh0pRx8k00y1yFNYLVh8NiWyU63DUaQ6sHPA9cAJoltbGaixMKe5iexoxpnEUl5wAwZZMr3FsrqXJf8A89C6YOvCMi5tFZw3lWZa8HBhpBTjeaM_1pU5zAAwyUVzuRPmDO1ekmq8r-xR2WIYWC_XSA88B3fYa_4Q5d6w5enhZvN8Q3RfNMIQSop-ByzXqs4S6bajBxtEIVndl9zG0EaXFBBIG8f1APRsI1v2TTsF1l0T-_PUqR24RcCcvoHDt9doXTPiNMOFDA59uouJUwpNi5ojMzTADc5wjzlGOXWpYS-SQHBtyz8mDjZD5tBaLA261tDtrAsIrDXFG0351UuJidlSjSydbAH0DlhsT55w5pFKSA9gxQTToIHExW7BT45o8HV01_8GcPN4fff0D3K9uXMgLPAAYANEK8k9BKzrh2bi2aYzhmnQdIwaIkBDMBHZt7HDZEzG1LCXjfvhHn98XpWxz-HYgeJtWF4wTs9wk9H6bxDNGj1M7T3m225iWNJr1mLwXPs3YXtn2DTLSnIOJrCkfgDyR6CkiqMsztI0LSpia_K2FgXe5vhszR5oq1xrtYZzuHI_vBjkTt0JAAVzoCguUlZQ0lGh-Wc4hkCxBQopyC2AwjMgGkQhshgk_2-BGMgtgKLlGYVVVvoE23GshWAzFFReYRue865TeGSn5Zf3sTNAVo6RMQqlatvmTRrihQZWMRdamBPElFCQcfcwGGYH8vwXN8PyQunz9d9VyYcEOKlJFmpKN3UD-qOaYXYLcFvVNJjUX-vZkl5qyBBeEran3dHj5cqYSTPX07lNLudhGbpkqDMw40V9Yctf8DQ7O9CSp-mPnl6rWRXPijg9BQsrxj07Rbdk2c_BAiPvuNzI8gaoGJY-wXpnsEHBfs6BYXZT11dUC3YFFPqqF8czveGcEnCu1D9TGiX-zxnR9fIP-UgZNAH8iL9Q-mntTGtwFvM0yrJvY_5_awsXPvpxyHlEvt2ON8VM8Zcav1W1ZIqYRyzjM1W3T4h-vIb-VyULsvC4R2PQC1spdPmHRvWa4L8NxuYyG9Pv7mvNj_YSXB7nOHWmNTlzLY5h6rQLXynYYfg-U3UPV9uk7q-oWdJBFnlF5UHuNi00AJOxyC-24i25nDCxuYTWyfCPz5m-YAQ3TTkFYHz9Psn47vLGoIGfMZLneD_k0I8ByQ8bfnN7BBHsmagIQb2lR2HqFxkZ4MiXLfJGHsj4AqeJ6gj_aGs4TVvF8ItNmtC65-Rd9XVJCk52cKeaNXnZU_mq1xflZVBmQUYvjDA1vxybFmzpODR7tsGDhh2gTq_MYta-vO-5JL3Gvuf3XdpF39WXe2NaWzD-LfzuhNn3xRoChieDgRkeCPBvS9231nYgqdso9JPwYn-ZhF7IwsBPeBCnCasy5iVpmcaMpl5VZf5FTQte68tVdIUvpvx9cB-7pOj6Qlz6UNRu4KZeGIZBsvbTJIqqhBVBGcE9yqHj4hC2eo12rFW3u-gurUnQDGtYrAW8Vp0WIXfxquJWHeDT3uxVdyneqIRXnU7sev5nkETBhTXi0jrxH_6b1eQ">