<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">