[Bug middle-end/122069] Missed use of UDOT for char->int reduction

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Oct 18 07:24:36 GMT 2025


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122069

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:2bb6a8c4f9bfe3aa37b5f82ade4f2bc8a89d107d

commit r16-4475-g2bb6a8c4f9bfe3aa37b5f82ade4f2bc8a89d107d
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Sat Oct 18 08:18:14 2025 +0100

    middle-end: refactor WIDEN_SUM_EXPR into convert optab [PR122069]

    This patch changes the widen_[us]sum optabs into a convert optabs such that
    targets and specify more than one conversion.

    Following this patch are patches rewriting all targets using this change.

    While working on this I noticed that the pattern does miss some cases it
    could handle if it tried multiple attempts. e.g. if the promotion is from
    qi to si, and the target doesn't have this, it should try hi -> si.

    But I'm leaving that for now.

    gcc/ChangeLog:

            PR middle-end/122069
            * doc/md.texi (widen_ssum@var{n}@var{m}3,
widen_usum@var{n}@var{m}3):
            Update docs.
            * optabs.cc (expand_widen_pattern_expr): Add WIDEN_SUM_EXPR as
widening.
            * optabs.def (ssum_widen_optab, usum_widen_optab): Convert from
direct
            to a conversion optab.
            * tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Change
            vect_supportable_direct_optab_p into vect_supportable_conv_optab_p.


More information about the Gcc-bugs mailing list