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

    <tr>
        <th>Summary</th>
        <td>
            TLS with large code model on x86_64-apple-darwin asserts
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            llvm:crash
      </td>
    </tr>

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

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

<pre>
    ```llvm
target triple = "x86_64-apple-macosx10.12.0"

@g = external thread_local global i8

define ptr @test() {
  ret ptr @g
}

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

!0 = !{i32 1, !"Code Model", i32 4}
```
Results in:
```
llc: /home/npopov/repos/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:35071: MachineBasicBlock *llvm::X86TargetLowering::EmitLoweredTLSCall(MachineInstr &, MachineBasicBlock *) const: Assertion `MI.getOperand(3).isGlobal() && "This should be a global"' failed.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsU01v5CgQ_TXlC4oFhb_64EMnvb2KlGilTQ5zG2Go2GxoYwGeZP_9CrujSXZGatEC13tUvfdQMdpxJuqhvoX6VKg1TT70s321uhi8-beHhu8_535cgJ-AH5MKIyWWgl0cMZAnBojvXfO9qW7Usji6uSjt47vgpcCSA-KOu64VHzcQvScKs3IsTYGU-e68Vo6Nzg_KMdt9xhh6sTOxJQUGFU8UE2AHeGDQ3u4VjAVKHwXjFduevlyMIs9QXrxZHZUvTo3x2r3IPCj4rwj-qcJKZALwbtsi3nlD7NEbcnlCvGP5e_WT4kO4ffs3xdWlyOwM8vjbCuc0yCMDPE_-QoDnefGL_wF4DrT4CHjO7d8swf9DOl23-c8OgOfnzRTA87eu2df7J3IP_o2CncdSLwvIo6x5K_Ilj0pPdqZbFa2-dV6_MsDjxiePII_fumbn-8Dvx39c7H5C5vnh6U45B9hdqe7nmMXHJivxW_rsl_ZzTLmBY4wUkvUzg4Y_3pcjpb8WCmo2gJ0EPJQ2_rlF4cPpzNzkpD1PNrI4-dUZNhBT18hsJrTsRVlHpvyfwoXppTnIgyqoFy1vEWvZiWLq-YEbIRWX3Iim5a1qDwoNDULVB06HurA9cqw48kZI0aAo9UBKtnVFump0VxuoOF2UdeUWLh_Gwsa4Ut_xTorCqYFc3J4X4qD0K81mF3gPDSBeZddBxSkf1qci9JvVwzpGqLizMcWf9MkmR_3zwxN7s2liLhvFdA7jJYeR-Zl9eYxGhTc7M7UpHos1uH5KaYnZUzwDnkebpnUotb98CtXXqG0j5QhuU_0XAAD__x58PeM">