[PATCH v2] rs6000: Avoid buffer overruns

2021-08-19 Thread Bill Schmidt via Gcc-patches
! (Also, safe_inc_pos is not quite right itself.) Bootstrapped and tested on powerpc64le-linux-gnu, this time without some unsubmitted patches in the way. Is this OK for trunk? Thanks, Bill 2021-08-19 Bill Schmidt gcc/ PR target/101830 * config/rs6000/rs6000-gen-builtins.c

Re: [PATCH] Move xx* builtins to vsx.md.

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 8/12/21 11:20 PM, Michael Meissner wrote: Move xx* builtins to vsx.md. I originally posted this patch in May. It needed a slight tune up as the souces have changed, so I'm reposting it now. I noticed that the xx built-in functions (xxspltiw, xxspltidp, xxsplti32dx, xxeval,

Re: [PATCH 6/6] rs6000: Guard some x86 intrinsics implementations

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Some compatibility implementations of x86 intrinsics include Power intrinsics which require POWER8. Guard them. emmintrin.h: - _mm_cmpord_pd: Remove code which was ostensibly for pre-POWER8, but which indeed depended on

Re: [PATCH 5/6] rs6000: Support more SSE4.1 "cmp", "mul", "pack" intrinsics

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Also, copy tests for: - _mm_cmpeq_epi64, _mm_cmpgt_epi64 - _mm_mullo_epi32, _mm_mul_epi32 - _mm_packus_epi32 from gcc/testsuite/gcc.target/i386. Testing, backports, etc. This patch LGTM with the usual comment about

Re: [PATCH 4/6] rs6000: Support SSE4.1 "cvt" intrinsics

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Also, copy tests for: - _mm_cvtepi8_epi16, _mm_cvtepi8_epi32, _mm_cvtepi8_epi64 - _mm_cvtepi16_epi32, _mm_cvtepi16_epi64 - _mm_cvtepi32_epi64, - _mm_cvtepu8_epi16, _mm_cvtepu8_epi32, _mm_cvtepu8_epi64 - _mm_cvtepu16_epi32,

Re: [PATCH 3/6] rs6000: Simplify some SSE4.1 "test" intrinsics

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Copy some simple redirections from i386 , for: - _mm_test_all_zeros - _mm_test_all_ones - _mm_test_mix_ones_zeros Testing, backports, etc. Simple is good!  LGTM. Bill 2021-08-09 Paul A. Clarke gcc *

Re: [PATCH 2/6] rs6000: Support SSE4.1 "min" and "max" intrinsics

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Also, copy tests for _mm_min_epi8, _mm_min_epu16, _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16, _mm_max_epi32, _mm_max_epu32 from gcc/testsuite/gcc.target/i386. sse4_1-pmaxsb.c and sse4_1-pminsb.c were modified from

Re: [PATCH 1/6] rs6000: Support SSE4.1 "round" intrinsics

2021-08-18 Thread Bill Schmidt via Gcc-patches
Hi, Paul! On 8/9/21 3:23 PM, Paul A. Clarke via Gcc-patches wrote: Suppress exceptions (when specified), by saving, manipulating, and restoring the FPSCR. Similarly, save, set, and restore the floating-point rounding mode when required. No attempt is made to optimize writing the FPSCR (by

Re: [PATCH] rs6000: Fix ICE expanding lxvp and stxvp gimple built-ins [PR101849]

2021-08-13 Thread Bill Schmidt via Gcc-patches
Hi Peter, On 8/13/21 12:01 PM, Peter Bergner wrote: On 8/12/21 1:20 PM, David Edelsohn wrote: On Tue, Aug 10, 2021 at 7:37 PM Peter Bergner wrote: gcc/ PR target/101849 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast pointer to __vector_pair *.

Re: [PATCH] rs6000: Avoid buffer overruns

2021-08-13 Thread Bill Schmidt via Gcc-patches
Hi, On 8/12/21 3:43 PM, Bill Schmidt via Gcc-patches wrote: Per discussion with Martin, I'm also changing the post-increment to pre-increment in safe_inc_pos.  That's what I'm regstrapping at the moment. Thanks, Bill On 8/12/21 3:28 PM, Bill Schmidt via Gcc-patches wrote: Although

Re: [PATCH] rs6000: Avoid buffer overruns

2021-08-12 Thread Bill Schmidt via Gcc-patches
Per discussion with Martin, I'm also changing the post-increment to pre-increment in safe_inc_pos.  That's what I'm regstrapping at the moment. Thanks, Bill On 8/12/21 3:28 PM, Bill Schmidt via Gcc-patches wrote: Although safe_inc_pos avoids buffer overruns in rs6000-gen-builtins.c

[PATCH] rs6000: Avoid buffer overruns

2021-08-12 Thread Bill Schmidt via Gcc-patches
Although safe_inc_pos avoids buffer overruns in rs6000-gen-builtins.c, there are some other routines where we fail to detect the possibility. Clean those up! Regstrap in progress on powerpc64le-linux-gnu. OK for trunk if that passes? Thanks, Bill 2021-08-12 Bill Schmidt gcc

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

2021-08-12 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/3/21 7:34 PM, Segher Boessenkool wrote: Whoops, I forgot some stuff: On Tue, Jul 27, 2021 at 04:06:49PM -0500, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: static rtx ldv_expand_builtin (rtx target, insn_code icode, rtx *op

Re: PING: [RS6000] rotate and mask constants [PR94393]

2021-08-12 Thread Bill Schmidt via Gcc-patches
On 8/10/21 11:02 AM, Bill Schmidt wrote: Hm, is this code ever executed?  How does this not result in assignment through null pointers? It would be good to figure out whether this code is reachable at all, and just yank it out if not.  Otherwise we need a test case that hits it. I seem

Re: [PATCH] rs6000: Make some BIFs vectorized on P10

2021-08-12 Thread Bill Schmidt via Gcc-patches
On 8/11/21 9:10 PM, Kewen.Lin wrote: Hi Bill, Thanks for your prompt review! on 2021/8/12 上午12:34, Bill Schmidt wrote: Hi Kewen, FWIW, it's easier on reviewers if you include the patch inline instead of as an attachment. On 8/11/21 1:56 AM, Kewen.Lin wrote: Hi, This patch is to add

Re: [PATCH] rs6000: Fix ICE expanding lxvp and stxvp gimple built-ins [PR101849]

2021-08-11 Thread Bill Schmidt via Gcc-patches
Hi Peter, LGTM.  Still needs maintainer review, of course. :) Bill On 8/10/21 6:37 PM, Peter Bergner wrote: PR101849 shows we ICE on a test case when we pass a non __vector_pair * pointer to the __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins that is cast to __vector_pair *. The problem

Re: [PATCH] rs6000: Make some BIFs vectorized on P10

2021-08-11 Thread Bill Schmidt via Gcc-patches
Hi Kewen, FWIW, it's easier on reviewers if you include the patch inline instead of as an attachment. On 8/11/21 1:56 AM, Kewen.Lin wrote: Hi, This patch is to add the support to make vectorizer able to vectorize scalar version of some built-in functions with its corresponding vector

Re: [PATCH] rs6000: Add missing unsigned info for some P10 bifs

2021-08-11 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 8/11/21 12:44 AM, Kewen.Lin wrote: Hi, This patch is to make prototypes of some Power10 built-in functions consistent with what's in the documentation, as well as the vector version. Otherwise, useless conversions can be generated in gimple IR, and the vectorized versions will

Re: [PATCH 05/34] rs6000: Add available-everywhere and ancient builtins

2021-08-10 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/10/21 12:34 PM, Segher Boessenkool wrote: On Tue, Aug 10, 2021 at 11:17:05AM -0500, will schmidt wrote: On Thu, 2021-07-29 at 08:30 -0500, Bill Schmidt wrote: +; This will break for long double == _Float128. libgcc history. + const long double __builtin_pack_longdouble

Re: [PATCH 05/34] rs6000: Add available-everywhere and ancient builtins

2021-08-10 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/10/21 1:38 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:52AM -0500, Bill Schmidt wrote: * config/rs6000/rs6000-builtin-new.def: Add always, power5, and power6 stanzas. + unsigned long __builtin_ppc_mftb (); +MFTB rs6000_mftb_di {32bit} I'm

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-10 Thread Bill Schmidt via Gcc-patches
On 8/10/21 8:40 AM, Segher Boessenkool wrote: On Tue, Aug 10, 2021 at 08:02:24AM -0500, Bill Schmidt wrote: The whole point is that this data type is only used for interfaces, as shown in the example code.  Nobody wants to define const void as anything.  The const serves only as a contract

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-10 Thread Bill Schmidt via Gcc-patches
On 8/10/21 7:48 AM, Segher Boessenkool wrote: On Tue, Aug 10, 2021 at 07:17:54AM -0500, Bill Schmidt wrote: On 8/9/21 6:44 PM, Segher Boessenkool wrote: This is not a documented GCC extension either, and it might even conflict with the existing void * extension (allowing arithmetic

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-10 Thread Bill Schmidt via Gcc-patches
On 8/9/21 6:44 PM, Segher Boessenkool wrote: This is not a documented GCC extension either, and it might even conflict with the existing void * extension (allowing arithmetic on it, by defining sizeof(void)). In either case it is not currently defined. I'm not sure how you get to this,

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-09 Thread Bill Schmidt via Gcc-patches
Hi Segher, + pcvoid_type_node += build_pointer_type (build_qualified_type (void_type_node, + TYPE_QUAL_CONST)); A const void? Interesting. You are building a pointer to a const void here, not a const pointer to void. Is that what you wanted?

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-08 Thread Bill Schmidt via Gcc-patches
Hi... On 8/8/21 3:27 PM, Segher Boessenkool wrote: Hi! On Sun, Aug 08, 2021 at 11:53:38AM -0500, Bill Schmidt wrote: On 8/6/21 7:01 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:50AM -0500, Bill Schmidt wrote: + const vsc __builtin_altivec_abss_v16qi (vsc); +ABSS_V16QI

Re: [PATCH 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-08-08 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/6/21 7:01 PM, Segher Boessenkool wrote: Hi! On Thu, Jul 29, 2021 at 08:30:50AM -0500, Bill Schmidt wrote: + const vsc __builtin_altivec_abss_v16qi (vsc); +ABSS_V16QI altivec_abss_v16qi {} + + const vsi __builtin_altivec_abss_v4si (vsi); +ABSS_V4SI altivec_abss_v4si

Re: [PATCH] Fix typo in fold-vec-load-builtin_vec_xl-* tests.

2021-08-08 Thread Bill Schmidt via Gcc-patches
Hi Mike, FWIW, looks fine to me, if tests are all passing now. Bill On 8/5/21 9:44 PM, Michael Meissner wrote: [PATCH] Fix typo in fold-vec-load-builtin_vec_xl-* tests. When I checked in the fix for running tests on power10 systems with power10 code generation, I had a typo in the

Re: [PATCH] rs6000: Add vec_unpacku_{hi,lo}_v4si

2021-08-06 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 8/4/21 9:06 PM, Kewen.Lin wrote: Hi, The existing vec_unpacku_{hi,lo} supports emulated unsigned unpacking for short and char but misses the support for int. This patch adds the support for vec_unpacku_{hi,lo}_v4si. Meanwhile, the current implementation uses vector permutation

Re: [PATCH 01/34] rs6000: Incorporate new builtins code into the build machinery

2021-08-05 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/4/21 5:29 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:48AM -0500, Bill Schmidt wrote: +rs6000-gen-builtins: rs6000-gen-builtins.o rbtree.o + $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \ + $(filter-out $(BUILD_LIBDEPS

Re: [PATCH, rs6000] Add store fusion support for Power10

2021-08-04 Thread Bill Schmidt via Gcc-patches
Hi Pat, Good stuff!  Comments below. On 8/2/21 3:19 PM, Pat Haugen via Gcc-patches wrote: Enable store fusion on Power10. Use the SCHED_REORDER hook to implement Power10 specific ready list reordering. As of now, pairing stores for store fusion is the only function being performed.

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

2021-08-02 Thread Bill Schmidt via Gcc-patches
Hi Will, On 7/29/21 7:42 AM, Bill Schmidt wrote: On 7/28/21 4:21 PM, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: +/* Vector compares; EQ, NE, GE, GT, LE. */ +case RS6000_BIF_VCMPEQUB: +case RS6000_BIF_VCMPEQUH: +case

[PATCH 31/34] rs6000: Debug support

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-28 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

[PATCH 23/34] rs6000: Builtin expansion, part 1

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-06-17 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

[PATCH 21/34] rs6000: Handle some recent MMA builtin changes

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-27 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. (ASSEMBLE_PAIR): Likewise. (BUILD_ACC): Likewise. (DISASSEMBLE_ACC): Likewise. (DISASSEMBLE_PAIR): Likewise. (PMXVBF16GER2): Likewise

[PATCH 29/34] rs6000: Update rs6000_builtin_decl

2021-07-29 Thread Bill Schmidt via Gcc-patches
Create a new version of this function that uses the new infrastructure, and particularly checks for supported builtins the new way. 2021-07-28 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. (rs6000_builtin_decl): Call

[PATCH 33/34] rs6000: Test case adjustments

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-19 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

[PATCH 25/34] rs6000: Builtin expansion, part 3

2021-07-29 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

[PATCH 15/34] rs6000: Execute the automatic built-in initialization code

2021-07-29 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 27/34] rs6000: Builtin expansion, part 5

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-06-17 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_mma_expand_builtin): Implement. --- gcc/config/rs6000/rs6000-call.c | 103 1 file changed, 103 insertions(+) diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000

[PATCH 28/34] rs6000: Builtin expansion, part 6

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-28 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

[PATCH 22/34] rs6000: Support for vectorizing built-in functions

2021-07-29 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

[PATCH 07/34] rs6000: Add power8-vector builtins

2021-07-29 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

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

2021-07-29 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 26/34] rs6000: Builtin expansion, part 4

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-28 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

[PATCH 17/34] rs6000: Add sanity to V2DI_type_node definitions

2021-07-29 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 in

[PATCH 32/34] rs6000: Update altivec.h for automated interfaces

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-28 Bill Schmidt gcc/ * config/rs6000/altivec.h: Delete a number of #defines that are now superfluous; alphabetize; include rs6000-vecdefines.h; include some synonyms. --- gcc/config/rs6000/altivec.h | 519 +++- 1 file changed, 38

[PATCH 30/34] rs6000: Miscellaneous uses of rs6000_builtins_decl_x

2021-07-29 Thread Bill Schmidt via Gcc-patches
There are a few leftover places where we use the old rs6000_builtins_decl array, but we need to use rs6000_builtins_decl_x instead when the new builtins infrastructure is in play. 2021-07-28 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use

[PATCH 24/34] rs6000: Builtin expansion, part 2

2021-07-29 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 18/34] rs6000: Always initialize vector_pair and vector_quad nodes

2021-07-29 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

[PATCH 20/34] rs6000: Handle gimple folding of target built-ins

2021-07-29 Thread Bill Schmidt via Gcc-patches
. 2021-07-29 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New forward decl. (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. (rs6000_new_builtin_valid_without_lhs): New function

[PATCH 19/34] rs6000: Handle overloads during program parsing

2021-07-29 Thread Bill Schmidt via Gcc-patches
, unfortunately. Just be aware that generally we aren't changing the logic and functionality of overload handling. 2021-06-07 Bill Schmidt gcc/ * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. (altivec_resolve_new_overloaded_builtin): New forward decl

[PATCH 16/34] rs6000: Darwin builtin support

2021-07-29 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

[PATCH 13/34] rs6000: Add Cell builtins

2021-07-29 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 11/34] rs6000: Add MMA builtins

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

[PATCH 12/34] rs6000: Add miscellaneous builtins

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-06-15 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

[PATCH 10/34] rs6000: Add Power10 builtins

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-07-28 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 stanzas. --- gcc/config/rs6000/rs6000-builtin-new.def | 523 +++ 1 file changed, 523 insertions(+) diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc

[PATCH 09/34] rs6000: Add more type nodes to support builtin processing

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-06-10 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 08/34] rs6000: Add Power9 builtins

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

[PATCH 06/34] rs6000: Add power7 and power7-64 builtins

2021-07-29 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

[PATCH 05/34] rs6000: Add available-everywhere and ancient builtins

2021-07-29 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

[PATCH 04/34] rs6000: Add VSX builtins

2021-07-29 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 03/34] rs6000: Add the rest of the [altivec] stanza to the builtins file

2021-07-29 Thread Bill Schmidt via Gcc-patches
2021-06-10 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

[PATCH 02/34] rs6000: Add gengtype handling to the build machinery

2021-07-29 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

[PATCH 01/34] rs6000: Incorporate new builtins code into the build machinery

2021-07-29 Thread Bill Schmidt via Gcc-patches
Differences from previous version: - Removed the change to add rs6000-c.o to extra_objs (unnecessary) - Avoided race condition and documented how this works 2021-07-27 Bill Schmidt gcc/ * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. * config/rs6000/rs6000

[PATCHv4 00/34] Replace the Power target-specific builtin machinery

2021-07-29 Thread Bill Schmidt via Gcc-patches
055 The new patch 0021 handles the MMA changes, which required rethinking how I handle "internal" MMA builtins. Thanks again for the ongoing reviews! Bill Bill Schmidt (34): rs6000: Incorporate new builtins code into the build machinery rs6000: Add gengtype handling to the build machi

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

2021-07-29 Thread Bill Schmidt via Gcc-patches
On 7/28/21 4:21 PM, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: +/* Vector compares; EQ, NE, GE, GT, LE. */ +case RS6000_BIF_VCMPEQUB: +case RS6000_BIF_VCMPEQUH: +case RS6000_BIF_VCMPEQUW: +case RS6000_BIF_VCMPEQUD

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

2021-07-28 Thread Bill Schmidt via Gcc-patches
Hi Will, On 7/27/21 4:07 PM, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: 2021-06-10 Bill Schmidt gcc/ * config/rs6000/altivec.h: Delete a number of #defines that are now superfluous; include rs6000-vecdefines.h; include some

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

2021-07-28 Thread Bill Schmidt via Gcc-patches
On 7/27/21 4:07 PM, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: 2021-03-24 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_htm_spr_num): New function. (new_htm_expand_builtin): Implement

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

2021-07-27 Thread Bill Schmidt via Gcc-patches
On 7/27/21 4:06 PM, will schmidt wrote: On Thu, 2021-06-17 at 10:19 -0500, Bill Schmidt via Gcc-patches wrote: 2021-06-17 Bill Schmidt Hi, gcc/ * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New forward decl. (rs6000_invalid_new_builtin): New stub

Re: [PATCH 23/55] rs6000: Incorporate new builtins code into the build machinery

2021-07-27 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 7/27/21 9:23 AM, Segher Boessenkool wrote: On Mon, Jul 26, 2021 at 10:26:25PM -0500, Bill Schmidt wrote: Right now I just make the two generated .h files depend on the generated .c file, which works since they are all generated together or none of them are generated.  That seems

Re: [PATCH 23/55] rs6000: Incorporate new builtins code into the build machinery

2021-07-26 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 7/21/21 1:58 PM, Segher Boessenkool wrote: On Thu, Jun 17, 2021 at 10:19:07AM -0500, Bill Schmidt wrote: 2021-06-07 Bill Schmidt gcc/ * config.gcc (extra_objs): Include rs6000-builtins.o and rs6000-c.o. The rs6000-c.o part needs an explanation, and probably

[PATCH, committed] rs6000: Add int128 target check to pr101129.c (PR101531)

2021-07-21 Thread Bill Schmidt via Gcc-patches
! Bill rs6000: Add int128 target check to pr101129.c (PR101531) 2021-07-21 Bill Schmidt gcc/testsuite/ PR target/101531 * gcc.target/powerpc/pr101129.c: Adjust. diff --git a/gcc/testsuite/gcc.target/powerpc/pr101129.c b/gcc/testsuite/gcc.target/powerpc/pr101129.c index

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

2021-07-21 Thread Bill Schmidt via Gcc-patches
On 7/21/21 11:08 AM, Bill Schmidt wrote: On 7/21/21 10:43 AM, Segher Boessenkool wrote: On Tue, Jul 20, 2021 at 08:51:58PM -0500, Bill Schmidt wrote: On 7/20/21 6:22 PM, Segher Boessenkool wrote: On Tue, Jul 20, 2021 at 05:19:54PM -0500, Bill Schmidt wrote: See the main function.  All

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

2021-07-21 Thread Bill Schmidt via Gcc-patches
On 7/21/21 10:43 AM, Segher Boessenkool wrote: On Tue, Jul 20, 2021 at 08:51:58PM -0500, Bill Schmidt wrote: On 7/20/21 6:22 PM, Segher Boessenkool wrote: On Tue, Jul 20, 2021 at 05:19:54PM -0500, Bill Schmidt wrote: See the main function.  All three files are guaranteed to have been opened

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

2021-07-20 Thread Bill Schmidt via Gcc-patches
On 7/20/21 6:22 PM, Segher Boessenkool wrote: Hi! On Tue, Jul 20, 2021 at 05:19:54PM -0500, Bill Schmidt wrote: See the main function.  All three files are guaranteed to have been opened for writing when this is called, but some of them may have already been closed.  So the fclose calls may

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

2021-07-20 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 7/19/21 2:15 PM, Segher Boessenkool wrote: Hi! On Thu, Jun 17, 2021 at 10:18:54AM -0500, Bill Schmidt wrote: * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. (num_bifs): New variable. (num_ovld_stanzas): Likewise. (num_ovlds

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks for the cleanups, LGTM!  Recommend maintainers approve. Bill On 7/15/21 6:29 PM, Paul A. Clarke 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. -

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, LGTM.  Recommend maintainers approve. Thanks for the cleanups, Bill On 7/15/21 6:29 PM, Paul A. Clarke wrote: Add a naive implementation of the subject x86 intrinsic to ease porting. 2021-07-15 Paul A. Clarke gcc * config/rs6000/smmintrin.h (_mm_minpos_epu16): New. ---

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, LGTM!  Recommend maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke 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

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, LGTM!  Recommend maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke wrote: 2021-07-16 Paul A. Clarke gcc * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): New. --- v2: Improve formatting per review from Bill.

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks for the cleanup, LGTM!  Recommend maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke 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

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks for the cleanup, LGTM!  Recommend maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke wrote: 2021-07-16 Paul A. Clarke gcc * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss): New. --- v2: Improve formatting per review

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks for the cleanup, LGTM!  Recommend maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke wrote: Copy the tests for _mm_blend_pd, _mm_blendv_pd, _mm_blend_ps, _mm_blendv_ps from gcc/testsuite/gcc.target/i386. 2021-07-16 Paul A. Clarke gcc/testsuite *

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

2021-07-16 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks!  LGTM.  Recommend that maintainers approve. Bill On 7/16/21 8:50 AM, Paul A. Clarke wrote: _mm_blend_epi16 and _mm_blendv_epi8 were added earlier. Add these four to complete the set. 2021-07-16 Paul A. Clarke gcc * config/rs6000/smmintrin.h (_mm_blend_pd,

[PATCH, committed] rs6000: Don't let swaps pass break multiply low-part (PR101129)

2021-07-15 Thread Bill Schmidt via Gcc-patches
. This bug has been around a long time, so the fix should be backported to all open releases.  Is this okay after some burn-in time? Thanks! Bill rs6000: Don't let swaps pass break multiply low-part (PR101129) 2021-07-15 Bill Schmidt gcc/ * config/rs6000/rs6000-p8swap.c (has_part_mult): New

Re: [PATCH] Fix regular expression error in PR 100166 patch

2021-07-14 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/14/21 4:42 PM, Michael Meissner wrote: Fix regular expression error in PR 100166 patch In my patch for PR testsuite/100166 (which fixes various tests so that the plxv and pstxv instructions can be counted as legitimate instructions), I had a typo in the pr86731-fwrapv-longlong.c

Re: Repost: [PATCH] Fix long double tests when default long double is not IBM.

2021-07-14 Thread Bill Schmidt via Gcc-patches
Hi Mike, On 7/7/21 2:58 PM, Michael Meissner wrote: [PATCH] Fix long double tests when default long double is not IBM. This patch adds 3 more selections to target-supports.exp to see if we can force the compiler to use a particular long double format (IEEE 128-bit, IBM extended double,

Re: [PATCHv3 00/55] Replace the Power target-specific builtin machinery

2021-07-13 Thread Bill Schmidt via Gcc-patches
Ping^2 On 6/25/21 10:25 AM, Bill Schmidt wrote: Ping / beg  :-) On 6/17/21 10:18 AM, Bill Schmidt via Gcc-patches wrote: Original patch series here: https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568840.html V2 patch series here: https://gcc.gnu.org/pipermail/gcc-patches/2021-June

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

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:47 PM, Bill Schmidt via Gcc-patches wrote: On 7/12/21 12:16 PM, Michael Meissner wrote: On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote: Hi Mike, On 7/7/21 3:04 PM, Michael Meissner wrote: [PATCH] PR 100167: Fix vector long long multiply/divide tests on power10

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

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:16 PM, Michael Meissner wrote: On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote: 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

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

2021-07-12 Thread Bill Schmidt via Gcc-patches
On 7/12/21 12:11 PM, Michael Meissner wrote: On Mon, Jul 12, 2021 at 10:49:26AM -0500, Bill Schmidt wrote: 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

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

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.

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

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

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

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

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

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

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

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