1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/lib
Chris Lattner 8cb4abbc0e fix the buildvector->insertp[sd] logic to not always create a redundant
insertp[sd] $0, which is a noop.  Before:

_f32:                                   ## @f32
	pshufd	$1, %xmm1, %xmm2
	pshufd	$1, %xmm0, %xmm3
	addss	%xmm2, %xmm3
	addss	%xmm1, %xmm0
                                        ## kill: XMM0<def> XMM0<kill> XMM0<def>
	insertps	$0, %xmm0, %xmm0
	insertps	$16, %xmm3, %xmm0
	ret

after:

_f32:                                   ## @f32
	movdqa	%xmm0, %xmm2
	addss	%xmm1, %xmm2
	pshufd	$1, %xmm1, %xmm1
	pshufd	$1, %xmm0, %xmm3
	addss	%xmm1, %xmm3
	movdqa	%xmm2, %xmm0
	insertps	$16, %xmm3, %xmm0
	ret

The extra movs are due to a random (poor) scheduling decision.

llvm-svn: 112379
2010-08-28 17:59:08 +00:00
..
Analysis Fix an index calculation thinko. 2010-08-28 00:39:27 +00:00
Archive
AsmParser remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
Bitcode remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
CodeGen remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
CompilerDriver Add a TODO. 2010-08-23 19:24:12 +00:00
ExecutionEngine remove some dead code. 2010-08-23 03:12:06 +00:00
Linker Reapply r112091 and r111922, support for metadata linking, with a 2010-08-26 15:41:53 +00:00
MC squish dead code. 2010-08-28 03:21:03 +00:00
Support StringRef::compare_numeric also differed from StringRef::compare for characters > 127. 2010-08-26 15:25:35 +00:00
System Don't cast Win32 FILETIME structs to int64. Patch by Dimitry Andric! 2010-08-28 16:39:32 +00:00
Target fix the buildvector->insertp[sd] logic to not always create a redundant 2010-08-28 17:59:08 +00:00
Transforms remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
VMCore remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
Makefile