llvm-6502/test/CodeGen
Chris Lattner e70da20f9a implement a readme entry, compiling the code into:
_foo:
	movl	$12, %eax
	andl	4(%esp), %eax
	movl	_array(%eax), %eax
	ret

instead of:

_foo:
	movl	4(%esp), %eax
	shrl	$2, %eax
	andl	$3, %eax
	movl	_array(,%eax,4), %eax
	ret

As it turns out, this triggers all the time, in a wide variety of
situations, for example, I see diffs like this in various programs:

-       movl    8(%eax), %eax
-       shll    $2, %eax
-       andl    $1020, %eax
-       movl    (%esi,%eax), %eax
+       movzbl  8(%eax), %eax
+       movl    (%esi,%eax,4), %eax


-       shll    $2, %edx
-       andl    $1020, %edx
-       movl    (%edi,%edx), %edx
+       andl    $255, %edx
+       movl    (%edi,%edx,4), %edx

Unfortunately, I also see stuff like this, which can be fixed in the
X86 backend:

-       andl    $85, %ebx
-       addl    _bit_count(,%ebx,4), %ebp
+       shll    $2, %ebx
+       andl    $340, %ebx
+       addl    _bit_count(%ebx), %ebp



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44656 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-06 07:33:36 +00:00
..
Alpha xfail a test 2007-11-28 05:37:13 +00:00
ARM Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate. 2007-12-06 00:01:56 +00:00
CBackend Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
Generic upgrade this test 2007-11-28 18:22:12 +00:00
IA64 Convert .cvsignore files 2007-06-29 16:35:07 +00:00
PowerPC Fix a crash on invalid code due to memcpy lowering. 2007-11-27 22:14:42 +00:00
SPARC Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
X86 implement a readme entry, compiling the code into: 2007-12-06 07:33:36 +00:00