https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116412
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |tree-optimization --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I will finish this up tomorrow but here is the patch which I will doing (note white spaces might be wrong): ``` diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index 770f3629fe1..be95798a065 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -368,6 +368,10 @@ factor_out_conditional_operation (edge e0, edge e1, gphi *phi, if (!types_compatible_p (TREE_TYPE (new_arg0), TREE_TYPE (new_arg1))) return NULL; + /* The new args need to be both gimple values. */ + if (!is_gimple_val (new_arg0) || !is_gimple_val (new_arg1)) + return NULL; + /* Function calls can only be const or an internal function as maybe_push_res_to_seq only handles those currently. */ if (!arg0_op.code.is_tree_code ()) ```