Re: [AArch64] Generate load-pairs when the last load clobbers the address register [2/2]

2018-07-19 Thread Jackson Woodruff
Hi Richard, On 07/12/2018 05:35 PM, Richard Earnshaw (lists) wrote: On 11/07/18 17:48, Jackson Woodruff wrote: Hi Sudi, On 07/10/2018 02:29 PM, Sudakshina Das wrote: Hi Jackson On Tuesday 10 July 2018 09:37 AM, Jackson Woodruff wrote: Hi all, This patch resolves PR86014.  It does so

Re: [AArch64] Generate load-pairs when the last load clobbers the address register [2/2]

2018-07-11 Thread Jackson Woodruff
Hi Sudi, On 07/10/2018 02:29 PM, Sudakshina Das wrote: Hi Jackson On Tuesday 10 July 2018 09:37 AM, Jackson Woodruff wrote: Hi all, This patch resolves PR86014.  It does so by noticing that the last load may clobber the address register without issue (regardless of where it exists

Re: [AArch64] Use arrays and loops rather than numbered variables in aarch64_operands_adjust_ok_for_ldpstp [1/2]

2018-07-11 Thread Jackson Woodruff
Hi Sudi, Thanks for the review. On 07/10/2018 10:56 AM, Sudakshina wrote: Hi Jackson -  if (!MEM_P (mem_1) || aarch64_mem_pair_operand (mem_1, mode)) +  if (!MEM_P (mem[1]) || aarch64_mem_pair_operand (mem[1], mode)) mem_1 == mem[1]? Oops, yes... That should be mem[0]. return

Re: [AArch64] Use arrays and loops rather than numbered variables in aarch64_operands_adjust_ok_for_ldpstp [1/2]

2018-07-11 Thread Jackson Woodruff
Hi Kyrill, On 07/10/2018 10:55 AM, Kyrill Tkachov wrote: Hi Jackson, On 10/07/18 09:37, Jackson Woodruff wrote: Hi all, This patch removes some duplicated code.  Since this method deals with four loads or stores, there is a lot of duplicated code that can easily be replaced with smaller

[AArch64] Generate load-pairs when the last load clobbers the address register [2/2]

2018-07-10 Thread Jackson Woodruff
/aarch64/ldp_stp_10.c) now passes. Bootstrap and regtest OK. OK for trunk? Jackson Changelog: gcc/ 2018-06-25  Jackson Woodruff      PR target/86014     * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):     Remove address clobber check on last register. diff

[AArch64] Use arrays and loops rather than numbered variables in aarch64_operands_adjust_ok_for_ldpstp [1/2]

2018-07-10 Thread Jackson Woodruff
Hi all, This patch removes some duplicated code.  Since this method deals with four loads or stores, there is a lot of duplicated code that can easily be replaced with smaller loops. Regtest and bootstrap OK. OK for trunk? Thanks, Jackson Changelog: gcc/ 2018-06-28  Jackson Woodruff

[MAINTAINERS, committed] Add myself to write after approval

2018-06-28 Thread Jackson Woodruff
Add myself to write after approval in MAINTAINERS. Committed as r262216. Jackson Index: ChangeLog === --- ChangeLog (revision 262215) +++ ChangeLog (working copy) @@ -1,3 +1,7 @@ +2018-06-28 Jackson Woodruff

[AArch64] Improve LDP/STP generation that requires a base register

2017-09-14 Thread Jackson Woodruff
of loads/stores that are valid, and extending the range that the LDP/STP addresses can reach. This patch is based on https://gcc.gnu.org/ml/gcc-patches/2017-09/msg00741.html OK for trunk? Jackson ChangeLog: gcc/ 2017-08-09 Jackson Woodruff <jackson.woodr...@arm.com> * aar

Re: [AArch64, PATCH] Improve Neon store of zero

2017-09-13 Thread Jackson Woodruff
Hi, I have addressed the issues you raised below. Is the amended patch OK for trunk? Thanks, Jackson. On 09/12/2017 05:28 PM, James Greenhalgh wrote: On Wed, Sep 06, 2017 at 10:02:52AM +0100, Jackson Woodruff wrote: Hi all, I've attached a new patch that addresses some of the issues

Re: [PATCH] Factor out division by squares and remove division around comparisons (0/2)

2017-09-13 Thread Jackson Woodruff
On 09/13/2017 04:45 PM, Jeff Law wrote: On 09/06/2017 03:54 AM, Jackson Woodruff wrote: Hi all, This patch is split from part (1/2). It includes the patterns that have been moved out of fold-const.c It also removes an (almost entirely) redundant pattern: (A / C1) +- (A / C2

[Aarch64, Patch] Update failing testcase pr62178.c

2017-09-13 Thread Jackson Woodruff
ChangeLog: gcc/testsuite 2017-09-13 Jackson Woodruff <jackson.woodr...@arm.com> * gcc.target/aarch64/pr62178.c: Updated testcase to scan for two ldrs and an mla. diff --git a/gcc/testsuite/gcc.target/aarch64/pr62178.c b/gcc/testsuite/gcc.target/aarch64/pr62178.c

Re: [AArch64, patch] Refactor of aarch64-ldpstp.md

2017-09-13 Thread Jackson Woodruff
Hi, Since I rebased the patch that this is based on, I have also rebased this patch. Jackson. On 09/12/2017 07:15 PM, Jackson Woodruff wrote: Hi all, This patch removes a lot of duplicated code in aarch64-ldpstp.md. The patterns that did not previously generate a base register now do

Re: [AArch64] Merge stores of D register values of different modes

2017-09-13 Thread Jackson Woodruff
On 09/12/2017 07:32 PM, Richard Sandiford wrote: Thanks for doing this, looks good to me FWIW. I was just wondering: Jackson Woodruff <jackson.woodr...@foss.arm.com> writes: @@ -14712,6 +14712,11 @@ aarch64_operands_ok_for_ldpstp (rtx *operands, bool load, if (!rtx_equal_p (

Re: [PATCH] Factor out division by squares and remove division around comparisons (0/2)

2017-09-13 Thread Jackson Woodruff
On 09/12/2017 11:43 PM, Jeff Law wrote: On 09/06/2017 03:54 AM, Jackson Woodruff wrote: Hi all, This patch is split from part (1/2). It includes the patterns that have been moved out of fold-const.c It also removes an (almost entirely) redundant pattern: (A / C1) +- (A / C2) -> A *

[AArch64, patch] Refactor of aarch64-ldpstp.md

2017-09-12 Thread Jackson Woodruff
it. Bootstrap and regtest OK on AArch64. OK for trunk? Jackson. gcc/ 2017-09-07 Jackson Woodruff <jackson.woodr...@arm.com> * config/aarch64/aarch64-ldpstp.md: Replace uses of aarch64_mem_pair_operand with memory_operand and delete operand swappin

[AArch64] Merge stores of D register values of different modes

2017-09-06 Thread Jackson Woodruff
single store pair instruction rather than two `str` instructions. Bootstrap and testsuite run OK. OK for trunk? Jackson gcc/ 2017-07-21 Jackson Woodruff <jackson.woodr...@arm.com> * config/aarch64/aarch64.md: New patterns to generate stp and ldp. * config/aarch64

Re: [PATCH] Factor out division by squares and remove division around comparisons (2/2)

2017-09-06 Thread Jackson Woodruff
Hi all, A minor improvement came to mind while updating other parts of this patch. I've updated a testcase to make it more clear and a condition now uses a call to is_division_by rather than manually checking those conditions. Jackson On 08/30/2017 05:32 PM, Jackson Woodruff wrote: Hi all

Re: [PATCH] Factor out division by squares and remove division around comparisons (1/2)

2017-09-06 Thread Jackson Woodruff
On 08/30/2017 01:46 PM, Richard Biener wrote: On Wed, Aug 30, 2017 at 11:46 AM, Jackson Woodruff <jackson.woodr...@foss.arm.com> wrote: On 08/29/2017 01:13 PM, Richard Biener wrote: On Tue, Aug 29, 2017 at 1:35 PM, Jackson Woodruff <jackson.woodr...@foss.arm.com> wrote: Hi all

[PATCH] Factor out division by squares and remove division around comparisons (0/2)

2017-09-06 Thread Jackson Woodruff
required funsafe-math-optimizations. To adjust for this case, the testcase has been updated to require O1 so that the optimization is still performed. This pattern is moved verbatim into match.pd: (A / C) +- (B / C) -> (A +- B) / C. OK for trunk? Jackson gcc/ 2017-08-30 Jack

Re: [AArch64, PATCH] Improve Neon store of zero

2017-09-06 Thread Jackson Woodruff
te_address_p with strict_p set to false and uses DImode for the mode to pass. OK for trunk? Jackson Wilco ChangeLog: gcc/ 2017-08-29 Jackson Woodruff <jackson.woodr...@arm.com> * config/aarch64/constraints.md (Umq): New constraint. * config/aarch64/aarch64-simd.m

Re: [PATCH] Factor out division by squares and remove division around comparisons (2/2)

2017-08-30 Thread Jackson Woodruff
, 2017 at 4:10 PM, Jackson Woodruff <jackson.woodr...@foss.arm.com> wrote: Hi all, The patch implements the some of the division optimizations discussed in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026 . We now reassociate (as discussed in the bug report): x / (y * y) -> x

Re: [PATCH] Factor out division by squares and remove division around comparisons (1/2)

2017-08-30 Thread Jackson Woodruff
On 08/29/2017 01:13 PM, Richard Biener wrote: On Tue, Aug 29, 2017 at 1:35 PM, Jackson Woodruff <jackson.woodr...@foss.arm.com> wrote: Hi all, Apologies again to those CC'ed, who (again) received this twice. Joseph: Yes you are correct. I misread the original thread, now fixed. Richard

Re: [PATCH] Factor out division by squares and remove division around comparisons (1/2)

2017-08-29 Thread Jackson Woodruff
Hi all, Apologies again to those CC'ed, who (again) received this twice. Joseph: Yes you are correct. I misread the original thread, now fixed. Richard: I've moved the optimizations out of fold-const.c. One has been replicated in match.pd, and the other (x / C +- y / C -> (x +- y) / C) I've

Re: [AArch64, PATCH] Improve Neon store of zero

2017-08-16 Thread Jackson Woodruff
Hi Richard, I have changed the condition as you suggest below. OK for trunk? Jackson. On 08/11/2017 02:56 PM, Richard Earnshaw (lists) wrote: On 10/08/17 14:12, Jackson Woodruff wrote: Hi all, This patch changes patterns in aarch64-simd.md to replace moviv0.4s, 0 strq0

[PATCH] Factor out division by squares and remove division around comparisons (2/2)

2017-08-10 Thread Jackson Woodruff
ath-optimizations. Bootstrapped and regtested with part (1/2). OK for trunk? Jackson gcc/ 2017-08-03 Jackson Woodruff <jackson.woodr...@arm.com> PR 71026/tree-optimization * tree-ssa-math-opts (is_division_by_square, is_square_of, insert_sqaure_reciproc

Re: [PATCH] Factor out division by squares and remove division around comparisons (1/2)

2017-08-10 Thread Jackson Woodruff
And have now attached that patch. Jackson On 08/10/2017 03:09 PM, Jackson Woodruff wrote: Hi all, The patch implements the division opitmizations discussed in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026 . The implemented change differs slightly from the proposed one in that we re

[PATCH] Factor out division by squares and remove division around comparisons (1/2)

2017-08-10 Thread Jackson Woodruff
his twice, I accidentally sent this from an email gcc-patches doesn't accept) Jackson gcc/ 2017-08-03 Jackson Woodruff <jackson.woodr...@arm.com> PR 71026/tree-optimization * match.pd: New patterns. gcc/testsuite 2017-08-03 Jackson Woodruff <jackson.woodr...@arm.com>

[AArch64, PATCH] Improve Neon store of zero

2017-08-10 Thread Jackson Woodruff
and regtested on aarch64 with no regressions. OK for trunk? Jackson gcc/ 2017-08-09 Jackson Woodruff <jackson.woodr...@arm.com> * aarch64-simd.md (mov): No longer force zero immediate into register. (*aarch64_simd_mov): Add new case for stp using zero imm

[AArch64, Patch] Generate MLA when multiply + add vector by scalar

2017-07-21 Thread Jackson Woodruff
for a multiply followed by a subtract of vectors with an integer operand on the multiply. Also add testcases for this. Bootstrap and testsuite run on aarch64. OK for trunk? Jackson Changelog entry: gcc/ 2017-06-06 Jackson Woodruff <jackson.woodr...@arm.com> * config/aarch64/a

Re: [Patch][Aarch64] Refactor comments in aarch64_print_operand

2017-07-14 Thread Jackson Woodruff
Hi James, I have addressed the issues below. OK for trunk? Jackson On 07/13/2017 05:14 PM, James Greenhalgh wrote: On Thu, Jul 13, 2017 at 04:35:55PM +0100, Jackson Woodruff wrote: Hi James, I've addressed the issues discussed below. OK for trunk? I one last comment, otherwise, this looks

Re: [Patch][Aarch64] Refactor comments in aarch64_print_operand

2017-07-13 Thread Jackson Woodruff
Hi James, I've addressed the issues discussed below. OK for trunk? Jackson On 07/13/2017 10:03 AM, James Greenhalgh wrote: On Tue, Jul 11, 2017 at 05:29:11PM +0100, Jackson Woodruff wrote: Hi all, This patch refactors comments in config/aarch64/aarch64.c aarch64_print_operand to provide

[Patch][Aarch64] Refactor comments in aarch64_print_operand

2017-07-11 Thread Jackson Woodruff
Hi all, This patch refactors comments in config/aarch64/aarch64.c aarch64_print_operand to provide a table of aarch64 specific formating options. I've tested the patch with a bootstrap and testsuite run on aarch64. OK for trunk? Changelog: gcc/ 2017-07-04 Jackson Woodruff <jackson.wo