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

    <tr>
        <th>Summary</th>
        <td>
            Dead Code Elimination Regression when using __builtin_unreachable (trunk vs 16)
        </td>
    </tr>

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

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

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

<pre>
    https://godbolt.org/z/4b8f9zWc1

Given the following code:

```C
void foo(void);
static int a, c, f;
static int *g = &a, *k = &a;
static int **h = &g, **i = &g;
static short j = 65535, l;
static char m;
static char(n)(char b) {
    if (!(((b) >= -55) && ((b) <= 1))) {
 __builtin_unreachable();
    }
    return 0;
}
static short(o)(short d, short e) { return d + e; }
static char p() {
 n(1);
    n(201);
    **i;
    *h = &f;
    if (*k) return c;
 m = 12 - j;
    if (m)
        ;
    else
        foo();
 return l;
}
int main() {
    p();
    n(j);
    j = 0;
 for (; j <= 3; j = o(j, 4))
        ;
}

```
clang-trunk -O2 produces:

```asm
main:                                   # @main
# %bb.0:
        movzbl  j(%rip), %eax
        decb    %al
        orb     $4, %al
        cmpb    $12, %al
        jne     .LBB0_2
# %bb.1:
        pushq   %rax
        callq   foo@PLT
        addq    $8, %rsp
.LBB0_2:
        movb    $1, j(%rip)
        xorl    %eax, %eax
        retq
.Lfunc_end0:
```

clang-16.0.5 -O2 produces:

```asm
main:                                   # @main
# %bb.0:
        movb    $1, j(%rip)
        xorl    %eax, %eax
        retq
.Lfunc_end0:
```

Bisects to 84bcfa0e1b34938d1d11a44e9e17c6e222dd2f42 (@weiguozhi )
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVk2P6yYU_TU3GzSRuWDHXmSRTF66eVKrqlKXI2xITAabPINnXufXV4DznXbbjiKPued-nHu4JAjn9L5Xagn5GvLNTIy-tcPSt8q3yko7zGor_1q23h8dsBXgFnC7t7K2xs_tsAfcfgFueV3uqq8_GwrZBrJVev6iP1RPfKvIzhpjP3W_J42VKuS5coMiS5_XtP6wWpKdtYBleAWsgK0T5LzwuiG690QAvpImPHbPYMDVngDbEMAiugKu3i-G5xGAq_bks5-CAFf6YruLc60dPDlEvMhzlocgc-_VtGIg3TMrYNmH_rCMPjVgRWAx-RFCiN4RwBKQxmf4JB_2LZR8yfO4wgKwIDf4a8BpzF3dZn17q0dtvO7fxn5QomlFbVSMvegcSsNic1kMyo9DT7Kzxxm9VgKwtKmdJIwMcqRXNZE4ZZIEcE0UsDW5TxWlOCZGV7x7wJLekwxGzB7M077d286bu7tBTiKv3kPFiWBzceliGEXyQg5PArtQ_WyLpa6dlHHqFk6zfcN5Kmoe9Q2j2QndP-hByEmkB0UO98Y0oZfdIzs7xJ7ZOmJxWthptSE2JXklfJqg5-2dSd4d5LRsjOj3L34Y-3fy8iuS42Dl2Cj3T8dfuC5ZYrvsXO5f_gAZAZ7FgJQsGDCv63l2Vabq7MdXbSCrDlGxfNDH2Fg44bkSP8-OUjU1ZBVgLszZaIdk43yKuMKa7jiBFB_RQ68gq-bf1-vsDe8Z0muGx9G1P1Ll4YpPI4wJ5jAyPPvt-x9nREiZ_Hk51R3cMaGnercCnGgG71sZTk4_7WAShSDJoziD8j9OFXZj37ypXl7JfLv71zNAi3k2z_8HQ_CfaLDWTjXeEW9JyetmJzJFa8YrVkoqKRWcq0rRRVMoRJQSdxzj2eTZp9L70X61mgBWM7lksmKVmKklLcqi5HyR0Vm7XOCC5oKzolYUZVVwzhVnLBNVKQue5zO9xAxZVtCc5nmJdM5qwbAqGspLUdY5B56pTmgzN-ajC7_qM-3cqJYFY1jNjKiVcfGCgNirTxJBQAz3hWEZYl7qce-AZ0Y77y5ZvPZGLTdKSPJqpSLfjO50L7y2Pfld7QflXHj9bFVPRheuB09_nIIa6WvkwxFaBC3GwdzfSbRvx3re2A5wGxhM_16Ogz2oxgNuI28HuI19_R0AAP__Yf9Psg">