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

    <tr>
        <th>Summary</th>
        <td>
            Simplification Comparison (Clang9 vs Clang trunk)
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    Consider the following function:
```cpp
bool foo(int a, int b)
{
   return (a + 1) || (a * b + b);
}
```
Clang9 (and GCC) can simplify `foo`, but Clang trunk cannot.
https://godbolt.org/z/nTj67b956
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUd2O4ywMfRrnBrUiJj_lgos2Vb4H-PYFgNCUGQIRkBnNPv2KpKNdjZQIY-zj43NkSnb2xghob9DeK7nlZ4ji_SRjDJ-pUmH6EkPwyU4mkvw05BGcC5_Wz-SxeZ1t8MCuQO9Ar9DR49PremRUCI48QgC8WJ-JBBxICRQgf_X0tyMghESTt-gJ4EUSwBupATmBfoB--E5eidqfdgB2-8a4_yBwXAcn_cz3Vj-R_4ah4GnpSbLL6uzji0BHC7uOFmJqy2RvITlu_r1U-pDPB9Yz5zWVTXEEHOcwqeDyOcQZcPwNOPpfb12veNtVk2ATZ1xWRtQd71nTUMqqp-jr5tJLOU36obDlrPxMXyTDtuONlpUVSJHVtG5pg13DzkpThrU0iJcaJa-hoWaR1p2d-1jK7MqmtBnRccrrykllXNqNRNRlD0AsnkZR6k9qmxM01NmU01-EbLMz4v9DEKtlMZQMYVlltCnsZrxk_Ej_qgPIqy068UMXm5-bOuuwAI5lxus4rTG8GZ0Bx51yAhx31n8CAAD__zYHvnw">