<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63575>63575</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Dead Code Elimination Regression when using __builtin_unreachable (trunk vs 15)
</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>
Given the following code:
```C
void foo(void);
static int a, c;
static int *b = &a, *d = &c, *g = &a;
static char e, h;
static short f;
int main() {
f = 5 - c;
if (f ^ 0)
;
else {
foo();
}
*b = c >= 0;
h = *g;
char j = *d = h;
e = j << 2;
int i = e;
c = -3;
if (!(((i) >= 4) && ((i) <= 4))) {
__builtin_unreachable();
}
}
```
clang-trunk -O3 does not eliminate the call to foo:
```asm
main: # @main
# %bb.0:
xorl %eax, %eax
cmpb $0, c(%rip)
movl $65533, %ecx # imm = 0xFFFD
cmovel %eax, %ecx
cmpl $5, %ecx
jne .LBB0_2
# %bb.1:
pushq %rax
callq foo@PLT
addq $8, %rsp
.LBB0_2:
movb $1, c(%rip)
xorl %eax, %eax
retq
.Lfunc_end0:
```
clang-15.0.7 -O3 eliminates the call to foo:
```asm
main: # @main
# %bb.0:
movb $1, c(%rip)
xorl %eax, %eax
retq
.Lfunc_end0:
```
Bisects to 0f32a5dea0e9ef5a52865f9fd285b394d46babaf (@rotateright )
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVU-Po7gT_TTOpZTI2JjAgUMn6fwuI_1Wq71HxhTgXoMz2KR7v_3KJkmHnoxmtZdFiC7Xq64_zy-2dE63A2JJxI6Iw0pOvrNj6Tv0HdrajqvK1n-V_9MXHMB3CI01xr7roQVlayT8hdADobdvRud3P68vVtfQWEtYHkzCCsJ3M-S89FqBHjxIwvagniGEvVRA-AEIy2IUYS_1zaGujvYz4ksK1ckRMIR1XyHX2dFDc3eHar3UA2E5YQWQ7dUPANDEAgLWD00Gv26AsLwBIl6BhtnuSHgWoWgcLpPGxJGZR1aAbA-fMffxFRD-Ggy6yNpdJ39pF-449tsNm_nqlu1EXwjZE74Hthxr8KBjAC7TRt-aP-GAsCR-w6sjf3O7abRZRlgGC3R_Q-f3R2pOp2rSxuvhNA0jStXJyuBXsgJFN74-jaUS56UycmjXfpyGP2H9fw61RQeD9YBG93qQHqO4lTQGvI0b8xNlS9fPnqgW_gKEcSApjcs5NDiYqKoNfUhSfNjREFoQJlB-zNKN1g1X_bmKeErn30MYVoz6fFcWoUVvL3OSNBOC81sa9QFPntCI7vu4bfTjeDweHorZC_7Yjlq0c60knqBvAxJabL7tdvTEvo6dPI59nlz3fS40Pk4rjQnuwHRKf_v2xx2RdT3Hp_m18OjOM3qr95C-t5cra8nPWfsV9SP677cKzTSoEw71w94tpfQoqERs6GYbFXUXkvvXSvr180-19l-xstMOlXdhcNpwJkWNkmKBjZCC5ZloiqZmuah4kdZpVslKzsdHSkfrpcdRt1049YtVXfK64IVcYZlk-bZIs7zgq67EQmy54MgzKZDnfKsYy3NFRZY3XCZspUtGGacZyxNK84RviizNZZJjypOiSIQiKcVearMx5tJv7NiutHMTlhkXW7EyskLj4m3I2IDvEEHCWLgcxzL8z7qaWkdSarTz7jOL195geUBZw97WCK9XQWg7wO_YjuhcMN87HGBy4QJ9esYFPuZz6uIgEeFwXE2jKTvvzy6wz46EHVvtu6naKNsTdgwtXP-sz6N9Q-UJO8bGHWHHONjfAQAA__8DCQ3a">