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

    <tr>
        <th>Summary</th>
        <td>
            clang crash at -O3 (fatal error: error in backend: Instruction Combining seems stuck in an infinite loop after 100 iterations)
        </td>
    </tr>

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

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

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

<pre>
    Hi all,

I am not sure whether this is a dup case (I saw several similar crash reports), but I think it's quite interesting (by commenting one of the same assignment statements, the crash will disappear). Please close this issue if yes, and I do apologize for the noise bug report.

The test program (`small.c`):

```
#include <stdint.h>
int32_t a[10];
int64_t b[10];
int32_t c, f, e, d;
uint32_t *g(const uint32_t *);
int64_t h(int32_t, int32_t, int16_t, uint16_t, uint8_t);
int32_t i() {
  for (f = 0; f <= 3; f++)
    for (d = 3; d; d--)
      for (e = 0; e <= 3; e++)
        g(0);
  return 0;
}
uint32_t *g(const uint32_t *) {
  int32_t j[0];
  b[3] = h(j, i, a, j, j);
  b[3] = h(j, i, a, j, j); // by commenting this line, the crash will go
  return 0;
}
int64_t h(int32_t, int32_t, int16_t, uint16_t k, uint8_t) {
  int32_t *l;
  int32_t **m = &l;
  int32_t *n = &c;
  int32_t *o = &c;
  *n = b[3] != a[0];
  *m = o;
  for (; k; ++k)
    if (*l)
      break;
  return k;
}
```

To reproduce:
```
$clang -w -O3 small.c
fatal error: error in backend: Instruction Combining seems stuck in an infinite loop after 100 iterations.
clang-14: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 86803008eabb8be14867ce2d41ef22e659a1a70c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/tuhaoxin/compilers/llvm-project/build/bin
clang-14: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/small-6206a1.c
clang-14: note: diagnostic msg: /tmp/small-6206a1.sh
clang-14: note: diagnostic msg: 

********************
```

Thanks!
Haoxin
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9Vt1v4jgQ_2vCywiUOBDCAw-0pVuk6lrtsrrHlZM4iUti5_xR2vvrb-xACi2nu-2eDkXG9nz_PDN2JovX5R0H2jQBuQ7CmyBc9eMGaAtCGtBWMdjXzNRMgam5BvwoFLaDnGoGAUk3oOkeNHtmijagecsbqiBXVNegWCeV0QFZoAHIrIGN0yJ2wE1A5hr-sNww4MIwxbThonIas1fIZdsy4TekYCBLFGNoqGVAteaVcFTQhhrmZtqpdxy92T1vGii4pl3HqELrE3hsmPM3bySOh0C0RdMlvDIvTkWB3hUSaCcbWfE_GZRSea1CcpTKbHUIaHKK1RYZDDoPnZKVQtwwgiAJdYuwTnKcuejj1amI2-y_fkliLvLGFohnfK1NgXhM6iBe92RcxeSHARrMrqIwmN0E8dVASaZIyS5RvEzuIivdwNxQDAz2yBGQVYUe51JgCKe73u13hmrkPLA4defTKOmn9t08ddPFB9e4w4ksIJgfCODxxt0SYbiBECXATa_dKvargFz5b3GUGGQKGLgKP4zHZ2wDI3tTzs6UswvK3c-hE54GAJgFxirhlRxOcH7zE7CehnykPOERnp0g-FONccs77JB_8kD7XHXD02FYfFIGvbnFD87LzddGwwW7UFKV_GcEPpUqsDtPlksIIXbNSaRnkK5aH3BAkr9hEUd6fpkuL9EHuTdUSeTW9ONhDT7Ik81Dyjmsdz3gLsN2ZymGDcgXAgZ3nnmZYnT3Mel2HyF_3076tiRds1KysDl7az_vG880byge-ngP44cYjj3LE0tqsJ8zpaRC-X6CkEFG8x0ThdvbYHIrmxsuBVzLNuPCZZBmrNXYm22-c_xU4FgiCRt9I2UHtMRuD1EY4iWAd4aT1oeO6r0ZR9PBoJv0LpZK4i2BPdrlquvVJeUNKzAxTQ3shWOvk9hA56GD02K7Hj-Dkc4ZNP8sc29ngLjXiVeWdr5Hs0k48YK1MZ12cPnSqFC3zSZoERdN83z8GyOuTyw3E2SANEnDOAxTRrMszVg0TZN5zkgxjVhJCEtmCxrReZgPtrdUVcy4yF7S5EcyHVuxE3Ivxlh19mVcCXu8WDADCmgxrMZxd1Lzl8P9jMDjUbHihnuI0K9atliyt8bWVL5wjPQW3e4QIqXfeY3LzPKmcP_I-AF4vPddxuAFSish8VbOodWVN3PIml_4TjL08X69-raG1Xa7ur6D7d0abh_u7x9-3_z2BW439-tvsH3w21ffv8DX9ePD1-2QyI8-t3OmNaaAllZhkpPUPTT8PY5vBJlzfBwUoKwAnSvemYFBuUTMPZWaQeW_hAAhbjscfa2MExImNDqWzK-o0PUnTuK_Oo-LDaSmYqddx_PLO59Wo2IZF4t4QUeGm4Yt-zrqrwhqfBNxF_j_2TrwSEdWNcufK11c-gegK47ZLIkWo3qZRRmlZUrLRTRN5tOYJukinhJCCRb1dBaOGpqxRi-x-weECLbv35A4x7tgxJckJCSckSiM49ksnoRREkV0SmYpTUqG4E5D1mLTmjg_JlJVI7X0LuHDUiOx4droN2L_zmXMm0P91JpaqmVf3saOvO2l9_0vo5xkcQ">