This is the mail archive of the gcc-bugs@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]

[Bug target/14552] compiled trivial vector intrinsic code is inefficient



------- Comment #20 from pluto at agmk dot net  2005-11-21 18:38 -------
(In reply to comment #19)
> (In reply to comment #18)
> > can we classify this as a code size regression?
> 
> No because 3.3.x was also wrong in the sense it did not emit an emms.

ok.

gcc 4.1.0/20051113 with x87/mmx mode switch patch produces:

test:   movq    w, %mm0
        paddw   %mm0, %mm0
        movq    %mm0, w
        movl    w, %eax
        movl    w+4, %edx
        movl    %eax, dw
        movl    %edx, dw+4
        emms
        ret

        .comm   dw,8,8
        .comm   w,8,8

it isn't optimal but correct (emms opcode) and smaller than pure 4.1 output.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552


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