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

    <tr>
        <th>Summary</th>
        <td>
            [wasm] wrong code with "metarenamer"
        </td>
    </tr>

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

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

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

<pre>
    Hi, 
For this case, opt produces wrong code with `metarenamer`.
The IR files are attached [here](https://github.com/llvm/llvm-project/files/9907927/issue.zip).

**Program:**
```console
$ cat small.c
#include "stdio.h"
#include <stdint.h>
uint64_t crc32_context;
void platform_main_end(uint64_t x, int flag) {
  if (!flag)
    printf("checksum = %llx\n", x);
}
void main(int, char *[]) {
  int i;
  int print_hash_value = 0;
  for (i = 0; i < 9; i++)
    platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value);
}
```

**Command lines:**
```console
$ /emsdk/upstream/emscripten/emcc -S -emit-llvm -O3 -w -mllvm -disable-llvm-optzns small.c -o small.ll
$ /emsdk/upstream/emscripten/emcc -w small.ll -o small.js; node small.js
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
checksum = ffffffff
$ /emsdk/upstream/bin/opt -S -metarenamer small.ll -o small.opt.ll
$ /emsdk/upstream/emscripten/emcc -w small.opt.ll -o small.opt.js; node small.opt.js
$
```

**Version**:
```console
$ /emsdk/upstream/emscripten/emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.24 (68a9f990429e0bcfb63b1cde68bad792554350a5)
clang version 16.0.0 (https://github.com/llvm/llvm-project 277c382760bf9575cfa2eac73d5ad1db91466d3f)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /emsdk/upstream/bin
```

**OS:** Ubuntu 22.04
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdVUmP2zYU_jXy5UECRZlaDjrM2gYomqLJ5GpQFGUxQ1EGSdlufn0fJdvxdCZI0_ZUg7D4-JFvX5qx_aP-WUX0DiJyH5Gbx9GC75UDwZ0Mx-POw86O7SSkg4MdzRbE2Eo4KN9DlJNBem6l4YO0SCULl4-9hHe_Q6c0PkIYuPdc9LKFiN320sqI3Ue07L3fuSi7iegjri1ynJpEjAMSWu_PnxjFf5bCIzkzxG9VkaKiBe6Uc5NMvqhdRKuT8NM_Des3O24tH2YZ81qwnCxLjMaNWp5frNFqD27gWififJgpI_SEFkeUOt-qMelx9xrN7gJqPMLZwwJPSObrjQdhRUY3KM3Lo4-y2wXej6qFnea-G-2wGbgyG2la9Mvl3TFEAAnoNN-ihRAVp7cAqkONyoimJ-x8DhgufNLNIEWni2c3DajfPd5nWh8jdmeCBcj6GN6d1YmK-yu9gjrIAjmFi6LnFoL_2O0cupeaoILqwmahZx02PXf9Zs_1JGf55OoS2hz0VxcAwvYOqnkb0dt5XVv1hqNe-BVz6wHI8fH0e_olKP5XPd40-JIPrxPobhwGblrQykj3t9MIE1MOrn3G77Rz3ko-LEfCqp2XZiaEgPgDxHJQPg55DvH7DOIDxMNCtcrxRssZi7EMvxh3zk2Ix9NW638g9XB5_JXRZxccb0JpXw5mzi8yqDv9_t_Qt53ZhKJ4DD0xhO6q973hUbz178KzMHjJ8FWYTodnKd9N6E_SOjWaUx5n_10q75c3M4Gl-XC5AVsh8JbQ3GxjrZ4lWInFLOQgsVFgmYfiekYXymHCGlc4YX769Ql0G9pMlqTJrEWZl7zqsPGvaSVJI7omz5pUtDIvG97iNGBsnTHC2aVpzAJhv9gLaZ6QhMAPTx2gRSGykhY5abqKFUx0nEouiqxlvE3bpkrXed5m3UXuR263Erv8DRy4GzIaT-bZjAcTXzntNCXRm9hpMZg6XN-NTh0X6J1xHqMr23tlA_TtbPxevN9_uHQteGom4yegNCHrlazTPC9oWWXpetXWWVtlFV955bWssc0H3bHVvx75lF6PfEpXk9X1D0_yeW6HUc7KgpJVXxdpyVJS8o7IvGBlJghr8pQxkacpLUS-0ryR2tXLBFqpmhJK05SkpGAsXSeU5IRxQcumohnNq2hNJE6KUJL7IRntdmXrWYdm2joEtXLefQW5c2prpDzz55PvR1ujiZicbjKrWeF61vZP-cvG4A">