On Sat, Nov 15, 2025 at 4:27 AM <[email protected]> wrote:
>
> From: Pan Li <[email protected]>
>
> After we convert from bit_op outer into its captures, some
> outer convert of unsigned SAT_MUL form 6 is unnecessary any
> more.  Thus, remove it.  Meanwhile, add c after outer bit_ior
> to make the test happy.

OK.

Richard.

> gcc/ChangeLog:
>
>         * match.pd: Remove unnecessary outer convert and add
>         c for the outer bit_ior.
>
> Signed-off-by: Pan Li <[email protected]>
> ---
>  gcc/match.pd | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/match.pd b/gcc/match.pd
> index 22b1bd054b0..bc31d7cc3f6 100644
> --- a/gcc/match.pd
> +++ b/gcc/match.pd
> @@ -3778,12 +3778,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
>         return lo | -!!hi;
>        } while WT is uint128_t, uint64_t, uint32_t, uint16_t,
>         and T is uint64_t, uint32_t, uint16_t, uint8_t.  */
> -   (convert1?
> -    (bit_ior
> -     (convert?
> -      (negate
> -       (convert (ne (convert2? (rshift @3 INTEGER_CST@2)) integer_zerop))))
> -     (convert (usmul_widen_mult@3 @0 @1))))
> +   (bit_ior:c
> +    (convert?
> +     (negate
> +      (convert (ne (convert2? (rshift @3 INTEGER_CST@2)) integer_zerop))))
> +    (convert (usmul_widen_mult@3 @0 @1)))
>     (if (types_match (type, @0, @1))
>      (with
>       {
> --
> 2.43.0
>

Reply via email to