https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125777
--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
There is a missing jump threading due to -Os.
```
<bb 20> [local count: 1073741849]:
# __res$ptr_34 = PHI <_8(26), __first_204(18), __first_204(19),
__first_212(17)>
# __res$8_35 = PHI <22(26), 34(18), _33(19), 34(17)>
# result_206 = PHI <result_223(D)(26), result_223(D)(18), _32(19),
result_223(D)(17)>
_26 = __res$8_35 != 0;
_13 = _1 != __res$ptr_34;
_6 = _13 | _26;
if (_6 != 0)
goto <bb 21>; [70.03%]
else
goto <bb 22>; [29.97%]
<bb 21> [local count: 751934973]:
<bb 22> [local count: 1073741849]:
# _4 = PHI <0(21), result_206(20)>
return _4;
```
I suspect we think need to duplicate:
```
_26 = __res$8_35 != 0;
_13 = _1 != __res$ptr_34;
_6 = _13 | _26;
```
3 times but it is true on every branch except for on the incoming edge from bb
19. So there is no duplicatation that needs to happen.