[Bug target/14552] compiled trivial vector intrinsic code is ineffiencent
pluto at agmk dot net
gcc-bugzilla@gcc.gnu.org
Mon Nov 21 11:29:00 GMT 2005
------- Comment #16 from pluto at agmk dot net 2005-11-21 11:29 -------
without Uros' mmx-patch the gcc-4.1.0-20051113 generates amazing code:
(gcc -O3 -march=pentium3 -S -fomit-frame-pointer pr14552.c)
test: subl $20, %esp
movl w, %eax
movl w+4, %edx
movl %ebx, 8(%esp)
movl %esi, 12(%esp)
movl %eax, (%esp)
movl %edx, 4(%esp)
movswl (%esp),%esi
movl %edi, 16(%esp)
movswl 4(%esp),%ecx
movswl 2(%esp),%edi
movswl 6(%esp),%ebx
addl %esi, %esi
addl %ecx, %ecx
movzwl %si, %esi
sall $17, %edi
movzwl %cx, %ecx
sall $17, %ebx
movl %edi, %eax
movl 16(%esp), %edi
movl %ebx, %edx
orl %esi, %eax
movl 8(%esp), %ebx
orl %ecx, %edx
movl 12(%esp), %esi
movl %eax, w
movl %edx, w+4
movl w, %eax
movl w+4, %edx
movl %eax, dw
movl %edx, dw+4
addl $20, %esp
ret
.size test, .-test
.comm dw,8,8
.comm w,8,8
.ident "GCC: (GNU) 4.1.0 20051113 (experimental)"
.section .note.GNU-stack,"",@progbits
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552
More information about the Gcc-bugs
mailing list