llvm-project/llvm/lib
Nate Begeman 269a6da023 ~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types coming in future patches.
For:

define <2 x i64> @shl(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp {
entry:
  %shl = shl <4 x i32> %r, %a                     ; <<4 x i32>> [#uses=1]
  %tmp2 = bitcast <4 x i32> %shl to <2 x i64>     ; <<2 x i64>> [#uses=1]
  ret <2 x i64> %tmp2
}

We get:

_shl:                                   ## @shl
	pslld	$23, %xmm1
	paddd	LCPI0_0, %xmm1
	cvttps2dq	%xmm1, %xmm1
	pmulld	%xmm1, %xmm0
	ret

Instead of:

_shl:                                   ## @shl
	pshufd	$3, %xmm0, %xmm2
	movd	%xmm2, %eax
	pshufd	$3, %xmm1, %xmm2
	movd	%xmm2, %ecx
	shll	%cl, %eax
	movd	%eax, %xmm2
	pshufd	$1, %xmm0, %xmm3
	movd	%xmm3, %eax
	pshufd	$1, %xmm1, %xmm3
	movd	%xmm3, %ecx
	shll	%cl, %eax
	movd	%eax, %xmm3
	punpckldq	%xmm2, %xmm3
	movd	%xmm0, %eax
	movd	%xmm1, %ecx
	shll	%cl, %eax
	movd	%eax, %xmm2
	movhlps	%xmm0, %xmm0
	movd	%xmm0, %eax
	movhlps	%xmm1, %xmm1
	movd	%xmm1, %ecx
	shll	%cl, %eax
	movd	%eax, %xmm0
	punpckldq	%xmm0, %xmm2
	movdqa	%xmm2, %xmm0
	punpckldq	%xmm3, %xmm0
	ret

llvm-svn: 109549
2010-07-27 22:37:06 +00:00
..
Analysis recommit simplification (originally r109504, backed out in r109508) now that problem in CallSiteBase is fixed 2010-07-27 22:02:00 +00:00
Archive Eliminate some unnessary Path::exists() calls. 2010-05-27 20:51:54 +00:00
AsmParser Revert r109361; it's impossible to write a call with an argument with an 2010-07-24 23:06:59 +00:00
Bitcode Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
CodeGen It is FE's responsibility to emit proper directory name. 2010-07-27 20:51:15 +00:00
CompilerDriver Fix silent failure with no input files. 2010-07-27 11:19:40 +00:00
ExecutionEngine Don't call __register_frame from the JIT on systems that use setjmp/longjmp 2010-07-26 21:58:00 +00:00
Linker Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
MC Fix format-specifier warning 2010-07-26 03:55:44 +00:00
Support Don't pass StringRef by reference. 2010-07-14 22:38:02 +00:00
System Rather than using an ifdef on the target to zero out fields, 2010-07-14 14:32:33 +00:00
Target ~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types coming in future patches. 2010-07-27 22:37:06 +00:00
Transforms recommit simplification (r109502, backed out r109509); seems to innocent 2010-07-27 16:44:23 +00:00
VMCore After updating value handles for RAUW, check that no weak or tracking handles 2010-07-27 06:53:14 +00:00
Makefile remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00