Re: [PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-07-05 Thread Segher Boessenkool
On Fri, Jul 01, 2016 at 08:04:46PM -0500, Bill Schmidt wrote: > Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no regressions. > Is this ok for trunk, and eventual 6.2 backport? Okay for both. Just a few cosmetics: > + /* If this is a VSX register, generate the special

Re: [PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-07-01 Thread Bill Schmidt
Hi, I've revised the patch to address the previous concerns. rs6000_split_signbit has been greatly simplified since SF and DF modes are not currently of interest. The use of -static-libgcc did indeed turn out to be leftover from long-ago necessity and is no longer needed. I also updated the

Re: [PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-07-01 Thread Michael Meissner
On Fri, Jul 01, 2016 at 04:37:35PM -0500, Bill Schmidt wrote: > Hi Segher, > > > On Jun 29, 2016, at 4:43 PM, Segher Boessenkool > > wrote: > > > > Why does this need -static-libgcc? > > Mike, can you please respond to this? I was curious about this also > but

Re: [PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-07-01 Thread Bill Schmidt
Hi Segher, > On Jun 29, 2016, at 4:43 PM, Segher Boessenkool > wrote: > > Hi, > > On Tue, Jun 28, 2016 at 04:44:08PM -0500, Bill Schmidt wrote: >> +void >> +rs6000_split_signbit (rtx dest, rtx src) >> +{ >> + machine_mode d_mode = GET_MODE (dest); >> +

Re: [PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-06-29 Thread Segher Boessenkool
Hi, On Tue, Jun 28, 2016 at 04:44:08PM -0500, Bill Schmidt wrote: > +void > +rs6000_split_signbit (rtx dest, rtx src) > +{ > + machine_mode d_mode = GET_MODE (dest); > + machine_mode s_mode = GET_MODE (src); > + rtx dest_di = (d_mode == DImode) ? dest : gen_lowpart (DImode, dest); > + rtx

[PATCH, rs6000] Use direct moves for __builtin_signbit for 128-bit floating-point

2016-06-28 Thread Bill Schmidt
Hi, Currently GCC generates a store followed by a load for __builtin_signbit for both IBM long double and IEEE-128 floating point. This patch, originating with Michael Meissner, adds logic to instead use direct move instructions. The original patch also added direct-move support for single- and