llvm-6502/include/llvm/Target
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
..
DarwinTargetAsmInfo.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
ELFTargetAsmInfo.h Do not propagate ELF-specific stuff (data.rel) into other targets. This simplifies code and also ensures correctness. 2009-03-30 15:27:43 +00:00
SubtargetFeature.h Propagate CPU string out of SubtargetFeatures 2009-05-23 19:50:50 +00:00
Target.td Revert 72707 and 72709, for the moment. 2009-06-02 03:12:52 +00:00
TargetAsmInfo.h Add directive to declare external globals. 2009-04-29 08:23:18 +00:00
TargetCallingConv.td Use CallConvLower.h and TableGen descriptions of the calling conventions 2009-04-17 19:07:39 +00:00
TargetData.h Clarify a comment. 2009-05-12 17:08:34 +00:00
TargetELFWriterInfo.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
TargetFrameInfo.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
TargetInstrDesc.h Add new TargetInstrDesc::hasImplicitUseOfPhysReg and 2009-04-12 07:26:51 +00:00
TargetInstrInfo.h Move getInstrOperandRegClass from the scheduler to TargetInstrInfo. 2009-05-05 00:30:09 +00:00
TargetInstrItineraries.h Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor 2008-11-21 00:12:10 +00:00
TargetIntrinsicInfo.h Added support to have TableGen provide information if an intrinsic (core 2009-02-24 23:17:49 +00:00
TargetJITInfo.h First patch in the direction of splitting MachineCodeEmitter in two subclasses: 2009-05-30 20:51:52 +00:00
TargetLowering.h Adapt the x86 build_vector dagcombine to the current state of the legalizer. 2009-06-05 21:37:30 +00:00
TargetMachine.h First patch in the direction of splitting MachineCodeEmitter in two subclasses: 2009-05-30 20:51:52 +00:00
TargetMachineRegistry.h Registry.h should not depend on CommandLine.h. 2009-01-16 07:02:28 +00:00
TargetMachOWriterInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetOptions.h Add new function attribute - noredzone. 2009-06-04 22:05:33 +00:00
TargetRegisterInfo.h Untabify. 2009-05-30 00:58:37 +00:00
TargetSchedule.td Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files. 2008-11-24 07:34:46 +00:00
TargetSelectionDAG.td Revert 72707 and 72709, for the moment. 2009-06-02 03:12:52 +00:00
TargetSubtarget.h Add initial support for back-scheduling address computations, 2008-12-16 03:35:01 +00:00