<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97330>97330</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstCombine] Miscompilation with llvm.assume in unreachable blocks
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation,
llvm:instcombine
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
Reproducer: https://alive2.llvm.org/ce/z/zKvpXV
```
; bin/opt -passes=instcombine reduced.ll -S
define i16 @src(i16 %g, ptr %e, ptr %d) {
entry:
%0 = load i64, ptr %d, align 8
%conv = trunc i64 %0 to i16
%tobool.not.i = icmp eq i16 %g, 0
br i1 %tobool.not.i, label %i.exit, label %for.cond.preheader.i
for.cond.preheader.i:
%cmp5.i = icmp ne i16 %g, %conv
%conv6.i = zext i1 %cmp5.i to i32
store i32 %conv6.i, ptr %e, align 4
%cmp7.i = icmp eq i64 %0, 1
call void @llvm.assume(i1 %cmp7.i)
unreachable
i.exit:
ret i16 %conv
}
```
```
define i16 @tgt(i16 %g, ptr %e, ptr %d) {
entry:
%tobool.not.i = icmp eq i16 %g, 0
br i1 %tobool.not.i, label %i.exit, label %for.cond.preheader.i
for.cond.preheader.i: ; preds = %entry
unreachable
i.exit: ; preds = %entry
ret i16 1
}
```
llvm version: a8e1c3e1239604ac787b6a2d39b5278ddec8aa8a
cc @nikic
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVcuO6zYM_Rp5I4xhU34uvJhJYKAoummBols9mES9suVKcu7MfH0hx2ns4ALTRRcFEscSeajDQ4rh3uvziNiR8o2Ux4TP4WJdp4J8__z4ngirPrpfcXJWzRIdYa_0EsLkCXsl0BPoudFXhNSY65BadybQSyTQf8bvz9fpj99JdiTZK6my9XNbsjcq9Eigt1OgLxP3Hj1hRz36IO0g9IjUYTxSpcbQl99uMIWnaNF5RUmReScJNMsCyjOBA52Ci--4eVcEWkrqt1sAHIP7iNyXFY0OGSXsSI3liuqq2CMPlBt9Hmmz8Zd2vC6Q4OZRRswtSrCR1-pIoAxWWGvS0YZUL_5aDhPFv-iWcHYPLBzV-TMsehgu0ESDTvFdh93WybpU2lGlk8MLcoUu1au-y_OH9l3ycpjKLb27uCu9Nd2n7KsV8YnvYWW9xokaMLi7-2Adxo0N8LlKN32LPaX6WbFV4wjI766SG0OvVqvYCkv7ce_nAZeWeAQi0N4R8-iQywsXBrcqrcI-dHEY7io8sif18cedvF_uOzScw3_Qof_fTqLxHk8OlV94xcQW-v9S8C_g9zrkX1RgecYOoFd0XtsxhuYN5pJhDqytsoLLuqlFxUGxVpRQN0qhbDhv-DaGlLFoo_6mZaI6plrW8gS7vM7bpiyLEpJLxyqoK8HbTLJaFE1zyk5wargQjGdwkkWiO8igyOosz2tWM0irqmngBC1nWLctACkyHLg2_8zMRHs_Y9fWjGXJUhK_TGOAQXtph0kbHmJaAAQOBCACCXvdDMtoKo-J66LpRcxnHy-F9sE_Tgk6mGXM_zT6cFhx5ZH-sjuEftfhQjf3iepxW0gqjJXffDI70-3_Cc46XGaRSjsQ6BeKt5-Xydk_UQYC_ZKoJ9Dfcr128HcAAAD__1QR4DM">