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
>

Reply via email to