llvm-6502/test/Transforms
Benjamin Kramer 0ef0e2e6d0 LoopVectorize: Emit reductions as log2(vectorsize) shuffles + vector ops instead of scalar operations.
For example on x86 with SSE4.2 a <8 x i8> add reduction becomes
	movdqa	%xmm0, %xmm1
	movhlps	%xmm1, %xmm1            ## xmm1 = xmm1[1,1]
	paddw	%xmm0, %xmm1
	pshufd	$1, %xmm1, %xmm0        ## xmm0 = xmm1[1,0,0,0]
	paddw	%xmm1, %xmm0
	phaddw	%xmm0, %xmm0
	pextrb	$0, %xmm0, %edx

instead of
	pextrb	$2, %xmm0, %esi
	pextrb	$0, %xmm0, %edx
	addb	%sil, %dl
	pextrb	$4, %xmm0, %esi
	addb	%dl, %sil
	pextrb	$6, %xmm0, %edx
	addb	%sil, %dl
	pextrb	$8, %xmm0, %esi
	addb	%dl, %sil
	pextrb	$10, %xmm0, %edi
	pextrb	$14, %xmm0, %edx
	addb	%sil, %dil
	pextrb	$12, %xmm0, %esi
	addb	%dil, %sil
	addb	%sil, %dl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170439 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-18 18:40:20 +00:00
..
ADCE
ArgumentPromotion
BBVectorize BBVectorize: Correctly merge SubclassOptionalData 2012-11-28 03:04:10 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim
DeadStoreElimination
EarlyCSE
FunctionAttrs
GlobalDCE
GlobalOpt Revert previous check in r168581, r169079 as they are still in code review status. 2012-12-01 10:54:28 +00:00
GVN unHECKify test. It was fixed by Chris in 2009. 2012-12-12 20:43:00 +00:00
IndVarSimplify Follow up to 168711: It's safe to base this analysis on the found compare, just return the value for the right predicate. 2012-11-29 19:07:57 +00:00
Inline Take into account minimize size attribute in the inliner. 2012-12-13 01:05:25 +00:00
InstCombine Add back FoldOpIntoPhi optimizations with fix. Included test cases to help catch these errors and to test the presence of the optimization itself 2012-12-14 22:08:26 +00:00
InstSimplify Added a slew of SimplifyInstruction floating-point optimizations, many of which take advantage of fast-math flags. Test cases included. 2012-12-12 00:27:46 +00:00
Internalize
IPConstantProp
JumpThreading
LCSSA
LICM
LoopDeletion
LoopIdiom - Re-enable population count loop idiom recognization 2012-12-09 03:12:46 +00:00
LoopRotate
LoopSimplify
LoopStrengthReduce
LoopUnroll
LoopUnswitch
LoopVectorize LoopVectorize: Emit reductions as log2(vectorsize) shuffles + vector ops instead of scalar operations. 2012-12-18 18:40:20 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
MetaRenamer
ObjCARC
PhaseOrdering
PruneEH
Reassociate
ScalarRepl
SCCP
SimplifyCFG Fix logic to determine whether to turn a switch into a lookup table. When 2012-11-30 02:02:42 +00:00
SimplifyLibCalls instcombine: Migrate puts optimizations 2012-11-29 19:15:17 +00:00
Sink
SROA Rename the test so that we can add additional vectors-of-pointers tests 2012-12-18 05:50:54 +00:00
StripSymbols
TailCallElim
TailDup