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