forked from OSchip/llvm-project
parent
0ad22563b8
commit
4ad38abd40
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue