Ping: Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-12-11 Thread Alan Lawrence
So I'm afraid I'm not going to get involved in a discussion about CANNOT_CHANGE_MODE_CLASS on RS6000, and what you might want to do there - sorry, but I don't think I can really contribute anything there. However, I *am* trying to migrate all platforms off the old reduc_xxx optabs to the new

Re: Ping: Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-12-11 Thread Alan Lawrence
Sorry - it works exactly as the current optab/expander *in the v2df case*, but is the same as the previous version of the patch in the other cases. --Alan Alan Lawrence wrote: So I'm afraid I'm not going to get involved in a discussion about CANNOT_CHANGE_MODE_CLASS on RS6000, and what you

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-12 Thread Segher Boessenkool
On Tue, Nov 11, 2014 at 08:27:22PM -0500, Michael Meissner wrote: Before the patch, the final reduction used *vsx_reduc_splus_v2df; after the patch, it is *vsx_reduc_plus_v2df_scalar. The former does a vector add, the latter a float add. And it uses the same pseudoregister for the

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-12 Thread Alan Lawrence
So I'm no expert on RS6000 here, but following on from Segher's observation about the change in pattern...so the difference in 'expand' is exactly that, a vsx_reduc_splus_v2df followed by a vec_extract to DF, becomes a vsx_reduc_splus_v2df_scalar - as I expected the combiner to produce by

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-12 Thread Alan Lawrence
Have run check-gcc on gcc110.fsffrance.org (powerpc64-unknown-linux-gnu) using this snippet on top of original patch; no regressions. Alan Lawrence wrote: So I'm no expert on RS6000 here, but following on from Segher's observation about the change in pattern...so the difference in 'expand' is

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-12 Thread Michael Meissner
On Wed, Nov 12, 2014 at 03:26:35AM -0600, Segher Boessenkool wrote: On Tue, Nov 11, 2014 at 08:27:22PM -0500, Michael Meissner wrote: Before the patch, the final reduction used *vsx_reduc_splus_v2df; after the patch, it is *vsx_reduc_plus_v2df_scalar. The former does a vector add, the

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-11 Thread Michael Meissner
On Tue, Nov 11, 2014 at 01:10:01AM -0600, Segher Boessenkool wrote: On Mon, Nov 10, 2014 at 05:36:24PM -0500, Michael Meissner wrote: However, the double pattern is completely broken. This cannot go in. [snip] It is unacceptable to have to do the inner loop doing a load, vector add,

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-10 Thread Michael Meissner
On Fri, Oct 24, 2014 at 01:06:41PM +0100, Alan Lawrence wrote: This migrates the reduction patterns in altivec.md and vector.md to the new names. I've not touched paired.md as I wasn't really sure how to fix that (how do I vec_extractv2sf ?), moreover the testing I did didn't seem to exercise

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-10 Thread Segher Boessenkool
On Mon, Nov 10, 2014 at 05:36:24PM -0500, Michael Meissner wrote: However, the double pattern is completely broken. This cannot go in. [snip] It is unacceptable to have to do the inner loop doing a load, vector add, and store in the loop. Before the patch, the final reduction used

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-07 Thread Alan Lawrence
Ah I see now! Thank you for explaining that bit, I was a bit puzzled when I saw it, but it makes sense now! Cheers, Alan Bill Schmidt wrote: On Thu, 2014-11-06 at 16:44 +, Alan Lawrence wrote: Hmmm. I am a little surprised by your mention of saturation points as I would not expect any

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-06 Thread Alan Lawrence
Hmmm. I am a little surprised by your mention of saturation points as I would not expect any variety of reduc_plus to be a saturating operation??? A. Bill Schmidt wrote: On Fri, 2014-10-24 at 19:49 -0400, David Edelsohn wrote: On Fri, Oct 24, 2014 at 8:06 AM, Alan Lawrence

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-06 Thread Bill Schmidt
On Thu, 2014-11-06 at 16:44 +, Alan Lawrence wrote: Hmmm. I am a little surprised by your mention of saturation points as I would not expect any variety of reduc_plus to be a saturating operation??? I wouldn't either, but the underlying vsum4ubs and vsum4sbs instructions used in these

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-11-03 Thread Bill Schmidt
On Fri, 2014-10-24 at 19:49 -0400, David Edelsohn wrote: On Fri, Oct 24, 2014 at 8:06 AM, Alan Lawrence alan.lawre...@arm.com wrote: This migrates the reduction patterns in altivec.md and vector.md to the new names. I've not touched paired.md as I wasn't really sure how to fix that (how do

[PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-10-24 Thread Alan Lawrence
This migrates the reduction patterns in altivec.md and vector.md to the new names. I've not touched paired.md as I wasn't really sure how to fix that (how do I vec_extractv2sf ?), moreover the testing I did didn't seem to exercise any of those patterns (iow: I'm not sure what would be an

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-10-24 Thread Alan Lawrence
Ooops, attached.commit e48d59399722ce8316d4b1b4f28b40d87b1193fa Author: Alan Lawrence alan.lawre...@arm.com Date: Tue Oct 7 15:28:47 2014 +0100 PowerPC v2 (but not paired.md) diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index 02ea142..92bb5d0 100644 ---

Re: [PATCH 10/11][RS6000] Migrate reduction optabs to reduc_..._scal

2014-10-24 Thread David Edelsohn
On Fri, Oct 24, 2014 at 8:06 AM, Alan Lawrence alan.lawre...@arm.com wrote: This migrates the reduction patterns in altivec.md and vector.md to the new names. I've not touched paired.md as I wasn't really sure how to fix that (how do I vec_extractv2sf ?), moreover the testing I did didn't seem