[PATCH] rs6000: Builtin test changes for int_128bit-runnable.c

2021-11-18 Thread Bill Schmidt via Gcc-patches
Hi!  This patch is broken out from the test case patch for the new builtins support. The old builtins code performs gimple folding on 128-bit compares. This results in correct but very inefficient code. (I suspect we may be missing some optab entries, misleading gimple into 64-bit emulation.)

[PATCH] rs6000: Builtins test changes for compare-bytes tests

2021-11-18 Thread Bill Schmidt via Gcc-patches
Hi! This patch is broken out from the patch with test suite changes for the new builtins support. With the old builtins support, cmpb-2.c produces: warning: implicit declaration of function '__builtin_cmpb; did you mean '__builtin_bcmp'? With the new support, it produces: error:

[PATCH] rs6000: Builtins test changes for byte-in-set-2.c

2021-11-18 Thread Bill Schmidt via Gcc-patches
Hi! This patch is broken out from the previous patch for builtins test suite changes. With the old builtins support, this test case produces: warning: implicit declaration of function '__builtin_byte_in_set'; did you mean '__builtin_byte_in_range'? With the new support, it produces: error:

Re: [PATCH] rs6000: Builtins test changes for BFP scalar tests

2021-11-18 Thread Bill Schmidt via Gcc-patches
Hi! On 11/17/21 5:06 PM, Bill Schmidt wrote: > On 11/17/21 3:32 PM, Segher Boessenkool wrote: >> On Wed, Nov 17, 2021 at 02:58:54PM -0600, Bill Schmidt wrote: >>> Hi! This patch is broken out of the previous patch for all the builtins >>> test >>> suite adjustments. Here we have some slight

Re: [PATCH] rs6000: Builtins test changes for BFP scalar tests

2021-11-17 Thread Bill Schmidt via Gcc-patches
On 11/17/21 3:32 PM, Segher Boessenkool wrote: > On Wed, Nov 17, 2021 at 02:58:54PM -0600, Bill Schmidt wrote: >> Hi! This patch is broken out of the previous patch for all the builtins test >> suite adjustments. Here we have some slight changes in error messages due to >> how the internals

[PATCH] rs6000: Builtins test changes for BFP scalar tests

2021-11-17 Thread Bill Schmidt via Gcc-patches
Hi! This patch is broken out of the previous patch for all the builtins test suite adjustments. Here we have some slight changes in error messages due to how the internals have changed between the old and new builtins methods. For scalar-extract-exp-2.c we change: error:

Re: [PATCH] rs6000: Better error messages for power8/9-vector builtins

2021-11-17 Thread Bill Schmidt via Gcc-patches
On 11/17/21 10:54 AM, Paul A. Clarke wrote: > On Tue, Nov 16, 2021 at 11:12:35AM -0600, Bill Schmidt via Gcc-patches wrote: >> Hi! During a previous patch review, Segher asked that I provide better >> messages when builtins are unavailable because they require both a

Re: [PATCH v2] rs6000: Test case adjustments for new builtins

2021-11-17 Thread Bill Schmidt via Gcc-patches
On 11/17/21 6:44 AM, Segher Boessenkool wrote: > Hi! > > On Tue, Nov 16, 2021 at 02:26:22PM -0600, Bill Schmidt wrote: >> Hi! I recently submitted [1] to make adjustments to test cases for the new >> builtins >> support, mostly due to error messages changing for consistency. Thanks for >>

[PATCH v2] rs6000: Test case adjustments for new builtins

2021-11-16 Thread Bill Schmidt via Gcc-patches
Hi! I recently submitted [1] to make adjustments to test cases for the new builtins support, mostly due to error messages changing for consistency. Thanks for the previous review. I've reviewed the reasons for the changes and removed unrelated changes as requested. A couple of comments: -

[PATCH v2] rs6000: Fix a handful of 32-bit built-in function problems

2021-11-16 Thread Bill Schmidt via Gcc-patches
Hi! I previously posted [1] to correct some problems with the new builtins support targeting 32-bit code gen. Based on the discussion, I've made some adjustments and would like to submit this for consideration. We eventually agreed that the strange behavior for -m32 -mpowerpc64 for certain HTM

[PATCH] rs6000: Better error messages for power8/9-vector builtins

2021-11-16 Thread Bill Schmidt via Gcc-patches
Hi! During a previous patch review, Segher asked that I provide better messages when builtins are unavailable because they require both a minimum CPU and the enablement of VSX instructions. This patch does just that. Bootstrapped and tested on powerpc64le-linux-gnu with no regressions. Is this

Re: [PATCH] rs6000: Add [power6-64] stanza to new builtin support

2021-11-16 Thread Bill Schmidt via Gcc-patches
Sorry, I forgot to CC maintainers on this one. Thanks! Bill On 11/16/21 11:06 AM, Bill Schmidt wrote: > Hi! While reviewing the recent 32-bit changes for the new builtin > infrastructure, > I realized that I needed another stanza to represent builtins requiring both > -mcpu=power6 and

[PATCH] rs6000: Add [power6-64] stanza to new builtin support

2021-11-16 Thread Bill Schmidt via Gcc-patches
Hi! While reviewing the recent 32-bit changes for the new builtin infrastructure, I realized that I needed another stanza to represent builtins requiring both -mcpu=power6 and -mpowerpc64. (There's only one of these, but nonetheless...) So this patch adds that support in the same fashion as

Re: [PATCH, rs6000] Optimization for vec_xl_sext

2021-11-16 Thread Bill Schmidt via Gcc-patches
Hi Hao Chen, I don't understand.  This patch was already approved and you committed it. :-) I know because I needed to make corresponding adjustments to the new builtins code. Thanks, Bill On 11/15/21 8:16 PM, HAO CHEN GUI wrote: > Hi, > >    The patch optimizes the code generation for

Re: [PATCH] rs6000: Fix a handful of 32-bit built-in function problems in the new support

2021-11-15 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 11/14/21 9:29 AM, Segher Boessenkool wrote: > Hi! > > On Sun, Nov 14, 2021 at 08:17:41AM -0600, Bill Schmidt wrote: >> On 11/11/21 10:50 AM, Bill Schmidt wrote: >>> On 11/11/21 7:11 AM, Segher Boessenkool wrote: void f(long x) { __builtin_set_texasr(x); } built with

Re: [PATCH] rs6000: Fix a handful of 32-bit built-in function problems in the new support

2021-11-14 Thread Bill Schmidt via Gcc-patches
On 11/11/21 10:50 AM, Bill Schmidt wrote: > On 11/11/21 7:11 AM, Segher Boessenkool wrote: >> void f(long x) { __builtin_set_texasr(x); } >> >> built with -m32 -mpowerpc64 gives (in the expand dump): >> >> void f (long int x) >> { >> long long unsigned int _1; >> >> ;; basic block 2, loop

Re: [PATCH 16/18] rs6000: Test case adjustments

2021-11-11 Thread Bill Schmidt via Gcc-patches
On 11/11/21 2:06 PM, Bill Schmidt wrote: > >>> --- a/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c >>> +++ b/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c >>> @@ -11,9 +11,9 @@ >>> /* { dg-final { scan-assembler-times {\mvrlq\M} 2 } } */ >>> /* { dg-final { scan-assembler-times

[PATCH, committed] rs6000: Fix test_mffsl.c to require Power9 support

2021-11-11 Thread Bill Schmidt via Gcc-patches
Hi! Per previous discussion, committed the following as obvious. commit 8a8458ac6bbc4263dd2c1ee55979b29fc7195794 Author: Bill Schmidt Date: Thu Nov 11 14:36:04 2021 -0600 rs6000: Fix test_mffsl.c to require Power9 support 2021-11-11 Bill Schmidt gcc/testsuite/

Re: [PATCH 16/18] rs6000: Test case adjustments

2021-11-11 Thread Bill Schmidt via Gcc-patches
Hi Segher, [Sorry to be answering these out of order...] On 11/5/21 5:37 PM, Segher Boessenkool wrote: > On Wed, Sep 01, 2021 at 11:13:52AM -0500, Bill Schmidt wrote: >> * gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust. > My favourite changelog entry! But, adjust to what? This is

Re: [PATCH] rs6000: Fix a handful of 32-bit built-in function problems in the new support

2021-11-11 Thread Bill Schmidt via Gcc-patches
Hi! On 11/11/21 7:11 AM, Segher Boessenkool wrote: > On Wed, Nov 10, 2021 at 03:28:18PM -0600, Bill Schmidt wrote: >> On 11/10/21 2:33 AM, Segher Boessenkool wrote: >>> On Tue, Nov 09, 2021 at 03:46:54PM -0600, Bill Schmidt wrote: * config/rs6000/rs6000-builtin-new.def (CMPB): Flag as

Re: [PATCH] rs6000: Fix a handful of 32-bit built-in function problems in the new support

2021-11-10 Thread Bill Schmidt via Gcc-patches
On 11/10/21 2:33 AM, Segher Boessenkool wrote: > On Tue, Nov 09, 2021 at 03:46:54PM -0600, Bill Schmidt wrote: >> Hi! Some time ago I realized I hadn't tested the new builtin support >> against 32-bit >> big-endian in quite a while. When I did, I found a handful of errors that >> needed >>

[PATCH] rs6000: Fix a handful of 32-bit built-in function problems in the new support

2021-11-09 Thread Bill Schmidt via Gcc-patches
Hi! Some time ago I realized I hadn't tested the new builtin support against 32-bit big-endian in quite a while. When I did, I found a handful of errors that needed correcting. - One builtin needs to be disabled for 32-bit. - One builtin needs to be restricted to 32-bit only. - One builtin

[PATCH] rs6000: Match recent builtins changes in new builtins support

2021-11-09 Thread Bill Schmidt via Gcc-patches
Hi! Over the last month or so, Haochen made a couple of changes to the builtins support that need to be reflected into the new builtin support: 14e355df Disable gimple folding for vector min/max without fast-math 91419baf Optimize vec_xl_sext In both cases these require almost identical

Re: [PATCH 14/18] rs6000: Debug support

2021-11-09 Thread Bill Schmidt via Gcc-patches
On 11/5/21 4:34 PM, Segher Boessenkool wrote: > On Wed, Sep 01, 2021 at 11:13:50AM -0500, Bill Schmidt wrote: >> * config/rs6000/rs6000-call.c (rs6000_debug_type): New function. >> (def_builtin): Change debug formatting for easier parsing and >> include more information. >>

Re: [PATCH 18/18] rs6000: Add escape-newline support for builtins files

2021-11-08 Thread Bill Schmidt via Gcc-patches
On 11/5/21 6:50 PM, Segher Boessenkool wrote: > Hi! > > On Wed, Sep 01, 2021 at 11:13:54AM -0500, Bill Schmidt wrote: >> +/* Escape-newline support. For readability, we prefer to allow developers >> + to use escape-newline to continue long lines to the next one. We >> + maintain a buffer of

Re: [PATCH 11/18] rs6000: Builtin expansion, part 6

2021-11-08 Thread Bill Schmidt via Gcc-patches
Sorry for the misunderstanding.  What I meant is the 6 patches entitled "Builtin expansion, part N". I still have 6-7 patches left to look at. Thanks! Bill On 11/7/21 3:05 PM, Segher Boessenkool wrote: > Hi! > > On Sun, Nov 07, 2021 at 09:28:09AM -0600, Bill Schmidt wrote: >> Thank you for all

Re: [PATCH 11/18] rs6000: Builtin expansion, part 6

2021-11-07 Thread Bill Schmidt via Gcc-patches
Hi Segher, Thank you for all of the reviews!  I appreciate your hard work and thorough study of the patches. I've updated these 6 patches and combined them into 1, pushed today.  There are still a couple of cleanups I haven't done, but I made note in the code where these are needed. Thanks

Re: [PATCH v2] libstdc++: Add support for POWER9 DARN instruction to std::random_device

2021-11-05 Thread Bill Schmidt via Gcc-patches
On 11/5/21 7:44 AM, Jonathan Wakely wrote: > On Thu, 4 Nov 2021 at 20:44, Bill Schmidt wrote: For posterity:  This was > discussed briefly on IRC, and Segher approved with some simplifications and a > request to implement a fail/retry check. Here's what I have now. No more > assembler check

Re: [PATCH v2] libstdc++: Add support for POWER9 DARN instruction to std::random_device

2021-11-04 Thread Bill Schmidt via Gcc-patches
For posterity:  This was discussed briefly on IRC, and Segher approved with some simplifications and a request to implement a fail/retry check. Thanks, Bill On 11/3/21 10:02 AM, Jonathan Wakely wrote: > On Wed, 3 Nov 2021 at 15:01, Jonathan Wakely wrote: Any feedback from POWER > maintainers

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: >> >>

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

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.

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

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

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

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: 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

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

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: 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

[PING] rs600 built-in series

2021-09-29 Thread Bill Schmidt via Gcc-patches
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: Remove builtin mask check from builtin_decl [PR102347]

2021-09-29 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 9/28/21 9:34 PM, Kewen.Lin wrote: > Hi Bill, > > Thanks for your prompt comments! > > on 2021/9/29 上午3:24, Bill Schmidt wrote: >> Hi Kewen, >> >> Although I agree that what we do now is tragically bad (and will be fixed in >> the builtin rewrite), this seems a little too cavalier to

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

2021-09-28 Thread Bill Schmidt via Gcc-patches
Hi Kewen, Although I agree that what we do now is tragically bad (and will be fixed in the builtin rewrite), this seems a little too cavalier to remove all checking during initialization without adding any checking somewhere else. :-)  We still need to check for invalid usage when the builtin

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

2021-09-24 Thread Bill Schmidt via Gcc-patches
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 incorrctly used to implement vec_cpsgn. Fix that while leaving the existing pattern in

Re: [PATCH] rs6000: Add psabi diagnostic for C++ zero-width bit field ABI change (PR102024)

2021-09-23 Thread Bill Schmidt via Gcc-patches
Hi Segher, Thanks for the review!  This is what I committed. 2021-09-23 Bill Schmidt gcc/ PR target/102024 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect zero-width bit fields and return indicator. (rs6000_discover_homogeneous_aggregate):

Re: [PATCH] rs6000: Add psabi diagnostic for C++ zero-width bit field ABI change (PR102024)

2021-09-22 Thread Bill Schmidt via Gcc-patches
Hi Jakub, On 9/22/21 11:33 AM, Jakub Jelinek wrote: On Wed, Sep 22, 2021 at 05:02:15PM +0200, Jakub Jelinek via Gcc-patches wrote: @@ -6298,7 +6298,8 @@ rs6000_aggregate_candidate (const_tree type, machine_mode *modep, return -1; count = rs6000_aggregate_candidate (TREE_TYPE

Re: [PATCH] rs6000: Add psabi diagnostic for C++ zero-width bit field ABI change (PR102024)

2021-09-22 Thread Bill Schmidt via Gcc-patches
On 9/22/21 9:35 AM, will schmidt wrote: On Tue, 2021-09-21 at 17:35 -0500, Bill Schmidt wrote: Hi! Previously zero-width bit fields were removed from structs, so that otherwise homogeneous aggregates were treated as such and passed in FPRs and VSRs. This was incorrect behavior per the ELFv2

[PATCH] rs6000: Add psabi diagnostic for C++ zero-width bit field ABI change (PR102024)

2021-09-21 Thread Bill Schmidt via Gcc-patches
Hi! Previously zero-width bit fields were removed from structs, so that otherwise homogeneous aggregates were treated as such and passed in FPRs and VSRs. This was incorrect behavior per the ELFv2 ABI. Now that these fields are no longer being removed, we generate the correct parameter passing

Re: [PATCH] rs6000: Modify the way for extra penalized cost

2021-09-17 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 9/15/21 8:14 PM, Kewen.Lin wrote: Hi, This patch follows the discussion here[1], where Segher pointed out the existing way to guard the extra penalized cost for strided/elementwise loads with a magic bound doesn't scale. The way with nunits * stmt_cost can get one much

Re: [PATCH] rs6000: Parameterize some const values for density test

2021-09-17 Thread Bill Schmidt via Gcc-patches
Hi Kewen, On 9/15/21 3:52 AM, Kewen.Lin wrote: Hi, This patch follows the discussion here[1], where Segher suggested parameterizing those exact magic constants for density heuristics, to make it easier to tweak if need. Since these heuristics are quite internal, I make these parameters as

Re: [PATCH 04/18] rs6000: Handle some recent MMA builtin changes

2021-09-17 Thread Bill Schmidt via Gcc-patches
Thanks!  I'll remove the elses in the committed patch, along with a TODO comment for the additional factoring opportunity for when I get to that stage. Thanks for all the reviews! Bill On 9/16/21 6:38 PM, Segher Boessenkool wrote: Hi! On Wed, Sep 01, 2021 at 11:13:40AM -0500, Bill Schmidt

Re: [Patch] PowerPC: Fix rs6000-gen-builtins with build != host [PR102353]

2021-09-16 Thread Bill Schmidt via Gcc-patches
Thank you, Tobias!  This looks good to me and doesn't break host=target=build bootstrap.  I appreciate the patch very much.  (I can't approve it, so please wait for Segher/David to weigh in.) Bill On 9/16/21 4:07 AM, Tobias Burnus wrote: As mentioned in https://gcc.gnu.org/PR102353 and in

Re: [PATCH 03/18] rs6000: Handle gimple folding of target built-ins

2021-09-14 Thread Bill Schmidt via Gcc-patches
Hi Will, On 9/13/21 1:42 PM, will schmidt wrote: On Wed, 2021-09-01 at 11:13 -0500, Bill Schmidt via Gcc-patches wrote: 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

Re: [PATCHv5 00/18] Replace the Power target-specific builtin machinery

2021-09-13 Thread Bill Schmidt via Gcc-patches
Ping. Message-Id: Thanks! Bill On 9/1/21 11:13 AM, Bill Schmidt via Gcc-patches wrote: Hi! 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/572231.html V3 patch series

Re: [PATCH v2] ipa-inline: Add target info into fn summary [PR102059]

2021-09-12 Thread Bill Schmidt via Gcc-patches
Hi Kewen, I'll leave the continued review of the back-end parts of this to Segher, but I do have one long-term comment.  The rs6000_builtin_info[code].mask field that you're relying on is going away as part of the built-in function rewrite.  There will be a "bifattrs" field that replaces this

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

2021-09-12 Thread Bill Schmidt via Gcc-patches
Hi Haochen, On 9/8/21 1:42 AM, HAO CHEN GUI wrote: Hi,   The patch optimized for vec_reve builtin on rs6000. For V2DI and V2DF, it is implemented by xxswapd on all targets. For V16QI, V8HI, V4SI and V4SF, it is implemented by quadword byte reverse plus halfword/word byte reverse when

Re: [PATCH] rs6000: Disable optimizing multiple xxsetaccz instructions into one xxsetaccz

2021-09-12 Thread Bill Schmidt via Gcc-patches
Hi Peter, This patch looks fine to me.  The approach to avoiding incorrect optimization is reasonable.  Maintainers? Thanks for the patch! Bill On 8/27/21 2:58 PM, Peter Bergner via Gcc-patches wrote: Fwprop will happily optimize two xxsetaccz instructions into one xxsetaccz by propagating

Re: [PATCH, rs6000] Optimization for vec_xl_sext

2021-09-10 Thread Bill Schmidt via Gcc-patches
On 9/10/21 12:45 AM, HAO CHEN GUI wrote: Bill,   Thanks so much for your advice.   I refined the patch and passed the bootstrap and regression test. Just one thing, the test case becomes unsupported on P9 if I set "{ dg-require-effective-target power10_ok }". I just want the test case to

Re: [PATCH v4] rs6000: Add load density heuristic

2021-09-09 Thread Bill Schmidt via Gcc-patches
On 9/9/21 12:19 PM, Bill Schmidt wrote: On 9/9/21 11:11 AM, Segher Boessenkool wrote: Hi! On Wed, Sep 08, 2021 at 02:57:14PM +0800, Kewen.Lin wrote: + /* If we have strided or elementwise loads into a vector, it's +possible to be bounded by latency and execution resources for +

Re: [PATCH v4] rs6000: Add load density heuristic

2021-09-09 Thread Bill Schmidt via Gcc-patches
On 9/9/21 11:11 AM, Segher Boessenkool wrote: Hi! On Wed, Sep 08, 2021 at 02:57:14PM +0800, Kewen.Lin wrote: + /* If we have strided or elementwise loads into a vector, it's +possible to be bounded by latency and execution resources for +many scalar loads. Try to account

Re: [PATCH v3] rs6000: Add load density heuristic

2021-09-03 Thread Bill Schmidt via Gcc-patches
Hi Kewen, Sorry that we lost track of this patch!  The heuristic approach looks good.  It is limited in scope and won't kick in often, and the case you're trying to account for is important. At the time you submitted this, I think reliable P10 testing wasn't possible.  Now that it is, could

Re: Ping ^ 2: [PATCH] rs6000: Expand fmod and remainder when built with fast-math [PR97142]

2021-09-03 Thread Bill Schmidt via Gcc-patches
Hi Xionghu, This looks okay to me.  Recommend maintainers approve. Thanks! Bill On 9/2/21 9:31 PM, Xionghu Luo wrote: Resend the patch that addressed Will's comments. fmod/fmodf and remainder/remainderf could be expanded instead of library call when fast-math build, which is much faster.

[PATCH 18/18] rs6000: Add escape-newline support for builtins files

2021-09-01 Thread Bill Schmidt via Gcc-patches
2021-08-19 Bill Schmidt gcc/ * config/rs6000/rs6000-builtin-new.def (VEC_INIT_V16QI): Use escape-newline support. (VEC_INIT_V4SI): Likewise. (VEC_INIT_V8HI): Likewise. (PACK_V1TI): Likewise. (DIVDEU): Likewise.

[PATCH 16/18] rs6000: Test case adjustments

2021-09-01 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 17/18] rs6000: Enable the new builtin support

2021-09-01 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 15/18] rs6000: Update altivec.h for automated interfaces

2021-09-01 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,

[PATCH 14/18] rs6000: Debug support

2021-09-01 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 13/18] rs6000: Miscellaneous uses of rs6000_builtins_decl_x

2021-09-01 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 12/18] rs6000: Update rs6000_builtin_decl

2021-09-01 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-08-31 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. (rs6000_builtin_decl): Call it. ---

[PATCH 11/18] rs6000: Builtin expansion, part 6

2021-09-01 Thread Bill Schmidt via Gcc-patches
Provide replacements for htm_spr_num and htm_expand_builtin. No logic changes are intended here, as usual. Much code was factored out into rs6000_expand_new_builtin, so the new version of htm_expand_builtin is a little tidier. Also implement the support for the "endian" and "32bit" attributes,

[PATCH 10/18] rs6000: Builtin expansion, part 5

2021-09-01 Thread Bill Schmidt via Gcc-patches
Replace mma_expand_builtin. There are no significant logic changes, just adjustments to use the new infrastructure and clean up formatting. 2021-09-01 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_mma_expand_builtin): Implement. --- gcc/config/rs6000/rs6000-call.c |

[PATCH 09/18] rs6000: Builtin expansion, part 4

2021-09-01 Thread Bill Schmidt via Gcc-patches
Consolidate into elemrev_icode some logic that is scattered throughout the old altivec_expand_builtin. Also replace functions for handling special load and store built-ins: = ldv_expand_builtin replaces altivec_expand_lv_builtin = lxvrse_expand_builtin and lxvrze_expand_builtin replace

[PATCH 08/18] rs6000: Builtin expansion, part 3

2021-09-01 Thread Bill Schmidt via Gcc-patches
Implement the replacement for cpu_expand_builtin. There are no logic changes here, just changes to use the new built-in function names and clean up some formatting. 2021-09-01 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (new_cpu_expand_builtin): Implement. ---

[PATCH 07/18] rs6000: Builtin expansion, part 2

2021-09-01 Thread Bill Schmidt via Gcc-patches
Implement rs6000_invalid_new_builtin, which issues the appropriate error message when a builtin is used when it is not enabled. Also implement rs6000_expand_ldst_mask, which just factors out the code that handles ALTIVEC_BUILTIN_MASK_FOR_LOAD in the old rs6000_expand_builtin. Finally, ensure the

[PATCH 06/18] rs6000: Builtin expansion, part 1

2021-09-01 Thread Bill Schmidt via Gcc-patches
This patch and the subsequent five patches form the meat of the improvements for this patch series. We develop a replacement for rs6000_expand_builtin and its supporting functions, which are inefficient and difficult to maintain. This patch implements rs6000_expand_new_builtin, and creates stubs

[PATCH 05/18] rs6000: Support for vectorizing built-in functions

2021-09-01 Thread Bill Schmidt via Gcc-patches
This patch just duplicates a couple of functions and adjusts them to use the new builtin names. There's no logical change otherwise. 2021-08-31 Bill Schmidt gcc/ * config/rs6000/rs6000.c (rs6000-builtins.h): New include. (rs6000_new_builtin_vectorized_function): New function.

[PATCH 03/18] rs6000: Handle gimple folding of target built-ins

2021-09-01 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 04/18] rs6000: Handle some recent MMA builtin changes

2021-09-01 Thread Bill Schmidt via Gcc-patches
Peter Bergner recently added two new builtins __builtin_vsx_lxvp and __builtin_vsx_stxvp. These happened to break a pattern in MMA builtins that I had been using to automate gimple folding of MMA builtins. Previously, every MMA function that could be folded had an associated internal function

[PATCH 02/18] rs6000: Move __builtin_mffsl to the [always] stanza

2021-09-01 Thread Bill Schmidt via Gcc-patches
I over-restricted use of __builtin_mffsl, since I was unaware that it automatically uses mffs when mffsl is not available. Paul Clarke pointed this out in discussion of his SSE 4.1 compatibility patches. 2021-08-31 Bill Schmidt gcc/ * config/rs6000/rs6000-call.c (__builtin_mffsl):

[PATCHv5 00/18] Replace the Power target-specific builtin machinery

2021-09-01 Thread Bill Schmidt via Gcc-patches
Hi! 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/572231.html V3 patch series here: https://gcc.gnu.org/pipermail/gcc-patches/2021-June/573020.html V4 patch series here:

[PATCH 01/18] rs6000: Handle overloads during program parsing

2021-09-01 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,

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

2021-08-30 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/27/21 6:07 PM, Segher Boessenkool wrote: Hi! On Thu, Jul 29, 2021 at 08:31:06AM -0500, Bill Schmidt wrote: 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

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

2021-08-30 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/30/21 4:16 PM, Paul A. Clarke wrote: On Fri, Aug 27, 2021 at 08:44:43AM -0500, Bill Schmidt via Gcc-patches wrote: On 8/23/21 2:03 PM, Paul A. Clarke wrote: + __fpscr_save.__fr = __builtin_mffsl (); As pointed out in the v1 review, __builtin_mffsl is enabled (or supposed

Re: [PATCH] Fix float128-call.c test for power8 IEEE 128 and power10.

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Mike, Thanks for this clean-up! On 8/25/21 5:09 PM, Michael Meissner wrote: From 327273dfeec5c000f3c33ca7b88ee0097fd33586 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Wed, 25 Aug 2021 00:31:35 -0400 Subject: [PATCH] Fix float128-call.c test for power8 IEEE 128 and power10. I

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Paul, Thanks for the changes!  This looks fine to me, recommend approval. Thanks, Bill On 8/23/21 2:03 PM, Paul A. Clarke wrote: Some compatibility implementations of x86 intrinsics include Power intrinsics which require POWER8. Guard them. emmintrin.h: - _mm_cmpord_pd: Remove code which

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/23/21 2:03 PM, Paul A. Clarke wrote: Function signatures and decorations match gcc/config/i386/smmintrin.h. Also, copy tests for: - _mm_cmpeq_epi64 - _mm_mullo_epi32, _mm_mul_epi32 - _mm_packus_epi32 - _mm_cmpgt_epi64 (SSE4.2) from gcc/testsuite/gcc.target/i386. 2021-08-23

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
This looks fine, recommend approval. Thanks! Bill On 8/23/21 2:03 PM, Paul A. Clarke wrote: Function signatures and decorations match gcc/config/i386/smmintrin.h. Also, copy tests for: - _mm_cvtepi8_epi16, _mm_cvtepi8_epi32, _mm_cvtepi8_epi64 - _mm_cvtepi16_epi32, _mm_cvtepi16_epi64 -

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
This looks fine, recommend approval. Thanks! Bill On 8/23/21 2:03 PM, Paul A. Clarke wrote: Copy some simple redirections from i386 , for: - _mm_test_all_zeros - _mm_test_all_ones - _mm_test_mix_ones_zeros 2021-08-20 Paul A. Clarke gcc * config/rs6000/smmintrin.h

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Paul, This looks fine to me, recommend approval. Thanks, Bill On 8/23/21 2:03 PM, Paul A. Clarke wrote: Function signatures and decorations match gcc/config/i386/smmintrin.h. Also, copy tests for _mm_min_epi8, _mm_min_epu16, _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16,

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
On 8/27/21 8:44 AM, Bill Schmidt wrote: Again, please specify where the patch was tested and whether this is for trunk, backports, etc.  Thanks!  (I know you aren't asking for backports, but in general please get in the habit of this.) Sorry, I see that you did this in the cover letter. 

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Paul, On 8/23/21 2:03 PM, Paul A. Clarke 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 checking if the new

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

2021-08-27 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/26/21 6:15 PM, Segher Boessenkool wrote: Hi! On Thu, Jul 29, 2021 at 08:31:02AM -0500, Bill Schmidt wrote: * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. (rs6000_init_builtins): Call rs6000_autoinit_builtins; skip the old

Re: [PATCH 14/34] rs6000: Add remaining overloads

2021-08-26 Thread Bill Schmidt via Gcc-patches
Hi Segher, On 8/25/21 6:27 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:31:01AM -0500, Bill Schmidt wrote: * config/rs6000/rs6000-overload.def: Add remaining overloads. +; TODO: Note that the entry for VEC_ADDE currently gets ignored in +;

Re: [PATCH, rs6000] Disable gimple fold for float or double vec_minmax when fast-math is not set

2021-08-25 Thread Bill Schmidt via Gcc-patches
Hi Haochen, Thanks for the updates!  This looks good to me; please await Segher's response. Bill On 8/25/21 2:06 AM, HAO CHEN GUI wrote: Hi,     I refined the patch according to Bill's advice. I pasted the ChangeLog and diff file here. If it doesn't work, please let me know. Thanks.

Re: [PATCH, rs6000] Disable gimple fold for float or double vec_minmax when fast-math is not set

2021-08-24 Thread Bill Schmidt via Gcc-patches
Hi Hao Chen, On 8/24/21 3:52 AM, HAO CHEN GUI wrote: Hi    The patch disables gimple fold for float or double vec_min/max builtin when fast-math is not set. Two test cases are added to verify the patch.    The attachments are the patch diff and change log file.    Bootstrapped and

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

2021-08-24 Thread Bill Schmidt via Gcc-patches
Hi Kewen, Sorry this sat in my queue for so long.  It looks like you addressed all of our concerns, so LGTM -- recommend maintainers approve. Thanks! Bill On 8/12/21 9:34 PM, Kewen.Lin wrote: Hi Segher, Thanks for the review! on 2021/8/12 下午11:10, Segher Boessenkool wrote: Hi! On Wed,

Re: [PATCH 08/34] rs6000: Add Power9 builtins

2021-08-24 Thread Bill Schmidt via Gcc-patches
On 8/24/21 10:38 AM, Segher Boessenkool wrote: Hi! On Tue, Aug 24, 2021 at 09:20:09AM -0500, Bill Schmidt wrote: On 8/23/21 4:40 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:55AM -0500, Bill Schmidt wrote: +; These things need some review to see whether they really require +;

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

2021-08-24 Thread Bill Schmidt via Gcc-patches
On 8/23/21 5:15 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:56AM -0500, Bill Schmidt wrote: * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize various pointer type nodes. * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum

Re: [PATCH 08/34] rs6000: Add Power9 builtins

2021-08-24 Thread Bill Schmidt via Gcc-patches
On 8/23/21 4:40 PM, Segher Boessenkool wrote: On Thu, Jul 29, 2021 at 08:30:55AM -0500, Bill Schmidt wrote: 2021-06-15 Bill Schmidt * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, and power9-64 stanzas. +; These things need some review to see whether they

[PATCH, rs6000, committed] Fix AIX bootstrap (don't call asprintf)

2021-08-23 Thread Bill Schmidt via Gcc-patches
Hi, My recent commit broke bootstrap for AIX because I was calling asprintf without pulling it in from libiberty.h.  Unfortunately, there is a name collision between libiberty.h and string.h that I don't immediately know how to resolve, so rather than fight it I've just reverted to using

<    1   2   3   4   5   6   7   >