llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner cda8875433 when we know the signbit of an input to uint_to_fp is zero,
change it to sint_to_fp on targets where that is cheaper (and
visaversa of course).  This allows us to compile uint_to_fp to:

_test:
	movl	4(%esp), %eax
	shrl	$23, %eax
	cvtsi2ss	%eax, %xmm0
	movl	8(%esp), %eax
	movss	%xmm0, (%eax)
	ret

instead of:

	.align	3
LCPI1_0:					##  double
	.long	0	## double least significant word 4.5036e+15
	.long	1127219200	## double most significant word 4.5036e+15
	.text
	.align	4,0x90
	.globl	_test
_test:
	subl	$12, %esp
	movl	16(%esp), %eax
	shrl	$23, %eax
	movl	%eax, (%esp)
	movl	$1127219200, 4(%esp)
	movsd	(%esp), %xmm0
	subsd	LCPI1_0, %xmm0
	cvtsd2ss	%xmm0, %xmm0
	movl	20(%esp), %eax
	movss	%xmm0, (%eax)
	addl	$12, %esp
	ret




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52747 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26 00:16:49 +00:00
..
CallingConvLower.cpp Wrap MVT::ValueType in a struct to get type safety 2008-06-06 12:08:01 +00:00
DAGCombiner.cpp when we know the signbit of an input to uint_to_fp is zero, 2008-06-26 00:16:49 +00:00
LegalizeDAG.cpp Remove the OrigVT member from AtomicSDNode, as it is redundant with 2008-06-25 16:07:49 +00:00
LegalizeFloatTypes.cpp Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00
LegalizeIntegerTypes.cpp Add/complete support for integer and float 2008-06-25 16:34:21 +00:00
LegalizeTypes.cpp Share some code that is common between integer and 2008-06-20 18:40:50 +00:00
LegalizeTypes.h Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00
LegalizeTypesGeneric.cpp Support for expanding the result of EXTRACT_ELEMENT. 2008-06-23 15:08:15 +00:00
LegalizeVectorTypes.cpp Cleanup up LegalizeTypes handling of loads and 2008-06-23 14:19:45 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Remove a redundant return. 2008-06-21 19:34:57 +00:00
ScheduleDAGList.cpp Use the new PriorityQueue in ScheduleDAGList too, which also 2008-06-23 23:40:09 +00:00
ScheduleDAGRRList.cpp Move a DenseMap's declaration outside of a loop, and just call 2008-06-23 21:15:00 +00:00
SelectionDAG.cpp - Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a 2008-06-25 20:52:59 +00:00
SelectionDAGISel.cpp Remove the OrigVT member from AtomicSDNode, as it is redundant with 2008-06-25 16:07:49 +00:00
SelectionDAGPrinter.cpp Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeId 2008-06-21 19:18:17 +00:00
TargetLowering.cpp Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00