<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/124387>124387</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang] Miscompile with -O2/3/s
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cardigan1008
      </td>
    </tr>
</table>

<pre>
    This code prints random value at `-O2/3/s` and -1 at `-O0/1`:

```c
int printf(const char *, ...);
int a, b;
void c(char d) { a = d; }
int e(int d) {
  if (d < 0)
    return 1;
  return 0;
}
int f() {
  if (b)
 return 0;
  return 1;
}
int g(int d) {
  int h = 0;
  if (3 + d)
    h = f() - 1 - 1;
  return e(h) + h + h;
}
int main() {
  int i = g(0);
 c(i);
  printf("%d\n", a);
}
```

Compiler Explorer: https://godbolt.org/z/KfWsKxcvE

It starts from x86_64 clang 19.1.0. 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsU12vmzAM_TXmxSpKHMLHAw_9uEjT1bSXSXucAklLJgpVErq7_fop0NvedZMCwcHn-NiOlff2NBpTg9yBPCRqDv3k6k45bU9q5IyVSTvpX_XX3nrsJm3w4uwYPDo16umMVzXMBlVAyNnmCwE1AqjxkDNUo8YNv_9jQA2HnIHYAltWztbVAdvaMazMR6Cym0YfsOuVQ6At0B7TNAWqQOxurioetqt9nazGLsIiQANVCMUOFYI4oAaxQygON5wBKuP-7gVsi2iPCFRqBLFHFsPEQ0RnwuxG5GuUu81W-8EZFf9L196I_kY9sz5YTv9VNgbslzzu-JVdINBu8b2JXb3epWyQx-cpZky-X-hpFwHx_SzjrOz4nM8Y0C70USO792GpuX2Yj_4BEZDUIPfj8rmP_ao-hrr3fr0K--l8sYNx-PJ2GSZnHIgt9iFcfLwt1AA1p0m30xDSyZ2Amt9Azevxm399664vK8engD4oFzwe3XTGtzL_nmfYDWo8Ia9SnrIUE10LXYlKJabmhSiKQmYVJX0tNaty03VKSc4zKfjRiMKwIy-pKiUrE1sTI8k4SSYok5QeudEZyZzlmWkrZiBj5qzskA7D9RxVJtb72dScMlEWyaBaM_hlzIgWUbEy8pC4OgI27XzykLHB-uAfFMGGYZnNFSEP-Nn6bi0W_rShxw8zl8xuqJ-KZkM_t2k3nYGayHrbNhc3_TBdAGoWlT7O5ir0WtOfAAAA__-URx7k">