llvm-6502/test/CodeGen
Chris Lattner 3bd39d4ca8 Implement some dag combines that allow doing fneg/fabs/fcopysign in integer
registers if used by a bitconvert or using a bitconvert.  This allows us to
avoid constant pool loads and use cheaper integer instructions when the
values come from or end up in integer regs anyway.  For example, we now 
compile CodeGen/X86/fp-in-intregs.ll to:

_test1:
	movl	$2147483648, %eax
	xorl	4(%esp), %eax
	ret
_test2:
	movl	$1065353216, %eax
	orl	4(%esp), %eax
	andl	$3212836864, %eax
	ret

Instead of:
_test1:
	movss	4(%esp), %xmm0
	xorps	LCPI2_0, %xmm0
	movd	%xmm0, %eax
	ret
_test2:
	movss	4(%esp), %xmm0
	andps	LCPI3_0, %xmm0
	movss	LCPI3_1, %xmm1
	andps	LCPI3_2, %xmm1
	orps	%xmm0, %xmm1
	movd	%xmm1, %eax
	ret

bitconverts can happen due to various calling conventions that require
fp values to passed in integer regs in some cases, e.g. when returning
a complex.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-27 17:42:27 +00:00
..
Alpha xfail a test 2007-11-28 05:37:13 +00:00
ARM Remove xfail. This is fixed. 2007-12-20 02:25:21 +00:00
CBackend Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
CellSPU remove extraneous &&'s from tests, as Scott is apparently not going to. 2008-01-18 19:53:43 +00:00
Generic Fix some bugs in SimplifyNodeWithTwoResults where it would call deletenode to 2008-01-26 01:09:19 +00:00
IA64 Convert .cvsignore files 2007-06-29 16:35:07 +00:00
PowerPC Need to convert to LLVM code and not C. 2008-01-26 06:56:08 +00:00
SPARC Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
X86 Implement some dag combines that allow doing fneg/fabs/fcopysign in integer 2008-01-27 17:42:27 +00:00