[PATCH 1/4] rs6000: New insns setbc and setbcr

2020-05-06 Thread Bill Schmidt via Gcc-patches
New instructions setbc and setbcr. setbc sets a GPR to 1 if some condition register bit is set, and 0 otherwise; setbcr does it the other way around. 2020-05-06 Segher Boessenkool * config/rs6000/rs6000.md (setbc_signed_): New define_insn. (*setbcr_signed_): Likewise.

Re: [PATCH 0/4] rs6000: setbnc and friends [pu]

2020-05-06 Thread Bill Schmidt via Gcc-patches
For all of these, I forgot to mention that they have been bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions.  Are these okay for trunk, after GCC 10 is fully released? Thanks, Bill On 5/6/20 3:31 PM, Bill Schmidt via Gcc-patches wrote: *** BLURB HERE *** Bill

[PATCH 0/4] rs6000: setbnc and friends [pu]

2020-05-06 Thread Bill Schmidt via Gcc-patches
*** BLURB HERE *** Bill Schmidt (4): Add insns for setbc and setbcr Add tests for setbc and setbcr Add insns for setnbc and setnbcr Add tests for setnbc and setnbcr gcc/config/rs6000/rs6000.md | 100 +--- gcc/testsuite/gcc.target/powerpc/setbc.h| 27

[PATCH 4/4] rs6000: Tests for setnbc

2020-05-06 Thread Bill Schmidt via Gcc-patches
2020-05-06 Segher Boessenkool * gcc.target/powerpc/setnbc.h: New. * gcc.target/powerpc/setnbceq.c: New. * gcc.target/powerpc/setnbcge.c: New. * gcc.target/powerpc/setnbcgt.c: New. * gcc.target/powerpc/setnbcle.c: New. *

Re: [PATCH 0/4] rs6000: setbnc and friends [pu]

2020-05-06 Thread Bill Schmidt via Gcc-patches
On 5/6/20 6:48 PM, Segher Boessenkool wrote: On Wed, May 06, 2020 at 03:41:35PM -0500, Bill Schmidt wrote: For all of these, I forgot to mention that they have been bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions.  Are these okay for trunk, after GCC 10 is fully

[PATCH] rs6000: Add vec_extracth and vec_extractl

2020-05-10 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add new insns vextdu[bhw]vlx, vextddvlx, vextdu[bhw]vhx, and vextddvhx, along with built-in access and overloaded built-in access to these insns. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions, using a Power9 configuration. Is this okay for

[PATCH] rs6000: Add cntlzdm and cnttzdm

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add support for new scalar instructions for counting leading or trailing zeros under control of a bitmask. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen *

[PATCH] rs6000: Add scalar cfuged instruction

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add the centrifuge-doubleword instruction and built-in access. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen * config/rs6000/rs6000-builtin.def

[PATCH] rs6000: Add vcfuged instruction

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add the new vector centrifuge-doubleword instruction and built-in function access. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen * config/rs6000/altivec.h

Re: [PATCH] rs6000: Add cntlzdm and cnttzdm

2020-05-11 Thread Bill Schmidt via Gcc-patches
On 5/8/20 6:51 PM, Segher Boessenkool wrote: On Fri, May 08, 2020 at 08:17:18AM -0500, Bill Schmidt wrote: From: Kelvin Nilsen Add support for new scalar instructions for counting leading or trailing zeros under control of a bitmask. Bootstrapped and tested on powerpc64le-unknown-linux-gnu

Re: [PATCH] rs6000: Add pdep/pext

2020-05-11 Thread Bill Schmidt via Gcc-patches
On 5/8/20 3:47 PM, Segher Boessenkool wrote: Hi, On Thu, May 07, 2020 at 09:29:03PM -0500, Bill Schmidt wrote: diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index 5ef4889ba55..33ba57855bc 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@

[PATCH] rs6000: Add vclrlb and vclrrb

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add new vector instructions to clear leftmost and rightmost bytes. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen * config/rs6000/altivec.h (vec_clrl): New

Re: [PATCH] rs6000: Built-in cleanups for vec_clzm, vec_ctzm, and vec_gnb.

2020-05-11 Thread Bill Schmidt via Gcc-patches
On 5/11/20 7:16 AM, Segher Boessenkool wrote: Hi! On Sat, May 09, 2020 at 08:08:34PM -0500, Bill Schmidt wrote: I should have noticed this patch before submitting Kelvin's earlier related patches, sorry. I think it should still be fine to apply the patches in order, but if you'd like me to

Re: [PATCH] rs6000: Add vec_extracth and vec_extractl

2020-05-11 Thread Bill Schmidt via Gcc-patches
On 5/11/20 9:48 AM, David Edelsohn wrote: On Sun, May 10, 2020 at 9:14 AM Bill Schmidt wrote: From: Kelvin Nilsen Add new insns vextdu[bhw]vlx, vextddvlx, vextdu[bhw]vhx, and vextddvhx, along with built-in access and overloaded built-in access to these insns. Bootstrapped and tested on

[PATCH] rs6000: Add xxgenpcvwm and xxgenpcvdm instructions

2020-05-09 Thread Bill Schmidt via Gcc-patches
From: Carl Love Add support for xxgenpcv[dw]m, along with individual and overloaded built-in functions for access. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions, using a POWER9 compiler. Is this okay for master? Thanks, Bill [gcc] 2020-05-09 Carl Love

[PATCH] rs6000: Vector string isolate instructions

2020-05-09 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Adds new instructions vstribr, vstrihr, vstribl, and vstrihl, with overloaded built-in support. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions, using a compiler configured for Power9. Is this okay for master? Thanks, Bill [gcc] 2020-05-08

Re: [PATCH] rs6000: Add vec_extracth and vec_extractl

2020-05-12 Thread Bill Schmidt via Gcc-patches
On 5/12/20 1:21 PM, Segher Boessenkool wrote: Hi! On Mon, May 11, 2020 at 09:56:14PM -0500, Bill Schmidt wrote: On 5/11/20 9:48 AM, David Edelsohn wrote: On Sun, May 10, 2020 at 9:14 AM Bill Schmidt wrote: * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.

[PATCH] rs6000: Add vgnb

2020-05-07 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add support for the vgnb instruction, which gathers every Nth bit per vector element. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-07 Kelvin Nilsen Bill Schmidt

[PATCH] rs6000: Add vector count under mask

2020-05-07 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add support for new vclzdm and vctzdm vector instructions that count leading and trailing zeros under control of a mask. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-07 Kelvin Nilsen

[PATCH] rs6000: Add pdep/pext

2020-05-07 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add support for the vpdepd and vpextd instructions which perform vector parallel bit deposit and vector parallel bit extract. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill 2020-05-07 Kelvin Nilsen

[PATCH] rs6000: powerpc_future_ok and powerpc_future_hw

2020-05-07 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Dejagnu targets for these. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Patch shepherded by Bill Schmidt on behalf of Kelvin Nilsen. Thanks! Bill 2020-03-04 Kelvin Nilsen *

Re: [PATCH] rs6000: Add vector count under mask

2020-05-08 Thread Bill Schmidt via Gcc-patches
On 5/8/20 2:00 PM, Segher Boessenkool wrote: On Thu, May 07, 2020 at 09:11:32PM -0500, Bill Schmidt wrote: From: Kelvin Nilsen Add support for new vclzdm and vctzdm vector instructions that count leading and trailing zeros under control of a mask. Bootstrapped and tested on

[PATCH] rs6000: Add pdepd and pextd

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add scalar instructions for parallel bit deposit and extract, with built-in function support. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen *

[PATCH] rs6000: Add pdepd and pextd

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add scalar instructions for parallel bit deposit and extract, with built-in function support. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for master? Thanks, Bill [gcc] 2020-05-08 Kelvin Nilsen *

Re: [PATCH] rs6000: Add pdepd and pextd

2020-05-08 Thread Bill Schmidt via Gcc-patches
Please ignore, I sent the wrong ChangeLog.  Will try again momentarily. Sorry, Bill On 5/8/20 3:05 PM, Bill Schmidt via Gcc-patches wrote: From: Kelvin Nilsen Add scalar instructions for parallel bit deposit and extract, with built-in function support. Bootstrapped and tested on powerpc64le

[PATCH] rs6000: Add xxeval and vec_ternarylogic

2020-05-08 Thread Bill Schmidt via Gcc-patches
From: Kelvin Nilsen Add the xxeval insn and access it via the vec_ternarylogic built-in function. As part of this, add support to the built-in function infrastructure for functions that take four arguments. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions, using a

[PATCH] rs6000: Fix misnamed built-in

2020-09-15 Thread Bill Schmidt via Gcc-patches
The description in rs6000-builtin.def provides for a builtin named __builtin_altivec_xst_len_r. However, it is hand-defined in altivec_init_builtins as __builtin_xst_len_r, against the usual naming practice. Fix that. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no

Re: [EXTERNAL] Re: [PATCH] rs6000, restrict bfloat convert intrinsic to Power 10. Fix BU_P10V macro definitions.

2020-08-17 Thread Bill Schmidt via Gcc-patches
On 8/17/20 12:13 PM, Carl Love wrote: Segher, Bill, Peter: On Fri, 2020-08-14 at 19:42 -0500, Segher Boessenkool wrote: Do the names agree with the (future) documentation now? Did not double check on the documentation. Someone should... Looking at the box document "Proposed function

Re: [PATCH] rs6000: Support ELFv2 sibcall for indirect calls [PR96787]

2020-08-28 Thread Bill Schmidt via Gcc-patches
On 8/28/20 7:25 AM, Alan Modra wrote: On Fri, Aug 28, 2020 at 01:17:27AM -0500, Segher Boessenkool wrote: 1) Very many unnecessary moves are generated during expand *anyway*, a few more will not hurt; 2) In practice we always generate a move from a pseudo into r12 here, never a copy from r12

[PATCH] rs6000: r12 copy cleanup

2020-08-28 Thread Bill Schmidt via Gcc-patches
Remove unnecessary tests before copying function address to r12, as requested by Segher. Bootstrapped and tested on powerpc64le-unknown-linx-gnu with no regressions, committed as obvious. Thanks, Bill 2020-08-28 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000_call_aix): Remove

[PATCH] rs6000: Remove ALTIVEC_BUILTIN_MASK_FOR_STORE

2020-08-28 Thread Bill Schmidt via Gcc-patches
It turns out that the target hook that this is supposed to satisfy disappeared in 2004. Probably time to retire it. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions; committed as obvious. Thanks, Bill 2020-08-28 Bill Schmidt gcc/ *

[PATCH] rs6000: Enable more sibcalls when TOC is not preserved

2020-08-19 Thread Bill Schmidt via Gcc-patches
A function compiled with the PC-relative addressing model does not require r2 to contain a TOC pointer, and does not guarantee that r2 will be preserved for its caller. Such a function can make sibcalls without restriction based on TOC preservation rules. However, a caller that does preserve r2

Re: [PATCH] rs6000: Enable more sibcalls when TOC is not preserved

2020-08-19 Thread Bill Schmidt via Gcc-patches
I failed to mention that this has been bootstrapped and tested on powerpc64le-unknown-linux-gnu, with no regressions.  Is this ok for trunk? Thanks, Bill On 8/19/20 9:40 AM, Bill Schmidt via Gcc-patches wrote: A function compiled with the PC-relative addressing model does not require r2

[PATCH] rs6000: Support ELFv2 sibcall for indirect calls [PR96787]

2020-08-27 Thread Bill Schmidt via Gcc-patches
Prior to P10, ELFv2 hasn't implemented nonlocal sibcalls. Now that we do, we need to be sure that r12 is set up prior to such a call. Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. Is this okay for trunk? Thanks, Bill 2020-08-27 Bill Schmidt gcc/ PR

Re: [PATCH] rs6000: Support ELFv2 sibcall for indirect calls [PR96787]

2020-08-27 Thread Bill Schmidt via Gcc-patches
Hi! On 8/27/20 1:41 PM, Segher Boessenkool wrote: Hi! On Thu, Aug 27, 2020 at 08:21:34AM -0500, Bill Schmidt wrote: + /* For ELFv2, r12 and CTR need to hold the function address + for an indirect call. */ + if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2) +{ +

Re: [PATCH 0/3] Power10 PCREL_OPT support

2020-08-24 Thread Bill Schmidt via Gcc-patches
On 8/24/20 11:01 PM, Michael Meissner wrote: On Sat, Aug 22, 2020 at 07:05:51PM -0500, Bill Schmidt wrote: What is necessary in order to allow this optimization to occur earlier is to make this hidden dependency explicit.  When the relocation is inserted, we have to change the "pld" instruction

Re: [PATCH 0/3] Power10 PCREL_OPT support

2020-08-22 Thread Bill Schmidt via Gcc-patches
On 8/20/20 6:33 PM, Segher Boessenkool wrote: Hi! On Tue, Aug 18, 2020 at 02:31:41AM -0400, Michael Meissner wrote: In order to do this, the pass that converts the load address and load/store must occur late in the compilation cycle. That does not follow afaics. Let me see if I can help

Re: [PATCH, rs6000] correct an erroneous BTM value in the BU_P10_MISC define

2020-09-27 Thread Bill Schmidt via Gcc-patches
On 9/25/20 6:50 PM, Segher Boessenkool wrote: On Fri, Sep 25, 2020 at 03:34:49PM -0500, will schmidt wrote: On Fri, 2020-09-25 at 12:36 -0500, Segher Boessenkool wrote: No, it cannot. This is used for pdepd/pextd/cntlzdm/cnttzdm/cfuged, all of which do need 64-bit registers to do anything

[PATCH] rs6000: Add rs6000_cfun_pcrel_p

2020-09-16 Thread Bill Schmidt via Gcc-patches
This is a cleanup requested by Segher in a previous review. Most uses of rs6000_pcrel_p are called for the current function. A specialized version for cfun is more efficient for these uses. (Actually all uses are called for the current function, so now rs6000_pcrel_p is an orphan. However, I

Re: [PATCH] rs6000: Fix misnamed built-in

2020-09-16 Thread Bill Schmidt via Gcc-patches
On 9/16/20 5:32 AM, Segher Boessenkool wrote: On Tue, Sep 15, 2020 at 08:38:42PM -0500, Bill Schmidt wrote: The description in rs6000-builtin.def provides for a builtin named __builtin_altivec_xst_len_r. However, it is hand-defined in altivec_init_builtins as __builtin_xst_len_r, against the

Re: [PATCH] rs6000: Add rs6000_cfun_pcrel_p

2020-09-16 Thread Bill Schmidt via Gcc-patches
On 9/16/20 12:09 PM, Segher Boessenkool wrote: On Wed, Sep 16, 2020 at 08:36:35AM -0500, Bill Schmidt wrote: This is a cleanup requested by Segher in a previous review. Most uses of rs6000_pcrel_p are called for the current function. A specialized version for cfun is more efficient for these

Re: [PATCH] rs6000, restrict bfloat convert intrinsic to Power 10. Fix BU_P10V macro definitions.

2020-08-13 Thread Bill Schmidt via Gcc-patches
On 8/13/20 11:12 AM, Carl Love wrote: GCC maintainers: The macro expansion for the bfloat convert intrinsics XVCVBF16SP and XVCVSPBF16 need to be restricted to P10. The macro expansions BU_P10V_0, BU_P10V_1, BU_P10V_2, BU_P10V_3 expand the name field as "__builtin_altivec_". These macro

Re: [PATCH] rs6000, restrict bfloat convert intrinsic to Power 10. Fix BU_P10V macro definitions.

2020-08-13 Thread Bill Schmidt via Gcc-patches
On 8/13/20 2:24 PM, Carl Love wrote: Bill: On Thu, 2020-08-13 at 13:38 -0500, Bill Schmidt wrote: Hi Carl, Thanks for cleaning up the consistency issue. The new names and related adjustments LGTM. Are there no affected test cases that need adjusting? That surprises me. For example, didn't

Re: [PATCH 00/28] rs6000: Auto-generate builtins from descriptions

2020-07-01 Thread Bill Schmidt via Gcc-patches
Gentle ping to keep this in your inbox. :)  There are still many more important things ahead of this. Bill On 6/17/20 2:46 PM, Bill Schmidt via Gcc-patches wrote: I posted a version of these patches back in stage 4 (February), but we agreed that holding off until stage 1 was a better idea

Re: [PATCH] rs6000: Allow MMA built-in initialization regardless of compiler options

2020-07-09 Thread Bill Schmidt via Gcc-patches
On 7/9/20 4:10 PM, Peter Bergner wrote: On 7/9/20 12:11 PM, Segher Boessenkool wrote: gcc/testsuite/ PR target/96125 * gcc.target/powerpc/pr96125.c: New test. Okay for trunk and 10 (but see test nit below). Thanks! [snip] So maybe we should just do all builtins always? I

[PATCH 02/28] rs6000: Add initial input files

2020-06-17 Thread Bill Schmidt via Gcc-patches
This patch adds a tiny subset of the built-in and overload descriptions. 2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: New. * config/rs6000/rs6000-overload.def: New. --- gcc/config/rs6000/rs6000-builtin-new.def | 178 +++

[PATCH 07/28] rs6000: Add functions for matching types, part 3 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. (typeinfo): Add restriction field. (match_const_restriction): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 136 1 file changed, 136 insertions(+)

[PATCH 06/28] rs6000: Add functions for matching types, part 2 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 49 + 1 file changed, 49 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 03/28] rs6000: Add file support and functions for diagnostic support

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope variable. (ovld_file): Likewise. (header_file): Likewise. (init_file): Likewise. (defines_file): Likewise. (pgm_path): Likewise. (bif_path):

[PATCH 01/28] rs6000: Initial create of rs6000-gen-builtins.c

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c: New. --- gcc/config/rs6000/rs6000-gen-builtins.c | 142 1 file changed, 142 insertions(+) create mode 100644 gcc/config/rs6000/rs6000-gen-builtins.c diff --git

[PATCH 10/28] rs6000: Parsing built-in input file, part 1 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (MAXBIFSTANZAS): New defined constant. (bif_stanzas): New filescope variable. (curr_bif_stanza): Likewise. (fnkinds): New enum. (typelist): New struct. (attrinfo): Likewise.

[PATCH 12/28] rs6000: Parsing built-in input file, part 3 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 84 + 1 file changed, 84 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 05/28] rs6000: Add functions for matching types, part 1 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. (basetype): Likewise. (typeinfo): New struct. (handle_pointer): New function. (match_basetype): New stub function. (match_const_restriction): Likewise.

[PATCH 04/28] rs6000: Add helper functions for parsing

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (MININT): New defined constant. (exit_codes): New enum. (consume_whitespace): New function. (advance_line): Likewise. (safe_inc_pos): Likewise. (match_identifier): Likewise.

[PATCH 23/28] rs6000: Add available-everywhere and ancient builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add MASK_PPC_GFXOPT, MASK_POPCNTB, and MASK_CMPB builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 78 1 file changed, 78 insertions(+) diff --git

[PATCH 08/28] rs6000: Red-black tree implementation for balanced tree search

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rbtree.c: New file. * config/rs6000/rbtree.h: New file. --- gcc/config/rs6000/rbtree.c | 233 + gcc/config/rs6000/rbtree.h | 51 2 files changed, 284 insertions(+) create mode 100644

[PATCH 21/28] rs6000: Add remaining MASK_ALTIVEC builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add remaining MASK_ALTIVEC builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 843 +++ 1 file changed, 843 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 22/28] rs6000: Add MASK_VSX builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add VSX builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 840 +++ 1 file changed, 840 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 25/28] rs6000: Add MASK_P8_VECTOR builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add MASK_P8_VECTOR builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 417 +++ 1 file changed, 417 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 24/28] rs6000: Add Power7 builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add MASK_POPCNTD builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 39 1 file changed, 39 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 28/28] rs6000: Add comments to help with transition

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin.def: Add comments. * config/rs6000/rs6000-call.c: Likewise. --- gcc/config/rs6000/rs6000-builtin.def | 15 +++ gcc/config/rs6000/rs6000-call.c | 166 +++ 2 files changed, 181 insertions(+)

[PATCH 18/28] rs6000: Write output to the builtins init file, part 2 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 166 1 file changed, 166 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 17/28] rs6000: Write output to the builtins init file, part 1 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (write_fntype): New function. (write_fntype_init): New stub function. (write_init_bif_table): Likewise. (write_init_ovld_table): New function. (write_init_file): Implement. ---

[PATCH 16/28] rs6000: Write output to the builtins header file

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (write_autogenerated_header): New function. (write_bif_enum): Likewise. (write_ovld_enum): Likewise. (write_decls): Likewise. (write_extern_fntype): Likewise.

[PATCH 19/28] rs6000: Write output to the builtins init file, part 3 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. (TYPE_MAP_SIZE): New defined constant. (type_map): New filescope variable; initialize. (map_token_to_type_node): New function. (write_type_node): New function.

[PATCH 20/28] rs6000: Incorporate new builtins code into the build machinery

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. (rbtree.o): Likewise. (rs6000-gen-builtins): Likewise. (rs6000-builtins.c): Likewise.

[PATCH 00/28] rs6000: Auto-generate builtins from descriptions

2020-06-17 Thread Bill Schmidt via Gcc-patches
I posted a version of these patches back in stage 4 (February), but we agreed that holding off until stage 1 was a better idea. Since then I've made more progress and reorganized the patches accordingly. This group of patches lays groundwork, but does not actually change GCC's behavior yet, other

[PATCH 11/28] rs6000: Parsing built-in input file, part 2 of 3

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. (parse_prototype): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 144 1 file changed, 144 insertions(+) diff --git

[PATCH 13/28] rs6000: Parsing of overload input file

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. (MAXOVLDSTANZAS): New defined constant. (ovld_stanzas): New filescope variable. (curr_ovld_stanza): Likewise. (MAXOVLDS): New defined constant. (ovlddata):

[PATCH 15/28] rs6000: Write output to the vector definition include file

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (write_defines_file): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 4 1 file changed, 4 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c b/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 09/28] rs6000: Main function with stubs for parsing and output

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. (num_bif_stanzas): New filescope variable. (num_bifs): Likewise. (num_ovld_stanzas): Likewise. (num_ovlds): Likewise. (exit_codes): Add more enum values.

[PATCH 14/28] rs6000: Build and store function type identifiers

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New function. (complete_base_type): Likewise. (construct_fntype_id): Likewise. (parse_bif_entry): Call construct_fntype_id. (parse_ovld_entry): Likewise. ---

[PATCH 27/28] rs6000: Add remaining builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add MASK_FLOAT128_HW, MASK_DFP, MASK_CRYPTO, and MASK_HTM builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 217 +++ 1 file changed, 217 insertions(+) diff --git

[PATCH 26/28] rs6000: Add MASK_P9_VECTOR and MASK_P9_MISC builtins

2020-06-17 Thread Bill Schmidt via Gcc-patches
2020-06-17 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add MASK_P9_VECTOR and MASK_P9_MISC builtins. --- gcc/config/rs6000/rs6000-builtin-new.def | 353 +++ 1 file changed, 353 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

Re: [PATCH 00/28] rs6000: Auto-generate builtins from descriptions

2020-06-18 Thread Bill Schmidt via Gcc-patches
Thanks for the review, Will!  Responses below... On 6/18/20 11:08 AM, will schmidt wrote: On Wed, 2020-06-17 at 14:46 -0500, Bill Schmidt wrote: I posted a version of these patches back in stage 4 (February), but we agreed that holding off until stage 1 was a better idea. Since then I've made

Re: [PATCH 00/28] rs6000: Auto-generate builtins from descriptions

2020-06-23 Thread Bill Schmidt via Gcc-patches
On 6/18/20 5:48 PM, will schmidt wrote: On Thu, 2020-06-18 at 17:01 -0500, Bill Schmidt wrote: Thanks for the review, Will! Responses below... On 6/18/20 11:08 AM, will schmidt wrote: On Wed, 2020-06-17 at 14:46 -0500, Bill Schmidt wrote: I posted a version of these patches back in stage 4

Re: [PATCH v2, RS6000 PR target/94954] Fix wrong codegen for vec_pack_to_short_fp32() builtin

2020-06-23 Thread Bill Schmidt via Gcc-patches
On 6/23/20 4:36 PM, Segher Boessenkool wrote: Hi! On Tue, Jun 16, 2020 at 10:53:07AM -0500, will schmidt wrote: target pr/94954 PR target/94954 * config/rs6000/altivec.h (vec_pack_to_short_fp32) Update. Colon? * config/rs6000/rs6000-call.c

Fwd: [PATCH 00/29] rs6000: Auto-generate builtins from descriptions [V2]

2020-07-27 Thread Bill Schmidt via Gcc-patches
I apologize for the useless "From" address (and lack of "Reply-To" address) on this patch series.  My usual machine is down for maintenance, so I ended up sending this from my laptop, which was clearly not configured well enough for that.  My bad.  I won't do that again. Meantime, please

Re: [PATCH 00/29] rs6000: Auto-generate builtins from descriptions [V2]

2020-07-27 Thread Bill Schmidt via Gcc-patches
Just a reminder this patch series exists and wants a review. :-) Bill On 7/27/20 9:13 AM, Bill Schmidt wrote: From: Bill Schmidt This is a slight reworking of the patches posted on June 17. I have made a couple of improvements, but the general arrangement of the patches is the same as

Re: [PATCH 26/29] rs6000: Add Power9 builtins

2020-07-30 Thread Bill Schmidt via Gcc-patches
On 7/30/20 12:15 PM, will schmidt wrote: On Mon, 2020-07-27 at 09:14 -0500, Bill Schmidt wrote: From: Bill Schmidt 2020-07-26 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add power9, power9-vector, and power9-64 builtins. ---

Re: [PATCH, rs6000] Deprecate unnecessary __builtin_dfp_dtstsfi_*_dd and td overloads

2021-01-26 Thread Bill Schmidt via Gcc-patches
On 1/25/21 10:23 AM, Segher Boessenkool wrote: Hi! On Thu, Jan 21, 2021 at 05:49:14PM -0600, will schmidt wrote: Noted as part of the work-in-progress builtins rewrite, the __builtin_dfp_dtstsfi_*_{dd,td} builtins are redundant, and are thusly being marked as deprecated. They will be

[PATCH 03/55] rs6000: Add initial input files

2021-06-08 Thread Bill Schmidt via Gcc-patches
This patch adds a tiny subset of the built-in and overload descriptions. 2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: New. * config/rs6000/rs6000-overload.def: New. --- gcc/config/rs6000/rs6000-builtin-new.def | 199 +++

[PATCH 09/55] rs6000: Red-black tree implementation for balanced tree search

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-08 Bill Schmidt gcc/ * config/rs6000/rbtree.c: New file. * config/rs6000/rbtree.h: New file. --- gcc/config/rs6000/rbtree.c | 242 + gcc/config/rs6000/rbtree.h | 52 2 files changed, 294 insertions(+) create mode 100644

[PATCH 17/55] rs6000: Write output to the builtins header file

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_autogenerated_header): New function. (write_decls): Likewise. (write_extern_fntype): New callback function. (write_header_file): Implement. ---

[PATCH 24/55] rs6000: Add gengtype handling to the build machinery

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. --- gcc/config.gcc | 1 + gcc/config/rs6000/t-rs6000 | 1 + 2 files changed, 2 insertions(+) diff --git a/gcc/config.gcc

[PATCH 29/55] rs6000: Add power8-vector builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. --- gcc/config/rs6000/rs6000-builtin-new.def | 438 +++ 1 file changed, 438 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def

[PATCH 37/55] rs6000: Execute the automatic built-in initialization code

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-04 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. (rs6000_init_builtins): Call rs6000_autoinit_builtins; skip the old initialization logic when new builtins are enabled. --- gcc/config/rs6000/rs6000-call.c | 12

[PATCH 48/55] rs6000: Builtin expansion, part 5

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-25 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_mma_expand_builtin): Implement. --- gcc/config/rs6000/rs6000-call.c | 92 + 1 file changed, 92 insertions(+) diff --git a/gcc/config/rs6000/rs6000-call.c

[PATCH 51/55] rs6000: Miscellaneous uses of rs6000_builtin_decls_x

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use rs6000_builtin_decls_x when appropriate. (add_condition_to_bb): Likewise. (rs6000_atomic_assign_expand_fenv): Likewise. --- gcc/config/rs6000/rs6000.c | 19

[PATCH 52/55] rs6000: Debug support

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_debug_type): New function. (def_builtin): Change debug formatting for easier parsing and include more information. (rs6000_init_builtins): Add dump of autogenerated builtins.

Re: [PATCH 02/57] Support scanning of build-time GC roots in gengtype

2021-06-08 Thread Bill Schmidt via Gcc-patches
On 6/7/21 12:48 PM, Bill Schmidt wrote: On 6/7/21 12:45 PM, Richard Biener wrote: On Mon, Jun 7, 2021 at 5:38 PM Bill Schmidt wrote: On 6/7/21 8:36 AM, Richard Biener wrote: Some maybe obvious issue - what about DOS-style path hosts? You seem to build ../ strings to point to parent dirs...

[PATCH 06/55] rs6000: Add functions for matching types, part 1 of 3

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. (basetype): Likewise. (typeinfo): Likewise. (handle_pointer): New function. (match_basetype): New stub function. (match_const_restriction): Likewise.

[PATCH 12/55] rs6000: Parsing built-in input file, part 2 of 3

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. (parse_prototype): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 142 1 file changed, 142 insertions(+) diff --git

[PATCH 13/55] rs6000: Parsing built-in input file, part 3 of 3

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 102 1 file changed, 102 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 22/55] rs6000: Write static initializations for overload tables

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New function. (write_init_file): Call write_ovld_static_init. --- gcc/config/rs6000/rs6000-gen-builtins.c | 53 + 1 file changed, 53 insertions(+) diff

[PATCH 30/55] rs6000: Add Power9 builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, and power9-64 stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 360 +++ 1 file changed, 360 insertions(+) diff --git

[PATCH 40/55] rs6000: Always initialize vector_pair and vector_quad nodes

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove TARGET_EXTRA_BUILTINS guard. --- gcc/config/rs6000/rs6000-call.c | 51 - 1 file changed, 24 insertions(+), 27 deletions(-) diff --git

[PATCH 47/55] rs6000: Builtin expansion, part 4

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (elemrev_icode): Implement. (ldv_expand_builtin): Likewise. (lxvrse_expand_builtin): Likewise. (lxvrze_expand_builtin): Likewise. (stv_expand_builtin): Likewise. ---

[PATCH 53/55] rs6000: Update altivec.h for automated interfaces

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/altivec.h: Delete a number of #defines that are now superfluous; include rs6000-vecdefines.h; include some synonyms. --- gcc/config/rs6000/altivec.h | 516 +++- 1 file changed, 41

[PATCH 19/55] rs6000: Write output to the builtins init file, part 2 of 3

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 81 + 1 file changed, 81 insertions(+) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

<    1   2   3   4   5   6   7   8   9   10   >