[PATCH] driver: Also prune joined switches with negation

2019-09-23 Thread Matt Turner
When -march=native is passed to host_detect_local_cpu to the backend, it overrides all command lines after it. That means $ gcc -march=native -march=armv8-a is treated as $ gcc -march=armv8-a -march=native Prune joined switches with Negative and RejectNegative to allow -march=armv8-a to overri

[PATCH] driver: Also prune joined switches with negation

2019-09-24 Thread Matt Turner
When -march=native is passed to host_detect_local_cpu to the backend, it overrides all command lines after it. That means $ gcc -march=native -march=armv8-a is treated as $ gcc -march=armv8-a -march=native Prune joined switches with Negative and RejectNegative to allow -march=armv8-a to overri

Re: [PATCH] driver: Also prune joined switches with negation

2019-09-24 Thread Matt Turner
On Tue, Sep 24, 2019 at 1:24 AM Kyrill Tkachov wrote: > > Hi Matt, > > On 9/24/19 5:04 AM, Matt Turner wrote: > > When -march=native is passed to host_detect_local_cpu to the backend, > > it overrides all command lines after it. That means > > > > $ gcc -ma

[PATCH 1/2] i386: Consider Kaby Lake to be equivalent to Skylake

2017-06-16 Thread Matt Turner
Currently -march=native selects -march=broadwell on Kaby Lake systems, since its model numbers are missing from the switch statement. It falls back to the default case and chooses -march=broadwell because of the presence of the ADX instruction set. gcc/ * config/i386/driver-i386.c (host_de

[PATCH 2/2] i386: Assume Skylake for unknown models with clflushopt

2017-06-16 Thread Matt Turner
gcc/ * config/i386/driver-i386.c (host_detect_local_cpu): Assume skylake for unknown models with clflushopt. --- gcc/config/i386/driver-i386.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index 09faad0af0e..570

Re: [PATCH 1/2] i386: Consider Kaby Lake to be equivalent to Skylake

2017-06-22 Thread Matt Turner
On Sun, Jun 18, 2017 at 10:56 AM, Uros Bizjak wrote: > On Fri, Jun 16, 2017 at 11:42 PM, Matt Turner wrote: >> Currently -march=native selects -march=broadwell on Kaby Lake systems, >> since its model numbers are missing from the switch statement. It falls >> back to the def

Re: [PATCH ARM iWMMXt 0/5] Improve iWMMXt support

2013-01-27 Thread Matt Turner
On Tue, Jun 26, 2012 at 7:56 AM, nick clifton wrote: > Hi Matt, > > >> There's also a trivial documentation fix: >> >> [PATCH 1/2] doc: Correct __builtin_arm_tinsr prototype documentation >> >> and a test to exercise the intrinsics: >> >> [PATCH 2/2] arm: add iwMMXt mmx-2.c test > > > These have b

[PATCH] mips: Document r4700

2013-02-22 Thread Matt Turner
2013-02-22 Matt Turner gcc/ * doc/invoke.texi: Document r4700. --- gcc/doc/invoke.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 7d96467..63eb6a6 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc

Re: [PATCH ARM iWMMXt 0/5] Improve iWMMXt support

2012-06-13 Thread Matt Turner
On Wed, Jun 13, 2012 at 3:26 AM, nick clifton wrote: > Hi Matt, Hi Xinyu, > > >> This series was written by Marvell and sent by Xinyu Qi >> a number of times in the last year. > > > Sorry for the long delay in reviewing these patches.  Overall they were > fine, with only a few, very minor, formatt

Re: [PATCH ARM iWMMXt 0/5] Improve iWMMXt support

2012-06-27 Thread Matt Turner
On Tue, Jun 26, 2012 at 10:56 AM, nick clifton wrote: > Hi Matt, > > >> There's also a trivial documentation fix: >> >> [PATCH 1/2] doc: Correct __builtin_arm_tinsr prototype documentation >> >> and a test to exercise the intrinsics: >> >> [PATCH 2/2] arm: add iwMMXt mmx-2.c test > > > These have

Re: [PING] iwMMXt patches

2012-05-02 Thread Matt Turner
On Tue, Apr 17, 2012 at 4:17 PM, Matt Turner wrote: > Are these patches ready to go in? It looks like they were ack'd. > > http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01815.html > http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01817.html > http://gcc.gnu.org/ml/gcc-patches/2

Re: [PING] iwMMXt patches

2012-05-03 Thread Matt Turner
On Thu, May 3, 2012 at 12:59 AM, Xinyu Qi wrote: >> From: Matt Turner [mailto:matts...@gmail.com] >> To: Xinyu Qi >> Cc: Ramana Radhakrishnan; GCC Patches >> Subject: Re: [PING] iwMMXt patches >> >> On Tue, Apr 17, 2012 at 4:17 PM, Matt Turner wrote: >&

Re: [PATCH 2/2] arm: add iwMMXt mmx-2.c test

2012-05-28 Thread Matt Turner
On Thu, Apr 5, 2012 at 4:53 AM, Ramana Radhakrishnan wrote: > On 4 April 2012 19:35, Matt Turner wrote: >>  gcc/testsuite/gcc.target/arm/mmx-2.c |  158 >> ++ >>  1 files changed, 158 insertions(+), 0 deletions(-) >>  create mode 1006

Re: [PATCH 1/2] mips: Add R4600 scheduling support for imul and idiv

2012-05-28 Thread Matt Turner
On Sat, Feb 25, 2012 at 3:11 AM, Richard Sandiford wrote: > Matt Turner writes: >> The r4600_imul and r4600_idiv reservations were correct for si, but >> there were no *_di reservations. >> >> See page 4 of >> http://www.sgistuff.net/hardware/other/documents/R

Re: [PATCH] alpha: add bypasses for fmul/fadd/fcmov -> fst/ftoi

2012-05-28 Thread Matt Turner
On Fri, Feb 24, 2012 at 10:53 PM, Matt Turner wrote: > See section 2.5.3 (page 28) of > http://download.majix.org/dec/comp_guide_v2.pdf > > 2012-02-24  Matt Turner   > >        * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New. >        (define_bypass

Re: [PATCH] arm: add _mm_empty to mmintrin.h for source compatibility

2012-05-28 Thread Matt Turner
On Tue, Feb 28, 2012 at 7:13 PM, Ramana Radhakrishnan wrote: > On Fri, Feb 24, 2012 at 10:53:35PM -0500, Matt Turner wrote: >> The x86/amd64 mmintrin.h provides the _mm_empty intrinsic for the 'emms' >> MMX instruction. Although ARM does not need such an instruction, we &

Re: [PATCH] arm: Fix iwmmxt shift and logical intrinsics (PR 35294).

2012-05-28 Thread Matt Turner
On Fri, Feb 24, 2012 at 10:53 PM, Matt Turner wrote: > PR 36798 and 36966 are duplicates. > > 2012-02-24  Matt Turner   > >        PR target/35294 >        * config/arm/arm.c (arm_expand_builtin): Wire up missing >        intrinsics. > --- >  

Re: [PATCH 1/2] doc: Correct __builtin_arm_tinsr prototype documentation

2012-05-28 Thread Matt Turner
On Wed, Apr 4, 2012 at 2:34 PM, Matt Turner wrote: > 2012-04-04  Matt Turner   > >        gcc/ >        * doc/extend.texi (__builtin_arm_tinsrb): Add missing second >        parameter. >        (__builtin_arm_tinsrh): Likewise. >        (__builtin_arm_tinsrw): Likewise. >

[PATCH ARM iWMMXt 0/5] Improve iWMMXt support

2012-05-28 Thread Matt Turner
torvsc to the "wtype" attribute) Please commit them for 4.8. For 4.7 and 4.6 please consider committing my patch "[PATCH] arm: Fix iwmmxt shift and logical intrinsics (PR 35294)." which only fixes the logical and shift intrinsics. Thanks, Matt Turner

[PATCH ARM iWMMXt 5/5] pipeline description

2012-05-28 Thread Matt Turner
From: Xinyu Qi gcc/ * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md. * config/arm/marvell-f-iwmmxt.md: New file. * config/arm/arm.md (marvell-f-iwmmxt.md): Include. --- gcc/config/arm/arm.md |1 + gcc/config/arm/marvell-f-iwmmxt.md | 17

[PATCH ARM iWMMXt 1/5] ARM code generic change

2012-05-28 Thread Matt Turner
From: Xinyu Qi gcc/ * config/arm/arm.c (FL_IWMMXT2): New define. (arm_arch_iwmmxt2): New variable. (arm_option_override): Enable use of iWMMXt with VFP. Disable use of iWMMXt with NEON. Disable use of iWMMXt under Thumb mode. Set arm_arch_iwmmxt2.

[PATCH ARM iWMMXt 2/5] intrinsic head file change

2012-05-28 Thread Matt Turner
From: Xinyu Qi gcc/ * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics. Use __IWMMXT2__ to enable iWMMXt2 intrinsics. Use C name-mangling for intrinsics. (__v8qi): Redefine. (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.

[PATCH ARM iWMMXt 3/5] built in define and expand

2012-05-28 Thread Matt Turner
From: Xinyu Qi gcc/ * config/arm/arm.c (enum arm_builtins): Revise built-in fcode. (IWMMXT2_BUILTIN): New define. (IWMMXT2_BUILTIN2): Likewise. (iwmmx2_mbuiltin): Likewise. (builtin_description bdesc_2arg): Revise built in declaration. (buil

Re: [PATCH 1/2] mips: Add R4600 scheduling support for imul and idiv

2012-05-31 Thread Matt Turner
On Thu, May 31, 2012 at 5:35 PM, Richard Sandiford wrote: > Matt Turner writes: >> On Sat, Feb 25, 2012 at 3:11 AM, Richard Sandiford >> wrote: >>> Matt Turner writes: >>>> The r4600_imul and r4600_idiv reservations were correct for si, but >>>>

[PATCH 2/2] mips: Add R4700 scheduling support

2012-05-31 Thread Matt Turner
The R4700 is identical to the R4600 except for the integer and floating-point multiplication costs. See page 4 of http://datasheets.chipdb.org/IDT/MIPS/79RV4700.pdf 2012-03-24 Matt Turner gcc/ * config/mips/4600.md (r4700_imul_si): New. (r4700_imul_di): New

[PATCH] Wire-up missing ARM iwmmxt intrinsics (bugs 35294, 36798, 36966)

2011-08-18 Thread Matt Turner
/log/?h=iwmmxt-optimizations I have seen much more extensive patches from Xinyu Qi, but I do not suppose that they will be available in gcc 4.6. Thanks, Matt Turner --- arm.c.orig 2011-08-19 00:03:06.163195724 -0400 +++ arm.c 2011-08-19 00:03:10.872195933 -0400 @@ -157,7 +157,7 @@ static void

Re: [PATCH] Wire-up missing ARM iwmmxt intrinsics (bugs 35294, 36798, 36966)

2011-08-18 Thread Matt Turner
On Fri, Aug 19, 2011 at 12:13 AM, Matt Turner wrote: > Hi, > > Attached is a patch based on gcc-4.6.1 that wires-up missing ARM > iwmmxt intrinsics. Without it, gcc is completely useless when it comes > to using a large portion of the intrinsics documented on this page: >

Re: [PATCH] Wire-up missing ARM iwmmxt intrinsics (bugs 35294, 36798, 36966)

2011-08-19 Thread Matt Turner
On Fri, Aug 19, 2011 at 2:09 AM, Xinyu Qi wrote: > At 2011-08-19 12:18:10,"Matt Turner" wrote:> Subject: Re: >> >> On Fri, Aug 19, 2011 at 12:13 AM, Matt Turner wrote: >> > Hi, >> > >> > Attached is a patch based on gcc-4.6.1 that wires-up

[PATCH] Wire-up missing ARM iwmmxt intrinsics (bugs 35294, 36798, 36966)

2011-10-01 Thread Matt Turner
--- arm.c.orig 2011-05-05 04:39:40.0 -0400 +++ arm.c 2011-08-19 13:48:21.548405102 -0400 @@ -19218,7 +19218,8 @@ || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) target = gen_reg_rtx (tmode); - gcc_assert (GET_MODE (op0) == mode0 && GET_MODE (op1) == mod

[PATCH 1/2] doc: Correct __builtin_arm_tinsr prototype documentation

2012-04-04 Thread Matt Turner
2012-04-04 Matt Turner gcc/ * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter. (__builtin_arm_tinsrh): Likewise. (__builtin_arm_tinsrw): Likewise. --- This patch and 2/2 are tie-ons to http://gcc.gnu.org/ml/gcc-patches/2012-02

[PATCH] doc: Fix typo: mno-lsc -> mno-llsc

2012-04-04 Thread Matt Turner
2012-04-04 Matt Turner gcc/ * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc". --- Still waiting on copyright assignment, but I think this doc patch is trivial enough to be committed without it. gcc/doc/install.texi |2 +- 1 files chan

[PATCH 2/2] arm: add iwMMXt mmx-2.c test

2012-04-04 Thread Matt Turner
2012-04-04 Matt Turner PR target/35294 * gcc.target/arm/mmx-2.c: New. --- This patch and 1/2 are tie-ons to http://gcc.gnu.org/ml/gcc-patches/2012-02/msg01269.html Still waiting on copyright assignment, but please review in the meantime. Is there anything else I need to do to

[PING] iwMMXt patches

2012-04-17 Thread Matt Turner
Are these patches ready to go in? It looks like they were ack'd. http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01815.html http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01817.html http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01816.html http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01818.html http://gc

[PATCH 1/2] mips: Add R4600 scheduling support for imul and idiv

2012-02-24 Thread Matt Turner
The r4600_imul and r4600_idiv reservations were correct for si, but there were no *_di reservations. See page 4 of http://www.sgistuff.net/hardware/other/documents/R4600_Prod_OV.pdf 2012-02-24 Matt Turner * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul

Miscellaneous mips, arm, and alpha patches

2012-02-24 Thread Matt Turner
I've missed a step or didn't format the ChangeLog entries properly, and so forth. Please CC me on replies. Thanks, Matt Turner

[PATCH] alpha: add bypasses for fmul/fadd/fcmov -> fst/ftoi

2012-02-24 Thread Matt Turner
See section 2.5.3 (page 28) of http://download.majix.org/dec/comp_guide_v2.pdf 2012-02-24 Matt Turner * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New. (define_bypass "ev6_fcmov"): New. --- gcc/config/alpha/ev6.md |4 1 files c

[PATCH 2/2] mips: Add R4700 scheduling support

2012-02-24 Thread Matt Turner
The R4700 is identical to the R4600 except for the integer and floating-point multiplication costs. See page 4 of http://datasheets.chipdb.org/IDT/MIPS/79RV4700.pdf 2012-02-24 Matt Turner * config/mips/4600.md (r4700_imul_si): New. (r4700_imul_di): New

[PATCH] arm: Fix iwmmxt shift and logical intrinsics (PR 35294).

2012-02-24 Thread Matt Turner
PR 36798 and 36966 are duplicates. 2012-02-24 Matt Turner PR target/35294 * config/arm/arm.c (arm_expand_builtin): Wire up missing intrinsics. --- gcc/config/arm/arm.c | 62 +- 1 files changed, 61 insertions(+), 1

[PATCH] arm: add _mm_empty to mmintrin.h for source compatibility

2012-02-24 Thread Matt Turner
The x86/amd64 mmintrin.h provides the _mm_empty intrinsic for the 'emms' MMX instruction. Although ARM does not need such an instruction, we should provide an empty _mm_empty function nonetheless for source compatibility. 2012-02-24 Matt Turner * config/arm/mmintrin.h (_mm_e