Go to file
Tamar Christina 2bb6a8c4f9 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.
2025-10-18 08:24:16 +01:00
.forgejo top-level: Add pull request template for Forgejo 2024-10-23 19:45:09 +01:00
.github Minor formatting fix for newly-added file from previous commit 2023-11-01 19:28:56 -04:00
INSTALL README: Do not mention CVS. 2014-10-12 15:05:28 +00:00
c++tools Daily bump. 2025-06-03 00:18:06 +00:00
config Daily bump. 2025-10-05 16:50:51 +00:00
contrib Daily bump. 2025-10-17 00:18:48 +00:00
fixincludes Daily bump. 2025-08-29 00:19:55 +00:00
gcc middle-end: refactor WIDEN_SUM_EXPR into convert optab [PR122069] 2025-10-18 08:24:16 +01:00
gnattools Daily bump. 2025-06-23 00:16:33 +00:00
gotools Daily bump. 2024-04-16 00:18:06 +00:00
include Daily bump. 2025-10-17 00:18:48 +00:00
libada Update copyright years. 2025-01-02 11:59:57 +01:00
libatomic Daily bump. 2025-10-10 00:21:51 +00:00
libbacktrace Daily bump. 2025-10-05 16:50:51 +00:00
libcc1 Daily bump. 2025-10-10 00:21:51 +00:00
libcody Update Copyright year in ChangeLog files 2025-01-02 11:13:18 +01:00
libcpp Daily bump. 2025-10-14 00:20:06 +00:00
libdecnumber Update copyright years. 2025-01-02 11:59:57 +01:00
libffi Daily bump. 2025-10-05 16:50:51 +00:00
libgcc Daily bump. 2025-10-10 00:21:51 +00:00
libgcobol Daily bump. 2025-10-11 00:21:09 +00:00
libgfortran Daily bump. 2025-10-05 16:50:51 +00:00
libgm2 Daily bump. 2025-10-08 00:20:55 +00:00
libgo runtime: avoid libc memmove and memclr 2025-07-08 15:49:16 -07:00
libgomp Daily bump. 2025-10-17 00:18:48 +00:00
libgrust Daily bump. 2025-10-05 16:50:51 +00:00
libiberty Daily bump. 2025-10-05 16:50:51 +00:00
libitm Daily bump. 2025-10-05 16:50:51 +00:00
libobjc Daily bump. 2025-10-05 16:50:51 +00:00
libphobos Daily bump. 2025-10-05 16:50:51 +00:00
libquadmath Daily bump. 2025-10-05 16:50:51 +00:00
libsanitizer Daily bump. 2025-10-05 16:50:51 +00:00
libssp Daily bump. 2025-10-05 16:50:51 +00:00
libstdc++-v3 Daily bump. 2025-10-18 00:18:06 +00:00
libvtv Daily bump. 2025-10-05 16:50:51 +00:00
lto-plugin Daily bump. 2025-10-05 16:50:51 +00:00
maintainer-scripts Daily bump. 2025-09-02 00:19:26 +00:00
zlib Daily bump. 2025-10-05 16:50:51 +00:00
.b4-config Add config file so b4 uses inbox.sourceware.org automatically 2024-07-28 11:13:16 +01:00
.dir-locals.el dir-locals: apply our C settings in C++ also 2024-07-31 20:38:27 +02:00
.editorconfig toplevel: unify the GCC and GDB/binutils .editorconfig files 2025-10-01 15:42:59 +01:00
.gitattributes Add *.md diff=md. 2020-01-15 14:29:53 +01:00
.gitignore Rust: Move 'libformat_parser' build into the GCC build directory 2025-08-05 16:36:43 +02:00
ABOUT-NLS intl: New directory; see intl/ChangeLog for details. 2003-07-04 18:18:54 +00:00
COPYING COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
COPYING.LIB Update COPYING.LIB from upstream. Correct last Changelog. 2005-07-14 01:41:54 +00:00
COPYING.RUNTIME Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02:00
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING3.LIB COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
ChangeLog Daily bump. 2025-10-16 00:21:56 +00:00
ChangeLog.jit Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
ChangeLog.tree-ssa Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
MAINTAINERS MAINTAINERS: Add myself as an aarch64 port reviewer 2025-09-04 14:35:30 +00:00
Makefile.def PR81358: Enable automatic linking of libatomic. 2025-10-09 07:26:51 +00:00
Makefile.in [PATCH] Makefile.tpl: remove an extra \; from find command 2025-10-15 11:32:21 -06:00
Makefile.tpl [PATCH] Makefile.tpl: remove an extra \; from find command 2025-10-15 11:32:21 -06:00
README * README: Document use of ranges of years in copyright notices. 2012-07-16 15:01:34 +01:00
SECURITY.txt Remove Debian from SECURITY.txt 2024-11-19 12:27:33 +01:00
ar-lib Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
compile Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
config-ml.in *: Fix patch email address 2025-10-11 11:08:01 +02:00
config.guess config.sub, config.guess : Import upstream 2021-01-25. 2021-02-23 17:21:10 +08:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
config.sub config.sub: change mode to 755. 2021-12-21 09:10:57 +01:00
configure PR81358: Enable automatic linking of libatomic. 2025-10-09 07:26:51 +00:00
configure.ac PR81358: Enable automatic linking of libatomic. 2025-10-09 07:26:51 +00:00
depcomp Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
install-sh Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
libtool-ldflags re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan)) 2014-04-17 14:23:28 +02:00
libtool.m4 Sync toplevel files from binutils-gdb 2025-10-02 15:00:06 +08:00
ltgcc.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltmain.sh ltmain.sh: allow more flags at link-time 2024-09-25 19:05:24 +01:00
ltoptions.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
ltsugar.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltversion.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
lt~obsolete.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
missing Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
mkdep merge with /cvs/src 2000-07-22 04:08:22 -04:00
mkinstalldirs Update from upstream Automake files. 2014-11-16 14:07:13 +00:00
move-if-change Update move-if-change from gnulib 2014-11-16 16:12:44 +00:00
multilib.am Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
symlink-tree *: Fix patch email address 2025-10-11 11:08:01 +02:00
test-driver Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
ylwrap Update from upstream Automake files. 2014-11-16 14:07:13 +00:00

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.