Re: [PATCH v8 1/7] forwprop: Match and fold the long-multiply carry form [PR107090]

Jakub Jelinek <[email protected]> Tue, 4 Aug 2026 19:35:09 +0200
Newsgroups gmane.comp.gcc.patches
Message-ID <anIizSb8SJrBcOet@tucnak>
On Mon, Aug 03, 2026 at 08:41:35AM -0700, Konstantinos Eleftheriou wrote:
> +  (with {
> +    tree op_type = TREE_TYPE (@op); }

Why not on a single line?
  (with { tree op_type = TREE_TYPE (@op); }
is what is normally used in match.pd.

> +  (if (INTEGRAL_TYPE_P (op_type)
> +       && TYPE_UNSIGNED (op_type)
> +       && TYPE_PRECISION (op_type) % 2 == 0
> +       && tree_fits_uhwi_p (@0)
> +       && tree_to_uhwi (@0) == wi::mask (
> +				 TYPE_PRECISION (op_type) / 2,
> +				 false,
> +				 TYPE_PRECISION (op_type))))))

This is ugly.  Can't you use instead:
       && (tree_to_uhwi (@0)
	   == wi::mask (TYPE_PRECISION (op_type) / 2, false,
			TYPE_PRECISION (op_type)))))))
?

	Jakub