https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119960
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- So I do have a patch amending the r15-5863 revision to allow vectorizing the cases again but it regresses gcc.dg/vect/pr116352.c (the testcase the code was added for) since we run into a similar issue in SLP scheduling then, which tries to order "unordered" SSA defs with code like /* We are emitting all vectorized stmts in the same place and the last one is the last. ??? Unless we have a load permutation applied and that figures to re-use an earlier generated load. */ unsigned j; tree vdef; FOR_EACH_VEC_ELT (SLP_TREE_VEC_DEFS (child), j, vdef) { gimple *vstmt = SSA_NAME_DEF_STMT (vdef); if (!last_stmt || vect_stmt_dominates_stmt_p (last_stmt, vstmt)) last_stmt = vstmt; } where the main issue is that we do not verify we actually _can_ schedule the SLP graph onto the existing CFG. Without inserting PHIs, specifically LC PHIs, where necessary when for example instead trying to insert at the hopefully single block of the dominance frontier. So for now we have to accept the regression and eventually get to the TODO to actually implement a scheduling feasability check (since we already fail to ensure trivial schedulability given vectors eventually are combined from defs from different parts of the CFG).