llvm-6502/lib
Chris Lattner a34b3cf953 X86 supports i8/i16 overflow ops (except i8 multiplies), we should
generate them.  

Now we compile:

define zeroext i8 @X(i8 signext %a, i8 signext %b) nounwind ssp {
entry:
  %0 = tail call %0 @llvm.sadd.with.overflow.i8(i8 %a, i8 %b)
  %cmp = extractvalue %0 %0, 1
  br i1 %cmp, label %if.then, label %if.end

into:

_X:                                     ## @X
## BB#0:                                ## %entry
	subl	$12, %esp
	movb	16(%esp), %al
	addb	20(%esp), %al
	jo	LBB0_2

Before we were generating:

_X:                                     ## @X
## BB#0:                                ## %entry
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movb	12(%ebp), %al
	testb	%al, %al
	setge	%cl
	movb	8(%ebp), %dl
	testb	%dl, %dl
	setge	%ah
	cmpb	%cl, %ah
	sete	%cl
	addb	%al, %dl
	testb	%dl, %dl
	setge	%al
	cmpb	%al, %ah
	setne	%al
	andb	%cl, %al
	testb	%al, %al
	jne	LBB0_2




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122186 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-19 20:03:11 +00:00
..
Analysis Make LazyValueInfo non-recursive. 2010-12-18 01:00:40 +00:00
Archive MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm. 2010-12-16 03:29:14 +00:00
AsmParser MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm. 2010-12-16 03:29:14 +00:00
Bitcode Generalize the darwin wrapper hack to work with generic macho triples as well as darwin ones. 2010-11-29 23:29:54 +00:00
CodeGen Remove some checks for StrongPHIElim. These checks make it impossible to use an 2010-12-19 18:03:27 +00:00
CompilerDriver Support/PathV1: Deprecate get{Basename,Dirname,Suffix}. 2010-12-18 22:23:07 +00:00
ExecutionEngine Remove unneeded zero arrays. 2010-12-04 15:28:22 +00:00
Linker Fix whitespace. 2010-12-18 22:23:15 +00:00
MC Fixed version of 122160 (the previous one would fold undefined symbols). 2010-12-19 04:18:56 +00:00
Object Fix mismatched new[]/delete. 2010-12-17 09:56:50 +00:00
Support Support/PathV1: Deprecate getLast. 2010-12-18 00:19:10 +00:00
Target X86 supports i8/i16 overflow ops (except i8 multiplies), we should 2010-12-19 20:03:11 +00:00
Transforms move a transformation to a more logical place, simplifying it. 2010-12-19 19:43:52 +00:00
VMCore Add support to CallbackVH to receive notification when a Value's use-list changes. 2010-12-18 00:07:15 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00