https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111373
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- <bb 7> [local count: 1073741824]: # a$1_18 = PHI <a$1_30(6), a$2_19(5), _3(8)> # a$2_20 = PHI <a$2_19(6), a$1_30(5), _1(8)> # a$0_29 = PHI <a$0_16(6), a$0_16(5), _6(8)> So if we split out the edges 6/5 and make a forwarder block, then this block will only have a phi for a$0_29 and the new forwarder block would have 2 for a$1_18 and a$2_20. which then might be better. I think make_forwarders_with_degenerate_phis only tries to have only handle the case where there are phi nodes and the only difference for the new forwarder block would be the vop. so we need to have an agreessive form for this case here. Which is why I said this might have to wait for GCC 17 but maybe I can finish this up this weekend ...
