This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add simplification rule tanh (x) * cosh (x) -> sinh (x)


Hi

On 04/30, Jeff Law wrote:
> On 4/30/19 8:00 AM, Jakub Jelinek wrote:
> > On Tue, Apr 30, 2019 at 07:57:20AM -0600, Jeff Law wrote:
> >>> Just curious, do we want to add math identities like above to match.pd ?
> >> I'd think so.
> >>
> >>
> >>> In practice, I am not sure how often we'd see  "tanh * cosh" instead
> >>> of sinh directly in source,
> >> We're often surprised when what ultimately shows up in sources :-)  And
> >> a transformation that allows us to turn two transcendentals and a
> >> multiplication into a single transcendental  is going to be a big win.
> > 

I wonder why these kind of optimization are not in the EasyHacks page.
It is somewhat easy to add it and can give huge performance
improvements.

There is a blogpost that I wrote about the previous patches I submitted
here. I tried to be didadic, discussing from the mathematical
standpoint, to floating point numbers, and GCC implementation.
Although there may be several english errors, I think it is still
useful:

https://flusp.ime.usp.br/gcc/2019/03/26/making-gcc-optimize-some-trigonometric-functions/

> > I guess an important question is if such transformations need to be guarded
> > by some -ffast-math suboptions, whether those transformations work properly
> > for signed zeros, NaNs, sNaNs, infinities, guarantee the same ulp, have the
> > same -ferrno-math behavior etc.
> Yes.  If you look at the discussion with Gualiano for the first set in
> this space that was the hardest part.  And for Barbara's we know there's
> at least one issue in this space as well -- in particular it looks like
> the long double handling is incorrect in the sign bit for very small
> inputs.  The question is precisely where that's gone wrong :-)
> 
> jeff

Giuliano.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]