This is the mail archive of the gcc@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: Calculating cosinus/sinus


On Sat, 11 May 2013, 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?

Òr there is some other reason?

fsin is slower and less precise than the libc SSE2 implementation.

--
Marc Glisse


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