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

    <tr>
        <th>Summary</th>
        <td>
            Wrong code at -Os on x64_64-linux_gnu (recent regression)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          shao-hua-li
      </td>
    </tr>
</table>

<pre>
    Clang at -Os produces the wrong code.

Bisected to 19918ac34dc5d304ec6ad413ceae1d4394abe28f, which was committed by @fhahn 

Compiler explorer: 

```console
% cat reduced.c
int printf(const char *, ...);
int a, c = 1, e;
long b;
static int *d = &a;
int main() {
  int *f = &c;
  for (; b <= 6; b++)
    *d ^= *f;
  int **g = &d;
  int **h = &d;
  b = &g == &h;
  printf("%d\n", a);
}
% clang -O0 a.c && ./a.out
1
% clang -Os a.c && ./a.out
0
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U0uvszgM_TVmYxUFh_BYsOhjuv2Ws_wUgoGMKKlImN7770ehj9s7czVS1Dr2OceOsbX3dpiZG1AHUKdEr2F0S-NH7XbjqneTTVrXfTbHSc8D6oC7Xx6vi-tWwx7DyHhb3DygcR2nIE4g9vffg_VsAncYHGZ1nVXayLwzqpMiZ1PoLs-kYc1Zl8s61y1T1QMd8TZaM-JNezTucrEhSrSfCLnoRz3O-J7j6C5XO_GC_HGd3MILyP03ABTifoybvZv44SWFRgdcOL6iS83dbeeA18XOoQeqIiGgGfWCQPtYWJqmQDXIwxdaR79BkCfMosmv6BR70r6uPuhgDUYO0L7bGECF_qZ20XYGqoBqhPLhxyenf3LMi4PYu1hdBfKALYI8Rkix3YAO26mfUHwkVn_cdfb9m84jB9B-eKbpfgyPP4Xbp3MjP-zxDfBqKhABqQ7Ucd7MY-zgV0uhPL19oG3gdr8E6tRERaACU6CzTt0a7rjsv3D_P3Dxgv9rOpKukV0ta51wk5WCcqWUyJKxKbnsZc9MslV5z0UvCsq4FsylEKpWiW1IkMwok6LKKspS1fdEtar6UrYZ5x3kgi_aTuk0_X1J3TIk1vuVm1JRXSWTbnny2-4RzXzDLRh7o07J0kTOrl0HD7mYrA_-SyXYMHHz52v3nqvpZvwo8t9FvpvsvH78HuY1jsjChuc48cPC3ls3A9XJukzNGMLVg9wDnYHOgw3j2qbGXYDOMdfjb3dd3F9sAtB5q9ADnbcX_BMAAP__1_EsKw">