This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Calculating cosinus/sinus
- From: Oleg Endo <oleg dot endo at t-online dot de>
- To: jacob at jacob dot remcomp dot fr
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 11 May 2013 11:20:20 +0200
- Subject: Re: Calculating cosinus/sinus
- References: <518E0C29 dot 6050204 at jacob dot remcomp dot fr>
Hi,
This question is not appropriate for this mailing list.
Please take any further discussions to the gcc-help mailing list.
On Sat, 2013-05-11 at 11:15 +0200, jacob navia wrote:
> Hi
>
> When caculating the cos/sinus, gcc generates a call to a complicated
> routine that takes several thousand instructions to execute.
>
> Suppose the value is stored in some XMM register, say xmm0 and the
> result should be in another xmm register, say xmm1.
>
> Why it doesn't generate:
>
> movsd %xmm0,(%rsp)
> fldl (%rsp)
> fsin
> fstpl (%rsp)
> movsd (%rsp),%xmm1
>
> My compiler system (lcc-win) is generating that when optimizations are
> ON. Maybe there are some flags in gcc that I am missing?
These optimizations are usually turned on with -ffast-math.
You also have to make sure to select the appropriate CPU or architecture
type to enable the usage of certain instructions.
For more information see:
http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html
Cheers,
Oleg