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

    <tr>
        <th>Summary</th>
        <td>
            Unexpected O1 Optimization Result
        </td>
    </tr>

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

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

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

<pre>
    When calculate fibonacci number with `int` type, I throw an exception when result is greater than maximum int value. If specified `-O1` with `x86-64 clang(trunk)`(on GodBolt), it gives wrong result:

```
i = 46, fibo = 1836311903, a = 701408733, b = 1134903170
i = 47, fibo = -1323752223, a = 1134903170, b = 1836311903
i = 48, fibo = 512559680, a = 1836311903, b = -1323752223
i = 49, fibo = -811192543, a = -1323752223, b = 512559680
...
```

If no `-O1` specified, or using `x86-64 gcc(trunk)`, the result is expected:
```
terminate called after throwing an instance of 'std::runtime_error'
  what():  Overflow at i = 47, c = -1323752223, a = 1134903170, b = 1836311903
Program terminated with signal: SIGSEGV
```

Reproduce code and compiler running result, see https://godbolt.org/z/WzfTqWhzd
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyklM9vrDYQx_8acxll5R_AwoFDXtKNckr1XtscK2MGcGtsapvdvP3rK7PJWzateqmEjDzgz_frmbFlCHqwiA0pvpDiMZNLHJ1vzmr0OgTtR3XOWtd9b15HtKCkUYuREaHXrbNSKQ12mVr0cNJxBFJSbSMpKcTvMxL-AM8QR-9OIC3gm8I5amfhlFgew2Ii6ACDRxnRQxylhUm-6WmZQNsIR2kW3MFzD2FGpXuNXZK4e2FJ4kPxrSrvyhyUkXYgvIp-sX8SXpOSEl45C0-u--JMTCH-ADrCoI8Y4OSdHd5dEHFP6COhH2NJ3591qoGIR8jLtDzte52ySpSCsZqKFJZrbE9ZTqu9WEPt5Tcm8poKtr9l7W9Yd0xwsS845xvYZuWVdhXd0qobWsF4UdRlRTesG7PtP0S3sPrWWsUYq3mRb5x9stt-Ul1hu93uX3N5GZ97sG5Tyh_lTTznYQnaDpvaDkp9ruwDxBE3TYRvM6qI3bWUt8IR_aRtal0ljcEOZH_pOe9OSUxa0DZEaRWC64HwfYgrTNz7xUY94e_ovfOE7y9AgNMoI-FVciTuAV6O6HuTej3Ctszq_9X4Z-8GLyf4sYHu0vnp3EqTlL89P3376em3_8j3V5y96xaFoFyHIG0Hyk2zNujBL9bq60ngDxAQYYxxDmn7_ED4YXBd60zcOT8QfjgTfng997_89Tqeu6xrRFeLWmbYsD2vmGBUVNnY5EUrFFV1LguZ921XVD1WhaSiFAUrapnphlOeM0oLxrkoip1kZV9JhaqXMqcUSU5xktrsjDlOSTvTISzYMMZ4wTIjWzRhvbg4t3iC9SvhPN1jvkmL7tplCCSnRocYrpioo8HmV_vRM_DC4GWOetJnuV5QX9dcZIs3zadE6Dgu7U65ifBD4r2_7mbv_kAVCT-sLgLhh3ebx4b_HQAA__-mfouE">