<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/63331>63331</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/q6oWW8P4W

Given the following code:

```C
void foo(void);
static int a = 9, f;
static int *b = &a;
static int **c = &b;
void __assert_fail() __attribute__((__noreturn__));
static int *d() {
    int e;
    if (b)
        ;
    else
        foo();
 __builtin_unreachable();
    return &e;
}
int main() {
    if (0 == a) {
        int **g = &b;
        *c = &f;
        *g = d();
 if (b) __assert_fail();
    }
}

```
clang-trunk -O1 generates:

```asm
main:                                   # @main
# %bb.0:
        cmpl    $0, a(%rip)
        je      .LBB0_2
# %bb.1:
        xorl    %eax, %eax
        retq
.LBB0_2:
        pushq   %rax
        leaq    f(%rip), %rax
        movq    %rax, b(%rip)
        callq   d
.Lfunc_end0:
        

d: # @d
# %bb.0:
        pushq   %rax
        callq   foo@PLT
.Lfunc_end1:
```

clang-16.0.5 -O1 generates:

```asm
main:                                   # @main
# %bb.0:
        xorl    %eax, %eax
        retq
.Lfunc_end0:
```

Bisects to 1fc425380e9860a6beb53fa68d02e7fb14969963 (@nikic)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVU2P4jgQ_TXFxWrkOImJDzk0zbKXkXa0WqmPkRNXEs8Ym44denZ__coJ0IGhR9rTRgic-nh-9Vy4pPe6s4gl5FvIdys5ht4NZegx9OiUG1a1U3-XfQhHD-kzsD2wfedU7UxYu6EDtv8H2P6Nu9fX4mv2CnQH9Hn-_l2f0JLQI2mdMe5d2440TmHEWYQBp_PnZX4_Oa1I6xywIi6BCUi3s8sHGXRDtA1EEkh3RAB7Ie0jP7DnegoBxuUnAcCem0tMfY2Z9q8q6T0OoWqlNsAKYCLaQhh0PQasqslWVJV1A4ZxsNEiPuEK7FmdMWBzdhNCJh9eEyZLS4AVdcS52uJzE4TG4617Vmu5O6mqetQmaFuNdkDZ9LI2eB9ECJnZRwU-mMBmNy8iwYPU9iH5iSqN-kUJ5U8Blwpnobufhb4WtziG9pF3zlX37D_EenRcN0DXij4Wt703vzZG2u4pDKP9Tp7-SEiHFgcZ0H_WstIfZsukUnol_YsHWEogo1PCDBYNLK_rNV1sI5rD0QAVwDIam1xOVeWDPl6bA6j4hkDF-st2Syt2j5Ys0X64YUbLUf6IeOfVxT9geJtfLmiL5OPo-7c5e1jkGJTR2t4wm6GXYQd3WiSzF1I_LKWRxsQ4daHRjrap0KobVZanoKLgZznVL7X8pIDLlvHvk9GvX_6633oh4W2jLNsl4Wu6zv_3fvkvJ_xA2kf1bbXHJngSHEnaJmN5WlAUBaeS11jnaSt5oSjDTVsnmeBC8MisgIxa_V03wMRKlakSqZArLBNe8CLL82yz6ssNV1JuVNqqIpNNmzQpUpZxwSUXQuXJSpeMspTyJE94wthmndCiSFSdiKIpUtxIyCgepDZrY06HOIpW2vsRS56mabIyskbjp6nGmMV3MjmBsTjkhjLmPNVj5yGjRvvgP1CCDgbLHUpFXpxC8pvRB21l0M6SP7Eb0Pu4fO_RktHHmfbwqo1CzBfJyZOEx0tqNQ7mfpLq0I_1unEHYPtI4fzzdBzcN2wCsP1E3APbT4X9GwAA___figa2">