<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138636>138636</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization: conditional store of zext(i1) not folded to constant zero when i1 is known false
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
GINN-Imp
</td>
</tr>
</table>
<pre>
The following reduced IR is derived from https://github.com/c3lang/c3c/blob/125436d23ef9b7f69837a00ffec168c52839a1dc/src/compiler/bigint.c#L777
Godbolt: https://godbolt.org/z/jTWv4o5n8
Missed optimization: `store i8 %4, ptr %2, align 1` --> `store i8 0, ptr %2, align 1`
alive2 proof: https://alive2.llvm.org/ce/z/ZQ5aad
```llvm
define void @src(ptr writeonly captures(none) initializes((0, 1)) %0, i1 %1, ptr writeonly captures(none) %2) local_unnamed_addr #0 {
%4 = zext i1 %1 to i8
store i8 %4, ptr %0, align 1
br i1 %1, label %6, label %5
5: ; preds = %3
store i8 %4, ptr %2, align 1
br label %6
6: ; preds = %5, %3
ret void
}
```
opt-trunk -O3 generates:
```llvm
define void @src(ptr writeonly captures(none) initializes((0, 1)) %0, i1 %1, ptr writeonly captures(none) %2) local_unnamed_addr #0 {
%4 = zext i1 %1 to i8
store i8 %4, ptr %0, align 1
br i1 %1, label %6, label %5
5: ; preds = %3
store i8 %4, ptr %2, align 1
br label %6
6: ; preds = %5, %3
ret void
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVc2O2zYQfprRZeAFRYqSfNDB262DBdoULQIU6CWgxJHNhCYFkrIbP31BepNuEuwC7aWX2oI0oyHn--ZHHBWjOTiiAeQ9yIdKrenow_Dm8e3bzeNpqUavPw3vjoSzt9ZfjDtgIL1OpPHxNzQRNQVzJo1z8Cc8prREEDvge-D7g0nHdbyb_An4fhJWuUMRJuD70foR-L7mshGt5oLm7djN7bYXnWJsnmmq236SvBdbVeu8I4Z8n_xpMZZCdmEOxqW7Cbj4qes6YDtguzdej94mELtvydwMdz5kElfg-w_vfj83Xroe2O5nEyNp9EsyJ3NVyXiXXUDLYvKB0PQIXDbAf8AlhSzzLCtrDg5raBluNiB-_GoDe3k1sJ2y5kwcl-D9_D3bm_XO2vPpifFET7T_-FUqpW_RZlflyguB7TTNxhGevdEIDSsp6zOFSzCJvLOfcFJLWgNF4L3zjoBv0TiTjLLmWt4C7wvzGvg2W4HLops6i_XnoF71eIt4i9ZPyr5fnVMn0u-V1jkZgiF098B2WHKKIB7wSn-mzwiYPJq-2F9KPnuezrxwDM_5WTWSzVr7lSZvSZOlsuIel0A6FnjgUrwKyL8BHMNzkOK2zW7_4e87FjLjfGETKJVaZoDu4Xm9b5B-SZsUVvcRN78IPJCjoBKVLvq_N_6z3nixOf51tSs9CL0VW1XRUHdNK-tatl11HGTTy7lrqdNKqka0XLdtLahmkvckp6YyA2dcMsna8u_u5rmdZt2MNetpFpKgYXRSxn45aioT40pDLfpWtFWJI5bhwLmjCxYrcJ5nRRjyps24HiI0zJqY4t9ukkmWhhfO1ck7bbKi7FNa_VzqDLw3ubnQ-ZRHjiadSz55F5NyCa8UPF6O5HJJTcSPzl8czspGqtZgh1cGUPkMbo_NEvwHmhLwfYkn5kl0C_g88L8CAAD__zMECls">