<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/78276>78276</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
A constant write to a static global is replaced with a "boolean" and later reads recompute the value
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
colin-arnet
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/TsKE76836
```C
int a;
int *b;
static int c = 0;
void foo() {
if (b)
c = 6;
a = c;
}
int bar(){
return c;
}
```
```ASM
bar: # @bar
xorl %ecx, %ecx
cmpb $0, c(%rip)
movl $6, %eax
cmovel %ecx, %eax
retq
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEk82OmzAQx59muIw2MmNiwoFDdlMuVU_tCxgzJK4cnNomu-3TV0A-tumqtZBhvn7jQX_rGO1-YK5h_QzrXabHdPChNt7Z4UmHgVPW-u5nfUjpFEFugRqgZu-71ru08mEP1PwCar7Fz59KtZEKxA7EFpRYnpfFtkNCDfL5bgFt25sjJp2swclvEOQOxS207GdvO-y9B9oAVQjlJYpoewTatEDV1YMXhroxEPXsMXdquXuPvx-r1WHp8a4FYuA0huHD-uugD-b265fFMwHlDPnfApIIhZgKbo2n9eaDW-JrNm9AL9evP7LM8dQuWYWYcsw8xjrY0_3XHP35QirUlaP_4vgzu8dut6zA6cfHk_9zz7padpWsdMZ1Xop1kVMlVHaozYYqVkVeaWaRs-RCqrKTOYmy77UsM1uToELkucplsSG16vM-Z-qU6hVL4hwKwUdt3cq583FSZGZjHLkuN1SqzOmWXZzVTTTwK85BIJrEHuqp5qkd9xEK4WxM8U5JNjmut2j8EJMeEr4GmxiTR40Xve6db7VDGzHwyWnDHb7adJjURtR671gPQIR66NDpxAED627KNv54GifagfGs3cjZGNzjJbPpMLYr449AzXSsy-vpFPx3NgmomYeJQM087O8AAAD__3oSBp4">