summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2008-03-25 04:26:08 +0000
committerTanya Lattner <tonic@nondot.org>2008-03-25 04:26:08 +0000
commit6f729d601c8a6a9710356aadb42dc8d0efa95bf2 (patch)
treee662b3ee5539d7594ab49eda3eae140424ce499d /test/Transforms
parenta2fb634defce316ec972aa6f3ca3a941b4656f5e (diff)
downloadllvm-6f729d601c8a6a9710356aadb42dc8d0efa95bf2.tar.gz
llvm-6f729d601c8a6a9710356aadb42dc8d0efa95bf2.tar.bz2
llvm-6f729d601c8a6a9710356aadb42dc8d0efa95bf2.tar.xz
Byebye llvm-upgrade!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48762 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/InstCombine/call.ll73
-rw-r--r--test/Transforms/InstCombine/cast.ll306
-rw-r--r--test/Transforms/InstCombine/getelementptr.ll105
-rw-r--r--test/Transforms/InstCombine/load.ll95
-rw-r--r--test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll39
-rw-r--r--test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll45
-rw-r--r--test/Transforms/LCSSA/2006-07-09-NoDominator.ll27
-rw-r--r--test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll125
-rw-r--r--test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll148
-rw-r--r--test/Transforms/LCSSA/basictest.ll34
-rw-r--r--test/Transforms/LoopRotate/LRCrash-1.ll15
-rw-r--r--test/Transforms/LoopRotate/LRCrash-2.ll12
-rw-r--r--test/Transforms/LoopRotate/LRCrash-3.ll18
-rw-r--r--test/Transforms/LoopRotate/LRCrash-4.ll12
-rw-r--r--test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll27
-rw-r--r--test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll45
-rw-r--r--test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll97
-rw-r--r--test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll42
-rw-r--r--test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll23
-rw-r--r--test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll17
-rw-r--r--test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll34
-rw-r--r--test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll26
-rw-r--r--test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll22
-rw-r--r--test/Transforms/LoopSimplify/basictest.ll21
-rw-r--r--test/Transforms/LoopSimplify/hardertest.ll22
-rw-r--r--test/Transforms/LoopSimplify/phi-node-simplify.ll88
-rw-r--r--test/Transforms/LoopSimplify/single-backedge.ll18
27 files changed, 654 insertions, 882 deletions
diff --git a/test/Transforms/InstCombine/call.ll b/test/Transforms/InstCombine/call.ll
index 1570165e59..9f9a280755 100644
--- a/test/Transforms/InstCombine/call.ll
+++ b/test/Transforms/InstCombine/call.ll
@@ -1,58 +1,77 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
; RUN: grep call | notcast
; END.
-implementation
; Simple case, argument translatable without changing the value
-declare void %test1a(sbyte *%A)
-void %test1(int *%A) {
- call void(int*)* cast (void(sbyte*)* %test1a to void(int*)*)(int* %A)
+declare void @test1a(i8*)
+
+define void @test1(i32* %A) {
+ call void bitcast (void (i8*)* @test1a to void (i32*)*)( i32* %A )
ret void
}
; More complex case, translate argument because of resolution. This is safe
; because we have the body of the function
-void %test2a(sbyte %A) { ret void }
-int %test2(int %A) {
- call void(int)* cast (void(sbyte)* %test2a to void(int)*)(int %A)
- ret int %A
+define void @test2a(i8 %A) {
+ ret void
}
+define i32 @test2(i32 %A) {
+ call void bitcast (void (i8)* @test2a to void (i32)*)( i32 %A )
+ ret i32 %A
+}
+
+
; Resolving this should insert a cast from sbyte to int, following the C
; promotion rules.
-declare void %test3a(sbyte %A, ...)
-void %test3(sbyte %A, sbyte %B) {
- call void(sbyte, sbyte)* cast (void(sbyte,...)* %test3a to void(sbyte,sbyte)*)(sbyte %A, sbyte %B)
+declare void @test3a(i8, ...)
+
+define void @test3(i8 %A, i8 %B) {
+ call void bitcast (void (i8, ...)* @test3a to void (i8, i8)*)( i8 %A, i8 %B
+)
ret void
}
+
; test conversion of return value...
-sbyte %test4a() { ret sbyte 0 }
-int %test4() {
- %X = call int()* cast (sbyte()* %test4a to int()*)()
- ret int %X
+define i8 @test4a() {
+ ret i8 0
+}
+
+define i32 @test4() {
+ %X = call i32 bitcast (i8 ()* @test4a to i32 ()*)( ) ; <i32> [#uses=1]
+ ret i32 %X
}
+
; test conversion of return value... no value conversion occurs so we can do
; this with just a prototype...
-declare uint %test5a()
-int %test5() {
- %X = call int()* cast (uint()* %test5a to int()*)()
- ret int %X
+declare i32 @test5a()
+
+define i32 @test5() {
+ %X = call i32 @test5a( ) ; <i32> [#uses=1]
+ ret i32 %X
}
+
; test addition of new arguments...
-declare int %test6a(int %X)
-int %test6() {
- %X = call int()* cast (int(int)* %test6a to int()*)()
- ret int %X
+declare i32 @test6a(i32)
+
+define i32 @test6() {
+ %X = call i32 bitcast (i32 (i32)* @test6a to i32 ()*)( ) ; <i32> [#uses=1]
+ ret i32 %X
}
+
; test removal of arguments, only can happen with a function body
-void %test7a() { ret void }
-void %test7() {
- call void(int)* cast (void()* %test7a to void(int)*)(int 5)
+define void @test7a() {
ret void
}
+define void @test7() {
+ call void bitcast (void ()* @test7a to void (i32)*)( i32 5 )
+ ret void
+}
+
+
diff --git a/test/Transforms/InstCombine/cast.ll b/test/Transforms/InstCombine/cast.ll
index 156886f1b0..dc5e92800f 100644
--- a/test/Transforms/InstCombine/cast.ll
+++ b/test/Transforms/InstCombine/cast.ll
@@ -1,99 +1,102 @@
; 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: grep %c | notcast
; END.
-%inbuf = external global [32832 x ubyte]
+@inbuf = external global [32832 x i8] ; <[32832 x i8]*> [#uses=1]
-implementation
-
-int %test1(int %A) {
- %c1 = cast int %A to uint
- %c2 = cast uint %c1 to int
- ret int %c2
+define i32 @test1(i32 %A) {
+ %c1 = bitcast i32 %A to i32 ; <i32> [#uses=1]
+ %c2 = bitcast i32 %c1 to i32 ; <i32> [#uses=1]
+ ret i32 %c2
}
-ulong %test2(ubyte %A) {
- %c1 = cast ubyte %A to ushort
- %c2 = cast ushort %c1 to uint
- %Ret = cast uint %c2 to ulong
- ret ulong %Ret
+define i64 @test2(i8 %A) {
+ %c1 = zext i8 %A to i16 ; <i16> [#uses=1]
+ %c2 = zext i16 %c1 to i32 ; <i32> [#uses=1]
+ %Ret = zext i32 %c2 to i64 ; <i64> [#uses=1]
+ ret i64 %Ret
}
-ulong %test3(ulong %A) { ; This function should just use bitwise AND
- %c1 = cast ulong %A to ubyte
- %c2 = cast ubyte %c1 to ulong
- ret ulong %c2
+; This function should just use bitwise AND
+define i64 @test3(i64 %A) {
+ %c1 = trunc i64 %A to i8 ; <i8> [#uses=1]
+ %c2 = zext i8 %c1 to i64 ; <i64> [#uses=1]
+ ret i64 %c2
}
-uint %test4(int %A, int %B) {
- %COND = setlt int %A, %B
- %c = cast bool %COND to ubyte ; Booleans are unsigned integrals
- %result = cast ubyte %c to uint ; for the cast elim purpose
- ret uint %result
+define i32 @test4(i32 %A, i32 %B) {
+ %COND = icmp slt i32 %A, %B ; <i1> [#uses=1]
+ ; Booleans are unsigned integrals
+ %c = zext i1 %COND to i8 ; <i8> [#uses=1]
+ ; for the cast elim purpose
+ %result = zext i8 %c to i32 ; <i32> [#uses=1]
+ ret i32 %result
}
-int %test5(bool %B) {
- %c = cast bool %B to ubyte ; This cast should get folded into
- %result = cast ubyte %c to int ; this cast
- ret int %result
+define i32 @test5(i1 %B) {
+ ; This cast should get folded into
+ %c = zext i1 %B to i8 ; <i8> [#uses=1]
+ ; this cast
+ %result = zext i8 %c to i32 ; <i32> [#uses=1]
+ ret i32 %result
}
-int %test6(ulong %A) {
- %c1 = cast ulong %A to uint
- %res = cast uint %c1 to int
- ret int %res
+define i32 @test6(i64 %A) {
+ %c1 = trunc i64 %A to i32 ; <i32> [#uses=1]
+ %res = bitcast i32 %c1 to i32 ; <i32> [#uses=1]
+ ret i32 %res
}
-long %test7(bool %A) {
- %c1 = cast bool %A to int
- %res = cast int %c1 to long
- ret long %res
+define i64 @test7(i1 %A) {
+ %c1 = zext i1 %A to i32 ; <i32> [#uses=1]
+ %res = sext i32 %c1 to i64 ; <i64> [#uses=1]
+ ret i64 %res
}
-long %test8(sbyte %A) {
- %c1 = cast sbyte %A to ulong
- %res = cast ulong %c1 to long
- ret long %res
+define i64 @test8(i8 %A) {
+ %c1 = sext i8 %A to i64 ; <i64> [#uses=1]
+ %res = bitcast i64 %c1 to i64 ; <i64> [#uses=1]
+ ret i64 %res
}
-short %test9(short %A) {
- %c1 = cast short %A to int
- %c2 = cast int %c1 to short
- ret short %c2
+define i16 @test9(i16 %A) {
+ %c1 = sext i16 %A to i32 ; <i32> [#uses=1]
+ %c2 = trunc i32 %c1 to i16 ; <i16> [#uses=1]
+ ret i16 %c2
}
-short %test10(short %A) {
- %c1 = cast short %A to uint
- %c2 = cast uint %c1 to short
- ret short %c2
+define i16 @test10(i16 %A) {
+ %c1 = sext i16 %A to i32 ; <i32> [#uses=1]
+ %c2 = trunc i32 %c1 to i16 ; <i16> [#uses=1]
+ ret i16 %c2
}
-declare void %varargs(int, ...)
+declare void @varargs(i32, ...)
-void %test11(int* %P) {
- %c = cast int* %P to short*
- call void(int, ...)* %varargs(int 5, short* %c)
- ret void
+define void @test11(i32* %P) {
+ %c = bitcast i32* %P to i16* ; <i16*> [#uses=1]
+ call void (i32, ...)* @varargs( i32 5, i16* %c )
+ ret void
}
-int* %test12() {
- %p = malloc [4 x sbyte]
- %c = cast [4 x sbyte]* %p to int*
- ret int* %c
+define i32* @test12() {
+ %p = malloc [4 x i8] ; <[4 x i8]*> [#uses=1]
+ %c = bitcast [4 x i8]* %p to i32* ; <i32*> [#uses=1]
+ ret i32* %c
}
-
-ubyte *%test13(long %A) {
- %c = getelementptr [0 x ubyte]* cast ([32832 x ubyte]* %inbuf to [0 x ubyte]*), long 0, long %A
- ret ubyte* %c
+define i8* @test13(i64 %A) {
+ %c = getelementptr [0 x i8]* bitcast ([32832 x i8]* @inbuf to [0 x i8]*), i64 0, i64 %A ; <i8*> [#uses=1]
+ ret i8* %c
}
-bool %test14(sbyte %A) {
- %c = cast sbyte %A to ubyte
- %X = setlt ubyte %c, 128 ; setge %A, 0
- ret bool %X
+define i1 @test14(i8 %A) {
+ %c = bitcast i8 %A to i8 ; <i8> [#uses=1]
+ %X = icmp ult i8 %c, -128 ; <i1> [#uses=1]
+ ret i1 %X
}
+
; This just won't occur when there's no difference between ubyte and sbyte
;bool %test15(ubyte %A) {
; %c = cast ubyte %A to sbyte
@@ -101,130 +104,137 @@ bool %test14(sbyte %A) {
; ret bool %X
;}
-bool %test16(int* %P) {
- %c = cast int* %P to bool ;; setne P, null
- ret bool %c
+define i1 @test16(i32* %P) {
+ %c = icmp ne i32* %P, null ; <i1> [#uses=1]
+ ret i1 %c
}
-short %test17(bool %tmp3) {
- %c = cast bool %tmp3 to int
- %t86 = cast int %c to short
- ret short %t86
+define i16 @test17(i1 %tmp3) {
+ %c = zext i1 %tmp3 to i32 ; <i32> [#uses=1]
+ %t86 = trunc i32 %c to i16 ; <i16> [#uses=1]
+ ret i16 %t86
}
-short %test18(sbyte %tmp3) {
- %c = cast sbyte %tmp3 to int
- %t86 = cast int %c to short
- ret short %t86
+define i16 @test18(i8 %tmp3) {
+ %c = sext i8 %tmp3 to i32 ; <i32> [#uses=1]
+ %t86 = trunc i32 %c to i16 ; <i16> [#uses=1]
+ ret i16 %t86
}
-bool %test19(int %X) {
- %c = cast int %X to long
- %Z = setlt long %c, 12345
- ret bool %Z
+define i1 @test19(i32 %X) {
+ %c = sext i32 %X to i64 ; <i64> [#uses=1]
+ %Z = icmp slt i64 %c, 12345 ; <i1> [#uses=1]
+ ret i1 %Z
}
-bool %test20(bool %B) {
- %c = cast bool %B to int
- %D = setlt int %c, -1
- ret bool %D ;; false
+define i1 @test20(i1 %B) {
+ %c = zext i1 %B to i32 ; <i32> [#uses=1]
+ %D = icmp slt i32 %c, -1 ; <i1> [#uses=1]
+ ;; false
+ ret i1 %D
}
-uint %test21(uint %X) {
- %c1 = cast uint %X to sbyte
- %c2 = cast sbyte %c1 to uint ;; sext -> zext -> and -> nop
- %RV = and uint %c2, 255
- ret uint %RV
+define i32 @test21(i32 %X) {
+ %c1 = trunc i32 %X to i8 ; <i8> [#uses=1]
+ ;; sext -> zext -> and -> nop
+ %c2 = sext i8 %c1 to i32 ; <i32> [#uses=1]
+ %RV = and i32 %c2, 255 ; <i32> [#uses=1]
+ ret i32 %RV
}
-uint %test22(uint %X) {
- %c1 = cast uint %X to sbyte
- %c2 = cast sbyte %c1 to uint ;; sext -> zext -> and -> nop
- %RV = shl uint %c2, ubyte 24
- ret uint %RV
+define i32 @test22(i32 %X) {
+ %c1 = trunc i32 %X to i8 ; <i8> [#uses=1]
+ ;; sext -> zext -> and -> nop
+ %c2 = sext i8 %c1 to i32 ; <i32> [#uses=1]
+ %RV = shl i32 %c2, 24 ; <i32> [#uses=1]
+ ret i32 %RV
}
-int %test23(int %X) {
- %c1 = cast int %X to ushort ;; Turn into an AND even though X
- %c2 = cast ushort %c1 to int ;; and Z are signed.
- ret int %c2
+define i32 @test23(i32 %X) {
+ ;; Turn into an AND even though X
+ %c1 = trunc i32 %X to i16 ; <i16> [#uses=1]
+ ;; and Z are signed.
+ %c2 = zext i16 %c1 to i32 ; <i32> [#uses=1]
+ ret i32 %c2
}
-bool %test24(bool %C) {
- %X = select bool %C, uint 14, uint 1234
- %c = cast uint %X to bool ;; Fold cast into select
- ret bool %c
+define i1 @test24(i1 %C) {
+ %X = select i1 %C, i32 14, i32 1234 ; <i32> [#uses=1]
+ ;; Fold cast into select
+ %c = icmp ne i32 %X, 0 ; <i1> [#uses=1]
+ ret i1 %c
}
-void %test25(int** %P) {
- %c = cast int** %P to float**
- store float* null, float** %c ;; Fold cast into null
+define void @test25(i32** %P) {
+ %c = bitcast i32** %P to float** ; <float**> [#uses=1]
+ ;; Fold cast into null
+ store float* null, float** %c
ret void
}
-int %test26(float %F) {
- %c = cast float %F to double ;; no need to cast from float->double.
- %D = cast double %c to int
- ret int %D
+define i32 @test26(float %F) {
+ ;; no need to cast from float->double.
+ %c = fpext float %F to double ; <double> [#uses=1]
+ %D = fptosi double %c to i32 ; <i32> [#uses=1]
+ ret i32 %D
}
-[4 x float]* %test27([9 x [4 x float]]* %A) {
- %c = cast [9 x [4 x float]]* %A to [4 x float]*
- ret [4 x float]* %c
+define [4 x float]* @test27([9 x [4 x float]]* %A) {
+ %c = bitcast [9 x [4 x float]]* %A to [4 x float]* ; <[4 x float]*> [#uses=1]
+ ret [4 x float]* %c
}
-float* %test28([4 x float]* %A) {
- %c = cast [4 x float]* %A to float*
- ret float* %c
+define float* @test28([4 x float]* %A) {
+ %c = bitcast [4 x float]* %A to float* ; <float*> [#uses=1]
+ ret float* %c
}
-uint %test29(uint %c1, uint %c2) {
- %tmp1 = cast uint %c1 to ubyte
- %tmp4.mask = cast uint %c2 to ubyte
- %tmp = or ubyte %tmp4.mask, %tmp1
- %tmp10 = cast ubyte %tmp to uint
- ret uint %tmp10
+define i32 @test29(i32 %c1, i32 %c2) {
+ %tmp1 = trunc i32 %c1 to i8 ; <i8> [#uses=1]
+ %tmp4.mask = trunc i32 %c2 to i8 ; <i8> [#uses=1]
+ %tmp = or i8 %tmp4.mask, %tmp1 ; <i8> [#uses=1]
+ %tmp10 = zext i8 %tmp to i32 ; <i32> [#uses=1]
+ ret i32 %tmp10
}
-uint %test30(uint %c1) {
- %c2 = cast uint %c1 to ubyte
- %c3 = xor ubyte %c2, 1
- %c4 = cast ubyte %c3 to uint
- ret uint %c4
+define i32 @test30(i32 %c1) {
+ %c2 = trunc i32 %c1 to i8 ; <i8> [#uses=1]
+ %c3 = xor i8 %c2, 1 ; <i8> [#uses=1]
+ %c4 = zext i8 %c3 to i32 ; <i32> [#uses=1]
+ ret i32 %c4
}
-bool %test31(ulong %A) {
- %B = cast ulong %A to int
- %C = and int %B, 42
- %D = seteq int %C, 10
- ret bool %D
+define i1 @test31(i64 %A) {
+ %B = trunc i64 %A to i32 ; <i32> [#uses=1]
+ %C = and i32 %B, 42 ; <i32> [#uses=1]
+ %D = icmp eq i32 %C, 10 ; <i1> [#uses=1]
+ ret i1 %D
}
-
-void %test32(double** %tmp) {
- %tmp8 = malloc [16 x sbyte]
- %tmp8 = cast [16 x sbyte]* %tmp8 to double*
- store double* %tmp8, double** %tmp
+define void @test32(double** %tmp) {
+ %tmp8 = malloc [16 x i8] ; <[16 x i8]*> [#uses=1]
+ %tmp8.upgrd.1 = bitcast [16 x i8]* %tmp8 to double* ; <double*> [#uses=1]
+ store double* %tmp8.upgrd.1, double** %tmp
ret void
}
-uint %test33(uint %c1) {
- %x = bitcast uint %c1 to float
- %y = bitcast float %x to uint
- ret uint %y
+define i32 @test33(i32 %c1) {
+ %x = bitcast i32 %c1 to float ; <float> [#uses=1]
+ %y = bitcast float %x to i32 ; <i32> [#uses=1]
+ ret i32 %y
}
-ushort %test34(ushort %a) {
- %c1 = zext ushort %a to int
- %tmp21 = lshr int %c1, ubyte 8
- %c2 = trunc int %tmp21 to ushort
- ret ushort %c2
+define i16 @test34(i16 %a) {
+ %c1 = zext i16 %a to i32 ; <i32> [#uses=1]
+ %tmp21 = lshr i32 %c1, 8 ; <i32> [#uses=1]
+ %c2 = trunc i32 %tmp21 to i16 ; <i16> [#uses=1]
+ ret i16 %c2
}
-ushort %test35(ushort %a) {
- %c1 = bitcast ushort %a to short
- %tmp2 = lshr short %c1, ubyte 8
- %c2 = bitcast short %tmp2 to ushort
- ret ushort %c2
+define i16 @test35(i16 %a) {
+ %c1 = bitcast i16 %a to i16 ; <i16> [#uses=1]
+ %tmp2 = lshr i16 %c1, 8 ; <i16> [#uses=1]
+ %c2 = bitcast i16 %tmp2 to i16 ; <i16> [#uses=1]
+ ret i16 %c2
}
diff --git a/test/Transforms/InstCombine/getelementptr.ll b/test/Transforms/InstCombine/getelementptr.ll
index 7e8809220a..c2cb720803 100644
--- a/test/Transforms/InstCombine/getelementptr.ll
+++ b/test/Transforms/InstCombine/getelementptr.ll
@@ -1,76 +1,81 @@
; The %A getelementptr instruction should be eliminated here
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
; RUN: grep -v %B | not grep getelementptr
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep foo1
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep foo1
; END.
-%Global = constant [10 x sbyte] c"helloworld"
+@Global = constant [10 x i8] c"helloworld" ; <[10 x i8]*> [#uses=1]
-implementation
-
-int *%foo1(int* %I) { ; Test noop elimination
- %A = getelementptr int* %I, long 0
- ret int * %A
+; Test noop elimination
+define i32* @foo1(i32* %I) {
+ %A = getelementptr i32* %I, i64 0 ; <i32*> [#uses=1]
+ ret i32* %A
}
-int* %foo2(int* %I) { ; Test noop elimination
- %A = getelementptr int* %I
- ret int* %A
+; Test noop elimination
+define i32* @foo2(i32* %I) {
+ %A = getelementptr i32* %I ; <i32*> [#uses=1]
+ ret i32* %A
}
-int* %foo3(int * %I) { ; Test that two array indexing geps fold
- %A = getelementptr int* %I, long 17
- %B = getelementptr int* %A, long 4
- ret int* %B
+
+; Test that two array indexing geps fold
+define i32* @foo3(i32* %I) {
+ %A = getelementptr i32* %I, i64 17 ; <i32*> [#uses=1]
+ %B = getelementptr i32* %A, i64 4 ; <i32*> [#uses=1]
+ ret i32* %B
}
-int* %foo4({int} *%I) { ; Test that two getelementptr insts fold
- %A = getelementptr {int}* %I, long 1
- %B = getelementptr {int}* %A, long 0, uint 0
- ret int* %B
+; Test that two getelementptr insts fold
+define i32* @foo4({ i32 }* %I) {
+ %A = getelementptr { i32 }* %I, i64 1 ; <{ i32 }*> [#uses=1]
+ %B = getelementptr { i32 }* %A, i64 0, i32 0 ; <i32*> [#uses=1]
+ ret i32* %B
}
-void %foo5(sbyte %B) {
- ; This should be turned into a constexpr instead of being an instruction
- %A = getelementptr [10 x sbyte]* %Global, long 0, long 4
- store sbyte %B, sbyte* %A
- ret void
+define void @foo5(i8 %B) {
+ ; This should be turned into a constexpr instead of being an instruction
+ %A = getelementptr [10 x i8]* @Global, i64 0, i64 4 ; <i8*> [#uses=1]
+ store i8 %B, i8* %A
+ ret void
}
-int* %foo6() {
- %M = malloc [4 x int]
- %A = getelementptr [4 x int]* %M, long 0, long 0
- %B = getelementptr int* %A, long 2
- ret int* %B
+define i32* @foo6() {
+ %M = malloc [4 x i32] ; <[4 x i32]*> [#uses=1]
+ %A = getelementptr [4 x i32]* %M, i64 0, i64 0 ; <i32*> [#uses=1]
+ %B = getelementptr i32* %A, i64 2 ; <i32*> [#uses=1]
+ ret i32* %B
}
-int* %foo7(int* %I, long %C, long %D) {
- %A = getelementptr int* %I, long %C
- %B = getelementptr int* %A, long %D
- ret int* %B
+define i32* @foo7(i32* %I, i64 %C, i64 %D) {
+ %A = getelementptr i32* %I, i64 %C ; <i32*> [#uses=1]
+ %B = getelementptr i32* %A, i64 %D ; <i32*> [#uses=1]
+ ret i32* %B
}
-sbyte* %foo8([10 x int]* %X) {
- %A = getelementptr [10 x int]* %X, long 0, long 0 ;; Fold into the cast.
- %B = cast int* %A to sbyte*
- ret sbyte * %B
+define i8* @foo8([10 x i32]* %X) {
+ ;; Fold into the cast.
+ %A = getelementptr [10 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=1]
+ %B = bitcast i32* %A to i8* ; <i8*> [#uses=1]
+ ret i8* %B
}
-int %test9() {
- %A = getelementptr {int, double}* null, int 0, uint 1
- %B = cast double* %A to int
- ret int %B
+define i32 @test9() {
+ %A = getelementptr { i32, double }* null, i32 0, i32 1 ; <double*> [#uses=1]
+ %B = ptrtoint double* %A to i32 ; <i32> [#uses=1]
+ ret i32 %B
}
-bool %test10({int, int} * %x, {int, int} * %y) {
- %tmp.1 = getelementptr {int,int}* %x, int 0, uint 1
- %tmp.3 = getelementptr {int,int}* %y, int 0, uint 1
- %tmp.4 = seteq int* %tmp.1, %tmp.3 ;; seteq x, y
- ret bool %tmp.4
+define i1 @test10({ i32, i32 }* %x, { i32, i32 }* %y) {
+ %tmp.1 = getelementptr { i32, i32 }* %x, i32 0, i32 1 ; <i32*> [#uses=1]
+ %tmp.3 = getelementptr { i32, i32 }* %y, i32 0, i32 1 ; <i32*> [#uses=1]
+ ;; seteq x, y
+ %tmp.4 = icmp eq i32* %tmp.1, %tmp.3 ; <i1> [#uses=1]
+ ret i1 %tmp.4
}
-bool %test11({int,int} *%X) {
- %P = getelementptr {int,int}* %X, int 0, uint 0
- %Q = seteq int* %P, null
- ret bool %Q
+define i1 @test11({ i32, i32 }* %X) {
+ %P = getelementptr { i32, i32 }* %X, i32 0, i32 0 ; <i32*> [#uses=1]
+ %Q = icmp eq i32* %P, null ; <i1> [#uses=1]
+ ret i1 %Q
}
diff --git a/test/Transforms/InstCombine/load.ll b/test/Transforms/InstCombine/load.ll
index 5c7d580a46..907550a778 100644
--- a/test/Transforms/InstCombine/load.ll
+++ b/test/Transforms/InstCombine/load.ll
@@ -1,73 +1,70 @@
; This test makes sure that these instructions are properly eliminated.
;
-; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep load
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
-%X = constant int 42
-%X2 = constant int 47
-%Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
- { int, float } { int 37, float 0x3FF3B2FEC0000000 } ]
-%Z = constant [2 x { int, float }] zeroinitializer
+@X = constant i32 42 ; <i32*> [#uses=2]
+@X2 = constant i32 47 ; <i32*> [#uses=1]
+@Y = constant [2 x { i32, float }] [ { i32, float } { i32 12, float 1.000000e+00 }, { i32, float } { i32 37, float 0x3FF3B2FEC0000000 } ] ; <[2 x { i32, float }]*> [#uses=2]
+@Z = constant [2 x { i32, float }] zeroinitializer ; <[2 x { i32, float }]*> [#uses=1]
-int %test1() {
- %B = load int* %X
- ret int %B
+define i32 @test1() {
+ %B = load i32* @X ; <i32> [#uses=1]
+ ret i32 %B
}
-float %test2() {
- %A = getelementptr [2 x { int, float}]* %Y, long 0, long 1, uint 1
- %B = load float* %A
+define float @test2() {
+ %A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 1, i32 1 ; <float*> [#uses=1]
+ %B = load float* %A ; <float> [#uses=1]
ret float %B
}
-
-int %test3() {
- %A = getelementptr [2 x { int, float}]* %Y, long 0, long 0, uint 0
- %B = load int* %A
- ret int %B
+define i32 @test3() {
+ %A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 0, i32 0 ; <i32*> [#uses=1]
+ %B = load i32* %A ; <i32> [#uses=1]
+ ret i32 %B
}
-int %test4() {
- %A = getelementptr [2 x { int, float}]* %Z, long 0, long 1, uint 0
- %B = load int* %A
- ret int %B
+define i32 @test4() {
+ %A = getelementptr [2 x { i32, float }]* @Z, i64 0, i64 1, i32 0 ; <i32*> [#uses=1]
+ %B = load i32* %A ; <i32> [#uses=1]
+ ret i32 %B
}
-; load (select (Cond, &V1, &V2)) --> select(Cond, load &V1, load &V2)
-int %test5(bool %C) {
- %Y = select bool %C, int* %X, int* %X2
- %Z = load int* %Y
- ret int %Z
+define i32 @test5(i1 %C) {
+ %Y = select i1 %C, i32* @X, i32* @X2 ; <i32*> [#uses=1]
+ %Z = load i32* %Y ; <i32> [#uses=1]
+ ret i32 %Z
}
-int %test7(int %X) {
- %V = getelementptr int* null, int %X
- %R = load int* %V
- ret int %R
+define i32 @test7(i32 %X) {
+ %V = getelementptr i32* null, i32 %X ; <i32*> [#uses=1]
+ %R = load i32* %V ; <i32> [#uses=1]
+ ret i32 %R
}
-int %test8(int* %P) {
- store int 1, int* %P
- %X = load int* %P ;; Trivial store->load forwarding
- ret int %X
+define i32 @test8(i32* %P) {
+ store i32 1, i32* %P
+ %X = load i32* %P ; <i32> [#uses=1]
+ ret i32 %X
}
-int %test9(int* %P) {
- %X = load int* %P ;; Trivial load cse
- %Y = load int* %P
- %Z = sub int %X, %Y
- ret int %Z
+define i32 @test9(i32* %P) {
+ %X = load i32* %P ; <i32> [#uses=1]
+ %Y = load i32* %P ; <i32> [#uses=1]
+ %Z = sub i32 %X, %Y ; <i32> [#uses=1]
+ ret i32 %Z
}
-int %test10(bool %C, int* %P, int* %Q) {
- br bool %C, label %T, label %F
-T:
- store int 1, int* %Q
- store int 0, int* %P
+define i32 @test10(i1 %C.upgrd.1, i32* %P, i32* %Q) {
+ br i1 %C.upgrd.1, label %T, label %F
+T: ; preds = %0
+ store i32 1, i32* %Q
+ store i32 0, i32* %P
br label %C
-F:
- store int 0, int* %P
+F: ; preds = %0
+ store i32 0, i32* %P
br label %C
-C:
- %V = load int* %P ;; always 0
- ret int %V
+C: ; preds = %F, %T
+ %V = load i32* %P ; <i32> [#uses=1]
+ ret i32 %V
}
diff --git a/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll b/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
index e7cfd76ec7..aa24014f3b 100644
--- a/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
+++ b/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
@@ -1,28 +1,23 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: grep {%SJE.0.0.lcssa = phi .struct.SetJmpMapEntry}
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: grep {%SJE.0.0.lcssa1 = phi .struct.SetJmpMapEntry}
-%struct.SetJmpMapEntry = type { sbyte*, uint, %struct.SetJmpMapEntry* }
+ %struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-implementation ; Functions:
-
-void %__llvm_sjljeh_try_catching_longjmp_exception() {
+define void @__llvm_sjljeh_try_catching_longjmp_exception() {
entry:
- br bool false, label %UnifiedReturnBlock, label %no_exit
-
-no_exit: ; preds = %endif, %entry
- %SJE.0.0 = phi %struct.SetJmpMapEntry* [ %tmp.24, %endif ], [ null, %entry ] ; <%struct.SetJmpMapEntry*> [#uses=1]
- br bool false, label %then, label %endif
-
-then: ; preds = %no_exit
- %tmp.20 = getelementptr %struct.SetJmpMapEntry* %SJE.0.0, int 0, uint 1 ; <uint*> [#uses=0]
- ret void
-
-endif: ; preds = %no_exit
- %tmp.24 = load %struct.SetJmpMapEntry** null ; <%struct.SetJmpMapEntry*> [#uses=1]
- br bool false, label %UnifiedReturnBlock, label %no_exit
-
-UnifiedReturnBlock: ; preds = %endif, %entry
- ret void
+ br i1 false, label %UnifiedReturnBlock, label %no_exit
+no_exit: ; preds = %endif, %entry
+ %SJE.0.0 = phi %struct.SetJmpMapEntry* [ %tmp.24, %endif ], [ null, %entry ] ; <%struct.SetJmpMapEntry*> [#uses=1]
+ br i1 false, label %then, label %endif
+then: ; preds = %no_exit
+ %tmp.20 = getelementptr %struct.SetJmpMapEntry* %SJE.0.0, i32 0, i32 1 ; <i32*> [#uses=0]
+ ret void
+endif: ; preds = %no_exit
+ %tmp.24 = load %struct.SetJmpMapEntry** null ; <%struct.SetJmpMapEntry*> [#uses=1]
+ br i1 false, label %UnifiedReturnBlock, label %no_exit
+UnifiedReturnBlock: ; preds = %endif, %entry
+ ret void
}
+
diff --git a/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll b/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
index 02765dcdc1..eaccbadbf1 100644
--- a/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
+++ b/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
@@ -1,30 +1,27 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: grep {%X.1.lcssa}
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: not grep {%X.1.lcssa1}
-declare bool %c1()
-declare bool %c2()
+declare i1 @c1()
-int %foo() {
-entry:
- br label %loop_begin
-
-loop_begin:
- br bool true, label %loop_body.1, label %loop_exit2
-
-loop_body.1:
- %X.1 = add int 0, 1
- %rel.1 = call bool %c1()
- br bool %rel.1, label %loop_exit, label %loop_body.2
-
-loop_body.2:
- %rel.2 = call bool %c2()
- br bool %rel.2, label %loop_exit, label %loop_begin
+declare i1 @c2()
-loop_exit:
- ret int %X.1
-
-loop_exit2:
- ret int 1
+define i32 @foo() {
+entry:
+ br label %loop_begin
+loop_begin: ; preds = %loop_body.2, %entry
+ br i1 true, label %loop_body.1, label %loop_exit2
+loop_body.1: ; preds = %loop_begin
+ %X.1 = add i32 0, 1 ; <i32> [#uses=1]
+ %rel.1 = call i1 @c1( ) ; <i1> [#uses=1]
+ br i1 %rel.1, label %loop_exit, label %loop_body.2
+loop_body.2: ; preds = %loop_body.1
+ %rel.2 = call i1 @c2( ) ; <i1> [#uses=1]
+ br i1 %rel.2, label %loop_exit, label %loop_begin
+loop_exit: ; preds = %loop_body.2, %loop_body.1
+ ret i32 %X.1
+loop_exit2: ; preds = %loop_begin
+ ret i32 1
}
+
diff --git a/test/Transforms/LCSSA/2006-07-09-NoDominator.ll b/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
index f90f6644af..c8af10058c 100644
--- a/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
+++ b/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
@@ -1,31 +1,24 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa
+; RUN: llvm-as < %s | opt -lcssa
- %struct.SetJmpMapEntry = type { sbyte*, uint, %struct.SetJmpMapEntry* }
+ %struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-implementation ; Functions:
-
-void %__llvm_sjljeh_try_catching_longjmp_exception() {
+define void @__llvm_sjljeh_try_catching_longjmp_exception() {
entry:
br label %loopentry
-
loopentry: ; preds = %endif, %entry
- %SJE.0 = phi %struct.SetJmpMapEntry* [ null, %entry ], [ %tmp.25, %endif ] ; <%struct.SetJmpMapEntry*> [#uses=1]
- br bool false, label %no_exit, label %loopexit
-
+ %SJE.0 = phi %struct.SetJmpMapEntry* [ null, %entry ], [ %tmp.25, %endif ] ; <%struct.SetJmpMapEntry*> [#uses=1]
+ br i1 false, label %no_exit, label %loopexit
no_exit: ; preds = %loopentry
- br bool false, label %then, label %endif
-
+ br i1 false, label %then, label %endif
then: ; preds = %no_exit
- %tmp.21 = getelementptr %struct.SetJmpMapEntry* %SJE.0, int 0, uint 1 ; <uint*> [#uses=0]
+ %tmp.21 = getelementptr %struct.SetJmpMapEntry* %SJE.0, i32 0, i32 1 ; <i32*> [#uses=0]
br label %return
-
-endif: ; preds = %after_ret.0, %no_exit
+endif: ; preds = %no_exit
%tmp.25 = load %struct.SetJmpMapEntry** null ; <%struct.SetJmpMapEntry*> [#uses=1]
br label %loopentry
-
loopexit: ; preds = %loopentry
br label %return
-
-return: ; preds = %after_ret.1, %loopexit, %then
+return: ; preds = %loopexit, %then
ret void
}
+
diff --git a/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll b/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
index ac40ad5fd6..b85e6c3602 100644
--- a/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
+++ b/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
@@ -1,210 +1,145 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa -disable-output
+; RUN: llvm-as < %s | opt -lcssa -disable-output
; PR977
+; END.
+declare i32 @opost_block()
-declare int %opost_block()
-
-void %write_chan() {
+define void @write_chan() {
entry:
- br bool false, label %shortcirc_next.0, label %shortcirc_done.0
-
+ br i1 false, label %shortcirc_next.0, label %shortcirc_done.0
shortcirc_next.0: ; preds = %entry
br label %shortcirc_done.0
-
shortcirc_done.0: ; preds = %shortcirc_next.0, %entry
- br bool false, label %shortcirc_next.1, label %shortcirc_done.1
-
+ br i1 false, label %shortcirc_next.1, label %shortcirc_done.1
shortcirc_next.1: ; preds = %shortcirc_done.0
br label %shortcirc_done.1
-
shortcirc_done.1: ; preds = %shortcirc_next.1, %shortcirc_done.0
- br bool false, label %then.0, label %endif.0
-
+ br i1 false, label %then.0, label %endif.0
then.0: ; preds = %shortcirc_done.1
- br bool false, label %then.1, label %endif.1
-
+ br i1 false, label %then.1, label %endif.1
then.1: ; preds = %then.0
br label %return
-
after_ret.0: ; No predecessors!
br label %endif.1
-
endif.1: ; preds = %after_ret.0, %then.0
br label %endif.0
-
endif.0: ; preds = %endif.1, %shortcirc_done.1
br label %loopentry.0
-
loopentry.0: ; preds = %endif.12, %endif.0
- br bool false, label %then.2, label %endif.2
-
+ br i1 false, label %then.2, label %endif.2
then.2: ; preds = %loopentry.0
br label %loopexit.0
-
dead_block_after_break.0: ; No predecessors!
br label %endif.2
-
endif.2: ; preds = %dead_block_after_break.0, %loopentry.0
- br bool false, label %shortcirc_done.2, label %shortcirc_next.2
-
+ br i1 false, label %shortcirc_done.2, label %shortcirc_next.2
shortcirc_next.2: ; preds = %endif.2
- br bool false, label %shortcirc_next.3, label %shortcirc_done.3
-
+ br i1 false, label %shortcirc_next.3, label %shortcirc_done.3
shortcirc_next.3: ; preds = %shortcirc_next.2
br label %shortcirc_done.3
-
shortcirc_done.3: ; preds = %shortcirc_next.3, %shortcirc_next.2
br label %shortcirc_done.2
-
shortcirc_done.2: ; preds = %shortcirc_done.3, %endif.2
- br bool false, label %then.3, label %endif.3
-
+ br i1 false, label %then.3, label %endif.3
then.3: ; preds = %shortcirc_done.2
br label %loopexit.0
-
dead_block_after_break.1: ; No predecessors!
br label %endif.3
-
endif.3: ; preds = %dead_block_after_break.1, %shortcirc_done.2
- br bool false, label %shortcirc_next.4, label %shortcirc_done.4
-
+ br i1 false, label %shortcirc_next.4, label %shortcirc_done.4
shortcirc_next.4: ; preds = %endif.3
br label %shortcirc_done.4
-
shortcirc_done.4: ; preds = %shortcirc_next.4, %endif.3
- br bool false, label %then.4, label %else
-
+ br i1 false, label %then.4, label %else
then.4: ; preds = %shortcirc_done.4
br label %loopentry.1
-
loopentry.1: ; preds = %endif.8, %then.4
- br bool false, label %no_exit, label %loopexit.1
-
+ br i1 false, label %no_exit, label %loopexit.1
no_exit: ; preds = %loopentry.1
- %tmp.94 = call int %opost_block( ) ; <int> [#uses=1]
- br bool false, label %then.5, label %endif.5
-
+ %tmp.94 = call i32 @opost_block( ) ; <i32> [#uses=1]
+ br i1 false, label %then.5, label %endif.5
then.5: ; preds = %no_exit
- br bool false, label %then.6, label %endif.6
-
+ br i1 false, label %then.6, label %endif.6
then.6: ; preds = %then.5
br label %loopexit.1
-
dead_block_after_break.2: ; No predecessors!
br label %endif.6
-
endif.6: ; preds = %dead_block_after_break.2, %then.5
br label %break_out
-
dead_block_after_goto.0: ; No predecessors!
br label %endif.5
-
endif.5: ; preds = %dead_block_after_goto.0, %no_exit
- br bool false, label %then.7, label %endif.7
-
+ br i1 false, label %then.7, label %endif.7
then.7: ; preds = %endif.5
br label %loopexit.1
-
dead_block_after_break.3: ; No predecessors!
br label %endif.7
-
endif.7: ; preds = %dead_block_after_break.3, %endif.5
- switch uint 1, label %switchexit [
- uint 4, label %label.2
- uint 2, label %label.1
- uint 1, label %label.0
+ switch i32 1, label %switchexit [
+ i32 4, label %label.2
+ i32 2, label %label.1
+ i32 1, label %label.0
]
-
label.0: ; preds = %endif.7
br label %switchexit
-
dead_block_after_break.4: ; No predecessors!
br label %label.1
-
label.1: ; preds = %dead_block_after_break.4, %endif.7
br label %switchexit
-
dead_block_after_break.5: ; No predecessors!
br label %label.2
-
label.2: ; preds = %dead_block_after_break.5, %endif.7
br label %switchexit
-
dead_block_after_break.6: ; No predecessors!
br label %switchexit
-
switchexit: ; preds = %dead_block_after_break.6, %label.2, %label.1, %label.0, %endif.7
- br bool false, label %then.8, label %endif.8
-
+ br i1 false, label %then.8, label %endif.8
then.8: ; preds = %switchexit
br label %loopexit.1
-
dead_block_after_break.7: ; No predecessors!
br label %endif.8
-
endif.8: ; preds = %dead_block_after_break.7, %switchexit
br label %loopentry.1
-
loopexit.1: ; preds = %then.8, %then.7, %then.6, %loopentry.1
- br bool false, label %then.9, label %endif.9
-
+ br i1 false, label %then.9, label %endif.9
then.9: ; preds = %loopexit.1
br label %endif.9
-
endif.9: ; preds = %then.9, %loopexit.1
br label %endif.4
-
else: ; preds = %shortcirc_done.4
- br bool false, label %then.10, label %endif.10
-
+ br i1 false, label %then.10, label %endif.10
then.10: ; preds = %else
br label %break_out
-
dead_block_after_goto.1: ; No predecessors!
br label %endif.10
-
endif.10: ; preds = %dead_block_after_goto.1, %else
br label %endif.4
-
endif.4: ; preds = %endif.10, %endif.9
- br bool false, label %then.11, label %endif.11
-
+ br i1 false, label %then.11, label %endif.11
then.11: ; preds = %endif.4
br label %loopexit.0
-
dead_block_after_break.8: ; No predecessors!
br label %endif.11
-
endif.11: ; preds = %dead_block_after_break.8, %endif.4
- br bool false, label %then.12, label %endif.12
-
+ br i1 false, label %then.12, label %endif.12
then.12: ; preds = %endif.11
br label %loopexit.0
-
dead_block_after_break.9: ; No predecessors!
br label %endif.12
-
endif.12: ; preds = %dead_block_after_break.9, %endif.11
br label %loopentry.0
-
loopexit.0: ; preds = %then.12, %then.11, %then.3, %then.2
br label %break_out
-
break_out: ; preds = %loopexit.0, %then.10, %endif.6
- %retval.3 = phi int [ 0, %loopexit.0 ], [ %tmp.94, %endif.6 ], [ 0, %then.10 ] ; <int> [#uses=0]
- br bool false, label %cond_true, label %cond_false
-
+ %retval.3 = phi i32 [ 0, %loopexit.0 ], [ %tmp.94, %endif.6 ], [ 0, %then.10 ] ; <i32> [#uses=0]
+ br i1 false, label %cond_true, label %cond_false
cond_true: ; preds = %break_out
br label %cond_continue
-
cond_false: ; preds = %break_out
br label %cond_continue
-
cond_continue: ; preds = %cond_false, %cond_true
br label %return
-
after_ret.1: ; No predecessors!
br label %return
-
return: ; preds = %after_ret.1, %cond_continue, %then.1
ret void
}
diff --git a/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll b/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
index 9178411ece..b02feb4103 100644
--- a/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
+++ b/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
@@ -1,270 +1,184 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa -disable-output
+; RUN: llvm-as < %s | opt -lcssa -disable-output
; PR977
+; END.
-void %process_backlog() {
+define void @process_backlog() {
entry:
br label %loopentry.preheader
-
loopentry.preheader: ; preds = %dead_block_after_break, %entry
- %work.0.ph = phi int [ %inc, %dead_block_after_break ], [ 0, %entry ] ; <int> [#uses=0]
+ %work.0.ph = phi i32 [ %inc, %dead_block_after_break ], [ 0, %entry ] ; <i32> [#uses=0]
br label %loopentry
-
loopentry: ; preds = %endif.1, %loopentry.preheader
- br bool false, label %then.i, label %loopentry.__skb_dequeue67.exit_crit_edge
-
+ br i1 false, label %then.i, label %loopentry.__skb_dequeue67.exit_crit_edge
loopentry.__skb_dequeue67.exit_crit_edge: ; preds = %loopentry
br label %__skb_dequeue67.exit
-
then.i: ; preds = %loopentry
br label %__skb_dequeue67.exit
-
__skb_dequeue67.exit: ; preds = %then.i, %loopentry.__skb_dequeue67.exit_crit_edge
- br bool false, label %then.0, label %__skb_dequeue67.exit.endif.0_crit_edge
-
+ br i1 false, label %then.0, label %__skb_dequeue67.exit.endif.0_crit_edge
__skb_dequeue67.exit.endif.0_crit_edge: ; preds = %__skb_dequeue67.exit
br label %endif.0
-
then.0: ; preds = %__skb_dequeue67.exit
br label %job_done
-
dead_block_after_goto: ; No predecessors!
unreachable
-
endif.0: ; preds = %__skb_dequeue67.exit.endif.0_crit_edge
- br bool false, label %then.0.i, label %endif.0.endif.0.i_crit_edge
-
+ br i1 false, label %then.0.i, label %endif.0.endif.0.i_crit_edge
endif.0.endif.0.i_crit_edge: ; preds = %endif.0
br label %endif.0.i
-
then.0.i: ; preds = %endif.0
br label %endif.0.i
-
endif.0.i: ; preds = %then.0.i, %endif.0.endif.0.i_crit_edge
- br bool false, label %then.i.i, label %endif.0.i.skb_bond.exit.i_crit_edge
-
+ br i1 false, label %then.i.i, label %endif.0.i.skb_bond.exit.i_crit_edge
endif.0.i.skb_bond.exit.i_crit_edge: ; preds = %endif.0.i
br label %skb_bond.exit.i
-
then.i.i: ; preds = %endif.0.i
br label %skb_bond.exit.i
-
skb_bond.exit.i: ; preds = %then.i.i, %endif.0.i.skb_bond.exit.i_crit_edge
br label %loopentry.0.i
-
loopentry.0.i: ; preds = %loopentry.0.i.backedge, %skb_bond.exit.i
- br bool false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge
-
+ br i1 false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge
loopentry.0.i.loopexit.0.i_crit_edge: ; preds = %loopentry.0.i
br label %loopexit.0.i
-
loopentry.0.i.no_exit.0.i_crit_edge: ; preds = %loopentry.0.i
br label %no_exit.0.i
-
no_exit.0.i: ; preds = %then.3.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.0.i_crit_edge
- br bool false, label %no_exit.0.i.shortcirc_done.0.i_crit_edge, label %shortcirc_next.0.i
-
+ br i1 false, label %no_exit.0.i.shortcirc_done.0.i_crit_edge, label %shortcirc_next.0.i
no_exit.0.i.shortcirc_done.0.i_crit_edge: ; preds = %no_exit.0.i
br label %shortcirc_done.0.i
-
shortcirc_next.0.i: ; preds = %no_exit.0.i
br label %shortcirc_done.0.i
-
shortcirc_done.0.i: ; preds = %shortcirc_next.0.i, %no_exit.0.i.shortcirc_done.0.i_crit_edge
- br bool false, label %then.1.i, label %endif.1.i
-
+ br i1 false, label %then.1.i, label %endif.1.i
then.1.i: ; preds = %shortcirc_done.0.i
- br bool false, label %then.2.i, label %then.1.i.endif.2.i_crit_edge
-
+ br i1 false, label %then.2.i, label %then.1.i.endif.2.i_crit_edge
then.1.i.endif.2.i_crit_edge: ; preds = %then.1.i
br label %endif.2.i
-
then.2.i: ; preds = %then.1.i
- br bool false, label %then.3.i, label %else.0.i
-
+ br i1 false, label %then.3.i, label %else.0.i
then.3.i: ; preds = %then.2.i
- br bool false, label %then.3.i.no_exit.0.i_crit_edge, label %then.3.i.loopexit.0.i_crit_edge
-
+ br i1 false, label %then.3.i.no_exit.0.i_crit_edge, label %then.3.i.loopexit.0.i_crit_edge
then.3.i.loopexit.0.i_crit_edge: ; preds = %then.3.i
br label %loopexit.0.i
-
then.3.i.no_exit.0.i_crit_edge: ; preds = %then.3.i
br label %no_exit.0.i
-
else.0.i: ; preds = %then.2.i
br label %endif.2.i
-
endif.3.i: ; No predecessors!
unreachable
-
endif.2.i: ; preds = %else.0.i, %then.1.i.endif.2.i_crit_edge
br label %loopentry.0.i.backedge
-
endif.1.i: ; preds = %shortcirc_done.0.i
br label %loopentry.0.i.backedge
-
loopentry.0.i.backedge: ; preds = %endif.1.i, %endif.2.i
br label %loopentry.0.i
-
loopexit.0.i: ; preds = %then.3.i.loopexit.0.i_crit_edge, %loopentry.0.i.loopexit.0.i_crit_edge
br label %loopentry.1.i
-
loopentry.1.i: ; preds = %loopentry.1.i.backedge, %loopexit.0.i
- br bool false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge
-
+ br i1 false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge
loopentry.1.i.loopexit.1.i_crit_edge: ; preds = %loopentry.1.i
br label %loopexit.1.i
-
loopentry.1.i.no_exit.1.i_crit_edge: ; preds = %loopentry.1.i
br label %no_exit.1.i
-
no_exit.1.i: ; preds = %then.6.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge
- br bool false, label %shortcirc_next.1.i, label %no_exit.1.i.shortcirc_done.1.i_crit_edge
-
+ br i1 false, label %shortcirc_next.1.i, label %no_exit.1.i.shortcirc_done.1.i_crit_edge
no_exit.1.i.shortcirc_done.1.i_crit_edge: ; preds = %no_exit.1.i
br label %shortcirc_done.1.i
-
shortcirc_next.1.i: ; preds = %no_exit.1.i
- br bool false, label %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge, label %shortcirc_next.2.i
-
+ br i1 false, label %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge, label %shortcirc_next.2.i
shortcirc_next.1.i.shortcirc_done.2.i_crit_edge: ; preds = %shortcirc_next.1.i
br label %shortcirc_done.2.i
-
shortcirc_next.2.i: ; preds = %shortcirc_next.1.i
br label %shortcirc_done.2.i
-
shortcirc_done.2.i: ; preds = %shortcirc_next.2.i, %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge
br label %shortcirc_done.1.i
-
shortcirc_done.1.i: ; preds = %shortcirc_done.2.i, %no_exit.1.i.shortcirc_done.1.i_crit_edge
- br bool false, label %then.4.i, label %endif.4.i
-
+ br i1 false, label %then.4.i, label %endif.4.i
then.4.i: ; preds = %shortcirc_done.1.i
- br bool false, label %then.5.i, label %then.4.i.endif.5.i_crit_edge
-
+ br i1 false, label %then.5.i, label %then.4.i.endif.5.i_crit_edge
then.4.i.endif.5.i_crit_edge: ; preds = %then.4.i
br label %endif.5.i
-
then.5.i: ; preds = %then.4.i
- br bool false, label %then.6.i, label %else.1.i
-
+ br i1 false, label %then.6.i, label %else.1.i
then.6.i: ; preds = %then.5.i
- br bool false, label %then.6.i.no_exit.1.i_crit_edge, label %then.6.i.loopexit.1.i_crit_edge
-
+ br i1 false, label %then.6.i.no_exit.1.i_crit_edge, label %then.6.i.loopexit.1.i_crit_edge
then.6.i.loopexit.1.i_crit_edge: ; preds = %then.6.i
br label %loopexit.1.i
-
then.6.i.no_exit.1.i_crit_edge: ; preds = %then.6.i
br label %no_exit.1.i
-
else.1.i: ; preds = %then.5.i
br label %endif.5.i
-
endif.6.i: ; No predecessors!
unreachable
-
endif.5.i: ; preds = %else.1.i, %then.4.i.endif.5.i_crit_edge
br label %loopentry.1.i.backedge
-
endif.4.i: ; preds = %shortcirc_done.1.i
br label %loopentry.1.i.backedge
-
loopentry.1.i.backedge: ; preds = %endif.4.i, %endif.5.i
br label %loopentry.1.i
-
loopexit.1.i: ; preds = %then.6.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge
- br bool false, label %then.7.i, label %else.2.i
-
+ br i1 false, label %then.7.i, label %else.2.i
then.7.i: ; preds = %loopexit.1.i
- br bool false, label %then.8.i, label %else.3.i
-
+ br i1 false, label %then.8.i, label %else.3.i
then.8.i: ; preds = %then.7.i
br label %netif_receive_skb.exit
-
else.3.i: ; preds = %then.7.i
br label %netif_receive_skb.exit
-
endif.8.i: ; No predecessors!
unreachable
-
else.2.i: ; preds = %loopexit.1.i
- br bool false, label %else.2.i.shortcirc_done.i.i_crit_edge, label %shortcirc_next.i.i
-
+ br i1 false, label %else.2.i.shortcirc_done.i.i_crit_edge, label %shortcirc_next.i.i
else.2.i.shortcirc_done.i.i_crit_edge: ; preds = %else.2.i
br label %shortcirc_done.i.i
-
shortcirc_next.i.i: ; preds = %else.2.i
br label %shortcirc_done.i.i
-
shortcirc_done.i.i: ; preds = %shortcirc_next.i.i, %else.2.i.shortcirc_done.i.i_crit_edge
- br bool false, label %then.i1.i, label %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
-
+ br i1 false, label %then.i1.i, label %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge: ; preds = %shortcirc_done.i.i
br label %kfree_skb65.exit.i
-
then.i1.i: ; preds = %shortcirc_done.i.i
br label %kfree_skb65.exit.i
-
kfree_skb65.exit.i: ; preds = %then.i1.i, %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
br label %netif_receive_skb.exit
-
netif_receive_skb.exit: ; preds = %kfree_skb65.exit.i, %else.3.i, %then.8.i
- br bool false, label %then.i1, label %netif_receive_skb.exit.dev_put69.exit_crit_edge
-
+ br i1 false, label %then.i1, label %netif_receive_skb.exit.dev_put69.exit_crit_edge
netif_receive_skb.exit.dev_put69.exit_crit_edge: ; preds = %netif_receive_skb.exit
br label %dev_put69.exit
-
then.i1: ; preds = %netif_receive_skb.exit
br label %dev_put69.exit
-
dev_put69.exit: ; preds = %then.i1, %netif_receive_skb.exit.dev_put69.exit_crit_edge
- %inc = add int 0, 1 ; <int> [#uses=1]
- br bool false, label %dev_put69.exit.shortcirc_done_crit_edge, label %shortcirc_next
-
+ %inc = add i32 0, 1 ; <i32> [#uses=1]
+ br i1 false, label %dev_put69.exit.shortcirc_done_crit_edge, label %shortcirc_next
dev_put69.exit.shortcirc_done_crit_edge: ; preds = %dev_put69.exit
br label %shortcirc_done
-
shortcirc_next: ; preds = %dev_put69.exit
br label %shortcirc_done
-
shortcirc_done: ; preds = %shortcirc_next, %dev_put69.exit.shortcirc_done_crit_edge
- br bool false, label %then.1, label %endif.1
-
+ br i1 false, label %then.1, label %endif.1
then.1: ; preds = %shortcirc_done
ret void
-
dead_block_after_break: ; No predecessors!
br label %loopentry.preheader
-
endif.1: ; preds = %shortcirc_done
br label %loopentry
-
loopexit: ; No predecessors!
unreachable
-
after_ret.0: ; No predecessors!
br label %job_done
-
job_done: ; preds = %after_ret.0, %then.0
br label %loopentry.i
-
loopentry.i: ; preds = %no_exit.i, %job_done
- br bool false, label %no_exit.i, label %clear_bit62.exit
-
+ br i1 false, label %no_exit.i, label %clear_bit62.exit
no_exit.i: ; preds = %loopentry.i
br label %loopentry.i
-
clear_bit62.exit: ; preds = %loopentry.i
- br bool false, label %then.2, label %endif.2
-
+ br i1 false, label %then.2, label %endif.2
then.2: ; preds = %clear_bit62.exit
ret void
-
endif.2: ; preds = %clear_bit62.exit
ret void
-
after_ret.1: ; No predecessors!
ret void
-
return: ; No predecessors!
unreachable
}
diff --git a/test/Transforms/LCSSA/basictest.ll b/test/Transforms/LCSSA/basictest.ll
index 4dc1f54cd7..090bde95d9 100644
--- a/test/Transforms/LCSSA/basictest.ll
+++ b/test/Transforms/LCSSA/basictest.ll
@@ -1,28 +1,24 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: grep {X3.lcssa = phi i32}
-; RUN: llvm-upgrade < %s | llvm-as | opt -lcssa | llvm-dis | \
+; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
; RUN: grep {X4 = add i32 3, %X3.lcssa}
-void %lcssa(bool %S2) {
+define void @lcssa(i1 %S2) {
entry:
br label %loop.interior
-
-loop.interior: ; preds = %entry
- br bool %S2, label %if.true, label %if.false
-
-if.true:
- %X1 = add int 0, 0
+loop.interior: ; preds = %post.if, %entry
+ br i1 %S2, label %if.true, label %if.false
+if.true: ; preds = %loop.interior
+ %X1 = add i32 0, 0 ; <i32> [#uses=1]
br label %post.if
-
-if.false:
- %X2 = add int 0, 1
+if.false: ; preds = %loop.interior
+ %X2 = add i32 0, 1 ; <i32> [#uses=1]
br label %post.if
-
-post.if:
- %X3 = phi int [%X1, %if.true], [%X2, %if.false]
- br bool %S2, label %loop.exit, label %loop.interior
-
-loop.exit:
- %X4 = add int 3, %X3
+post.if: ; preds = %if.false, %if.true
+ %X3 = phi i32 [ %X1, %if.true ], [ %X2, %if.false ] ; <i32> [#uses=1]
+ br i1 %S2, label %loop.exit, label %loop.interior
+loop.exit: ; preds = %post.if
+ %X4 = add i32 3, %X3 ; <i32> [#uses=0]
ret void
}
+
diff --git a/test/Transforms/LoopRotate/LRCrash-1.ll b/test/Transforms/LoopRotate/LRCrash-1.ll
index 014948234a..e6c7667d59 100644
--- a/test/Transforms/LoopRotate/LRCrash-1.ll
+++ b/test/Transforms/LoopRotate/LRCrash-1.ll
@@ -1,27 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-rotate -disable-output
-
+; RUN: llvm-as < %s | opt -loop-rotate -disable-output
%struct.relation = type { [4 x i16], i32, [4 x i16], i32, i32 }
-
-
-
-
-
-void @findAllPairs() {
+define void @findAllPairs() {
entry:
br i1 false, label %bb139, label %bb10.i44
-
bb10.i44: ; preds = %entry
ret void
-
bb127: ; preds = %bb139
br label %bb139
-
bb139: ; preds = %bb127, %entry
br i1 false, label %bb127, label %bb142
-
bb142: ; preds = %bb139
%r91.0.lcssa = phi %struct.relation* [ null, %bb139 ] ; <%struct.relation*> [#uses=0]
ret void
}
+
diff --git a/test/Transforms/LoopRotate/LRCrash-2.ll b/test/Transforms/LoopRotate/LRCrash-2.ll
index bceeb91b69..6dbe76df9e 100644
--- a/test/Transforms/LoopRotate/LRCrash-2.ll
+++ b/test/Transforms/LoopRotate/LRCrash-2.ll
@@ -1,30 +1,24 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-rotate -disable-output
+; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-void @findAllPairs() {
+define void @findAllPairs() {
entry:
br i1 false, label %bb139, label %cond_true
-
cond_true: ; preds = %entry
ret void
-
bb90: ; preds = %bb139
br i1 false, label %bb136, label %cond_next121
-
cond_next121: ; preds = %bb90
br i1 false, label %bb136, label %bb127
-
bb127: ; preds = %cond_next121
br label %bb136
-
bb136: ; preds = %bb127, %cond_next121, %bb90
%changes.1 = phi i32 [ %changes.2, %bb90 ], [ %changes.2, %cond_next121 ], [ 1, %bb127 ] ; <i32> [#uses=1]
br label %bb139
-
bb139: ; preds = %bb136, %entry
%changes.2 = phi i32 [ %changes.1, %bb136 ], [ 0, %entry ] ; <i32> [#uses=3]
br i1 false, label %bb90, label %bb142
-
bb142: ; preds = %bb139
%changes.2.lcssa = phi i32 [ %changes.2, %bb139 ] ; <i32> [#uses=0]
ret void
}
+
diff --git a/test/Transforms/LoopRotate/LRCrash-3.ll b/test/Transforms/LoopRotate/LRCrash-3.ll
index e92703500e..94991a55b8 100644
--- a/test/Transforms/LoopRotate/LRCrash-3.ll
+++ b/test/Transforms/LoopRotate/LRCrash-3.ll
@@ -1,41 +1,29 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-rotate -disable-output
+; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-
-
-void @_ZN9Classfile4readEv() {
+define void @_ZN9Classfile4readEv() {
entry:
br i1 false, label %cond_false485, label %bb405
-
bb405: ; preds = %entry
ret void
-
cond_false485: ; preds = %entry
br label %bb830
-
bb511: ; preds = %bb830
br i1 false, label %bb816, label %bb830
-
cond_next667: ; preds = %bb816
br i1 false, label %cond_next695, label %bb680
-
bb676: ; preds = %bb680
br label %bb680
-
bb680: ; preds = %bb676, %cond_next667
%iftmp.68.0 = zext i1 false to i8 ; <i8> [#uses=1]
br i1 false, label %bb676, label %cond_next695
-
cond_next695: ; preds = %bb680, %cond_next667
%iftmp.68.2 = phi i8 [ %iftmp.68.0, %bb680 ], [ undef, %cond_next667 ] ; <i8> [#uses=0]
ret void
-
bb816: ; preds = %bb816, %bb511
br i1 false, label %cond_next667, label %bb816
-
bb830: ; preds = %bb511, %cond_false485
br i1 false, label %bb511, label %bb835
-
bb835: ; preds = %bb830
ret void
}
+
diff --git a/test/Transforms/LoopRotate/LRCrash-4.ll b/test/Transforms/LoopRotate/LRCrash-4.ll
index 721132d8fb..ab43fc8892 100644
--- a/test/Transforms/LoopRotate/LRCrash-4.ll
+++ b/test/Transforms/LoopRotate/LRCrash-4.ll
@@ -1,20 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loop-rotate -disable-output
+; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-void @InterpretSEIMessage(i8* %msg) {
+define void @InterpretSEIMessage(i8* %msg) {
entry:
br label %bb15
-
bb6: ; preds = %bb15
- %tmp11 = getelementptr i8* %msg, i32 %offset.1 ; <i8*> [#uses=0]
+ %gep.upgrd.1 = zext i32 %offset.1 to i64 ; <i64> [#uses=1]
+ %tmp11 = getelementptr i8* %msg, i64 %gep.upgrd.1 ; <i8*> [#uses=0]
br label %bb15
-
bb15: ; preds = %bb6, %entry
%offset.1 = add i32 0, 1 ; <i32> [#uses=2]
br i1 false, label %bb6, label %bb17
-
bb17: ; preds = %bb15
%offset.1.lcssa = phi i32 [ %offset.1, %bb15 ] ; <i32> [#uses=0]
%payload_type.1.lcssa = phi i32 [ 0, %bb15 ] ; <i32> [#uses=0]
ret void
}
+
diff --git a/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll b/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
index 90de721fe0..70445fb8f8 100644
--- a/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
+++ b/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
@@ -1,25 +1,20 @@
; This testcase exposed a problem with the loop identification pass (LoopInfo).
; Basically, it was incorrectly calculating the loop nesting information.
;
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify
+; RUN: llvm-as < %s | opt -loopsimplify
-implementation ; Functions:
-
-int %yylex() { ; No predecessors!
+define i32 @yylex() {
br label %loopentry.0
-
-loopentry.0: ; preds = %0, %yy_find_action, %else.4
+loopentry.0: ; preds = %else.4, %0
br label %loopexit.2
-
-loopexit.2: ; preds = %loopentry.0, %else.4, %loopexit.2
- br bool false, label %loopexit.2, label %else.4
-
-yy_find_action: ; preds = %loopexit.2, %else.4
+loopexit.2: ; preds = %else.4, %loopexit.2, %loopentry.0
+ br i1 false, label %loopexit.2, label %else.4
+yy_find_action: ; preds = %else.4
br label %else.4
-
-else.4: ; preds = %yy_find_action
- switch uint 0, label %loopexit.2 [
- uint 2, label %yy_find_action
- uint 0, label %loopentry.0
+else.4: ; preds = %yy_find_action, %loopexit.2
+ switch i32 0, label %loopexit.2 [
+ i32 2, label %yy_find_action
+ i32 0, label %loopentry.0
]
}
+
diff --git a/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll b/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
index 0880da6f54..ba2eef7095 100644
--- a/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
+++ b/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
@@ -2,56 +2,41 @@
; inserted for the "fail" loop, but the exit block of a loop is not updated
; to be the preheader instead of the exit loop itself.
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify
-
-int %re_match_2() {
+; RUN: llvm-as < %s | opt -loopsimplify
+define i32 @re_match_2() {
br label %loopentry.1
-
-loopentry.1: ; preds = %then.6, %endif.7, %loopexit.20, %endif.83
+loopentry.1: ; preds = %endif.82, %0
br label %shortcirc_done.36
-
-shortcirc_done.36: ; preds = %label.13, %shortcirc_next.36
- br bool false, label %fail, label %endif.40
-
+shortcirc_done.36: ; preds = %loopentry.1
+ br i1 false, label %fail, label %endif.40
endif.40: ; preds = %shortcirc_done.36
br label %loopexit.20
-
-loopentry.20: ; preds = %shortcirc_done.40, %endif.46
+loopentry.20: ; preds = %endif.46
br label %loopexit.20
-
-loopexit.20: ; preds = %loopentry.20
+loopexit.20: ; preds = %loopentry.20, %endif.40
br label %loopentry.21
-
-loopentry.21: ; preds = %loopexit.20, %no_exit.19
- br bool false, label %no_exit.19, label %loopexit.21
-
+loopentry.21: ; preds = %no_exit.19, %loopexit.20
+ br i1 false, label %no_exit.19, label %loopexit.21
no_exit.19: ; preds = %loopentry.21
- br bool false, label %fail, label %loopentry.21
-
+ br i1 false, label %fail, label %loopentry.21
loopexit.21: ; preds = %loopentry.21
br label %endif.45
-
endif.45: ; preds = %loopexit.21
br label %cond_true.15
-
cond_true.15: ; preds = %endif.45
- br bool false, label %fail, label %endif.46
-
+ br i1 false, label %fail, label %endif.46
endif.46: ; preds = %cond_true.15
br label %loopentry.20
-
-fail: ; preds = %shortcirc_done.36, %loopexit.37, %cond_true.15, %no_exit.19
+fail: ; preds = %loopexit.37, %cond_true.15, %no_exit.19, %shortcirc_done.36
br label %then.80
-
then.80: ; preds = %fail
br label %endif.81
-
endif.81: ; preds = %then.80
br label %loopexit.37
-
loopexit.37: ; preds = %endif.81
- br bool false, label %fail, label %endif.82
-
+ br i1 false, label %fail, label %endif.82
endif.82: ; preds = %loopexit.37
br label %loopentry.1
}
+
+
diff --git a/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll b/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
index 59f49e3771..53fc59edfc 100644
--- a/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
+++ b/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
@@ -1,65 +1,52 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -tailduplicate -instcombine -simplifycfg -licm -disable-output
-
-target endian = little
-target pointersize = 32
-%yy_base = external global [787 x short] ; <[787 x short]*> [#uses=1]
-%yy_state_ptr = external global int* ; <int**> [#uses=3]
-%yy_state_buf = external global [16386 x int] ; <[16386 x int]*> [#uses=1]
-%yy_lp = external global int ; <int*> [#uses=1]
-
-implementation ; Functions:
-
-int %_yylex() { ; No predecessors!
+; RUN: llvm-as < %s | opt -tailduplicate -instcombine -simplifycfg -licm -disable-output
+target datalayout = "e-p:32:32"
+@yy_base = external global [787 x i16] ; <[787 x i16]*> [#uses=1]
+@yy_state_ptr = external global i32* ; <i32**> [#uses=3]
+@yy_state_buf = external global [16386 x i32] ; <[16386 x i32]*> [#uses=1]
+@yy_lp = external global i32 ; <i32*> [#uses=1]
+
+define i32 @_yylex() {
br label %loopentry.0
-
-loopentry.0: ; preds = %0, %else.26
- store int* getelementptr ([16386 x int]* %yy_state_buf, long 0, long 0), int** %yy_state_ptr
- %tmp.35 = load int** %yy_state_ptr ; <int*> [#uses=2]
- %inc.0 = getelementptr int* %tmp.35, long 1 ; <int*> [#uses=1]
- store int* %inc.0, int** %yy_state_ptr
- %tmp.36 = load int* null ; <int> [#uses=1]
- store int %tmp.36, int* %tmp.35
+loopentry.0: ; preds = %else.26, %0
+ store i32* getelementptr ([16386 x i32]* @yy_state_buf, i64 0, i64 0), i32** @yy_state_ptr
+ %tmp.35 = load i32** @yy_state_ptr ; <i32*> [#uses=2]
+ %inc.0 = getelementptr i32* %tmp.35, i64 1 ; <i32*> [#uses=1]
+ store i32* %inc.0, i32** @yy_state_ptr
+ %tmp.36 = load i32* null ; <i32> [#uses=1]
+ store i32 %tmp.36, i32* %tmp.35
br label %loopexit.2
-
-loopexit.2: ; preds = %loopentry.0, %else.26, %loopexit.2
- store sbyte* null, sbyte** null
- %tmp.91 = load int* null ; <int> [#uses=1]
- %tmp.92 = cast int %tmp.91 to long ; <long> [#uses=1]
- %tmp.93 = getelementptr [787 x short]* %yy_base, long 0, long %tmp.92 ; <short*> [#uses=1]
- %tmp.94 = load short* %tmp.93 ; <short> [#uses=1]
- %tmp.95 = setne short %tmp.94, 4394 ; <bool> [#uses=1]
- br bool %tmp.95, label %loopexit.2, label %yy_find_action
-
-yy_find_action: ; preds = %loopexit.2, %else.26
+loopexit.2: ; preds = %else.26, %loopexit.2, %loopentry.0
+ store i8* null, i8** null
+ %tmp.91 = load i32* null ; <i32> [#uses=1]
+ %tmp.92 = sext i32 %tmp.91 to i64 ; <i64> [#uses=1]
+ %tmp.93 = getelementptr [787 x i16]* @yy_base, i64 0, i64 %tmp.92 ; <i16*> [#uses=1]
+ %tmp.94 = load i16* %tmp.93 ; <i16> [#uses=1]
+ %tmp.95 = icmp ne i16 %tmp.94, 4394 ; <i1> [#uses=1]
+ br i1 %tmp.95, label %loopexit.2, label %yy_find_action
+yy_find_action: ; preds = %else.26, %loopexit.2
br label %loopentry.3
-
-loopentry.3: ; preds = %yy_find_action, %shortcirc_done.0, %then.9
- %tmp.105 = load int* %yy_lp ; <int> [#uses=1]
- %tmp.106 = setne int %tmp.105, 0 ; <bool> [#uses=1]
- br bool %tmp.106, label %shortcirc_next.0, label %shortcirc_done.0
-
+loopentry.3: ; preds = %then.9, %shortcirc_done.0, %yy_find_action
+ %tmp.105 = load i32* @yy_lp ; <i32> [#uses=1]
+ %tmp.106 = icmp ne i32 %tmp.105, 0 ; <i1> [#uses=1]
+ br i1 %tmp.106, label %shortcirc_next.0, label %shortcirc_done.0
shortcirc_next.0: ; preds = %loopentry.3
- %tmp.114 = load short* null ; <short> [#uses=1]
- %tmp.115 = cast short %tmp.114 to int ; <int> [#uses=1]
- %tmp.116 = setlt int 0, %tmp.115 ; <bool> [#uses=1]
+ %tmp.114 = load i16* null ; <i16> [#uses=1]
+ %tmp.115 = sext i16 %tmp.114 to i32 ; <i32> [#uses=1]
+ %tmp.116 = icmp slt i32 0, %tmp.115 ; <i1> [#uses=1]
br label %shortcirc_done.0
-
-shortcirc_done.0: ; preds = %loopentry.3, %shortcirc_next.0
- %shortcirc_val.0 = phi bool [ false, %loopentry.3 ], [ %tmp.116, %shortcirc_next.0 ] ; <bool> [#uses=1]
- br bool %shortcirc_val.0, label %else.0, label %loopentry.3
-
+shortcirc_done.0: ; preds = %shortcirc_next.0, %loopentry.3
+ %shortcirc_val.0 = phi i1 [ false, %loopentry.3 ], [ %tmp.116, %shortcirc_next.0 ] ; <i1> [#uses=1]
+ br i1 %shortcirc_val.0, label %else.0, label %loopentry.3
else.0: ; preds = %shortcirc_done.0
- %tmp.144 = load int* null ; <int> [#uses=1]
- %tmp.145 = and int %tmp.144, 8192 ; <int> [#uses=1]
- %tmp.146 = setne int %tmp.145, 0 ; <bool> [#uses=1]
- br bool %tmp.146, label %then.9, label %else.26
-
+ %tmp.144 = load i32* null ; <i32> [#uses=1]
+ %tmp.145 = and i32 %tmp.144, 8192 ; <i32> [#uses=1]
+ %tmp.146 = icmp ne i32 %tmp.145, 0 ; <i1> [#uses=1]
+ br i1 %tmp.146, label %then.9, label %else.26
then.9: ; preds = %else.0
br label %loopentry.3
-
-else.26: ; preds = %else.1
- switch uint 0, label %loopentry.0 [
- uint 2, label %yy_find_action
- uint 0, label %loopexit.2
+else.26: ; preds = %else.0
+ switch i32 0, label %loopentry.0 [
+ i32 2, label %yy_find_action
+ i32 0, label %loopexit.2
]
}
diff --git a/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll b/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
index e47112bb9b..bd39330cb4 100644
--- a/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
+++ b/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
@@ -4,39 +4,33 @@
;
; This is distilled from a monsterous crafty example.
-; RUN: llvm-upgrade < %s | llvm-as | opt -licm -disable-output
+; RUN: llvm-as < %s | opt -licm -disable-output
-%G = weak global int 0 ; <int*> [#uses=13]
-implementation ; Functions:
+@G = weak global i32 0 ; <i32*> [#uses=7]
-int %main() {
+define i32 @main() {
entry:
- store int 123, int* %G
+ store i32 123, i32* @G
br label %loopentry.i
-
-loopentry.i: ; preds = %entry, %endif.1.i
- %tmp.0.i = load int* %G ; <int> [#uses=1]
- %tmp.1.i = seteq int %tmp.0.i, 123 ; <bool> [#uses=1]
- br bool %tmp.1.i, label %Out.i, label %endif.0.i
-
+loopentry.i: ; preds = %endif.1.i, %entry
+ %tmp.0.i = load i32* @G ; <i32> [#uses=1]
+ %tmp.1.i = icmp eq i32 %tmp.0.i, 123 ; <i1> [#uses=1]
+ br i1 %tmp.1.i, label %Out.i, label %endif.0.i
endif.0.i: ; preds = %loopentry.i
- %tmp.3.i = load int* %G ; <int> [#uses=1]
- %tmp.4.i = seteq int %tmp.3.i, 126 ; <bool> [#uses=1]
- br bool %tmp.4.i, label %ExitBlock.i, label %endif.1.i
-
+ %tmp.3.i = load i32* @G ; <i32> [#uses=1]
+ %tmp.4.i = icmp eq i32 %tmp.3.i, 126 ; <i1> [#uses=1]
+ br i1 %tmp.4.i, label %ExitBlock.i, label %endif.1.i
endif.1.i: ; preds = %endif.0.i
- %tmp.6.i = load int* %G ; <int> [#uses=1]
- %inc.i = add int %tmp.6.i, 1 ; <int> [#uses=1]
- store int %inc.i, int* %G
+ %tmp.6.i = load i32* @G ; <i32> [#uses=1]
+ %inc.i = add i32 %tmp.6.i, 1 ; <i32> [#uses=1]
+ store i32 %inc.i, i32* @G
br label %loopentry.i
-
Out.i: ; preds = %loopentry.i
- store int 0, int* %G
+ store i32 0, i32* @G
br label %ExitBlock.i
-
-ExitBlock.i: ; preds = %endif.0.i, %Out.i
- %tmp.7.i = load int* %G ; <int> [#uses=1]
- ret int %tmp.7.i
+ExitBlock.i: ; preds = %Out.i, %endif.0.i
+ %tmp.7.i = load i32* @G ; <i32> [#uses=1]
+ ret i32 %tmp.7.i
}
diff --git a/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll b/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
index f25460e5d3..b8ced96f23 100644
--- a/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
+++ b/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
@@ -1,17 +1,14 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify -verify -licm -disable-output
-implementation ; Functions:
+; RUN: llvm-as < %s | opt -loopsimplify -verify -licm -disable-output
-void %.subst_48() {
+define void @.subst_48() {
entry:
br label %loopentry.0
-
-loopentry.0: ; preds = %entry, %loopentry.0
- br bool false, label %loopentry.0, label %loopentry.2
-
-loopentry.2: ; preds = %loopentry.0, %loopentry.2
- %tmp.968 = setle int 0, 3 ; <bool> [#uses=1]
- br bool %tmp.968, label %loopentry.2, label %UnifiedReturnBlock
-
-UnifiedReturnBlock: ; preds = %entry, %loopentry.2
- ret void
+loopentry.0: ; preds = %loopentry.0, %entry
+ br i1 false, label %loopentry.0, label %loopentry.2
+loopentry.2: ; preds = %loopentry.2, %loopentry.0
+ %tmp.968 = icmp sle i32 0, 3 ; <i1> [#uses=1]
+ br i1 %tmp.968, label %loopentry.2, label %UnifiedReturnBlock
+UnifiedReturnBlock: ; preds = %loopentry.2
+ ret void
}
+
diff --git a/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll b/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
index 607f1fea1f..439ea7e222 100644
--- a/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
+++ b/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
@@ -1,12 +1,11 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify -licm -disable-output
-void %main() {
+; RUN: llvm-as < %s | opt -loopsimplify -licm -disable-output
+define void @main() {
entry:
- br bool false, label %Out, label %loop
-
-loop:
- %LI = setgt int 0, 0
- br bool %LI, label %loop, label %Out
-
-Out:
+ br i1 false, label %Out, label %loop
+loop: ; preds = %loop, %entry
+ %LI = icmp sgt i32 0, 0 ; <i1> [#uses=1]
+ br i1 %LI, label %loop, label %Out
+Out: ; preds = %loop, %entry
ret void
}
+
diff --git a/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll b/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
index b98431357e..e75b214cb2 100644
--- a/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
+++ b/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
@@ -1,24 +1,20 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify -licm -disable-output
+; RUN: llvm-as < %s | opt -loopsimplify -licm -disable-output
; This is PR306
-void %NormalizeCoeffsVecFFE() {
+define void @NormalizeCoeffsVecFFE() {
entry:
- br label %loopentry.0
-
-loopentry.0: ; preds = %entry, %no_exit.0
- br bool false, label %loopentry.1, label %no_exit.0
-
-no_exit.0: ; preds = %loopentry.0
- br bool false, label %loopentry.0, label %loopentry.1
-
-loopentry.1: ; preds = %loopentry.0, %no_exit.0, %no_exit.1
- br bool false, label %no_exit.1, label %loopexit.1
-
-no_exit.1: ; preds = %loopentry.1
- %tmp.43 = seteq ushort 0, 0 ; <bool> [#uses=1]
- br bool %tmp.43, label %loopentry.1, label %loopexit.1
-
-loopexit.1: ; preds = %loopentry.1, %no_exit.1
- ret void
+ br label %loopentry.0
+loopentry.0: ; preds = %no_exit.0, %entry
+ br i1 false, label %loopentry.1, label %no_exit.0
+no_exit.0: ; preds = %loopentry.0
+ br i1 false, label %loopentry.0, label %loopentry.1
+loopentry.1: ; preds = %no_exit.1, %no_exit.0, %loopentry.0
+ br i1 false, label %no_exit.1, label %loopexit.1
+no_exit.1: ; preds = %loopentry.1
+ %tmp.43 = icmp eq i16 0, 0 ; <i1> [#uses=1]
+ br i1 %tmp.43, label %loopentry.1, label %loopexit.1
+loopexit.1: ; preds = %no_exit.1, %loopentry.1
+ ret void
}
+
diff --git a/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll b/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
index 12250b78eb..ae11d80d34 100644
--- a/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
+++ b/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
@@ -1,22 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify -disable-output
+; RUN: llvm-as < %s | opt -loopsimplify -disable-output
-implementation
-
-void %test() {
+define void @test() {
loopentry.0:
br label %loopentry.1
-
-loopentry.1:
- %pixel.4 = phi int [ 0, %loopentry.0 ], [ %pixel.4, %loopentry.1], [ %tmp.370, %then.6 ], [ %tmp.370, %then.6 ]
- br bool false, label %then.6, label %loopentry.1
-
-then.6:
- %tmp.370 = add int 0, 0 ; <int> [#uses=2]
- switch uint 0, label %label.7 [
- uint 6408, label %loopentry.1
- uint 32841, label %loopentry.1
+loopentry.1: ; preds = %then.6, %then.6, %loopentry.1, %loopentry.0
+ %pixel.4 = phi i32 [ 0, %loopentry.0 ], [ %pixel.4, %loopentry.1 ], [ %tmp.370, %then.6 ], [ %tmp.370, %then.6 ] ; <i32> [#uses=1]
+ br i1 false, label %then.6, label %loopentry.1
+then.6: ; preds = %loopentry.1
+ %tmp.370 = add i32 0, 0 ; <i32> [#uses=2]
+ switch i32 0, label %label.7 [
+ i32 6408, label %loopentry.1
+ i32 32841, label %loopentry.1
]
-
label.7: ; preds = %then.6
ret void
}
+
diff --git a/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll b/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
index 7f16400d44..427631c07f 100644
--- a/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
+++ b/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
@@ -1,22 +1,18 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -loopsimplify -licm -disable-output
+; RUN: llvm-as < %s | opt -scalarrepl -loopsimplify -licm -disable-output
-implementation ; Functions:
-
-void %inflate() {
+define void @inflate() {
entry:
br label %loopentry.0.outer1111
-
-loopentry.0.outer1111: ; preds = %entry, %loopentry.0.outer1111, %label.11, %then.41
- %left.0.ph1107 = phi uint [ %tmp.1172, %then.41 ], [ 0, %entry ], [ %tmp.1172, %label.11 ], [ %left.0.ph1107, %loopentry.0.outer1111 ] ; <uint> [#uses=2]
- %tmp.1172 = sub uint %left.0.ph1107, 0 ; <uint> [#uses=2]
- switch uint 0, label %label.11 [
- uint 23, label %loopentry.0.outer1111
- uint 13, label %then.41
+loopentry.0.outer1111: ; preds = %then.41, %label.11, %loopentry.0.outer1111, %entry
+ %left.0.ph1107 = phi i32 [ %tmp.1172, %then.41 ], [ 0, %entry ], [ %tmp.1172, %label.11 ], [ %left.0.ph1107, %loopentry.0.outer1111 ] ; <i32> [#uses=2]
+ %tmp.1172 = sub i32 %left.0.ph1107, 0 ; <i32> [#uses=2]
+ switch i32 0, label %label.11 [
+ i32 23, label %loopentry.0.outer1111
+ i32 13, label %then.41
]
-
label.11: ; preds = %loopentry.0.outer1111
br label %loopentry.0.outer1111
-
then.41: ; preds = %loopentry.0.outer1111
br label %loopentry.0.outer1111
}
+
diff --git a/test/Transforms/LoopSimplify/basictest.ll b/test/Transforms/LoopSimplify/basictest.ll
index 2b01b475fc..0388b0e9ea 100644
--- a/test/Transforms/LoopSimplify/basictest.ll
+++ b/test/Transforms/LoopSimplify/basictest.ll
@@ -1,17 +1,16 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify
-
-implementation
+; RUN: llvm-as < %s | opt -loopsimplify
; This function should get a preheader inserted before BB3, that is jumped
; to by BB1 & BB2
;
-void "test"()
-begin
- br bool true, label %BB1, label %BB2
-BB1: br label %BB3
-BB2: br label %BB3
-
-BB3:
+define void @test() {
+ br i1 true, label %BB1, label %BB2
+BB1: ; preds = %0
+ br label %BB3
+BB2: ; preds = %0
br label %BB3
-end
+BB3: ; preds = %BB3, %BB2, %BB1
+ br label %BB3
+}
+
diff --git a/test/Transforms/LoopSimplify/hardertest.ll b/test/Transforms/LoopSimplify/hardertest.ll
index a4465b75de..6ee0567dbc 100644
--- a/test/Transforms/LoopSimplify/hardertest.ll
+++ b/test/Transforms/LoopSimplify/hardertest.ll
@@ -1,17 +1,15 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify
+; RUN: llvm-as < %s | opt -loopsimplify
-void %foo(bool %C) {
- br bool %C, label %T, label %F
-T:
+define void @foo(i1 %C) {
+ br i1 %C, label %T, label %F
+T: ; preds = %0
br label %Loop
-F:
+F: ; preds = %0
br label %Loop
-
-Loop: ; Two backedges, two incoming edges.
- %Val = phi int [0, %T], [1, %F], [2, %Loop], [3, %L2]
-
- br bool %C, label %Loop, label %L2
-
-L2:
+Loop: ; preds = %L2, %Loop, %F, %T
+ %Val = phi i32 [ 0, %T ], [ 1, %F ], [ 2, %Loop ], [ 3, %L2 ] ; <i32> [#uses=0]
+ br i1 %C, label %Loop, label %L2
+L2: ; preds = %Loop
br label %Loop
}
+
diff --git a/test/Transforms/LoopSimplify/phi-node-simplify.ll b/test/Transforms/LoopSimplify/phi-node-simplify.ll
index 9427b7a2ed..a22fadb48a 100644
--- a/test/Transforms/LoopSimplify/phi-node-simplify.ll
+++ b/test/Transforms/LoopSimplify/phi-node-simplify.ll
@@ -1,59 +1,55 @@
; Loop Simplify should turn phi nodes like X = phi [X, Y] into just Y, eliminating them.
-; RUN: llvm-upgrade < %s | llvm-as | opt -loopsimplify | llvm-dis | grep phi | count 6
+; RUN: llvm-as < %s | opt -loopsimplify | llvm-dis | grep phi | count 6
-%A = weak global [3000000 x int] zeroinitializer ; <[3000000 x int]*> [#uses=1]
-%B = weak global [20000 x int] zeroinitializer ; <[20000 x int]*> [#uses=1]
-%C = weak global [100 x int] zeroinitializer ; <[100 x int]*> [#uses=1]
-%Z = weak global int 0 ; <int*> [#uses=2]
+@A = weak global [3000000 x i32] zeroinitializer ; <[3000000 x i32]*> [#uses=1]
+@B = weak global [20000 x i32] zeroinitializer ; <[20000 x i32]*> [#uses=1]
+@C = weak global [100 x i32] zeroinitializer ; <[100 x i32]*> [#uses=1]
+@Z = weak global i32 0 ; <i32*> [#uses=2]
-implementation ; Functions:
-
-int %main() {
+define i32 @main() {
entry:
- tail call void %__main( )
+ tail call void @__main( )
br label %loopentry.1
-
loopentry.1: ; preds = %loopexit.1, %entry
- %indvar20 = phi uint [ 0, %entry ], [ %indvar.next21, %loopexit.1 ] ; <uint> [#uses=1]
- %a.1 = phi int* [ getelementptr ([3000000 x int]* %A, int 0, int 0), %entry ], [ %inc.0, %loopexit.1 ] ; <int*> [#uses=1]
+ %indvar20 = phi i32 [ 0, %entry ], [ %indvar.next21, %loopexit.1 ] ; <i32> [#uses=1]
+ %a.1 = phi i32* [ getelementptr ([3000000 x i32]* @A, i32 0, i32 0), %entry ], [ %inc.0, %loopexit.1 ] ; <i32*> [#uses=1]
br label %no_exit.2
-
no_exit.2: ; preds = %loopexit.2, %no_exit.2, %loopentry.1
- %a.0.4.ph = phi int* [ %a.1, %loopentry.1 ], [ %inc.0, %loopexit.2 ], [ %a.0.4.ph, %no_exit.2 ] ; <int*> [#uses=3]
- %b.1.4.ph = phi int* [ getelementptr ([20000 x int]* %B, int 0, int 0), %loopentry.1 ], [ %inc.1, %loopexit.2 ], [ %b.1.4.ph, %no_exit.2 ] ; <int*> [#uses=3]
- %indvar17 = phi uint [ 0, %loopentry.1 ], [ %indvar.next18, %loopexit.2 ], [ %indvar17, %no_exit.2 ] ; <uint> [#uses=2]
- %indvar = phi uint [ %indvar.next, %no_exit.2 ], [ 0, %loopexit.2 ], [ 0, %loopentry.1 ] ; <uint> [#uses=5]
- %b.1.4.rec = cast uint %indvar to int ; <int> [#uses=1]
- %c.2.4 = getelementptr [100 x int]* %C, int 0, uint %indvar ; <int*> [#uses=1]
- %a.0.4 = getelementptr int* %a.0.4.ph, uint %indvar ; <int*> [#uses=1]
- %b.1.4 = getelementptr int* %b.1.4.ph, uint %indvar ; <int*> [#uses=1]
- %inc.0.rec = add int %b.1.4.rec, 1 ; <int> [#uses=2]
- %inc.0 = getelementptr int* %a.0.4.ph, int %inc.0.rec ; <int*> [#uses=2]
- %tmp.13 = load int* %a.0.4 ; <int> [#uses=1]
- %inc.1 = getelementptr int* %b.1.4.ph, int %inc.0.rec ; <int*> [#uses=1]
- %tmp.15 = load int* %b.1.4 ; <int> [#uses=1]
- %tmp.18 = load int* %c.2.4 ; <int> [#uses=1]
- %tmp.16 = mul int %tmp.15, %tmp.13 ; <int> [#uses=1]
- %tmp.19 = mul int %tmp.16, %tmp.18 ; <int> [#uses=1]
- %tmp.20 = load int* %Z ; <int> [#uses=1]
- %tmp.21 = add int %tmp.19, %tmp.20 ; <int> [#uses=1]
- store int %tmp.21, int* %Z
- %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
- %exitcond = seteq uint %indvar.next, 100 ; <bool> [#uses=1]
- br bool %exitcond, label %loopexit.2, label %no_exit.2
-
+ %a.0.4.ph = phi i32* [ %a.1, %loopentry.1 ], [ %inc.0, %loopexit.2 ], [ %a.0.4.ph, %no_exit.2 ] ; <i32*> [#uses=3]
+ %b.1.4.ph = phi i32* [ getelementptr ([20000 x i32]* @B, i32 0, i32 0), %loopentry.1 ], [ %inc.1, %loopexit.2 ], [ %b.1.4.ph, %no_exit.2 ] ; <i32*> [#uses=3]
+ %indvar17 = phi i32 [ 0, %loopentry.1 ], [ %indvar.next18, %loopexit.2 ], [ %indvar17, %no_exit.2 ] ; <i32> [#uses=2]
+ %indvar = phi i32 [ %indvar.next, %no_exit.2 ], [ 0, %loopexit.2 ], [ 0, %loopentry.1 ] ; <i32> [#uses=5]
+ %b.1.4.rec = bitcast i32 %indvar to i32 ; <i32> [#uses=1]
+ %gep.upgrd.1 = zext i32 %indvar to i64 ; <i64> [#uses=1]
+ %c.2.4 = getelementptr [100 x i32]* @C, i32 0, i64 %gep.upgrd.1 ; <i32*> [#uses=1]
+ %gep.upgrd.2 = zext i32 %indvar to i64 ; <i64> [#uses=1]
+ %a.0.4 = getelementptr i32* %a.0.4.ph, i64 %gep.upgrd.2 ; <i32*> [#uses=1]
+ %gep.upgrd.3 = zext i32 %indvar to i64 ; <i64> [#uses=1]
+ %b.1.4 = getelementptr i32* %b.1.4.ph, i64 %gep.upgrd.3 ; <i32*> [#uses=1]
+ %inc.0.rec = add i32 %b.1.4.rec, 1 ; <i32> [#uses=2]
+ %inc.0 = getelementptr i32* %a.0.4.ph, i32 %inc.0.rec ; <i32*> [#uses=2]
+ %tmp.13 = load i32* %a.0.4 ; <i32> [#uses=1]
+ %inc.1 = getelementptr i32* %b.1.4.ph, i32 %inc.0.rec ; <i32*> [#uses=1]
+ %tmp.15 = load i32* %b.1.4 ; <i32> [#uses=1]
+ %tmp.18 = load i32* %c.2.4 ; <i32> [#uses=1]
+ %tmp.16 = mul i32 %tmp.15, %tmp.13 ; <i32> [#uses=1]
+ %tmp.19 = mul i32 %tmp.16, %tmp.18 ; <i32> [#uses=1]
+ %tmp.20 = load i32* @Z ; <i32> [#uses=1]
+ %tmp.21 = add i32 %tmp.19, %tmp.20 ; <i32> [#uses=1]
+ store i32 %tmp.21, i32* @Z
+ %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=2]
+ %exitcond = icmp eq i32 %indvar.next, 100 ; <i1> [#uses=1]
+ br i1 %exitcond, label %loopexit.2, label %no_exit.2
loopexit.2: ; preds = %no_exit.2
- %indvar.next18 = add uint %indvar17, 1 ; <uint> [#uses=2]
- %exitcond19 = seteq uint %indvar.next18, 200 ; <bool> [#uses=1]
- br bool %exitcond19, label %loopexit.1, label %no_exit.2
-
+ %indvar.next18 = add i32 %indvar17, 1 ; <i32> [#uses=2]
+ %exitcond19 = icmp eq i32 %indvar.next18, 200 ; <i1> [#uses=1]
+ br i1 %exitcond19, label %loopexit.1, label %no_exit.2
loopexit.1: ; preds = %loopexit.2
- %indvar.next21 = add uint %indvar20, 1 ; <uint> [#uses=2]
- %exitcond22 = seteq uint %indvar.next21, 300 ; <bool> [#uses=1]
- br bool %exitcond22, label %return, label %loopentry.1
-
+ %indvar.next21 = add i32 %indvar20, 1 ; <i32> [#uses=2]
+ %exitcond22 = icmp eq i32 %indvar.next21, 300 ; <i1> [#uses=1]
+ br i1 %exitcond22, label %return, label %loopentry.1
return: ; preds = %loopexit.1
- ret int undef
+ ret i32 undef
}
-declare void %__main()
+declare void @__main()
diff --git a/test/Transforms/LoopSimplify/single-backedge.ll b/test/Transforms/LoopSimplify/single-backedge.ll
index 53a6ffbf98..0c09b9e51a 100644
--- a/test/Transforms/LoopSimplify/single-backedge.ll
+++ b/test/Transforms/LoopSimplify/single-backedge.ll
@@ -2,16 +2,18 @@
; for all loops. This allows the -indvars pass to recognize the %IV
; induction variable in this testcase.
-; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep indvar
+; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar
-int %test(bool %C) {
+define i32 @test(i1 %C) {
+; <label>:0
br label %Loop
-Loop:
- %IV = phi uint [1, %0], [%IV2, %BE1], [%IV2, %BE2]
- %IV2 = add uint %IV, 2
- br bool %C, label %BE1, label %BE2
-BE1:
+Loop: ; preds = %BE2, %BE1, %0
+ %IV = phi i32 [ 1, %0 ], [ %IV2, %BE1 ], [ %IV2, %BE2 ] ; <i32> [#uses=1]
+ %IV2 = add i32 %IV, 2 ; <i32> [#uses=2]
+ br i1 %C, label %BE1, label %BE2
+BE1: ; preds = %Loop
br label %Loop
-BE2:
+BE2: ; preds = %Loop
br label %Loop
}
+