[LLVMbugs] [Bug 1286] NEW: SSE Code is Horrid!
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Wed Mar 28 12:07:06 PDT 2007
http://llvm.org/bugs/show_bug.cgi?id=1286
Summary: SSE Code is Horrid!
Product: libraries
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P2
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: isanbard at gmail.com
This:
#include <xmmintrin.h>
void foo(__m128i *A, __m128i *B) {
*A = _mm_sll_epi16 (*A, *B);
}
generates this code:
_foo:
movl 8(%esp), %eax
movdqa (%eax), %xmm0
#IMPLICIT_DEF %eax
pinsrw $2, %eax, %xmm0
xorl %ecx, %ecx
pinsrw $3, %ecx, %xmm0
pinsrw $4, %eax, %xmm0
pinsrw $5, %ecx, %xmm0
pinsrw $6, %eax, %xmm0
pinsrw $7, %ecx, %xmm0
movl 4(%esp), %eax
movdqa (%eax), %xmm1
psllw %xmm0, %xmm1
movdqa %xmm1, (%eax)
ret
This is obviously bad! We should be as good GCC at least.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list