On Thu, May 1, 2025 at 6:26 AM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > r16-189-g99aa410f5e0a72 fixed the case where match-and-simplify there was an > extra > assignment happening inside the sequence return. phiopt_early_allow had code > to > workaround that issue but now can be removed and simplify down to only > allowing > the sequence having only one MIN/MAX if the outer code is MIN/MAX also. > > Bootstrapped and tested on x86_64-linux-gnu.
OK. Richard. > gcc/ChangeLog: > > * tree-ssa-phiopt.cc (phiopt_early_allow): Only allow a sequence > with one statement for MIN/MAX and the op was MIN/MAX. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/tree-ssa-phiopt.cc | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc > index e27166c55a5..54ecd93495a 100644 > --- a/gcc/tree-ssa-phiopt.cc > +++ b/gcc/tree-ssa-phiopt.cc > @@ -549,8 +549,7 @@ phiopt_early_allow (gimple_seq &seq, gimple_match_op &op) > tree_code code = (tree_code)op.code; > > /* For non-empty sequence, only allow one statement > - except for MIN/MAX, allow max 2 statements, > - each with MIN/MAX. */ > + a MIN/MAX and an original MIN/MAX. */ > if (!gimple_seq_empty_p (seq)) > { > if (code == MIN_EXPR || code == MAX_EXPR) > @@ -565,18 +564,7 @@ phiopt_early_allow (gimple_seq &seq, gimple_match_op &op) > code = gimple_assign_rhs_code (stmt); > return code == MIN_EXPR || code == MAX_EXPR; > } > - /* Check to make sure op was already a SSA_NAME. */ > - if (code != SSA_NAME) > - return false; > - if (!gimple_seq_singleton_p (seq)) > - return false; > - gimple *stmt = gimple_seq_first_stmt (seq); > - /* Only allow assignments. */ > - if (!is_gimple_assign (stmt)) > - return false; > - if (gimple_assign_lhs (stmt) != op.ops[0]) > - return false; > - code = gimple_assign_rhs_code (stmt); > + return false; > } > > switch (code) > -- > 2.43.0 >