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

    <tr>
        <th>Summary</th>
        <td>
            Wrong code at -O1/2/3/s on aarch64-linux-gnu
        </td>
    </tr>

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

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

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

<pre>
    The following code snippet, `clang-14` and `clang-17` at -O2/3/s produces the wrong code. `clang-12` has no problem.

```c
$ cat test.c
int printf(const char *, ...);
int __attribute__((noinline))
f(int *pi, long *pl)
{
  *pi = 1;
  *pl = 0;
  return *(char *)pi;
}

int main()
{
  union { long l; int i; } a;
  if (f (&a.i, &a.l) != 0)
    printf("error\n");
 return 0;
}
$
$ clang-12 test.c -O0; ./a.out
$ clang-12 test.c -O1; ./a.out
$ clang-12 test.c -O2; ./a.out
$ clang-12 test.c -O3; ./a.out
$ clang-12 test.c -Os; ./a.out
$
$ clang-14 test.c -O0; ./a.out
$ clang-14 test.c -O1; ./a.out
error
$ clang-14 test.c -O2; ./a.out
error
$ clang-14 test.c -O3; ./a.out
error
$ clang-14 test.c -Os; ./a.out
error
$
$ clang-17 test.c -O0; ./a.out
$ clang-17 test.c -O1; ./a.out
error
$ clang-17 test.c -O2; ./a.out
error
$ clang-17 test.c -O3; ./a.out
error
$ clang-17 test.c -Os; ./a.out
error
$ clang-12 --version
Ubuntu clang version 12.0.1-++20211102090516+fed41342a82f-1~exp1~20211102211019.11
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$
$ clang-14 --version
Ubuntu clang version 14.0.6
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$
$ clang-17 --version
Ubuntu clang version 17.0.6 (++20231208085808+6009708b4367-1~exp1~20231208085905.78)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVk1vpDgQ_TXFxQLZxYfhwCE9LaQ9zWVWe4wMuBvPum1kmyS7h_ntKzeku1eJMr057EgRaareK7_3jMDCe3U0UrZQ7qDcJ2IJk3Xt98U8S_W3NMekt-Nf7bdJkoPV2j4rcySDHSXxRs2zDIBfCFR00MIcU1ZARYkw402Jn0uBpF8RsMsBO09mZ8dlkJ6ESZJnZ7eZ2Q0NI20Snhgb4b2WpwzoHujDdq3o-jds91iQQQQSpA_ZVlMmkNkpEw6A9WCND2SYhCOAD1F2lmWADeS7K_rxUYTgVL8E-fgIWAPWxiqjlZERis0KjfMiHPBhVnGUjhbinb5ggG9zyQojkO8Ju6y2VvW5Sm-qTobFmVVifVXbzOoCAr6_TSIKOQllznLfLr4YZQ0BvltFash3JFLiPAJ8T8TN6upAAOvzBbAS2dnc-Vc0RgDZqvd1HULINWFAlM5ZB-UXA4i32b7aou-YwOJmB7fN37aRpF8jg2SAncjsEj5CsruReDcyvxvp30e-oRR3Wys-trZG_QHpPZc_Jb1n-Kek97z_m_SGze-OgX8mBv6ZGPhnYuD_JYbrc5OmT9J5Zc3a-71fTFjWNtk6hGFGM5YC7gB3SJExRpE2tGQV4O4gx4LlBYoaDyn7IV9m9uMVhIxR1mSMrdO_CXeUAfIHIoQbpqpIF_Onsc8m1cosL-nRLBtwclKM5GRHqSN8tl69rK3fjA9CaznulYstwG7xDrDrlfnoab_LaJHRrPrVWvl9WnnUur4gt33JGdKa1mVNY62itOG07ou84jf78gpqaJnx64v6f7L7-rFcb5Oxzccmb0QiW8Yxp2VOc0ymdqi4zA84lAUKOYziUKIceCObAyKvBpqoFikWtKac8ZLmmNGejbQox4aOvZS0hILKk1A60_rplFl3TJT3i2wZxbzARItean8-bCAa-UzO3fixKPeJayMp7Zejh4Jq5YO_jgkqaNn-cTkrrEcKBthdjxXWXFK8pJcsTrdTCLOH_AGwA-yOKkxLnw32BNjFBbZ_6ezsdzkEwO4sywN2m-6nFv8JAAD__4p-lRw">