Made this into a bug report: PR1286

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35439 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2007-03-28 19:07:34 +00:00
parent f6e9353e1a
commit 03179060ee

View File

@ -572,43 +572,3 @@ swizzle:
ret
//===---------------------------------------------------------------------===//
We should compile this:
#include <xmmintrin.h>
void foo(__m128i *A, __m128i *B) {
*A = _mm_sll_epi16 (*A, *B);
}
to:
_foo:
subl $12, %esp
movl 16(%esp), %edx
movl 20(%esp), %eax
movdqa (%edx), %xmm1
movdqa (%eax), %xmm0
psllw %xmm0, %xmm1
movdqa %xmm1, (%edx)
addl $12, %esp
ret
not:
_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