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: GCC no longer synthesizing v2sf operations from v4sf operations?


Richard Guenther wrote:

Oh, so we used to expand to 3dnow? I see with gcc 3.4 produced:

foo:
       pushl   %ebp
       movl    %esp, %ebp
       pushl   %ebx
       subl    $84, %esp
       movl    12(%ebp), %eax
       movl    16(%ebp), %edx
[...]
       movq    -64(%ebp), %mm0
       movl    %ebx, -72(%ebp)
       movl    -36(%ebp), %ebx
       movl    %ebx, -68(%ebp)
       pfadd   -72(%ebp), %mm0
       movq    %mm0, -56(%ebp)
       movl    12(%eax), %eax
etc.

This doesn't happen anymore with 4.0/4.1.


IIRC, any generic code that produces MMX or 3DNow! instructions is disabled ATM, because gcc doesn't know how/when to insert emms/femms instruction. You don't want to mix 3dNow insns with x87 insn and use shared 3DNow/x87 registers without this insn...

Uros.


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