Re: [PATCH] PR target/79004, Fix char/short -> _Float128 on PowerPC -mcpu=power9

2017-01-12 Thread Michael Meissner
On Wed, Jan 11, 2017 at 04:39:19PM -0600, Segher Boessenkool wrote: > On Mon, Jan 09, 2017 at 07:32:27PM -0500, Michael Meissner wrote: > > This patch fixes PR target/79004 by eliminating the optimization of avoiding > > direct move if we are converting an 8/16-bit integer value

Re: [PATCH] PR target/79004, Fix char/short -> _Float128 on PowerPC -mcpu=power9

2017-01-17 Thread Michael Meissner
On Wed, Jan 11, 2017 at 04:39:19PM -0600, Segher Boessenkool wrote: > On Mon, Jan 09, 2017 at 07:32:27PM -0500, Michael Meissner wrote: > > This patch fixes PR target/79004 by eliminating the optimization of avoiding > > direct move if we are converting an 8/16-bit integer value

Re: [PATCH] PR target/79004, Fix char/short -> _Float128 on PowerPC -mcpu=power9

2017-01-17 Thread Michael Meissner
On Tue, Jan 17, 2017 at 07:00:36PM -0600, Segher Boessenkool wrote: > On Tue, Jan 17, 2017 at 07:39:05PM -0500, Michael Meissner wrote: > > It turns out the testcase I submitted for pr79004 failed, since I had the > > wrong > > syntax for \m and \M (you need to use {

[PATCH], Add support for PowerPC ISA 3.0 vector byte reverse instructions

2017-01-17 Thread Michael Meissner
have checked this on a little endian power8 system (64-bit only), a big endian power8 system (64-bit only), and a big endian power7 system (both 32-bit and 64-bit), and there were no regressions. Can I check this into the trunk? [gcc] 2017-01-17 Michael Meissner * config/rs6000/rs600

Re: [PATCH], Add support for PowerPC ISA 3.0 vector byte reverse instructions

2017-01-18 Thread Michael Meissner
On Wed, Jan 18, 2017 at 11:21:40AM -0600, Segher Boessenkool wrote: > On Tue, Jan 17, 2017 at 08:50:08PM -0500, Michael Meissner wrote: > > I have checked this on a little endian power8 system (64-bit only), a big > > endian power8 system (64-bit only), and a big endian power7 syste

[PATCH], PowerPC ISA 3.0 defaults + IEEE 128-bit floating point test

2017-01-18 Thread Michael Meissner
ystem. There were no regressions in the runs. I verified that the float128-hw.c test is now run. Can I check these changes into the trunk? [gcc] 2017-01-18 Michael Meissner * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable -mpower9-minmax by default for -mcpu=p

[PATCH], Fix PR target/79179, wrong constraint for power9

2017-01-25 Thread Michael Meissner
finished with no regressions. Can I check it into trunk? [gcc] 2017-01-25 Michael Meissner PR target/79179 * config/rs6000/vsx.md (vsx_extract__store): Use wY constraint instead of o for the stxsd instruction. [gcc/testsuite] 2017-01-25 Michael Meissner PR target

[PATCH #2, rs6000][GCC6] Fix PR78543, ICE in push_reload on powerpc64le-linux-gnu

2017-03-24 Thread Michael Meissner
trunk? Since the patch shows up as an abort in GCC 6 and not in GCC 7 (unless you disable LRA), I would like to apply the patch as soon as possible to the GCC 6 branch. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone

Re: [PATCH #2, rs6000][GCC6] Fix PR78543, ICE in push_reload on powerpc64le-linux-gnu

2017-03-24 Thread Michael Meissner
Well instead of attaching the ChangeLog, I attached the patch without ChangeLog. Here is the ChangeLog entry for the patch: [gcc] 2017-03-24 Michael Meissner PR target/78543 * config/rs6000/rs6000.md (BSWAP): New mode iterator for modes with hardware byte swap load

Re: [PATCH #2, rs6000][GCC6] Fix PR78543, ICE in push_reload on powerpc64le-linux-gnu

2017-03-27 Thread Michael Meissner
On Fri, Mar 24, 2017 at 07:16:32PM -0500, Segher Boessenkool wrote: > Hi Mike, > > On Fri, Mar 24, 2017 at 07:23:02PM -0400, Michael Meissner wrote: > > Reload fumbles in certain conditions. > > Yeah. And it does not need bswap to get totally lost with this, so this > pa

Re: [PATCH #2, rs6000][GCC6] Fix PR78543, ICE in push_reload on powerpc64le-linux-gnu

2017-03-27 Thread Michael Meissner
does not show by default in trunk (due to failing with RELOAD), but the bug shows up in GCC 6 (since RELOAD is default there), and it affects some of the Linux distributions. [gcc] 2017-03-27 Michael Meissner PR target/78543 * config/rs6000/rs6000.md (bswaphi2_extenddi): Comb

[PATCH], Fix PR 80098, Add better checking for disabling features

2017-04-11 Thread Michael Meissner
. Is it ok for the trunk? [gcc] 2017-04-11 Michael Meissner PR target/80098 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define masks of options that should be turned off if the VSX vector options are turned off. (OTHER_P8_VECTOR_MASKS): Likewise

Re: [PATCH], Fix PR 80098, Add better checking for disabling features

2017-04-12 Thread Michael Meissner
On Tue, Apr 11, 2017 at 06:04:33PM -0500, Segher Boessenkool wrote: > Hi! > > On Tue, Apr 11, 2017 at 05:32:41PM -0400, Michael Meissner wrote: > > PR 80098 is an interaction between -mmodulo (ISA 3.0/power9 GPR modulo > > instructions) and -mno-vsx where the -mmodulo optio

[PATCH], Fix PR/target 80099 (internal error with -mno-upper-regs-sf)

2017-04-12 Thread Michael Meissner
Michael Meissner PR target/80099 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Make sure that DFmode or DImode as appropriate can go in Altivec registers before generating the faster sequences for variable vec_extracts. * config/rs6000/vsx.md

Re: [PATCH], Fix PR/target 80099 (internal error with -mno-upper-regs-sf)

2017-04-14 Thread Michael Meissner
On Fri, Apr 14, 2017 at 03:48:47AM -0500, Segher Boessenkool wrote: > On Wed, Apr 12, 2017 at 06:45:31PM -0400, Michael Meissner wrote: > > The problem is rs6000_expand_vector_extract did not check for SFmode being > > allowed in the Altivec (upper) registers, but the insn i

Re: [PATCH], Fix PR/target 80099 (internal error with -mno-upper-regs-sf)

2017-04-14 Thread Michael Meissner
On Fri, Apr 14, 2017 at 05:07:17PM -0500, Segher Boessenkool wrote: > On Fri, Apr 14, 2017 at 05:43:28PM -0400, Michael Meissner wrote: > > On Fri, Apr 14, 2017 at 03:48:47AM -0500, Segher Boessenkool wrote: > > > On Wed, Apr 12, 2017 at 06:45:31PM -0400, Michael Meissner

Re: [PATCH GCC8][33/33]Fix PR69710/PR68030 by reassociate vect base address and a simple CSE pass

2017-04-18 Thread Michael Meissner
ion_lib.ii pre-processed file that I used to this mail message. I'll run the other benchmarks and compare it to the baseline version to see what improvements there are. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet

Re: [PATCH GCC8][33/33]Fix PR69710/PR68030 by reassociate vect base address and a simple CSE pass

2017-04-18 Thread Michael Meissner
By the way, if anybody else wanted to try the patches, but did not want to apply all 33 patches, I cloned the trunk and applied the patches to the following branch: svn+ssh://gcc.gnu.org/svn/gcc/branches/ibm/ivopts -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460

Re: [PATCH GCC8][33/33]Fix PR69710/PR68030 by reassociate vect base address and a simple CSE pass

2017-04-18 Thread Michael Meissner
opts/powerpc64le-unknown-linux-gnu/./libatomic/.libs::/home/meissner/fsf-build-ppc64le/ivopts/gcc:/home/meissner/fsf-build-ppc64le/ivopts/powerpc64le-unknown-linux-gnu/./libatomic/.libs: spawn [open ...] PASS: gcc.dg/sms-4.c execution test PASS: gcc.dg/sms-4.c scan-rtl-dump-times sms "SMS succ

Re: [PATCH GCC8][33/33]Fix PR69710/PR68030 by reassociate vect base address and a simple CSE pass

2017-04-19 Thread Michael Meissner
a 1% regression * 437.leslie3d had a 1% speedup * 453.povray had a 1.6% speedup -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797 2017-04-19-ivopts-64bit.out.bz2 Description: BZip2 compressed data

[patch, wwwdocs]: Update GCC 7 PowerPC changes

2017-04-20 Thread Michael Meissner
sters. + Previously, only 64-bit integer types were allowed in the traditional + floating point registers. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

Re: [patch, wwwdocs]: Update GCC 7 PowerPC changes

2017-04-20 Thread Michael Meissner
ition, + on ISA 3.0, 16-bit and 8-bit integer types can be allocated in the vector + registers. Previously, only 64-bit integer types were allowed in the + traditional floating point registers. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA

[GCC8 patch], PowerPC PRs 79038, 79202, and 79203: Improve small integer conversions to/from floating point

2017-04-26 Thread Michael Meissner
these changes to gcc 7 for GCC 7.2 as well. These patches depend on the small integer support, which is not in GCC 6, so they would not be appropriate for GCC 6. [gcc] 2017-04-26 Michael Meissner PR target/79038 PR target/79202 PR target/79203 * config/rs6000/

Re: [PATCH version 2, rs6000] Add builtins to convert from float/double to int/long using current rounding mode

2017-09-12 Thread Michael Meissner
ink. Cc:ing Mike for that. TARGET_FPRND is for ISA 2.02 (power5+) which added the various round to integer instructions. So, unless we are going to stop supporting older machines, it is needed. > The rest looks fine. Okay for trunk with those changes, or resend if > you prefer I take anothe

[PATCH], Add support for __builtin_{sqrt,fma}f128 on PowerPC ISA 3.0

2017-09-13 Thread Michael Meissner
were run. Can I check this patch into the trunk? [gcc] 2017-09-13 Michael Meissner * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros to support float128 built-in functions that require the ISA 3.0 hardware. (BU_FLOAT128_3_HW): Likewise. (SQ

Re: [PATCH], Add support for __builtin_{sqrt,fma}f128 on PowerPC ISA 3.0

2017-09-14 Thread Michael Meissner
On Wed, Sep 13, 2017 at 10:49:43PM +, Joseph Myers wrote: > On Wed, 13 Sep 2017, Michael Meissner wrote: > > > This patch adds support on PowerPC ISA 3.0 for the built-in function > > __builtin_sqrtf128 generating the XSSQRTQP hardware square root instruction > &

Re: [PATCH version 2, rs6000] Add builtins to convert from float/double to int/long using current rounding mode

2017-09-14 Thread Michael Meissner
On Wed, Sep 13, 2017 at 06:08:45PM -0500, Segher Boessenkool wrote: > On Tue, Sep 12, 2017 at 07:17:07PM -0400, Michael Meissner wrote: > > On Tue, Sep 12, 2017 at 05:41:34PM -0500, Segher Boessenkool wrote: > > > This needs "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOA

Re: [PATCH], Add support for __builtin_{sqrt,fma}f128 on PowerPC ISA 3.0

2017-09-14 Thread Michael Meissner
On Thu, Sep 14, 2017 at 09:54:14AM -0500, Segher Boessenkool wrote: > On Wed, Sep 13, 2017 at 05:46:00PM -0400, Michael Meissner wrote: > > This patch adds support on PowerPC ISA 3.0 for the built-in function > > __builtin_sqrtf128 generating the XSSQRTQP hardware square root instr

[PATCH], Improve moving SFmode to GPR on PowerPC

2017-09-19 Thread Michael Meissner
er9 prototype. Can I check these changes into GCC 8? Can I back port these changes into the GCC 7 branch? [gcc] 2017-09-19 Michael Meissner * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so it is next to vsx_xscvspdp. (vsx_xscvdpsp_scalar): Use 'ww' const

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #1 of 8

2017-09-26 Thread Michael Meissner
check this into the trunk? I noticed without this patch, sometimes the register allocator would do a store and then a load to move a SImode value from a vector register to a GPR and sign extend it, instead of doing the move and then the sign extension. 2017-09-25 Michael Meissner * config

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #2 of 8

2017-09-26 Thread Michael Meissner
check this into the trunk? Compared to the previous patch, I simplified this to use zero_extendsidi2 instead of using an UNSPEC, and I deleted the UNSPEC. 2017-09-25 Michael Meissner * config/rs6000/rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift right or

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #3 of 8

2017-09-26 Thread Michael Meissner
assumes the value has already been rounded, and does not raise an exception in case of a Nan). 2017-09-25 Michael Meissner * config/rs6000/rs6000.md (movsi_from_df): Optimize converting a DFmode to a SFmode, and then needing to move the SFmode to a GPR to use the XSCVDPSP

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #4 of 8

2017-09-26 Thread Michael Meissner
check this into the trunk? This is a cosmetic change, in that I noticed the two insns providing XSCVDPSP were separated by another insn, and it moves the 2nd insn to be adjacent to the first. 2017-09-25 Michael Meissner * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #5 of 8

2017-09-26 Thread Michael Meissner
patch uses the proper constraint ("ww") so we can avoid a move instruction. 2017-09-25 Michael Meissner * config/rs6000/vsx.md (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow SFmode to be in traditional Altivec registers.

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #6 of 8

2017-09-26 Thread Michael Meissner
'?'. The theory was we might want to favor Altivec or FPR registers for a given vector type. However, we've never done this. Further more with the change to use LRA instead of reload, this isn't as useful. So, as I encounter these dual alternatived, I have be

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #7 of 8

2017-09-26 Thread Michael Meissner
9-25 Michael Meissner * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate needing to do the shift right 32-bits operation after XSCVDPSPN. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA e

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #8 of 8

2017-09-26 Thread Michael Meissner
check this into the trunk? It fixes the two tests (pr71977-1.c and direct-move-float1.c) that need to be adjusted with the previous patches applies. It also adds a new test to test combining round from DFmode to SFmode and move it to a GPR. 2017-09-25 Michael Meissner * gcc.target/powerpc

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #2 of 8

2017-09-26 Thread Michael Meissner
veclogical") > > +vecexts,mffgpr") > > vecsimple or vecfloat I guess, not vecexts. We have no way of describing > it exactly, of course. Maybe just "two". Ok. > Okay for trunk with those things taken care of. Thanks! -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #3 of 8

2017-09-26 Thread Michael Meissner
On Tue, Sep 26, 2017 at 11:36:14AM -0500, Segher Boessenkool wrote: > Hi! > > On Tue, Sep 26, 2017 at 10:34:44AM -0400, Michael Meissner wrote: > > * config/rs6000/rs6000.md (movsi_from_df): Optimize converting a > > DFmode to a SFmode, and then needing to mov

Re: [PATCH], Improve moving SFmode to GPR on PowerPC, #7 of 8

2017-09-26 Thread Michael Meissner
On Tue, Sep 26, 2017 at 04:56:54PM -0500, Segher Boessenkool wrote: > On Tue, Sep 26, 2017 at 10:48:29AM -0400, Michael Meissner wrote: > > * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): > > Adjust code to eliminate needing to do the shift right 32-bits &g

[PATCH], Define __FP_FAST_FMAF128 on PowerPC ISA 3.0

2017-09-27 Thread Michael Meissner
back out this particular patch. I have done a full bootstrap and regression test, there were no regressions, and the new test case does run correctly. Can I check this into the trunk? [gcc] 2017-09-27 Michael Meissner * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define

[PATCH], Add PowerPC ISA 3.0 IEEE 128-bit floating point round to odd built-in functions

2017-09-28 Thread Michael Meissner
that the new test (float128-odd.c) did run sucessfully. Can I check this patch into the trunk? [gcc] 2017-09-28 Michael Meissner * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions. (SQRTF128_ODD

Re: [PATCH], Define __FP_FAST_FMAF128 on PowerPC ISA 3.0

2017-10-02 Thread Michael Meissner
On Thu, Sep 28, 2017 at 12:40:24AM +, Joseph Myers wrote: > On Wed, 27 Sep 2017, Michael Meissner wrote: > > > The glibc team has requested we define the standard macro > > (__FP_FAST_FMAF128) > > for PowerPC code when we have the IEEE 128-bit floating point hardware

Re: [PATCH], Add PowerPC ISA 3.0 IEEE 128-bit floating point round to odd built-in functions

2017-10-02 Thread Michael Meissner
On Fri, Sep 29, 2017 at 12:10:07PM -0500, Segher Boessenkool wrote: > Hi Mike, > > On Thu, Sep 28, 2017 at 06:34:23PM -0400, Michael Meissner wrote: > > This patch addss built-in functions on PowerPC ISA 3.0 (power9) that allow > > the > > user to access the round t

Re: [PATCH #2], Define __FP_FAST_FMAF128 on PowerPC ISA 3.0

2017-10-02 Thread Michael Meissner
On Thu, Sep 28, 2017 at 12:40:24AM +, Joseph Myers wrote: > On Wed, 27 Sep 2017, Michael Meissner wrote: > > > The glibc team has requested we define the standard macro > > (__FP_FAST_FMAF128) > > for PowerPC code when we have the IEEE 128-bit floating point hardware

Re: [PATCH #2], Define __FP_FAST_FMAF128 on PowerPC ISA 3.0

2017-10-02 Thread Michael Meissner
Whoops, I forgot to attach the patch. On Mon, Oct 02, 2017 at 07:51:00PM -0400, Michael Meissner wrote: > On Thu, Sep 28, 2017 at 12:40:24AM +, Joseph Myers wrote: > > On Wed, 27 Sep 2017, Michael Meissner wrote: > > > > > The glibc team has requested we d

Re: [PATCH], Add PowerPC ISA 3.0 IEEE 128-bit floating point round to odd built-in functions

2017-10-03 Thread Michael Meissner
. [gcc/testsuite] 2017-10-03 Michael Meissner * gcc.target/powerpc/float128-odd.c: New test. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797 Index: gcc/config/rs6000/rs6000-builtin.def

[PATCH], Add PowerPC ISA 3.0 Atomic Memory Operation functions

2017-10-05 Thread Michael Meissner
into the trunk assuming the power9 bootstrap/make check passes without regressions? [gcc] 2017-10-05 Michael Meissner * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic memory operation instruction support. * config.gcc (powerpc*-*-*): Include amo.h as an

Re: [PATCH], Add PowerPC ISA 3.0 Atomic Memory Operation functions

2017-10-06 Thread Michael Meissner
On Fri, Oct 06, 2017 at 11:45:10AM -0500, Segher Boessenkool wrote: > Hi Mike, > > On Thu, Oct 05, 2017 at 06:14:14PM -0400, Michael Meissner wrote: > > This patch adds support for most of the PowerPC ISA 3.0 Atomic Memory > > Operation > > instructions, listed i

Re: [PATCH], Add PowerPC ISA 3.0 Atomic Memory Operation functions

2017-10-06 Thread Michael Meissner
On Fri, Oct 06, 2017 at 01:25:33PM -0500, Segher Boessenkool wrote: > Hi! > > On Fri, Oct 06, 2017 at 02:03:43PM -0400, Michael Meissner wrote: > > > Do you really need the mr insns? Can't you express that in the > > > arguments? Perhaps using a union of __int

Re: [PATCH], Add PowerPC ISA 3.0 Atomic Memory Operation functions

2017-10-09 Thread Michael Meissner
On Mon, Oct 09, 2017 at 11:03:10AM -0500, Segher Boessenkool wrote: > On Fri, Oct 06, 2017 at 02:30:16PM -0400, Michael Meissner wrote: > > Here is the revised amo.h. I tested the two test files amo1.c and amo2.c, > > and > > they both compile. It is interesting, use %P0 re

Re: [PATCH] rs6000: Fix fsel pattern (PR79211)

2017-01-27 Thread Michael Meissner
Mike, does this look correct? Was there a > reason it used fpr_reg_operand? > > Bootstrapped and tested on powerpc64-linux. I dunno, we need to look at why somebody is putting a GPR in there in the first place. The instruction doesn't support GPRs. Perhaps the generator funct

[PATCH], PR target/78597, Fix PowerPC fp-int-convert-{float128-ieee,float64x}

2017-01-30 Thread Michael Meissner
cause it was covered by existing tests. Can I check this into trunk? 2017-01-30 Michael Meissner PR target/78597 PR target/79038 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete, no longer used. (convert_int_to_float128): Lik

Re: [PATCH] Fix powerpc movsi_from_sf define_insn_and_split constraints (PR target/79354)

2017-02-03 Thread Michael Meissner
s a 32-bit shift right in the GPR). Similarly, going from a GPR to a vector register, we do a shift left 32-bits, direct move, and then convert from vector format to scalar format. So to enable the code that was causing the problem, you need 64-bit. In 32-bit, it does a store, ori 2,2,0, and then a

Re: [PATCH] Fix powerpc movsi_from_sf define_insn_and_split constraints (PR target/79354)

2017-02-03 Thread Michael Meissner
On Fri, Feb 03, 2017 at 09:11:38PM +0100, Jakub Jelinek wrote: > On Fri, Feb 03, 2017 at 03:05:58PM -0500, Michael Meissner wrote: > > > > --- gcc/testsuite/gcc.target/powerpc/pr79354.c.jj 2017-02-03 > > > > 02:37:44.147938375 +0100 > > > > +++ gcc

[PATCH] PR target/66144, PowerPC improve vector compare

2017-02-03 Thread Michael Meissner
acation on Wednesday (February 8th), and I will return to work on Friday February 24th. If I don't get the approval by Monday, I will likely hold the patches until I return to work. [gcc] 2017-02-03 Michael Meissner PR target/66144 * config/rs6000/vector.md (v

Re: [PATCH] PR target/66144, PowerPC improve vector compare

2017-02-03 Thread Michael Meissner
On Fri, Feb 03, 2017 at 06:07:56PM -0600, Segher Boessenkool wrote: > On Fri, Feb 03, 2017 at 04:25:00PM -0500, Michael Meissner wrote: > > +;; Return 1 if operand is either a vector constant of all 0 bits of a > > vector > > +;; constant of all 1 bits. > > +(define_pre

Re: [PATCH] PR target/66144, PowerPC improve vector compare

2017-02-06 Thread Michael Meissner
On Fri, Feb 03, 2017 at 06:07:56PM -0600, Segher Boessenkool wrote: > On Fri, Feb 03, 2017 at 04:25:00PM -0500, Michael Meissner wrote: > > +;; Return 1 if operand is either a vector constant of all 0 bits of a > > vector > > +;; constant of all 1 bits. > > +(define_pre

Re: [PATCH] rs6000: float128 on BE and 32-bit

2017-02-27 Thread Michael Meissner
correctly switches __{add,sub,mul,div}kf3 to use the hardware instructions. Yeah, if there is a demand for -mfloat128-hardware -m32, we could do it, but for now I think it is best to require 64-bit. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

[PATCH], PR target/79434, fix PowerPC recursive calls that can replaced at runtime

2017-02-28 Thread Michael Meissner
t ran successfully in 64-bit mode. Can I check this patch into the trunk? Since the bug was reported against GCC 6, can I apply the patch to GCC 6 assuming the patch applies cleanly and has no regressions after a burn in period on the GCC 7 trunk? [gcc] 2017-02-28 Michael Meissner PR t

Re: [PATCH], PR target/79434, fix PowerPC recursive calls that can replaced at runtime

2017-03-01 Thread Michael Meissner
On Wed, Mar 01, 2017 at 05:21:44AM -0600, Segher Boessenkool wrote: > On Wed, Mar 01, 2017 at 01:37:14AM -0500, Michael Meissner wrote: > > This patch fixes PR target/79439, which is a recursive call when the 64-bit > > code is compiled with -fpic doesn't have the NOP af

[PATCH], PR target/79038, Improve char/short -> _Float128 conversions

2017-03-03 Thread Michael Meissner
this patch via bootstrap and make check and there were no regressions. Can I check this patch into the trunk? [gcc] 2017-03-03 Michael Meissner PR target/79038 * config/rs6000/rs6000.md (float2): Define insns to convert from signed/unsigned char/short to IEEE 128-bit

Re: [RFC] VEC_SELECT sanity checking in genrecog

2017-03-03 Thread Michael Meissner
28 (match_operand:VSX_LE_128 1 "input_operand" ",Z,") (const_int 64)))] "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR" "@ xxpermdi %x0,%x1,%x1,2 lxvd2x %x0,%y1 stxvd2x %x1,%y0" [(set_attr "length" "4&qu

Re: [RFC] VEC_SELECT sanity checking in genrecog

2017-03-03 Thread Michael Meissner
On Fri, Mar 03, 2017 at 02:58:06PM -0600, Segher Boessenkool wrote: > On Fri, Mar 03, 2017 at 03:43:03PM -0500, Michael Meissner wrote: > > On Fri, Mar 03, 2017 at 02:19:57PM -0600, Segher Boessenkool wrote: > > > On Fri, Mar 03, 2017 at 05:28:27PM +0100, Jakub Jelinek wrote: &g

Re: [PATCH], PR target/79038, Improve char/short -> _Float128 conversions

2017-03-09 Thread Michael Meissner
On Thu, Mar 09, 2017 at 12:45:00PM -0600, Segher Boessenkool wrote: > On Fri, Mar 03, 2017 at 01:10:18PM -0500, Michael Meissner wrote: > > On January 31st I commited a patch that improves conversion of > > signed/unsigned > > char/short values to 32-bit and 64-bit flo

Re: [PATCH] [PATCH, rs6000] Fix pr79941 (v2)

2017-03-09 Thread Michael Meissner
ecall. Perhaps it is related to: 2016-12-19 Will Schmidt * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector multiply and subtract builtins. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

[PATCH], PR target/79947, Fix compiler segmentation fault with -Ofast -mno-powerpc-gfxopt

2017-03-14 Thread Michael Meissner
does not cause any regressions. Is it ok to apply to the trunk? Assuming there are no additional problems, can I apply the patch to the GCC 5 and 6 branches as well? [gcc] 2017-03-14 Michael Meissner PR target/79947 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for

[PATCH], PR target/71294, Fix compiler segfault for reload & power8

2017-03-15 Thread Michael Meissner
hey would likely see the issue. GCC 7 has switched to LRA, which is more robust, and doesn't show the problem (unless you use the -mno-lra switch). [gcc] 2017-03-15 Michael Meissner PR target/71294 * config/rs6000/vsx.md (vsx_splat_, VSX_D iterator): Allow a SPLAT o

[PATCH], Fix PR 70131, disable (double)(int) optimization for power8

2016-03-11 Thread Michael Meissner
apply to the trunk? I would like to apply it to the gcc 5 branch as well. Is this ok also? [gcc] 2016-03-11 Michael Meissner PR target/70131 * config/rs6000/rs6000.md (round322_fprs): Do not do the optimization if we have direct move. (roundu322_fprs): Likewise.

[PATCH] PR libgcc/70363, fix __float128 problem with non ISA-3.0 assembler

2016-03-22 Thread Michael Meissner
CLWdO.o: In function `print_hex.constprop.0': test-float128-6.c:(.text+0x84): undefined reference to `__extendkftf2' collect2: error: ld returned 1 exit status If built a compiler with the patch, it succeeds. Is this patch ok to install in the trunk? 2016-03-22 Michael M

[PATCH, applied] PR 70381, fix -mfloat128 setting

2016-03-23 Thread Michael Meissner
sions. Sorry about enabling it by default. 2016-03-23 Michael Meissner PR target/70381 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set -mfloat128 here. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email:

[PATCH], Re-fix PR 70381 (disable -mfloat128 by default) and add workaround for PR 70589

2016-04-07 Thread Michael Meissner
he IEEE 128-bit floating point emulator in libgcc is indeed built. Are these patches ok to install in the GCC trunk? [gcc] 2016-04-07 Michael Meissner PR target/70589 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the target attribute and pragma from changing

[PATCH], PR target/70640, Fix thinkos in PowerPC IEEE 128-bit floating point emulation

2016-04-12 Thread Michael Meissner
int. (ieee_128bit_vsx_abs2_internal): Likewise. (ieee_128bit_vsx_nabs2_internal): Likewise. (ieee_128bit_vsx_nabs2): Correct splitter so that it generates (neg (abs ...)) instead of (abs ...). [gcc/testsuite] 2016-04-12 Michael Meissner PR target/70680

Re: [PATCH #2], PR target/70640, Fix thinkos in PowerPC IEEE 128-bit floating point emulation

2016-04-14 Thread Michael Meissner
test and obvious, I went ahead and commited the following patch: 2016-04-14 Michael Meissner PR target/70640 * gcc.target/powerpc/pr70640.c: Fix test so it correctly works on a power7 system that does not have an assembler that supports power8. -- Michael Mei

[PATCH] Fix PR target/70669 (allow __float128 to use direct move)

2016-04-14 Thread Michael Meissner
. Is it ok to apply to the GCC trunk? [gcc] 2016-04-14 Michael Meissner PR target/70669 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add direct move handlers for KFmode. Change TFmode handlers test from FLOAT128_IEEE_P to FLOAT128_VECTOR_P. [gcc

[PATCH], Use VMRGEW on PowerPC power8/power9 to construct V4SFmode

2016-09-19 Thread Michael Meissner
re no regressions. Is this patch ok to check into the trunk? 2016-09-19 Michael Meissner * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF inits on power8 and above, use the VMRGEW instruction instead of a permute. * config/rs6000/altiv

Re: [PATCH] Optimise the fpclassify builtin to perform integer operations when possible

2016-09-19 Thread Michael Meissner
years with the PowerPC is that it can be rather expensive to move things from the floating point/vector unit to the integer registers and vice versa. This is particularly true if you having to do the transfer via the memory unit via stores and loads of different sizes. -- Michael Meissner, IBM I

Re: [PATCH], Use VMRGEW on PowerPC power8/power9 to construct V4SFmode

2016-09-19 Thread Michael Meissner
On Mon, Sep 19, 2016 at 05:43:19PM -0500, Segher Boessenkool wrote: > On Mon, Sep 19, 2016 at 06:02:08PM -0400, Michael Meissner wrote: > > vector float combine (float a, float b, float c, float d) > > { > > return (vector float) { a, b, c, d }; > > } > > [ .

Re: [PATCH], Use VMRGEW on PowerPC power8/power9 to construct V4SFmode

2016-09-19 Thread Michael Meissner
On Mon, Sep 19, 2016 at 06:20:59PM -0500, Segher Boessenkool wrote: > On Mon, Sep 19, 2016 at 06:51:42PM -0400, Michael Meissner wrote: > > > > However ISA 2.07 (i.e. power8) added the VMRGEW instruction, which can > > > > do this > > > > more simply: >

Re: [PATCH] Optimise the fpclassify builtin to perform integer operations when possible

2016-09-20 Thread Michael Meissner
On Tue, Sep 20, 2016 at 01:19:07PM +0100, Tamar Christina wrote: > On 19/09/16 23:16, Michael Meissner wrote: > >On Mon, Sep 12, 2016 at 04:19:32PM +, Tamar Christina wrote: > >>Hi All, > >> > >>This patch adds an optimized route to the fpclassify builtin

[PATCH], PR 77670, Fix PowerPC ISA 3.0 -mpower9-minmax code generation

2016-09-20 Thread Michael Meissner
not do the full bootstrap and make check sequence. I can do this if you prefer. Is the patch ok to put into the trunk? 2016-09-20 Michael Meissner PR target/77670 * config/rs6000/predicates.md (invert_fpmask_comparison_operator): New predicate that matches the ISA 3.

Re: [PATCH], Backport PR 77670 fix to GCC 6.3

2016-09-29 Thread Michael Meissner
check with no regressions on a little endian Power8 system. Can I apply this patch to the gcc 6.x branch? 2016-09-29 Michael Meissner Back port from trunk 2016-09-21 Michael Meissner PR target/77670 * config/rs6000/predicates.md

Patch, Split powerpc -mfloat128 into 2 parts

2016-10-04 Thread Michael Meissner
ch in the trunk? [gcc] 2016-10-03 Michael Meissner * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type that enables the IEEE 128-bit floating point type infrastructre, and -mfloat128 that enables the keyword. Define

Re: Patch, Split powerpc -mfloat128 into 2 parts

2016-10-04 Thread Michael Meissner
On Tue, Oct 04, 2016 at 09:42:21PM +, Joseph Myers wrote: > On Tue, 4 Oct 2016, Michael Meissner wrote: > > > It also changes __ibm128/__float128, and only registers the keywords if the > > long double type is not IBM extended double or IEEE 128-bit floating point > &g

Re: Patch, Split powerpc -mfloat128 into 2 parts

2016-10-05 Thread Michael Meissner
On Tue, Oct 04, 2016 at 09:42:21PM +, Joseph Myers wrote: > On Tue, 4 Oct 2016, Michael Meissner wrote: > > > It also changes __ibm128/__float128, and only registers the keywords if the > > long double type is not IBM extended double or IEEE 128-bit floating point > &g

Re: Patch, Split powerpc -mfloat128 into 2 parts

2016-10-07 Thread Michael Meissner
On Thu, Oct 06, 2016 at 05:19:39PM -0500, Segher Boessenkool wrote: > On Wed, Oct 05, 2016 at 06:18:50PM -0400, Michael Meissner wrote: > > I have removed the #define of __float128, and instead created a keyword that > > points to the _Float128 type. I added a little commentar

[PATCH], PR 77924, Fix PowerPC breakage on AIX

2016-10-10 Thread Michael Meissner
to apply the patch? 2016-10-10 Michael Meissner PR target/77924 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the distinct __ibm128 IBM extended double type if long doubles are 128-bits and the default format for long double is IEEE 128-bit. Index

[PATCH], Allow SImode to go into VSX registers on PowerPC ISA 2.07 (power8) and above

2016-10-26 Thread Michael Meissner
other benchmarks were performance neutral. The difference is it eliminates some load/store of GPRs and move directs in favor of doing the load/store 32-bit integer instructions to the FPRs. [gcc] 2016-10-26 Michael Meissner * config/rs6000/constraints.md (wH constraint): Add new

Re: [PATCH], Allow SImode to go into VSX registers on PowerPC ISA 2.07 (power8) and above

2016-10-26 Thread Michael Meissner
small integers can go in vector registers. After this, I plan to work on setting vector elements, which will be easier if the small integer types can go in vector registers. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com

Re: [PATCH], Allow SImode to go into VSX registers on PowerPC ISA 2.07 (power8) and above

2016-10-27 Thread Michael Meissner
On Thu, Oct 27, 2016 at 02:55:51PM -0500, Segher Boessenkool wrote: > On Wed, Oct 26, 2016 at 06:51:54PM -0400, Michael Meissner wrote: > > (zero_extendsi2): Reorder pattern, so RLDICL comes before > > the FPR and VSX loads, but before MTVSRWZ. Remove ??, ! from the >

[PATCH], Optimize (double)vec_extract(n) on PowerPC

2016-10-31 Thread Michael Meissner
o the improvements in the SImode extraction and when 464.h264ref is auto vectorized, one of the extracts converted to floating point and generated the new code. However, neither change affected the performance of those two benchmarks. Can I check this into the trunk? [gcc] 2016-10-31 Michael Mei

Re: [PATCH], Optimize (double)vec_extract(n) on PowerPC

2016-10-31 Thread Michael Meissner
On Mon, Oct 31, 2016 at 06:04:47PM -0500, Segher Boessenkool wrote: > On Mon, Oct 31, 2016 at 05:25:56PM -0400, Michael Meissner wrote: > > +(define_insn "vsx_xvcvsxwdp_df" > > + [(set (match_operand:DF 0 "vsx_register_operand" "=ws&quo

Re: [PATCH, RFC, rs6000] Add overloaded built-in function support to altivec.h, and re-implement vec_add

2016-10-31 Thread Michael Meissner
does not support #pragma GCC target nor the target attribute. One question is how many of the billions and billions (ok, 1,345) of the rs6000 built-ins would be improved by expanding them in gimple time rather than rtl? -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

[PATCH], Add PowerPC ISA 3.0 vector extract support

2016-06-29 Thread Michael Meissner
, and the fix for PR 71677 that was submitted on June 27th being installed before these patches can be applied. Assuming the above patches are supplied can I back port it to the GCC 6.2 after a burn-in period? [gcc] 2016-06-29 Michael Meissner * config/rs6000/predicates.md

Re: [PATCH], Add PowerPC ISA 3.0 vector extract support

2016-06-29 Thread Michael Meissner
On Wed, Jun 29, 2016 at 03:33:24PM -0400, Michael Meissner wrote: > This patch adds support to generate the ISA 3.0 VEXTRACTUB, VEXTRACTUH, and > XXEXTRACTUW instructions to extract a constant element from the small vector > integer types. I also added support to generate STXSIWX if a

[PATCH], Fix PowerPC bug 71677, make xalancbmk build in Spec 2006

2016-06-29 Thread Michael Meissner
a burn-in period? 2016-06-29 Michael Meissner PR target/71677 * config/rs6000/constraints.md (wY constraint): New constraint to match the requirements for the LXSD and STXSD instructions. * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New

Re: [PATCH], Add PowerPC ISA 3.0 vector extract support

2016-06-29 Thread Michael Meissner
On Wed, Jun 29, 2016 at 05:20:26PM -0500, Segher Boessenkool wrote: > On Wed, Jun 29, 2016 at 03:33:24PM -0400, Michael Meissner wrote: > > Is it ok to install in the trunk? > > See comments below. Okay with that taken care of. > > > Ideally, I would like to also i

Re: [PATCH], Fix PowerPC bug 71677, make xalancbmk build in Spec 2006

2016-06-29 Thread Michael Meissner
On Wed, Jun 29, 2016 at 06:06:04PM -0500, Segher Boessenkool wrote: > On Wed, Jun 29, 2016 at 05:58:37PM -0400, Michael Meissner wrote: > > Assuming there are no regressions in power7, are these patches ok to > > install in > > the trunk, and backport to GCC 6.2 after a bur

Re: [PATCH], Fix PowerPC bug 71677, make xalancbmk build in Spec 2006

2016-06-29 Thread Michael Meissner
And yes, the reply was to the other patch in play (vector extract). I think it is time to go home for the night, and I will commit the fix for PR 71677 tomorrow. :-) -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone

[PATCH], Fix PowerPC PR target/71720 (bad vec_init of V4SF on power9)

2016-06-30 Thread Michael Meissner
-06-30 Michael Meissner PR target/71720 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting the insns, use vsx_xxspltw_v4sf_direct which does not check for little endian. [gcc/testsuite] 2016-06-30 Michael Meissner PR target/71720

<    5   6   7   8   9   10   11   12   13   14   >