------- Comment #7 from hjl at lucon dot org 2007-10-17 21:48 -------
Icc generates:
#include <xmmintrin.h>
__m128i
foo (__m128i a, int n )
{
a = _mm_slli_epi32( a, n );
return a;
}
[EMAIL PROTECTED] tmp]$ /opt/intel/cce/10.0/bin/icc -c x.c
[EMAIL PROTECTED] tmp]$ objdump -d x.o
x.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <foo>:
0: 66 0f 6e cf movd %edi,%xmm1
4: 66 0f f2 c1 pslld %xmm1,%xmm0
8: c3 retq
9: 90 nop
a: 90 nop
b: 90 nop
[EMAIL PROTECTED] tmp]$
BTW, _mm_slli_si128 maps to "pslldq" and it only takes imm as shift count.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32961