Re: [PATCH 04/57] rs6000: Add initial input files

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/20/21 5:46 PM, Segher Boessenkool wrote: On Tue, Apr 27, 2021 at 10:32:39AM -0500, Bill Schmidt via Gcc-patches wrote: This patch adds a tiny subset of the built-in and overload descriptions. * config/rs6000/rs6000-builtin-new.def: New. You'll have to rename this to not

Re: [PATCH 05/57] rs6000: Add file support and functions for diagnostic support

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/20/21 6:03 PM, Segher Boessenkool wrote: Hi! On Tue, Apr 27, 2021 at 10:32:40AM -0500, Bill Schmidt via Gcc-patches wrote: * config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope variable. What makes it interesting that this var has file scope? Did you mean to

Re: [PATCH 06/57] rs6000: Add helper functions for parsing

2021-05-21 Thread Bill Schmidt via Gcc-patches
On 5/21/21 1:51 PM, Segher Boessenkool wrote: Hi! On Tue, Apr 27, 2021 at 10:32:41AM -0500, Bill Schmidt via Gcc-patches wrote: +/* Used as a sentinel for range constraints on integer fields. No field can + be 32 bits wide, so this is a safe sentinel value. */ +#define MININT INT32_MIN

Re: [PATCH 06/57] rs6000: Add helper functions for parsing

2021-06-01 Thread Bill Schmidt via Gcc-patches
On 5/21/21 6:43 PM, Segher Boessenkool wrote: Yes, wrappers is a no-go. But you could just have added the features you need to the generic code? Was there a technical reason not to do that? It sounds useful in many places, not just here. I agree it would be nice if all the gen* tools had li

rs6000: Require ELFv2 ABI for ROP test (PR100750)

2021-06-01 Thread Bill Schmidt via Gcc-patches
Hi! PR100750 reports a failure on my part to require the ELFv2 ABI for one of the ROP tests. This fixes that. Tested on powerpc64-linux-gnu, committed as obvious. Thanks! Bill PR100750: Require ELFv2 ABI for ROP test 2021-06-01 Bill Schmidt gcc/testsuite/ PR testsuite/100750

Re: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store [PR100085]

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/2/21 7:46 PM, Xionghu Luo wrote: Hi, On 2021/6/3 06:20, Segher Boessenkool wrote: On Wed, Jun 02, 2021 at 03:19:32AM -0500, Xionghu Luo wrote: On P8LE, extra rot64+rot64 load or store instructions are generated in float128 to vector __int128 conversion. This patch teaches pass swaps to a

Re: rs6000: Require ELFv2 ABI for ROP test (PR100750)

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/1/21 7:44 PM, Segher Boessenkool wrote: It would be nice if we had a selector for when we can use -mrop-protect, instead of assuming it is only for ELFv2. Agreed -- I'll take a note and try to get to this sometime.

Re: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store [PR100085]

2021-06-03 Thread Bill Schmidt via Gcc-patches
On 6/3/21 3:19 PM, Segher Boessenkool wrote: On Thu, Jun 03, 2021 at 08:09:36AM -0500, Bill Schmidt wrote: Note also that swap optimization can handle more general cases than simplify-rtx. Do you have examples? That should be fixed (unless it is something Power-specific?) It is Power-specifi

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

2021-06-04 Thread Bill Schmidt via Gcc-patches
On 5/20/21 5:24 PM, Segher Boessenkool wrote: On Tue, May 11, 2021 at 11:01:22AM -0500, Bill Schmidt wrote: Hi!  I'd like to ping this specific patch from the series, which is the only one remaining that affects common code.  I confess that I don't know whom to ask for a review for gengtype; I d

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

2021-06-07 Thread Bill Schmidt via Gcc-patches
On 6/7/21 5:39 AM, Richard Sandiford wrote: Bill Schmidt via Gcc-patches writes: On 5/20/21 5:24 PM, Segher Boessenkool wrote: On Tue, May 11, 2021 at 11:01:22AM -0500, Bill Schmidt wrote: Hi!  I'd like to ping this specific patch from the series, which is the only one remaining that af

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

2021-06-07 Thread Bill Schmidt via Gcc-patches
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... I'm not sure what we do elsewhere - I suppose we arrange for appropriate -I command line arguments? Well, actually it's just using "./"

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

2021-06-07 Thread Bill Schmidt via Gcc-patches
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... I'm not sure what we do elsewhere - I supp

[PATCH 02/55] rs6000: Initial create of rs6000-gen-builtins.c

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c: New. --- gcc/config/rs6000/rs6000-gen-builtins.c | 165 1 file changed, 165 insertions(+) create mode 100644 gcc/config/rs6000/rs6000-gen-builtins.c diff --git a/gcc/config/rs6000/rs6000-gen-

[PATCHv2 00/55] Replace the Power target-specific builtin machinery

2021-06-08 Thread Bill Schmidt via Gcc-patches
Original patch series here: https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568840.html Segher and others, thanks for reviewing the first chunk of patches from this series! Some of the stylistic changes turn out to affect many of the remaining patches, so in addition to addressing the review

[PATCH 04/55] rs6000: Add file support and functions for diagnostic support

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

[PATCH 05/55] rs6000: Add helper functions for parsing

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New function. (advance_line): Likewise. (safe_inc_pos): Likewise. (match_identifier): Likewise. (match_integer): Likewise. (match_to_right_bracket): L

[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 01/55] rs6000: Support scanning of build-time GC roots in gengtype

2021-06-08 Thread Bill Schmidt via Gcc-patches
Currently gengtype supports scanning target-specific files for GC roots, but those files must exist in the source tree. This patch extends the support to include header files generated into the build directory. It also allows targets to specify build dependencies for s-gtype to ensure the built h

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

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

[PATCH 08/55] rs6000: Add functions for matching types, 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 (restriction): New enum. (typeinfo): Add restr field. (match_bracketed_pair): New function. (match_const_restriction): Implement. --- gcc/config/rs6000/rs6000-gen-builtins.c | 115 +++

[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 gcc

[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 +++ gcc/config/r

[PATCH 10/55] rs6000: Main function with stubs for parsing and output

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-08 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. (num_bifs): New variable. (num_ovld_stanzas): Likewise. (num_ovlds): Likewise. (parse_codes): New enum. (bif_rbt): New variable. (ovld_rbt): Likew

[PATCH 11/55] rs6000: Parsing built-in input file, 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 (bif_stanza): New enum. (curr_bif_stanza): New variable. (stanza_entry): New struct. (stanza_map): New initialized variable. (enable_string): Likewise. (fnkinds): New enum.

[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 a/gcc/config/rs6000/rs6000-gen-

[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 b/gcc/config/rs6

[PATCH 14/55] rs6000: Parsing of overload input file

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. (MAXOVLDSTANZAS): New macro. (ovld_stanzas): New variable. (curr_ovld_stanza): Likewise. (MAXOVLDS): New macro. (ovlddata): New struct. (ovlds):

[PATCH 15/55] rs6000: Build and store function type identifiers

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

[PATCH 16/55] rs6000: Write output to the builtin definition include file

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

[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. --- gcc/config/rs6000/rs6000-gen-builtin

[PATCH 18/55] rs6000: Write output to the builtins init file, 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 (write_fntype): New callback function. (write_fntype_init): New stub function. (write_init_bif_table): Likewise. (write_init_ovld_table): New function. (write_init_file): Implement

[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 b/gcc/config

[PATCH 20/55] rs6000: Write output to the builtins init 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 (typemap): New struct. (TYPE_MAP_SIZE): New macro. (type_map): New initialized variable. (map_token_to_type_node): New function. (write_type_node): Likewise. (write_fntype_init): I

[PATCH 21/55] rs6000: Write static initializations for built-in table

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

[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 23/55] rs6000: Incorporate new builtins code into the build machinery

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config.gcc (extra_objs): Include rs6000-builtins.o and rs6000-c.o. * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. (rbtree.o): Likewise. (rs6000-gen-builtins): Likewise. (rs6000-builtins.c): Likewise.

[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 b/gcc/con

[PATCH 25/55] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move initialization of pcvoid_type_node here... (altivec_init_builtins): ...from here. * config/rs6000/rs6000

[PATCH 26/55] rs6000: Add VSX builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. --- gcc/config/rs6000/rs6000-builtin-new.def | 857 +++ 1 file changed, 857 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-

[PATCH 27/55] rs6000: Add available-everywhere and ancient builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add always, power5, and power6 stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 72 1 file changed, 72 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gc

[PATCH 28/55] rs6000: Add power7 and power7-64 builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 39 1 file changed, 39 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/conf

[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 a/gcc/config/rs6000/rs6000-builtin-ne

[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 b/gcc/config/rs6000/rs600

[PATCH 31/55] rs6000: Add available-everywhere and ancient builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize various pointer type nodes. * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum values for various pointer types. (ptr_V16QI_type_node): New macro.

[PATCH 32/55] rs6000: Add Power10 builtins

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

[PATCH 33/55] rs6000: Add MMA builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add mma stanza. --- gcc/config/rs6000/rs6000-builtin-new.def | 404 +++ 1 file changed, 404 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-

[PATCH 34/55] rs6000: Add miscellaneous builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-01 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, crypto, and htm stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 215 +++ 1 file changed, 215 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.de

[PATCH 35/55] rs6000: Add Cell builtins

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add cell stanza. --- gcc/config/rs6000/rs6000-builtin-new.def | 27 1 file changed, 27 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-

[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 1

[PATCH 38/55] rs6000: Darwin builtin support

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-04 Bill Schmidt gcc/ * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new decl when new_builtins_are_live. * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New built-in. --- gcc/config/rs6000/darwin.h | 8 ++-- gc

[PATCH 39/55] rs6000: Add sanity to V2DI_type_node definitions

2021-06-08 Thread Bill Schmidt via Gcc-patches
It seems quite strange for these to be "vector long" for 64-bit and "vector long long" for 32-bit, when "vector long long" will do for both. 2021-03-04 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change initialization of V2DI_type_node and unsigned_V

[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 a/gcc/config/rs6000/r

[PATCH 41/55] rs6000: Handle overloads during program parsing

2021-06-08 Thread Bill Schmidt via Gcc-patches
Although this patch looks quite large, the changes are fairly minimal. Most of it is duplicating the large function that does the overload resolution using the automatically generated data structures instead of the old hand-generated ones. This doesn't make the patch terribly easy to review, unfor

[PATCH 43/55] rs6000: Support for vectorizing built-in functions

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000-builtins.h): New include. (rs6000_new_builtin_vectorized_function): New function. (rs6000_new_builtin_md_vectorized_function): Likewise. (rs6000_builtin_vectorized_function): Call rs6000_new_bu

[PATCH 44/55] rs6000: Builtin expansion, part 1

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-04-02 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New forward decl. (rs6000_invalid_new_builtin): New stub function. (rs6000_expand_builtin): Call rs6000_expand_new_builtin. (rs6000_expand_ldst_mask): New stub functio

[PATCH 45/55] rs6000: Builtin expansion, part 2

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Implement. (rs6000_expand_ldst_mask): Likewise. (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. --- gcc/config/rs6000/rs6000-call.c | 101 +

[PATCH 46/55] rs6000: Builtin expansion, part 3

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

[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. --- gcc/config/rs6000/rs6000-call

[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 b/gcc/config/rs6000/rs6000-

[PATCH 50/55] rs6000: Update rs6000_builtin_decl

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. (rs6000_builtin_decl): Call it. --- gcc/config/rs6000/rs6000-call.c | 20 1 file changed, 20 insertions(+) diff --git a/gcc/config/rs6000/rs6000-cal

[PATCH 49/55] rs6000: Builtin expansion, part 6

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_htm_spr_num): New function. (new_htm_expand_builtin): Implement. (rs6000_expand_new_builtin): Handle 32-bit and endian cases. --- gcc/config/rs6000/rs6000-call.c | 202 1 fi

[PATCH 42/55] rs6000: Handle gimple folding of target built-ins

2021-06-08 Thread Bill Schmidt via Gcc-patches
This is another patch that looks bigger than it really is. Because we have a new namespace for the builtins, allowing us to have both the old and new builtin infrastructure supported at once, we need versions of these functions that use the new builtin namespace. Otherwise the code is unchanged.

[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. (altivec_init

[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 insertions(+)

[PATCH 55/55] rs6000: Enable the new builtin support

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-05 Bill Schmidt gcc/ * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize new_builtins_are_live to 1. --- gcc/config/rs6000/rs6000-gen-builtins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c

[PATCH 54/55] rs6000: Test case adjustments

2021-06-08 Thread Bill Schmidt via Gcc-patches
2021-03-24 Bill Schmidt gcc/testsuite/ * gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Adjust. * gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Adjust

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... I'

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

2021-06-09 Thread Bill Schmidt via Gcc-patches
On 6/9/21 5:54 AM, Richard Biener wrote: On Wed, Jun 9, 2021 at 12:53 PM Richard Biener wrote: On Tue, Jun 8, 2021 at 10:45 PM Bill Schmidt wrote: 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

Re: [PATCH] rs6000: Fix vec_cpsgn parameter order (PR101985)

2021-10-11 Thread Bill Schmidt via Gcc-patches
Hi!  Ping, please. :) Bill On 9/24/21 10:20 AM, Bill Schmidt wrote: > Hi! > > This fixes a bug reported in > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101985. > > The vec_cpsgn built-in function API differs in argument order from the > copysign3 convention. Currently that pattern is incorrct

Re: [PING] rs600 built-in series

2021-10-11 Thread Bill Schmidt via Gcc-patches
Hi!  Ping, please. :-) Bill On 9/29/21 3:38 PM, Bill Schmidt wrote: > Hi Segher, > > Might as well ping this before I go on vacation.  :-)  I think we're up to > 06/18: > > https://gcc.gnu.org/pipermail/gcc-patches/2021-September/578604.html > > Thanks!! > > Bill

Re: [PATCH, rs6000] Optimization for vec_xl_sext

2021-10-12 Thread Bill Schmidt via Gcc-patches
Hi Hao Chen, On 9/15/21 2:35 AM, HAO CHEN GUI wrote: > Bill, > >     Yes, I built the gcc with p10 binutils. Then power10_ok tests can pass. > Thanks again for your kindly explanation. > >     I finally realized that the line wrap settings on my thunderbird didn't > take any effect. I have to se

Re: Ping^1 [PATCH, rs6000] optimization for vec_reve builtin [PR100868]

2021-10-12 Thread Bill Schmidt via Gcc-patches
Hi Hao Chen, On 10/11/21 12:32 AM, HAO CHEN GUI wrote: > Hi, > > Gentle ping this: > > https://gcc.gnu.org/pipermail/gcc-patches/2021-September/579038.html > > Thanks > > On 8/9/2021 下午 2:42, HAO CHEN GUI wrote: >> Hi, >> >>   The patch optimized for vec_reve builtin on rs6000. For V2DI and V

Re: [PATCH] rs6000: Remove builtin mask check from builtin_decl [PR102347]

2021-10-12 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 10/11/21 1:30 AM, Kewen.Lin wrote: > Hi Segher, > > Thanks for the comments. > > on 2021/10/1 上午6:13, Segher Boessenkool wrote: >> Hi! >> >> On Thu, Sep 30, 2021 at 11:06:50AM +0800, Kewen.Lin wrote: >> >> [ huge snip ] >> >>> Based on the understanding and testing, I think it's safe

Re: [PATCH] rs6000: Fix vec_cpsgn parameter order (PR101985)

2021-10-12 Thread Bill Schmidt via Gcc-patches
Hi! On 10/12/21 4:37 PM, Segher Boessenkool wrote: > On Fri, Sep 24, 2021 at 10:20:46AM -0500, Bill Schmidt wrote: >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/powerpc/pr101985-1.c >> @@ -0,0 +1,18 @@ >> +/* PR target/101985 */ >> +/* { dg-do run } */ >> +/* { dg-require-effective-target vsx

Re: [PATCH] rs6000: Remove unnecessary option manipulation.

2021-10-14 Thread Bill Schmidt via Gcc-patches
Hi Martin, On 10/14/21 2:49 AM, Martin Liška wrote: > Hello. > > There's follow up flag handling simplification based on > 4ab51fa0e1705201420d87b601bd92bc643b3d52. > > Patch can bootstrap on ppc64le-linux-gnu and survives regression tests. > > Ready to be installed? > Thanks, > Martin > > gcc/Cha

Re: PATCH, rs6000] Optimization for vec_xl_sext

2021-10-14 Thread Bill Schmidt via Gcc-patches
Hi Haochen, The patch looks okay to me now.  Will defer to David for final call. :-) Thanks! Bill On 10/14/21 1:17 AM, HAO CHEN GUI wrote: > Hi, > >   The patch optimizes the code generation for vec_xl_sext builtin. Now all > the sign extensions are done on VSX registers directly. > >   Bootstr

Re: [PATCH] rs6000: Remove unnecessary option manipulation.

2021-10-19 Thread Bill Schmidt via Gcc-patches
Hi Martin, On 10/19/21 3:53 AM, Martin Liška wrote: > On 10/15/21 17:24, Martin Liška wrote: >> P.S. Next time, please CC me. > > All right, I tested the updated patch and it works fine > on ppc64le-linux-gnu. > > May I install it? I'm not a maintainer, so can't approve -- CCing those who can. T

Re: [PATCH v4 1/3] rs6000: Add nmmintrin.h to extra_headers

2021-10-19 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 10/18/21 8:15 PM, Paul A. Clarke wrote: > Fix an ommission in commit 29fb1e831bf1c25e4574bf2f98a9f534e5c67665. > > 2021-10-18 Paul A. Clarke > > gcc > * config/config.gcc (extra_headers): Add nmmintrin.h. > --- > gcc/config.gcc | 1 + > 1 file changed, 1 insertion(+) > > diff

Re: [PING] rs600 built-in series

2021-10-25 Thread Bill Schmidt via Gcc-patches
Ping... On 10/11/21 5:17 PM, Bill Schmidt wrote: > Hi!  Ping, please. :-) > > Bill > > On 9/29/21 3:38 PM, Bill Schmidt wrote: >> Hi Segher, >> >> Might as well ping this before I go on vacation.  :-)  I think we're up to >> 06/18: >> >> https://gcc.gnu.org/pipermail/gcc-patches/2021-September/57

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-04 Thread Bill Schmidt via Gcc-patches
On 7/3/21 10:56 AM, Segher Boessenkool wrote: On Fri, Jul 02, 2021 at 01:32:45PM -0500, Peter Bergner wrote: On 7/1/21 2:48 PM, Peter Bergner wrote: On 7/1/21 1:01 PM, Segher Boessenkool wrote: The patch is okay for trunk. Below is the updated patch which is bootstrapping now. I'll commit

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-04 Thread Bill Schmidt via Gcc-patches
Hi Peter, On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote: gcc/ * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): New macros. (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_

Re: [PATCH] rs6000: Add MMA __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins

2021-07-06 Thread Bill Schmidt via Gcc-patches
On 7/6/21 2:29 PM, Peter Bergner wrote: On 7/4/21 11:32 AM, Bill Schmidt wrote On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote: +  if (d[1].icode != CODE_FOR_nothing) +    { +  op[nopnds++] = void_type_node; +  icode = d[1].icode; +    } This hunk bothers

Re: [PATCH v2 1/2] rs6000: Add support for _mm_minpos_epu16

2021-07-09 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote: Add a naive implementation of the subject x86 intrinsic to ease porting. "subject" won't be part of eventual commit, so please specify in commit blurb. 2021-06-08 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmin

Re: [PATCH v2 2/2] rs6000: Add test for _mm_minpos_epu16

2021-07-09 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote: Copy the test for _mm_minpos_epu16 from gcc/testsuite/gcc.target/i386/sse4_1-phminposuw.c, with a few adjustments: - Adjust the dejagnu directives for powerpc platform. - Make the data not be monotonically increasing, such tha

Re: [PATCH 1/4] rs6000: Add support for SSE4.1 "test" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: 2021-06-29 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, _mm_test_mix_ones_zeros): New. --- g

Re: [PATCH 2/4] rs6000: Add tests for SSE4.1 "test" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, LGTM.  I can't approve, but recommend approval as is. Thanks, Bill On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: Copy the test for _mm_testz_si128, _mm_testc_si128, _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, _mm_test_mix_ones_zeros from gcc/testsuite/gcc.tar

Re: [PATCH 3/4] rs6000: Add support for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: _mm_blend_epi16 and _mm_blendv_epi8 were added earlier. Add these four to complete the set. 2021-06-29 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, _mm_blend_ps, _mm

Re: [PATCH 4/4] rs6000: Add tests for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, Please resubmit this when you resubmit 3/4, in case any adjustments are needed. Thanks! Bill On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: Copy the tests for _mm_blend_pd, _mm_blendv_pd, _mm_blend_ps, _mm_blendv_ps from gcc/testsuite/gcc.target/i386. 2021-06-29 Paul A.

Re: [PATCH 3/4] rs6000: Add support for SSE4.1 "blend" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
On 7/11/21 11:17 AM, Bill Schmidt wrote: Hi Paul, On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote: _mm_blend_epi16 and _mm_blendv_epi8 were added earlier. Add these four to complete the set. 2021-06-29  Paul A. Clarke  gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_blend_pd, _m

Re: [PATCH 1/2] rs6000: Add support for SSE4.1 "ceil" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote: 2021-07-01 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss): New. --- gcc/config/rs6000/smmintrin.h | 28 1 file cha

Re: [PATCH 2/2] rs6000: Add tests for SSE4.1 "ceil" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote: Add the tests for _mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss. Copy a test for _mm_ceil_pd and _mm_ceil_ps from gcc/testsuite/gcc.target/i386. Define __VSX_SSE2__ to pick up some union definitons in typo ("definitions").

Re: [PATCH 1/2] rs6000: Add support for SSE4.1 "floor" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote: 2021-07-06 Paul A. Clarke gcc/ChangeLog: * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): New. --- gcc/config/rs6000/smmintrin.h | 28 1 file

Re: [PATCH 2/2] rs6000: Add tests for SSE4.1 "floor" intrinsics

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote: Add the tests for _mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss. These are modelled after (and depend upon parts of) the tests for _mm_ceil intrinsics, recently posted. Copy a test for _mm_floor_sd from gcc/testsuite/gcc

Re: Repost: [PATCH] PR 100168: Fix call test on power10.

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, LGTM.  I can't approve, but recommend approval. Thanks, Bill On 7/7/21 3:08 PM, Michael Meissner wrote: [PATCH] PR 100168: Fix call test on power10. Fix a test that was checking for 64-bit TOC calls, to also allow for PC-relative calls. I have verified that this test passes when run

Re: Repost: [PATCH] PR 100170: Fix eq/ne tests on power10.

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, ENOPATCH Thanks, Bill :-) On 7/7/21 3:06 PM, Michael Meissner wrote: [PATCH] PR 100170: Fix eq/ne tests on power10. This patch updates eq/ne tests in the testsuite to adjust the test if power10 code generation is used. I have verified that these tests run on a power10 system using t

Re: Repost: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

2021-07-11 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:04 PM, Michael Meissner wrote: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10. This patch updates the vector long long multiply and divide tests to supply the correct code information if power10 code generation is used. 2021-07-07 Michael Meissne

Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:03 PM, Michael Meissner wrote: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 This patch updates the various tests in the testsuite to treat plxv and pstxv as being vector loads/stores. This shows up if you run the testsuite with a compiler configure

Re: Repost: [PATCH] Fix vec-splati-runnable.c test.

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 3:00 PM, Michael Meissner wrote: [PATCH] Fix vec-splati-runnable.c test. I noticed that the vec-splati-runnable.c did not have an abort after one of the tests. If the test was run with optimization, the optimizer could delete some of the tests and throw off the count. Howev

Re: Repost: [PATCH] Change rs6000_const_f32_to_i32 return type.

2021-07-12 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 2:59 PM, Michael Meissner wrote: [PATCH] Change rs6000_const_f32_to_i32 return type. The function rs6000_const_f32_to_i32 called REAL_VALUE_TO_TARGET_SINGLE with a long long type and returns it. This patch changes the type to long which is the proper type for REAL_VALUE_TO_T

<    1   2   3   4   5   6   7   >