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

    <tr>
        <th>Summary</th>
        <td>
            `llc` crashes with `-tls-load-hoist=true`
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          abhishek-kaushik22
      </td>
    </tr>
</table>

<pre>
    Godbolt link: https://godbolt.org/z/PPGeo171b
IR reproducer:
```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@I58561 = external thread_local global ptr

define i32 @I59676() {
entry:
  %0 = tail call ptr @llvm.threadlocal.address.p0(ptr @I58561)
  %1 = tail call ptr @llvm.threadlocal.address.p0(ptr @I58561)
  ret i32 0
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #0

; uselistorder directives
uselistorder ptr @llvm.threadlocal.address.p0, { 1, 0 }

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

```
Stack Dump:
```
llvm.threadlocal.address first argument must be a GlobalValue
llvm.threadlocal.address first argument must be a GlobalValue
in function I59676
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: /opt/compiler-explorer/clang-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -tls-load-hoist=true <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'Module Verifier' on function '@I59676'
 #0 0x00000000038c64c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x38c64c8)
 #1 0x00000000038c40ac SignalHandler(int) Signals.cpp:0:0
 #2 0x00007d9a03242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007d9a032969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007d9a03242476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007d9a032287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x000000000074fb06 llvm::UniqueStringSaver::save(llvm::Twine const&) (.cold) StringSaver.cpp:0:0
 #7 0x000000000381bd58 (/opt/compiler-explorer/clang-trunk/bin/llc+0x381bd58)
 #8 0x0000000002f84416 (anonymous namespace)::VerifierLegacyPass::runOnFunction(llvm::Function&) Verifier.cpp:0:0
 #9 0x0000000002ec42b2 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2ec42b2)
#10 0x0000000002ec4541 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2ec4541)
#11 0x0000000002ec5ee6 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2ec5ee6)
#12 0x0000000000873364 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#13 0x0000000000763cf6 main (/opt/compiler-explorer/clang-trunk/bin/llc+0x763cf6)
#14 0x00007d9a03229d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#15 0x00007d9a03229e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#16 0x000000000086b10e _start (/opt/compiler-explorer/clang-trunk/bin/llc+0x86b10e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0V1tv2zoS_jXMCyGDomRdHvzgXJwt0OIEydm-BhQ1lrmmSC0vib2_fkFKdiyfLtCcdgtXkSjON99cOWLWik4BrNDyFi3vb5h3O21WrNkJu4N9smfe7sSe0ptGt8fVo24bLR2WQu1RtsY75waLsjWiG0Q33fh2oU2H6OY_iG6enh5Bp2XaIHKPyPrLMzYwGN16DiaIxVVUkPEn5Vs_LjlmOnC4ZY5JdtTeYZTdY0QpJD3K1pAMtCQoW2c0XsJjOn8Md0UeL4k436S0Qtk6pVWyrch0p-JScRIv8uQlbKN0RsUZMUg40ThUxWuRJ17tlX5XiRTKH5JO-bPUdM3Jl2W1LNIoBwcHRjGJ3c4Aa1-l5kziTuqGSTw4cynZwlYowCKjOILURVmgwKrGqLwd94By5nj2IsaILklU5JiQmDMZUYN8cOxi1BqVLljbGrB2MRBEq2nTyBTR-gIv_Z14Blw0iEyGlvczX2W3eOMVd0IrvHbOhLzCKsDLhvE9VnprALDS9qg4Vtqrd6FabAfgXjLHGgn4XUhpwHmjcA-9NkdEK6UVnFm0wCUzAUUp_xmDJoEYAJqRa-beghTWadOCwa0wwJ14AztumL38GY13Icg4DTcEX_mJOWdE4x3YSGTMyPL2N3rqWuO5PsfHFxd03Pt--GsFj4__yza8FcY6zEzne1AO99463ABm-DEWwXcmPfw2CKHw9pRPUwHF9a9fv3_DD8_PfzyHBLs1eg8XO7faqzY4nut-EJLFRdZo46BFNB0hnr4-rF8esPVNLxxmuPFdaGzaOOz0dVMUbuebBdc9opvY4cY_yWD0v4A7RDfCWg8W0Q1mqsVCcelbwG4HmBtmdzgE1RnGYXEZgfYyAmSBSP1kdGdYf_ZOrCBEN3oIWkaDwCRwGKQ2YMKaZKpLnPFqj-imESqS4zjRQY4NQ5D2bvBuYXFyqIqE2T6xR-XYAWX3QjmQOHHSJlKzNtlpYR3K7p3xoVXeWe0NB5Q9jCTTQPLZKyVUhwdmQwaX55p_CgvfmGJdoFZirXCvWx-aLi1nYLScHEF_BPhtFPoORmzFGeoc4AD20VHLqTnFUiIHcvqXVbzIeYVjwLI1ytb2aMebJyOUiyH4M8QE0epjk2Hvr9o6A6xHtAhpJJQbe0b1dwKB6C05TFw-OimiWXpFNieM4xfRKSb_wVQrA2g16R6X7YIPIV9I_H8GohNQ2daMZDSnS0omtlI0iG6mo-7iiAsv-MLqRRHpRZEZuWyOWRf1luNhOvX2QsrPKYjyMwX5Nem8LHBno52fJZ-HNLjAXs6xaVVus7EBfA45Cs6Qi8uYkTLfNqS4SLB_KvFvDy_OCNW9sLdxQMrWlr3Nc-zP9zAZcK2sizkWk2vBtWxjsD_kfxzwcp45adMuq19Mz4gxM7W6VEK3VZ6nRVDClFbHXnuLFevBDrF-6tGuU8F-hY7xY-gGU0159Yc6dYmZJz4WoxtOAD-2u55RAp7Thl54f_MUNJ7az-cU_4r3JiZn74XaJtdUl3n6E1THxjcjelr6LTSXeTqjmV7RXAJc5rOMcZx65gfhL_0gz6T_b2QDlxlZOiu-qsyyIp_OeDg7ju-YQXQdf3cXpoSR4U4rB4dTyUnJ_5pmQU82L_Ii49sC90yoX7JoxJkZdNUDad3Wn2zcUWSGed37asgJfn0NYq_WMeNeLyz5aS2Qz7XM-2BVNCkBPOL_kpNGpLOq0zTkwPRCMQctfhduh8djIoxGL18eXx4ev4_b7yZteJyKoQ070qy-mnBv2lXW1lnNbmCVlrRO6yItqpvdqi5bmtcAfJlWaVGRNOV5luXbZltUvCngRqwooXlK0pKStCDloqpzTkhb1pTlbQsU5QR6JuQiDr_adDdxMFylKS3L9EayBqSNH-qUKnjH8W344lze35hVnCkb39nwcSGssx8wTjgJq_iBzVFBxqkS7OgOVJAfD3DBWG_k6u-PsxPxtxX9bwAAAP__diDrzg">