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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] llc failed at O1~O3 but works on O0
        </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>
    https://godbolt.org/z/M4nfWenhM

Command:
```
llc -O3 -mtriple=amdgcn-amd-amdhsa -disable-promote-alloca-to-lds -mcpu=gfx906 -filetype=asm bugpoint-reduced-simplified.ll -o test.s
```

IR:
```
; 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"

%DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146 = type { double*, %dv_hdr.0.4.8.28.32.36.44.52.56.60.64.68.76.96.144, %dv_dim.1.5.9.29.33.37.45.53.57.61.65.69.77.97.145 }
%dv_hdr.0.4.8.28.32.36.44.52.56.60.64.68.76.96.144 = type { i64, i56, i40, i32, i64, i64 }
%dv_dim.1.5.9.29.33.37.45.53.57.61.65.69.77.97.145 = type { i64, i64, i64 }

define dso_local void @"loginterpolatesinglevariable_2d_custom_point$test_mod_"() #0 !scalarlevel !1 !cachelevel !1 !fplevel !1 {
", bb1":
  %"t$6" = alloca %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146, align 16, addrspace(5)
  %r57 = addrspacecast %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146 addrspace(5)* %"t$6" to i8*
  %r58 = bitcast i8* %r57 to %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146*
  %r9.i = ptrtoint %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146* %r58 to i64
  %r10.i = inttoptr i64 %r9.i to i64*
  %r68.i = ptrtoint %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146* %r58 to i64
  %r69.i = inttoptr i64 %r68.i to i64*
  %r70.i = getelementptr i64, i64* %r69.i, i64 6
  ret void
}

attributes #0 = { "target-cpu"="gfx906" }

!opencl.ocl.version = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0}

!0 = !{i32 2, i32 0}
!1 = !{i64 0}
```

Error message:
```
Instruction does not dominate all uses!
  %1 = addrspacecast i64 addrspace(5)* %0 to %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146*
  %r9.i = ptrtoint %DV1.2.6.10.30.34.38.46.54.58.62.66.70.78.98.146* %1 to i64
in function loginterpolatesinglevariable_2d_custom_point$test_mod_
LLVM ERROR: Broken function found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -O3 -mtriple=amdgcn-amd-amdhsa -disable-promote-alloca-to-lds -mcpu=gfx906 -filetype=asm bugpoint-reduced-simplified.ll -o test.s
1.      Running pass 'Function Pass Manager' on module 'bugpoint-reduced-simplified.ll'.
2.      Running pass 'Module Verifier' on function '@"loginterpolatesinglevariable_2d_custom_point$test_mod_"'
 #0 0x000000000566b3ca llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /ptmp/cchen/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
 #1 0x000000000566b57b PrintStackTraceSignalHandler(void*) /ptmp/cchen/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
 #2 0x0000000005669c2a llvm::sys::RunSignalHandlers() /ptmp/cchen/llvm-project/llvm/lib/Support/Signals.cpp:97:5
 #3 0x000000000566bca5 SignalHandler(int) /ptmp/cchen/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fdb8cfe5b20 __restore_rt sigaction.c:0:0
 #5 0x00007fdb8bcf337f raise (/lib64/libc.so.6+0x3737f)
 #6 0x00007fdb8bcdddb5 abort (/lib64/libc.so.6+0x21db5)
 #7 0x000000000558ad4a (/ptmp/cchen/myllvm/bin/llc+0x558ad4a)
 #8 0x000000000558abc2 /ptmp/cchen/llvm-project/llvm/lib/Support/ErrorHandling.cpp:83:3
 #9 0x0000000004b1e7bb (anonymous namespace)::VerifierLegacyPass::runOnFunction(llvm::Function&) /ptmp/cchen/llvm-project/llvm/lib/IR/Verifier.cpp:6021:5
#10 0x0000000004a2672e llvm::FPPassManager::runOnFunction(llvm::Function&) /ptmp/cchen/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1434:23
#11 0x0000000004a2b5b2 llvm::FPPassManager::runOnModule(llvm::Module&) /ptmp/cchen/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1480:16
#12 0x0000000004a27019 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /ptmp/cchen/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1549:23
#13 0x0000000004a26b8d llvm::legacy::PassManagerImpl::run(llvm::Module&) /ptmp/cchen/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:16
#14 0x0000000004a2b891 llvm::legacy::PassManager::run(llvm::Module&) /ptmp/cchen/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1676:3
#15 0x0000000003016cfc compileModule(char**, llvm::LLVMContext&) /ptmp/cchen/llvm-project/llvm/tools/llc/llc.cpp:722:41
#16 0x000000000301509e main /ptmp/cchen/llvm-project/llvm/tools/llc/llc.cpp:417:13
#17 0x00007fdb8bcdf493 __libc_start_main (/lib64/libc.so.6+0x23493)
#18 0x000000000301489e _start (/ptmp/cchen/myllvm/bin/llc+0x301489e)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWkFzo7gS_jXORYUKBAg45JBMkt1UTSqpmd15R5cA2dYOIEqIbPJ-_esWYGMmmX3J7mzNwS5bDaLV_anVLaGWc10-n--sbbtVeLFiN_Dd6jLXlaXabOHuv_C7i5rNf2Szu1v5Vyv_Yig_6LoWTYnNhlruj193W1UF8e5D4tXWqLaSq_BK1OW2aDwg-Nt1gnil6kReSa81utZWeqKqdCE8q72q7KBt0fbQcLt5ynxOvI2qpH1unayuJnm_bbVqrGdk2Rey9DpVt5XaKFnSqiKeJlZ2lnYv4hvK20-v4V-Fl-ROl30lb68IKCQrlqzCD50tVbMKr_HO8XW6N4VcI7RG1HJkZVX1WHuVar7C9cBohdlKS0phRSWedW8nVug9gOCRK7w2mN8woOFQeG04v4nmbPH8CZ_dqInlMcDqgHuPLBoePU48j1E68mSOh6XAneFDFiN_zKfLOMBaKIHBd3KQAIvvRCDxGicWpH0G0Rex90vgNQpqkqUhBreYjPCNb-zZx5LFV18CyiingU9D-EY0TGnEaRzROKUcnnCa-DRJaZbSIOJOMnoLWSWXpNQ9-NmKgaAPoC8uH9e70lCfRjSlLKUhoyGnEchiNOaU-5RHlKc04TQDlVF0aFeqmgY0phllGQ1DGiY0imkc0jihPKA8pjyjSUKzBNrFoP1q34U3az3uBI4mwFAwIkgi3xEwOJLxGY-WGt-K9yWNLwl3ZSk3qpGk7PQaI7cij1qVZIXQWKW3EJ3StLoSEImq2VbyURiFEb9m5broO6vrtYvhFYswWNe1Ltc49CxdsQwMHvpQBB1IFgZaywpvAywKUezkcdWmnd8nl5MVnIHyPMCrKdwJjiZUoGYwJ3P9HqYf8nZnQwWiUtuGBMN1WZquFQV4XApasplOEyeDromlEJ19h8pvdbCLZZ-sJipFp5-rT536XFmn2D2fcAH_e_p-JD-jyilorbE4su-TOEHFHoDzzeSDjEEByLYatAxuOWoe-Y8hQUT9WEw8ew2TU_0iqGTqB0yG4Me1bOzYcB9xF3vhU_TxSYKBGRRDbXTx46AUFibXvIeAGiMI51iIZnQNN_l6uK5iMFxBOayuLgSOxUAY6VY2RUU1_B6l6ZRuxgk7wPBigT9Miyd6oid6oid6oid6oid6oid6oif6bvrNVsyf7bxUyMiQ9YGLGa_Lexy4YMM4e_hS_vPaGG1ILbtObOVrqdDbprOmLyzu_koNm8pGW7ioVSOsxJwJ6TvZoc7D9jZ4IceBeF5JWvg_WeohONrkq4Zs-mYwwLuTWk7Sx49f7sj1p0_3mHcml0Z_lTPZG903JQ5roetWgXysFLk2VpZ78z58vL74fE26Pq-VJQKz4MTIFpgQ8yKVr-yuzymIgxtMSY8E8-1_yAIA3qiu63HwbohoSqJgt9-XktidJIUR3Y7kovhqDQwYHdR_tlBByr5u9-7iU-I-D0ZvjaiJMNse0xmIg_x05wDBiPZT3zQweqQVHaZJkptpFB6w4k40EBEG6glU1e4gALm-rwsYRjOxV7QMRwrkizTYZpK_9wA8Vvj7udPxaIK45I__5E-fmPM8LARxngCjF150z91w8WBAkBvb38wQnQcmI_5ca5gCpAD_GVLPqBTTszetBUdgN0Wxk823zjW5nMqh_Ny36KVw9XujnrBCbRtRdRScDo8VOJ5iBMEBe7DEHic5WQAdZPwKvluhNVOXE8Ms_z-MjrtjjRk4tgCXFexFw4IDHGHs9qnt96GbYBUtBmCWoOUOqMKlyQoRk6WNfsToRX5ybJ9oRJJsyjwtNjLOmU_WawOOqo1cw2zVqa1wXk9RgO9---bxvHlebMIw2RAjVIdRmA6oMEWKtKCdpuCXl_5TmADfId8OgvixoLIs83iYU78riAXAdyQoOTJtnIoyEqOIhRnr59FyuRqsWjiRY5sjoelSaF6wdw-MW8zdMMN0MTpI6g4NDwqzucIoD2SS59gL0ejmudY9LO4CXgeGFTobXHiarD5KGLBnnB7HeaFv7ptp2jyaMQ6V_O2edvsJiknn2A3us-Dg6Tg3HE1skWA8YXIWfzcPiHOaxX843INpRpUj7iAK8ZiUhQfgwQJ4DpHxfwAfFo4j2FPVPw869d1h8QE0W4BO_CD7K7e5-wl6EkfZwvzh0m_ytJyZv3KSxjXxIO8WFvl9F_4V6HGYLcYgWjpOmgV_jfzfRR3whB8mHEQdz1GHfsCLTTG-38q9JxQ7Ydyq7Y7nDzDxdfmDhvegJ_tGrFbrqpsmXyxHgIk7Ao6CA0C-ABj7mSS1UM3f1hUFbk2cGSNZLEabKAthUcSlZ91ZYeAdblD8nYUphDb7NQSFposORCl0YBD3pvVpbLqXfTFsPFBGAUu2e-fHfUi22CSeledhmYWZOLPKVvJ8FV9e3F398vD7Kr5yr_8bAWNdEmHJPWxLr2EzkPeW_KnN1w5ffu_9s95Uyz8hvWHnEkdBnJztzsNwI1jGY5kGZZjyJJJxygKWcpYJDuN6VolcVh0ChNdk3NhI9_-lES14Rnx1ps6ZzxjYMYQgS8OQlqlIWcJZIjZ5FvEC3s8ljFJFEQ7-SerMnDtksDXo4GGlOtsdHkKIwIuSdGZB-aK3O23Oi50qdrDswIicuY6cu178D993X1g">