This adjusts GIMPLE verification with respect to the VEC_COND_EXPR changes forcing a split out condition.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. 2021-04-14 Richard Biener <rguent...@suse.de> * tree-cfg.c (verify_gimple_assign_ternary): Verify that VEC_COND_EXPRs have a gimple_val condition. * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR can no longer have a GENERIC condition. --- gcc/tree-cfg.c | 2 ++ gcc/tree-ssa-propagate.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 7e3aae5f9c2..4f63aa69ba8 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -4246,6 +4246,8 @@ verify_gimple_assign_ternary (gassign *stmt) debug_generic_expr (rhs1_type); return true; } + if (!is_gimple_val (rhs1)) + return true; /* Fallthrough. */ case COND_EXPR: if (!is_gimple_val (rhs1) diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c index def16c036ab..17dd1efd81d 100644 --- a/gcc/tree-ssa-propagate.c +++ b/gcc/tree-ssa-propagate.c @@ -515,7 +515,7 @@ valid_gimple_rhs_p (tree expr) default: if (get_gimple_rhs_class (code) == GIMPLE_TERNARY_RHS) { - if (((code == VEC_COND_EXPR || code == COND_EXPR) + if ((code == COND_EXPR ? !is_gimple_condexpr (TREE_OPERAND (expr, 0)) : !is_gimple_val (TREE_OPERAND (expr, 0))) || !is_gimple_val (TREE_OPERAND (expr, 1)) -- 2.26.2