Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-05-18 Thread Andrew Stubbs
On 16/05/12 17:43, Ramana Radhakrishnan wrote: OK (if no regressions). Cross tested with no regressions, and committed. Thanks Andrew

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-05-16 Thread Ramana Radhakrishnan
extern const struct tune_params *current_tune; extern int vfp3_const_double_for_fract_bits (rtx); + +extern void arm_emit_coreregs_64bit_shift (enum rtx_code, rtx, rtx, rtx, rtx, +rtx); #endif /* RTX_CODE */ #endif /* ! GCC_ARM_PROTOS_H */ diff

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-05-16 Thread Andrew Stubbs
On 16/05/12 11:25, Ramana Radhakrishnan wrote: Ok with those changes. Hi Ramana, Here's an update rebased and modified as requested. Can you please confirm that the comments explain what you wanted to know, and then I will commit it. Thanks Andrew 2012-05-16 Andrew Stubbs

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-05-16 Thread Ramana Radhakrishnan
On 16 May 2012 17:09, Andrew Stubbs a...@codesourcery.com wrote: On 16/05/12 11:25, Ramana Radhakrishnan wrote: Ok with those changes. Hi Ramana, Here's an update rebased and modified as requested. Can you please confirm that the comments explain what you wanted to know, and then I will

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-17 Thread Andrew Stubbs
On 16/02/12 15:33, Andrew Stubbs wrote: OK for 4.8? I forgot to address Ramana's comment about optimize_size. This update fixes that and leaves everything else untouched. OK? Andrew 2012-02-17 Andrew Stubbs a...@codesourcery.com gcc/ * config/arm/arm-protos.h

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-16 Thread Andrew Stubbs
On 11/02/12 01:11, Richard Henderson wrote: On 02/08/2012 08:28 AM, Andrew Stubbs wrote: Unfortunately, these don't work in Thumb mode (no IT block), and I'd have to add arith-shift variants, I think, for ARM mode to work. H ... I'll try again. Does it work to simply use branches

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-10 Thread Richard Henderson
On 02/08/2012 08:28 AM, Andrew Stubbs wrote: Unfortunately, these don't work in Thumb mode (no IT block), and I'd have to add arith-shift variants, I think, for ARM mode to work. H ... I'll try again. Does it work to simply use branches initially, and rely on post-reload ifcvt to

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Andrew Stubbs
On 07/02/12 22:19, Ramana Radhakrishnan wrote: I find it interesting that cond_exec's in this form survive all the way till reload and work. AFAIK we could never have cond_exec's before reload . The documentation doesn't appear to mention this, therefore I would like to see if the cond_exec's

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Bernd Schmidt
On 02/07/2012 11:33 PM, Steven Bosscher wrote: On Tue, Feb 7, 2012 at 11:19 PM, Ramana Radhakrishnan ramana.radhakrish...@linaro.org wrote: Hi Andrew I find it interesting that cond_exec's in this form survive all the way till reload and work. AFAIK we could never have cond_exec's before

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Richard Guenther
On Wed, Feb 8, 2012 at 1:02 PM, Bernd Schmidt ber...@codesourcery.com wrote: On 02/07/2012 11:33 PM, Steven Bosscher wrote: On Tue, Feb 7, 2012 at 11:19 PM, Ramana Radhakrishnan ramana.radhakrish...@linaro.org wrote: Hi Andrew I find it interesting that cond_exec's in this form survive all

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Bernd Schmidt
On 02/08/2012 01:12 PM, Richard Guenther wrote: On Wed, Feb 8, 2012 at 1:02 PM, Bernd Schmidt ber...@codesourcery.com wrote: On 02/07/2012 11:33 PM, Steven Bosscher wrote: On Tue, Feb 7, 2012 at 11:19 PM, Ramana Radhakrishnan ramana.radhakrish...@linaro.org wrote: Hi Andrew I find it

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Richard Guenther
On Wed, Feb 8, 2012 at 1:41 PM, Bernd Schmidt ber...@codesourcery.com wrote: On 02/08/2012 01:12 PM, Richard Guenther wrote: On Wed, Feb 8, 2012 at 1:02 PM, Bernd Schmidt ber...@codesourcery.com wrote: On 02/07/2012 11:33 PM, Steven Bosscher wrote: On Tue, Feb 7, 2012 at 11:19 PM, Ramana

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-08 Thread Andrew Stubbs
On 08/02/12 11:18, Andrew Stubbs wrote: I've tried to do this, but it can't be done by a straight translation because we don't have the insns available to do it. As I understand it, all predicable instructions automatically get a cond_exec variant, but the only if_then_else I could find (it's

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-07 Thread Ramana Radhakrishnan
Hi Andrew I find it interesting that cond_exec's in this form survive all the way till reload and work. AFAIK we could never have cond_exec's before reload . The documentation doesn't appear to mention this, therefore I would like to see if the cond_exec's can be recast as if_then_else forms

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-02-07 Thread Steven Bosscher
On Tue, Feb 7, 2012 at 11:19 PM, Ramana Radhakrishnan ramana.radhakrish...@linaro.org wrote: Hi Andrew I find it interesting that cond_exec's in this form survive all the way till reload and work.  AFAIK we could never have cond_exec's before reload . There is nothing wrong per-se with

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-01-31 Thread Andrew Stubbs
On 30/01/12 15:25, Richard Earnshaw wrote: What's the impact of this on -Os? At present we fall back to the libcalls, but I can't immediately see how the new code would do that. Gut feeling is that shift by a constant is always worth inlining at -Os, but shift by a register isn't. Ah, I

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-01-30 Thread Richard Earnshaw
On 27/01/12 16:07, Andrew Stubbs wrote: Hi all, This patch introduces a new, more efficient set of DImode shift sequences for values stored in core-registers (as opposed to VFP/NEON registers). The new sequences take advantage of knowledge of what the ARM instructions do with

[PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-01-27 Thread Andrew Stubbs
Hi all, This patch introduces a new, more efficient set of DImode shift sequences for values stored in core-registers (as opposed to VFP/NEON registers). The new sequences take advantage of knowledge of what the ARM instructions do with out-of-range shift amounts. The following are