https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125672
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Drea Pinski from comment #3)
> Looking into this further we have this:
...
> ```
>
> Note what is after the // is the phi argument for that edge.
> I wonder if this could be done somewhere besides ifcvt.
> Basically this is:
> if (_48 > _52) t = _56; else t = _60;
> if (_49 > _53) t1 = _57; else t1 = _61;
>
> But somehow this converted (jump threading duplicating bbs in some cases)
> into:
> ```
> if (_48 > _52) {
> t = _56;
> if (_49 > _53) t1 = _57; else t1 = _61;
> } else {
> t = _60;
> if (_49 > _53) t1 = _57; else t1 = _61;
> }
> ```
>
> I suspect this pattern shows up a lot in the jump threaded code.
But this isn't sth jump-threading would do (there's no eliminated branch).
I suspect there's a condition after the 2nd if that gets elided?