llvm-6502/test/CodeGen
Chris Lattner 9637d5b22e Teach X86ISelLowering that the second result of X86ISD::UMUL is a flags
result.  This allows us to compile:

void *test12(long count) {
      return new int[count];
}

into:

test12:
	movl	$4, %ecx
	movq	%rdi, %rax
	mulq	%rcx
	movq	$-1, %rdi
	cmovnoq	%rax, %rdi
	jmp	__Znam                  ## TAILCALL

instead of:

test12:
	movl	$4, %ecx
	movq	%rdi, %rax
	mulq	%rcx
	seto	%cl
	testb	%cl, %cl
	movq	$-1, %rdi
	cmoveq	%rax, %rdi
	jmp	__Znam

Of course it would be even better if the regalloc inverted the cmov to 'cmovoq',
which would eliminate the need for the 'movq %rdi, %rax'.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120936 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-05 07:49:54 +00:00
..
Alpha
ARM ARM/MC/ELF relocation "hello world" for movw/movt. 2010-12-01 02:40:06 +00:00
Blackfin
CBackend
CellSPU Handle lshr for i128 correctly on SPU also when 2010-11-29 14:44:28 +00:00
CPP
Generic Removing the useless test that I added recently. It was meant as an example, but not complicated enough to merit another test. 2010-11-20 07:26:51 +00:00
MBlaze Implement branch analysis in the MBlaze backend. 2010-11-21 21:53:36 +00:00
Mips Enable mips32 mul instruction. Patch by Akira Hatanaka <ahatanaka@mips.com> 2010-11-12 00:38:32 +00:00
MSP430 Inline asm mult-alt constraint tests. 2010-11-02 23:01:44 +00:00
PowerPC remove a pointless testcase. 2010-11-15 05:07:03 +00:00
PTX ptx: add command-line options for gpu target and ptx version 2010-11-30 10:14:14 +00:00
SPARC filecheckize 2010-11-23 02:26:52 +00:00
SystemZ
Thumb Fix epilogue codegen to avoid leaving the stack pointer in an invalid 2010-11-22 18:12:04 +00:00
Thumb2 The Thumb tADDrSPi instruction is not valid when the destination is SP. 2010-12-04 04:40:19 +00:00
X86 Teach X86ISelLowering that the second result of X86ISD::UMUL is a flags 2010-12-05 07:49:54 +00:00
XCore
thumb2-mul.ll