RE: [PATCH, AArch64] Fix macro in vdup_lane_2 test case

2014-05-20 Thread Ian Bolton
> From: Marcus Shawcroft [mailto:marcus.shawcr...@gmail.com] > Sent: 19 May 2014 11:45 > To: Ian Bolton > Cc: gcc-patches > Subject: Re: [PATCH, AArch64] Fix macro in vdup_lane_2 test case > > On 8 May 2014 18:41, Ian Bolton wrote: > > > gcc/testsuite &g

RE: [PATCH, AArch64] Fix macro in vdup_lane_2 test case

2014-05-16 Thread Ian Bolton
Ping. This may well be classed as "obvious", but that's not obvious to me, so I request a review. Many thanks. > -Original Message- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Ian Bolton > Sent: 08 May 2

RE: [PATCH, AArch64] Use MOVN to generate 64-bit negative immediates where sensible

2014-05-16 Thread Ian Bolton
Ping. This should be relatively simple to review. Many thanks. > -Original Message- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Ian Bolton > Sent: 08 May 2014 18:36 > To: gcc-patches > Subject: [PATCH, AArch64] Use MOVN

[PATCH, AArch64] Implement HARD_REGNO_CALLER_SAVE_MODE

2014-05-12 Thread Ian Bolton
verified impact on a number of examples. OK for trunk? Cheers, Ian 2014-05-12 Ian Bolton * config/aarch64/aarch64-protos.h (aarch64_hard_regno_caller_save_mode): New prototype. * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode): New function. * config

[PATCH, AArch64] Fix macro in vdup_lane_2 test case

2014-05-08 Thread Ian Bolton
This patch fixes a defective macro definition, based on correct definition in similar testcases. The test currently passes through luck rather than correctness. OK for commit? Cheers, Ian 2014-05-08 Ian Bolton gcc/testsuite * gcc.target/aarch64/vdup_lane_2.c (force_simd): Emit an

[PATCH, AArch64] Use MOVN to generate 64-bit negative immediates where sensible

2014-05-08 Thread Ian Bolton
does the immediate in two instructions is still used.) Tested on standard gcc regressions and the attached test case. OK for commit? Cheers, Ian 2014-05-08 Ian Bolton gcc/ * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use MOVN when top-most half-word (and only

RE: [PATCH, ARM] Suppress Redundant Flag Setting for Cortex-A15

2014-04-24 Thread Ian Bolton
> Hi, > > On 28 January 2014 13:10, Ramana Radhakrishnan > wrote: > > On Fri, Jan 24, 2014 at 5:16 PM, Ian Bolton > wrote: > >> Hi there! > >> > >> An existing optimisation for Thumb-2 converts t32 encodings to > >> t16 encodings to reduc

RE: [PATCH, ARM] Optimise NotDI AND/OR ZeroExtendSI for ARMv7A

2014-03-27 Thread Ian Bolton
> -Original Message- > From: Richard Earnshaw > Sent: 21 March 2014 13:57 > To: Ian Bolton > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH, ARM] Optimise NotDI AND/OR ZeroExtendSI for ARMv7A > > On 19/03/14 16:53, Ian Bolton wrote: > > This is a

[PATCH, ARM] Optimise NotDI AND/OR ZeroExtendSI for ARMv7A

2014-03-19 Thread Ian Bolton
:SI)) --> the top half becomes zero. I've added test cases for both of these and also the existing anddi_notdi patterns. The tests all pass. Full regression runs passed. OK for stage 1? Cheers, Ian 2014-03-19 Ian Bolton gcc/ * config/arm/arm.md (*anddi_notdi_zesidi):

[PATCH] Keep -ffp-contract=fast by default if we have -funsafe-math-optimizations

2014-03-10 Thread Ian Bolton
ndard regressions passed. OK for trunk or stage 1? Cheers, Ian 10-03-2014 Ian Bolton * gcc/c-family/c-opts.c (c_common_post_options): Don't override -ffp-contract=fast if unsafe-math-optimizations is on.diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c index b7478f3..92ba

[PATCH, AArch64] Define __ARM_NEON by default

2014-02-24 Thread Ian Bolton
not using general regs only. Tested on simple testcase to ensure __ARM_NEON was defined. OK for trunk? Cheers, Ian 2014-02-24 Ian Bolton * config/aarch64/aarch64.h: Define __ARM_NEON by default if we are not using general regs only.diff --git a/gcc/config/aarch64/aarch64.h b/

[PATCH, ARM] Support ORN for DImode

2014-02-19 Thread Ian Bolton
ks for correct number of ORN instructions in the assembly. Regressions passed. OK for stage 1? 2014-02-19 Ian Bolton gcc/ * config/arm/thumb2.md (*iordi_notdi_di): New pattern. (*iordi_notzesidi): New pattern. (*iordi_notsesidi_di): New pattern. testsuite/ * gcc.

RE: [PATCH, ARM] Skip pr59858.c test for -mfloat-abi=hard

2014-02-14 Thread Ian Bolton
. > > > > OK for commit? > > > > Cheers, > > Ian > > > > > > 2014-02-13 Ian Bolton > > > > testsuite/ > > * gcc.target/arm/pr59858.c: Skip test if -mfloat-abi=hard. > > > > > > pr59858-skip-if-hard-fl

[PATCH, ARM] Skip pr59858.c test for -mfloat-abi=hard

2014-02-13 Thread Ian Bolton
Hi, The pr59858.c testcase explicitly sets -msoft-float which is incompatible with our -mfloat-abi=hard variant. This patch therefore should not be run if you have -mfloat-abi=hard. Tested with both variations for arm-none-eabi build. OK for commit? Cheers, Ian 2014-02-13 Ian Bolton

[PATCH] Make pr59597 test PIC-friendly

2014-02-05 Thread Ian Bolton
stage 1? Cheers, Ian 2014-02-05 Ian Bolton testsuite/ * gcc.dg/tree-ssa/pr59597.c: Make called function static so that expected outcome works for PIC variants too.diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c b/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c index 814d299

[PATCH, ARM] Suppress Redundant Flag Setting for Cortex-A15

2014-01-24 Thread Ian Bolton
regressions and performance has improved for the workloads tested on cortex-a15. (It might be beneficial to other processors too, but that has not been investigated yet.) OK for stage 1? Cheers, Ian 2014-01-24 Ian Bolton gcc/ * config/arm/arm-protos.h (tune_params): New struct

RE: [PATCH, ARM] Implement __builtin_trap

2013-12-06 Thread Ian Bolton
VM for practical purposes. (The Thumb > > encoding in Mark's patch already matched LLVM.) > > > > > > OK for trunk? > > > > Cheers, > > Ian > > > > > > 2013-12-04 Ian Bolton > >Mark Mitchell > > > > gcc/

RE: [PATCH, ARM] Implement __builtin_trap

2013-12-04 Thread Ian Bolton
> On Wed, 4 Dec 2013, Ian Bolton wrote: > > > The main update, other than cosmetic differences, is that we've > chosen > > the same ARM encoding as LLVM for practical purposes. (The Thumb > > encoding in Mark's patch already matched LLVM.) > > Do t

[PATCH, ARM] Implement __builtin_trap

2013-12-04 Thread Ian Bolton
update, other than cosmetic differences, is that we've chosen the same ARM encoding as LLVM for practical purposes. (The Thumb encoding in Mark's patch already matched LLVM.) OK for trunk? Cheers, Ian 2013-12-04 Ian Bolton Mark Mitchell gcc/ * config/arm/ar

[PATCH, AArch64] Improve handling of constants destined for FP_REGS

2013-09-04 Thread Ian Bolton
NO_REGS (which leads to literal pool) is returned, when the immediate can't be put directly into FP_REGS. A testcase is included. Linux regressions all came back good. OK for trunk? Cheers, Ian 2013-09-04 Ian Bolton gcc/ * config/aarch64/aarch64.c (aarch64_preferred_reload_

[PATCH, AArch64] Add secondary reload for immediates into FP_REGS

2013-07-30 Thread Ian Bolton
for trunk? Cheers, Ian 2013-07-30 Ian Bolton gcc/ * config/aarch64/aarch64.c (aarch64_secondary_reload)): Handle constant into FP_REGs that is not valid for MOVI. testsuite/ * gcc.target/aarch64/movdi_1.c: New test.diff --git a/gcc/config/aarch64/aarch64.c b/gcc

[PATCH, AArch64] Support NEG in vector registers for DI and SI mode

2013-07-23 Thread Ian Bolton
Support added for scalar NEG instruction in vector registers. Execution testcase included. Tested on usual GCC Linux regressions. OK for trunk? Cheers, Ian 2013-07-23 Ian Bolton gcc/ * config/aarch64/aarch64-simd.md (neg2): Offer alternative that uses vector registers

RE: [PATCH, AArch64] Add vabs_s64 intrinsic

2013-07-19 Thread Ian Bolton
> On 12 Jul 2013, at 19:49, Ian Bolton wrote: > > > > > 2013-07-12 Ian Bolton > > > > gcc/ > > * config/aarch64/arm_neon.h (vabs_s64): New function. > > > > testsuite/ > > * gcc.target/aarch64/scalar_intrinsics.c (test_vabs_s64)

[PATCH, AArch64] Add vabs_s64 intrinsic

2013-07-12 Thread Ian Bolton
This patch implements the following intrinsic: int64x1_t vabs_s64 (int64x1 a) It uses __builtin_llabs(), which will lead to "abs Dn, Dm" being generated for this now that my other patch has been committed. Test case added to scalar_intrinsics.c. OK for trunk? Cheers, Ian 2013-

[PATCH, AArch64] Support BFXIL in the backend

2013-06-27 Thread Ian Bolton
Hi, We don't currently generate BFXIL on AArch64. This patch addresses that, by adding a pattern in the backend. It comes with test cases for little and big endian. Tested on little-endian linux and bare-metal, and big-endian linux. OK for trunk? Cheers, Ian 2013-06-27 Ian Bolton

[PATCH, AArch64] Support abs standard pattern for DI mode

2013-06-25 Thread Ian Bolton
Hi, I'm adding support for abs standard pattern name for DI mode, via the ABS instruction in FP registers and the EOR/SUB combo in GP registers. Regression tests for Linux and bare-metal all passed. OK for trunk? Cheers, Ian 2013-06-25 Ian Bolton gcc/ * config/aarch64/aa

[PATCH, AArch64] Update insv_1.c test for Big Endian

2013-06-24 Thread Ian Bolton
supported. I've tested these two tests on little and big. All was OK. OK for trunk? Cheers, Ian 2013-06-24 Ian Bolton * gcc.target/config/aarch64/insv_1.c: Update to show it doesn't work on big endian. * gcc.target/config/aarch64/insv_2.c: New test for

[AArch64, PATCH 5/5] Improve MOVI handling (Fix invalid assembler bug)

2013-06-03 Thread Ian Bolton
g for aarch64_print_operand, as is done for vector immediates. Regression runs have passed for Linux and bare-metal. OK for trunk? Cheers, Ian 2013-06-03 Ian Bolton gcc/ * config/aarch64/aarch64.md (*mov_aarch64): Call into function to generate MOVI instruction. * config/aa

[AArch64, PATCH 4/5] Improve MOVI handling (Other minor clean-up)

2013-06-03 Thread Ian Bolton
(This patch is the fourth of five, where the first 4 do some clean-up and the last fixes a bug with scalar MOVI. The bug fix without the clean-up was particularly ugly!) I think the changelog says it all here. Nothing major, just tidying up. OK for trunk? Cheers, Ian 2013-06-03 Ian

[AArch64, PATCH 3/5] Improve MOVI handling (Don't update RTX operand in-place)

2013-06-03 Thread Ian Bolton
RTX operands. Specifically, I've changed the set of pointers that are passed in (it's now a struct) and the caller prints out the immediate value directly instead of letting operand[1] get fudged. OK for trunk? Cheers, Ian 2013-06-03 Ian Bolton * config/aarch64

[AArch64, PATCH 2/5] Improve MOVI handling (Remove wrapper function)

2013-06-03 Thread Ian Bolton
? Cheers, Ian 13-06-03 Ian Bolton * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No longer static. (aarch64_simd_immediate_valid_for_move): Remove. (aarch64_simd_scalar_immediate_valid_for_move): Update call. (aarch64_simd_make_constant): Update

[AArch64, PATCH 1/5] Improve MOVI handling (Change interface of aarch64_simd_valid_immediate)

2013-06-03 Thread Ian Bolton
? Cheers, Ian 13-06-03 Ian Bolton * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change return type to bool for prototype. (aarch64_legitimate_constant_p): Check for true instead of not -1. (aarch64_simd_valid_immediate): Fix up each return to

RE: [PATCH, AArch64] Support BFI instruction and insv standard pattern

2013-05-30 Thread Ian Bolton
> On 05/20/2013 11:55 AM, Ian Bolton wrote: > > I improved this patch during the work I did on the recent insv_imm > patch > > (http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01007.html). > > Thanks, you cleaned up almost everything on which I would have > commente

[PATCH, AArch64] Fix invalid assembler in scalar_intrinsics.c test

2013-05-22 Thread Ian Bolton
trunk? Cheers, Ian 2013-05-22 Ian Bolton testsuite/ * gcc.target/aarch64/scalar_intrinsics.c (force_simd): Use a valid instruction. (test_vdupd_lane_s64): Pass a valid lane argument. (test_vdupd_lane_u64): Likewise.diff --git a/gcc/testsuite/gcc.target/aarc

RE: [PATCH, AArch64] Support BFI instruction and insv standard pattern

2013-05-20 Thread Ian Bolton
> > Cheers, > Ian > > > 2013-05-08 Ian Bolton > > gcc/ > * config/aarch64/aarch64.md (insv): New define_expand. > (*insv_reg): New define_insn. > > testsuite/ > * gcc.target/aarch64/bfm_1.c: New test. (This patch did not yet get co

[PATCH, AArch64] Allow insv_imm to handle bigger immediates via masking to 16-bits

2013-05-17 Thread Ian Bolton
Ian 2013-05-17 Ian Bolton * config/aarch64/aarch64.c (aarch64_print_operand): Change the X format specifier to only display bottom 16 bits. * config/aarch64/aarch64.md (insv_imm): Allow any-sized immediate to match for operand 2, since it will be masked.diff -

[PATCH, AArch64] Support BFI instruction and insv standard pattern

2013-05-08 Thread Ian Bolton
Hi, This patch implements the BFI variant of BFM. In doing so, it also implements the insv standard pattern. I've regression tested on bare-metal and linux. It comes complete with its own compilation and execution testcase. OK for trunk? Cheers, Ian 2013-05-08 Ian Bolton

[PATCH, AArch64] Testcases for TST instruction

2013-05-02 Thread Ian Bolton
I previously fixed a bug with the patterns that generate TST. I added these testcases to make our regression testing more solid. They've been running on our internal branch for about a month. OK to commit to trunk? Cheers, Ian 2013-05-02 Ian Bolton * gcc.target/aarch64/ts

RE: [PATCH, AArch64] Support BICS instruction in the backend

2013-05-01 Thread Ian Bolton
> Can we have the patch attached ? OK Index: gcc/testsuite/gcc.target/aarch64/bics_1.c === --- gcc/testsuite/gcc.target/aarch64/bics_1.c (revision 0) +++ gcc/testsuite/gcc.target/aarch64/bics_1.c (revision 0) @@ -0,0 +1,107 @@ +/*

[PATCH, AArch64] Fix for LDR/STR to/from S and D registers

2013-05-01 Thread Ian Bolton
good. OK for trunk? Cheers, Ian 2013-05-01 Ian Bolton * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from S reg when fp attribute set. (movdi_aarch64): Only allow to/from D reg when fp attribute set.Index: gcc/config/aarch64/aarch

RE: [PATCH, AArch64] Support BICS instruction in the backend

2013-05-01 Thread Ian Bolton
atest patch (attached). OK to commit? Cheers, Ian 2013-05-01 Ian Bolton gcc/ * config/aarch64/aarch64.md (*and_one_cmpl3_compare0): New pattern. (*and_one_cmplsi3_compare0_uxtw): Likewise. (*and_one_cmpl_3_compare0): Likewise. (*and_one_cmpl_si3_com

RE: [PATCH, AArch64] Testcases for ANDS instruction

2013-05-01 Thread Ian Bolton
overlap with the lsl based rule. I've also renamed the testcases in line with the suggested GCC testcase naming convention. OK for commit? Cheers, Ian 2013-05-01 Ian Bolton * gcc.target/aarch64/ands_1.c: New test. * gcc.tar

[PATCH, AArch64] Support LDR/STR to/from S and D registers

2013-04-26 Thread Ian Bolton
This patch allows us to load to and store from the S and D registers, which helps with doing scalar operations in those registers. This has been regression tested on bare-metal and linux. OK for trunk? Cheers, Ian 2013-04-26 Ian Bolton * config/aarch64/aarch64.md (movsi_aarch64

[PATCH, AArch64] Support BICS instruction in the backend

2013-04-26 Thread Ian Bolton
With these patterns, we can now generate BICS in the appropriate places. I've included test cases. This has been run on linux and bare-metal regression tests. OK to commit? Cheers, Ian 2013-04-26 Ian Bolton gcc/ * config/aarch64/aarch64.md (*and_one_cmpl3_compare0):

[PATCH, AArch64] Testcases for ANDS instruction

2013-04-26 Thread Ian Bolton
heers, Ian 2013-04-26 Ian Bolton * gcc.target/aarch64/ands.c: New test. * gcc.target/aarch64/ands2.c: LikewiseIndex: gcc/testsuite/gcc.target/aarch64/ands2.c === --- gcc/testsuite/gcc.target/aarch64/ands2.c(revis

RE: [PATCH, AArch64] Make MOVK output operand 2 in hex

2013-04-25 Thread Ian Bolton
Since this is a bug fix, I'll need to backport to 4.8. Is that OK? Cheers, Ian > OK > /Marcus > > On 20 March 2013 17:21, Ian Bolton wrote: > > MOVK should not be generated with a negative immediate, which > > the assembler rightfully rejects. > > >

[PATCH, AArch64] Enable Redundant Extension Elimination by default at 02 or higher

2013-04-24 Thread Ian Bolton
This patch enables Redundant Extension Elimination pass for AArch64. Testing shows no regressions on linux and bare-metal. In terms of performance impact, it reduces code-size for some benchmarks and makes no difference on others. OK to commit to trunk? Cheers, Ian 2013-04-24 Ian Bolton

[PATCH AArch64] Make omit-frame-pointer work correctly

2013-03-28 Thread Ian Bolton
generated there unless LR gets clobbered in the leaf for some reason. (I have testcases here to check for that.) OK to commit to trunk? Cheers, Ian 2013-03-28 Ian Bolton gcc/ * config/aarch64/aarch64.md (aarch64_can_eliminate): Only keep frame record when required. testsuite

[PATCH, AArch64] Make MOVK output operand 2 in hex

2013-03-20 Thread Ian Bolton
MOVK should not be generated with a negative immediate, which the assembler rightfully rejects. This patch makes MOVK output its 2nd operand in hex instead. Tested on bare-metal and linux. OK for trunk? Cheers, Ian 2013-03-20 Ian Bolton gcc/ * config/aarch64/aarch64.c

RE: [PING^1] [AArch64] Implement Bitwise AND and Set Flags

2013-03-15 Thread Ian Bolton
> Please consider this as a reminder to review the patch posted at > following link:- > http://gcc.gnu.org/ml/gcc-patches/2013-01/msg01374.html > > The patch is slightly modified to use CC_NZ mode instead of CC. > > Please review the patch and let me know if its okay? > Hi Naveen, With the CC_

[PATCH, AArch64] Support SBC in the backend

2013-03-14 Thread Ian Bolton
We couldn't generate SBC for AArch64 ... until now! This really patch includes the main pattern, a zero_extend form of it and a test. Full regression testing for Linux and bare-metal passed. OK for trunk stage-1? Thanks, Ian 2013-03-14 Ian Bolton gcc/ * config/aarch64/aarch

[PATCH, AArch64] Support ROR in backend

2013-03-14 Thread Ian Bolton
13-03-14 Ian Bolton gcc/ * config/aarch64/aarch64.md (*ror3_insn): New pattern. (*rorsi3_insn_uxtw): Likewise. testsuite/ * gcc.target/aarch64/ror.c: New test. diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index ef1c0f3..367c0e3 100644 ---

[PATCH, AArch64] Support EXTR in backend

2013-03-14 Thread Ian Bolton
We couldn't generate EXTR for AArch64 ... until now! This patch includes the pattern and a test. Full regression testing for Linux and bare-metal passed. OK for trunk stage-1? Thanks, Ian 2013-03-14 Ian Bolton gcc/ * config/aarch64/aarch64.md (*extr5_insn): New pa

[PATCH, AArch64] AND operation should use CC_NZ mode

2013-02-01 Thread Ian Bolton
The mode for AND should really be CC_NZ, so I fixed that up and in the TST patterns that (erroneously) expected it to be CC mode. It has been tested on linux and bare-metal. OK to commit to trunk (as bug fix)? Thanks. Ian 13-02-01 Ian Bolton * config/aarch64/aarch64.c

[PATCH, AArch64] Make zero_extends explicit for some SImode patterns

2013-01-15 Thread Ian Bolton
continues the work of one already committed. :) This has been regression-tested for linux and bare-metal. OK for trunk and backport to ARM/aarch64-4.7-branch? Cheers, Ian 2013-01-15 Ian Bolton * gcc/config/aarch64/aarch64.md (*cstoresi_neg_uxtw): New pattern. (*cmovsi

RE: [PATCH, AArch64] Make zero_extends explicit for common SImode patterns

2012-12-14 Thread Ian Bolton
> Hi Richard, > > > + "add\\t%w0, %w2, %w, xt" > > > > ^^^ %w1 > > Got spot. I guess that pattern hasn't fired yet then! I'll fix it. Now fixed in v3. > I should have said that I am indeed running with REE enabled. It has > some impact (about 70 further UXTW removed from

RE: [PATCH, AArch64] Make zero_extends explicit for common SImode patterns

2012-12-14 Thread Ian Bolton
Hi Richard, > + "add\\t%w0, %w2, %w, xt" > > ^^^ %w1 Got spot. I guess that pattern hasn't fired yet then! I'll fix it. > > This patch significantly reduces the number of redundant > > uxtw instructions seen in a variety of programs. > > > > (There are further patterns th

[PATCH, AArch64] Make zero_extends explicit for common SImode patterns

2012-12-13 Thread Ian Bolton
educes the number of redundant uxtw instructions seen in a variety of programs. (There are further patterns that can be done, but I have them in a separate patch that's still in development.) OK for trunk and backport to ARM/aarch64-4.7-branch? Cheers, Ian 2012-12-13 Ian Bolton * gcc

RE: [PATCH, AArch64 4.7] Backport of __builtin_bswap16 optimisation

2012-11-30 Thread Ian Bolton
It turned out that this patch depended on another one from earlier, so I have backported that to ARM/aarch64-4.7-branch too. http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00452.html Cheers, Ian > -Original Message- > From: Ian Bolton [mailto:ian.bol...@arm.com] > Sent: 23 Nove

[PATCH, AArch64 4.7] Backport of __builtin_bswap16 optimisation

2012-11-23 Thread Ian Bolton
I had already committed my testcase for this for aarch64, but it depends on this patch that doesn't yet exist in 4.7, so I backported to our ARM/aarch64-4.7-branch. Cheers, Ian From: http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=f811051bf87b1de7804c19c8192 d0d099d157145 diff --git a/gcc/Cha

[PATCH AArch64] Implement bswaphi2 with rev16

2012-11-16 Thread Ian Bolton
This patch implements the standard pattern bswaphi2 for AArch64. Regression tests all pass. OK for trunk and backport to arm/aarch64-4.7-branch? Cheers, Ian 2012-11-16 Ian Bolton * gcc/config/aarch64/aarch64.md (bswaphi2): New pattern. * gcc/testsuite/gcc.target/aarch64

[PATCH AArch64] Fix faulty commit of testsuite/gcc.target/aarch64/csinc-2.c

2012-11-16 Thread Ian Bolton
A commit I did earlier in the week got truncated somehow, leading to a broken testcase for AArch64 target. I've just commited this fix as obvious on trunk and the arm/aarch64-4.7-branch. Cheers Ian Index: gcc/testsuite/gcc.target/aarch64/csinc-2.c ===

[PATCH arm/aarch64-4.7] Fix up Changelogs

2012-11-14 Thread Ian Bolton
Some changes had been added to gcc/ChangeLog and gcc/testsuite/Changelog when they should have been recorded in the gcc/Changelog.aarch64 and gcc/testsuite/Changelog.aarch64 files instead. Committed as obvious. Cheers, Ian

[PATCH,AArch64] Use CSINC instead of CSEL to return 1

2012-11-06 Thread Ian Bolton
regression tested on trunk. OK for commit? Cheers, Ian 2012-11-06 Ian Bolton * gcc/config/aarch64/aarch64.md (cmov_insn): Emit CSINC when one of the alternatives is constant 1. * gcc/config/aarch64/constraints.md: New constraint. * gcc/config/aarch64

[PATCH,AArch64] Optimise comparison where intermediate result not used

2012-11-06 Thread Ian Bolton
work. OK for trunk? Cheers, Ian 2012-11-06 Ian Bolton * gcc/config/aarch64/aarch64.md (*compare_neg): New pattern. * gcc/testsuite/gcc.target/aarch64/cmn.c: New test. * gcc/testsuite/gcc.target/aarch64/adds.c: New test. * gcc/testsuite/gcc.target/aarch64/subs.c: New

RE: [PATCH][AArch64] Restrict usage of SBFIZ to valid range only

2012-10-16 Thread Ian Bolton
cks that the range is valid before allowing > the pattern to be used. > > This has now had full regression testing and all is OK. > > OK for aarch64-trunk and aarch64-4_7-branch? > > Cheers, > Ian > > > 2012-10-15 Ian Bolton > > * gcc/confi

[PATCH][AArch64] Restrict usage of SBFIZ to valid range only

2012-10-15 Thread Ian Bolton
testing and all is OK. OK for aarch64-trunk and aarch64-4_7-branch? Cheers, Ian 2012-10-15 Ian Bolton * gcc/config/aarch64/aarch64.md (_shft_): Restrict based on op2. - diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index

[PATCH, AArch64] Handle symbol + offset more effectively

2012-09-25 Thread Ian Bolton
pand_mov_immediate function. My testing showed no regressions for bare-metal or linux. OK for aarch64-branch and aarch64-4.7-branch? Cheers, Ian 2012-09-25 Richard Henderson Ian Bolton * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Fix a functiona

RE: [PATCH, AArch64] Allow symbol+offset even if not being used for memory access

2012-09-25 Thread Ian Bolton
> Ok. Having dug a bit deeper I think the main problem is that you're > working against yourself by not handling this pattern right from the > beginning. You have split the address incorrectly to begin and are > now trying to recover after the fact. > > The following patch seems to do the trick

RE: [PATCH, AArch64] Implement ctz and clrsb standard patterns

2012-09-18 Thread Ian Bolton
New version attached with better formatted test cases. OK for aarch64-branch and aarch64-4.7-branch? Cheers, Ian - 2012-09-18 Ian Bolton gcc/ * config/aarch64/aarch64.h: Define CTZ_DEFINED_VALUE_AT_ZERO. * config

RE: [PATCH, AArch64] Implement ctz and clrsb standard patterns

2012-09-18 Thread Ian Bolton
> > > diff --git a/gcc/config/aarch64/aarch64.md > > b/gcc/config/aarch64/aarch64.md > > > index 33815ff..5278957 100644 > > > --- a/gcc/config/aarch64/aarch64.md > > > +++ b/gcc/config/aarch64/aarch64.md > > > @@ -153,6 +153,8 @@ > > > (UNSPEC_CMTST 83) ; Used in aarch64-simd.md. > >

RE: [PATCH, AArch64] Implement ctz and clrsb standard patterns

2012-09-18 Thread Ian Bolton
> > diff --git a/gcc/config/aarch64/aarch64.md > b/gcc/config/aarch64/aarch64.md > > index 33815ff..5278957 100644 > > --- a/gcc/config/aarch64/aarch64.md > > +++ b/gcc/config/aarch64/aarch64.md > > @@ -153,6 +153,8 @@ > > (UNSPEC_CMTST 83) ; Used in aarch64-simd.md. > > (UNSPEC_FMAX

[PATCH, AArch64] Implement ctz and clrsb standard patterns

2012-09-18 Thread Ian Bolton
heers, Ian 2012-09-18 Ian Bolton gcc/ * config/aarch64/aarch64.h: Define CTZ_DEFINED_VALUE_AT_ZERO. * config/aarch64/aarch64.md (clrsb2): New pattern. * config/aarch64/aarch64.md (rbit2): New pattern. * config/aarch64/aarch64.md (ctz2): New pattern. gcc/test

RE: [PATCH, AArch64] Implement ffs standard pattern

2012-09-17 Thread Ian Bolton
OK for aarch64-4.7-branch as well? > -Original Message- > From: Richard Earnshaw > Sent: 14 September 2012 18:31 > To: Ian Bolton > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH, AArch64] Implement ffs standard pattern > > On 14/09/12 16:26, Ian Bolton wrote:

RE: [PATCH, AArch64] Implement fnma, fms and fnms standard patterns

2012-09-17 Thread Ian Bolton
OK for 4.7 as well? > -Original Message- > From: Richard Earnshaw > Sent: 14 September 2012 18:18 > To: Ian Bolton > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH, AArch64] Implement fnma, fms and fnms standard > patterns > > On 14/09/12 18:05, Ian Bolt

[PATCH, AArch64] Implement fnma, fms and fnms standard patterns

2012-09-14 Thread Ian Bolton
t? Cheers, Ian 2012-09-14 Ian Bolton gcc/ * config/aarch64/aarch64.md (fmsub4): Renamed to fnma4. * config/aarch64/aarch64.md (fnmsub4): Renamed to fms4. * config/aarch64/aarch64.md (fnmadd4): Renamed to fnms4. * config/aarch64/aarch

[PATCH, AArch64] Implement ffs standard pattern

2012-09-14 Thread Ian Bolton
I've implemented the standard pattern ffs, which leads to __builtin_ffs being generated with 4 instructions instead of 5 instructions. Regression tests and my new test pass. OK to commit? Cheers, Ian 2012-09-14 Ian Bolton gcc/ * config/aarch64/aarch64.md (csinc3): Make it

RE: [PATCH, AArch64] Allow symbol+offset even if not being used for memory access

2012-09-10 Thread Ian Bolton
> Can you send me the test case you were looking at for this? See attached. (Most of it is superfluous, but the point is that we are not using the address to do a memory access.) Cheers, Ian constant-test1.c Description: Binary data

RE: [PATCH, AArch64] Allow symbol+offset even if not being used for memory access

2012-09-06 Thread Ian Bolton
> From: Richard Henderson [mailto:r...@redhat.com] > On 09/06/2012 08:06 AM, Ian Bolton wrote: > > If I don't use my split pattern, I could alter combine to remove the > > requirement that parent is a MEM. > > > > What do you think? > > I merely que

RE: [PATCH, AArch64] Allow symbol+offset even if not being used for memory access

2012-09-06 Thread Ian Bolton
> On 2012-08-31 07:49, Ian Bolton wrote: > > +(define_split > > + [(set (match_operand:DI 0 "register_operand" "=r") > > + (const:DI (plus:DI (match_operand:DI 1 "aarch64_valid_symref" > "S") > > +

[PATCH, AArch64] Allow symbol+offset even if not being used for memory access

2012-08-31 Thread Ian Bolton
x0 ret Testing shows no regressions. OK to commit? 2012-08-31 Ian Bolton * gcc/config/aarch64/aarch64.md: New pattern.diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index a00d3f0..de9c927 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/

[PATCH, AArch64] Allow symbol+offset as symbolic constant expression

2012-07-06 Thread Ian Bolton
have seen up to 1K reduction in code size. OK to commit? Cheers, Ian 2012-07-06 Ian Bolton * gcc/config/aarch64/aarch64.c (aarch64_print_operand): Use aarch64_classify_symbolic_expression for classifying operands. * gcc/config/aarch64/aarch64.c

[PATCH, ARM] Fix broken testcase, vfp-1.c, for Thumb

2011-07-28 Thread Ian Bolton
This patch makes the vfp-1.c testcase work for Thumb. It became broken when we restricted the negative offsets allowed for Thumb to fix up a Spec2K failure some months back. (It was previously possible to generate illegal offsets.) OK for trunk? Cheers, Ian 2011-07-28 Ian Bolton

RE: Move cgraph_node_set and varpool_node_set out of GGC and make them use pointer_map

2011-05-04 Thread Ian Bolton
> Hi, > I always considered the cgrpah_node_set/varpool_node_set to be > overengineered > but they also turned out to be quite ineffective since we do quite a > lot of > queries into them during stremaing out. > > This patch moves them to pointer_map, like I did for streamer cache. > While > doing