[llvm-commits] [llvm] r47793 [2/2] - in /llvm/trunk/test/Transforms: ADCE/ ArgumentPromotion/ BlockPlacement/ CodeExtractor/ CondProp/ ConstProp/ ConstantMerge/ DeadArgElim/ DeadStoreElimination/ GCSE/ GlobalDCE/ GlobalOpt/ IPConstantProp/ IndVarsSimplify/ Inline/ InstCombine/

Tanya Lattner tonic at nondot.org
Sat Mar 1 01:15:37 PST 2008


Modified: llvm/trunk/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll Sat Mar  1 03:15:35 2008
@@ -1,9 +1,9 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep mul | count 2
 
-
-<4 x float> %test(<4 x float> %V) {
-	%Y = mul <4 x float> %V, <float 1.0, float 2.0, float 3.0, float 4.0>
-	%Z = mul <4 x float> %Y, <float 1.0, float 200000.0, float -3.0, float 4.0>
-	ret <4 x float> %Z
+define <4 x float> @test(<4 x float> %V) {
+        %Y = mul <4 x float> %V, < float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00 >                ; <<4 x float>> [#uses=1]
+        %Z = mul <4 x float> %Y, < float 1.000000e+00, float 2.000000e+05, float -3.000000e+00, float 4.000000e+00 >               ; <<4 x float>> [#uses=1]
+        ret <4 x float> %Z
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-11-03-Memmove64.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-11-03-Memmove64.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-11-03-Memmove64.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-11-03-Memmove64.ll Sat Mar  1 03:15:35 2008
@@ -1,19 +1,16 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    not grep memmove.i32
 ; Instcombine was trying to turn this into a memmove.i32
 
 target datalayout = "e-p:64:64"
-target endian = little
-target pointersize = 64
 target triple = "alphaev67-unknown-linux-gnu"
-%str10 = internal constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=1]
+ at str10 = internal constant [1 x i8] zeroinitializer             ; <[1 x i8]*> [#uses=1]
 
-implementation   ; Functions:
-
-void %do_join(sbyte* %b) {
+define void @do_join(i8* %b) {
 entry:
-	call void %llvm.memmove.i64( sbyte* %b, sbyte* getelementptr ([1 x sbyte]* %str10, int 0, ulong 0), ulong 1, uint 1 )
-	ret void
+        call void @llvm.memmove.i64( i8* %b, i8* getelementptr ([1 x i8]* @str10, i32 0, i64 0), i64 1, i32 1 )
+        ret void
 }
 
-declare void %llvm.memmove.i64(sbyte*, sbyte*, ulong, uint)
+declare void @llvm.memmove.i64(i8*, i8*, i64, i32)
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll Sat Mar  1 03:15:35 2008
@@ -1,7 +1,9 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep lshr
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep lshr
 ; Verify this is not turned into -1.
 
-int %test(ubyte %amt) {
-  %B = lshr int -1, ubyte %amt
-  ret int %B
+define i32 @test(i8 %amt) {
+        %shift.upgrd.1 = zext i8 %amt to i32            ; <i32> [#uses=1]
+        %B = lshr i32 -1, %shift.upgrd.1                ; <i32> [#uses=1]
+        ret i32 %B
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-11-27-XorBug.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-11-27-XorBug.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-11-27-XorBug.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-11-27-XorBug.ll Sat Mar  1 03:15:35 2008
@@ -1,12 +1,12 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep and.*32
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and.*32
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    not grep or.*153
 ; PR1014
 
-int %test(int %tmp1) {
-        %ovm = and int %tmp1, 32                ; <int> [#uses=1]
-        %ov3 = add int %ovm, 145                ; <int> [#uses=2]
-        %ov110 = xor int %ov3, 153
-        ret int %ov110
+define i32 @test(i32 %tmp1) {
+        %ovm = and i32 %tmp1, 32                ; <i32> [#uses=1]
+        %ov3 = add i32 %ovm, 145                ; <i32> [#uses=1]
+        %ov110 = xor i32 %ov3, 153              ; <i32> [#uses=1]
+        ret i32 %ov110
 }
 

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll Sat Mar  1 03:15:35 2008
@@ -1,9 +1,9 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep sub
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep add
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sub
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep add
 
-<4 x float> %test(<4 x float> %tmp26, <4 x float> %tmp53) {
-  ; (X+Y)-Y != X for fp vectors.
-  %tmp64 = add <4 x float> %tmp26, %tmp53
-  %tmp75 = sub <4 x float> %tmp64, %tmp53
-  ret <4 x float> %tmp75
+define <4 x float> @test(<4 x float> %tmp26, <4 x float> %tmp53) {
+        ; (X+Y)-Y != X for fp vectors.
+        %tmp64 = add <4 x float> %tmp26, %tmp53         ; <<4 x float>> [#uses=1]
+        %tmp75 = sub <4 x float> %tmp64, %tmp53         ; <<4 x float>> [#uses=1]
+        ret <4 x float> %tmp75
 }

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll Sat Mar  1 03:15:35 2008
@@ -1,13 +1,12 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep zext
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext
 
 ; Never merge these two conversions, even though it's possible: this is
 ; significantly more expensive than the two conversions on some targets
 ; and it causes libgcc to be compile __fixunsdfdi into a recursive 
 ; function.
-
-
-long %test(double %D) {
-	%A = fptoui double %D to uint
-	%B = zext uint %A to long
-	ret long %B
+define i64 @test(double %D) {
+        %A = fptoui double %D to i32            ; <i32> [#uses=1]
+        %B = zext i32 %A to i64         ; <i64> [#uses=1]
+        ret i64 %B
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll Sat Mar  1 03:15:35 2008
@@ -1,17 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    grep {%bothcond =}
-bool %Doit_bb(int %i.0) {
-bb:             ; preds = %newFuncRoot
-        %tmp = setgt int %i.0, 0             ; <bool> [#uses=1]
-        %tmp.not = xor bool %tmp, true          ; <bool> [#uses=1]
-        %tmp2 = setgt int %i.0, 8            ; <bool> [#uses=1]
-        %bothcond = or bool %tmp.not, %tmp2             ; <bool> [#uses=1]
-        br bool %bothcond, label %exitTrue, label %exitFalse
 
-exitTrue:             ; preds = %bb
-        ret bool true
+define i1 @Doit_bb(i32 %i.0) {
+bb:
+        %tmp = icmp sgt i32 %i.0, 0             ; <i1> [#uses=1]
+        %tmp.not = xor i1 %tmp, true            ; <i1> [#uses=1]
+        %tmp2 = icmp sgt i32 %i.0, 8            ; <i1> [#uses=1]
+        %bothcond = or i1 %tmp.not, %tmp2               ; <i1> [#uses=1]
+        br i1 %bothcond, label %exitTrue, label %exitFalse
 
-exitFalse:            ; preds = %bb
-        ret bool false
+exitTrue:               ; preds = %bb
+        ret i1 true
 
+exitFalse:              ; preds = %bb
+        ret i1 false
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll Sat Mar  1 03:15:35 2008
@@ -1,57 +1,50 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep {icmp sgt}
-; END.
-
-; ModuleID = 'visible.bc'
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
 target triple = "i686-pc-linux-gnu"
-	%struct.point = type { int, int }
-
-implementation   ; Functions:
+	%struct.point = type { i32, i32 }
 
-int %visible(int %direction, long %p1.0, long %p2.0, long %p3.0) {
+define i32 @visible(i32 %direction, i64 %p1.0, i64 %p2.0, i64 %p3.0) {
 entry:
 	%p1_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
 	%p2_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
 	%p3_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	"alloca point" = bitcast int 0 to int		; <int> [#uses=0]
-	%tmp = bitcast %struct.point* %p1_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp = getelementptr { long }* %tmp, uint 0, uint 0		; <long*> [#uses=1]
-	store long %p1.0, long* %tmp
-	%tmp1 = bitcast %struct.point* %p2_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp2 = getelementptr { long }* %tmp1, uint 0, uint 0		; <long*> [#uses=1]
-	store long %p2.0, long* %tmp2
-	%tmp3 = bitcast %struct.point* %p3_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp4 = getelementptr { long }* %tmp3, uint 0, uint 0		; <long*> [#uses=1]
-	store long %p3.0, long* %tmp4
-	%tmp = seteq int %direction, 0		; <bool> [#uses=1]
-	%tmp5 = bitcast %struct.point* %p1_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp6 = getelementptr { long }* %tmp5, uint 0, uint 0		; <long*> [#uses=1]
-	%tmp = load long* %tmp6		; <long> [#uses=1]
-	%tmp7 = bitcast %struct.point* %p2_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp8 = getelementptr { long }* %tmp7, uint 0, uint 0		; <long*> [#uses=1]
-	%tmp9 = load long* %tmp8		; <long> [#uses=1]
-	%tmp10 = bitcast %struct.point* %p3_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp11 = getelementptr { long }* %tmp10, uint 0, uint 0		; <long*> [#uses=1]
-	%tmp12 = load long* %tmp11		; <long> [#uses=1]
-	%tmp13 = call int %determinant( long %tmp, long %tmp9, long %tmp12 )		; <int> [#uses=2]
-	br bool %tmp, label %cond_true, label %cond_false
+	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
+	%tmp = bitcast %struct.point* %p1_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp.upgrd.1 = getelementptr { i64 }* %tmp, i64 0, i32 0		; <i64*> [#uses=1]
+	store i64 %p1.0, i64* %tmp.upgrd.1
+	%tmp1 = bitcast %struct.point* %p2_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp2 = getelementptr { i64 }* %tmp1, i64 0, i32 0		; <i64*> [#uses=1]
+	store i64 %p2.0, i64* %tmp2
+	%tmp3 = bitcast %struct.point* %p3_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp4 = getelementptr { i64 }* %tmp3, i64 0, i32 0		; <i64*> [#uses=1]
+	store i64 %p3.0, i64* %tmp4
+	%tmp.upgrd.2 = icmp eq i32 %direction, 0		; <i1> [#uses=1]
+	%tmp5 = bitcast %struct.point* %p1_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp6 = getelementptr { i64 }* %tmp5, i64 0, i32 0		; <i64*> [#uses=1]
+	%tmp.upgrd.3 = load i64* %tmp6		; <i64> [#uses=1]
+	%tmp7 = bitcast %struct.point* %p2_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp8 = getelementptr { i64 }* %tmp7, i64 0, i32 0		; <i64*> [#uses=1]
+	%tmp9 = load i64* %tmp8		; <i64> [#uses=1]
+	%tmp10 = bitcast %struct.point* %p3_addr to { i64 }*		; <{ i64 }*> [#uses=1]
+	%tmp11 = getelementptr { i64 }* %tmp10, i64 0, i32 0		; <i64*> [#uses=1]
+	%tmp12 = load i64* %tmp11		; <i64> [#uses=1]
+	%tmp13 = call i32 @determinant( i64 %tmp.upgrd.3, i64 %tmp9, i64 %tmp12 )		; <i32> [#uses=2]
+	br i1 %tmp.upgrd.2, label %cond_true, label %cond_false
 
 cond_true:		; preds = %entry
-	%tmp14 = setlt int %tmp13, 0		; <bool> [#uses=1]
-	%tmp14 = zext bool %tmp14 to int		; <int> [#uses=1]
+	%tmp14 = icmp slt i32 %tmp13, 0		; <i1> [#uses=1]
+	%tmp14.upgrd.4 = zext i1 %tmp14 to i32		; <i32> [#uses=1]
 	br label %return
 
 cond_false:		; preds = %entry
-	%tmp26 = setgt int %tmp13, 0		; <bool> [#uses=1]
-	%tmp26 = zext bool %tmp26 to int		; <int> [#uses=1]
+	%tmp26 = icmp sgt i32 %tmp13, 0		; <i1> [#uses=1]
+	%tmp26.upgrd.5 = zext i1 %tmp26 to i32		; <i32> [#uses=1]
 	br label %return
 
 return:		; preds = %cond_false, %cond_true
-	%retval.0 = phi int [ %tmp14, %cond_true ], [ %tmp26, %cond_false ]		; <int> [#uses=1]
-	ret int %retval.0
+	%retval.0 = phi i32 [ %tmp14.upgrd.4, %cond_true ], [ %tmp26.upgrd.5, %cond_false ]		; <i32> [#uses=1]
+	ret i32 %retval.0
 }
 
-declare int %determinant(long, long, long)
+declare i32 @determinant(i64, i64, i64)

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll Sat Mar  1 03:15:35 2008
@@ -1,44 +1,40 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep select
-; END.
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep select
 
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
 target triple = "i686-pc-linux-gnu"
-	%struct.point = type { int, int }
+        %struct.point = type { i32, i32 }
 
-implementation   ; Functions:
-
-int %visible(int %direction, long %p1.0, long %p2.0, long %p3.0) {
+define i32 @visible(i32 %direction, i64 %p1.0, i64 %p2.0, i64 %p3.0) {
 entry:
-	%p1_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%p2_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%p3_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%tmp = bitcast %struct.point* %p1_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp = getelementptr { long }* %tmp, int 0, uint 0		; <long*> [#uses=1]
-	store long %p1.0, long* %tmp
-	%tmp1 = bitcast %struct.point* %p2_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp2 = getelementptr { long }* %tmp1, int 0, uint 0		; <long*> [#uses=1]
-	store long %p2.0, long* %tmp2
-	%tmp3 = bitcast %struct.point* %p3_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp4 = getelementptr { long }* %tmp3, int 0, uint 0		; <long*> [#uses=1]
-	store long %p3.0, long* %tmp4
-	%tmp = seteq int %direction, 0		; <bool> [#uses=1]
-	%tmp5 = bitcast %struct.point* %p1_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp6 = getelementptr { long }* %tmp5, int 0, uint 0		; <long*> [#uses=1]
-	%tmp = load long* %tmp6		; <long> [#uses=1]
-	%tmp7 = bitcast %struct.point* %p2_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp8 = getelementptr { long }* %tmp7, int 0, uint 0		; <long*> [#uses=1]
-	%tmp9 = load long* %tmp8		; <long> [#uses=1]
-	%tmp10 = bitcast %struct.point* %p3_addr to { long }*		; <{ long }*> [#uses=1]
-	%tmp11 = getelementptr { long }* %tmp10, int 0, uint 0		; <long*> [#uses=1]
-	%tmp12 = load long* %tmp11		; <long> [#uses=1]
-	%tmp13 = call int %determinant( long %tmp, long %tmp9, long %tmp12 )		; <int> [#uses=2]
-	%tmp14 = setlt int %tmp13, 0		; <bool> [#uses=1]
-	%tmp26 = setgt int %tmp13, 0		; <bool> [#uses=1]
-	%retval.0.in = select bool %tmp, bool %tmp14, bool %tmp26		; <bool> [#uses=1]
-	%retval.0 = zext bool %retval.0.in to int		; <int> [#uses=1]
-	ret int %retval.0
+        %p1_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
+        %p2_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
+        %p3_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
+        %tmp = bitcast %struct.point* %p1_addr to { i64 }*              ; <{ i64 }*> [#uses=1]
+        %tmp.upgrd.1 = getelementptr { i64 }* %tmp, i32 0, i32 0                ; <i64*> [#uses=1]
+        store i64 %p1.0, i64* %tmp.upgrd.1
+        %tmp1 = bitcast %struct.point* %p2_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
+        %tmp2 = getelementptr { i64 }* %tmp1, i32 0, i32 0              ; <i64*> [#uses=1]
+        store i64 %p2.0, i64* %tmp2
+        %tmp3 = bitcast %struct.point* %p3_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
+        %tmp4 = getelementptr { i64 }* %tmp3, i32 0, i32 0              ; <i64*> [#uses=1]
+        store i64 %p3.0, i64* %tmp4
+        %tmp.upgrd.2 = icmp eq i32 %direction, 0                ; <i1> [#uses=1]
+        %tmp5 = bitcast %struct.point* %p1_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
+        %tmp6 = getelementptr { i64 }* %tmp5, i32 0, i32 0              ; <i64*> [#uses=1]
+        %tmp.upgrd.3 = load i64* %tmp6          ; <i64> [#uses=1]
+        %tmp7 = bitcast %struct.point* %p2_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
+        %tmp8 = getelementptr { i64 }* %tmp7, i32 0, i32 0              ; <i64*> [#uses=1]
+        %tmp9 = load i64* %tmp8         ; <i64> [#uses=1]
+        %tmp10 = bitcast %struct.point* %p3_addr to { i64 }*            ; <{ i64 }*> [#uses=1]
+        %tmp11 = getelementptr { i64 }* %tmp10, i32 0, i32 0            ; <i64*> [#uses=1]
+        %tmp12 = load i64* %tmp11               ; <i64> [#uses=1]
+        %tmp13 = call i32 @determinant( i64 %tmp.upgrd.3, i64 %tmp9, i64 %tmp12 )         ; <i32> [#uses=2]
+        %tmp14 = icmp slt i32 %tmp13, 0         ; <i1> [#uses=1]
+        %tmp26 = icmp sgt i32 %tmp13, 0         ; <i1> [#uses=1]
+        %retval.0.in = select i1 %tmp.upgrd.2, i1 %tmp14, i1 %tmp26             ; <i1> [#uses=1]
+        %retval.0 = zext i1 %retval.0.in to i32         ; <i32> [#uses=1]
+        ret i32 %retval.0
 }
 
-declare int %determinant(long, long, long)
+declare i32 @determinant(i64, i64, i64)
+

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll Sat Mar  1 03:15:35 2008
@@ -1,167 +1,161 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
-; RUN:    grep -v {icmp ult int}
-; END.
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
+; RUN:    grep -v {icmp ult i32}
 
-; ModuleID = 'good.bc'
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
 target triple = "i686-pc-linux-gnu"
-        %struct.edgeBox = type { short, short, short, short, short, short }
-%qsz = external global int              ; <int*> [#uses=12]
-%thresh = external global int           ; <int*> [#uses=2]
-%mthresh = external global int          ; <int*> [#uses=1]
+	%struct.edgeBox = type { i16, i16, i16, i16, i16, i16 }
+ at qsz = external global i32		; <i32*> [#uses=12]
+ at thresh = external global i32		; <i32*> [#uses=2]
+ at mthresh = external global i32		; <i32*> [#uses=1]
 
-implementation   ; Functions:
-
-int %qsorte(sbyte* %base, int %n, int %size) {
+define i32 @qsorte(i8* %base, i32 %n, i32 %size) {
 entry:
-        %tmp = setgt int %n, 1          ; <bool> [#uses=1]
-        br bool %tmp, label %cond_next, label %return
+	%tmp = icmp sgt i32 %n, 1		; <i1> [#uses=1]
+	br i1 %tmp, label %cond_next, label %return
 
-cond_next:              ; preds = %entry
-        store int %size, int* %qsz
-        %tmp3 = shl int %size, ubyte 2          ; <int> [#uses=1]
-        store int %tmp3, int* %thresh
-        %tmp4 = load int* %qsz          ; <int> [#uses=1]
-        %tmp5 = mul int %tmp4, 6                ; <int> [#uses=1]
-        store int %tmp5, int* %mthresh
-        %tmp6 = load int* %qsz          ; <int> [#uses=1]
-        %tmp8 = mul int %tmp6, %n               ; <int> [#uses=1]
-        %tmp9 = getelementptr sbyte* %base, int %tmp8           ; <sbyte*> [#uses=3]
-        %tmp11 = setgt int %n, 3                ; <bool> [#uses=1]
-        br bool %tmp11, label %cond_true12, label %bb30
-
-cond_true12:            ; preds = %cond_next
-        %tmp156 = call int %qste( sbyte* %base, sbyte* %tmp9 )          ; <int> [#uses=0]
-        %tmp16 = load int* %thresh              ; <int> [#uses=1]
-        %tmp18 = getelementptr sbyte* %base, int %tmp16         ; <sbyte*> [#uses=2]
-        %tmp3117 = load int* %qsz               ; <int> [#uses=1]
-        %tmp3318 = getelementptr sbyte* %base, int %tmp3117             ; <sbyte*> [#uses=2]
-        %tmp3621 = setlt sbyte* %tmp3318, %tmp18                ; <bool> [#uses=1]
-        br bool %tmp3621, label %bb, label %bb37
-
-bb:             ; preds = %bb30, %cond_true12
-        %hi.0.0 = phi sbyte* [ %tmp18, %cond_true12 ], [ %hi.0, %bb30 ]         ; <sbyte*> [#uses=4]
-        %j.1.0 = phi sbyte* [ %base, %cond_true12 ], [ %j.1, %bb30 ]            ; <sbyte*> [#uses=4]
-        %tmp33.0 = phi sbyte* [ %tmp3318, %cond_true12 ], [ %tmp33, %bb30 ]             ; <sbyte*> [#uses=6]
-        %tmp3 = bitcast sbyte* %j.1.0 to %struct.edgeBox*               ; <%struct.edgeBox*> [#uses=1]
-        %tmp4 = bitcast sbyte* %tmp33.0 to %struct.edgeBox*             ; <%struct.edgeBox*> [#uses=1]
-        %tmp255 = call int %comparee( %struct.edgeBox* %tmp3, %struct.edgeBox* %tmp4 )          ; <int> [#uses=1]
-        %tmp26 = setgt int %tmp255, 0           ; <bool> [#uses=1]
-        br bool %tmp26, label %cond_true27, label %bb30
-
-cond_true27:            ; preds = %bb
-        br label %bb30
-
-bb30:           ; preds = %cond_true27, %bb, %cond_next
-        %hi.0.3 = phi sbyte* [ %hi.0.0, %cond_true27 ], [ %hi.0.0, %bb ], [ undef, %cond_next ]         ; <sbyte*> [#uses=0]
-        %j.1.3 = phi sbyte* [ %j.1.0, %cond_true27 ], [ %j.1.0, %bb ], [ undef, %cond_next ]            ; <sbyte*> [#uses=0]
-        %tmp33.3 = phi sbyte* [ %tmp33.0, %cond_true27 ], [ %tmp33.0, %bb ], [ undef, %cond_next ]              ; <sbyte*> [#uses=0]
-        %hi.0 = phi sbyte* [ %tmp9, %cond_next ], [ %hi.0.0, %bb ], [ %hi.0.0, %cond_true27 ]           ; <sbyte*> [#uses=2]
-        %lo.1 = phi sbyte* [ %tmp33.0, %cond_true27 ], [ %tmp33.0, %bb ], [ %base, %cond_next ]         ; <sbyte*> [#uses=1]
-        %j.1 = phi sbyte* [ %tmp33.0, %cond_true27 ], [ %j.1.0, %bb ], [ %base, %cond_next ]            ; <sbyte*> [#uses=2]
-        %tmp31 = load int* %qsz         ; <int> [#uses=1]
-        %tmp33 = getelementptr sbyte* %lo.1, int %tmp31         ; <sbyte*> [#uses=2]
-        %tmp36 = setlt sbyte* %tmp33, %hi.0             ; <bool> [#uses=1]
-        br bool %tmp36, label %bb, label %bb37
-
-bb37:           ; preds = %bb30, %cond_true12
-        %j.1.1 = phi sbyte* [ %j.1, %bb30 ], [ %base, %cond_true12 ]            ; <sbyte*> [#uses=4]
-        %tmp40 = seteq sbyte* %j.1.1, %base             ; <bool> [#uses=1]
-        br bool %tmp40, label %bb115, label %cond_true41
-
-cond_true41:            ; preds = %bb37
-        %tmp43 = load int* %qsz         ; <int> [#uses=1]
-        %tmp45 = getelementptr sbyte* %base, int %tmp43         ; <sbyte*> [#uses=2]
-        %tmp6030 = setlt sbyte* %base, %tmp45           ; <bool> [#uses=1]
-        br bool %tmp6030, label %bb46, label %bb115
-
-bb46:           ; preds = %bb46, %cond_true41
-        %j.2.0 = phi sbyte* [ %j.1.1, %cond_true41 ], [ %tmp52, %bb46 ]         ; <sbyte*> [#uses=3]
-        %i.2.0 = phi sbyte* [ %base, %cond_true41 ], [ %tmp56, %bb46 ]          ; <sbyte*> [#uses=3]
-        %tmp = load sbyte* %j.2.0               ; <sbyte> [#uses=2]
-        %tmp49 = load sbyte* %i.2.0             ; <sbyte> [#uses=1]
-        store sbyte %tmp49, sbyte* %j.2.0
-        %tmp52 = getelementptr sbyte* %j.2.0, int 1             ; <sbyte*> [#uses=2]
-        store sbyte %tmp, sbyte* %i.2.0
-        %tmp56 = getelementptr sbyte* %i.2.0, int 1             ; <sbyte*> [#uses=3]
-        %tmp60 = setlt sbyte* %tmp56, %tmp45            ; <bool> [#uses=1]
-        br bool %tmp60, label %bb46, label %bb115
-
-bb66:           ; preds = %bb115, %bb66
-        %hi.3 = phi sbyte* [ %tmp118, %bb115 ], [ %tmp70, %bb66 ]               ; <sbyte*> [#uses=2]
-        %tmp67 = load int* %qsz         ; <int> [#uses=2]
-        %tmp68 = sub int 0, %tmp67              ; <int> [#uses=1]
-        %tmp70 = getelementptr sbyte* %hi.3, int %tmp68         ; <sbyte*> [#uses=2]
-        %tmp = bitcast sbyte* %tmp70 to %struct.edgeBox*                ; <%struct.edgeBox*> [#uses=1]
-        %tmp1 = bitcast sbyte* %tmp118 to %struct.edgeBox*              ; <%struct.edgeBox*> [#uses=1]
-        %tmp732 = call int %comparee( %struct.edgeBox* %tmp, %struct.edgeBox* %tmp1 )           ; <int> [#uses=1]
-        %tmp74 = setgt int %tmp732, 0           ; <bool> [#uses=1]
-        br bool %tmp74, label %bb66, label %bb75
-
-bb75:           ; preds = %bb66
-        %tmp76 = load int* %qsz         ; <int> [#uses=1]
-        %tmp70.sum = sub int %tmp76, %tmp67             ; <int> [#uses=1]
-        %tmp78 = getelementptr sbyte* %hi.3, int %tmp70.sum             ; <sbyte*> [#uses=3]
-        %tmp81 = seteq sbyte* %tmp78, %tmp118           ; <bool> [#uses=1]
-        br bool %tmp81, label %bb115, label %cond_true82
-
-cond_true82:            ; preds = %bb75
-        %tmp83 = load int* %qsz         ; <int> [#uses=1]
-        %tmp118.sum = add int %tmp116, %tmp83           ; <int> [#uses=1]
-        %tmp85 = getelementptr sbyte* %min.1, int %tmp118.sum           ; <sbyte*> [#uses=1]
-        %tmp10937 = getelementptr sbyte* %tmp85, int -1         ; <sbyte*> [#uses=3]
-        %tmp11239 = setlt sbyte* %tmp10937, %tmp118             ; <bool> [#uses=1]
-        br bool %tmp11239, label %bb115, label %bb86
-
-bb86:           ; preds = %bb104, %cond_true82
-        %tmp109.0 = phi sbyte* [ %tmp10937, %cond_true82 ], [ %tmp109, %bb104 ]         ; <sbyte*> [#uses=5]
-        %i.5.2 = phi sbyte* [ %i.5.3, %cond_true82 ], [ %i.5.1, %bb104 ]                ; <sbyte*> [#uses=0]
-        %tmp100.2 = phi sbyte* [ %tmp100.3, %cond_true82 ], [ %tmp100.1, %bb104 ]               ; <sbyte*> [#uses=0]
-        %tmp88 = load sbyte* %tmp109.0          ; <sbyte> [#uses=2]
-        %tmp9746 = load int* %qsz               ; <int> [#uses=1]
-        %tmp9847 = sub int 0, %tmp9746          ; <int> [#uses=1]
-        %tmp10048 = getelementptr sbyte* %tmp109.0, int %tmp9847                ; <sbyte*> [#uses=3]
-        %tmp10350 = setlt sbyte* %tmp10048, %tmp78              ; <bool> [#uses=1]
-        br bool %tmp10350, label %bb104, label %bb91
-
-bb91:           ; preds = %bb91, %bb86
-        %i.5.0 = phi sbyte* [ %tmp109.0, %bb86 ], [ %tmp100.0, %bb91 ]          ; <sbyte*> [#uses=1]
-        %tmp100.0 = phi sbyte* [ %tmp10048, %bb86 ], [ %tmp100, %bb91 ]         ; <sbyte*> [#uses=4]
-        %tmp93 = load sbyte* %tmp100.0          ; <sbyte> [#uses=1]
-        store sbyte %tmp93, sbyte* %i.5.0
-        %tmp97 = load int* %qsz         ; <int> [#uses=1]
-        %tmp98 = sub int 0, %tmp97              ; <int> [#uses=1]
-        %tmp100 = getelementptr sbyte* %tmp100.0, int %tmp98            ; <sbyte*> [#uses=3]
-        %tmp103 = setlt sbyte* %tmp100, %tmp78          ; <bool> [#uses=1]
-        br bool %tmp103, label %bb104, label %bb91
-
-bb104:          ; preds = %bb91, %bb86
-        %i.5.1 = phi sbyte* [ %tmp109.0, %bb86 ], [ %tmp100.0, %bb91 ]          ; <sbyte*> [#uses=4]
-        %tmp100.1 = phi sbyte* [ %tmp10048, %bb86 ], [ %tmp100, %bb91 ]         ; <sbyte*> [#uses=3]
-        store sbyte %tmp88, sbyte* %i.5.1
-        %tmp109 = getelementptr sbyte* %tmp109.0, int -1                ; <sbyte*> [#uses=3]
-        %tmp112 = setlt sbyte* %tmp109, %tmp118         ; <bool> [#uses=1]
-        br bool %tmp112, label %bb115, label %bb86
-
-bb115:          ; preds = %bb104, %cond_true82, %bb75, %bb46, %cond_true41, %bb37
-        %tmp109.1 = phi sbyte* [ undef, %bb37 ], [ %tmp109.1, %bb75 ], [ %tmp10937, %cond_true82 ], [ %tmp109, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]              ; <sbyte*> [#uses=1]
-        %i.5.3 = phi sbyte* [ undef, %bb37 ], [ %i.5.3, %bb75 ], [ %i.5.3, %cond_true82 ], [ %i.5.1, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]                ; <sbyte*> [#uses=3]
-        %tmp100.3 = phi sbyte* [ undef, %bb37 ], [ %tmp100.3, %bb75 ], [ %tmp100.3, %cond_true82 ], [ %tmp100.1, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]            ; <sbyte*> [#uses=3]
-        %min.1 = phi sbyte* [ %tmp118, %bb104 ], [ %tmp118, %bb75 ], [ %base, %bb37 ], [ %base, %bb46 ], [ %base, %cond_true41 ], [ %tmp118, %cond_true82 ]             ; <sbyte*> [#uses=2]
-        %j.5 = phi sbyte* [ %tmp100.1, %bb104 ], [ %j.5, %bb75 ], [ %tmp52, %bb46 ], [ %j.1.1, %bb37 ], [ %j.1.1, %cond_true41 ], [ %j.5, %cond_true82 ]                ; <sbyte*> [#uses=2]
-        %i.4 = phi sbyte* [ %i.5.1, %bb104 ], [ %i.4, %bb75 ], [ %tmp56, %bb46 ], [ undef, %bb37 ], [ %base, %cond_true41 ], [ %i.4, %cond_true82 ]             ; <sbyte*> [#uses=2]
-        %c.4 = phi sbyte [ %tmp88, %bb104 ], [ %c.4, %bb75 ], [ %tmp, %bb46 ], [ undef, %bb37 ], [ undef, %cond_true41 ], [ %c.4, %cond_true82 ]                ; <sbyte> [#uses=2]
-        %tmp116 = load int* %qsz                ; <int> [#uses=2]
-        %tmp118 = getelementptr sbyte* %min.1, int %tmp116              ; <sbyte*> [#uses=9]
-        %tmp122 = setlt sbyte* %tmp118, %tmp9           ; <bool> [#uses=1]
-        br bool %tmp122, label %bb66, label %return
+cond_next:		; preds = %entry
+	store i32 %size, i32* @qsz
+	%tmp3 = shl i32 %size, 2		; <i32> [#uses=1]
+	store i32 %tmp3, i32* @thresh
+	%tmp4 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp5 = mul i32 %tmp4, 6		; <i32> [#uses=1]
+	store i32 %tmp5, i32* @mthresh
+	%tmp6 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp8 = mul i32 %tmp6, %n		; <i32> [#uses=1]
+	%tmp9 = getelementptr i8* %base, i32 %tmp8		; <i8*> [#uses=3]
+	%tmp11 = icmp sgt i32 %n, 3		; <i1> [#uses=1]
+	br i1 %tmp11, label %cond_true12, label %bb30
+
+cond_true12:		; preds = %cond_next
+	%tmp156 = call i32 @qste( i8* %base, i8* %tmp9 )		; <i32> [#uses=0]
+	%tmp16 = load i32* @thresh		; <i32> [#uses=1]
+	%tmp18 = getelementptr i8* %base, i32 %tmp16		; <i8*> [#uses=2]
+	%tmp3117 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp3318 = getelementptr i8* %base, i32 %tmp3117		; <i8*> [#uses=2]
+	%tmp3621 = icmp ult i8* %tmp3318, %tmp18		; <i1> [#uses=1]
+	br i1 %tmp3621, label %bb, label %bb37
+
+bb:		; preds = %bb30, %cond_true12
+	%hi.0.0 = phi i8* [ %tmp18, %cond_true12 ], [ %hi.0, %bb30 ]		; <i8*> [#uses=4]
+	%j.1.0 = phi i8* [ %base, %cond_true12 ], [ %j.1, %bb30 ]		; <i8*> [#uses=4]
+	%tmp33.0 = phi i8* [ %tmp3318, %cond_true12 ], [ %tmp33, %bb30 ]		; <i8*> [#uses=6]
+	%tmp3.upgrd.1 = bitcast i8* %j.1.0 to %struct.edgeBox*		; <%struct.edgeBox*> [#uses=1]
+	%tmp4.upgrd.2 = bitcast i8* %tmp33.0 to %struct.edgeBox*		; <%struct.edgeBox*> [#uses=1]
+	%tmp255 = call i32 @comparee( %struct.edgeBox* %tmp3.upgrd.1, %struct.edgeBox* %tmp4.upgrd.2 )		; <i32> [#uses=1]
+	%tmp26 = icmp sgt i32 %tmp255, 0		; <i1> [#uses=1]
+	br i1 %tmp26, label %cond_true27, label %bb30
+
+cond_true27:		; preds = %bb
+	br label %bb30
+
+bb30:		; preds = %cond_true27, %bb, %cond_next
+	%hi.0.3 = phi i8* [ %hi.0.0, %cond_true27 ], [ %hi.0.0, %bb ], [ undef, %cond_next ]		; <i8*> [#uses=0]
+	%j.1.3 = phi i8* [ %j.1.0, %cond_true27 ], [ %j.1.0, %bb ], [ undef, %cond_next ]		; <i8*> [#uses=0]
+	%tmp33.3 = phi i8* [ %tmp33.0, %cond_true27 ], [ %tmp33.0, %bb ], [ undef, %cond_next ]		; <i8*> [#uses=0]
+	%hi.0 = phi i8* [ %tmp9, %cond_next ], [ %hi.0.0, %bb ], [ %hi.0.0, %cond_true27 ]		; <i8*> [#uses=2]
+	%lo.1 = phi i8* [ %tmp33.0, %cond_true27 ], [ %tmp33.0, %bb ], [ %base, %cond_next ]		; <i8*> [#uses=1]
+	%j.1 = phi i8* [ %tmp33.0, %cond_true27 ], [ %j.1.0, %bb ], [ %base, %cond_next ]		; <i8*> [#uses=2]
+	%tmp31 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp33 = getelementptr i8* %lo.1, i32 %tmp31		; <i8*> [#uses=2]
+	%tmp36 = icmp ult i8* %tmp33, %hi.0		; <i1> [#uses=1]
+	br i1 %tmp36, label %bb, label %bb37
+
+bb37:		; preds = %bb30, %cond_true12
+	%j.1.1 = phi i8* [ %j.1, %bb30 ], [ %base, %cond_true12 ]		; <i8*> [#uses=4]
+	%tmp40 = icmp eq i8* %j.1.1, %base		; <i1> [#uses=1]
+	br i1 %tmp40, label %bb115, label %cond_true41
+
+cond_true41:		; preds = %bb37
+	%tmp43 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp45 = getelementptr i8* %base, i32 %tmp43		; <i8*> [#uses=2]
+	%tmp6030 = icmp ult i8* %base, %tmp45		; <i1> [#uses=1]
+	br i1 %tmp6030, label %bb46, label %bb115
+
+bb46:		; preds = %bb46, %cond_true41
+	%j.2.0 = phi i8* [ %j.1.1, %cond_true41 ], [ %tmp52, %bb46 ]		; <i8*> [#uses=3]
+	%i.2.0 = phi i8* [ %base, %cond_true41 ], [ %tmp56, %bb46 ]		; <i8*> [#uses=3]
+	%tmp.upgrd.3 = load i8* %j.2.0		; <i8> [#uses=2]
+	%tmp49 = load i8* %i.2.0		; <i8> [#uses=1]
+	store i8 %tmp49, i8* %j.2.0
+	%tmp52 = getelementptr i8* %j.2.0, i32 1		; <i8*> [#uses=2]
+	store i8 %tmp.upgrd.3, i8* %i.2.0
+	%tmp56 = getelementptr i8* %i.2.0, i32 1		; <i8*> [#uses=3]
+	%tmp60 = icmp ult i8* %tmp56, %tmp45		; <i1> [#uses=1]
+	br i1 %tmp60, label %bb46, label %bb115
+
+bb66:		; preds = %bb115, %bb66
+	%hi.3 = phi i8* [ %tmp118, %bb115 ], [ %tmp70, %bb66 ]		; <i8*> [#uses=2]
+	%tmp67 = load i32* @qsz		; <i32> [#uses=2]
+	%tmp68 = sub i32 0, %tmp67		; <i32> [#uses=1]
+	%tmp70 = getelementptr i8* %hi.3, i32 %tmp68		; <i8*> [#uses=2]
+	%tmp.upgrd.4 = bitcast i8* %tmp70 to %struct.edgeBox*		; <%struct.edgeBox*> [#uses=1]
+	%tmp1 = bitcast i8* %tmp118 to %struct.edgeBox*		; <%struct.edgeBox*> [#uses=1]
+	%tmp732 = call i32 @comparee( %struct.edgeBox* %tmp.upgrd.4, %struct.edgeBox* %tmp1 )		; <i32> [#uses=1]
+	%tmp74 = icmp sgt i32 %tmp732, 0		; <i1> [#uses=1]
+	br i1 %tmp74, label %bb66, label %bb75
+
+bb75:		; preds = %bb66
+	%tmp76 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp70.sum = sub i32 %tmp76, %tmp67		; <i32> [#uses=1]
+	%tmp78 = getelementptr i8* %hi.3, i32 %tmp70.sum		; <i8*> [#uses=3]
+	%tmp81 = icmp eq i8* %tmp78, %tmp118		; <i1> [#uses=1]
+	br i1 %tmp81, label %bb115, label %cond_true82
+
+cond_true82:		; preds = %bb75
+	%tmp83 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp118.sum = add i32 %tmp116, %tmp83		; <i32> [#uses=1]
+	%tmp85 = getelementptr i8* %min.1, i32 %tmp118.sum		; <i8*> [#uses=1]
+	%tmp10937 = getelementptr i8* %tmp85, i32 -1		; <i8*> [#uses=3]
+	%tmp11239 = icmp ult i8* %tmp10937, %tmp118		; <i1> [#uses=1]
+	br i1 %tmp11239, label %bb115, label %bb86
+
+bb86:		; preds = %bb104, %cond_true82
+	%tmp109.0 = phi i8* [ %tmp10937, %cond_true82 ], [ %tmp109, %bb104 ]		; <i8*> [#uses=5]
+	%i.5.2 = phi i8* [ %i.5.3, %cond_true82 ], [ %i.5.1, %bb104 ]		; <i8*> [#uses=0]
+	%tmp100.2 = phi i8* [ %tmp100.3, %cond_true82 ], [ %tmp100.1, %bb104 ]		; <i8*> [#uses=0]
+	%tmp88 = load i8* %tmp109.0		; <i8> [#uses=2]
+	%tmp9746 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp9847 = sub i32 0, %tmp9746		; <i32> [#uses=1]
+	%tmp10048 = getelementptr i8* %tmp109.0, i32 %tmp9847		; <i8*> [#uses=3]
+	%tmp10350 = icmp ult i8* %tmp10048, %tmp78		; <i1> [#uses=1]
+	br i1 %tmp10350, label %bb104, label %bb91
+
+bb91:		; preds = %bb91, %bb86
+	%i.5.0 = phi i8* [ %tmp109.0, %bb86 ], [ %tmp100.0, %bb91 ]		; <i8*> [#uses=1]
+	%tmp100.0 = phi i8* [ %tmp10048, %bb86 ], [ %tmp100, %bb91 ]		; <i8*> [#uses=4]
+	%tmp93 = load i8* %tmp100.0		; <i8> [#uses=1]
+	store i8 %tmp93, i8* %i.5.0
+	%tmp97 = load i32* @qsz		; <i32> [#uses=1]
+	%tmp98 = sub i32 0, %tmp97		; <i32> [#uses=1]
+	%tmp100 = getelementptr i8* %tmp100.0, i32 %tmp98		; <i8*> [#uses=3]
+	%tmp103 = icmp ult i8* %tmp100, %tmp78		; <i1> [#uses=1]
+	br i1 %tmp103, label %bb104, label %bb91
+
+bb104:		; preds = %bb91, %bb86
+	%i.5.1 = phi i8* [ %tmp109.0, %bb86 ], [ %tmp100.0, %bb91 ]		; <i8*> [#uses=4]
+	%tmp100.1 = phi i8* [ %tmp10048, %bb86 ], [ %tmp100, %bb91 ]		; <i8*> [#uses=3]
+	store i8 %tmp88, i8* %i.5.1
+	%tmp109 = getelementptr i8* %tmp109.0, i32 -1		; <i8*> [#uses=3]
+	%tmp112 = icmp ult i8* %tmp109, %tmp118		; <i1> [#uses=1]
+	br i1 %tmp112, label %bb115, label %bb86
+
+bb115:		; preds = %bb104, %cond_true82, %bb75, %bb46, %cond_true41, %bb37
+	%tmp109.1 = phi i8* [ undef, %bb37 ], [ %tmp109.1, %bb75 ], [ %tmp10937, %cond_true82 ], [ %tmp109, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]		; <i8*> [#uses=1]
+	%i.5.3 = phi i8* [ undef, %bb37 ], [ %i.5.3, %bb75 ], [ %i.5.3, %cond_true82 ], [ %i.5.1, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]		; <i8*> [#uses=3]
+	%tmp100.3 = phi i8* [ undef, %bb37 ], [ %tmp100.3, %bb75 ], [ %tmp100.3, %cond_true82 ], [ %tmp100.1, %bb104 ], [ undef, %bb46 ], [ undef, %cond_true41 ]		; <i8*> [#uses=3]
+	%min.1 = phi i8* [ %tmp118, %bb104 ], [ %tmp118, %bb75 ], [ %base, %bb37 ], [ %base, %bb46 ], [ %base, %cond_true41 ], [ %tmp118, %cond_true82 ]		; <i8*> [#uses=2]
+	%j.5 = phi i8* [ %tmp100.1, %bb104 ], [ %j.5, %bb75 ], [ %tmp52, %bb46 ], [ %j.1.1, %bb37 ], [ %j.1.1, %cond_true41 ], [ %j.5, %cond_true82 ]		; <i8*> [#uses=2]
+	%i.4 = phi i8* [ %i.5.1, %bb104 ], [ %i.4, %bb75 ], [ %tmp56, %bb46 ], [ undef, %bb37 ], [ %base, %cond_true41 ], [ %i.4, %cond_true82 ]		; <i8*> [#uses=2]
+	%c.4 = phi i8 [ %tmp88, %bb104 ], [ %c.4, %bb75 ], [ %tmp.upgrd.3, %bb46 ], [ undef, %bb37 ], [ undef, %cond_true41 ], [ %c.4, %cond_true82 ]		; <i8> [#uses=2]
+	%tmp116 = load i32* @qsz		; <i32> [#uses=2]
+	%tmp118 = getelementptr i8* %min.1, i32 %tmp116		; <i8*> [#uses=9]
+	%tmp122 = icmp ult i8* %tmp118, %tmp9		; <i1> [#uses=1]
+	br i1 %tmp122, label %bb66, label %return
 
-return:         ; preds = %bb115, %entry
-        ret int undef
+return:		; preds = %bb115, %entry
+	ret i32 undef
 }
 
-declare int %qste(sbyte*, sbyte*)
+declare i32 @qste(i8*, i8*)
 
-declare int %comparee(%struct.edgeBox*, %struct.edgeBox*)
+declare i32 @comparee(%struct.edgeBox*, %struct.edgeBox*)

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-15-Range-Test.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-15-Range-Test.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-15-Range-Test.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-15-Range-Test.ll Sat Mar  1 03:15:35 2008
@@ -1,36 +1,30 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep icmp | count 1
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep {icmp ugt} | count 1
-; END.
 
-; ModuleID = 'bugpoint-tooptimize.bc'
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
 target triple = "i686-pc-linux-gnu"
-%r = external global [17 x int]         ; <[17 x int]*> [#uses=1]
+ at r = external global [17 x i32]         ; <[17 x i32]*> [#uses=1]
 
-implementation   ; Functions:
-
-bool %print_pgm_cond_true(int %tmp12.reload, int* %tmp16.out) {
+define i1 @print_pgm_cond_true(i32 %tmp12.reload, i32* %tmp16.out) {
 newFuncRoot:
         br label %cond_true
 
 bb27.exitStub:          ; preds = %cond_true
-        store int %tmp16, int* %tmp16.out
-        ret bool true
+        store i32 %tmp16, i32* %tmp16.out
+        ret i1 true
 
 cond_next23.exitStub:           ; preds = %cond_true
-        store int %tmp16, int* %tmp16.out
-        ret bool false
+        store i32 %tmp16, i32* %tmp16.out
+        ret i1 false
 
 cond_true:              ; preds = %newFuncRoot
-        %tmp15 = getelementptr [17 x int]* %r, int 0, int %tmp12.reload         ; <int*> [#uses=1]
-        %tmp16 = load int* %tmp15               ; <int> [#uses=4]
-        %tmp18 = icmp slt int %tmp16, -31               ; <bool> [#uses=1]
-        %tmp21 = icmp sgt int %tmp16, 31                ; <bool> [#uses=1]
-        %bothcond = or bool %tmp18, %tmp21              ; <bool> [#uses=1]
-        br bool %bothcond, label %bb27.exitStub, label %cond_next23.exitStub
+        %tmp15 = getelementptr [17 x i32]* @r, i32 0, i32 %tmp12.reload         ; <i32*> [#uses=1]
+        %tmp16 = load i32* %tmp15               ; <i32> [#uses=4]
+        %tmp18 = icmp slt i32 %tmp16, -31               ; <i1> [#uses=1]
+        %tmp21 = icmp sgt i32 %tmp16, 31                ; <i1> [#uses=1]
+        %bothcond = or i1 %tmp18, %tmp21                ; <i1> [#uses=1]
+        br i1 %bothcond, label %bb27.exitStub, label %cond_next23.exitStub
 }
 

Modified: llvm/trunk/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll Sat Mar  1 03:15:35 2008
@@ -1,31 +1,25 @@
 ; For PR1065. This causes an assertion in instcombine if a select with two cmp
 ; operands is encountered.
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output
-; END.
+; RUN: llvm-as < %s | opt -instcombine -disable-output
 
-; ModuleID = 'PR1065.bc'
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
 target triple = "i686-pc-linux-gnu"
-	%struct.internal_state = type { int }
-	%struct.mng_data = type { uint, sbyte*, uint, uint, uint, uint, uint, uint, uint, uint, uint, ubyte, uint, uint, uint, sbyte, uint, uint, uint, uint, ushort, ushort, ushort, sbyte, sbyte, double, double, double, sbyte, sbyte, sbyte, sbyte, uint, uint, uint, uint, int, sbyte, int, int, sbyte*, sbyte* (uint)*, void (sbyte*, uint)*, void (sbyte*, sbyte*, uint)*, sbyte (%struct.mng_data*)*, sbyte (%struct.mng_data*)*, sbyte (%struct.mng_data*, sbyte*, uint, uint*)*, sbyte (%struct.mng_data*, sbyte*, uint, uint*)*, sbyte (%struct.mng_data*, int, sbyte, int, uint, int, int, sbyte*)*, sbyte (%struct.mng_data*, int, int, sbyte*)*, sbyte (%struct.mng_data*, uint, uint)*, sbyte (%struct.mng_data*, ubyte, sbyte*, sbyte*, sbyte*, sbyte*)*, sbyte (%struct.mng_data*)*, sbyte (%struct.mng_data*, sbyte*)*, sbyte (%struct.mng_data*, sbyte*)*, sbyte (%struct.mng_data*, uint, uint)*, sbyte (%struct.mng_data*, int, uint, sbyte*)*, sbyte (%struct.mng_data*, ubyte, ubyte, uint, uint)*, sbyte* (!
 %struct.mng_data*, uint)*, sbyte* (%struct.mng_data*, uint)*, sbyte* (%struct.mng_data*, uint)*, sbyte (%struct.mng_data*, uint, uint, uint, uint)*, uint (%struct.mng_data*)*, sbyte (%struct.mng_data*, uint)*, sbyte (%struct.mng_data*, uint)*, sbyte (%struct.mng_data*, uint, uint, uint, uint, uint, uint, uint, uint)*, sbyte (%struct.mng_data*, ubyte)*, sbyte (%struct.mng_data*, uint, sbyte*)*, sbyte (%struct.mng_data*, uint, sbyte, sbyte*)*, sbyte, int, uint, sbyte*, sbyte*, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, uint, uint, ubyte, ubyte, ubyte, ubyte, ubyte, uint, sbyte, sbyte, sbyte, uint, ubyte*, uint, ubyte*, uint, sbyte, ubyte, sbyte, uint, ubyte*, ubyte*, uint, uint, ubyte*, ubyte*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, sbyte, sbyte, int, uint, ubyte*, sbyte, sbyte, uint, uint, uin!
 t, uint, uint, uint, sbyte, sbyte, sbyte, sbyte, int, int, sby!
 te*, uin
t, uint, uint, sbyte, sbyte, uint, uint, uint, uint, sbyte, sbyte, ubyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, uint, sbyte*, sbyte*, sbyte*, uint, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.mng_savedata*, uint, uint, uint, uint, sbyte, int, int, int, int, int, int, int, int, int, int, int, int, uint, uint, uint, uint, ubyte*, ubyte*, ubyte*, sbyte, sbyte, int, int, int, int, int, int, int, int, int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, [256 x ubyte], double, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, ushort, sbyte, ubyte, sbyte, ubyte, sbyte, int, int, sbyte, int, int, int, int, ushort, ushort, ushort, ubyte, ushort, ubyte, int, int, uint, uint, ubyte, uint, uint, sbyte, int, int, int, int, ubyte, uint, uint, sbyte, int, int, int, int, uint, sbyte, uint, ubyte, ushort, ushort, ushort, short, uint, [256 x %struct.mng_palette8e], uint, [256 x ubyte], uint, uint, uint, uint, uint, !
 uint, uint, uint, uint, ubyte, uint, sbyte*, ushort, ushort, ushort, sbyte*, ubyte, ubyte, uint, uint, uint, uint, sbyte, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, sbyte*, ubyte, ubyte, ubyte, uint, sbyte*, sbyte*, ushort, ushort, ushort, ushort, int, int, sbyte*, %struct.z_stream, int, int, int, int, int, uint, sbyte, sbyte, [256 x uint], sbyte }
-	%struct.mng_palette8e = type { ubyte, ubyte, ubyte }
-	%struct.mng_pushdata = type { sbyte*, sbyte*, uint, sbyte, ubyte*, uint }
-	%struct.mng_savedata = type { sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, ushort, ushort, ushort, ubyte, ushort, ubyte, ubyte, uint, uint, sbyte, int, int, int, int, uint, [256 x %struct.mng_palette8e], uint, [256 x ubyte], uint, uint, uint, uint, uint, uint, uint, uint, uint, ubyte, uint, sbyte*, ushort, ushort, ushort }
-	%struct.z_stream = type { ubyte*, uint, uint, ubyte*, uint, uint, sbyte*, %struct.internal_state*, sbyte* (sbyte*, uint, uint)*, void (sbyte*, sbyte*)*, sbyte*, int, uint, uint }
+	%struct.internal_state = type { i32 }
+	%struct.mng_data = type { i32, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i8, i32, i32, i32, i32, i16, i16, i16, i8, i8, double, double, double, i8, i8, i8, i8, i32, i32, i32, i32, i32, i8, i32, i32, i8*, i8* (i32)*, void (i8*, i32)*, void (i8*, i8*, i32)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*, i8*, i32, i32*)*, i8 (%struct.mng_data*, i8*, i32, i32*)*, i8 (%struct.mng_data*, i32, i8, i32, i32, i32, i32, i8*)*, i8 (%struct.mng_data*, i32, i32, i8*)*, i8 (%struct.mng_data*, i32, i32)*, i8 (%struct.mng_data*, i8, i8*, i8*, i8*, i8*)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*, i8*)*, i8 (%struct.mng_data*, i8*)*, i8 (%struct.mng_data*, i32, i32)*, i8 (%struct.mng_data*, i32, i32, i8*)*, i8 (%struct.mng_data*, i8, i8, i32, i32)*, i8* (%struct.mng_data*, i32)*, i8* (%struct.mng_data*, i32)*, i8* (%struct.mng_data*, i32)*, i8 (%struct.mng_data*, i32, i32, i32, i32)*, i32 (%struct.mng_data*)*, i8 (%struct.mng_data*!
 , i32)*, i8 (%struct.mng_data*, i32)*, i8 (%struct.mng_data*, i32, i32, i32, i32, i32, i32, i32, i32)*, i8 (%struct.mng_data*, i8)*, i8 (%struct.mng_data*, i32, i8*)*, i8 (%struct.mng_data*, i32, i8, i8*)*, i8, i32, i32, i8*, i8*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8, i8, i8, i8, i8, i32, i8, i8, i8, i32, i8*, i32, i8*, i32, i8, i8, i8, i32, i8*, i8*, i32, i32, i8*, i8*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, i8, i8, i32, i32, i8*, i8, i8, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i8*, i32, i32, i32, i8, i8, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8*, i8*, i8*, i32, i8*, i8*, i8*, i8*, i8*, %struct.mng_savedata*, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, !
 [256 x i8], double, void ()*, void ()*, void ()*, void ()*, vo!
 id ()*, 
void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, i16, i8, i8, i8, i8, i8, i32, i32, i8, i32, i32, i32, i32, i16, i16, i16, i8, i16, i8, i32, i32, i32, i32, i8, i32, i32, i8, i32, i32, i32, i32, i8, i32, i32, i8, i32, i32, i32, i32, i32, i8, i32, i8, i16, i16, i16, i16, i32, [256 x %struct.mng_palette8e], i32, [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i8*, i16, i16, i16, i8*, i8, i8, i32, i32, i32, i32, i8, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, i8*, i8, i8, i8, i32, i8*, i8*, i16, i16, i16, i16, i32, i32, i8*, %struct.z_stream, i32, i32, i32, i32, i32, i32, i8, i8, [256 x i32], i8 }
+	%struct.mng_palette8e = type { i8, i8, i8 }
+	%struct.mng_pushdata = type { i8*, i8*, i32, i8, i8*, i32 }
+	%struct.mng_savedata = type { i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i8, i16, i8, i8, i32, i32, i8, i32, i32, i32, i32, i32, [256 x %struct.mng_palette8e], i32, [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i8*, i16, i16, i16 }
+	%struct.z_stream = type { i8*, i32, i32, i8*, i32, i32, i8*, %struct.internal_state*, i8* (i8*, i32, i32)*, void (i8*, i8*)*, i8*, i32, i32, i32 }
 
-implementation   ; Functions:
-
-void %mng_write_basi() {
+define void @mng_write_basi() {
 entry:
-	%tmp = load ubyte* null		; <ubyte> [#uses=1]
-	%tmp = icmp ugt ubyte %tmp, 8		; <bool> [#uses=1]
-	%tmp = load ushort* null		; <ushort> [#uses=2]
-	%tmp3 = icmp eq ushort %tmp, 255		; <bool> [#uses=1]
-	%tmp7 = icmp eq ushort %tmp, -1		; <bool> [#uses=1]
-	%bOpaque.0.in = select bool %tmp, bool %tmp7, bool %tmp3		; <bool> [#uses=1]
-	br bool %bOpaque.0.in, label %cond_next90, label %bb95
+	%tmp = load i8* null		; <i8> [#uses=1]
+	%tmp.upgrd.1 = icmp ugt i8 %tmp, 8		; <i1> [#uses=1]
+	%tmp.upgrd.2 = load i16* null		; <i16> [#uses=2]
+	%tmp3 = icmp eq i16 %tmp.upgrd.2, 255		; <i1> [#uses=1]
+	%tmp7 = icmp eq i16 %tmp.upgrd.2, -1		; <i1> [#uses=1]
+	%bOpaque.0.in = select i1 %tmp.upgrd.1, i1 %tmp7, i1 %tmp3		; <i1> [#uses=1]
+	br i1 %bOpaque.0.in, label %cond_next90, label %bb95
 
 cond_next90:		; preds = %entry
 	ret void

Modified: llvm/trunk/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2007-02-07-PointerCast.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2007-02-07-PointerCast.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/2007-02-07-PointerCast.ll Sat Mar  1 03:15:35 2008
@@ -1,4 +1,4 @@
-;RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep zext
+;RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext
 
 ; Make sure the uint isn't removed.  Instcombine in llvm 1.9 was dropping the 
 ; uint cast which was causing a sign extend. This only affected code with 
@@ -6,21 +6,17 @@
 ; compile a kernel though...
 
 target datalayout = "e-p:32:32"
-target endian = little
-target pointersize = 32
+ at str = internal constant [6 x i8] c"%llx\0A\00"         ; <[6 x i8]*> [#uses=1]
 
-%str = internal constant [6 x sbyte] c"%llx\0A\00"
+declare i32 @printf(i8*, ...)
 
-implementation   ; Functions:
-
-declare int %printf(sbyte*, ...)
-
-int %main(int %x, sbyte** %a) {
+define i32 @main(i32 %x, i8** %a) {
 entry:
-        %tmp = getelementptr [6 x sbyte]* %str, int 0, uint 0 
-        %tmp1 = load sbyte** %a
-	%tmp2 = cast sbyte* %tmp1 to uint		; <uint> [#uses=1]
-	%tmp3 = cast uint %tmp2 to long		; <long> [#uses=1]
-        %tmp = call int (sbyte*, ...)* %printf( sbyte* %tmp, long %tmp3 )
-        ret int 0
+        %tmp = getelementptr [6 x i8]* @str, i32 0, i64 0               ; <i8*> [#uses=1]
+        %tmp1 = load i8** %a            ; <i8*> [#uses=1]
+        %tmp2 = ptrtoint i8* %tmp1 to i32               ; <i32> [#uses=1]
+        %tmp3 = zext i32 %tmp2 to i64           ; <i64> [#uses=1]
+        %tmp.upgrd.1 = call i32 (i8*, ...)* @printf( i8* %tmp, i64 %tmp3 )              ; <i32> [#uses=0]
+        ret i32 0
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/narrow.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/narrow.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/narrow.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/narrow.ll Sat Mar  1 03:15:35 2008
@@ -1,17 +1,18 @@
 ; This file contains various testcases that check to see that instcombine
 ; is narrowing computations when possible.
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    grep {ret i1 false}
 
 ; test1 - Eliminating the casts in this testcase (by narrowing the AND
 ; operation) allows instcombine to realize the function always returns false.
 ;
-bool %test1(int %A, int %B) {
-        %C1 = setlt int %A, %B
-        %ELIM1 = zext bool %C1 to uint
-        %C2 = setgt int %A, %B
-        %ELIM2 = zext bool %C2 to uint
-        %C3 = and uint %ELIM1, %ELIM2
-        %ELIM3 = trunc uint %C3 to bool
-        ret bool %ELIM3
+define i1 @test1(i32 %A, i32 %B) {
+        %C1 = icmp slt i32 %A, %B               ; <i1> [#uses=1]
+        %ELIM1 = zext i1 %C1 to i32             ; <i32> [#uses=1]
+        %C2 = icmp sgt i32 %A, %B               ; <i1> [#uses=1]
+        %ELIM2 = zext i1 %C2 to i32             ; <i32> [#uses=1]
+        %C3 = and i32 %ELIM1, %ELIM2            ; <i32> [#uses=1]
+        %ELIM3 = trunc i32 %C3 to i1            ; <i1> [#uses=1]
+        ret i1 %ELIM3
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/not.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/not.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/not.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/not.ll Sat Mar  1 03:15:35 2008
@@ -1,45 +1,44 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
 
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep xor
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep xor
 
-implementation
-
-int %test1(int %A) {
-	%B = xor int %A, -1
-	%C = xor int %B, -1
-	ret int %C
+define i32 @test1(i32 %A) {
+        %B = xor i32 %A, -1             ; <i32> [#uses=1]
+        %C = xor i32 %B, -1             ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-bool %test2(int %A, int %B) {
-	%cond = setle int %A, %B     ; Can change into setge
-	%Ret = xor bool %cond, true
-	ret bool %Ret
+define i1 @test2(i32 %A, i32 %B) {
+        ; Can change into setge
+        %cond = icmp sle i32 %A, %B             ; <i1> [#uses=1]
+        %Ret = xor i1 %cond, true               ; <i1> [#uses=1]
+        ret i1 %Ret
 }
 
-
 ; Test that demorgans law can be instcombined
-int %test3(int %A, int %B) {
-	%a = xor int %A, -1
-	%b = xor int %B, -1
-	%c = and int %a, %b
-	%d = xor int %c, -1
-	ret int %d
+define i32 @test3(i32 %A, i32 %B) {
+        %a = xor i32 %A, -1             ; <i32> [#uses=1]
+        %b = xor i32 %B, -1             ; <i32> [#uses=1]
+        %c = and i32 %a, %b             ; <i32> [#uses=1]
+        %d = xor i32 %c, -1             ; <i32> [#uses=1]
+        ret i32 %d
 }
 
 ; Test that demorgens law can work with constants
-int %test4(int %A, int %B) {
-	%a = xor int %A, -1
-	%c = and int %a, 5    ; 5 = ~c2
-	%d = xor int %c, -1
-	ret int %d
+define i32 @test4(i32 %A, i32 %B) {
+        %a = xor i32 %A, -1             ; <i32> [#uses=1]
+        %c = and i32 %a, 5              ; <i32> [#uses=1]
+        %d = xor i32 %c, -1             ; <i32> [#uses=1]
+        ret i32 %d
 }
 
 ; test the mirror of demorgans law...
-int %test5(int %A, int %B) {
-	%a = xor int %A, -1
-	%b = xor int %B, -1
-	%c = or int %a, %b
-	%d = xor int %c, -1
-	ret int %d
+define i32 @test5(i32 %A, i32 %B) {
+        %a = xor i32 %A, -1             ; <i32> [#uses=1]
+        %b = xor i32 %B, -1             ; <i32> [#uses=1]
+        %c = or i32 %a, %b              ; <i32> [#uses=1]
+        %d = xor i32 %c, -1             ; <i32> [#uses=1]
+        ret i32 %d
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/or.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/or.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/or.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/or.ll Sat Mar  1 03:15:35 2008
@@ -1,158 +1,171 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    grep -v xor | not grep {or }
 ; END.
 
-implementation
-
-int %test1(int %A) {
-	%B = or int %A, 0
-	ret int %B
+define i32 @test1(i32 %A) {
+        %B = or i32 %A, 0               ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test2(int %A) {
-	%B = or int %A, -1
-	ret int %B
+define i32 @test2(i32 %A) {
+        %B = or i32 %A, -1              ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-ubyte %test2a(ubyte %A) {
-	%B = or ubyte %A, 255
-	ret ubyte %B
+define i8 @test2a(i8 %A) {
+        %B = or i8 %A, -1               ; <i8> [#uses=1]
+        ret i8 %B
 }
 
-bool %test3(bool %A) {
-	%B = or bool %A, false
-	ret bool %B
+define i1 @test3(i1 %A) {
+        %B = or i1 %A, false            ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test4(bool %A) {
-	%B = or bool %A, true
-	ret bool %B
+define i1 @test4(i1 %A) {
+        %B = or i1 %A, true             ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test5(bool %A) {
-	%B = or bool %A, %A
-	ret bool %B
+define i1 @test5(i1 %A) {
+        %B = or i1 %A, %A               ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-int %test6(int %A) {
-	%B = or int %A, %A
-	ret int %B
+define i32 @test6(i32 %A) {
+        %B = or i32 %A, %A              ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test7(int %A) {    ; A | ~A == -1
-        %NotA = xor int -1, %A
-        %B = or int %A, %NotA
-        ret int %B
+; A | ~A == -1
+define i32 @test7(i32 %A) {
+        %NotA = xor i32 -1, %A          ; <i32> [#uses=1]
+        %B = or i32 %A, %NotA           ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-ubyte %test8(ubyte %A) {
-	%B = or ubyte %A, 254
-	%C = or ubyte %B, 1
-	ret ubyte %C
+define i8 @test8(i8 %A) {
+        %B = or i8 %A, -2               ; <i8> [#uses=1]
+        %C = or i8 %B, 1                ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-ubyte %test9(ubyte %A, ubyte %B) {  ; Test that (A|c1)|(B|c2) == (A|B)|(c1|c2)
-	%C = or ubyte %A, 1
-	%D = or ubyte %B, 254
-	%E = or ubyte %C, %D
-	ret ubyte %E
+; Test that (A|c1)|(B|c2) == (A|B)|(c1|c2)
+define i8 @test9(i8 %A, i8 %B) {
+        %C = or i8 %A, 1                ; <i8> [#uses=1]
+        %D = or i8 %B, -2               ; <i8> [#uses=1]
+        %E = or i8 %C, %D               ; <i8> [#uses=1]
+        ret i8 %E
 }
 
-ubyte %test10(ubyte %A) {
-	%B = or ubyte %A, 1
-	%C = and ubyte %B, 254
-	%D = or ubyte %C, 254  ; (X & C1) | C2 --> (X | C2) & (C1|C2)
-	ret ubyte %D
+define i8 @test10(i8 %A) {
+        %B = or i8 %A, 1                ; <i8> [#uses=1]
+        %C = and i8 %B, -2              ; <i8> [#uses=1]
+        ; (X & C1) | C2 --> (X | C2) & (C1|C2)
+        %D = or i8 %C, -2               ; <i8> [#uses=1]
+        ret i8 %D
 }
 
-ubyte %test11(ubyte %A) {
-	%B = or ubyte %A, 254
-	%C = xor ubyte %B, 13
-	%D = or ubyte %C, 1    ; (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)
-	%E = xor ubyte %D, 12
-	ret ubyte %E
+define i8 @test11(i8 %A) {
+        %B = or i8 %A, -2               ; <i8> [#uses=1]
+        %C = xor i8 %B, 13              ; <i8> [#uses=1]
+        ; (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)
+        %D = or i8 %C, 1                ; <i8> [#uses=1]
+        %E = xor i8 %D, 12              ; <i8> [#uses=1]
+        ret i8 %E
 }
 
-uint %test12(uint %A) {
-	%B = or uint %A, 4     ; Should be eliminated
-	%C = and uint %B, 8
-	ret uint %C
+define i32 @test12(i32 %A) {
+        ; Should be eliminated
+        %B = or i32 %A, 4               ; <i32> [#uses=1]
+        %C = and i32 %B, 8              ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-uint %test13(uint %A) {
-	%B = or uint %A, 12
-	%C = and uint %B, 8    ; Always equal to 8
-	ret uint %C 
+define i32 @test13(i32 %A) {
+        %B = or i32 %A, 12              ; <i32> [#uses=1]
+        ; Always equal to 8
+        %C = and i32 %B, 8              ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-bool %test14(uint %A, uint %B) {
-	%C1 = setlt uint %A, %B
-	%C2 = setgt uint %A, %B
-	%D = or bool %C1, %C2      ; (A < B) | (A > B) === A != B
-	ret bool %D
+define i1 @test14(i32 %A, i32 %B) {
+        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
+        %C2 = icmp ugt i32 %A, %B               ; <i1> [#uses=1]
+        ; (A < B) | (A > B) === A != B
+        %D = or i1 %C1, %C2             ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-bool %test15(uint %A, uint %B) {
-        %C1 = setlt uint %A, %B
-        %C2 = seteq uint %A, %B
-        %D = or bool %C1, %C2      ; (A < B) | (A == B) === A <= B
-        ret bool %D
+define i1 @test15(i32 %A, i32 %B) {
+        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
+        %C2 = icmp eq i32 %A, %B                ; <i1> [#uses=1]
+        ; (A < B) | (A == B) === A <= B
+        %D = or i1 %C1, %C2             ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-int %test16(int %A) {
-	%B = and int %A, 1
-	%C = and int %A, -2       ; -2 = ~1
-	%D = or int %B, %C        ; %D = and int %B, -1 == %B
-	ret int %D
+define i32 @test16(i32 %A) {
+        %B = and i32 %A, 1              ; <i32> [#uses=1]
+        ; -2 = ~1
+        %C = and i32 %A, -2             ; <i32> [#uses=1]
+        ; %D = and int %B, -1 == %B
+        %D = or i32 %B, %C              ; <i32> [#uses=1]
+        ret i32 %D
 }
 
-int %test17(int %A) {
-	%B = and int %A, 1
-	%C = and int %A, 4
-	%D = or int %B, %C        ; %D = and int %B, 5
-	ret int %D
+define i32 @test17(i32 %A) {
+        %B = and i32 %A, 1              ; <i32> [#uses=1]
+        %C = and i32 %A, 4              ; <i32> [#uses=1]
+        ; %D = and int %B, 5
+        %D = or i32 %B, %C              ; <i32> [#uses=1]
+        ret i32 %D
 }
 
-bool %test18(int %A) {
-        %B = setge int %A, 100
-        %C = setlt int %A, 50
-        %D = or bool %B, %C   ;; (A-50) >u 50
-        ret bool %D
+define i1 @test18(i32 %A) {
+        %B = icmp sge i32 %A, 100               ; <i1> [#uses=1]
+        %C = icmp slt i32 %A, 50                ; <i1> [#uses=1]
+        ;; (A-50) >u 50
+        %D = or i1 %B, %C               ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-bool %test19(int %A) {
-        %B = seteq int %A, 50
-        %C = seteq int %A, 51
-        %D = or bool %B, %C   ;; (A-50) < 2
-        ret bool %D
+define i1 @test19(i32 %A) {
+        %B = icmp eq i32 %A, 50         ; <i1> [#uses=1]
+        %C = icmp eq i32 %A, 51         ; <i1> [#uses=1]
+        ;; (A-50) < 2
+        %D = or i1 %B, %C               ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-int %test20(int %x) {
-	%y = and int %x, 123
-	%z = or int %y, %x
-	ret int %z
+define i32 @test20(i32 %x) {
+        %y = and i32 %x, 123            ; <i32> [#uses=1]
+        %z = or i32 %y, %x              ; <i32> [#uses=1]
+        ret i32 %z
 }
 
-uint %test21(uint %tmp.1) {
-        %tmp.1.mask1 = add uint %tmp.1, 2
-        %tmp.3 = and uint %tmp.1.mask1, 4294967294
-        %tmp.5 = and uint %tmp.1, 1
-        %tmp.6 = or uint %tmp.5, %tmp.3   ;; add tmp.1, 2
-	ret uint %tmp.6
+define i32 @test21(i32 %tmp.1) {
+        %tmp.1.mask1 = add i32 %tmp.1, 2                ; <i32> [#uses=1]
+        %tmp.3 = and i32 %tmp.1.mask1, -2               ; <i32> [#uses=1]
+        %tmp.5 = and i32 %tmp.1, 1              ; <i32> [#uses=1]
+        ;; add tmp.1, 2
+        %tmp.6 = or i32 %tmp.5, %tmp.3          ; <i32> [#uses=1]
+        ret i32 %tmp.6
 }
 
-int %test22(int %B) {
-        %ELIM41 = and int %B, 1         ; <int> [#uses=1]
-        %ELIM7 = and int %B, -2         ; <int> [#uses=1]
-        %ELIM5 = or int %ELIM41, %ELIM7         ; <int> [#uses=1]
-	ret int %ELIM5
+define i32 @test22(i32 %B) {
+        %ELIM41 = and i32 %B, 1         ; <i32> [#uses=1]
+        %ELIM7 = and i32 %B, -2         ; <i32> [#uses=1]
+        %ELIM5 = or i32 %ELIM41, %ELIM7         ; <i32> [#uses=1]
+        ret i32 %ELIM5
 }
 
-ushort %test23(ushort %A) {
-        %B = shr ushort %A, ubyte 1
-        %C = or ushort %B, 32768       ;; fold or into xor
-        %D = xor ushort %C, 8193
-        ret ushort %D
+define i16 @test23(i16 %A) {
+        %B = lshr i16 %A, 1             ; <i16> [#uses=1]
+        ;; fold or into xor
+        %C = or i16 %B, -32768          ; <i16> [#uses=1]
+        %D = xor i16 %C, 8193           ; <i16> [#uses=1]
+        ret i16 %D
 }

Modified: llvm/trunk/test/Transforms/InstCombine/phi.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/phi.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/phi.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/phi.ll Sat Mar  1 03:15:35 2008
@@ -1,78 +1,101 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep phi
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep phi
 ; END.
 
-implementation
+define i32 @test1(i32 %A, i1 %b) {
+BB0:
+        br i1 %b, label %BB1, label %BB2
+
+BB1:            ; preds = %BB0
+        ; Combine away one argument PHI nodes
+        %B = phi i32 [ %A, %BB0 ]               ; <i32> [#uses=1]
+        ret i32 %B
 
-int %test1(int %A, bool %b) {
-BB0:    br bool %b, label %BB1, label %BB2
-BB1:
-        %B = phi int [%A, %BB0]     ; Combine away one argument PHI nodes
-        ret int %B
-BB2:
-        ret int %A
+BB2:            ; preds = %BB0
+        ret i32 %A
 }
 
-int %test2(int %A, bool %b) {
-BB0:    br bool %b, label %BB1, label %BB2
-BB1:
-	br label %BB2
-BB2:
-        %B = phi int [%A, %BB0], [%A, %BB1]     ; Combine away PHI nodes with same values
-        ret int %B
+define i32 @test2(i32 %A, i1 %b) {
+BB0:
+        br i1 %b, label %BB1, label %BB2
+
+BB1:            ; preds = %BB0
+        br label %BB2
+
+BB2:            ; preds = %BB1, %BB0
+        ; Combine away PHI nodes with same values
+        %B = phi i32 [ %A, %BB0 ], [ %A, %BB1 ]         ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test3(int %A, bool %b) {
-BB0: br label %Loop
+define i32 @test3(i32 %A, i1 %b) {
+BB0:
+        br label %Loop
+
+Loop:           ; preds = %Loop, %BB0
+        ; PHI has same value always.
+        %B = phi i32 [ %A, %BB0 ], [ %B, %Loop ]                ; <i32> [#uses=2]
+        br i1 %b, label %Loop, label %Exit
 
-Loop:
-	%B = phi int [%A, %BB0], [%B, %Loop]    ; PHI has same value always.
-	br bool %b, label %Loop, label %Exit
-Exit:
-	ret int %B
+Exit:           ; preds = %Loop
+        ret i32 %B
 }
 
-int %test4(bool %b) {
-BB0:  ret int 7                                 ; Loop is unreachable
+define i32 @test4(i1 %b) {
+BB0:
+        ; Loop is unreachable
+        ret i32 7
+
+Loop:           ; preds = %L2, %Loop
+        ; PHI has same value always.
+        %B = phi i32 [ %B, %L2 ], [ %B, %Loop ]         ; <i32> [#uses=2]
+        br i1 %b, label %L2, label %Loop
 
-Loop:
-        %B = phi int [%B, %L2], [%B, %Loop]     ; PHI has same value always.
-        br bool %b, label %L2, label %Loop
-L2:
-	br label %Loop
+L2:             ; preds = %Loop
+        br label %Loop
 }
 
-int %test5(int %A, bool %b) {
-BB0: br label %Loop
+define i32 @test5(i32 %A, i1 %b) {
+BB0:
+        br label %Loop
+
+Loop:           ; preds = %Loop, %BB0
+        ; PHI has same value always.
+        %B = phi i32 [ %A, %BB0 ], [ undef, %Loop ]             ; <i32> [#uses=1]
+        br i1 %b, label %Loop, label %Exit
 
-Loop:
-        %B = phi int [%A, %BB0], [undef, %Loop]    ; PHI has same value always.
-        br bool %b, label %Loop, label %Exit
-Exit:
-        ret int %B
+Exit:           ; preds = %Loop
+        ret i32 %B
 }
 
-uint %test6(int %A, bool %b) {
+define i32 @test6(i32 %A, i1 %b) {
 BB0:
-        %X = cast int %A to uint
-        br bool %b, label %BB1, label %BB2
-BB1:
-        %Y = cast int %A to uint
+        %X = bitcast i32 %A to i32              ; <i32> [#uses=1]
+        br i1 %b, label %BB1, label %BB2
+
+BB1:            ; preds = %BB0
+        %Y = bitcast i32 %A to i32              ; <i32> [#uses=1]
         br label %BB2
-BB2:
-        %B = phi uint [%X, %BB0], [%Y, %BB1] ;; Suck casts into phi
-        ret uint %B
+
+BB2:            ; preds = %BB1, %BB0
+        ;; Suck casts into phi
+        %B = phi i32 [ %X, %BB0 ], [ %Y, %BB1 ]         ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test7(int %A, bool %b) {
-BB0: br label %Loop
-
-Loop:
-        %B = phi int [%A, %BB0], [%C, %Loop]    ; PHI is dead.
-	%C = add int %B, 123
-        br bool %b, label %Loop, label %Exit
-Exit:
-        ret int 0
+define i32 @test7(i32 %A, i1 %b) {
+BB0:
+        br label %Loop
+
+Loop:           ; preds = %Loop, %BB0
+        ; PHI is dead.
+        %B = phi i32 [ %A, %BB0 ], [ %C, %Loop ]                ; <i32> [#uses=1]
+        %C = add i32 %B, 123            ; <i32> [#uses=1]
+        br i1 %b, label %Loop, label %Exit
+
+Exit:           ; preds = %Loop
+        ret i32 0
 }
 
+

Modified: llvm/trunk/test/Transforms/InstCombine/rem.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/rem.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/rem.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/rem.ll Sat Mar  1 03:15:35 2008
@@ -1,79 +1,76 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep rem
-; END.
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep rem
 
-implementation
-
-int %test1(int %A) {
-	%B = rem int %A, 1    ; ISA constant 0
-	ret int %B
+define i32 @test1(i32 %A) {
+	%B = srem i32 %A, 1		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test2(int %A) {          ; 0 % X = 0, we don't need to preserve traps
-	%B = rem int 0, %A
-	ret int %B
+define i32 @test2(i32 %A) {
+	%B = srem i32 0, %A		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-uint %test3(uint %A) {
-	%B = rem uint %A, 8   ; & 7
-	ret uint %B
+define i32 @test3(i32 %A) {
+	%B = urem i32 %A, 8		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-bool %test3a(int %A) {
-	%B = rem int %A, -8   ; & 7
-	%C = setne int %B, 0
-	ret bool %C
+define i1 @test3a(i32 %A) {
+	%B = srem i32 %A, -8		; <i32> [#uses=1]
+	%C = icmp ne i32 %B, 0		; <i1> [#uses=1]
+	ret i1 %C
 }
 
-uint %test4(uint %X, bool %C) {
-	%V = select bool %C, uint 1, uint 8
-	%R = rem uint %X, %V
-	ret uint %R
+define i32 @test4(i32 %X, i1 %C) {
+	%V = select i1 %C, i32 1, i32 8		; <i32> [#uses=1]
+	%R = urem i32 %X, %V		; <i32> [#uses=1]
+	ret i32 %R
 }
 
-uint %test5(uint %X, ubyte %B) {
-        %Amt = shl uint 32, ubyte %B
-        %V = rem uint %X, %Amt
-        ret uint %V
+define i32 @test5(i32 %X, i8 %B) {
+	%shift.upgrd.1 = zext i8 %B to i32		; <i32> [#uses=1]
+	%Amt = shl i32 32, %shift.upgrd.1		; <i32> [#uses=1]
+	%V = urem i32 %X, %Amt		; <i32> [#uses=1]
+	ret i32 %V
 }
 
-int %test6(int %A) {
-	%B = rem int %A, 0   ;; undef
-	ret int %B
+define i32 @test6(i32 %A) {
+	%B = srem i32 %A, 0		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test7(int %A) {
-	%B = mul int %A, 26
-	%C = rem int %B, 13
-	ret int %C
+define i32 @test7(i32 %A) {
+	%B = mul i32 %A, 26		; <i32> [#uses=1]
+	%C = srem i32 %B, 13		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test8(int %A) {
-	%B = shl int %A, ubyte 4
-	%C = rem int %B, 8 
-	ret int %C
+define i32 @test8(i32 %A) {
+	%B = shl i32 %A, 4		; <i32> [#uses=1]
+	%C = srem i32 %B, 8		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test9(uint %A) {
-	%B = mul uint %A, 124
-	%C = rem uint %B, 62 
-	ret uint %C
+define i32 @test9(i32 %A) {
+	%B = mul i32 %A, 124		; <i32> [#uses=1]
+	%C = urem i32 %B, 62		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test10(ubyte %c) {
-        %tmp.1 = cast ubyte %c to int
-        %tmp.2 = mul int %tmp.1, 3
-        %tmp.3 = cast int %tmp.2 to ulong
-        %tmp.5 = rem ulong %tmp.3, 3
-        %tmp.6 = cast ulong %tmp.5 to int
-        ret int %tmp.6
+define i32 @test10(i8 %c) {
+	%tmp.1 = zext i8 %c to i32		; <i32> [#uses=1]
+	%tmp.2 = mul i32 %tmp.1, 3		; <i32> [#uses=1]
+	%tmp.3 = sext i32 %tmp.2 to i64		; <i64> [#uses=1]
+	%tmp.5 = urem i64 %tmp.3, 3		; <i64> [#uses=1]
+	%tmp.6 = trunc i64 %tmp.5 to i32		; <i32> [#uses=1]
+	ret i32 %tmp.6
 }
 
-int %test11(int %i) {
-        %tmp.1 = and int %i, -2
-        %tmp.3 = mul int %tmp.1, 3
-        %tmp.5 = rem int %tmp.3, 6
-        ret int %tmp.5
+define i32 @test11(i32 %i) {
+	%tmp.1 = and i32 %i, -2		; <i32> [#uses=1]
+	%tmp.3 = mul i32 %tmp.1, 3		; <i32> [#uses=1]
+	%tmp.5 = srem i32 %tmp.3, 6		; <i32> [#uses=1]
+	ret i32 %tmp.5
 }
-

Modified: llvm/trunk/test/Transforms/InstCombine/select.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/select.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/select.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/select.ll Sat Mar  1 03:15:35 2008
@@ -1,190 +1,204 @@
 ; This test makes sure that these instructions are properly eliminated.
 ; PR1822
 
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep select
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep select
 
-implementation
-
-int %test1(int %A, int %B) {
-	%C = select bool false, int %A, int %B
-	ret int %C
+define i32 @test1(i32 %A, i32 %B) {
+        %C = select i1 false, i32 %A, i32 %B            ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-int %test2(int %A, int %B) {
-	%C = select bool true, int %A, int %B
-	ret int %C
+define i32 @test2(i32 %A, i32 %B) {
+        %C = select i1 true, i32 %A, i32 %B             ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-int %test3(bool %C, int %I) {
-	%V = select bool %C, int %I, int %I         ; V = I
-	ret int %V
+
+define i32 @test3(i1 %C, i32 %I) {
+        ; V = I
+        %V = select i1 %C, i32 %I, i32 %I               ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-bool %test4(bool %C) {
-	%V = select bool %C, bool true, bool false  ; V = C
-	ret bool %V
+define i1 @test4(i1 %C) {
+        ; V = C
+        %V = select i1 %C, i1 true, i1 false            ; <i1> [#uses=1]
+        ret i1 %V
 }
 
-bool %test5(bool %C) {
-	%V = select bool %C, bool false, bool true  ; V = !C
-	ret bool %V
+define i1 @test5(i1 %C) {
+        ; V = !C
+        %V = select i1 %C, i1 false, i1 true            ; <i1> [#uses=1]
+        ret i1 %V
 }
 
-int %test6(bool %C) {
-	%V = select bool %C, int 1, int 0         ; V = cast C to int
-	ret int %V
+define i32 @test6(i1 %C) { 
+        ; V = cast C to int
+        %V = select i1 %C, i32 1, i32 0         ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-bool %test7(bool %C, bool %X) {
-        %R = select bool %C, bool true, bool %X    ; R = or C, X
-        ret bool %R
+define i1 @test7(i1 %C, i1 %X) {
+        ; R = or C, X       
+        %R = select i1 %C, i1 true, i1 %X               ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-bool %test8(bool %C, bool %X) {
-        %R = select bool %C, bool %X, bool false   ; R = and C, X
-        ret bool %R
+define i1 @test8(i1 %C, i1 %X) {
+        ; R = and C, X
+        %R = select i1 %C, i1 %X, i1 false              ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-bool %test9(bool %C, bool %X) {
-        %R = select bool %C, bool false, bool %X    ; R = and !C, X
-        ret bool %R
+define i1 @test9(i1 %C, i1 %X) {
+        ; R = and !C, X
+        %R = select i1 %C, i1 false, i1 %X              ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-bool %test10(bool %C, bool %X) {
-        %R = select bool %C, bool %X, bool true   ; R = or !C, X
-        ret bool %R
+define i1 @test10(i1 %C, i1 %X) {
+        ; R = or !C, X
+        %R = select i1 %C, i1 %X, i1 true               ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-int %test11(int %a) {
-        %C = seteq int %a, 0
-        %R = select bool %C, int 0, int 1
-        ret int %R
+define i32 @test11(i32 %a) {
+        %C = icmp eq i32 %a, 0          ; <i1> [#uses=1]
+        %R = select i1 %C, i32 0, i32 1         ; <i32> [#uses=1]
+        ret i32 %R
 }
 
-int %test12(bool %cond, int %a) {
-	%b = or int %a, 1
-	%c = select bool %cond, int %b, int %a
-	ret int %c
+define i32 @test12(i1 %cond, i32 %a) {
+        %b = or i32 %a, 1               ; <i32> [#uses=1]
+        %c = select i1 %cond, i32 %b, i32 %a            ; <i32> [#uses=1]
+        ret i32 %c
 }
 
-int %test12a(bool %cond, int %a) {
-	%b = shr int %a, ubyte 1
-	%c = select bool %cond, int %b, int %a
-	ret int %c
+define i32 @test12a(i1 %cond, i32 %a) {
+        %b = ashr i32 %a, 1             ; <i32> [#uses=1]
+        %c = select i1 %cond, i32 %b, i32 %a            ; <i32> [#uses=1]
+        ret i32 %c
 }
 
-int %test12b(bool %cond, int %a) {
-	%b = shr int %a, ubyte 1
-	%c = select bool %cond, int %a, int %b
-	ret int %c
+define i32 @test12b(i1 %cond, i32 %a) {
+        %b = ashr i32 %a, 1             ; <i32> [#uses=1]
+        %c = select i1 %cond, i32 %a, i32 %b            ; <i32> [#uses=1]
+        ret i32 %c
 }
 
-int %test13(int %a, int %b) {
-	%C = seteq int %a, %b
-	%V = select bool %C, int %a, int %b
-	ret int %V
+define i32 @test13(i32 %a, i32 %b) {
+        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
+        %V = select i1 %C, i32 %a, i32 %b               ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-int %test13a(int %a, int %b) {
-	%C = setne int %a, %b
-	%V = select bool %C, int %a, int %b
-	ret int %V
+define i32 @test13a(i32 %a, i32 %b) {
+        %C = icmp ne i32 %a, %b         ; <i1> [#uses=1]
+        %V = select i1 %C, i32 %a, i32 %b               ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-int %test13b(int %a, int %b) {
-	%C = seteq int %a, %b
-	%V = select bool %C, int %b, int %a
-	ret int %V
+define i32 @test13b(i32 %a, i32 %b) {
+        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
+        %V = select i1 %C, i32 %b, i32 %a               ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-bool %test14a(bool %C, int %X) {
-	%V = select bool %C, int %X, int 0
-	%R = setlt int %V, 1                  ; (X < 1) | !C
-	ret bool %R
+define i1 @test14a(i1 %C, i32 %X) {
+        %V = select i1 %C, i32 %X, i32 0                ; <i32> [#uses=1]
+        ; (X < 1) | !C
+        %R = icmp slt i32 %V, 1         ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-bool %test14b(bool %C, int %X) {
-	%V = select bool %C, int 0, int %X
-	%R = setlt int %V, 1                  ; (X < 1) | C
-	ret bool %R
+define i1 @test14b(i1 %C, i32 %X) {
+        %V = select i1 %C, i32 0, i32 %X                ; <i32> [#uses=1]
+        ; (X < 1) | C
+        %R = icmp slt i32 %V, 1         ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-int %test15a(int %X) {       ;; Code sequence for (X & 16) ? 16 : 0
-        %t1 = and int %X, 16
-        %t2 = seteq int %t1, 0
-        %t3 = select bool %t2, int 0, int 16 ;; X & 16
-        ret int %t3
+;; Code sequence for (X & 16) ? 16 : 0
+define i32 @test15a(i32 %X) {
+        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
+        %t2 = icmp eq i32 %t1, 0                ; <i1> [#uses=1]
+        %t3 = select i1 %t2, i32 0, i32 16              ; <i32> [#uses=1]
+        ret i32 %t3
 }
 
-int %test15b(int %X) {       ;; Code sequence for (X & 32) ? 0 : 24
-        %t1 = and int %X, 32
-        %t2 = seteq int %t1, 0
-        %t3 = select bool %t2, int 32, int 0 ;; ~X & 32
-        ret int %t3
+;; Code sequence for (X & 32) ? 0 : 24
+define i32 @test15b(i32 %X) {
+        %t1 = and i32 %X, 32            ; <i32> [#uses=1]
+        %t2 = icmp eq i32 %t1, 0                ; <i1> [#uses=1]
+        %t3 = select i1 %t2, i32 32, i32 0              ; <i32> [#uses=1]
+        ret i32 %t3
 }
 
-int %test15c(int %X) {       ;; Alternate code sequence for (X & 16) ? 16 : 0
-        %t1 = and int %X, 16
-        %t2 = seteq int %t1, 16
-        %t3 = select bool %t2, int 16, int 0 ;; X & 16
-        ret int %t3
+;; Alternate code sequence for (X & 16) ? 16 : 0
+define i32 @test15c(i32 %X) {
+        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
+        %t2 = icmp eq i32 %t1, 16               ; <i1> [#uses=1]
+        %t3 = select i1 %t2, i32 16, i32 0              ; <i32> [#uses=1]
+        ret i32 %t3
 }
 
-int %test15d(int %X) {       ;; Alternate code sequence for (X & 16) ? 16 : 0
-        %t1 = and int %X, 16
-        %t2 = setne int %t1, 0
-        %t3 = select bool %t2, int 16, int 0 ;; X & 16
-        ret int %t3
+;; Alternate code sequence for (X & 16) ? 16 : 0
+define i32 @test15d(i32 %X) {
+        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
+        %t2 = icmp ne i32 %t1, 0                ; <i1> [#uses=1]
+        %t3 = select i1 %t2, i32 16, i32 0              ; <i32> [#uses=1]
+        ret i32 %t3
 }
 
-int %test16(bool %C, int* %P) {
-	%P2 = select bool %C, int* %P, int* null
-	%V = load int* %P2
-	ret int %V
+define i32 @test16(i1 %C, i32* %P) {
+        %P2 = select i1 %C, i32* %P, i32* null          ; <i32*> [#uses=1]
+        %V = load i32* %P2              ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-bool %test17(int* %X, bool %C) {
-	%R = select bool %C, int* %X, int* null
-	%RV = seteq int* %R, null
-	ret bool %RV
+define i1 @test17(i32* %X, i1 %C) {
+        %R = select i1 %C, i32* %X, i32* null           ; <i32*> [#uses=1]
+        %RV = icmp eq i32* %R, null             ; <i1> [#uses=1]
+        ret i1 %RV
 }
 
-int %test18(int %X, int %Y, bool %C) {
-	%R = select bool %C, int %X, int 0
-	%V = div int %Y, %R   ; div Y,X
-	ret int %V
+define i32 @test18(i32 %X, i32 %Y, i1 %C) {
+        %R = select i1 %C, i32 %X, i32 0                ; <i32> [#uses=1]
+        %V = sdiv i32 %Y, %R            ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-int %test19(uint %x) {
-        %tmp = setgt uint %x, 2147483647
-        %retval = select bool %tmp, int -1, int 0
-        ret int %retval
+define i32 @test19(i32 %x) {
+        %tmp = icmp ugt i32 %x, 2147483647              ; <i1> [#uses=1]
+        %retval = select i1 %tmp, i32 -1, i32 0         ; <i32> [#uses=1]
+        ret i32 %retval
 }
 
-int %test20(int %x) {
-        %tmp = setlt int %x, 0
-        %retval = select bool %tmp, int -1, int 0
-        ret int %retval
+define i32 @test20(i32 %x) {
+        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
+        %retval = select i1 %tmp, i32 -1, i32 0         ; <i32> [#uses=1]
+        ret i32 %retval
 }
 
-long %test21(int %x) {
-        %tmp = setlt int %x, 0
-        %retval = select bool %tmp, long -1, long 0
-        ret long %retval
+define i64 @test21(i32 %x) {
+        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
+        %retval = select i1 %tmp, i64 -1, i64 0         ; <i64> [#uses=1]
+        ret i64 %retval
 }
 
-short %test22(int %x) {
-        %tmp = setlt int %x, 0
-        %retval = select bool %tmp, short -1, short 0
-        ret short %retval
+define i16 @test22(i32 %x) {
+        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
+        %retval = select i1 %tmp, i16 -1, i16 0         ; <i16> [#uses=1]
+        ret i16 %retval
 }
 
-bool %test23(bool %a, bool %b) {
-	%c = select bool %a, bool %b, bool %a
-	ret bool %c
+define i1 @test23(i1 %a, i1 %b) {
+        %c = select i1 %a, i1 %b, i1 %a         ; <i1> [#uses=1]
+        ret i1 %c
 }
 
-bool %test24(bool %a, bool %b) {
-	%c = select bool %a, bool %a, bool %b
-	ret bool %c
+define i1 @test24(i1 %a, i1 %b) {
+        %c = select i1 %a, i1 %a, i1 %b         ; <i1> [#uses=1]
+        ret i1 %c
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/set.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/set.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/set.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/set.ll Sat Mar  1 03:15:35 2008
@@ -1,152 +1,170 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep icmp
-; END.
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep icmp
+	
+ at X = external global i32                ; <i32*> [#uses=2]
 
-%X = uninitialized global int
-
-bool %test1(int %A) {
-	%B = seteq int %A, %A
-	%C = seteq int* %X, null   ; Never true
-	%D = and bool %B, %C
-	ret bool %D
+define i1 @test1(i32 %A) {
+        %B = icmp eq i32 %A, %A         ; <i1> [#uses=1]
+        ; Never true
+        %C = icmp eq i32* @X, null              ; <i1> [#uses=1]
+        %D = and i1 %B, %C              ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-bool %test2(int %A) {
-	%B = setne int %A, %A
-	%C = setne int* %X, null   ; Never false
-	%D = or bool %B, %C
-	ret bool %D
+define i1 @test2(i32 %A) {
+        %B = icmp ne i32 %A, %A         ; <i1> [#uses=1]
+        ; Never false
+        %C = icmp ne i32* @X, null              ; <i1> [#uses=1]
+        %D = or i1 %B, %C               ; <i1> [#uses=1]
+        ret i1 %D
 }
 
-bool %test3(int %A) {
-	%B = setlt int %A, %A
-	ret bool %B
+define i1 @test3(i32 %A) {
+        %B = icmp slt i32 %A, %A                ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test4(int %A) {
-	%B = setgt int %A, %A
-	ret bool %B
+
+define i1 @test4(i32 %A) {
+        %B = icmp sgt i32 %A, %A                ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test5(int %A) {
-	%B = setle int %A, %A
-	ret bool %B
+define i1 @test5(i32 %A) {
+        %B = icmp sle i32 %A, %A                ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test6(int %A) {
-	%B = setge int %A, %A
-	ret bool %B
+define i1 @test6(i32 %A) {
+        %B = icmp sge i32 %A, %A                ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test7(uint %A) {
-	%B = setge uint %A, 0  ; true
-	ret bool %B
+define i1 @test7(i32 %A) {
+        ; true
+        %B = icmp uge i32 %A, 0         ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test8(uint %A) {
-	%B = setlt uint %A, 0  ; false
-	ret bool %B
+define i1 @test8(i32 %A) {
+        ; false
+        %B = icmp ult i32 %A, 0         ; <i1> [#uses=1]
+        ret i1 %B
 }
 
 ;; test operations on boolean values these should all be eliminated$a
-bool %test9(bool %A) {
-	%B = setlt bool %A, false ; false
-	ret bool %B
+define i1 @test9(i1 %A) {
+        ; false
+        %B = icmp ult i1 %A, false              ; <i1> [#uses=1]
+        ret i1 %B
 }
-bool %test10(bool %A) {
-	%B = setgt bool %A, true  ; false
-	ret bool %B
+
+define i1 @test10(i1 %A) {
+        ; false
+        %B = icmp ugt i1 %A, true               ; <i1> [#uses=1]
+        ret i1 %B
 }
-bool %test11(bool %A) {
-	%B = setle bool %A, true ; true
-	ret bool %B
+
+define i1 @test11(i1 %A) {
+        ; true
+        %B = icmp ule i1 %A, true               ; <i1> [#uses=1]
+        ret i1 %B
 }
-bool %test12(bool %A) {
-	%B = setge bool %A, false  ; true
-	ret bool %B
+
+define i1 @test12(i1 %A) {
+        ; true
+        %B = icmp uge i1 %A, false              ; <i1> [#uses=1]
+        ret i1 %B
 }
-bool %test13(bool %A, bool %B) {
-	%C = setge bool %A, %B       ; A | ~B
-	ret bool %C
+
+define i1 @test13(i1 %A, i1 %B) {
+        ; A | ~B
+        %C = icmp uge i1 %A, %B         ; <i1> [#uses=1]
+        ret i1 %C
 }
-bool %test14(bool %A, bool %B) {
-	%C = seteq bool %A, %B  ; ~(A ^ B)
-	ret bool %C
+
+define i1 @test14(i1 %A, i1 %B) {
+        ; ~(A ^ B)
+        %C = icmp eq i1 %A, %B          ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test16(uint %A) {
-	%B = and uint %A, 5
-	%C = seteq uint %B, 8    ; Is never true
-	ret bool %C
+define i1 @test16(i32 %A) {
+        %B = and i32 %A, 5              ; <i32> [#uses=1]
+        ; Is never true
+        %C = icmp eq i32 %B, 8          ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test17(ubyte %A) {
-	%B = or ubyte %A, 1
-	%C = seteq ubyte %B, 2   ; Always false
-	ret bool %C
+define i1 @test17(i8 %A) {
+        %B = or i8 %A, 1                ; <i8> [#uses=1]
+        ; Always false
+        %C = icmp eq i8 %B, 2           ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test18(bool %C, int %a) {
+define i1 @test18(i1 %C, i32 %a) {
 entry:
-        br bool %C, label %endif, label %else
+        br i1 %C, label %endif, label %else
 
-else:
+else:           ; preds = %entry
         br label %endif
 
-endif:
-        %b.0 = phi int [ 0, %entry ], [ 1, %else ]
-        %tmp.4 = setlt int %b.0, 123
-        ret bool %tmp.4
+endif:          ; preds = %else, %entry
+        %b.0 = phi i32 [ 0, %entry ], [ 1, %else ]              ; <i32> [#uses=1]
+        %tmp.4 = icmp slt i32 %b.0, 123         ; <i1> [#uses=1]
+        ret i1 %tmp.4
 }
 
-bool %test19(bool %A, bool %B) {
-	%a = cast bool %A to int
-	%b = cast bool %B to int
-	%C = seteq int %a, %b
-	ret bool %C
+define i1 @test19(i1 %A, i1 %B) {
+        %a = zext i1 %A to i32          ; <i32> [#uses=1]
+        %b = zext i1 %B to i32          ; <i32> [#uses=1]
+        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-uint %test20(uint %A) {
-        %B = and uint %A, 1
-        %C = setne uint %B, 0
-        %D = cast bool %C to uint
-        ret uint %D
+define i32 @test20(i32 %A) {
+        %B = and i32 %A, 1              ; <i32> [#uses=1]
+        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
+        %D = zext i1 %C to i32          ; <i32> [#uses=1]
+        ret i32 %D
 }
 
-int %test21(int %a) {
-        %tmp.6 = and int %a, 4
-        %not.tmp.7 = setne int %tmp.6, 0
-        %retval = cast bool %not.tmp.7 to int
-        ret int %retval
+define i32 @test21(i32 %a) {
+        %tmp.6 = and i32 %a, 4          ; <i32> [#uses=1]
+        %not.tmp.7 = icmp ne i32 %tmp.6, 0              ; <i1> [#uses=1]
+        %retval = zext i1 %not.tmp.7 to i32             ; <i32> [#uses=1]
+        ret i32 %retval
 }
 
-bool %test22(uint %A, int %X) {
-        %B = and uint %A, 100663295
-        %C = setlt uint %B, 268435456
-	%Y = and int %X, 7
-	%Z = setgt int %Y, -1
-	%R = or bool %C, %Z
-	ret bool %R
+define i1 @test22(i32 %A, i32 %X) {
+        %B = and i32 %A, 100663295              ; <i32> [#uses=1]
+        %C = icmp ult i32 %B, 268435456         ; <i1> [#uses=1]
+        %Y = and i32 %X, 7              ; <i32> [#uses=1]
+        %Z = icmp sgt i32 %Y, -1                ; <i1> [#uses=1]
+        %R = or i1 %C, %Z               ; <i1> [#uses=1]
+        ret i1 %R
 }
 
-int %test23(int %a) {
-        %tmp.1 = and int %a, 1
-        %tmp.2 = seteq int %tmp.1, 0
-        %tmp.3 = cast bool %tmp.2 to int  ;; xor tmp1, 1
-        ret int %tmp.3
+define i32 @test23(i32 %a) {
+        %tmp.1 = and i32 %a, 1          ; <i32> [#uses=1]
+        %tmp.2 = icmp eq i32 %tmp.1, 0          ; <i1> [#uses=1]
+        %tmp.3 = zext i1 %tmp.2 to i32          ; <i32> [#uses=1]
+        ret i32 %tmp.3
 }
 
-int %test24(uint %a) {
-        %tmp1 = and uint %a, 4
-	%tmp.1 = shr uint %tmp1, ubyte 2
-        %tmp.2 = seteq uint %tmp.1, 0
-        %tmp.3 = cast bool %tmp.2 to int  ;; xor tmp1, 1
-        ret int %tmp.3
+define i32 @test24(i32 %a) {
+        %tmp1 = and i32 %a, 4           ; <i32> [#uses=1]
+        %tmp.1 = lshr i32 %tmp1, 2              ; <i32> [#uses=1]
+        %tmp.2 = icmp eq i32 %tmp.1, 0          ; <i1> [#uses=1]
+        %tmp.3 = zext i1 %tmp.2 to i32          ; <i32> [#uses=1]
+        ret i32 %tmp.3
 }
 
-bool %test25(uint %A) {
-	%B = and uint %A, 2
-	%C = setgt uint %B, 2
-	ret bool %C
+define i1 @test25(i32 %A) {
+        %B = and i32 %A, 2              ; <i32> [#uses=1]
+        %C = icmp ugt i32 %B, 2         ; <i1> [#uses=1]
+        ret i1 %C
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/setcc-cast-cast.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/setcc-cast-cast.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/setcc-cast-cast.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/setcc-cast-cast.ll Sat Mar  1 03:15:35 2008
@@ -1,45 +1,45 @@
 ; This test case was reduced from MultiSource/Applications/hbd. It makes sure
 ; that folding doesn't happen in case a zext is applied where a sext should have
 ; been when a setcc is used with two casts.
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    not grep {br bool false}
-; END.
 
-int %bug(ubyte %inbuff) {
+define i32 @bug(i8 %inbuff) {
 entry:
-	%tmp = bitcast ubyte %inbuff to sbyte   ; <sbyte> [#uses=1]
-	%tmp = sext sbyte %tmp to int		; <int> [#uses=3]
-	%tmp = seteq int %tmp, 1		; <bool> [#uses=1]
-	br bool %tmp, label %cond_true, label %cond_next
+        %tmp = bitcast i8 %inbuff to i8         ; <i8> [#uses=1]
+        %tmp.upgrd.1 = sext i8 %tmp to i32              ; <i32> [#uses=3]
+        %tmp.upgrd.2 = icmp eq i32 %tmp.upgrd.1, 1              ; <i1> [#uses=1]
+        br i1 %tmp.upgrd.2, label %cond_true, label %cond_next
 
-cond_true:		; preds = %entry
-	br label %bb
+cond_true:              ; preds = %entry
+        br label %bb
 
-cond_next:		; preds = %entry
-	%tmp3 = seteq int %tmp, -1		; <bool> [#uses=1]
-	br bool %tmp3, label %cond_true4, label %cond_next5
+cond_next:              ; preds = %entry
+        %tmp3 = icmp eq i32 %tmp.upgrd.1, -1            ; <i1> [#uses=1]
+        br i1 %tmp3, label %cond_true4, label %cond_next5
 
-cond_true4:		; preds = %cond_next
-	br label %bb
+cond_true4:             ; preds = %cond_next
+        br label %bb
 
-cond_next5:		; preds = %cond_next
-	%tmp7 = setgt int %tmp, 1		; <bool> [#uses=1]
-	br bool %tmp7, label %cond_true8, label %cond_false
+cond_next5:             ; preds = %cond_next
+        %tmp7 = icmp sgt i32 %tmp.upgrd.1, 1            ; <i1> [#uses=1]
+        br i1 %tmp7, label %cond_true8, label %cond_false
 
-cond_true8:		; preds = %cond_next5
-	br label %cond_next9
+cond_true8:             ; preds = %cond_next5
+        br label %cond_next9
 
-cond_false:		; preds = %cond_next5
-	br label %cond_next9
+cond_false:             ; preds = %cond_next5
+        br label %cond_next9
 
-cond_next9:		; preds = %cond_false, %cond_true8
-	%iftmp.1.0 = phi int [ 42, %cond_true8 ], [ 23, %cond_false ]		; <int> [#uses=1]
-	br label %return
+cond_next9:             ; preds = %cond_false, %cond_true8
+        %iftmp.1.0 = phi i32 [ 42, %cond_true8 ], [ 23, %cond_false ]           ; <i32> [#uses=1]
+        br label %return
 
-bb:		; preds = %cond_true4, %cond_true
-	br label %return
+bb:             ; preds = %cond_true4, %cond_true
+        br label %return
 
-return:		; preds = %bb, %cond_next9
-	%retval.0 = phi int [ 17, %bb ], [ %iftmp.1.0, %cond_next9 ]		; <int> [#uses=1]
-	ret int %retval.0
+return:         ; preds = %bb, %cond_next9
+        %retval.0 = phi i32 [ 17, %bb ], [ %iftmp.1.0, %cond_next9 ]            ; <i32> [#uses=1]
+        ret i32 %retval.0
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/setcc-strength-reduce.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/setcc-strength-reduce.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/setcc-strength-reduce.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/setcc-strength-reduce.ll Sat Mar  1 03:15:35 2008
@@ -2,31 +2,36 @@
 ; working.  Basically this boils down to converting setlt,gt,le,ge instructions
 ; into equivalent setne,eq instructions.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    grep -v {icmp eq} | grep -v {icmp ne} | not grep icmp
-; END.
 
-bool %test1(uint %A) {
-	%B = setge uint %A, 1   ; setne %A, 0
-	ret bool %B
+
+define i1 @test1(i32 %A) {
+        ; setne %A, 0
+        %B = icmp uge i32 %A, 1         ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test2(uint %A) {
-	%B = setgt uint %A, 0   ; setne %A, 0
-	ret bool %B
+define i1 @test2(i32 %A) {
+       ; setne %A, 0
+        %B = icmp ugt i32 %A, 0         ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test3(sbyte %A) {
-	%B = setge sbyte %A, -127   ; setne %A, -128
-	ret bool %B
+define i1 @test3(i8 %A) {
+        ; setne %A, -128
+        %B = icmp sge i8 %A, -127               ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test4(sbyte %A) {
-	%B = setle sbyte %A, 126  ; setne %A, 127
-	ret bool %B
+define i1 @test4(i8 %A) {
+        ; setne %A, 127 
+        %B = icmp sle i8 %A, 126                ; <i1> [#uses=1]
+        ret i1 %B
 }
 
-bool %test5(sbyte %A) {
-	%B = setlt sbyte %A, 127 ; setne %A, 127
-	ret bool %B
+define i1 @test5(i8 %A) {
+        ; setne %A, 127
+        %B = icmp slt i8 %A, 127                ; <i1> [#uses=1]
+        ret i1 %B
 }

Modified: llvm/trunk/test/Transforms/InstCombine/shift-sra.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/shift-sra.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/shift-sra.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/shift-sra.ll Sat Mar  1 03:15:35 2008
@@ -1,17 +1,19 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    grep {lshr i32} | count 2
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep ashr
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep ashr
 
-int %test1(int %X, ubyte %A) {
-	%Y = shr int %X, ubyte %A  ; can be logical shift.
-	%Z = and int %Y, 1
-	ret int %Z
-}
 
-int %test2(ubyte %tmp) {
-        %tmp3 = cast ubyte %tmp to int
-        %tmp4 = add int %tmp3, 7
-        %tmp5 = ashr int %tmp4, ubyte 3   ; lshr
-        ret int %tmp5
+define i32 @test1(i32 %X, i8 %A) {
+        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
+        ; can be logical shift.
+        %Y = ashr i32 %X, %shift.upgrd.1                ; <i32> [#uses=1]
+        %Z = and i32 %Y, 1              ; <i32> [#uses=1]
+        ret i32 %Z
 }
 
+define i32 @test2(i8 %tmp) {
+        %tmp3 = zext i8 %tmp to i32             ; <i32> [#uses=1]
+        %tmp4 = add i32 %tmp3, 7                ; <i32> [#uses=1]
+        %tmp5 = ashr i32 %tmp4, 3               ; <i32> [#uses=1]
+        ret i32 %tmp5
+}

Modified: llvm/trunk/test/Transforms/InstCombine/shift.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/shift.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/shift.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/shift.ll Sat Mar  1 03:15:35 2008
@@ -1,189 +1,208 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep sh
-; END.
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sh
 
-implementation
-
-int %test1(int %A) {
-	%B = shl int %A, ubyte 0
-	ret int %B
+define i32 @test1(i32 %A) {
+        %B = shl i32 %A, 0              ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test2(ubyte %A) {
-	%B = shl int 0, ubyte %A
-	ret int %B
+define i32 @test2(i8 %A) {
+        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
+        %B = shl i32 0, %shift.upgrd.1          ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test3(int %A) {
-	%B = shr int %A, ubyte 0
-	ret int %B
+define i32 @test3(i32 %A) {
+        %B = ashr i32 %A, 0             ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-int %test4(ubyte %A) {
-	%B = shr int 0, ubyte %A
-	ret int %B
+define i32 @test4(i8 %A) {
+        %shift.upgrd.2 = zext i8 %A to i32              ; <i32> [#uses=1]
+        %B = ashr i32 0, %shift.upgrd.2         ; <i32> [#uses=1]
+        ret i32 %B
 }
 
-uint %test5(uint %A) {
-	%B = shr uint %A, ubyte 32  ;; shift all bits out
-	ret uint %B
+
+define i32 @test5(i32 %A) {
+        %B = lshr i32 %A, 32  ;; shift all bits out 
+        ret i32 %B
 }
 
-uint %test5a(uint %A) {
-	%B = shl uint %A, ubyte 32  ;; shift all bits out
-	ret uint %B
+define i32 @test5a(i32 %A) {
+        %B = shl i32 %A, 32     ;; shift all bits out 
+        ret i32 %B
 }
 
-uint %test6(uint %A) {
-	%B = shl uint %A, ubyte 1   ;; convert to an mul instruction
-	%C = mul uint %B, 3
-	ret uint %C
+define i32 @test6(i32 %A) {
+        %B = shl i32 %A, 1      ;; convert to an mul instruction 
+        %C = mul i32 %B, 3             
+        ret i32 %C
 }
 
-int %test7(ubyte %A) {
-	%B = shr int -1, ubyte %A   ;; Always equal to -1
-	ret int %B
+define i32 @test7(i8 %A) {
+        %shift.upgrd.3 = zext i8 %A to i32 
+        %B = ashr i32 -1, %shift.upgrd.3  ;; Always equal to -1
+        ret i32 %B
 }
 
-ubyte %test8(ubyte %A) {              ;; (A << 5) << 3 === A << 8 == 0
-	%B = shl ubyte %A, ubyte 5
-	%C = shl ubyte %B, ubyte 3
-	ret ubyte %C
+;; (A << 5) << 3 === A << 8 == 0
+define i8 @test8(i8 %A) {
+        %B = shl i8 %A, 5               ; <i8> [#uses=1]
+        %C = shl i8 %B, 3               ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-ubyte %test9(ubyte %A) {              ;; (A << 7) >> 7 === A & 1
-	%B = shl ubyte %A, ubyte 7
-	%C = shr ubyte %B, ubyte 7
-	ret ubyte %C
+;; (A << 7) >> 7 === A & 1
+define i8 @test9(i8 %A) {
+        %B = shl i8 %A, 7               ; <i8> [#uses=1]
+        %C = lshr i8 %B, 7              ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-ubyte %test10(ubyte %A) {              ;; (A >> 7) << 7 === A & 128
-	%B = shr ubyte %A, ubyte 7
-	%C = shl ubyte %B, ubyte 7
-	ret ubyte %C
+;; (A >> 7) << 7 === A & 128
+define i8 @test10(i8 %A) {
+        %B = lshr i8 %A, 7              ; <i8> [#uses=1]
+        %C = shl i8 %B, 7               ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-ubyte %test11(ubyte %A) {              ;; (A >> 3) << 4 === (A & 0x1F) << 1
-	%a = mul ubyte %A, 3
-	%B = shr ubyte %a, ubyte 3
-	%C = shl ubyte %B, ubyte 4
-	ret ubyte %C
+;; (A >> 3) << 4 === (A & 0x1F) << 1
+define i8 @test11(i8 %A) {
+        %a = mul i8 %A, 3               ; <i8> [#uses=1]
+        %B = lshr i8 %a, 3              ; <i8> [#uses=1]
+        %C = shl i8 %B, 4               ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-int %test12(int %A) {
-        %B = shr int %A, ubyte 8    ;; (A >> 8) << 8 === A & -256
-        %C = shl int %B, ubyte 8
-        ret int %C
+;; (A >> 8) << 8 === A & -256
+define i32 @test12(i32 %A) {
+        %B = ashr i32 %A, 8             ; <i32> [#uses=1]
+        %C = shl i32 %B, 8              ; <i32> [#uses=1]
+        ret i32 %C
 }
 
-sbyte %test13(sbyte %A) {           ;; (A >> 3) << 4 === (A & -8) * 2
-	%a = mul sbyte %A, 3
-	%B = shr sbyte %a, ubyte 3
-	%C = shl sbyte %B, ubyte 4
-	ret sbyte %C
+;; (A >> 3) << 4 === (A & -8) * 2
+define i8 @test13(i8 %A) {
+        %a = mul i8 %A, 3               ; <i8> [#uses=1]
+        %B = ashr i8 %a, 3              ; <i8> [#uses=1]
+        %C = shl i8 %B, 4               ; <i8> [#uses=1]
+        ret i8 %C
 }
 
-uint %test14(uint %A) {
-	%B = shr uint %A, ubyte 4
-	%C = or uint %B, 1234
-	%D = shl uint %C, ubyte 4   ;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
-	ret uint %D
+;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
+define i32 @test14(i32 %A) {
+        %B = lshr i32 %A, 4             ; <i32> [#uses=1]
+        %C = or i32 %B, 1234            ; <i32> [#uses=1]
+        %D = shl i32 %C, 4              ; <i32> [#uses=1]
+        ret i32 %D
 }
-uint %test14a(uint %A) {
-	%B = shl uint %A, ubyte 4
-	%C = and uint %B, 1234
-	%D = shr uint %C, ubyte 4   ;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
-	ret uint %D
+
+;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
+define i32 @test14a(i32 %A) {
+        %B = shl i32 %A, 4              ; <i32> [#uses=1]
+        %C = and i32 %B, 1234           ; <i32> [#uses=1]
+        %D = lshr i32 %C, 4             ; <i32> [#uses=1]
+        ret i32 %D
 }
 
-int %test15(bool %C) {
-        %A = select bool %C, int 3, int 1
-        %V = shl int %A, ubyte 2
-        ret int %V
+define i32 @test15(i1 %C) {
+        %A = select i1 %C, i32 3, i32 1         ; <i32> [#uses=1]
+        %V = shl i32 %A, 2              ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-int %test15a(bool %C) {
-        %A = select bool %C, ubyte 3, ubyte 1
-        %V = shl int 64, ubyte %A
-        ret int %V
+define i32 @test15a(i1 %C) {
+        %A = select i1 %C, i8 3, i8 1           ; <i8> [#uses=1]
+        %shift.upgrd.4 = zext i8 %A to i32              ; <i32> [#uses=1]
+        %V = shl i32 64, %shift.upgrd.4         ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-bool %test16(int %X) {
-        %tmp.3 = shr int %X, ubyte 4
-        %tmp.6 = and int %tmp.3, 1
-        %tmp.7 = setne int %tmp.6, 0  ;; X & 16 != 0
-        ret bool %tmp.7
+define i1 @test16(i32 %X) {
+        %tmp.3 = ashr i32 %X, 4         ; <i32> [#uses=1]
+        %tmp.6 = and i32 %tmp.3, 1              ; <i32> [#uses=1]
+        %tmp.7 = icmp ne i32 %tmp.6, 0          ; <i1> [#uses=1]
+        ret i1 %tmp.7
 }
 
-bool %test17(uint %A) {
-	%B = shr uint %A, ubyte 3
-	%C = seteq uint %B, 1234
-	ret bool %C
+define i1 @test17(i32 %A) {
+        %B = lshr i32 %A, 3             ; <i32> [#uses=1]
+        %C = icmp eq i32 %B, 1234               ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test18(ubyte %A) {
-	%B = shr ubyte %A, ubyte 7
-	%C = seteq ubyte %B, 123    ;; false
-	ret bool %C
+
+define i1 @test18(i8 %A) {
+        %B = lshr i8 %A, 7              ; <i8> [#uses=1]
+        ;; false
+        %C = icmp eq i8 %B, 123         ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test19(int %A) {
-	%B = shr int %A, ubyte 2
-	%C = seteq int %B, 0        ;; (X & -4) == 0
-	ret bool %C
+define i1 @test19(i32 %A) {
+        %B = ashr i32 %A, 2             ; <i32> [#uses=1]
+        ;; (X & -4) == 0
+        %C = icmp eq i32 %B, 0          ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test19a(int %A) {
-	%B = shr int %A, ubyte 2
-	%C = seteq int %B, -1        ;; (X & -4) == -4
-	ret bool %C
+
+define i1 @test19a(i32 %A) {
+        %B = ashr i32 %A, 2             ; <i32> [#uses=1]
+        ;; (X & -4) == -4
+        %C = icmp eq i32 %B, -1         ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test20(sbyte %A) {
-	%B = shr sbyte %A, ubyte 7
-	%C = seteq sbyte %B, 123    ;; false
-	ret bool %C
+define i1 @test20(i8 %A) {
+        %B = ashr i8 %A, 7              ; <i8> [#uses=1]
+        ;; false
+        %C = icmp eq i8 %B, 123         ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test21(ubyte %A) {
-	%B = shl ubyte %A, ubyte 4
-	%C = seteq ubyte %B, 128
-	ret bool %C
+define i1 @test21(i8 %A) {
+        %B = shl i8 %A, 4               ; <i8> [#uses=1]
+        %C = icmp eq i8 %B, -128                ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-bool %test22(ubyte %A) {
-	%B = shl ubyte %A, ubyte 4
-	%C = seteq ubyte %B, 0
-	ret bool %C
+define i1 @test22(i8 %A) {
+        %B = shl i8 %A, 4               ; <i8> [#uses=1]
+        %C = icmp eq i8 %B, 0           ; <i1> [#uses=1]
+        ret i1 %C
 }
 
-sbyte %test23(int %A) {
-	%B = shl int %A, ubyte 24  ;; casts not needed
-	%C = shr int %B, ubyte 24
-	%D = cast int %C to sbyte
-	ret sbyte %D
+define i8 @test23(i32 %A) {
+        ;; casts not needed
+        %B = shl i32 %A, 24             ; <i32> [#uses=1]
+        %C = ashr i32 %B, 24            ; <i32> [#uses=1]
+        %D = trunc i32 %C to i8         ; <i8> [#uses=1]
+        ret i8 %D
 }
 
-sbyte %test24(sbyte %X) {
-        %Y = and sbyte %X, -5 ; ~4
-        %Z = shl sbyte %Y, ubyte 5
-        %Q = shr sbyte %Z, ubyte 5
-        ret sbyte %Q
+define i8 @test24(i8 %X) {
+        %Y = and i8 %X, -5              ; <i8> [#uses=1]
+        %Z = shl i8 %Y, 5               ; <i8> [#uses=1]
+        %Q = ashr i8 %Z, 5              ; <i8> [#uses=1]
+        ret i8 %Q
 }
 
-uint %test25(uint %tmp.2, uint %AA) {
-	%x = shr uint %AA, ubyte 17
-        %tmp.3 = shr uint %tmp.2, ubyte 17              ; <uint> [#uses=1]
-        %tmp.5 = add uint %tmp.3, %x            ; <uint> [#uses=1]
-        %tmp.6 = shl uint %tmp.5, ubyte 17              ; <uint> [#uses=1]
-	ret uint %tmp.6
+define i32 @test25(i32 %tmp.2, i32 %AA) {
+        %x = lshr i32 %AA, 17           ; <i32> [#uses=1]
+        %tmp.3 = lshr i32 %tmp.2, 17            ; <i32> [#uses=1]
+        %tmp.5 = add i32 %tmp.3, %x             ; <i32> [#uses=1]
+        %tmp.6 = shl i32 %tmp.5, 17             ; <i32> [#uses=1]
+        ret i32 %tmp.6
 }
 
-int %test26(uint %A) { ;; handle casts between shifts.
-	%B = shr uint %A, ubyte 1
-	%C = cast uint %B to int
-        %D = shl int %C, ubyte 1
-	ret int %D
+;; handle casts between shifts.
+define i32 @test26(i32 %A) {
+        %B = lshr i32 %A, 1             ; <i32> [#uses=1]
+        %C = bitcast i32 %B to i32              ; <i32> [#uses=1]
+        %D = shl i32 %C, 1              ; <i32> [#uses=1]
+        ret i32 %D
 }
  

Modified: llvm/trunk/test/Transforms/InstCombine/shl-trunc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/shl-trunc.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/shl-trunc.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/shl-trunc.ll Sat Mar  1 03:15:35 2008
@@ -1,7 +1,9 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep shl
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl
 
-bool %test(int %X, ubyte %A) {
-	%B = lshr int %X, ubyte %A
-	%D = trunc int %B to bool
-	ret bool %D
+define i1 @test(i32 %X, i8 %A) {
+        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
+        %B = lshr i32 %X, %shift.upgrd.1                ; <i32> [#uses=1]
+        %D = trunc i32 %B to i1         ; <i1> [#uses=1]
+        ret i1 %D
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/signext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/signext.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/signext.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/signext.ll Sat Mar  1 03:15:35 2008
@@ -1,44 +1,44 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    not grep {(and\|xor\|add\|shl\|shr)}
-; END.
 
-int %test1(int %x) {
-        %tmp.1 = and int %x, 65535              ; <int> [#uses=1]
-        %tmp.2 = xor int %tmp.1, -32768         ; <int> [#uses=1]
-        %tmp.3 = add int %tmp.2, 32768          ; <int> [#uses=1]
-        ret int %tmp.3
+define i32 @test1(i32 %x) {
+        %tmp.1 = and i32 %x, 65535              ; <i32> [#uses=1]
+        %tmp.2 = xor i32 %tmp.1, -32768         ; <i32> [#uses=1]
+        %tmp.3 = add i32 %tmp.2, 32768          ; <i32> [#uses=1]
+        ret i32 %tmp.3
 }
 
-int %test2(int %x) {
-        %tmp.1 = and int %x, 65535              ; <int> [#uses=1]
-        %tmp.2 = xor int %tmp.1, 32768          ; <int> [#uses=1]
-        %tmp.3 = add int %tmp.2, -32768         ; <int> [#uses=1]
-        ret int %tmp.3
+define i32 @test2(i32 %x) {
+        %tmp.1 = and i32 %x, 65535              ; <i32> [#uses=1]
+        %tmp.2 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
+        %tmp.3 = add i32 %tmp.2, -32768         ; <i32> [#uses=1]
+        ret i32 %tmp.3
 }
 
-int %test3(ushort %P) {
-        %tmp.1 = cast ushort %P to int          ; <int> [#uses=1]
-        %tmp.4 = xor int %tmp.1, 32768          ; <int> [#uses=1]
-        %tmp.5 = add int %tmp.4, -32768         ; <int> [#uses=1]
-        ret int %tmp.5
+define i32 @test3(i16 %P) {
+        %tmp.1 = zext i16 %P to i32             ; <i32> [#uses=1]
+        %tmp.4 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
+        %tmp.5 = add i32 %tmp.4, -32768         ; <i32> [#uses=1]
+        ret i32 %tmp.5
 }
 
-uint %test4(ushort %P) {
-        %tmp.1 = cast ushort %P to uint         ; <uint> [#uses=1]
-        %tmp.4 = xor uint %tmp.1, 32768         ; <uint> [#uses=1]
-        %tmp.5 = add uint %tmp.4, 4294934528            ; <uint> [#uses=1]
-        ret uint %tmp.5
+define i32 @test4(i16 %P) {
+        %tmp.1 = zext i16 %P to i32             ; <i32> [#uses=1]
+        %tmp.4 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
+        %tmp.5 = add i32 %tmp.4, -32768         ; <i32> [#uses=1]
+        ret i32 %tmp.5
 }
 
-int %test5(int %x) {
-	%tmp.1 = and int %x, 254
-	%tmp.2 = xor int %tmp.1, 128
-	%tmp.3 = add int %tmp.2, -128
-	ret int %tmp.3
+define i32 @test5(i32 %x) {
+        %tmp.1 = and i32 %x, 254                ; <i32> [#uses=1]
+        %tmp.2 = xor i32 %tmp.1, 128            ; <i32> [#uses=1]
+        %tmp.3 = add i32 %tmp.2, -128           ; <i32> [#uses=1]
+        ret i32 %tmp.3
 }
 
-int %test6(int %x) {
-        %tmp.2 = shl int %x, ubyte 16           ; <int> [#uses=1]
-        %tmp.4 = shr int %tmp.2, ubyte 16               ; <int> [#uses=1]
-        ret int %tmp.4
+define i32 @test6(i32 %x) {
+        %tmp.2 = shl i32 %x, 16         ; <i32> [#uses=1]
+        %tmp.4 = ashr i32 %tmp.2, 16            ; <i32> [#uses=1]
+        ret i32 %tmp.4
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/sink_instruction.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/sink_instruction.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/sink_instruction.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/sink_instruction.ll Sat Mar  1 03:15:35 2008
@@ -1,18 +1,19 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   %prcontext div 1 | grep ret
 
 ;; This tests that the instructions in the entry blocks are sunk into each
 ;; arm of the 'if'.
 
-int %foo(bool %C, int %A, int %B) {
+define i32 @foo(i1 %C, i32 %A, i32 %B) {
 entry:
-	%tmp.2 = div int %A, %B
-	%tmp.9 = add int %B, %A
-	br bool %C, label %then, label %endif
+        %tmp.2 = sdiv i32 %A, %B                ; <i32> [#uses=1]
+        %tmp.9 = add i32 %B, %A         ; <i32> [#uses=1]
+        br i1 %C, label %then, label %endif
 
-then:
-	ret int %tmp.9
+then:           ; preds = %entry
+        ret i32 %tmp.9
 
-endif:
-	ret int %tmp.2
+endif:          ; preds = %entry
+        ret i32 %tmp.2
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/store.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/store.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/store.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/store.ll Sat Mar  1 03:15:35 2008
@@ -1,16 +1,17 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep -v {store.*,.*null} | not grep store
 
-void %test1(int* %P) {
-	store int undef, int* %P
-	store int 123, int* undef
-	store int 124, int* null
-	ret void
+define void @test1(i32* %P) {
+        store i32 undef, i32* %P
+        store i32 123, i32* undef
+        store i32 124, i32* null
+        ret void
 }
 
-void %test2(int* %P) {
-	%X = load int* %P
-	%Y = add int %X, 0
-	store int %Y, int* %P
-	ret void
+define void @test2(i32* %P) {
+        %X = load i32* %P               ; <i32> [#uses=1]
+        %Y = add i32 %X, 0              ; <i32> [#uses=1]
+        store i32 %Y, i32* %P
+        ret void
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/sub.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/sub.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/sub.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/sub.ll Sat Mar  1 03:15:35 2008
@@ -1,139 +1,136 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep -v {sub i32 %Cok, %Bok} | not grep sub
 
-implementation
-
-int %test1(int %A) {
-	%B = sub int %A, %A    ; ISA constant 0
-	ret int %B
+define i32 @test1(i32 %A) {
+	%B = sub i32 %A, %A		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test2(int %A) {
-	%B = sub int %A, 0
-	ret int %B
+define i32 @test2(i32 %A) {
+	%B = sub i32 %A, 0		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test3(int %A) {
-	%B = sub int 0, %A       ; B = -A
-	%C = sub int 0, %B       ; C = -B = A
-	ret int %C
+define i32 @test3(i32 %A) {
+	%B = sub i32 0, %A		; <i32> [#uses=1]
+	%C = sub i32 0, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test4(int %A, int %x) {
-	%B = sub int 0, %A
-	%C = sub int %x, %B
-	ret int %C
+define i32 @test4(i32 %A, i32 %x) {
+	%B = sub i32 0, %A		; <i32> [#uses=1]
+	%C = sub i32 %x, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test5(int %A, int %Bok, int %Cok) {
-	%D = sub int %Bok, %Cok
-	%E = sub int %A, %D
-	ret int %E
+define i32 @test5(i32 %A, i32 %Bok, i32 %Cok) {
+	%D = sub i32 %Bok, %Cok		; <i32> [#uses=1]
+	%E = sub i32 %A, %D		; <i32> [#uses=1]
+	ret i32 %E
 }
 
-int %test6(int %A, int %B) {
-	%C = and int %A, %B   ; A - (A & B) => A & ~B
-	%D = sub int %A, %C
-	ret int %D
+define i32 @test6(i32 %A, i32 %B) {
+	%C = and i32 %A, %B		; <i32> [#uses=1]
+	%D = sub i32 %A, %C		; <i32> [#uses=1]
+	ret i32 %D
 }
 
-int %test7(int %A) {
-	%B = sub int -1, %A   ; B = ~A
-	ret int %B
+define i32 @test7(i32 %A) {
+	%B = sub i32 -1, %A		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test8(int %A) {
-        %B = mul int 9, %A
-        %C = sub int %B, %A      ; C = 9*A-A == A*8 == A << 3
-        ret int %C
+define i32 @test8(i32 %A) {
+	%B = mul i32 9, %A		; <i32> [#uses=1]
+	%C = sub i32 %B, %A		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test9(int %A) {
-        %B = mul int 3, %A
-        %C = sub int %A, %B      ; C = A-3*A == A*-2
-        ret int %C
+define i32 @test9(i32 %A) {
+	%B = mul i32 3, %A		; <i32> [#uses=1]
+	%C = sub i32 %A, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test10(int %A, int %B) {    ; -A*-B == A*B
-	%C = sub int 0, %A
-	%D = sub int 0, %B
-	%E = mul int %C, %D
-	ret int %E
+define i32 @test10(i32 %A, i32 %B) {
+	%C = sub i32 0, %A		; <i32> [#uses=1]
+	%D = sub i32 0, %B		; <i32> [#uses=1]
+	%E = mul i32 %C, %D		; <i32> [#uses=1]
+	ret i32 %E
 }
 
-int %test10(int %A) {    ; -A *c1 == A * -c1
-	%C = sub int 0, %A
-	%E = mul int %C, 7
-	ret int %E
+define i32 @test10.upgrd.1(i32 %A) {
+	%C = sub i32 0, %A		; <i32> [#uses=1]
+	%E = mul i32 %C, 7		; <i32> [#uses=1]
+	ret i32 %E
 }
 
-bool %test11(ubyte %A, ubyte %B) {
-        %C = sub ubyte %A, %B
-        %cD = setne ubyte %C, 0    ; == setne A, B
-        ret bool %cD
+define i1 @test11(i8 %A, i8 %B) {
+	%C = sub i8 %A, %B		; <i8> [#uses=1]
+	%cD = icmp ne i8 %C, 0		; <i1> [#uses=1]
+	ret i1 %cD
 }
 
-int %test12(int %A) {
-	%B = shr int %A, ubyte 31
-	%C = sub int 0, %B         ; == ushr A, 31
-	ret int %C 
+define i32 @test12(i32 %A) {
+	%B = ashr i32 %A, 31		; <i32> [#uses=1]
+	%C = sub i32 0, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test13(uint %A) {
-	%B = shr uint %A, ubyte 31
-	%C = sub uint 0, %B        ; == sar A, 31
-	ret uint %C
+define i32 @test13(i32 %A) {
+	%B = lshr i32 %A, 31		; <i32> [#uses=1]
+	%C = sub i32 0, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-int %test14(uint %A) {
-        %B = shr uint %A, ubyte 31
-        %C = cast uint %B to int
-        %D = sub int 0, %C
-        ret int %D
+define i32 @test14(i32 %A) {
+	%B = lshr i32 %A, 31		; <i32> [#uses=1]
+	%C = bitcast i32 %B to i32		; <i32> [#uses=1]
+	%D = sub i32 0, %C		; <i32> [#uses=1]
+	ret i32 %D
 }
 
-int %test15(int %A, int %B) {
-	%C = sub int 0, %A
-	%D = rem int %B, %C   ;; X % -Y === X % Y
-	ret int %D
+define i32 @test15(i32 %A, i32 %B) {
+	%C = sub i32 0, %A		; <i32> [#uses=1]
+	%D = srem i32 %B, %C		; <i32> [#uses=1]
+	ret i32 %D
 }
 
-int %test16(int %A) {
-	%X = div int %A, 1123
-	%Y = sub int 0, %X
-	ret int %Y
+define i32 @test16(i32 %A) {
+	%X = sdiv i32 %A, 1123		; <i32> [#uses=1]
+	%Y = sub i32 0, %X		; <i32> [#uses=1]
+	ret i32 %Y
 }
 
-int %test17(int %A) {
-	%B = sub int 0, %A
-	%C = div int %B, 1234
-	ret int %C
+define i32 @test17(i32 %A) {
+	%B = sub i32 0, %A		; <i32> [#uses=1]
+	%C = sdiv i32 %B, 1234		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-long %test18(long %Y) {
-        %tmp.4 = shl long %Y, ubyte 2
-        %tmp.12 = shl long %Y, ubyte 2
-        %tmp.8 = sub long %tmp.4, %tmp.12 ;; 0
-        ret long %tmp.8
+define i64 @test18(i64 %Y) {
+	%tmp.4 = shl i64 %Y, 2		; <i64> [#uses=1]
+	%tmp.12 = shl i64 %Y, 2		; <i64> [#uses=1]
+	%tmp.8 = sub i64 %tmp.4, %tmp.12		; <i64> [#uses=1]
+	ret i64 %tmp.8
 }
 
-int %test19(int %X, int %Y) {
-	%Z = sub int %X, %Y
-	%Q = add int %Z, %Y
-	ret int %Q
+define i32 @test19(i32 %X, i32 %Y) {
+	%Z = sub i32 %X, %Y		; <i32> [#uses=1]
+	%Q = add i32 %Z, %Y		; <i32> [#uses=1]
+	ret i32 %Q
 }
 
-bool %test20(int %g, int %h) {
-        %tmp.2 = sub int %g, %h
-        %tmp.4 = setne int %tmp.2, %g
-        ret bool %tmp.4
+define i1 @test20(i32 %g, i32 %h) {
+	%tmp.2 = sub i32 %g, %h		; <i32> [#uses=1]
+	%tmp.4 = icmp ne i32 %tmp.2, %g		; <i1> [#uses=1]
+	ret i1 %tmp.4
 }
 
-bool %test21(int %g, int %h) {
-        %tmp.2 = sub int %g, %h
-        %tmp.4 = setne int %tmp.2, %g
-        ret bool %tmp.4
+define i1 @test21(i32 %g, i32 %h) {
+	%tmp.2 = sub i32 %g, %h		; <i32> [#uses=1]
+	%tmp.4 = icmp ne i32 %tmp.2, %g		; <i1> [#uses=1]
+	ret i1 %tmp.4
 }
-

Modified: llvm/trunk/test/Transforms/InstCombine/vec_insert_to_shuffle.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/vec_insert_to_shuffle.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/vec_insert_to_shuffle.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/vec_insert_to_shuffle.ll Sat Mar  1 03:15:35 2008
@@ -1,18 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep shufflevec | count 1
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   not grep insertelement
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   not grep extractelement
-; END.
 
-<4 x float> %test(<4 x float> %tmp, <4 x float> %tmp1) {
-	%tmp4 = extractelement <4 x float> %tmp, uint 1		; <float> [#uses=1]
-	%tmp2 = extractelement <4 x float> %tmp, uint 3		; <float> [#uses=1]
-	%tmp1 = extractelement <4 x float> %tmp1, uint 0		; <float> [#uses=1]
-	%tmp128 = insertelement <4 x float> undef, float %tmp4, uint 0		; <<4 x float>> [#uses=1]
-	%tmp130 = insertelement <4 x float> %tmp128, float undef, uint 1		; <<4 x float>> [#uses=1]
-	%tmp132 = insertelement <4 x float> %tmp130, float %tmp2, uint 2		; <<4 x float>> [#uses=1]
-	%tmp134 = insertelement <4 x float> %tmp132, float %tmp1, uint 3		; <<4 x float>> [#uses=1]
-	ret <4 x float> %tmp134
+define <4 x float> @test(<4 x float> %tmp, <4 x float> %tmp1) {
+        %tmp4 = extractelement <4 x float> %tmp, i32 1          ; <float> [#uses=1]
+        %tmp2 = extractelement <4 x float> %tmp, i32 3          ; <float> [#uses=1]
+        %tmp1.upgrd.1 = extractelement <4 x float> %tmp1, i32 0         ; <float> [#uses=1]
+        %tmp128 = insertelement <4 x float> undef, float %tmp4, i32 0           ; <<4 x float>> [#uses=1]
+        %tmp130 = insertelement <4 x float> %tmp128, float undef, i32 1         ; <<4 x float>> [#uses=1]
+        %tmp132 = insertelement <4 x float> %tmp130, float %tmp2, i32 2         ; <<4 x float>> [#uses=1]
+        %tmp134 = insertelement <4 x float> %tmp132, float %tmp1.upgrd.1, i32 3         ; <<4 x float>> [#uses=1]
+        ret <4 x float> %tmp134
 }
+

Modified: llvm/trunk/test/Transforms/InstCombine/vec_narrow.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/vec_narrow.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/vec_narrow.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/vec_narrow.ll Sat Mar  1 03:15:35 2008
@@ -1,12 +1,12 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep {add float}
 
-%V = type <4 x float>
+        %V = type <4 x float>
 
-float %test(%V %A, %V %B, float %f) {
-        %C = insertelement %V %A, float %f, uint 0
-        %D = add %V %C, %B
-        %E = extractelement %V %D, uint 0
+define float @test(%V %A, %V %B, float %f) {
+        %C = insertelement %V %A, float %f, i32 0               ; <%V> [#uses=1]
+        %D = add %V %C, %B              ; <%V> [#uses=1]
+        %E = extractelement %V %D, i32 0                ; <float> [#uses=1]
         ret float %E
 }
 

Modified: llvm/trunk/test/Transforms/InstCombine/xor.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/xor.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/xor.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/xor.ll Sat Mar  1 03:15:35 2008
@@ -1,198 +1,192 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:    not grep {xor }
-; END.
+ at G1 = global i32 0		; <i32*> [#uses=1]
+ at G2 = global i32 0		; <i32*> [#uses=1]
 
-%G1 = global uint 0
-%G2 = global uint 0
-
-implementation
+define i1 @test0(i1 %A) {
+	%B = xor i1 %A, false		; <i1> [#uses=1]
+	ret i1 %B
+}
 
-bool %test0(bool %A) {
-	%B = xor bool %A, false
-	ret bool %B
+define i32 @test1(i32 %A) {
+	%B = xor i32 %A, 0		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test1(int %A) {
-	%B = xor int %A, 0
-	ret int %B
+define i1 @test2(i1 %A) {
+	%B = xor i1 %A, %A		; <i1> [#uses=1]
+	ret i1 %B
 }
 
-bool %test2(bool %A) {
-	%B = xor bool %A, %A
-	ret bool %B
+define i32 @test3(i32 %A) {
+	%B = xor i32 %A, %A		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test3(int %A) {
-	%B = xor int %A, %A
-	ret int %B
+define i32 @test4(i32 %A) {
+	%NotA = xor i32 -1, %A		; <i32> [#uses=1]
+	%B = xor i32 %A, %NotA		; <i32> [#uses=1]
+	ret i32 %B
 }
 
-int %test4(int %A) {    ; A ^ ~A == -1
-        %NotA = xor int -1, %A
-        %B = xor int %A, %NotA
-        ret int %B
+define i32 @test5(i32 %A) {
+	%t1 = or i32 %A, 123		; <i32> [#uses=1]
+	%r = xor i32 %t1, 123		; <i32> [#uses=1]
+	ret i32 %r
 }
 
-uint %test5(uint %A) { ; (A|B)^B == A & (~B)
-	%t1 = or uint %A, 123
-	%r  = xor uint %t1, 123
-	ret uint %r
+define i8 @test6(i8 %A) {
+	%B = xor i8 %A, 17		; <i8> [#uses=1]
+	%C = xor i8 %B, 17		; <i8> [#uses=1]
+	ret i8 %C
 }
 
-ubyte %test6(ubyte %A) {
-	%B = xor ubyte %A, 17
-	%C = xor ubyte %B, 17
-	ret ubyte %C
+define i32 @test7(i32 %A, i32 %B) {
+	%A1 = and i32 %A, 7		; <i32> [#uses=1]
+	%B1 = and i32 %B, 128		; <i32> [#uses=1]
+	%C1 = xor i32 %A1, %B1		; <i32> [#uses=1]
+	ret i32 %C1
 }
 
-; (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
-int %test7(int %A, int %B) {
+define i8 @test8(i1 %c) {
+	%d = xor i1 %c, true		; <i1> [#uses=1]
+	br i1 %d, label %True, label %False
 
-        %A1 = and int %A, 7
-        %B1 = and int %B, 128
-        %C1 = xor int %A1, %B1
-        ret int %C1
-}
+True:		; preds = %0
+	ret i8 1
 
-ubyte %test8(bool %c) {
-	%d = xor bool %c, true    ; invert the condition
-	br bool %d, label %True, label %False
-True:
-	ret ubyte 1
-False:
-	ret ubyte 3
+False:		; preds = %0
+	ret i8 3
 }
 
-bool %test9(ubyte %A) {
-	%B = xor ubyte %A, 123      ; xor can be eliminated
-	%C = seteq ubyte %B, 34
-	ret bool %C
+define i1 @test9(i8 %A) {
+	%B = xor i8 %A, 123		; <i8> [#uses=1]
+	%C = icmp eq i8 %B, 34		; <i1> [#uses=1]
+	ret i1 %C
 }
 
-ubyte %test10(ubyte %A) {
-	%B = and ubyte %A, 3
-	%C = xor ubyte %B, 4        ; transform into an OR
-	ret ubyte %C
+define i8 @test10(i8 %A) {
+	%B = and i8 %A, 3		; <i8> [#uses=1]
+	%C = xor i8 %B, 4		; <i8> [#uses=1]
+	ret i8 %C
 }
 
-ubyte %test11(ubyte %A) {
-	%B = or ubyte %A, 12
-	%C = xor ubyte %B, 4        ; transform into an AND
-	ret ubyte %C
+define i8 @test11(i8 %A) {
+	%B = or i8 %A, 12		; <i8> [#uses=1]
+	%C = xor i8 %B, 4		; <i8> [#uses=1]
+	ret i8 %C
 }
 
-bool %test12(ubyte %A) {
-	%B = xor ubyte %A, 4
-	%c = setne ubyte %B, 0
-	ret bool %c
+define i1 @test12(i8 %A) {
+	%B = xor i8 %A, 4		; <i8> [#uses=1]
+	%c = icmp ne i8 %B, 0		; <i1> [#uses=1]
+	ret i1 %c
 }
 
-bool %test13(ubyte %A, ubyte %B) {
-	%C = setlt ubyte %A, %B
-	%D = setgt ubyte %A, %B
-	%E = xor bool %C, %D        ; E = setne %A, %B
-	ret bool %E
+define i1 @test13(i8 %A, i8 %B) {
+	%C = icmp ult i8 %A, %B		; <i1> [#uses=1]
+	%D = icmp ugt i8 %A, %B		; <i1> [#uses=1]
+	%E = xor i1 %C, %D		; <i1> [#uses=1]
+	ret i1 %E
 }
 
-bool %test14(ubyte %A, ubyte %B) {
-	%C = seteq ubyte %A, %B
-	%D = setne ubyte %B, %A
-	%E = xor bool %C, %D        ; E = true
-	ret bool %E
+define i1 @test14(i8 %A, i8 %B) {
+	%C = icmp eq i8 %A, %B		; <i1> [#uses=1]
+	%D = icmp ne i8 %B, %A		; <i1> [#uses=1]
+	%E = xor i1 %C, %D		; <i1> [#uses=1]
+	ret i1 %E
 }
 
-uint %test15(uint %A) {             ; ~(X-1) == -X
-	%B = add uint %A, 4294967295
-	%C = xor uint %B, 4294967295
-	ret uint %C
+define i32 @test15(i32 %A) {
+	%B = add i32 %A, -1		; <i32> [#uses=1]
+	%C = xor i32 %B, -1		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test16(uint %A) {             ; ~(X+c) == (-c-1)-X
-	%B = add uint %A, 123       ; A generalization of the previous case
-	%C = xor uint %B, 4294967295
-	ret uint %C
+define i32 @test16(i32 %A) {
+	%B = add i32 %A, 123		; <i32> [#uses=1]
+	%C = xor i32 %B, -1		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test17(uint %A) {             ; ~(c-X) == X-(c-1) == X+(-c+1)
-	%B = sub uint 123, %A
-	%C = xor uint %B, 4294967295
-	ret uint %C
+define i32 @test17(i32 %A) {
+	%B = sub i32 123, %A		; <i32> [#uses=1]
+	%C = xor i32 %B, -1		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test18(uint %A) {             ; C - ~X == X + (1+C)
-	%B = xor uint %A, 4294967295; -~X == 0 - ~X == X+1
-	%C = sub uint 123, %B
-	ret uint %C
+define i32 @test18(i32 %A) {
+	%B = xor i32 %A, -1		; <i32> [#uses=1]
+	%C = sub i32 123, %B		; <i32> [#uses=1]
+	ret i32 %C
 }
 
-uint %test19(uint %A, uint %B) {
-	%C = xor uint %A, %B
-	%D = xor uint %C, %A  ; A terms cancel, D = B
-	ret uint %D
+define i32 @test19(i32 %A, i32 %B) {
+	%C = xor i32 %A, %B		; <i32> [#uses=1]
+	%D = xor i32 %C, %A		; <i32> [#uses=1]
+	ret i32 %D
 }
 
-void %test20(uint %A, uint %B) {  ; The "swap idiom"
-        %tmp.2 = xor uint %B, %A
-        %tmp.5 = xor uint %tmp.2, %B
-        %tmp.8 = xor uint %tmp.5, %tmp.2
-        store uint %tmp.8, uint* %G1   ; tmp.8 = B
-        store uint %tmp.5, uint* %G2   ; tmp.5 = A
-        ret void
+define void @test20(i32 %A, i32 %B) {
+	%tmp.2 = xor i32 %B, %A		; <i32> [#uses=2]
+	%tmp.5 = xor i32 %tmp.2, %B		; <i32> [#uses=2]
+	%tmp.8 = xor i32 %tmp.5, %tmp.2		; <i32> [#uses=1]
+	store i32 %tmp.8, i32* @G1
+	store i32 %tmp.5, i32* @G2
+	ret void
 }
 
-int %test21(bool %C, int %A, int %B) {
-	%C2 = xor bool %C, true
-	%D = select bool %C2, int %A, int %B
-	ret int %D
+define i32 @test21(i1 %C, i32 %A, i32 %B) {
+	%C2 = xor i1 %C, true		; <i1> [#uses=1]
+	%D = select i1 %C2, i32 %A, i32 %B		; <i32> [#uses=1]
+	ret i32 %D
 }
 
-int %test22(bool %X) {
-        %Y = xor bool %X, true
-        %Z = cast bool %Y to int
-        %Q = xor int %Z, 1
-        ret int %Q
+define i32 @test22(i1 %X) {
+	%Y = xor i1 %X, true		; <i1> [#uses=1]
+	%Z = zext i1 %Y to i32		; <i32> [#uses=1]
+	%Q = xor i32 %Z, 1		; <i32> [#uses=1]
+	ret i32 %Q
 }
 
-bool %test23(int %a, int %b) {
-        %tmp.2 = xor int %b, %a
-        %tmp.4 = seteq int %tmp.2, %a
-        ret bool %tmp.4
+define i1 @test23(i32 %a, i32 %b) {
+	%tmp.2 = xor i32 %b, %a		; <i32> [#uses=1]
+	%tmp.4 = icmp eq i32 %tmp.2, %a		; <i1> [#uses=1]
+	ret i1 %tmp.4
 }
 
-bool %test24(int %c, int %d) {
-        %tmp.2 = xor int %d, %c
-        %tmp.4 = setne int %tmp.2, %c
-        ret bool %tmp.4
+define i1 @test24(i32 %c, i32 %d) {
+	%tmp.2 = xor i32 %d, %c		; <i32> [#uses=1]
+	%tmp.4 = icmp ne i32 %tmp.2, %c		; <i1> [#uses=1]
+	ret i1 %tmp.4
 }
 
-int %test25(int %g, int %h) {
-	%h2 = xor int %h, -1
-        %tmp2 = and int %h2, %g
-        %tmp4 = xor int %tmp2, %g  ; (h2&g)^g -> ~h2 & g -> h & g
-        ret int %tmp4
+define i32 @test25(i32 %g, i32 %h) {
+	%h2 = xor i32 %h, -1		; <i32> [#uses=1]
+	%tmp2 = and i32 %h2, %g		; <i32> [#uses=1]
+	%tmp4 = xor i32 %tmp2, %g		; <i32> [#uses=1]
+	ret i32 %tmp4
 }
 
-int %test26(int %a, int %b) {
-	%b2 = xor int %b, -1
-        %tmp2 = xor int %a, %b2
-        %tmp4 = and int %tmp2, %a  ; (a^b2)&a -> ~b2 & a -> b & a
-        ret int %tmp4
+define i32 @test26(i32 %a, i32 %b) {
+	%b2 = xor i32 %b, -1		; <i32> [#uses=1]
+	%tmp2 = xor i32 %a, %b2		; <i32> [#uses=1]
+	%tmp4 = and i32 %tmp2, %a		; <i32> [#uses=1]
+	ret i32 %tmp4
 }
 
-
-int %test27(int %b, int %c, int %d) {
-        %tmp2 = xor int %d, %b
-        %tmp5 = xor int %d, %c
-        %tmp = icmp eq int %tmp2, %tmp5
-        %tmp6 = zext bool %tmp to int
-        ret int %tmp6
+define i32 @test27(i32 %b, i32 %c, i32 %d) {
+	%tmp2 = xor i32 %d, %b		; <i32> [#uses=1]
+	%tmp5 = xor i32 %d, %c		; <i32> [#uses=1]
+	%tmp = icmp eq i32 %tmp2, %tmp5		; <i1> [#uses=1]
+	%tmp6 = zext i1 %tmp to i32		; <i32> [#uses=1]
+	ret i32 %tmp6
 }
 
-int %test28(int %indvar) {
-        %tmp7 = add int %indvar, -2147483647
-        %tmp214 = xor int %tmp7, -2147483648
-        ret int %tmp214
+define i32 @test28(i32 %indvar) {
+	%tmp7 = add i32 %indvar, -2147483647		; <i32> [#uses=1]
+	%tmp214 = xor i32 %tmp7, -2147483648		; <i32> [#uses=1]
+	ret i32 %tmp214
 }
-

Modified: llvm/trunk/test/Transforms/InstCombine/zeroext-and-reduce.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/zeroext-and-reduce.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/zeroext-and-reduce.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/zeroext-and-reduce.ll Sat Mar  1 03:15:35 2008
@@ -1,9 +1,10 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   grep {and i32 %Y, 8}
 
-int %test1(ubyte %X) {
-        %Y = cast ubyte %X to int
-        %Z = and int %Y, 65544     ;; Prune this to and Y, 8
-        ret int %Z
+define i32 @test1(i8 %X) {
+        %Y = zext i8 %X to i32          ; <i32> [#uses=1]
+        %Z = and i32 %Y, 65544          ; <i32> [#uses=1]
+        ret i32 %Z
 }
 
+

Modified: llvm/trunk/test/Transforms/InstCombine/zext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/zext.ll?rev=47793&r1=47792&r2=47793&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/zext.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/zext.ll Sat Mar  1 03:15:35 2008
@@ -1,9 +1,10 @@
 ; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
 ; RUN:   notcast {} {%c1.*}
 
-long %test_sext_zext(short %A) {
-    %c1 = zext short %A to uint
-    %c2 = sext uint %c1 to long
-    ret long %c2
+define i64 @test_sext_zext(i16 %A) {
+        %c1 = zext i16 %A to i32                ; <i32> [#uses=1]
+        %c2 = sext i32 %c1 to i64               ; <i64> [#uses=1]
+        ret i64 %c2
 }
+





More information about the llvm-commits mailing list