Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-29 Thread H.J. Lu
On Sun, Jun 25, 2017 at 2:28 PM, Andrew Pinski wrote: > On Sun, Jun 25, 2017 at 11:18 AM, Andrew Pinski wrote: >> On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse wrote: >>> +(for cmp (gt ge lt le) >>> + outp (convert convert negate

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-28 Thread Richard Biener
On Wed, Jun 28, 2017 at 10:50 AM, Christophe Lyon wrote: > On 25 June 2017 at 23:28, Andrew Pinski wrote: >> On Sun, Jun 25, 2017 at 11:18 AM, Andrew Pinski wrote: >>> On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-28 Thread Christophe Lyon
On 25 June 2017 at 23:28, Andrew Pinski wrote: > On Sun, Jun 25, 2017 at 11:18 AM, Andrew Pinski wrote: >> On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse wrote: >>> +(for cmp (gt ge lt le) >>> + outp (convert convert negate negate)

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-28 Thread Uros Bizjak
On Wed, Jun 28, 2017 at 9:37 AM, Jakub Jelinek wrote: > On Tue, Jun 27, 2017 at 10:52:47AM -0700, Andrew Pinski wrote: >> On Tue, Jun 27, 2017 at 7:56 AM, Richard Biener >> wrote: >> > On June 27, 2017 4:52:28 PM GMT+02:00, Tamar Christina >> >

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-28 Thread Jakub Jelinek
On Tue, Jun 27, 2017 at 10:52:47AM -0700, Andrew Pinski wrote: > On Tue, Jun 27, 2017 at 7:56 AM, Richard Biener > wrote: > > On June 27, 2017 4:52:28 PM GMT+02:00, Tamar Christina > > wrote: > >>> >> +(for cmp (gt ge lt le) > >>> >> +

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-27 Thread Andrew Pinski
On Tue, Jun 27, 2017 at 7:56 AM, Richard Biener wrote: > On June 27, 2017 4:52:28 PM GMT+02:00, Tamar Christina > wrote: >>> >> +(for cmp (gt ge lt le) >>> >> + outp (convert convert negate negate) >>> >> + outn (negate negate convert

RE: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-27 Thread Richard Biener
On June 27, 2017 4:52:28 PM GMT+02:00, Tamar Christina wrote: >> >> +(for cmp (gt ge lt le) >> >> + outp (convert convert negate negate) >> >> + outn (negate negate convert convert) >> >> + /* Transform (X > 0.0 ? 1.0 : -1.0) into copysign(1, X). */ >> >> + /*

RE: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-27 Thread Tamar Christina
> >> +(for cmp (gt ge lt le) > >> + outp (convert convert negate negate) > >> + outn (negate negate convert convert) > >> + /* Transform (X > 0.0 ? 1.0 : -1.0) into copysign(1, X). */ > >> + /* Transform (X >= 0.0 ? 1.0 : -1.0) into copysign(1, X). */ > >> + /* Transform (X < 0.0 ? 1.0 :

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-27 Thread Richard Biener
On Sun, Jun 25, 2017 at 11:28 PM, Andrew Pinski wrote: > On Sun, Jun 25, 2017 at 11:18 AM, Andrew Pinski wrote: >> On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse wrote: >>> +(for cmp (gt ge lt le) >>> + outp (convert convert negate

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-26 Thread Richard Sandiford
Joseph Myers writes: > On Mon, 26 Jun 2017, Richard Sandiford wrote: >> > Non-generic builtins like copysign are such a pain... We also end up >> > missing the 128-bit case that way (pre-existing problem, not your patch). >> > We seem to have a corresponding internal

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-26 Thread Joseph Myers
On Mon, 26 Jun 2017, Richard Sandiford wrote: > > Non-generic builtins like copysign are such a pain... We also end up > > missing the 128-bit case that way (pre-existing problem, not your patch). > > We seem to have a corresponding internal function, but apparently it is > > not used until

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-26 Thread Richard Sandiford
Marc Glisse writes: > +(for cmp (gt ge lt le) > + outp (convert convert negate negate) > + outn (negate negate convert convert) > + /* Transform (X > 0.0 ? 1.0 : -1.0) into copysign(1, X). */ > + /* Transform (X >= 0.0 ? 1.0 : -1.0) into copysign(1, X). */ > + /*

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-25 Thread Andrew Pinski
On Sun, Jun 25, 2017 at 11:18 AM, Andrew Pinski wrote: > On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse wrote: >> +(for cmp (gt ge lt le) >> + outp (convert convert negate negate) >> + outn (negate negate convert convert) >> + /* Transform (X > 0.0

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-25 Thread Andrew Pinski
On Sun, Jun 25, 2017 at 1:28 AM, Marc Glisse wrote: > +(for cmp (gt ge lt le) > + outp (convert convert negate negate) > + outn (negate negate convert convert) > + /* Transform (X > 0.0 ? 1.0 : -1.0) into copysign(1, X). */ > + /* Transform (X >= 0.0 ? 1.0 : -1.0)

Re: [PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-25 Thread Marc Glisse
+(for cmp (gt ge lt le) + outp (convert convert negate negate) + outn (negate negate convert convert) + /* Transform (X > 0.0 ? 1.0 : -1.0) into copysign(1, X). */ + /* Transform (X >= 0.0 ? 1.0 : -1.0) into copysign(1, X). */ + /* Transform (X < 0.0 ? 1.0 : -1.0) into copysign(1,-X). */

[PATCH] Fold (a > 0 ? 1.0 : -1.0) into copysign (1.0, a) and a * copysign (1.0, a) into abs(a)

2017-06-24 Thread Andrew Pinski
Hi, I decided to split my previous patch into two different patches, one for floating point and one for integer. This is the floating point version as we can use copysign here which should allow for more cases to be optimized and even by a phiopt which uses match-and-simplify (I hope to be able