llvm-6502/test
Nate Begeman abc0199680 Adapt the x86 build_vector dagcombine to the current state of the legalizer.
build vectors with i64 elements will only appear on 32b x86 before legalize.
Since vector widening occurs during legalize, and produces i64 build_vector 
elements, the dag combiner is never run on these before legalize splits them
into 32b elements.

Teach the build_vector dag combine in x86 back end to recognize consecutive 
loads producing the low part of the vector.

Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes
since that was required implicitly.

Add a testcase for the transform.

Old:
	subl	$28, %esp
	movl	32(%esp), %eax
	movl	4(%eax), %ecx
	movl	%ecx, 4(%esp)
	movl	(%eax), %eax
	movl	%eax, (%esp)
	movaps	(%esp), %xmm0
	pmovzxwd	%xmm0, %xmm0
	movl	36(%esp), %eax
	movaps	%xmm0, (%eax)
	addl	$28, %esp
	ret

New:
	movl	4(%esp), %eax
	pmovzxwd	(%eax), %xmm0
	movl	8(%esp), %eax
	movaps	%xmm0, (%eax)
	ret




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05 21:37:30 +00:00
..
Analysis Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Archive
Assembler Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Bindings/Ocaml Nounwind is not valid for function return values. 2009-05-06 13:51:18 +00:00
Bitcode
BugPoint
CodeGen Adapt the x86 build_vector dagcombine to the current state of the legalizer. 2009-06-05 21:37:30 +00:00
DebugInfo Fix broken logic in DominatorTreeBase::Split. Part of PR4238. 2009-05-21 21:47:54 +00:00
ExecutionEngine Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Feature Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
FrontendAda
FrontendC Fix these so that they work on non-x86 Darwin machines. 2009-06-04 23:37:19 +00:00
FrontendC++ Testcase for (llvm-gcc-4.2) 72442 (PR 4242). 2009-05-26 23:19:19 +00:00
FrontendFortran
FrontendObjC
FrontendObjC++
Integer
lib
Linker
LLVMC
Other Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Scripts
TableGen Implement !if, analogous to $(if) in GNU make. 2009-05-14 23:26:46 +00:00
Transforms Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Verifier Dan noticed that the verifier wasn't thoroughly checking uses of 2009-05-29 19:39:36 +00:00
Makefile
Makefile.tests
TestRunner.sh