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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] llc fatal error only happens when specifying -O1 (InferAddressSpace)
        </td>
    </tr>

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

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

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

<pre>
    `-opt-bisect-limit=1` shows that the error came from Infer address space pass. (https://godbolt.org/z/Mc9r8Er7W)

Cannot reproduce the issue for O0, O2, O3.

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

Code:
```
; 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.14.22.26.30.34.42.86.114 = type { double*, %dv_hdr.0.4.12.20.24.28.32.40.84.112, %dv_dim.1.5.13.21.25.29.33.41.85.113 }
%dv_hdr.0.4.12.20.24.28.32.40.84.112 = type { i64, i56, i40, i32, i64, i64 }
%dv_dim.1.5.13.21.25.29.33.41.85.113 = type { i64, i64, i64 }

define dso_local void @"test_mod_"() #0 !scalarlevel !1 !cachelevel !1 !fplevel !1 {
", bb1":
  %r57 = addrspacecast %DV1.2.6.14.22.26.30.34.42.86.114 addrspace(5)* undef to i8*
  %r58 = bitcast i8* %r57 to %DV1.2.6.14.22.26.30.34.42.86.114*
  %r12.i = ptrtoint %DV1.2.6.14.22.26.30.34.42.86.114* %r58 to i64
  br label %"file test.f90, line 42, bb20.i"

"file test.f90, line 42, bb20.i": ; preds = %", bb1"
  br i1 undef, label %"test_mod_.exit", label %", bb27.i"

", bb27.i":                                       ; preds = %"file test.f90, line 42, bb20.i"
  %r37.i = ptrtoint %DV1.2.6.14.22.26.30.34.42.86.114* %r58 to i64
  %r38.i = inttoptr i64 %r37.i to double**
  %r39.i = load double*, double** %r38.i, align 8
  unreachable

"test_mod_.exit":                                 ; preds = %"file test.f90, line 42, bb20.i"
  ret void
}

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

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

Error message:
```
Instruction does not dominate all uses!
  %1 = addrspacecast double* addrspace(5)* %0 to %DV1.2.6.14.22.26.30.34.42.86.114*
  %r12.i = ptrtoint %DV1.2.6.14.22.26.30.34.42.86.114* %1 to i64
in function 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 -O1 -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 '@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 0x00007f6b962ecb20 __restore_rt sigaction.c:0:0
 #5 0x00007f6b94ffa37f raise (/lib64/libc.so.6+0x3737f)
 #6 0x00007f6b94fe4db5 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 0x00007f6b94fe6493 __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/eJzNWV9v3DgO_zSTF8GGJf9_yMOkSfYCNEiQ3vYeA9mWZ3S1LUOS0-Q-_ZGyPeNx0zbtdosNEtmSKPInkiIpp1DVy_kmCTzVW6-QRpTWa2Qr7Sa8pDBOzF59NsTuuYVGEKG10qTkrSC1Vi256WqhCa8qLYwhpuelID03xicblu2t7c0m3G7YNfzuVFWoxvpK76D3P_i7LXOdXen0PxuWb4LLTbAd23e865QlWvRaVQNwRMnSmAGEgvS7YMPekTvm2tA_WanalncVyhxHk2D6dd2mKYl3R4nXWi37RsAmeVvtys6DB_7tDSdeJQ0vGuGB9FZZ4fGmUSX3rPKaysDash9g4a5-zoOEeLVshH3pHS_TkmLY9Up21tMCoVeekW3fyFqKym8a4ilihbG-eRXfvIlKfG0Hm_CC3IJSGnFzSUAkqDndhO-MrWS3Ca-w5-iMGnQpHhFch8YaSVnTPLVg3-4TvI-EluudsKTiljf8RQ12JoX9A4gkco3X02WHwTMcG68Pl51oSRYvZ5JFR84kTxSHaeI9sWicepppnqJsoskdDcuAOsdJFiN9nMyvMcVRaIEgcHzwASSBY4EPr3NsgdsHYL2NvT-o10kYSdeKGB1jVsIX3nEgn1oWX36kPvMTn0Y-Yz5L_DDww8iPmJ_BII0cK3QQskkvSKUGcK0N26Lzwurq6XFfaT_wI5_C6sBnwCbzQ-ZHgZ_BIGVHykq2PvVjn4Y-A6Gxz3I_DP2I-hkM0hAkXB5wvYHzKTQ0CoiSoFh8RO6UydDJn-eSaC3j-5hek_EaO9dWopadIJVRj3joGvKkZEU2CIbhwXlsVfWIRmAZBA3QSxhAQw2Qct2IJ9Fgl2JT8nIvTofqftlPL-aNuD0WBcW3-eARVLqOU7cBDHAuuJXcWPIWqx9WANIY4xvbkqGD7RGriMzQA5ZiMiemkNYJcPOzfKB_g8AVQzC5dCx7qy3GozfymNEgSDDSxLHQpOGFUxzshWFUGcNYnTsvadBm0aRFcDX5xTF545oQAECE6yF4mukMxqfmOSKSdFSoY7ZAd3ATXzxDHhtXLwkmkelrME_nAM7bfl4D_QNaGm0Wpr_SZo5jNnEEZhYyvB6P3CwLFizi0Yn_hPm0slG8Oo1ayyUHKTjBG7nrSDazGTot4AhiKl0p-UsLvUHRf1nFGqI7RpMJxmnc4RYCfzEArymmoAwIWIjWJQYPsz4ivYR2zP3wsg5fEFimtYzCcoiehE1hlASLyInh50gFNllMvlYSXLmyq4Uai---WhvcdMbqobRSdWAk2AkWUZVqZcetAOs0ZDDCoMyjoekr4e1g4FeDGCwKfn9MoifeLTtSD92402NWcFPv33-8JVcPD3cP6FQXWn0SC-JaQchAg5Sq7WXD3SAvlLaiOijm_v3V9sMVMUMBdTDhWNJhLQpECGJV1Eq7Hwof2EEHq6vpgcXjf6GYhq4rXEHt1wQqUziJZTNUY0lbam72pODlJ6tByVMl-8HCAKmGtj8YOvDHM3Cv1U7zloBHDq3oLOIg_7iilk5oH4auk93O3QewTr2erXCPA7e8A1_WME5gqHU1LVJ9WxYQTGpiX5EyVsfko9C4ZuZ_8ACskKNgUUpMBfN47IPnYP6Jk6QIS06cUcEQ4da8mPHlXgM-Z6Z_6_FwHIk0__yo4BwKDq4wVlKdHUuV696CTdl1CXVJ96WfzN4jC2g_DD06HLz92clnHIDYyhvjg_9gsZtgbU3pETtdY4_TgqyAjjz-BW7YoGIyFw0xjv9idIkrthfg2ApcXrJXFQu2PMFoDmXez6GbYZU9nqU8Rc0dUYVrlZU8Jmsd_R3Wi4L0VD_RhCStkyJPmCghd5HHR7hTW6XFIwQeI3fcObCPDAL3d1geL5dHdc3DtCaaw22eOAUiKqy48Vn6RvnglxfBc5gC3eHqjYySU0Yiqop4DI_fZMQo0J0wSk9UG2e8ivjEYqXG9mXSXCFHrZaO5bTmhGm2ZlqU7KcN4zKqMzMEj8lBMneVPQrMlwKjgoq0KHAXvFPdS6sGyLBwt54SZD668Bx33gsw2AtGuikuDN1dN0fAk4hxHEx-3NNuHqCZZU7bSAJGj56OseEksEWcJSkTi_N3fY8454D8t8M9qmYSOeGmUYiXdxYegdMV8CIu2BuAjzngBPY89OtBZ4H7hHEEzVag04Dm33Ob23_ATuIoX6k_XPtNkVUL9TeO05QTj_xuIF8ftvBboMdhvrJBtHacLKffR_57UdMkTY4BB1HHS9RhQJOyLqdSVRw8Aa5Uerqw4Y3nABMr33eqs-LZ_iBWq1Rj5uCL7QQwdTeziB4BJiuAcZAL0nLZ_WVZEXU5caGMdJWMkigPISli6nk0cCmDAm4U_I3EFMKa48dlYJqtNhBlsIGR3Q_lp2npgfd2vEMgjxJStivf8UqRr25qZ9V5WOVhzs-stI0438QX29vLP-7_3MSXrpKv8UPs9Jlddc0L2fO-F50hnwEPMb0oZf2C9S6W_CDNfYDfjt_fP0wh5WzQzfnP31PiiMbJ2f6cBlAQcRrkVHBWl0VB6zKN6jIIwzJLcnbmPqoY3ANchRWgRM0x2MmZPGcBY6DgMAgolAO-KJMM8ierqgKSaCSgBhdgvsZHEPgvgTN97vBA-W9gspHGmuMknB2ooISYZHFtQNgkiw92r_R5uZflHnITqOnMbeXc7eP_ILkWmg">