]> gcc.gnu.org Git - gcc.git/commit
Add saturating subtract built-ins.
authorMichael Meissner <meissner@linux.ibm.com>
Tue, 23 Jan 2024 05:20:16 +0000 (00:20 -0500)
committerMichael Meissner <meissner@linux.ibm.com>
Tue, 23 Jan 2024 05:20:16 +0000 (00:20 -0500)
commit3afdf048b530b34178fd30df2b4122b7f2c1a1d5
tree66d7b64de6eec29f85ab659a7d1c1f037f4649f5
parent9a1289d2163f462ad15e8163b3fd73fef9f76d09
Add saturating subtract built-ins.

This patch adds support for a saturating subtract built-in function that may be
added to a future PowerPC processor.  Note, if it is added, the name of the
built-in function may change before GCC 13 is released.  If the name changes,
we will submit a patch changing the name.

I also added support for providing dense math built-in functions, even though
at present, we have not added any new built-in functions for dense math.  It is
likely we will want to add new dense math built-in functions as the dense math
support is fleshed out.

The patches have been tested on both little and big endian systems.  Can I check
it into the master branch?

2024-01-23   Michael Meissner  <meissner@linux.ibm.com>

gcc/

* config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Add support
for flagging invalid use of future built-in functions.
(rs6000_builtin_is_supported): Add support for future built-in
functions.
* config/rs6000/rs6000-builtins.def (__builtin_saturate_subtract32): New
built-in function for -mcpu=future.
(__builtin_saturate_subtract64): Likewise.
* config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add stanzas
for -mcpu=future built-ins.
(stanza_map): Likewise.
(enable_string): Likewise.
(struct attrinfo): Likewise.
(parse_bif_attrs): Likewise.
(write_decls): Likewise.
* config/rs6000/rs6000.md (sat_sub<mode>3): Add saturating subtract
built-in insn declarations.
(sat_sub<mode>3_dot): Likewise.
(sat_sub<mode>3_dot2): Likewise.
* doc/extend.texi (Future PowerPC built-ins): New section.

gcc/testsuite/

* gcc.target/powerpc/subfus-1.c: New test.
* gcc.target/powerpc/subfus-2.c: Likewise.
gcc/config/rs6000/rs6000-builtin.cc
gcc/config/rs6000/rs6000-builtins.def
gcc/config/rs6000/rs6000-gen-builtins.cc
gcc/config/rs6000/rs6000.md
gcc/doc/extend.texi
gcc/testsuite/gcc.target/powerpc/subfus-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/subfus-2.c [new file with mode: 0644]
This page took 0.062952 seconds and 6 git commands to generate.