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