Looks like pinsr is not being generated on llvm-x86_64-ubuntu... jabbey at davinci:~$ /home/jabbey/src/osuosl/buildbot/sandbox/llvm-x86_64-ubuntu/llvm-x86_64-ubuntu/llvm/Debug+Asserts/bin/llc < /home/jabbey/src/osuosl/buildbot/sandbox/llvm-x86_64-ubuntu/llvm-x86_64-ubuntu/llvm/test/CodeGen/X86/mmx-pinsrw.ll -mtriple=x86_64-linux -mattr=+mmx,+sse2 produces: .file "<stdin>" .section .rodata.cst16,"aM", at progbits,16 .align 16 .LCPI0_0: .byte 0 # 0x0 .byte 1 # 0x1 .byte 4 # 0x4 .byte 5 # 0x5 .byte 8 # 0x8 .byte 9 # 0x9 .byte 12 # 0xc .byte 13 # 0xd .byte 254 # 0xfe .byte 255 # 0xff .byte 254 # 0xfe .byte 255 # 0xff .byte 254 # 0xfe .byte 255 # 0xff .byte 254 # 0xfe .byte 255 # 0xff .text .globl __unnamed_1 .align 16, 0x90 .type __unnamed_1, at function __unnamed_1: # @2 .Ltmp0: .cfi_startproc # BB#0: movd __unnamed_2+6(%rip), %xmm1 movd __unnamed_2+2(%rip), %xmm0 punpckldq %xmm1, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] movzwl __unnamed_2+8(%rip), %eax movd %eax, %xmm2 movzwl __unnamed_2+4(%rip), %eax movd %eax, %xmm1 punpckldq %xmm2, %xmm1 # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1] punpckldq %xmm1, %xmm0 # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] movd __unnamed_3(%rip), %xmm1 movss %xmm1, %xmm0 pshufb .LCPI0_0(%rip), %xmm0 movq %xmm0, __unnamed_2(%rip) ret .Ltmp1: .size __unnamed_1, .Ltmp1-__unnamed_1 .Ltmp2: .cfi_endproc .Leh_func_end0: .section ".note.GNU-stack","", at progbits Odd? Joe Abbey Software Architect Arxan Technologies, Inc. 1305 Cumberland Ave, Ste 215 West Lafayette, IN 47906 W: 765-889-4756 x2 C: 765-464-9893 jabbey at arxan.com www.arxan.com