diff options
author | Tanya Lattner <tonic@nondot.org> | 2008-03-01 09:15:35 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2008-03-01 09:15:35 +0000 |
commit | ec9a35a6f9143cfa325e0413cc297c48f627973a (patch) | |
tree | c1b0621415acc20f94152c51174d53fae3dbc8cc | |
parent | ab3b77834c9232e4c13acb29afe1920b97c5a20b (diff) | |
download | external_llvm-ec9a35a6f9143cfa325e0413cc297c48f627973a.zip external_llvm-ec9a35a6f9143cfa325e0413cc297c48f627973a.tar.gz external_llvm-ec9a35a6f9143cfa325e0413cc297c48f627973a.tar.bz2 |
Remove llvm-upgrade and update test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47793 91177308-0d34-0410-b5e6-96231b3b80d8
258 files changed, 7573 insertions, 7456 deletions
diff --git a/test/Transforms/ADCE/2002-05-22-PHITest.ll b/test/Transforms/ADCE/2002-05-22-PHITest.ll index cf9872e..04f0051 100644 --- a/test/Transforms/ADCE/2002-05-22-PHITest.ll +++ b/test/Transforms/ADCE/2002-05-22-PHITest.ll @@ -1,13 +1,16 @@ ; It is illegal to remove BB1 because it will mess up the PHI node! ; -; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | grep BB1 +; RUN: llvm-as < %s | opt -adce | llvm-dis | grep BB1 +define i32 @test(i1 %C, i32 %A, i32 %B) { +; <label>:0 + br i1 %C, label %BB1, label %BB2 -int "test"(bool %C, int %A, int %B) { - br bool %C, label %BB1, label %BB2 -BB1: - br label %BB2 -BB2: - %R = phi int [%A, %0], [%B, %BB1] - ret int %R +BB1: ; preds = %0 + br label %BB2 + +BB2: ; preds = %BB1, %0 + %R = phi i32 [ %A, %0 ], [ %B, %BB1 ] ; <i32> [#uses=1] + ret i32 %R } + diff --git a/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll b/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll index 999675b..911f8e6 100644 --- a/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll +++ b/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll @@ -4,30 +4,29 @@ ; removed even though there were uses still around. Now the uses are filled ; in with a dummy value before the PHI is deleted. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -%node_t = type { double*, %node_t*, %node_t**, double**, double*, int, int } + %node_t = type { double*, %node_t*, %node_t**, double**, double*, i32, i32 } -implementation ; Functions: +define void @localize_local(%node_t* %nodelist) { +bb0: + %nodelist.upgrd.1 = alloca %node_t* ; <%node_t**> [#uses=2] + store %node_t* %nodelist, %node_t** %nodelist.upgrd.1 + br label %bb1 -void %localize_local(%node_t* %nodelist) { -bb0: ;[#uses=0] - %nodelist = alloca %node_t* ; <%node_t**> [#uses=2] - store %node_t* %nodelist, %node_t** %nodelist - br label %bb1 +bb1: ; preds = %bb0 + %reg107 = load %node_t** %nodelist.upgrd.1 ; <%node_t*> [#uses=2] + %cond211 = icmp eq %node_t* %reg107, null ; <i1> [#uses=1] + br i1 %cond211, label %bb3, label %bb2 -bb1: ;[#uses=2] - %reg107 = load %node_t** %nodelist ; <%node_t*> [#uses=2] - %cond211 = seteq %node_t* %reg107, null ; <bool> [#uses=1] - br bool %cond211, label %bb3, label %bb2 +bb2: ; preds = %bb2, %bb1 + %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ] ; <%node_t*> [#uses=1] + %reg212 = getelementptr %node_t* %reg109, i64 0, i32 1 ; <%node_t**> [#uses=1] + %reg110 = load %node_t** %reg212 ; <%node_t*> [#uses=2] + %cond213 = icmp ne %node_t* %reg110, null ; <i1> [#uses=1] + br i1 %cond213, label %bb2, label %bb3 -bb2: ;[#uses=3] - %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ] ; <%node_t*> [#uses=1] - %reg212 = getelementptr %node_t* %reg109, long 0, uint 1 ; <%node_t**> [#uses=1] - %reg110 = load %node_t** %reg212 ; <%node_t*> [#uses=2] - %cond213 = setne %node_t* %reg110, null ; <bool> [#uses=1] - br bool %cond213, label %bb2, label %bb3 - -bb3: ;[#uses=2] - ret void +bb3: ; preds = %bb2, %bb1 + ret void } + diff --git a/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll b/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll index 0d5adf9..5d25ff1 100644 --- a/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll +++ b/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll @@ -1,17 +1,17 @@ ; This testcase is a distilled form of: 2002-05-28-Crash.ll -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -float "test"(int %i) { - %F = cast int %i to float ; This BB is not dead - %I = cast int %i to uint ; future dead inst - br label %Loop +define float @test(i32 %i) { + %F = sitofp i32 %i to float ; <float> [#uses=1] + %I = bitcast i32 %i to i32 ; <i32> [#uses=1] + br label %Loop -Loop: ; This block is dead - %B = cast uint %I to bool - br bool %B, label %Out, label %Loop +Loop: ; preds = %Loop, %0 + %B = icmp ne i32 %I, 0 ; <i1> [#uses=1] + br i1 %B, label %Out, label %Loop -Out: - ret float %F +Out: ; preds = %Loop + ret float %F } diff --git a/test/Transforms/ADCE/2002-05-28-Crash.ll b/test/Transforms/ADCE/2002-05-28-Crash.ll index b6340d5..27c7205 100644 --- a/test/Transforms/ADCE/2002-05-28-Crash.ll +++ b/test/Transforms/ADCE/2002-05-28-Crash.ll @@ -11,46 +11,44 @@ ; return !s; ;} ; -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -implementation ; Functions: +define i32 @rx_bitset_empty(i32 %size, i32* %set) { +bb1: + %reg110 = load i32* %set ; <i32> [#uses=2] + store i32 1, i32* %set + %cast112 = sext i32 %size to i64 ; <i64> [#uses=1] + %reg113 = add i64 %cast112, 31 ; <i64> [#uses=1] + %reg114 = lshr i64 %reg113, 5 ; <i64> [#uses=2] + %cast109 = trunc i64 %reg114 to i32 ; <i32> [#uses=1] + %reg129 = add i32 %cast109, -1 ; <i32> [#uses=1] + %reg114-idxcast = trunc i64 %reg114 to i32 ; <i32> [#uses=1] + %reg114-idxcast-offset = add i32 %reg114-idxcast, 1073741823 ; <i32> [#uses=1] + %reg114-idxcast-offset.upgrd.1 = zext i32 %reg114-idxcast-offset to i64 ; <i64> [#uses=1] + %reg124 = getelementptr i32* %set, i64 %reg114-idxcast-offset.upgrd.1 ; <i32*> [#uses=1] + %reg125 = load i32* %reg124 ; <i32> [#uses=1] + %cond232 = icmp ne i32 %reg125, 0 ; <i1> [#uses=1] + br i1 %cond232, label %bb3, label %bb2 -int %rx_bitset_empty(int %size, uint* %set) { -bb1: ;[#uses=2] - %reg110 = load uint* %set ; <uint> [#uses=2] - store uint 1, uint* %set - %cast112 = cast int %size to ulong ; <ulong> [#uses=1] - %reg113 = add ulong %cast112, 31 ; <ulong> [#uses=1] - %reg114 = shr ulong %reg113, ubyte 5 ; <ulong> [#uses=2] - %cast109 = cast ulong %reg114 to int ; <int> [#uses=1] - %reg129 = add int %cast109, -1 ; <int> [#uses=1] - %reg114-idxcast = cast ulong %reg114 to uint ; <uint> [#uses=1] - %reg114-idxcast-offset = add uint %reg114-idxcast, 1073741823 ; <uint> [#uses=1] - %reg114-idxcast-offset = cast uint %reg114-idxcast-offset to long - %reg124 = getelementptr uint* %set, long %reg114-idxcast-offset ; <uint*> [#uses=1] - %reg125 = load uint* %reg124 ; <uint> [#uses=1] - %cond232 = setne uint %reg125, 0 ; <bool> [#uses=1] - br bool %cond232, label %bb3, label %bb2 - -bb2: ;[#uses=3] - %cann-indvar = phi int [ 0, %bb1 ], [ %add1-indvar, %bb2 ] ; <int> [#uses=2] - %reg130-scale = mul int %cann-indvar, -1 ; <int> [#uses=1] - %reg130 = add int %reg130-scale, %reg129 ; <int> [#uses=1] - %add1-indvar = add int %cann-indvar, 1 ; <int> [#uses=1] - %reg130-idxcast = cast int %reg130 to uint ; <uint> [#uses=1] - %reg130-idxcast-offset = add uint %reg130-idxcast, 1073741823 ; <uint> [#uses=1] - %reg130-idxcast-offset = cast uint %reg130-idxcast-offset to long - %reg118 = getelementptr uint* %set, long %reg130-idxcast-offset ; <uint*> [#uses=1] - %reg119 = load uint* %reg118 ; <uint> [#uses=1] - %cond233 = seteq uint %reg119, 0 ; <bool> [#uses=1] - br bool %cond233, label %bb2, label %bb3 - -bb3: ;[#uses=2] - store uint %reg110, uint* %set - %cast126 = cast uint %reg110 to ulong ; <ulong> [#uses=1] - %reg127 = add ulong %cast126, 18446744073709551615 ; <ulong> [#uses=1] - %reg128 = shr ulong %reg127, ubyte 63 ; <ulong> [#uses=1] - %cast120 = cast ulong %reg128 to int ; <int> [#uses=1] - ret int %cast120 +bb2: ; preds = %bb2, %bb1 + %cann-indvar = phi i32 [ 0, %bb1 ], [ %add1-indvar, %bb2 ] ; <i32> [#uses=2] + %reg130-scale = mul i32 %cann-indvar, -1 ; <i32> [#uses=1] + %reg130 = add i32 %reg130-scale, %reg129 ; <i32> [#uses=1] + %add1-indvar = add i32 %cann-indvar, 1 ; <i32> [#uses=1] + %reg130-idxcast = bitcast i32 %reg130 to i32 ; <i32> [#uses=1] + %reg130-idxcast-offset = add i32 %reg130-idxcast, 1073741823 ; <i32> [#uses=1] + %reg130-idxcast-offset.upgrd.2 = zext i32 %reg130-idxcast-offset to i64 ; <i64> [#uses=1] + %reg118 = getelementptr i32* %set, i64 %reg130-idxcast-offset.upgrd.2 ; <i32*> [#uses=1] + %reg119 = load i32* %reg118 ; <i32> [#uses=1] + %cond233 = icmp eq i32 %reg119, 0 ; <i1> [#uses=1] + br i1 %cond233, label %bb2, label %bb3 +bb3: ; preds = %bb2, %bb1 + store i32 %reg110, i32* %set + %cast126 = zext i32 %reg110 to i64 ; <i64> [#uses=1] + %reg127 = add i64 %cast126, -1 ; <i64> [#uses=1] + %reg128 = lshr i64 %reg127, 63 ; <i64> [#uses=1] + %cast120 = trunc i64 %reg128 to i32 ; <i32> [#uses=1] + ret i32 %cast120 } + diff --git a/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll b/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll index 61b1402..fb4fe4a 100644 --- a/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll +++ b/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll @@ -3,11 +3,11 @@ ; block in this function, it would work fine, but that would be the part we ; have to fix now, wouldn't it.... ; -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -void %foo(sbyte* %reg5481) { - %cast611 = cast sbyte* %reg5481 to sbyte** ; <sbyte**> [#uses=1] - %reg162 = load sbyte** %cast611 ; <sbyte*> [#uses=0] - cast sbyte*%reg162 to int - ret void +define void @foo(i8* %reg5481) { + %cast611 = bitcast i8* %reg5481 to i8** ; <i8**> [#uses=1] + %reg162 = load i8** %cast611 ; <i8*> [#uses=1] + ptrtoint i8* %reg162 to i32 ; <i32>:1 [#uses=0] + ret void } diff --git a/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll b/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll index 6d15fae..42a7e4d 100644 --- a/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll +++ b/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll @@ -1,49 +1,48 @@ ; This testcase was extracted from the gzip SPEC benchmark ; -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -%bk = external global uint ; <uint*> [#uses=2] -%hufts = external global uint ; <uint*> [#uses=1] +@bk = external global i32 ; <i32*> [#uses=2] +@hufts = external global i32 ; <i32*> [#uses=1] -implementation ; Functions: +define i32 @inflate() { +bb0: + br label %bb2 -int %inflate() { -bb0: ;[#uses=1] - br label %bb2 +bb2: ; preds = %bb6, %bb0 + %reg128 = phi i32 [ %reg130, %bb6 ], [ 0, %bb0 ] ; <i32> [#uses=2] + br i1 true, label %bb4, label %bb3 -bb2: ;[#uses=2] - %reg128 = phi uint [ %reg130, %bb6 ], [ 0, %bb0 ] ; <uint> [#uses=2] - br bool true, label %bb4, label %bb3 +bb3: ; preds = %bb2 + br label %UnifiedExitNode -bb3: ;[#uses=2] - br label %UnifiedExitNode +bb4: ; preds = %bb2 + %reg117 = load i32* @hufts ; <i32> [#uses=2] + %cond241 = icmp ule i32 %reg117, %reg128 ; <i1> [#uses=1] + br i1 %cond241, label %bb6, label %bb5 -bb4: ;[#uses=2] - %reg117 = load uint* %hufts ; <uint> [#uses=2] - %cond241 = setle uint %reg117, %reg128 ; <bool> [#uses=1] - br bool %cond241, label %bb6, label %bb5 +bb5: ; preds = %bb4 + br label %bb6 -bb5: ;[#uses=2] - br label %bb6 +bb6: ; preds = %bb5, %bb4 + %reg130 = phi i32 [ %reg117, %bb5 ], [ %reg128, %bb4 ] ; <i32> [#uses=1] + br i1 false, label %bb2, label %bb7 -bb6: ;[#uses=3] - %reg130 = phi uint [ %reg117, %bb5 ], [ %reg128, %bb4 ] ; <uint> [#uses=1] - br bool false, label %bb2, label %bb7 +bb7: ; preds = %bb6 + %reg126 = load i32* @bk ; <i32> [#uses=1] + %cond247 = icmp ule i32 %reg126, 7 ; <i1> [#uses=1] + br i1 %cond247, label %bb9, label %bb8 -bb7: ;[#uses=1] - %reg126 = load uint* %bk ; <uint> [#uses=1] - %cond247 = setle uint %reg126, 7 ; <bool> [#uses=1] - br bool %cond247, label %bb9, label %bb8 +bb8: ; preds = %bb8, %bb7 + %reg119 = load i32* @bk ; <i32> [#uses=1] + %cond256 = icmp ugt i32 %reg119, 7 ; <i1> [#uses=1] + br i1 %cond256, label %bb8, label %bb9 -bb8: ;[#uses=2] - %reg119 = load uint* %bk ; <uint> [#uses=1] - %cond256 = setgt uint %reg119, 7 ; <bool> [#uses=1] - br bool %cond256, label %bb8, label %bb9 +bb9: ; preds = %bb8, %bb7 + br label %UnifiedExitNode -bb9: ;[#uses=3] - br label %UnifiedExitNode - -UnifiedExitNode: ;[#uses=2] - %UnifiedRetVal = phi int [ 7, %bb3 ], [ 0, %bb9 ] ; <int> [#uses=1] - ret int %UnifiedRetVal +UnifiedExitNode: ; preds = %bb9, %bb3 + %UnifiedRetVal = phi i32 [ 7, %bb3 ], [ 0, %bb9 ] ; <i32> [#uses=1] + ret i32 %UnifiedRetVal } + diff --git a/test/Transforms/ADCE/2002-07-29-Segfault.ll b/test/Transforms/ADCE/2002-07-29-Segfault.ll index 0c0e2af..1c65b3b 100644 --- a/test/Transforms/ADCE/2002-07-29-Segfault.ll +++ b/test/Transforms/ADCE/2002-07-29-Segfault.ll @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -void "test"() -begin - br label %BB3 +define void @test() { + br label %BB3 + +BB3: ; preds = %BB3, %0 + br label %BB3 +} -BB3: - br label %BB3 -end diff --git a/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll b/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll index d8c6448..4ec9005 100644 --- a/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll +++ b/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll @@ -1,25 +1,25 @@ ; Testcase reduced from 197.parser by bugpoint -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -implementation ; Functions: +; RUN: llvm-as < %s | opt -adce -void %conjunction_prune() { -; <label>:0 ; No predecessors! - br label %bb19 +define void @conjunction_prune() { +; <label>:0 + br label %bb19 -bb19: ; preds = %bb22, %bb23, %0 - %reg205 = phi sbyte* [ null, %bb22 ], [ null, %bb23 ], [ null, %0 ] ; <sbyte*> [#uses=1] - br bool false, label %bb21, label %bb22 +bb19: ; preds = %bb23, %bb22, %0 + %reg205 = phi i8* [ null, %bb22 ], [ null, %bb23 ], [ null, %0 ] ; <i8*> [#uses=1] + br i1 false, label %bb21, label %bb22 -bb21: ; preds = %bb19 - %cast455 = cast sbyte* %reg205 to sbyte** ; <sbyte**> [#uses=0] - br label %bb22 +bb21: ; preds = %bb19 + %cast455 = bitcast i8* %reg205 to i8** ; <i8**> [#uses=0] + br label %bb22 -bb22: ; preds = %bb21, %bb19 - br bool false, label %bb19, label %bb23 +bb22: ; preds = %bb21, %bb19 + br i1 false, label %bb19, label %bb23 -bb23: ; preds = %bb22 - br bool false, label %bb19, label %bb28 +bb23: ; preds = %bb22 + br i1 false, label %bb19, label %bb28 -bb28: ; preds = %bb23 - ret void +bb28: ; preds = %bb23 + ret void } + diff --git a/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll b/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll index 92d7cad..603b14b 100644 --- a/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll +++ b/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll @@ -2,36 +2,34 @@ ; entries for it's postdominator. But I think this can only happen when the ; PHI node is dead, so we just avoid patching up dead PHI nodes. -; RUN: llvm-upgrade < %s | llvm-as | opt -adce +; RUN: llvm-as < %s | opt -adce -target endian = little -target pointersize = 32 +target datalayout = "e-p:32:32" -implementation ; Functions: +define void @dead_test8() { +entry: + br label %loopentry -void %dead_test8() { -entry: ; No predecessors! - br label %loopentry +loopentry: ; preds = %endif, %entry + %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ] ; <i32> [#uses=1] + br i1 false, label %no_exit, label %return -loopentry: ; preds = %entry, %endif - %k.1 = phi int [ %k.0, %endif ], [ 0, %entry ] ; <int> [#uses=1] - br bool false, label %no_exit, label %return +no_exit: ; preds = %loopentry + br i1 false, label %then, label %else -no_exit: ; preds = %loopentry - br bool false, label %then, label %else +then: ; preds = %no_exit + br label %endif -then: ; preds = %no_exit - br label %endif +else: ; preds = %no_exit + %dec = add i32 %k.1, -1 ; <i32> [#uses=1] + br label %endif -else: ; preds = %no_exit - %dec = add int %k.1, -1 ; <int> [#uses=1] - br label %endif +endif: ; preds = %else, %then + %k.0 = phi i32 [ %dec, %else ], [ 0, %then ] ; <i32> [#uses=1] + store i32 2, i32* null + br label %loopentry -endif: ; preds = %else, %then - %k.0 = phi int [ %dec, %else ], [ 0, %then ] ; <int> [#uses=1] - store int 2, int* null - br label %loopentry - -return: ; preds = %loopentry - ret void +return: ; preds = %loopentry + ret void } + diff --git a/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll b/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll index 590089d..a9657a7 100644 --- a/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll +++ b/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll @@ -1,28 +1,28 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output -%G = external global int* +; RUN: llvm-as < %s | opt -adce -disable-output -implementation ; Functions: +@G = external global i32* ; <i32**> [#uses=1] -declare void %Fn(int*) +declare void @Fn(i32*) -int %main(int %argc.1, sbyte** %argv.1) { -entry: ; No predecessors! - br label %endif.42 +define i32 @main(i32 %argc.1, i8** %argv.1) { +entry: + br label %endif.42 -endif.42: ; preds = %entry, %shortcirc_done.12, %then.66, %endif.42 - br bool false, label %endif.65, label %endif.42 - -then.66: ; preds = %shortcirc_done.12 - call void %Fn( int* %tmp.2846) - br label %endif.42 +endif.42: ; preds = %shortcirc_done.12, %then.66, %endif.42, %entry + br i1 false, label %endif.65, label %endif.42 -endif.65: ; preds = %endif.42 - %tmp.2846 = load int** %G - br bool false, label %shortcirc_next.12, label %shortcirc_done.12 +then.66: ; preds = %shortcirc_done.12 + call void @Fn( i32* %tmp.2846 ) + br label %endif.42 -shortcirc_next.12: ; preds = %endif.65 - br label %shortcirc_done.12 +endif.65: ; preds = %endif.42 + %tmp.2846 = load i32** @G ; <i32*> [#uses=1] + br i1 false, label %shortcirc_next.12, label %shortcirc_done.12 -shortcirc_done.12: ; preds = %endif.65, %shortcirc_next.12 - br bool false, label %then.66, label %endif.42 +shortcirc_next.12: ; preds = %endif.65 + br label %shortcirc_done.12 + +shortcirc_done.12: ; preds = %shortcirc_next.12, %endif.65 + br i1 false, label %then.66, label %endif.42 } + diff --git a/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll b/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll index 1a73019..e5dd0cc 100644 --- a/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll +++ b/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll @@ -1,94 +1,91 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output +target datalayout = "e-p:32:32" + %struct..CppObjTypeDesc = type { i32, i16, i16 } + %struct..TypeToken = type { i32, i16, i16 } -target endian = little -target pointersize = 32 - %struct..CppObjTypeDesc = type { uint, ushort, ushort } - %struct..TypeToken = type { uint, ushort, ushort } - -implementation ; Functions: - -uint %C_ReFaxToDb() { -entry: ; No predecessors! - br bool false, label %endif.0, label %then.0 +define i32 @C_ReFaxToDb() { +entry: + br i1 false, label %endif.0, label %then.0 then.0: ; preds = %entry - ret uint 0 + ret i32 0 endif.0: ; preds = %entry - br bool false, label %then.11, label %then.4 + br i1 false, label %then.11, label %then.4 then.4: ; preds = %endif.0 - ret uint 0 + ret i32 0 then.11: ; preds = %endif.0 - br bool false, label %loopentry.0, label %else.2 + br i1 false, label %loopentry.0, label %else.2 -loopentry.0: ; preds = %then.11, %endif.14, %loopentry.1 - br bool false, label %endif.14, label %loopexit.0 +loopentry.0: ; preds = %loopentry.1, %endif.14, %then.11 + br i1 false, label %endif.14, label %loopexit.0 endif.14: ; preds = %loopentry.0 - br bool false, label %loopentry.1, label %loopentry.0 + br i1 false, label %loopentry.1, label %loopentry.0 -loopentry.1: ; preds = %endif.14, %then.53, %then.53, %then.53, %then.53, %then.53 - %SubArrays.10 = phi uint* [ %SubArrays.8, %then.53 ] , [ null, %endif.14 ] ; <uint*> [#uses=3] - br bool false, label %no_exit.1, label %loopentry.0 +loopentry.1: ; preds = %then.53, %endif.14 + %SubArrays.10 = phi i32* [ %SubArrays.8, %then.53 ], [ null, %endif.14 ] ; <i32*> [#uses=3] + br i1 false, label %no_exit.1, label %loopentry.0 no_exit.1: ; preds = %loopentry.1 - switch uint 0, label %label.17 [ - uint 2, label %label.11 - uint 19, label %label.10 + switch i32 0, label %label.17 [ + i32 2, label %label.11 + i32 19, label %label.10 ] label.10: ; preds = %no_exit.1 - br bool false, label %then.43, label %endif.43 + br i1 false, label %then.43, label %endif.43 then.43: ; preds = %label.10 - br bool false, label %then.44, label %endif.44 + br i1 false, label %then.44, label %endif.44 then.44: ; preds = %then.43 - br bool false, label %shortcirc_next.4, label %endif.45 + br i1 false, label %shortcirc_next.4, label %endif.45 shortcirc_next.4: ; preds = %then.44 - br bool false, label %no_exit.2, label %loopexit.2 + br i1 false, label %no_exit.2, label %loopexit.2 no_exit.2: ; preds = %shortcirc_next.4 - %tmp.897 = getelementptr uint* %SubArrays.10, long 0 ; <uint*> [#uses=1] - %tmp.899 = load uint* %tmp.897 ; <uint> [#uses=1] - store uint %tmp.899, uint* null - ret uint 0 + %tmp.897 = getelementptr i32* %SubArrays.10, i64 0 ; <i32*> [#uses=1] + %tmp.899 = load i32* %tmp.897 ; <i32> [#uses=1] + store i32 %tmp.899, i32* null + ret i32 0 loopexit.2: ; preds = %shortcirc_next.4 - ret uint 0 + ret i32 0 endif.45: ; preds = %then.44 - ret uint 0 + ret i32 0 endif.44: ; preds = %then.43 - ret uint 0 + ret i32 0 endif.43: ; preds = %label.10 - ret uint 0 + ret i32 0 label.11: ; preds = %no_exit.1 - ret uint 0 + ret i32 0 -label.17: ; preds = %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1 - br bool false, label %then.53, label %shortcirc_next.7 +label.17: ; preds = %no_exit.1 + br i1 false, label %then.53, label %shortcirc_next.7 shortcirc_next.7: ; preds = %label.17 - br bool false, label %then.53, label %shortcirc_next.8 + br i1 false, label %then.53, label %shortcirc_next.8 shortcirc_next.8: ; preds = %shortcirc_next.7 - ret uint 0 + ret i32 0 then.53: ; preds = %shortcirc_next.7, %label.17 - %SubArrays.8 = phi uint* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ] ; <uint*> [#uses=5] - %tmp.1023 = load uint* null ; <uint> [#uses=1] - switch uint %tmp.1023, label %loopentry.1 [] + %SubArrays.8 = phi i32* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ] ; <i32*> [#uses=1] + %tmp.1023 = load i32* null ; <i32> [#uses=1] + switch i32 %tmp.1023, label %loopentry.1 [ + ] loopexit.0: ; preds = %loopentry.0 - ret uint 0 + ret i32 0 else.2: ; preds = %then.11 - ret uint 0 + ret i32 0 } diff --git a/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll b/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll index ac62699..9c6764d 100644 --- a/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll +++ b/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll @@ -1,40 +1,41 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis | not grep then: - -void %dead_test8(int* %data.1, int %idx.1) { -entry: ; No predecessors! - %tmp.1 = load int* %data.1 ; <int> [#uses=2] - %tmp.41 = setgt int %tmp.1, 0 ; <bool> [#uses=1] - br bool %tmp.41, label %no_exit.preheader, label %return - -no_exit.preheader: ; preds = %entry - %tmp.11 = getelementptr int* %data.1, long 1 ; <int*> [#uses=1] - %tmp.22-idxcast = cast int %idx.1 to long ; <long> [#uses=1] - %tmp.28 = getelementptr int* %data.1, long %tmp.22-idxcast ; <int*> [#uses=1] - br label %no_exit - -no_exit: ; preds = %no_exit.preheader, %endif - %k.1 = phi int [ %k.0, %endif ], [ 0, %no_exit.preheader ] ; <int> [#uses=3] - %i.0 = phi int [ %inc.1, %endif ], [ 0, %no_exit.preheader ] ; <int> [#uses=1] - %tmp.12 = load int* %tmp.11 ; <int> [#uses=1] - %tmp.14 = sub int 0, %tmp.12 ; <int> [#uses=1] - %tmp.161 = setne int %k.1, %tmp.14 ; <bool> [#uses=1] - br bool %tmp.161, label %then, label %else - -then: ; preds = %no_exit - %inc.0 = add int %k.1, 1 ; <int> [#uses=1] - br label %endif - -else: ; preds = %no_exit - %dec = add int %k.1, -1 ; <int> [#uses=1] - br label %endif - -endif: ; preds = %else, %then - %k.0 = phi int [ %dec, %else ], [ %inc.0, %then ] ; <int> [#uses=1] - store int 2, int* %tmp.28 - %inc.1 = add int %i.0, 1 ; <int> [#uses=2] - %tmp.4 = setlt int %inc.1, %tmp.1 ; <bool> [#uses=1] - br bool %tmp.4, label %no_exit, label %return - -return: ; preds = %entry, %endif - ret void +; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | not grep then: + +define void @dead_test8(i32* %data.1, i32 %idx.1) { +entry: + %tmp.1 = load i32* %data.1 ; <i32> [#uses=2] + %tmp.41 = icmp sgt i32 %tmp.1, 0 ; <i1> [#uses=1] + br i1 %tmp.41, label %no_exit.preheader, label %return + +no_exit.preheader: ; preds = %entry + %tmp.11 = getelementptr i32* %data.1, i64 1 ; <i32*> [#uses=1] + %tmp.22-idxcast = sext i32 %idx.1 to i64 ; <i64> [#uses=1] + %tmp.28 = getelementptr i32* %data.1, i64 %tmp.22-idxcast ; <i32*> [#uses=1] + br label %no_exit + +no_exit: ; preds = %endif, %no_exit.preheader + %k.1 = phi i32 [ %k.0, %endif ], [ 0, %no_exit.preheader ] ; <i32> [#uses=3] + %i.0 = phi i32 [ %inc.1, %endif ], [ 0, %no_exit.preheader ] ; <i32> [#uses=1] + %tmp.12 = load i32* %tmp.11 ; <i32> [#uses=1] + %tmp.14 = sub i32 0, %tmp.12 ; <i32> [#uses=1] + %tmp.161 = icmp ne i32 %k.1, %tmp.14 ; <i1> [#uses=1] + br i1 %tmp.161, label %then, label %else + +then: ; preds = %no_exit + %inc.0 = add i32 %k.1, 1 ; <i32> [#uses=1] + br label %endif + +else: ; preds = %no_exit + %dec = add i32 %k.1, -1 ; <i32> [#uses=1] + br label %endif + +endif: ; preds = %else, %then + %k.0 = phi i32 [ %dec, %else ], [ %inc.0, %then ] ; <i32> [#uses=1] + store i32 2, i32* %tmp.28 + %inc.1 = add i32 %i.0, 1 ; <i32> [#uses=2] + %tmp.4 = icmp slt i32 %inc.1, %tmp.1 ; <i1> [#uses=1] + br i1 %tmp.4, label %no_exit, label %return + +return: ; preds = %endif, %entry + ret void } + diff --git a/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll b/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll index a88e041..e6345c1 100644 --- a/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll +++ b/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll @@ -1,20 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output -implementation ; Functions: +define void @test() { + br i1 false, label %then, label %endif -void %test() { - br bool false, label %then, label %endif +then: ; preds = %0 + invoke void null( i8* null ) + to label %invoke_cont unwind label %invoke_catch -then: - invoke void null( sbyte* null ) - to label %invoke_cont except label %invoke_catch +invoke_catch: ; preds = %then + unwind -invoke_catch: - unwind +invoke_cont: ; preds = %then + ret void -invoke_cont: - ret void - -endif: - ret void +endif: ; preds = %0 + ret void } + diff --git a/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll b/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll index c61bd6d..37e077f 100644 --- a/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll +++ b/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output -int %main() { - br label %loop +define i32 @main() { + br label %loop -loop: - br label %loop +loop: ; preds = %loop, %0 + br label %loop } + diff --git a/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll b/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll index cf7b088..6e9b17e 100644 --- a/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll +++ b/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll @@ -1,17 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis | grep call -declare void %exit(int) +; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | grep call +declare void @exit(i32) -int %main(int %argc) { - %C = seteq int %argc, 1 - br bool %C, label %Cond, label %Done +define i32 @main(i32 %argc) { + %C = icmp eq i32 %argc, 1 ; <i1> [#uses=2] + br i1 %C, label %Cond, label %Done -Cond: - br bool %C, label %Loop, label %Done +Cond: ; preds = %0 + br i1 %C, label %Loop, label %Done -Loop: - call void %exit(int 0) - br label %Loop +Loop: ; preds = %Loop, %Cond + call void @exit( i32 0 ) + br label %Loop -Done: - ret int 1 +Done: ; preds = %Cond, %0 + ret i32 1 } + diff --git a/test/Transforms/ADCE/2003-12-19-MergeReturn.llx b/test/Transforms/ADCE/2003-12-19-MergeReturn.llx index 6b8b547..b2c294b 100644 --- a/test/Transforms/ADCE/2003-12-19-MergeReturn.llx +++ b/test/Transforms/ADCE/2003-12-19-MergeReturn.llx @@ -1,28 +1,27 @@ ; This testcase was failing because without merging the return blocks, ADCE ; didn't know that it could get rid of the then.0 block. -; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | not grep load +; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load -implementation ; Functions: - -void %main(uint %argc, sbyte** %argv) { +define void @main(i32 %argc, i8** %argv) { entry: - call void %__main( ) - %tmp.1 = setle uint %argc, 5 ; <bool> [#uses=1] - br bool %tmp.1, label %then.0, label %return + call void @__main( ) + %tmp.1 = icmp ule i32 %argc, 5 ; <i1> [#uses=1] + br i1 %tmp.1, label %then.0, label %return -then.0: ; preds = %entry - %tmp.8 = load sbyte** %argv ; <sbyte*> [#uses=1] - %tmp.10 = load sbyte* %tmp.8 ; <sbyte> [#uses=1] - %tmp.11 = seteq sbyte %tmp.10, 98 ; <bool> [#uses=1] - br bool %tmp.11, label %then.1, label %return +then.0: ; preds = %entry + %tmp.8 = load i8** %argv ; <i8*> [#uses=1] + %tmp.10 = load i8* %tmp.8 ; <i8> [#uses=1] + %tmp.11 = icmp eq i8 %tmp.10, 98 ; <i1> [#uses=1] + br i1 %tmp.11, label %then.1, label %return -then.1: ; preds = %then.0 - ret void +then.1: ; preds = %then.0 + ret void -return: ; preds = %entry, %then.0 - ret void +return: ; preds = %then.0, %entry + ret void } -declare void %__main() +declare void @__main() + diff --git a/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx b/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx index 56f2b2b..87a1550 100644 --- a/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx +++ b/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx @@ -1,16 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output -void %test() { +define void @test() { entry: - br label %UnifiedReturnBlock + br label %UnifiedReturnBlock -UnifiedReturnBlock: - ret void +UnifiedReturnBlock: ; preds = %invoke_catch.0, %entry + ret void -invoke_catch.0: ; No predecessors! - br bool false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock - -UnifiedUnwindBlock: ; preds = %invoke_catch.0 - unwind +invoke_catch.0: ; No predecessors! + br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock +UnifiedUnwindBlock: ; preds = %invoke_catch.0 + unwind } + diff --git a/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll b/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll index b7965f0..8ddbbbe 100644 --- a/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll +++ b/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll @@ -1,44 +1,45 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output -implementation ; Functions: +declare void @strlen() -declare void %strlen() -declare void %_ZN10QByteArray6resizeEi() -declare void %q_atomic_decrement() +declare void @_ZN10QByteArray6resizeEi() -void %_ZNK10QByteArray13leftJustifiedEicb() { +declare void @q_atomic_decrement() + +define void @_ZNK10QByteArray13leftJustifiedEicb() { entry: - invoke void %strlen( ) - to label %tmp.3.i.noexc unwind label %invoke_catch.0 + invoke void @strlen( ) + to label %tmp.3.i.noexc unwind label %invoke_catch.0 -tmp.3.i.noexc: ; preds = %entry - br bool false, label %then.0, label %else.0 +tmp.3.i.noexc: ; preds = %entry + br i1 false, label %then.0, label %else.0 -invoke_catch.0: ; preds = %entry - invoke void %q_atomic_decrement( ) - to label %tmp.1.i.i183.noexc unwind label %terminate +invoke_catch.0: ; preds = %entry + invoke void @q_atomic_decrement( ) + to label %tmp.1.i.i183.noexc unwind label %terminate -tmp.1.i.i183.noexc: ; preds = %invoke_catch.0 - unwind +tmp.1.i.i183.noexc: ; preds = %invoke_catch.0 + unwind -then.0: ; preds = %tmp.3.i.noexc - invoke void %_ZN10QByteArray6resizeEi( ) - to label %invoke_cont.1 unwind label %invoke_catch.1 +then.0: ; preds = %tmp.3.i.noexc + invoke void @_ZN10QByteArray6resizeEi( ) + to label %invoke_cont.1 unwind label %invoke_catch.1 -invoke_catch.1: ; preds = %then.0 - invoke void %q_atomic_decrement( ) - to label %tmp.1.i.i162.noexc unwind label %terminate +invoke_catch.1: ; preds = %then.0 + invoke void @q_atomic_decrement( ) + to label %tmp.1.i.i162.noexc unwind label %terminate -tmp.1.i.i162.noexc: ; preds = %invoke_catch.1 - ret void +tmp.1.i.i162.noexc: ; preds = %invoke_catch.1 + ret void -invoke_cont.1: ; preds = %then.0 - ret void +invoke_cont.1: ; preds = %then.0 + ret void -else.0: ; preds = %tmp.3.i.noexc - ret void +else.0: ; preds = %tmp.3.i.noexc + ret void -terminate: ; preds = %invoke_catch.1, %invoke_catch.0 - %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=1] - unreachable +terminate: ; preds = %invoke_catch.1, %invoke_catch.0 + %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=0] + unreachable } + diff --git a/test/Transforms/ADCE/adcetest.ll b/test/Transforms/ADCE/adcetest.ll index f0d7843..cb14eea 100644 --- a/test/Transforms/ADCE/adcetest.ll +++ b/test/Transforms/ADCE/adcetest.ll @@ -1,34 +1,36 @@ ; This is the test case taken from Appel's book that illustrates a hard case ; that SCCP gets right, and when followed by ADCE, is completely eliminated ; -; RUN: llvm-upgrade < %s | llvm-as | opt -sccp -adce -simplifycfg | llvm-dis | not grep br +; RUN: llvm-as < %s | opt -sccp -adce -simplifycfg | llvm-dis | not grep br -int "test function"(int %i0, int %j0) { +define i32 @"test function"(i32 %i0, i32 %j0) { BB1: - br label %BB2 -BB2: - %j2 = phi int [%j4, %BB7], [1, %BB1] - %k2 = phi int [%k4, %BB7], [0, %BB1] - %kcond = setlt int %k2, 100 - br bool %kcond, label %BB3, label %BB4 - -BB3: - %jcond = setlt int %j2, 20 - br bool %jcond, label %BB5, label %BB6 - -BB4: - ret int %j2 - -BB5: - %k3 = add int %k2, 1 - br label %BB7 - -BB6: - %k5 = add int %k2, 1 - br label %BB7 - -BB7: - %j4 = phi int [1, %BB5], [%k2, %BB6] - %k4 = phi int [%k3, %BB5], [%k5, %BB6] - br label %BB2 + br label %BB2 + +BB2: ; preds = %BB7, %BB1 + %j2 = phi i32 [ %j4, %BB7 ], [ 1, %BB1 ] ; <i32> [#uses=2] + %k2 = phi i32 [ %k4, %BB7 ], [ 0, %BB1 ] ; <i32> [#uses=4] + %kcond = icmp slt i32 %k2, 100 ; <i1> [#uses=1] + br i1 %kcond, label %BB3, label %BB4 + +BB3: ; preds = %BB2 + %jcond = icmp slt i32 %j2, 20 ; <i1> [#uses=1] + br i1 %jcond, label %BB5, label %BB6 + +BB4: ; preds = %BB2 + ret i32 %j2 + +BB5: ; preds = %BB3 + %k3 = add i32 %k2, 1 ; <i32> [#uses=1] + br label %BB7 + +BB6: ; preds = %BB3 + %k5 = add i32 %k2, 1 ; <i32> [#uses=1] + br label %BB7 + +BB7: ; preds = %BB6, %BB5 + %j4 = phi i32 [ 1, %BB5 ], [ %k2, %BB6 ] ; <i32> [#uses=1] + %k4 = phi i32 [ %k3, %BB5 ], [ %k5, %BB6 ] ; <i32> [#uses=1] + br label %BB2 } + diff --git a/test/Transforms/ADCE/basictest.ll b/test/Transforms/ADCE/basictest.ll index 6be744e..22ff0f7 100644 --- a/test/Transforms/ADCE/basictest.ll +++ b/test/Transforms/ADCE/basictest.ll @@ -1,14 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis +; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis -int "Test"(int %A, int %B) { +define i32 @Test(i32 %A, i32 %B) { BB1: - br label %BB4 -BB2: - br label %BB3 -BB3: - %ret = phi int [%X, %BB4], [%B, %BB2] - ret int %ret -BB4: - %X = phi int [%A, %BB1] - br label %BB3 + br label %BB4 + +BB2: ; No predecessors! + br label %BB3 + +BB3: ; preds = %BB4, %BB2 + %ret = phi i32 [ %X, %BB4 ], [ %B, %BB2 ] ; <i32> [#uses=1] + ret i32 %ret + +BB4: ; preds = %BB1 + %X = phi i32 [ %A, %BB1 ] ; <i32> [#uses=1] + br label %BB3 } + + diff --git a/test/Transforms/ADCE/basictest1.ll b/test/Transforms/ADCE/basictest1.ll index 7d511e8..29f40de 100644 --- a/test/Transforms/ADCE/basictest1.ll +++ b/test/Transforms/ADCE/basictest1.ll @@ -1,101 +1,97 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis - -%FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint } - %spec_fd_t = type { int, int, int, ubyte* } -%__iob = uninitialized global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1] -%dbglvl = global int 4 ; <int*> [#uses=3] -%spec_fd = uninitialized global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4] -%.LC9 = internal global [34 x sbyte] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x sbyte]*> [#uses=1] -%.LC10 = internal global [4 x sbyte] c"EOF\00" ; <[4 x sbyte]*> [#uses=1] -%.LC11 = internal global [4 x sbyte] c"%d\0A\00" ; <[4 x sbyte]*> [#uses=1] -%.LC12 = internal global [17 x sbyte] c"spec_getc: %d = \00" ; <[17 x sbyte]*> [#uses=1] +; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis +%FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 } + %spec_fd_t = type { i32, i32, i32, i8* } +@__iob = external global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1] +@dbglvl = global i32 4 ; <i32*> [#uses=3] +@spec_fd = external global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4] +@.LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x i8]*> [#uses=1] +@.LC10 = internal global [4 x i8] c"EOF\00" ; <[4 x i8]*> [#uses=1] +@.LC11 = internal global [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] +@.LC12 = internal global [17 x i8] c"spec_getc: %d = \00" ; <[17 x i8]*> [#uses=1] -implementation ; Functions: +declare i32 @fprintf(%FILE*, i8*, ...) -declare int "fprintf"(%FILE*, sbyte*, ...) +declare void @exit(i32) -declare void "exit"(int) +declare i32 @remove(i8*) -declare int "remove"(sbyte*) +declare i32 @fputc(i32, %FILE*) -declare int "fputc"(int, %FILE*) +declare i32 @fwrite(i8*, i32, i32, %FILE*) -declare uint "fwrite"(sbyte*, uint, uint, %FILE*) +declare void @perror(i8*) -declare void "perror"(sbyte*) +define i32 @spec_getc(i32 %fd) { + %reg109 = load i32* @dbglvl ; <i32> [#uses=1] + %cond266 = icmp sle i32 %reg109, 4 ; <i1> [#uses=1] + br i1 %cond266, label %bb3, label %bb2 -int "spec_getc"(int %fd) { -; <label>:0 ;[#uses=0] - %reg109 = load int* %dbglvl ; <int> [#uses=1] - %cond266 = setle int %reg109, 4 ; <bool> [#uses=1] - br bool %cond266, label %bb3, label %bb2 - -bb2: ;[#uses=1] - %cast273 = getelementptr [17 x sbyte]* %.LC12, long 0, long 0 ; <sbyte*> [#uses=0] +bb2: ; preds = %0 + %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb3 -bb3: ;[#uses=2] - %cond267 = setle int %fd, 3 ; <bool> [#uses=1] - br bool %cond267, label %bb5, label %bb4 +bb3: ; preds = %bb2, %0 + %cond267 = icmp sle i32 %fd, 3 ; <i1> [#uses=1] + br i1 %cond267, label %bb5, label %bb4 -bb4: ;[#uses=2] - %reg111 = getelementptr [20 x %FILE]* %__iob, long 0, long 1, uint 3 ; <ubyte*> [#uses=1] - %cast274 = getelementptr [34 x sbyte]* %.LC9, long 0, long 0 ; <sbyte*> [#uses=0] - %cast282 = cast ubyte* %reg111 to %FILE* ; <%FILE*> [#uses=0] - call void %exit( int 1 ) +bb4: ; preds = %bb3 + %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; <i8*> [#uses=1] + %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; <i8*> [#uses=0] + %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0] + call void @exit( i32 1 ) br label %UnifiedExitNode -bb5: ;[#uses=1] - %reg107-idxcast1 = cast int %fd to long ; <long> [#uses=2] - %reg107-idxcast2 = cast int %fd to long ; <long> [#uses=1] - %reg1311 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] - %idx1 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 ; <int> [#uses=3] - %reg1321 = load int* %idx1 - %idx2 = getelementptr %spec_fd_t* %reg1311, long 0, uint 1 ; <int> [#uses=1] - %reg1331 = load int* %idx2 - %cond270 = setlt int %reg1321, %reg1331 ; <bool> [#uses=1] - br bool %cond270, label %bb9, label %bb6 - -bb6: ;[#uses=1] - %reg134 = load int* %dbglvl ; <int> [#uses=1] - %cond271 = setle int %reg134, 4 ; <bool> [#uses=1] - br bool %cond271, label %bb8, label %bb7 - -bb7: ;[#uses=1] - %cast277 = getelementptr [4 x sbyte]* %.LC10, long 0, long 0 ; <sbyte*> [#uses=0] +bb5: ; preds = %bb3 + %reg107-idxcast1 = sext i32 %fd to i64 ; <i64> [#uses=2] + %reg107-idxcast2 = sext i32 %fd to i64 ; <i64> [#uses=1] + %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] + %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; <i32*> [#uses=1] + %reg1321 = load i32* %idx1 ; <i32> [#uses=3] + %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; <i32*> [#uses=1] + %reg1331 = load i32* %idx2 ; <i32> [#uses=1] + %cond270 = icmp slt i32 %reg1321, %reg1331 ; <i1> [#uses=1] + br i1 %cond270, label %bb9, label %bb6 + +bb6: ; preds = %bb5 + %reg134 = load i32* @dbglvl ; <i32> [#uses=1] + %cond271 = icmp sle i32 %reg134, 4 ; <i1> [#uses=1] + br i1 %cond271, label %bb8, label %bb7 + +bb7: ; preds = %bb6 + %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb8 -bb8: ;[#uses=3] +bb8: ; preds = %bb7, %bb6 br label %UnifiedExitNode -bb9: ;[#uses=1] - %reg107-idxcast3 = cast int %fd to long ; <long> [#uses=1] - %idx3 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast3, uint 3 ; <ubyte*> [#uses=1] - %reg1601 = load ubyte** %idx3 - %reg132-idxcast1 = cast int %reg1321 to long ; <long> [#uses=1] - %idx4 = getelementptr ubyte* %reg1601, long %reg132-idxcast1 ; <ubyte> [#uses=2] - %reg1621 = load ubyte* %idx4 - %cast108 = cast ubyte %reg1621 to long ; <long> [#uses=0] - %reg157 = add int %reg1321, 1 ; <int> [#uses=1] - %idx5 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 - store int %reg157, int* %idx5 - %reg163 = load int* %dbglvl ; <int> [#uses=1] - %cond272 = setle int %reg163, 4 ; <bool> [#uses=1] - br bool %cond272, label %bb11, label %bb10 - -bb10: ;[#uses=1] - %cast279 = getelementptr [4 x sbyte]* %.LC11, long 0, long 0 ; <sbyte*> [#uses=0] +bb9: ; preds = %bb5 + %reg107-idxcast3 = sext i32 %fd to i64 ; <i64> [#uses=1] + %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; <i8**> [#uses=1] + %reg1601 = load i8** %idx3 ; <i8*> [#uses=1] + %reg132-idxcast1 = sext i32 %reg1321 to i64 ; <i64> [#uses=1] + %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; <i8*> [#uses=1] + %reg1621 = load i8* %idx4 ; <i8> [#uses=2] + %cast108 = zext i8 %reg1621 to i64 ; <i64> [#uses=0] + %reg157 = add i32 %reg1321, 1 ; <i32> [#uses=1] + %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; <i32*> [#uses=1] + store i32 %reg157, i32* %idx5 + %reg163 = load i32* @dbglvl ; <i32> [#uses=1] + %cond272 = icmp sle i32 %reg163, 4 ; <i1> [#uses=1] + br i1 %cond272, label %bb11, label %bb10 + +bb10: ; preds = %bb9 + %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb11 -bb11: ;[#uses=3] - %cast291 = cast ubyte %reg1621 to int ; <int> [#uses=1] +bb11: ; preds = %bb10, %bb9 + %cast291 = zext i8 %reg1621 to i32 ; <i32> [#uses=1] br label %UnifiedExitNode -UnifiedExitNode: ;[#uses=3] - %UnifiedRetVal = phi int [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; <int> [#uses=1] - ret int %UnifiedRetVal +UnifiedExitNode: ; preds = %bb11, %bb8, %bb4 + %UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; <i32> [#uses=1] + ret i32 %UnifiedRetVal } -declare int "puts"(sbyte*) +declare i32 @puts(i8*) -declare int "printf"(sbyte*, ...) +declare i32 @printf(i8*, ...) diff --git a/test/Transforms/ADCE/basictest2.ll b/test/Transforms/ADCE/basictest2.ll index 75b1d95..120e233 100644 --- a/test/Transforms/ADCE/basictest2.ll +++ b/test/Transforms/ADCE/basictest2.ll @@ -1,102 +1,97 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis +; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis + %FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 } + %spec_fd_t = type { i32, i32, i32, i8* } +@__iob = external global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1] +@dbglvl = global i32 4 ; <i32*> [#uses=3] +@spec_fd = external global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4] +@.LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x i8]*> [#uses=1] +@.LC10 = internal global [4 x i8] c"EOF\00" ; <[4 x i8]*> [#uses=1] +@.LC11 = internal global [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] +@.LC12 = internal global [17 x i8] c"spec_getc: %d = \00" ; <[17 x i8]*> [#uses=1] -%FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint } - %spec_fd_t = type { int, int, int, ubyte* } -%__iob = uninitialized global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1] -%dbglvl = global int 4 ; <int*> [#uses=3] -%spec_fd = uninitialized global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4] -%.LC9 = internal global [34 x sbyte] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x sbyte]*> [#uses=1] -%.LC10 = internal global [4 x sbyte] c"EOF\00" ; <[4 x sbyte]*> [#uses=1] -%.LC11 = internal global [4 x sbyte] c"%d\0A\00" ; <[4 x sbyte]*> [#uses=1] -%.LC12 = internal global [17 x sbyte] c"spec_getc: %d = \00" ; <[17 x sbyte]*> [#uses=1] +declare i32 @fprintf(%FILE*, i8*, ...) -implementation ; Functions: +declare void @exit(i32) -declare int "fprintf"(%FILE*, sbyte*, ...) +declare i32 @remove(i8*) -declare void "exit"(int) +declare i32 @fputc(i32, %FILE*) -declare int "remove"(sbyte*) +declare i32 @fwrite(i8*, i32, i32, %FILE*) -declare int "fputc"(int, %FILE*) +declare void @perror(i8*) -declare uint "fwrite"(sbyte*, uint, uint, %FILE*) +define i32 @spec_getc(i32 %fd) { + %reg109 = load i32* @dbglvl ; <i32> [#uses=1] + %cond266 = icmp sle i32 %reg109, 4 ; <i1> [#uses=1] + br i1 %cond266, label %bb3, label %bb2 -declare void "perror"(sbyte*) - -int "spec_getc"(int %fd) { -; <label>:0 ;[#uses=0] - %reg109 = load int* %dbglvl ; <int> [#uses=1] - %cond266 = setle int %reg109, 4 ; <bool> [#uses=1] - br bool %cond266, label %bb3, label %bb2 - -bb2: ;[#uses=1] - %cast273 = getelementptr [17 x sbyte]* %.LC12, long 0, long 0 ; <sbyte*> [#uses=0] +bb2: ; preds = %0 + %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb3 -bb3: ;[#uses=2] - %cond267 = setle int %fd, 3 ; <bool> [#uses=1] -; br bool %cond267, label %bb5, label %bb4 +bb3: ; preds = %bb2, %0 + %cond267 = icmp sle i32 %fd, 3 ; <i1> [#uses=0] br label %bb5 -bb4: ;[#uses=2] - %reg111 = getelementptr [20 x %FILE]* %__iob, long 0, long 1, uint 3 ; <ubyte*> [#uses=1] - %cast274 = getelementptr [34 x sbyte]* %.LC9, long 0, long 0 ; <sbyte*> [#uses=0] - %cast282 = cast ubyte* %reg111 to %FILE* ; <%FILE*> [#uses=0] - call void %exit( int 1 ) +bb4: ; No predecessors! + %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; <i8*> [#uses=1] + %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; <i8*> [#uses=0] + %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0] + call void @exit( i32 1 ) br label %UnifiedExitNode -bb5: ;[#uses=1] - %reg107-idxcast1 = cast int %fd to long ; <long> [#uses=2] - %reg107-idxcast2 = cast int %fd to long ; <long> [#uses=1] - %reg1311 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] - %idx1 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 ; <int> [#uses=3] - %reg1321 = load int* %idx1 - %idx2 = getelementptr %spec_fd_t* %reg1311, long 0, uint 1 ; <int> [#uses=1] - %reg1331 = load int* %idx2 - %cond270 = setlt int %reg1321, %reg1331 ; <bool> [#uses=1] - br bool %cond270, label %bb9, label %bb6 - -bb6: ;[#uses=1] - %reg134 = load int* %dbglvl ; <int> [#uses=1] - %cond271 = setle int %reg134, 4 ; <bool> [#uses=1] - br bool %cond271, label %bb8, label %bb7 - -bb7: ;[#uses=1] - %cast277 = getelementptr [4 x sbyte]* %.LC10, long 0, long 0 ; <sbyte*> [#uses=0] +bb5: ; preds = %bb3 + %reg107-idxcast1 = sext i32 %fd to i64 ; <i64> [#uses=2] + %reg107-idxcast2 = sext i32 %fd to i64 ; <i64> [#uses=1] + %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] + %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; <i32*> [#uses=1] + %reg1321 = load i32* %idx1 ; <i32> [#uses=3] + %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; <i32*> [#uses=1] + %reg1331 = load i32* %idx2 ; <i32> [#uses=1] + %cond270 = icmp slt i32 %reg1321, %reg1331 ; <i1> [#uses=1] + br i1 %cond270, label %bb9, label %bb6 + +bb6: ; preds = %bb5 + %reg134 = load i32* @dbglvl ; <i32> [#uses=1] + %cond271 = icmp sle i32 %reg134, 4 ; <i1> [#uses=1] + br i1 %cond271, label %bb8, label %bb7 + +bb7: ; preds = %bb6 + %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb8 -bb8: ;[#uses=3] +bb8: ; preds = %bb7, %bb6 br label %UnifiedExitNode -bb9: ;[#uses=1] - %reg107-idxcast3 = cast int %fd to long ; <uint> [#uses=1] - %idx3 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast3, uint 3 ; <ubyte*> [#uses=1] - %reg1601 = load ubyte** %idx3 - %reg132-idxcast1 = cast int %reg1321 to long ; <long> [#uses=1] - %idx4 = getelementptr ubyte* %reg1601, long %reg132-idxcast1 ; <ubyte> [#uses=2] - %reg1621 = load ubyte* %idx4 - %cast108 = cast ubyte %reg1621 to long ; <long> [#uses=0] - %reg157 = add int %reg1321, 1 ; <int> [#uses=1] - %idx5 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 - store int %reg157, int* %idx5 - %reg163 = load int* %dbglvl ; <int> [#uses=1] - %cond272 = setle int %reg163, 4 ; <bool> [#uses=1] - br bool %cond272, label %bb11, label %bb10 - -bb10: ;[#uses=1] - %cast279 = getelementptr [4 x sbyte]* %.LC11, long 0, long 0 ; <sbyte*> [#uses=0] +bb9: ; preds = %bb5 + %reg107-idxcast3 = sext i32 %fd to i64 ; <i64> [#uses=1] + %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; <i8**> [#uses=1] + %reg1601 = load i8** %idx3 ; <i8*> [#uses=1] + %reg132-idxcast1 = sext i32 %reg1321 to i64 ; <i64> [#uses=1] + %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; <i8*> [#uses=1] + %reg1621 = load i8* %idx4 ; <i8> [#uses=2] + %cast108 = zext i8 %reg1621 to i64 ; <i64> [#uses=0] + %reg157 = add i32 %reg1321, 1 ; <i32> [#uses=1] + %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; <i32*> [#uses=1] + store i32 %reg157, i32* %idx5 + %reg163 = load i32* @dbglvl ; <i32> [#uses=1] + %cond272 = icmp sle i32 %reg163, 4 ; <i1> [#uses=1] + br i1 %cond272, label %bb11, label %bb10 + +bb10: ; preds = %bb9 + %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; <i8*> [#uses=0] br label %bb11 -bb11: ;[#uses=3] - %cast291 = cast ubyte %reg1621 to int ; <int> [#uses=1] +bb11: ; preds = %bb10, %bb9 + %cast291 = zext i8 %reg1621 to i32 ; <i32> [#uses=1] br label %UnifiedExitNode -UnifiedExitNode: ;[#uses=3] - %UnifiedRetVal = phi int [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; <int> [#uses=1] - ret int %UnifiedRetVal +UnifiedExitNode: ; preds = %bb11, %bb8, %bb4 + %UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; <i32> [#uses=1] + ret i32 %UnifiedRetVal } -declare int "puts"(sbyte*) +declare i32 @puts(i8*) -declare int "printf"(sbyte*, ...) +declare i32 @printf(i8*, ...) diff --git a/test/Transforms/ADCE/dead-phi-edge.ll b/test/Transforms/ADCE/dead-phi-edge.ll index a0c0705..8445601 100644 --- a/test/Transforms/ADCE/dead-phi-edge.ll +++ b/test/Transforms/ADCE/dead-phi-edge.ll @@ -1,15 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | not grep call +; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep call ; The call is not live just because the PHI uses the call retval! -int %test(int %X) { - br label %Done +define i32 @test(i32 %X) { +; <label>:0 + br label %Done -DeadBlock: - %Y = call int %test(int 0) - br label %Done +DeadBlock: ; No predecessors! + %Y = call i32 @test( i32 0 ) ; <i32> [#uses=1] + br label %Done -Done: - %Z = phi int [%X, %0], [%Y, %DeadBlock] - ret int %Z +Done: ; preds = %DeadBlock, %0 + %Z = phi i32 [ %X, %0 ], [ %Y, %DeadBlock ] ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/ADCE/unreachable-function.ll b/test/Transforms/ADCE/unreachable-function.ll index 0c10253..86c55f5 100644 --- a/test/Transforms/ADCE/unreachable-function.ll +++ b/test/Transforms/ADCE/unreachable-function.ll @@ -1,5 +1,5 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output +; RUN: llvm-as < %s | opt -adce -disable-output -void %test() { +define void @test() { unreachable } diff --git a/test/Transforms/ArgumentPromotion/aggregate-promote.ll b/test/Transforms/ArgumentPromotion/aggregate-promote.ll index 19cbb6d..a74813f 100644 --- a/test/Transforms/ArgumentPromotion/aggregate-promote.ll +++ b/test/Transforms/ArgumentPromotion/aggregate-promote.ll @@ -1,21 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -instcombine | not grep load +; RUN: llvm-as < %s | opt -argpromotion -instcombine | not grep load -%QuadTy = type {int, int, int, int} +%QuadTy = type { i32, i32, i32, i32 } +@G = constant %QuadTy { + i32 0, + i32 0, + i32 17, + i32 25 } ; <%QuadTy*> [#uses=1] -%G = constant %QuadTy {int 0, int 0, int 17, int 25 } - -implementation - -internal int %test(%QuadTy* %P) { - %A = getelementptr %QuadTy* %P, long 0, uint 3 - %B = getelementptr %QuadTy* %P, long 0, uint 2 - %a = load int* %A - %b = load int* %B - %V = add int %a, %b - ret int %V +define internal i32 @test(%QuadTy* %P) { + %A = getelementptr %QuadTy* %P, i64 0, i32 3 ; <i32*> [#uses=1] + %B = getelementptr %QuadTy* %P, i64 0, i32 2 ; <i32*> [#uses=1] + %a = load i32* %A ; <i32> [#uses=1] + %b = load i32* %B ; <i32> [#uses=1] + %V = add i32 %a, %b ; <i32> [#uses=1] + ret i32 %V } -int %caller() { - %V = call int %test(%QuadTy* %G) - ret int %V +define i32 @caller() { + %V = call i32 @test( %QuadTy* @G ) ; <i32> [#uses=1] + ret i32 %V } + diff --git a/test/Transforms/ArgumentPromotion/basictest.ll b/test/Transforms/ArgumentPromotion/basictest.ll index 4742027..99697f4 100644 --- a/test/Transforms/ArgumentPromotion/basictest.ll +++ b/test/Transforms/ArgumentPromotion/basictest.ll @@ -1,24 +1,22 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -mem2reg | llvm-dis | not grep alloca - -implementation - -internal int %test(int *%X, int* %Y) { - %A = load int* %X - %B = load int* %Y - %C = add int %A, %B - ret int %C +; RUN: llvm-as < %s | opt -argpromotion -mem2reg | llvm-dis | not grep alloca +define internal i32 @test(i32* %X, i32* %Y) { + %A = load i32* %X ; <i32> [#uses=1] + %B = load i32* %Y ; <i32> [#uses=1] + %C = add i32 %A, %B ; <i32> [#uses=1] + ret i32 %C } -internal int %caller(int* %B) { - %A = alloca int - store int 1, int* %A - %C = call int %test(int* %A, int* %B) - ret int %C +define internal i32 @caller(i32* %B) { + %A = alloca i32 ; <i32*> [#uses=2] + store i32 1, i32* %A + %C = call i32 @test( i32* %A, i32* %B ) ; <i32> [#uses=1] + ret i32 %C } -int %callercaller() { - %B = alloca int - store int 2, int* %B - %X = call int %caller(int* %B) - ret int %X +define i32 @callercaller() { + %B = alloca i32 ; <i32*> [#uses=2] + store i32 2, i32* %B + %X = call i32 @caller( i32* %B ) ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/ArgumentPromotion/chained.ll b/test/Transforms/ArgumentPromotion/chained.ll index d6055e2..de5f6e5 100644 --- a/test/Transforms/ArgumentPromotion/chained.ll +++ b/test/Transforms/ArgumentPromotion/chained.ll @@ -1,17 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -instcombine | llvm-dis | not grep load +; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load -%G1 = constant int 0 -%G2 = constant int* %G1 +@G1 = constant i32 0 ; <i32*> [#uses=1] +@G2 = constant i32* @G1 ; <i32**> [#uses=1] -implementation - -internal int %test(int **%X) { - %Y = load int** %X - %X = load int* %Y - ret int %X +define internal i32 @test(i32** %X) { + %Y = load i32** %X ; <i32*> [#uses=1] + %X.upgrd.1 = load i32* %Y ; <i32> [#uses=1] + ret i32 %X.upgrd.1 } -int %caller(int** %P) { - %X = call int %test(int** %G2) - ret int %X +define i32 @caller(i32** %P) { + %X = call i32 @test( i32** @G2 ) ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/ArgumentPromotion/control-flow.ll b/test/Transforms/ArgumentPromotion/control-flow.ll index 8e47ac9..bb72e08 100644 --- a/test/Transforms/ArgumentPromotion/control-flow.ll +++ b/test/Transforms/ArgumentPromotion/control-flow.ll @@ -1,19 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | \ +; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \ ; RUN: not grep {load int\* null} -implementation +define internal i32 @callee(i1 %C, i32* %P) { + br i1 %C, label %T, label %F -internal int %callee(bool %C, int* %P) { - br bool %C, label %T, label %F -T: - ret int 17 -F: - %X = load int* %P - ret int %X +T: ; preds = %0 + ret i32 17 + +F: ; preds = %0 + %X = load i32* %P ; <i32> [#uses=1] + ret i32 %X } -int %foo() { - %X = call int %callee(bool true, int* null) - ret int %X +define i32 @foo() { + %X = call i32 @callee( i1 true, i32* null ) ; <i32> [#uses=1] + ret i32 %X } diff --git a/test/Transforms/ArgumentPromotion/control-flow2.ll b/test/Transforms/ArgumentPromotion/control-flow2.ll index 93b02a7..5875013 100644 --- a/test/Transforms/ArgumentPromotion/control-flow2.ll +++ b/test/Transforms/ArgumentPromotion/control-flow2.ll @@ -1,21 +1,21 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | \ +; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \ ; RUN: grep {load i32\\* %A} -implementation +define internal i32 @callee(i1 %C, i32* %P) { + br i1 %C, label %T, label %F -internal int %callee(bool %C, int* %P) { - br bool %C, label %T, label %F -T: - ret int 17 -F: - %X = load int* %P - ret int %X +T: ; preds = %0 + ret i32 17 + +F: ; preds = %0 + %X = load i32* %P ; <i32> [#uses=1] + ret i32 %X } -int %foo() { - %A = alloca int - store int 17, int* %A - %X = call int %callee(bool false, int* %A) - ret int %X +define i32 @foo() { + %A = alloca i32 ; <i32*> [#uses=2] + store i32 17, i32* %A + %X = call i32 @callee( i1 false, i32* %A ) ; <i32> [#uses=1] + ret i32 %X } diff --git a/test/Transforms/BlockPlacement/basictest.ll b/test/Transforms/BlockPlacement/basictest.ll index 4dafa4f..c93d129 100644 --- a/test/Transforms/BlockPlacement/basictest.ll +++ b/test/Transforms/BlockPlacement/basictest.ll @@ -1,12 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -block-placement -disable-output -print +; RUN: llvm-as < %s | opt -block-placement -disable-output -print -int %test() { +define i32 @test() { + br i1 true, label %X, label %Y - br bool true, label %X, label %Y -A: - ret int 0 -X: - br label %A -Y: - br label %A +A: ; preds = %Y, %X + ret i32 0 + +X: ; preds = %0 + br label %A + +Y: ; preds = %0 + br label %A } + diff --git a/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll b/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll index 3100d64..aba3564 100644 --- a/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll +++ b/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll @@ -1,26 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output -void %solve() { +define void @solve() { entry: br label %loopentry.0 -loopentry.0: ; preds = %entry, %endif.0 - br bool false, label %no_exit.0, label %loopexit.0 +loopentry.0: ; preds = %endif.0, %entry + br i1 false, label %no_exit.0, label %loopexit.0 no_exit.0: ; preds = %loopentry.0 - br bool false, label %then.0, label %endif.0 + br i1 false, label %then.0, label %endif.0 then.0: ; preds = %no_exit.0 - br bool false, label %shortcirc_done, label %shortcirc_next + br i1 false, label %shortcirc_done, label %shortcirc_next shortcirc_next: ; preds = %then.0 br label %shortcirc_done -shortcirc_done: ; preds = %then.0, %shortcirc_next - br bool false, label %then.1, label %endif.1 +shortcirc_done: ; preds = %shortcirc_next, %then.0 + br i1 false, label %then.1, label %endif.1 then.1: ; preds = %shortcirc_done - br bool false, label %cond_true, label %cond_false + br i1 false, label %cond_true, label %cond_false cond_true: ; preds = %then.1 br label %cond_continue @@ -28,23 +28,23 @@ cond_true: ; preds = %then.1 cond_false: ; preds = %then.1 br label %cond_continue -cond_continue: ; preds = %cond_true, %cond_false +cond_continue: ; preds = %cond_false, %cond_true br label %return after_ret.0: ; No predecessors! br label %endif.1 -endif.1: ; preds = %shortcirc_done, %after_ret.0 +endif.1: ; preds = %after_ret.0, %shortcirc_done br label %endif.0 -endif.0: ; preds = %no_exit.0, %endif.1 +endif.0: ; preds = %endif.1, %no_exit.0 br label %loopentry.0 loopexit.0: ; preds = %loopentry.0 - br bool false, label %then.2, label %endif.2 + br i1 false, label %then.2, label %endif.2 then.2: ; preds = %loopexit.0 - br bool false, label %then.3, label %endif.3 + br i1 false, label %then.3, label %endif.3 then.3: ; preds = %then.2 br label %return @@ -52,14 +52,14 @@ then.3: ; preds = %then.2 after_ret.1: ; No predecessors! br label %endif.3 -endif.3: ; preds = %then.2, %after_ret.1 +endif.3: ; preds = %after_ret.1, %then.2 br label %endif.2 -endif.2: ; preds = %loopexit.0, %endif.3 +endif.2: ; preds = %endif.3, %loopexit.0 br label %loopentry.1 -loopentry.1: ; preds = %endif.2, %no_exit.1 - br bool false, label %no_exit.1, label %loopexit.1 +loopentry.1: ; preds = %no_exit.1, %endif.2 + br i1 false, label %no_exit.1, label %loopexit.1 no_exit.1: ; preds = %loopentry.1 br label %loopentry.1 @@ -70,6 +70,6 @@ loopexit.1: ; preds = %loopentry.1 after_ret.2: ; No predecessors! br label %return -return: ; preds = %cond_continue, %then.3, %loopexit.1, %after_ret.2 +return: ; preds = %after_ret.2, %loopexit.1, %then.3, %cond_continue ret void } diff --git a/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll b/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll index 186466d..a41430d 100644 --- a/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll +++ b/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll @@ -1,34 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output ; This testcase is failing the loop extractor because not all exit blocks ; are dominated by all of the live-outs. -implementation ; Functions: - -int %ab(int %alpha, int %beta) { +define i32 @ab(i32 %alpha, i32 %beta) { entry: - br label %loopentry.1.preheader + br label %loopentry.1.preheader -loopentry.1.preheader: ; preds = %then.1 - br label %loopentry.1 +loopentry.1.preheader: ; preds = %entry + br label %loopentry.1 -loopentry.1: ; preds = %loopentry.1.preheader, %no_exit.1 - br bool false, label %no_exit.1, label %loopexit.0.loopexit1 +loopentry.1: ; preds = %no_exit.1, %loopentry.1.preheader + br i1 false, label %no_exit.1, label %loopexit.0.loopexit1 -no_exit.1: ; preds = %loopentry.1 - %tmp.53 = load int* null ; <int> [#uses=1] - br bool false, label %shortcirc_next.2, label %loopentry.1 +no_exit.1: ; preds = %loopentry.1 + %tmp.53 = load i32* null ; <i32> [#uses=1] + br i1 false, label %shortcirc_next.2, label %loopentry.1 -shortcirc_next.2: ; preds = %no_exit.1 - %tmp.563 = call int %wins( int 0, int %tmp.53, int 3 ) ; <int> [#uses=0] - ret int 0 +shortcirc_next.2: ; preds = %no_exit.1 + %tmp.563 = call i32 @wins( i32 0, i32 %tmp.53, i32 3 ) ; <i32> [#uses=0] + ret i32 0 -loopexit.0.loopexit1: ; preds = %loopentry.1 - br label %loopexit.0 +loopexit.0.loopexit1: ; preds = %loopentry.1 + br label %loopexit.0 -loopexit.0: ; preds = %loopexit.0.loopexit, %loopexit.0.loopexit1 - ret int 0 +loopexit.0: ; preds = %loopexit.0.loopexit1 + ret i32 0 } -declare int %wins(int, int, int) +declare i32 @wins(i32, i32, i32) + +declare i16 @ab_code() -declare ushort %ab_code() diff --git a/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll b/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll index 3efcea5..ded821b 100644 --- a/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll +++ b/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll @@ -1,27 +1,28 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract-single -disable-output +; RUN: llvm-as < %s | opt -loop-extract-single -disable-output -void %ab() { +define void @ab() { entry: - br label %codeReplTail + br label %codeReplTail -then.1: ; preds = %codeReplTail - br label %loopentry.1 +then.1: ; preds = %codeReplTail + br label %loopentry.1 -loopentry.1: ; preds = %loopentry.1.preheader, %no_exit.1 - br bool false, label %no_exit.1, label %loopexit.0.loopexit1 +loopentry.1: ; preds = %no_exit.1, %then.1 + br i1 false, label %no_exit.1, label %loopexit.0.loopexit1 -no_exit.1: ; preds = %loopentry.1 - br label %loopentry.1 +no_exit.1: ; preds = %loopentry.1 + br label %loopentry.1 -loopexit.0.loopexit: ; preds = %codeReplTail - ret void +loopexit.0.loopexit: ; preds = %codeReplTail + ret void -loopexit.0.loopexit1: ; preds = %loopentry.1 - ret void +loopexit.0.loopexit1: ; preds = %loopentry.1 + ret void -codeReplTail: ; preds = %codeRepl, %codeReplTail - switch ushort 0, label %codeReplTail [ - ushort 0, label %loopexit.0.loopexit - ushort 1, label %then.1 - ] +codeReplTail: ; preds = %codeReplTail, %entry + switch i16 0, label %codeReplTail [ + i16 0, label %loopexit.0.loopexit + i16 1, label %then.1 + ] } + diff --git a/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll b/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll index 67756b5..e2030e2 100644 --- a/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll +++ b/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output -void %sendMTFValues() { +define void @sendMTFValues() { entry: - br bool false, label %then.1, label %endif.1 + br i1 false, label %then.1, label %endif.1 then.1: ; preds = %entry - br bool false, label %loopentry.6.preheader, label %else.0 + br i1 false, label %loopentry.6.preheader, label %else.0 endif.1: ; preds = %entry ret void @@ -14,34 +14,34 @@ else.0: ; preds = %then.1 ret void loopentry.6.preheader: ; preds = %then.1 - br bool false, label %endif.7.preheader, label %loopexit.9 + br i1 false, label %endif.7.preheader, label %loopexit.9 endif.7.preheader: ; preds = %loopentry.6.preheader - %tmp.183 = add int 0, -1 ; <int> [#uses=1] + %tmp.183 = add i32 0, -1 ; <i32> [#uses=1] br label %endif.7 -endif.7: ; preds = %endif.7.preheader, %loopexit.15 - br bool false, label %loopentry.10, label %loopentry.12 +endif.7: ; preds = %loopexit.15, %endif.7.preheader + br i1 false, label %loopentry.10, label %loopentry.12 loopentry.10: ; preds = %endif.7 br label %loopentry.12 -loopentry.12: ; preds = %endif.7, %loopentry.10 - %ge.2.1 = phi int [ 0, %loopentry.10 ], [ %tmp.183, %endif.7 ] ; <int> [#uses=0] - br bool false, label %loopexit.14, label %no_exit.11 +loopentry.12: ; preds = %loopentry.10, %endif.7 + %ge.2.1 = phi i32 [ 0, %loopentry.10 ], [ %tmp.183, %endif.7 ] ; <i32> [#uses=0] + br i1 false, label %loopexit.14, label %no_exit.11 no_exit.11: ; preds = %loopentry.12 ret void loopexit.14: ; preds = %loopentry.12 - br bool false, label %loopexit.15, label %no_exit.14 + br i1 false, label %loopexit.15, label %no_exit.14 no_exit.14: ; preds = %loopexit.14 ret void loopexit.15: ; preds = %loopexit.14 - br bool false, label %endif.7, label %loopexit.9 + br i1 false, label %endif.7, label %loopexit.9 -loopexit.9: ; preds = %loopentry.6.preheader, %loopexit.15 +loopexit.9: ; preds = %loopexit.15, %loopentry.6.preheader ret void } diff --git a/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll b/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll index 23ca986..9f4b273 100644 --- a/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll +++ b/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll @@ -1,21 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output - %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, int, int } - %struct.table_t = type { [1 x %struct.node_t**], [1 x %struct.node_t**] } +%struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 } +%struct.table_t = type { [1 x %struct.node_t**], [1 x %struct.node_t**] } -implementation ; Functions: - -void %make_tables() { +define void @make_tables() { entry: - %tmp.0.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=1] - br bool false, label %no_exit.i, label %loopexit.i + %tmp.0.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=1] + br i1 false, label %no_exit.i, label %loopexit.i -no_exit.i: ; preds = %entry, %no_exit.i - %prev_node.0.i.1 = phi %struct.node_t* [ %tmp.16.i, %no_exit.i ], [ %tmp.0.i, %entry ] ; <%struct.node_t*> [#uses=0] - %tmp.16.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=2] - br bool false, label %no_exit.i, label %loopexit.i +no_exit.i: ; preds = %no_exit.i, %entry + %prev_node.0.i.1 = phi %struct.node_t* [ %tmp.16.i, %no_exit.i ], [ %tmp.0.i, %entry ] ; <%struct.node_t*> [#uses=0] + %tmp.16.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=2] + br i1 false, label %no_exit.i, label %loopexit.i -loopexit.i: ; preds = %entry, %no_exit.i - %cur_node.0.i.0 = phi %struct.node_t* [ null, %entry ], [ %tmp.16.i, %no_exit.i ] ; <%struct.node_t*> [#uses=0] - ret void +loopexit.i: ; preds = %no_exit.i, %entry + %cur_node.0.i.0 = phi %struct.node_t* [ null, %entry ], [ %tmp.16.i, %no_exit.i ] ; <%struct.node_t*> [#uses=0] + ret void } + diff --git a/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll b/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll index 0ff3091..b1b0324 100644 --- a/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll +++ b/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll @@ -1,23 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output - -void %maketree() { +define void @maketree() { entry: - br bool false, label %no_exit.1, label %loopexit.0 + br i1 false, label %no_exit.1, label %loopexit.0 -no_exit.1: ; preds = %entry, %expandbox.entry, %endif - br bool false, label %endif, label %expandbox.entry +no_exit.1: ; preds = %endif, %expandbox.entry, %entry + br i1 false, label %endif, label %expandbox.entry -expandbox.entry: ; preds = %no_exit.1 - br bool false, label %loopexit.1, label %no_exit.1 +expandbox.entry: ; preds = %no_exit.1 + br i1 false, label %loopexit.1, label %no_exit.1 -endif: ; preds = %no_exit.1 - br bool false, label %loopexit.1, label %no_exit.1 +endif: ; preds = %no_exit.1 + br i1 false, label %loopexit.1, label %no_exit.1 -loopexit.1: ; preds = %expandbox.entry, %endif - %ic.i.0.0.4 = phi int [ 0, %expandbox.entry ], [ 0, %endif ] ; <int> [#uses=0] - ret void +loopexit.1: ; preds = %endif, %expandbox.entry + %ic.i.0.0.4 = phi i32 [ 0, %expandbox.entry ], [ 0, %endif ] ; <i32> [#uses=0] + ret void -loopexit.0: ; preds = %entry - ret void +loopexit.0: ; preds = %entry + ret void } + diff --git a/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll b/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll index 70d1e0a..48e5a76 100644 --- a/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll +++ b/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll @@ -1,97 +1,95 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output +; RUN: llvm-as < %s | opt -loop-extract -disable-output -implementation ; Functions: +declare i32 @_IO_getc() -declare int %_IO_getc() +declare void @__errno_location() -declare void %__errno_location() - -void %yylex() { +define void @yylex() { entry: - switch uint 0, label %label.126 [ - uint 0, label %return - uint 61, label %combine - uint 33, label %combine - uint 94, label %combine - uint 37, label %combine - uint 47, label %combine - uint 42, label %combine - uint 62, label %combine - uint 60, label %combine - uint 58, label %combine - uint 124, label %combine - uint 38, label %combine - uint 45, label %combine - uint 43, label %combine - uint 34, label %string_constant - uint 39, label %char_constant - uint 46, label %loopexit.2 - uint 57, label %loopexit.2 - uint 56, label %loopexit.2 - uint 55, label %loopexit.2 - uint 54, label %loopexit.2 - uint 53, label %loopexit.2 - uint 52, label %loopexit.2 - uint 51, label %loopexit.2 - uint 50, label %loopexit.2 - uint 49, label %loopexit.2 - uint 48, label %loopexit.2 - uint 95, label %letter - uint 122, label %letter - uint 121, label %letter - uint 120, label %letter - uint 119, label %letter - uint 118, label %letter - uint 117, label %letter - uint 116, label %letter - uint 115, label %letter - uint 114, label %letter - uint 113, label %letter - uint 112, label %letter - uint 111, label %letter - uint 110, label %letter - uint 109, label %letter - uint 108, label %letter - uint 107, label %letter - uint 106, label %letter - uint 105, label %letter - uint 104, label %letter - uint 103, label %letter - uint 102, label %letter - uint 101, label %letter - uint 100, label %letter - uint 99, label %letter - uint 98, label %letter - uint 97, label %letter - uint 90, label %letter - uint 89, label %letter - uint 88, label %letter - uint 87, label %letter - uint 86, label %letter - uint 85, label %letter - uint 84, label %letter - uint 83, label %letter - uint 82, label %letter - uint 81, label %letter - uint 80, label %letter - uint 79, label %letter - uint 78, label %letter - uint 77, label %letter - uint 75, label %letter - uint 74, label %letter - uint 73, label %letter - uint 72, label %letter - uint 71, label %letter - uint 70, label %letter - uint 69, label %letter - uint 68, label %letter - uint 67, label %letter - uint 66, label %letter - uint 65, label %letter - uint 64, label %label.13 - uint 76, label %label.12 - uint 36, label %label.11 - uint 4294967295, label %label.10 + switch i32 0, label %label.126 [ + i32 0, label %return + i32 61, label %combine + i32 33, label %combine + i32 94, label %combine + i32 37, label %combine + i32 47, label %combine + i32 42, label %combine + i32 62, label %combine + i32 60, label %combine + i32 58, label %combine + i32 124, label %combine + i32 38, label %combine + i32 45, label %combine + i32 43, label %combine + i32 34, label %string_constant + i32 39, label %char_constant + i32 46, label %loopexit.2 + i32 57, label %loopexit.2 + i32 56, label %loopexit.2 + i32 55, label %loopexit.2 + i32 54, label %loopexit.2 + i32 53, label %loopexit.2 + i32 52, label %loopexit.2 + i32 51, label %loopexit.2 + i32 50, label %loopexit.2 + i32 49, label %loopexit.2 + i32 48, label %loopexit.2 + i32 95, label %letter + i32 122, label %letter + i32 121, label %letter + i32 120, label %letter + i32 119, label %letter + i32 118, label %letter + i32 117, label %letter + i32 116, label %letter + i32 115, label %letter + i32 114, label %letter + i32 113, label %letter + i32 112, label %letter + i32 111, label %letter + i32 110, label %letter + i32 109, label %letter + i32 108, label %letter + i32 107, label %letter + i32 106, label %letter + i32 105, label %letter + i32 104, label %letter + i32 103, label %letter + i32 102, label %letter + i32 101, label %letter + i32 100, label %letter + i32 99, label %letter + i32 98, label %letter + i32 97, label %letter + i32 90, label %letter + i32 89, label %letter + i32 88, label %letter + i32 87, label %letter + i32 86, label %letter + i32 85, label %letter + i32 84, label %letter + i32 83, label %letter + i32 82, label %letter + i32 81, label %letter + i32 80, label %letter + i32 79, label %letter + i32 78, label %letter + i32 77, label %letter + i32 75, label %letter + i32 74, label %letter + i32 73, label %letter + i32 72, label %letter + i32 71, label %letter + i32 70, label %letter + i32 69, label %letter + i32 68, label %letter + i32 67, label %letter + i32 66, label %letter + i32 65, label %letter + i32 64, label %label.13 + i32 76, label %label.12 + i32 36, label %label.11 + i32 -1, label %label.10 ] label.10: ; preds = %entry @@ -110,15 +108,15 @@ letter: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entr ret void loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry - switch int 0, label %shortcirc_next.14 [ - int 48, label %then.20 - int 46, label %endif.38 + switch i32 0, label %shortcirc_next.14 [ + i32 48, label %then.20 + i32 46, label %endif.38 ] then.20: ; preds = %loopexit.2 - switch int 0, label %else.4 [ - int 120, label %then.21 - int 88, label %then.21 + switch i32 0, label %else.4 [ + i32 120, label %then.21 + i32 88, label %then.21 ] then.21: ; preds = %then.20, %then.20 @@ -131,23 +129,23 @@ shortcirc_next.14: ; preds = %loopexit.2 ret void endif.38: ; preds = %loopexit.2 - br bool false, label %then.40, label %then.39 + br i1 false, label %then.40, label %then.39 then.39: ; preds = %endif.38 ret void then.40: ; preds = %endif.38 - invoke void %__errno_location( ) + invoke void @__errno_location( ) to label %switchexit.2 unwind label %LongJmpBlkPre loopentry.6: ; preds = %endif.52 - switch uint 0, label %switchexit.2 [ - uint 73, label %label.82 - uint 105, label %label.82 - uint 76, label %label.80 - uint 108, label %label.80 - uint 70, label %label.78 - uint 102, label %label.78 + switch i32 0, label %switchexit.2 [ + i32 73, label %label.82 + i32 105, label %label.82 + i32 76, label %label.80 + i32 108, label %label.80 + i32 70, label %label.78 + i32 102, label %label.78 ] label.78: ; preds = %loopentry.6, %loopentry.6 @@ -157,21 +155,21 @@ label.80: ; preds = %loopentry.6, %loopentry.6 ret void label.82: ; preds = %loopentry.6, %loopentry.6 - %c.0.15.5 = phi int [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <int> [#uses=0] + %c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <i32> [#uses=0] ret void -switchexit.2: ; preds = %then.40, %loopentry.6 - br bool false, label %endif.51, label %loopexit.6 +switchexit.2: ; preds = %loopentry.6, %then.40 + br i1 false, label %endif.51, label %loopexit.6 endif.51: ; preds = %switchexit.2 - br bool false, label %endif.52, label %then.52 + br i1 false, label %endif.52, label %then.52 then.52: ; preds = %endif.51 ret void endif.52: ; preds = %endif.51 - %tmp.79417 = invoke int %_IO_getc( ) - to label %loopentry.6 unwind label %LongJmpBlkPre ; <int> [#uses=2] + %tmp.79417 = invoke i32 @_IO_getc( ) + to label %loopentry.6 unwind label %LongJmpBlkPre ; <i32> [#uses=2] loopexit.6: ; preds = %switchexit.2 ret void @@ -191,6 +189,6 @@ label.126: ; preds = %entry return: ; preds = %entry ret void -LongJmpBlkPre: ; preds = %then.40, %endif.52 +LongJmpBlkPre: ; preds = %endif.52, %then.40 ret void } diff --git a/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll b/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll index c9c23d4..0ab5498 100644 --- a/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll +++ b/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll @@ -1,27 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -extract-blocks -disable-output +; RUN: llvm-as < %s | opt -extract-blocks -disable-output -implementation - -void %test1() { +define void @test1() { no_exit.0.i: - br bool false, label %yylex.entry, label %yylex.entry + br i1 false, label %yylex.entry, label %yylex.entry -yylex.entry: - %tmp.1027 = phi int [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] - ret void +yylex.entry: ; preds = %no_exit.0.i, %no_exit.0.i + %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] ; <i32> [#uses=0] + ret void } -void %test2() { +define void @test2() { no_exit.0.i: - switch uint 0, label %yylex.entry [ - uint 0, label %yylex.entry - uint 1, label %foo + switch i32 0, label %yylex.entry [ + i32 0, label %yylex.entry + i32 1, label %foo ] -yylex.entry: - %tmp.1027 = phi int [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] +yylex.entry: ; preds = %no_exit.0.i, %no_exit.0.i + %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] ; <i32> [#uses=0] ret void -foo: + +foo: ; preds = %no_exit.0.i ret void } diff --git a/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll b/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll index 4ada2ae..8cd6094 100644 --- a/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll +++ b/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll @@ -1,10 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -extract-blocks -disable-output -int %foo() { - br label %EB -EB: - %V = invoke int %foo() to label %Cont unwind label %Unw -Cont: - ret int %V -Unw: - unwind +; RUN: llvm-as < %s | opt -extract-blocks -disable-output +define i32 @foo() { + br label %EB + +EB: ; preds = %0 + %V = invoke i32 @foo( ) + to label %Cont unwind label %Unw ; <i32> [#uses=1] + +Cont: ; preds = %EB + ret i32 %V + +Unw: ; preds = %EB + unwind } + diff --git a/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll b/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll index e029831..fa08379 100644 --- a/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll +++ b/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll @@ -1,20 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output +; RUN: llvm-as < %s | opt -condprop -disable-output ; PR877 - -target endian = big -target pointersize = 32 +target datalayout = "E-p:32:32" target triple = "powerpc-apple-darwin9.0.0d1" - "struct.kc::impl_Ccode_option" = type { "struct.kc::impl_abstract_phylum" } - "struct.kc::impl_ID" = type { "struct.kc::impl_abstract_phylum", "struct.kc::impl_Ccode_option"*, "struct.kc::impl_casestring__Str"*, int, "struct.kc::impl_casestring__Str"* } - "struct.kc::impl_abstract_phylum" = type { int (...)** } - "struct.kc::impl_casestring__Str" = type { "struct.kc::impl_abstract_phylum", sbyte* } - "struct.kc::impl_elem_patternrepresentation" = type { "struct.kc::impl_abstract_phylum", int, "struct.kc::impl_casestring__Str"*, "struct.kc::impl_ID"* } - "struct.kc::impl_outmostpatterns" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_elem_patternrepresentation"*, "struct.kc::impl_outmostpatterns"* } - "struct.kc::impl_patternrepresentations" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_outmostpatterns"*, "struct.kc::impl_patternrepresentations"* } - -implementation ; Functions: - -void %_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() { + %"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" } + %"struct.kc::impl_ID" = type { %"struct.kc::impl_abstract_phylum", %"struct.kc::impl_Ccode_option"*, %"struct.kc::impl_casestring__Str"*, i32, %"struct.kc::impl_casestring__Str"* } + %"struct.kc::impl_abstract_phylum" = type { i32 (...)** } + %"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", i8* } + %"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, %"struct.kc::impl_casestring__Str"*, %"struct.kc::impl_ID"* } + %"struct.kc::impl_outmostpatterns" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_elem_patternrepresentation"*, %"struct.kc::impl_outmostpatterns"* } + %"struct.kc::impl_patternrepresentations" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_outmostpatterns"*, %"struct.kc::impl_patternrepresentations"* } + +define void @_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() { entry: br label %bb1269.outer.outer.outer.outer @@ -22,55 +18,55 @@ cond_true: ; preds = %cond_true1298 br label %bb1269.outer69 cond_false: ; preds = %cond_true1298 - br bool false, label %cond_next, label %bb51 + br i1 false, label %cond_next, label %bb51 cond_next: ; preds = %cond_false - br bool false, label %bb52, label %bb51 + br i1 false, label %bb52, label %bb51 bb51: ; preds = %cond_next, %cond_false br label %bb52 bb52: ; preds = %bb51, %cond_next - br bool false, label %cond_false82, label %cond_true55 + br i1 false, label %cond_false82, label %cond_true55 cond_true55: ; preds = %bb52 - br bool false, label %UnifiedReturnBlock, label %cond_true57 + br i1 false, label %UnifiedReturnBlock, label %cond_true57 cond_true57: ; preds = %cond_true55 br label %UnifiedReturnBlock cond_false82: ; preds = %bb52 - br bool false, label %cond_next97, label %bb113 + br i1 false, label %cond_next97, label %bb113 cond_next97: ; preds = %cond_false82 - br bool false, label %bb114, label %bb113 + br i1 false, label %bb114, label %bb113 bb113: ; preds = %cond_next97, %cond_false82 br label %bb114 bb114: ; preds = %bb113, %cond_next97 - br bool false, label %cond_false151, label %cond_true117 + br i1 false, label %cond_false151, label %cond_true117 cond_true117: ; preds = %bb114 - br bool false, label %UnifiedReturnBlock, label %cond_true120 + br i1 false, label %UnifiedReturnBlock, label %cond_true120 cond_true120: ; preds = %cond_true117 br label %UnifiedReturnBlock cond_false151: ; preds = %bb114 - br bool false, label %cond_next166, label %bb182 + br i1 false, label %cond_next166, label %bb182 cond_next166: ; preds = %cond_false151 - br bool false, label %bb183, label %bb182 + br i1 false, label %bb183, label %bb182 bb182: ; preds = %cond_next166, %cond_false151 br label %bb183 bb183: ; preds = %bb182, %cond_next166 - br bool false, label %cond_false256, label %cond_true186 + br i1 false, label %cond_false256, label %cond_true186 cond_true186: ; preds = %bb183 - br bool false, label %cond_true207, label %cond_false214 + br i1 false, label %cond_true207, label %cond_false214 cond_true207: ; preds = %cond_true186 br label %bb1269.outer38.backedge @@ -79,7 +75,7 @@ bb1269.outer38.backedge: ; preds = %cond_true545, %cond_true432, %cond_true320, br label %bb1269.outer38 cond_false214: ; preds = %cond_true186 - br bool false, label %cond_true228, label %cond_false235 + br i1 false, label %cond_true228, label %cond_false235 cond_true228: ; preds = %cond_false214 br label %bb1269.outer21.backedge @@ -88,115 +84,115 @@ bb1269.outer21.backedge: ; preds = %cond_true566, %cond_true453, %cond_true341, br label %bb1269.outer21 cond_false235: ; preds = %cond_false214 - br bool false, label %UnifiedReturnBlock, label %cond_false250 + br i1 false, label %UnifiedReturnBlock, label %cond_false250 cond_false250: ; preds = %cond_false235 br label %UnifiedUnreachableBlock cond_false256: ; preds = %bb183 - br bool false, label %cond_next271, label %bb287 + br i1 false, label %cond_next271, label %bb287 cond_next271: ; preds = %cond_false256 - br bool false, label %bb288, label %bb287 + br i1 false, label %bb288, label %bb287 bb287: ; preds = %cond_next271, %cond_false256 br label %bb288 bb288: ; preds = %bb287, %cond_next271 - br bool false, label %cond_false369, label %cond_true291 + br i1 false, label %cond_false369, label %cond_true291 cond_true291: ; preds = %bb288 - br bool false, label %cond_true320, label %cond_false327 + br i1 false, label %cond_true320, label %cond_false327 cond_true320: ; preds = %cond_true291 br label %bb1269.outer38.backedge cond_false327: ; preds = %cond_true291 - br bool false, label %cond_true341, label %cond_false348 + br i1 false, label %cond_true341, label %cond_false348 cond_true341: ; preds = %cond_false327 br label %bb1269.outer21.backedge cond_false348: ; preds = %cond_false327 - br bool false, label %UnifiedReturnBlock, label %cond_false363 + br i1 false, label %UnifiedReturnBlock, label %cond_false363 cond_false363: ; preds = %cond_false348 br label %UnifiedUnreachableBlock cond_false369: ; preds = %bb288 - br bool false, label %cond_next384, label %bb400 + br i1 false, label %cond_next384, label %bb400 cond_next384: ; preds = %cond_false369 - br bool false, label %bb401, label %bb400 + br i1 false, label %bb401, label %bb400 bb400: ; preds = %cond_next384, %cond_false369 br label %bb401 bb401: ; preds = %bb400, %cond_next384 - br bool false, label %cond_false481, label %cond_true404 + br i1 false, label %cond_false481, label %cond_true404 cond_true404: ; preds = %bb401 - br bool false, label %cond_true432, label %cond_false439 + br i1 false, label %cond_true432, label %cond_false439 cond_true432: ; preds = %cond_true404 br label %bb1269.outer38.backedge cond_false439: ; preds = %cond_true404 - br bool false, label %cond_true453, label %cond_false460 + br i1 false, label %cond_true453, label %cond_false460 cond_true453: ; preds = %cond_false439 br label %bb1269.outer21.backedge cond_false460: ; preds = %cond_false439 - br bool false, label %UnifiedReturnBlock, label %cond_false475 + br i1 false, label %UnifiedReturnBlock, label %cond_false475 cond_false475: ; preds = %cond_false460 br label %UnifiedUnreachableBlock cond_false481: ; preds = %bb401 - br bool false, label %cond_next496, label %bb512 + br i1 false, label %cond_next496, label %bb512 cond_next496: ; preds = %cond_false481 - br bool false, label %bb513, label %bb512 + br i1 false, label %bb513, label %bb512 bb512: ; preds = %cond_next496, %cond_false481 br label %bb513 bb513: ; preds = %bb512, %cond_next496 - br bool false, label %cond_false594, label %cond_true516 + br i1 false, label %cond_false594, label %cond_true516 cond_true516: ; preds = %bb513 - br bool false, label %cond_true545, label %cond_false552 + br i1 false, label %cond_true545, label %cond_false552 cond_true545: ; preds = %cond_true516 br label %bb1269.outer38.backedge cond_false552: ; preds = %cond_true516 - br bool false, label %cond_true566, label %cond_false573 + br i1 false, label %cond_true566, label %cond_false573 cond_true566: ; preds = %cond_false552 br label %bb1269.outer21.backedge cond_false573: ; preds = %cond_false552 - br bool false, label %UnifiedReturnBlock, label %cond_false588 + br i1 false, label %UnifiedReturnBlock, label %cond_false588 cond_false588: ; preds = %cond_false573 br label %UnifiedUnreachableBlock cond_false594: ; preds = %bb513 - br bool false, label %cond_next609, label %bb625 + br i1 false, label %cond_next609, label %bb625 cond_next609: ; preds = %cond_false594 - br bool false, label %bb626, label %bb625 + br i1 false, label %bb626, label %bb625 bb625: ; preds = %cond_next609, %cond_false594 br label %bb626 bb626: ; preds = %bb625, %cond_next609 - br bool false, label %cond_false707, label %cond_true629 + br i1 false, label %cond_false707, label %cond_true629 cond_true629: ; preds = %bb626 - br bool false, label %cond_true658, label %cond_false665 + br i1 false, label %cond_true658, label %cond_false665 cond_true658: ; preds = %cond_true629 br label %bb1269.outer2.backedge @@ -205,31 +201,31 @@ bb1269.outer2.backedge: ; preds = %cond_true679, %cond_true658 br label %bb1269.outer2 cond_false665: ; preds = %cond_true629 - br bool false, label %cond_true679, label %cond_false686 + br i1 false, label %cond_true679, label %cond_false686 cond_true679: ; preds = %cond_false665 br label %bb1269.outer2.backedge cond_false686: ; preds = %cond_false665 - br bool false, label %UnifiedReturnBlock, label %cond_false701 + br i1 false, label %UnifiedReturnBlock, label %cond_false701 cond_false701: ; preds = %cond_false686 br label %UnifiedUnreachableBlock cond_false707: ; preds = %bb626 - br bool false, label %cond_next722, label %bb738 + br i1 false, label %cond_next722, label %bb738 cond_next722: ; preds = %cond_false707 - br bool false, label %bb739, label %bb738 + br i1 false, label %bb739, label %bb738 bb738: ; preds = %cond_next722, %cond_false707 br label %bb739 bb739: ; preds = %bb738, %cond_next722 - br bool false, label %cond_false820, label %cond_true742 + br i1 false, label %cond_false820, label %cond_true742 cond_true742: ; preds = %bb739 - br bool false, label %cond_true771, label %cond_false778 + br i1 false, label %cond_true771, label %cond_false778 cond_true771: ; preds = %cond_true742 br label %bb1269.outer.backedge @@ -238,31 +234,31 @@ bb1269.outer.backedge: ; preds = %cond_true792, %cond_true771 br label %bb1269.outer cond_false778: ; preds = %cond_true742 - br bool false, label %cond_true792, label %cond_false799 + br i1 false, label %cond_true792, label %cond_false799 cond_true792: ; preds = %cond_false778 br label %bb1269.outer.backedge cond_false799: ; preds = %cond_false778 - br bool false, label %UnifiedReturnBlock, label %cond_false814 + br i1 false, label %UnifiedReturnBlock, label %cond_false814 cond_false814: ; preds = %cond_false799 br label %UnifiedUnreachableBlock cond_false820: ; preds = %bb739 - br bool false, label %cond_next835, label %bb851 + br i1 false, label %cond_next835, label %bb851 cond_next835: ; preds = %cond_false820 - br bool false, label %bb852, label %bb851 + br i1 false, label %bb852, label %bb851 bb851: ; preds = %cond_next835, %cond_false820 br label %bb852 bb852: ; preds = %bb851, %cond_next835 - br bool false, label %cond_false933, label %cond_true855 + br i1 false, label %cond_false933, label %cond_true855 cond_true855: ; preds = %bb852 - br bool false, label %cond_true884, label %cond_false891 + br i1 false, label %cond_true884, label %cond_false891 cond_true884: ; preds = %cond_true855 br label %bb1269.outer.outer.backedge @@ -271,31 +267,31 @@ bb1269.outer.outer.backedge: ; preds = %cond_true905, %cond_true884 br label %bb1269.outer.outer cond_false891: ; preds = %cond_true855 - br bool false, label %cond_true905, label %cond_false912 + br i1 false, label %cond_true905, label %cond_false912 cond_true905: ; preds = %cond_false891 br label %bb1269.outer.outer.backedge cond_false912: ; preds = %cond_false891 - br bool false, label %UnifiedReturnBlock, label %cond_false927 + br i1 false, label %UnifiedReturnBlock, label %cond_false927 cond_false927: ; preds = %cond_false912 br label %UnifiedUnreachableBlock cond_false933: ; preds = %bb852 - br bool false, label %cond_next948, label %bb964 + br i1 false, label %cond_next948, label %bb964 cond_next948: ; preds = %cond_false933 - br bool false, label %bb965, label %bb964 + br i1 false, label %bb965, label %bb964 bb964: ; preds = %cond_next948, %cond_false933 br label %bb965 bb965: ; preds = %bb964, %cond_next948 - br bool false, label %cond_false1046, label %cond_true968 + br i1 false, label %cond_false1046, label %cond_true968 cond_true968: ; preds = %bb965 - br bool false, label %cond_true997, label %cond_false1004 + br i1 false, label %cond_true997, label %cond_false1004 cond_true997: ; preds = %cond_true968 br label %bb1269.outer.outer.outer.backedge @@ -304,32 +300,32 @@ bb1269.outer.outer.outer.backedge: ; preds = %cond_true1018, %cond_true997 br label %bb1269.outer.outer.outer cond_false1004: ; preds = %cond_true968 - br bool false, label %cond_true1018, label %cond_false1025 + br i1 false, label %cond_true1018, label %cond_false1025 cond_true1018: ; preds = %cond_false1004 br label %bb1269.outer.outer.outer.backedge cond_false1025: ; preds = %cond_false1004 - br bool false, label %UnifiedReturnBlock, label %cond_false1040 + br i1 false, label %UnifiedReturnBlock, label %cond_false1040 cond_false1040: ; preds = %cond_false1025 br label %UnifiedUnreachableBlock cond_false1046: ; preds = %bb965 - br bool false, label %cond_next1061, label %bb1077 + br i1 false, label %cond_next1061, label %bb1077 cond_next1061: ; preds = %cond_false1046 - br bool false, label %bb1078, label %bb1077 + br i1 false, label %bb1078, label %bb1077 bb1077: ; preds = %cond_next1061, %cond_false1046 br label %bb1078 bb1078: ; preds = %bb1077, %cond_next1061 - %tmp1080 = phi bool [ true, %bb1077 ], [ false, %cond_next1061 ] ; <bool> [#uses=1] - br bool %tmp1080, label %cond_false1159, label %cond_true1081 + %tmp1080 = phi i1 [ true, %bb1077 ], [ false, %cond_next1061 ] ; <i1> [#uses=1] + br i1 %tmp1080, label %cond_false1159, label %cond_true1081 cond_true1081: ; preds = %bb1078 - br bool false, label %cond_true1110, label %cond_false1117 + br i1 false, label %cond_true1110, label %cond_false1117 cond_true1110: ; preds = %cond_true1081 br label %bb1269.outer.outer.outer.outer.backedge @@ -338,32 +334,32 @@ bb1269.outer.outer.outer.outer.backedge: ; preds = %cond_true1131, %cond_true11 br label %bb1269.outer.outer.outer.outer cond_false1117: ; preds = %cond_true1081 - br bool false, label %cond_true1131, label %cond_false1138 + br i1 false, label %cond_true1131, label %cond_false1138 cond_true1131: ; preds = %cond_false1117 br label %bb1269.outer.outer.outer.outer.backedge cond_false1138: ; preds = %cond_false1117 - br bool false, label %UnifiedReturnBlock, label %cond_false1153 + br i1 false, label %UnifiedReturnBlock, label %cond_false1153 cond_false1153: ; preds = %cond_false1138 br label %UnifiedUnreachableBlock cond_false1159: ; preds = %bb1078 - %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi "struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ] ; <"struct.kc::impl_elem_patternrepresentation"*> [#uses=0] - br bool false, label %UnifiedReturnBlock, label %cond_false1174 + %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi %"struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ] ; <%"struct.kc::impl_elem_patternrepresentation"*> [#uses=0] + br i1 false, label %UnifiedReturnBlock, label %cond_false1174 cond_false1174: ; preds = %cond_false1159 - br bool false, label %UnifiedReturnBlock, label %cond_false1189 + br i1 false, label %UnifiedReturnBlock, label %cond_false1189 cond_false1189: ; preds = %cond_false1174 - br bool false, label %UnifiedReturnBlock, label %cond_false1204 + br i1 false, label %UnifiedReturnBlock, label %cond_false1204 cond_false1204: ; preds = %cond_false1189 - br bool false, label %UnifiedReturnBlock, label %cond_false1219 + br i1 false, label %UnifiedReturnBlock, label %cond_false1219 cond_false1219: ; preds = %cond_false1204 - br bool false, label %UnifiedReturnBlock, label %cond_true1222 + br i1 false, label %UnifiedReturnBlock, label %cond_true1222 cond_true1222: ; preds = %cond_false1219 br label %UnifiedReturnBlock @@ -396,22 +392,22 @@ bb1269.outer69: ; preds = %bb1269.outer54, %cond_true br label %bb1269 bb1269: ; preds = %bb1269.outer69 - br bool false, label %cond_next1281, label %bb1294 + br i1 false, label %cond_next1281, label %bb1294 cond_next1281: ; preds = %bb1269 - br bool false, label %cond_true1298, label %bb1294 + br i1 false, label %cond_true1298, label %bb1294 bb1294: ; preds = %cond_next1281, %bb1269 - br bool false, label %cond_true1331, label %cond_next1313 + br i1 false, label %cond_true1331, label %cond_next1313 cond_true1298: ; preds = %cond_next1281 - br bool false, label %cond_false, label %cond_true + br i1 false, label %cond_false, label %cond_true cond_next1313: ; preds = %bb1294 - br bool false, label %cond_true1331, label %cond_next1355 + br i1 false, label %cond_true1331, label %cond_next1355 cond_true1331: ; preds = %cond_next1313, %bb1294 - br bool false, label %cond_false1346, label %cond_true1342 + br i1 false, label %cond_false1346, label %cond_true1342 cond_true1342: ; preds = %cond_true1331 br label %cond_next1350 @@ -423,37 +419,37 @@ cond_next1350: ; preds = %cond_false1346, %cond_true1342 br label %bb.i bb.i: ; preds = %bb.i, %cond_next1350 - br bool false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i + br i1 false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i _ZN2kc18impl_abstract_list8freelistEv.exit: ; preds = %bb.i br label %cond_next1355 cond_next1355: ; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313 - br bool false, label %cond_next1363, label %bb1388 + br i1 false, label %cond_next1363, label %bb1388 cond_next1363: ; preds = %cond_next1355 - br bool false, label %UnifiedReturnBlock, label %cond_true1366 + br i1 false, label %UnifiedReturnBlock, label %cond_true1366 cond_true1366: ; preds = %cond_next1363 br label %UnifiedReturnBlock bb1388: ; preds = %cond_next1355 - br bool false, label %UnifiedReturnBlock, label %bb1414.preheader + br i1 false, label %UnifiedReturnBlock, label %bb1414.preheader bb1414.preheader: ; preds = %bb1388 br label %bb1414 bb1414: ; preds = %cond_true1426, %bb1414.preheader - br bool false, label %cond_true1426, label %bb1429 + br i1 false, label %cond_true1426, label %bb1429 cond_true1426: ; preds = %bb1414 br label %bb1414 bb1429: ; preds = %bb1414 - br bool false, label %cond_true1431, label %UnifiedReturnBlock + br i1 false, label %cond_true1431, label %UnifiedReturnBlock cond_true1431: ; preds = %bb1429 - br bool false, label %UnifiedReturnBlock, label %cond_true1434 + br i1 false, label %UnifiedReturnBlock, label %cond_true1434 cond_true1434: ; preds = %cond_true1431 br label %UnifiedReturnBlock diff --git a/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll b/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll index 5221319..573ee6c 100644 --- a/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll +++ b/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll @@ -1,224 +1,221 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output +; RUN: llvm-as < %s | opt -condprop -disable-output ; PR979 + target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-pc-linux-gnu" deplibs = [ "c", "crtend" ] - %struct.IO_APIC_reg_00 = type { uint } - %struct.Qdisc = type { int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, uint, %struct.Qdisc_ops*, %struct.Qdisc*, uint, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.net_device*, %struct.tc_stats, int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.Qdisc*, [1 x sbyte] } - %struct.Qdisc_class_ops = type { int (%struct.Qdisc*, uint, %struct.Qdisc*, %struct.Qdisc**)*, %struct.Qdisc* (%struct.Qdisc*, uint)*, uint (%struct.Qdisc*, uint)*, void (%struct.Qdisc*, uint)*, int (%struct.Qdisc*, uint, uint, %struct._agp_version**, uint*)*, int (%struct.Qdisc*, uint)*, void (%struct.Qdisc*, %struct.qdisc_walker*)*, %struct.tcf_proto** (%struct.Qdisc*, uint)*, uint (%struct.Qdisc*, uint, uint)*, void (%struct.Qdisc*, uint)*, int (%struct.Qdisc*, uint, %struct.sk_buff*, %struct.tcmsg*)* } - %struct.Qdisc_ops = type { %struct.Qdisc_ops*, %struct.Qdisc_class_ops*, [16 x sbyte], int, int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, int (%struct.sk_buff*, %struct.Qdisc*)*, uint (%struct.Qdisc*)*, int (%struct.Qdisc*, %struct._agp_version*)*, void (%struct.Qdisc*)*, void (%struct.Qdisc*)*, int (%struct.Qdisc*, %struct._agp_version*)*, int (%struct.Qdisc*, %struct.sk_buff*)* } - %struct.ViceFid = type { uint, uint, uint } - %struct.__wait_queue = type { uint, %struct.task_struct*, %struct.list_head } + %struct.IO_APIC_reg_00 = type { i32 } + %struct.Qdisc = type { i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32, %struct.Qdisc_ops*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.net_device*, %struct.tc_stats, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.Qdisc*, [1 x i8] } + %struct.Qdisc_class_ops = type { i32 (%struct.Qdisc*, i32, %struct.Qdisc*, %struct.Qdisc**)*, %struct.Qdisc* (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32, %struct._agp_version**, i32*)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, %struct.qdisc_walker*)*, %struct.tcf_proto** (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, %struct.sk_buff*, %struct.tcmsg*)* } + %struct.Qdisc_ops = type { %struct.Qdisc_ops*, %struct.Qdisc_class_ops*, [16 x i8], i32, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32 (%struct.sk_buff*, %struct.Qdisc*)*, i32 (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, void (%struct.Qdisc*)*, void (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, i32 (%struct.Qdisc*, %struct.sk_buff*)* } + %struct.ViceFid = type { i32, i32, i32 } + %struct.__wait_queue = type { i32, %struct.task_struct*, %struct.list_head } %struct.__wait_queue_head = type { %struct.IO_APIC_reg_00, %struct.list_head } - %struct._agp_version = type { ushort, ushort } - %struct._drm_i810_overlay_t = type { uint, uint } - %struct.address_space = type { %struct.list_head, %struct.list_head, %struct.list_head, uint, %struct.address_space_operations*, %struct.inode*, %struct.vm_area_struct*, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, int } - %struct.address_space_operations = type { int (%struct.page*)*, int (%struct.file*, %struct.page*)*, int (%struct.page*)*, int (%struct.file*, %struct.page*, uint, uint)*, int (%struct.file*, %struct.page*, uint, uint)*, int (%struct.address_space*, int)*, int (%struct.page*, uint)*, int (%struct.page*, int)*, int (int, %struct.inode*, %struct.kiobuf*, uint, int)*, int (int, %struct.file*, %struct.kiobuf*, uint, int)*, void (%struct.page*)* } - %struct.audio_buf_info = type { int, int, int, int } - %struct.autofs_packet_hdr = type { int, int } - %struct.block_device = type { %struct.list_head, %struct.bluez_skb_cb, %struct.inode*, ushort, int, %struct.block_device_operations*, %struct.semaphore, %struct.list_head } - %struct.block_device_operations = type { int (%struct.inode*, %struct.file*)*, int (%struct.inode*, %struct.file*)*, int (%struct.inode*, %struct.file*, uint, uint)*, int (ushort)*, int (ushort)*, %struct.module* } - %struct.bluez_skb_cb = type { int } - %struct.buffer_head = type { %struct.buffer_head*, uint, ushort, ushort, ushort, %struct.bluez_skb_cb, ushort, uint, uint, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head**, sbyte*, %struct.page*, void (%struct.buffer_head*, int)*, sbyte*, uint, %struct.__wait_queue_head, %struct.list_head } - %struct.char_device = type { %struct.list_head, %struct.bluez_skb_cb, ushort, %struct.bluez_skb_cb, %struct.semaphore } - %struct.completion = type { uint, %struct.__wait_queue_head } - %struct.cramfs_info = type { uint, uint, uint, uint } - %struct.dentry = type { %struct.bluez_skb_cb, uint, %struct.inode*, %struct.dentry*, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, int, %struct.qstr, uint, %struct.dentry_operations*, %struct.super_block*, uint, sbyte*, [16 x ubyte] } - %struct.dentry_operations = type { int (%struct.dentry*, int)*, int (%struct.dentry*, %struct.qstr*)*, int (%struct.dentry*, %struct.qstr*, %struct.qstr*)*, int (%struct.dentry*)*, void (%struct.dentry*)*, void (%struct.dentry*, %struct.inode*)* } - %struct.dev_mc_list = type { %struct.dev_mc_list*, [8 x ubyte], ubyte, int, int } - %struct.dnotify_struct = type { %struct.dnotify_struct*, uint, int, %struct.file*, %struct.files_struct* } - %struct.dquot = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.__wait_queue_head, %struct.__wait_queue_head, int, int, %struct.super_block*, uint, ushort, long, short, short, uint, %struct.mem_dqblk } - %struct.dquot_operations = type { void (%struct.inode*, int)*, void (%struct.inode*)*, int (%struct.inode*, ulong, int)*, int (%struct.inode*, uint)*, void (%struct.inode*, ulong)*, void (%struct.inode*, uint)*, int (%struct.inode*, %struct.iattr*)*, int (%struct.dquot*)* } - %struct.drm_clip_rect = type { ushort, ushort, ushort, ushort } - %struct.drm_ctx_priv_map = type { uint, sbyte* } - %struct.drm_mga_indices = type { int, uint, uint, int } - %struct.dst_entry = type { %struct.dst_entry*, %struct.bluez_skb_cb, int, %struct.net_device*, int, int, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, int, %struct.neighbour*, %struct.hh_cache*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, %struct.dst_ops*, [0 x sbyte] } - %struct.dst_ops = type { ushort, ushort, uint, int ()*, %struct.dst_entry* (%struct.dst_entry*, uint)*, %struct.dst_entry* (%struct.dst_entry*, %struct.sk_buff*)*, void (%struct.dst_entry*)*, %struct.dst_entry* (%struct.dst_entry*)*, void (%struct.sk_buff*)*, int, %struct.bluez_skb_cb, %struct.kmem_cache_s* } - %struct.e820entry = type { ulong, ulong, uint } - %struct.exec_domain = type { sbyte*, void (int, %struct.pt_regs*)*, ubyte, ubyte, uint*, uint*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.module*, %struct.exec_domain* } - %struct.ext2_inode_info = type { [15 x uint], uint, uint, ubyte, ubyte, uint, uint, uint, uint, uint, uint, uint, uint, uint, int } - %struct.ext3_inode_info = type { [15 x uint], uint, uint, uint, uint, uint, uint, uint, uint, uint, %struct.list_head, long, %struct.rw_semaphore } - %struct.fasync_struct = type { int, int, %struct.fasync_struct*, %struct.file* } - %struct.file = type { %struct.list_head, %struct.dentry*, %struct.vfsmount*, %struct.file_operations*, %struct.bluez_skb_cb, uint, ushort, long, uint, uint, uint, uint, uint, %struct.drm_mga_indices, uint, uint, int, uint, sbyte*, %struct.kiobuf*, int } - %struct.file_lock = type { %struct.file_lock*, %struct.list_head, %struct.list_head, %struct.files_struct*, uint, %struct.__wait_queue_head, %struct.file*, ubyte, ubyte, long, long, void (%struct.file_lock*)*, void (%struct.file_lock*)*, void (%struct.file_lock*)*, %struct.fasync_struct*, uint, { %struct.nfs_lock_info } } - %struct.file_operations = type { %struct.module*, long (%struct.file*, long, int)*, int (%struct.file*, sbyte*, uint, long*)*, int (%struct.file*, sbyte*, uint, long*)*, int (%struct.file*, sbyte*, int (sbyte*, sbyte*, int, long, uint, uint)*)*, uint (%struct.file*, %struct.poll_table_struct*)*, int (%struct.inode*, %struct.file*, uint, uint)*, int (%struct.file*, %struct.vm_area_struct*)*, int (%struct.inode*, %struct.file*)*, int (%struct.file*)*, int (%struct.inode*, %struct.file*)*, int (%struct.file*, %struct.dentry*, int)*, int (int, %struct.file*, int)*, int (%struct.file*, int, %struct.file_lock*)*, int (%struct.file*, %struct.iovec*, uint, long*)*, int (%struct.file*, %struct.iovec*, uint, long*)*, int (%struct.file*, %struct.page*, int, uint, long*, int)*, uint (%struct.file*, uint, uint, uint, uint)* } - %struct.file_system_type = type { sbyte*, int, %struct.super_block* (%struct.super_block*, sbyte*, int)*, %struct.module*, %struct.file_system_type*, %struct.list_head } - %struct.files_struct = type { %struct.bluez_skb_cb, %typedef.rwlock_t, int, int, int, %struct.file**, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set, %typedef.__kernel_fd_set, [32 x %struct.file*] } - %struct.fs_disk_quota = type { sbyte, sbyte, ushort, uint, ulong, ulong, ulong, ulong, ulong, ulong, int, int, ushort, ushort, int, ulong, ulong, ulong, int, ushort, short, [8 x sbyte] } - %struct.fs_quota_stat = type { sbyte, ushort, sbyte, %struct.e820entry, %struct.e820entry, uint, int, int, int, ushort, ushort } - %struct.fs_struct = type { %struct.bluez_skb_cb, %typedef.rwlock_t, int, %struct.dentry*, %struct.dentry*, %struct.dentry*, %struct.vfsmount*, %struct.vfsmount*, %struct.vfsmount* } - %struct.hh_cache = type { %struct.hh_cache*, %struct.bluez_skb_cb, ushort, int, int (%struct.sk_buff*)*, %typedef.rwlock_t, [32 x uint] } - %struct.i387_fxsave_struct = type { ushort, ushort, ushort, ushort, int, int, int, int, int, int, [32 x int], [32 x int], [56 x int] } - %struct.iattr = type { uint, ushort, uint, uint, long, int, int, int, uint } - %struct.if_dqblk = type { ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, uint } - %struct.if_dqinfo = type { ulong, ulong, uint, uint } - %struct.ifmap = type { uint, uint, ushort, ubyte, ubyte, ubyte } - %struct.ifreq = type { { [16 x sbyte] }, %typedef.dvd_authinfo } - %struct.inode = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, uint, %struct.bluez_skb_cb, ushort, ushort, ushort, uint, uint, ushort, long, int, int, int, uint, uint, uint, uint, ushort, %struct.semaphore, %struct.rw_semaphore, %struct.semaphore, %struct.inode_operations*, %struct.file_operations*, %struct.super_block*, %struct.__wait_queue_head, %struct.file_lock*, %struct.address_space*, %struct.address_space, [2 x %struct.dquot*], %struct.list_head, %struct.pipe_inode_info*, %struct.block_device*, %struct.char_device*, uint, %struct.dnotify_struct*, uint, uint, ubyte, %struct.bluez_skb_cb, uint, uint, { %struct.ext2_inode_info, %struct.ext3_inode_info, %struct.msdos_inode_info, %struct.iso_inode_info, %struct.nfs_inode_info, %struct._drm_i810_overlay_t, %struct.shmem_inode_info, %struct.proc_inode_info, %struct.socket, %struct.usbdev_inode_info, sbyte* } } - %struct.inode_operations = type { int (%struct.inode*, %struct.dentry*, int)*, %struct.dentry* (%struct.inode*, %struct.dentry*)*, int (%struct.dentry*, %struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*, sbyte*)*, int (%struct.inode*, %struct.dentry*, int)*, int (%struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*, int, int)*, int (%struct.inode*, %struct.dentry*, %struct.inode*, %struct.dentry*)*, int (%struct.dentry*, sbyte*, int)*, int (%struct.dentry*, %struct.nameidata*)*, void (%struct.inode*)*, int (%struct.inode*, int)*, int (%struct.dentry*)*, int (%struct.dentry*, %struct.iattr*)*, int (%struct.dentry*, %struct.iattr*)*, int (%struct.dentry*, sbyte*, sbyte*, uint, int)*, int (%struct.dentry*, sbyte*, sbyte*, uint)*, int (%struct.dentry*, sbyte*, uint)*, int (%struct.dentry*, sbyte*)* } - %struct.iovec = type { sbyte*, uint } - %struct.ip_options = type { uint, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, [0 x ubyte] } - %struct.isapnp_dma = type { ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_dma* } - %struct.isapnp_irq = type { ushort, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_irq* } - %struct.isapnp_mem = type { uint, uint, uint, uint, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_mem* } - %struct.isapnp_mem32 = type { [17 x ubyte], %struct.isapnp_resources*, %struct.isapnp_mem32* } - %struct.isapnp_port = type { ushort, ushort, ubyte, ubyte, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_port* } - %struct.isapnp_resources = type { ushort, ushort, %struct.isapnp_port*, %struct.isapnp_irq*, %struct.isapnp_dma*, %struct.isapnp_mem*, %struct.isapnp_mem32*, %struct.pci_dev*, %struct.isapnp_resources*, %struct.isapnp_resources* } - %struct.iso_inode_info = type { uint, ubyte, [3 x ubyte], uint, int } + %struct._agp_version = type { i16, i16 } + %struct._drm_i810_overlay_t = type { i32, i32 } + %struct.address_space = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.address_space_operations*, %struct.inode*, %struct.vm_area_struct*, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, i32 } + %struct.address_space_operations = type { i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*)*, i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.address_space*, i32)*, i32 (%struct.page*, i32)*, i32 (%struct.page*, i32)*, i32 (i32, %struct.inode*, %struct.kiobuf*, i32, i32)*, i32 (i32, %struct.file*, %struct.kiobuf*, i32, i32)*, void (%struct.page*)* } + %struct.audio_buf_info = type { i32, i32, i32, i32 } + %struct.autofs_packet_hdr = type { i32, i32 } + %struct.block_device = type { %struct.list_head, %struct.IO_APIC_reg_00, %struct.inode*, i16, i32, %struct.block_device_operations*, %struct.semaphore, %struct.list_head } + %struct.block_device_operations = type { i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (i16)*, i32 (i16)*, %struct.module* } + %struct.bluez_skb_cb = type { i32 } + %struct.buffer_head = type { %struct.buffer_head*, i32, i16, i16, i16, %struct.IO_APIC_reg_00, i16, i32, i32, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head**, i8*, %struct.page*, void (%struct.buffer_head*, i32)*, i8*, i32, %struct.__wait_queue_head, %struct.list_head } + %struct.char_device = type { %struct.list_head, %struct.IO_APIC_reg_00, i16, %struct.IO_APIC_reg_00, %struct.semaphore } + %struct.completion = type { i32, %struct.__wait_queue_head } + %struct.cramfs_info = type { i32, i32, i32, i32 } + %struct.dentry = type { %struct.IO_APIC_reg_00, i32, %struct.inode*, %struct.dentry*, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.qstr, i32, %struct.dentry_operations*, %struct.super_block*, i32, i8*, [16 x i8] } + %struct.dentry_operations = type { i32 (%struct.dentry*, i32)*, i32 (%struct.dentry*, %struct.qstr*)*, i32 (%struct.dentry*, %struct.qstr*, %struct.qstr*)*, i32 (%struct.dentry*)*, void (%struct.dentry*)*, void (%struct.dentry*, %struct.inode*)* } + %struct.dev_mc_list = type { %struct.dev_mc_list*, [8 x i8], i8, i32, i32 } + %struct.dnotify_struct = type { %struct.dnotify_struct*, i32, i32, %struct.file*, %struct.files_struct* } + %struct.dquot = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.__wait_queue_head, %struct.__wait_queue_head, i32, i32, %struct.super_block*, i32, i16, i64, i16, i16, i32, %struct.mem_dqblk } + %struct.dquot_operations = type { void (%struct.inode*, i32)*, void (%struct.inode*)*, i32 (%struct.inode*, i64, i32)*, i32 (%struct.inode*, i32)*, void (%struct.inode*, i64)*, void (%struct.inode*, i32)*, i32 (%struct.inode*, %struct.iattr*)*, i32 (%struct.dquot*)* } + %struct.drm_clip_rect = type { i16, i16, i16, i16 } + %struct.drm_ctx_priv_map = type { i32, i8* } + %struct.drm_mga_indices = type { i32, i32, i32, i32 } + %struct.dst_entry = type { %struct.dst_entry*, %struct.IO_APIC_reg_00, i32, %struct.net_device*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.neighbour*, %struct.hh_cache*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, %struct.dst_ops*, [0 x i8] } + %struct.dst_ops = type { i16, i16, i32, i32 ()*, %struct.dst_entry* (%struct.dst_entry*, i32)*, %struct.dst_entry* (%struct.dst_entry*, %struct.sk_buff*)*, void (%struct.dst_entry*)*, %struct.dst_entry* (%struct.dst_entry*)*, void (%struct.sk_buff*)*, i32, %struct.IO_APIC_reg_00, %struct.kmem_cache_s* } + %struct.e820entry = type { i64, i64, i32 } + %struct.exec_domain = type { i8*, void (i32, %struct.pt_regs*)*, i8, i8, i32*, i32*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.module*, %struct.exec_domain* } + %struct.ext2_inode_info = type { [15 x i32], i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.ext3_inode_info = type { [15 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.list_head, i64, %struct.rw_semaphore } + %struct.fasync_struct = type { i32, i32, %struct.fasync_struct*, %struct.file* } + %struct.file = type { %struct.list_head, %struct.dentry*, %struct.vfsmount*, %struct.file_operations*, %struct.IO_APIC_reg_00, i32, i16, i64, i32, i32, i32, i32, i32, %struct.audio_buf_info, i32, i32, i32, i32, i8*, %struct.kiobuf*, i32 } + %struct.file_lock = type { %struct.file_lock*, %struct.list_head, %struct.list_head, %struct.files_struct*, i32, %struct.__wait_queue_head, %struct.file*, i8, i8, i64, i64, void (%struct.file_lock*)*, void (%struct.file_lock*)*, void (%struct.file_lock*)*, %struct.fasync_struct*, i32, { %struct.nfs_lock_info } } + %struct.file_operations = type { %struct.module*, i64 (%struct.file*, i64, i32)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32 (i8*, i8*, i32, i64, i32, i32)*)*, i32 (%struct.file*, %struct.poll_table_struct*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (%struct.file*, %struct.vm_area_struct*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*, %struct.dentry*, i32)*, i32 (i32, %struct.file*, i32)*, i32 (%struct.file*, i32, %struct.file_lock*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.page*, i32, i32, i64*, i32)*, i32 (%struct.file*, i32, i32, i32, i32)* } + %struct.file_system_type = type { i8*, i32, %struct.super_block* (%struct.super_block*, i8*, i32)*, %struct.module*, %struct.file_system_type*, %struct.list_head } + %struct.files_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, i32, i32, %struct.file**, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set, %typedef.__kernel_fd_set, [32 x %struct.file*] } + %struct.fs_disk_quota = type { i8, i8, i16, i32, i64, i64, i64, i64, i64, i64, i32, i32, i16, i16, i32, i64, i64, i64, i32, i16, i16, [8 x i8] } + %struct.fs_quota_stat = type { i8, i16, i8, %struct.e820entry, %struct.e820entry, i32, i32, i32, i32, i16, i16 } + %struct.fs_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, %struct.dentry*, %struct.dentry*, %struct.dentry*, %struct.vfsmount*, %struct.vfsmount*, %struct.vfsmount* } + %struct.hh_cache = type { %struct.hh_cache*, %struct.IO_APIC_reg_00, i16, i32, i32 (%struct.sk_buff*)*, %typedef.rwlock_t, [32 x i32] } + %struct.i387_fxsave_struct = type { i16, i16, i16, i16, i32, i32, i32, i32, i32, i32, [32 x i32], [32 x i32], [56 x i32] } + %struct.iattr = type { i32, i16, i32, i32, i64, i32, i32, i32, i32 } + %struct.if_dqblk = type { i64, i64, i64, i64, i64, i64, i64, i64, i32 } + %struct.if_dqinfo = type { i64, i64, i32, i32 } + %struct.ifmap = type { i32, i32, i16, i8, i8, i8 } + %struct.ifreq = type { { [16 x i8] }, %typedef.dvd_authinfo } + %struct.inode = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.IO_APIC_reg_00, i16, i16, i16, i32, i32, i16, i64, i32, i32, i32, i32, i32, i32, i32, i16, %struct.semaphore, %struct.rw_semaphore, %struct.semaphore, %struct.inode_operations*, %struct.file_operations*, %struct.super_block*, %struct.__wait_queue_head, %struct.file_lock*, %struct.address_space*, %struct.address_space, [2 x %struct.dquot*], %struct.list_head, %struct.pipe_inode_info*, %struct.block_device*, %struct.char_device*, i32, %struct.dnotify_struct*, i32, i32, i8, %struct.IO_APIC_reg_00, i32, i32, { %struct.ext2_inode_info, %struct.ext3_inode_info, %struct.msdos_inode_info, %struct.iso_inode_info, %struct.nfs_inode_info, %struct._drm_i810_overlay_t, %struct.shmem_inode_info, %struct.proc_inode_info, %struct.socket, %struct.usbdev_inode_info, i8* } } + %struct.inode_operations = type { i32 (%struct.inode*, %struct.dentry*, i32)*, %struct.dentry* (%struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i8*)*, i32 (%struct.inode*, %struct.dentry*, i32)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i32, i32)*, i32 (%struct.inode*, %struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, %struct.nameidata*)*, void (%struct.inode*)*, i32 (%struct.inode*, i32)*, i32 (%struct.dentry*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, i8*, i8*, i32, i32)*, i32 (%struct.dentry*, i8*, i8*, i32)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, i8*)* } + %struct.iovec = type { i8*, i32 } + %struct.ip_options = type { i32, i8, i8, i8, i8, i8, i8, i8, i8, [0 x i8] } + %struct.isapnp_dma = type { i8, i8, %struct.isapnp_resources*, %struct.isapnp_dma* } + %struct.isapnp_irq = type { i16, i8, i8, %struct.isapnp_resources*, %struct.isapnp_irq* } + %struct.isapnp_mem = type { i32, i32, i32, i32, i8, i8, %struct.isapnp_resources*, %struct.isapnp_mem* } + %struct.isapnp_mem32 = type { [17 x i8], %struct.isapnp_resources*, %struct.isapnp_mem32* } + %struct.isapnp_port = type { i16, i16, i8, i8, i8, i8, %struct.isapnp_resources*, %struct.isapnp_port* } + %struct.isapnp_resources = type { i16, i16, %struct.isapnp_port*, %struct.isapnp_irq*, %struct.isapnp_dma*, %struct.isapnp_mem*, %struct.isapnp_mem32*, %struct.pci_dev*, %struct.isapnp_resources*, %struct.isapnp_resources* } + %struct.iso_inode_info = type { i32, i8, [3 x i8], i32, i32 } %struct.iw_handler_def = type opaque %struct.iw_statistics = type opaque %struct.k_sigaction = type { %struct.sigaction } - %struct.kern_ipc_perm = type { int, uint, uint, uint, uint, ushort, uint } - %struct.kiobuf = type { int, int, int, int, uint, %struct.page**, %struct.buffer_head**, uint*, %struct.bluez_skb_cb, int, void (%struct.kiobuf*)*, %struct.__wait_queue_head } - %struct.kmem_cache_s = type { %struct.list_head, %struct.list_head, %struct.list_head, uint, uint, uint, %struct.IO_APIC_reg_00, uint, uint, uint, uint, uint, uint, %struct.kmem_cache_s*, uint, uint, void (sbyte*, %struct.kmem_cache_s*, uint)*, void (sbyte*, %struct.kmem_cache_s*, uint)*, uint, [20 x sbyte], %struct.list_head, [32 x %struct._drm_i810_overlay_t*], uint } - %struct.linux_binfmt = type { %struct.linux_binfmt*, %struct.module*, int (%struct.linux_binprm*, %struct.pt_regs*)*, int (%struct.file*)*, int (int, %struct.pt_regs*, %struct.file*)*, uint, int (%struct.linux_binprm*, sbyte*)* } - %struct.linux_binprm = type { [128 x sbyte], [32 x %struct.page*], uint, int, %struct.file*, int, int, uint, uint, uint, int, int, sbyte*, uint, uint } + %struct.kern_ipc_perm = type { i32, i32, i32, i32, i32, i16, i32 } + %struct.kiobuf = type { i32, i32, i32, i32, i32, %struct.page**, %struct.buffer_head**, i32*, %struct.IO_APIC_reg_00, i32, void (%struct.kiobuf*)*, %struct.__wait_queue_head } + %struct.kmem_cache_s = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, %struct.IO_APIC_reg_00, i32, i32, i32, i32, i32, i32, %struct.kmem_cache_s*, i32, i32, void (i8*, %struct.kmem_cache_s*, i32)*, void (i8*, %struct.kmem_cache_s*, i32)*, i32, [20 x i8], %struct.list_head, [32 x %struct._drm_i810_overlay_t*], i32 } + %struct.linux_binfmt = type { %struct.linux_binfmt*, %struct.module*, i32 (%struct.linux_binprm*, %struct.pt_regs*)*, i32 (%struct.file*)*, i32 (i32, %struct.pt_regs*, %struct.file*)*, i32, i32 (%struct.linux_binprm*, i8*)* } + %struct.linux_binprm = type { [128 x i8], [32 x %struct.page*], i32, i32, %struct.file*, i32, i32, i32, i32, i32, i32, i32, i8*, i32, i32 } %struct.list_head = type { %struct.list_head*, %struct.list_head* } - %struct.llva_sigcontext = type { %typedef.llva_icontext_t, %typedef.llva_fp_state_t, uint, uint, uint, uint, [1 x uint], sbyte* } + %struct.llva_sigcontext = type { %typedef.llva_icontext_t, %typedef.llva_fp_state_t, i32, i32, i32, i32, [1 x i32], i8* } %struct.map_segment = type opaque - %struct.mem_dqblk = type { uint, uint, ulong, uint, uint, uint, int, int } - %struct.mem_dqinfo = type { %struct.quota_format_type*, int, uint, uint, { %struct.ViceFid } } - %struct.mm_struct = type { %struct.vm_area_struct*, %struct.rb_root_s, %struct.vm_area_struct*, %struct.IO_APIC_reg_00*, %struct.bluez_skb_cb, %struct.bluez_skb_cb, int, %struct.rw_semaphore, %struct.IO_APIC_reg_00, %struct.list_head, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, %struct.iovec } - %struct.module = type { uint, %struct.module*, sbyte*, uint, %struct.bluez_skb_cb, uint, uint, uint, %struct.drm_ctx_priv_map*, %struct.module_ref*, %struct.module_ref*, int ()*, void ()*, %struct._drm_i810_overlay_t*, %struct._drm_i810_overlay_t*, %struct.module_persist*, %struct.module_persist*, int ()*, int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte* } + %struct.mem_dqblk = type { i32, i32, i64, i32, i32, i32, i32, i32 } + %struct.mem_dqinfo = type { %struct.quota_format_type*, i32, i32, i32, { %struct.ViceFid } } + %struct.mm_struct = type { %struct.vm_area_struct*, %struct.rb_root_s, %struct.vm_area_struct*, %struct.IO_APIC_reg_00*, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, %struct.rw_semaphore, %struct.IO_APIC_reg_00, %struct.list_head, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.iovec } + %struct.module = type { i32, %struct.module*, i8*, i32, %struct.IO_APIC_reg_00, i32, i32, i32, %struct.drm_ctx_priv_map*, %struct.module_ref*, %struct.module_ref*, i32 ()*, void ()*, %struct._drm_i810_overlay_t*, %struct._drm_i810_overlay_t*, %struct.module_persist*, %struct.module_persist*, i32 ()*, i32, i8*, i8*, i8*, i8*, i8* } %struct.module_persist = type opaque %struct.module_ref = type { %struct.module*, %struct.module*, %struct.module_ref* } - %struct.msdos_inode_info = type { uint, int, int, int, int, int, %struct.inode*, %struct.list_head } - %struct.msghdr = type { sbyte*, int, %struct.iovec*, uint, sbyte*, uint, uint } - %struct.msq_setbuf = type { uint, uint, uint, ushort } - %struct.nameidata = type { %struct.dentry*, %struct.vfsmount*, %struct.qstr, uint, int } - %struct.namespace = type { %struct.bluez_skb_cb, %struct.vfsmount*, %struct.list_head, %struct.rw_semaphore } - %struct.neigh_ops = type { int, void (%struct.neighbour*)*, void (%struct.neighbour*, %struct.sk_buff*)*, void (%struct.neighbour*, %struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)* } - %struct.neigh_parms = type { %struct.neigh_parms*, int (%struct.neighbour*)*, %struct.neigh_table*, int, sbyte*, sbyte*, int, int, int, int, int, int, int, int, int, int, int, int, int } - %struct.neigh_table = type { %struct.neigh_table*, int, int, int, uint (sbyte*, %struct.net_device*)*, int (%struct.neighbour*)*, int (%struct.pneigh_entry*)*, void (%struct.pneigh_entry*)*, void (%struct.sk_buff*)*, sbyte*, %struct.neigh_parms, int, int, int, int, uint, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, int, %typedef.rwlock_t, uint, %struct.neigh_parms*, %struct.kmem_cache_s*, %struct.tasklet_struct, %struct.cramfs_info, [32 x %struct.neighbour*], [16 x %struct.pneigh_entry*] } - %struct.neighbour = type { %struct.neighbour*, %struct.neigh_table*, %struct.neigh_parms*, %struct.net_device*, uint, uint, uint, ubyte, ubyte, ubyte, ubyte, %struct.bluez_skb_cb, %typedef.rwlock_t, [8 x ubyte], %struct.hh_cache*, %struct.bluez_skb_cb, int (%struct.sk_buff*)*, %struct.sk_buff_head, %struct.timer_list, %struct.neigh_ops*, [0 x ubyte] } + %struct.msdos_inode_info = type { i32, i32, i32, i32, i32, i32, %struct.inode*, %struct.list_head } + %struct.msghdr = type { i8*, i32, %struct.iovec*, i32, i8*, i32, i32 } + %struct.msq_setbuf = type { i32, i32, i32, i16 } + %struct.nameidata = type { %struct.dentry*, %struct.vfsmount*, %struct.qstr, i32, i32 } + %struct.namespace = type { %struct.IO_APIC_reg_00, %struct.vfsmount*, %struct.list_head, %struct.rw_semaphore } + %struct.neigh_ops = type { i32, void (%struct.neighbour*)*, void (%struct.neighbour*, %struct.sk_buff*)*, void (%struct.neighbour*, %struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)* } + %struct.neigh_parms = type { %struct.neigh_parms*, i32 (%struct.neighbour*)*, %struct.neigh_table*, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.neigh_table = type { %struct.neigh_table*, i32, i32, i32, i32 (i8*, %struct.net_device*)*, i32 (%struct.neighbour*)*, i32 (%struct.pneigh_entry*)*, void (%struct.pneigh_entry*)*, void (%struct.sk_buff*)*, i8*, %struct.neigh_parms, i32, i32, i32, i32, i32, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, i32, %typedef.rwlock_t, i32, %struct.neigh_parms*, %struct.kmem_cache_s*, %struct.tasklet_struct, %struct.audio_buf_info, [32 x %struct.neighbour*], [16 x %struct.pneigh_entry*] } + %struct.neighbour = type { %struct.neighbour*, %struct.neigh_table*, %struct.neigh_parms*, %struct.net_device*, i32, i32, i32, i8, i8, i8, i8, %struct.IO_APIC_reg_00, %typedef.rwlock_t, [8 x i8], %struct.hh_cache*, %struct.IO_APIC_reg_00, i32 (%struct.sk_buff*)*, %struct.sk_buff_head, %struct.timer_list, %struct.neigh_ops*, [0 x i8] } %struct.net_bridge_port = type opaque - %struct.net_device = type { [16 x sbyte], uint, uint, uint, uint, uint, uint, ubyte, ubyte, uint, %struct.net_device*, int (%struct.net_device*)*, %struct.net_device*, int, int, %struct.net_device_stats* (%struct.net_device*)*, %struct.iw_statistics* (%struct.net_device*)*, %struct.iw_handler_def*, uint, uint, ushort, ushort, ushort, ushort, uint, ushort, ushort, sbyte*, %struct.net_device*, [8 x ubyte], [8 x ubyte], ubyte, %struct.dev_mc_list*, int, int, int, int, %struct.timer_list, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.list_head, int, int, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, uint, %struct.IO_APIC_reg_00, int, %struct.IO_APIC_reg_00, %struct.bluez_skb_cb, int, int, void (%struct.net_device*)*, void (%struct.net_device*)*, int (%struct.net_device*)*, int (%struct.net_device*)*, int (%struct.sk_buff*, %struct.net_device*)*, int (%struct.net_device*, int*)*, int (%struct.sk_buff*, %struct.net_device*, ushort, sbyte*, sbyte*, uint)*, int (%struct.sk_buff*)*, void (%struct.net_device*)*, int (%struct.net_device*, sbyte*)*, int (%struct.net_device*, %struct.ifreq*, int)*, int (%struct.net_device*, %struct.ifmap*)*, int (%struct.neighbour*, %struct.hh_cache*)*, void (%struct.hh_cache*, %struct.net_device*, ubyte*)*, int (%struct.net_device*, int)*, void (%struct.net_device*)*, void (%struct.net_device*, %struct.vlan_group*)*, void (%struct.net_device*, ushort)*, void (%struct.net_device*, ushort)*, int (%struct.sk_buff*, ubyte*)*, int (%struct.net_device*, %struct.neigh_parms*)*, int (%struct.net_device*, %struct.dst_entry*)*, %struct.module*, %struct.net_bridge_port* } - %struct.net_device_stats = type { uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint } - %struct.nf_conntrack = type { %struct.bluez_skb_cb, void (%struct.nf_conntrack*)* } + %struct.net_device = type { [16 x i8], i32, i32, i32, i32, i32, i32, i8, i8, i32, %struct.net_device*, i32 (%struct.net_device*)*, %struct.net_device*, i32, i32, %struct.net_device_stats* (%struct.net_device*)*, %struct.iw_statistics* (%struct.net_device*)*, %struct.iw_handler_def*, i32, i32, i16, i16, i16, i16, i32, i16, i16, i8*, %struct.net_device*, [8 x i8], [8 x i8], i8, %struct.dev_mc_list*, i32, i32, i32, i32, %struct.timer_list, i8*, i8*, i8*, i8*, i8*, %struct.list_head, i32, i32, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, i32, void (%struct.net_device*)*, void (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.sk_buff*, %struct.net_device*)*, i32 (%struct.net_device*, i32*)*, i32 (%struct.sk_buff*, %struct.net_device*, i16, i8*, i8*, i32)*, i32 (%struct.sk_buff*)*, void (%struct.net_device*)*, i32 (%struct.net_device*, i8*)*, i32 (%struct.net_device*, %struct.ifreq*, i32)*, i32 (%struct.net_device*, %struct.ifmap*)*, i32 (%struct.neighbour*, %struct.hh_cache*)*, void (%struct.hh_cache*, %struct.net_device*, i8*)*, i32 (%struct.net_device*, i32)*, void (%struct.net_device*)*, void (%struct.net_device*, %struct.vlan_group*)*, void (%struct.net_device*, i16)*, void (%struct.net_device*, i16)*, i32 (%struct.sk_buff*, i8*)*, i32 (%struct.net_device*, %struct.neigh_parms*)*, i32 (%struct.net_device*, %struct.dst_entry*)*, %struct.module*, %struct.net_bridge_port* } + %struct.net_device_stats = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.nf_conntrack = type { %struct.IO_APIC_reg_00, void (%struct.nf_conntrack*)* } %struct.nf_ct_info = type { %struct.nf_conntrack* } - %struct.nfs_fh = type { ushort, [64 x ubyte] } - %struct.nfs_inode_info = type { ulong, %struct.nfs_fh, ushort, uint, ulong, ulong, ulong, uint, uint, uint, [2 x uint], %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, uint, uint, uint, uint, %struct.rpc_cred* } - %struct.nfs_lock_info = type { uint, uint, %struct.nlm_host* } + %struct.nfs_fh = type { i16, [64 x i8] } + %struct.nfs_inode_info = type { i64, %struct.nfs_fh, i16, i32, i64, i64, i64, i32, i32, i32, [2 x i32], %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, i32, %struct.rpc_cred* } + %struct.nfs_lock_info = type { i32, i32, %struct.nlm_host* } %struct.nlm_host = type opaque - %struct.open_request = type { %struct.open_request*, uint, uint, ushort, ushort, ubyte, ubyte, ushort, uint, uint, uint, uint, %struct.or_calltable*, %struct.sock*, { %struct.tcp_v4_open_req } } - %struct.or_calltable = type { int, int (%struct.sock*, %struct.open_request*, %struct.dst_entry*)*, void (%struct.sk_buff*, %struct.open_request*)*, void (%struct.open_request*)*, void (%struct.sk_buff*)* } - %struct.page = type { %struct.list_head, %struct.address_space*, uint, %struct.page*, %struct.bluez_skb_cb, uint, %struct.list_head, %struct.page**, %struct.buffer_head* } - %struct.pci_bus = type { %struct.list_head, %struct.pci_bus*, %struct.list_head, %struct.list_head, %struct.pci_dev*, [4 x %struct.resource*], %struct.pci_ops*, sbyte*, %struct.proc_dir_entry*, ubyte, ubyte, ubyte, ubyte, [48 x sbyte], ushort, ushort, uint, ubyte, ubyte, ubyte, ubyte } - %struct.pci_dev = type { %struct.list_head, %struct.list_head, %struct.pci_bus*, %struct.pci_bus*, sbyte*, %struct.proc_dir_entry*, uint, ushort, ushort, ushort, ushort, uint, ubyte, ubyte, %struct.pci_driver*, sbyte*, ulong, uint, [4 x ushort], [4 x ushort], uint, [12 x %struct.resource], [2 x %struct.resource], [2 x %struct.resource], [90 x sbyte], [8 x sbyte], int, int, ushort, ushort, int (%struct.pci_dev*)*, int (%struct.pci_dev*)*, int (%struct.pci_dev*)* } - %struct.pci_device_id = type { uint, uint, uint, uint, uint, uint, uint } - %struct.pci_driver = type { %struct.list_head, sbyte*, %struct.pci_device_id*, int (%struct.pci_dev*, %struct.pci_device_id*)*, void (%struct.pci_dev*)*, int (%struct.pci_dev*, uint)*, int (%struct.pci_dev*, uint)*, int (%struct.pci_dev*)*, int (%struct.pci_dev*, uint, int)* } - %struct.pci_ops = type { int (%struct.pci_dev*, int, ubyte*)*, int (%struct.pci_dev*, int, ushort*)*, int (%struct.pci_dev*, int, uint*)*, int (%struct.pci_dev*, int, ubyte)*, int (%struct.pci_dev*, int, ushort)*, int (%struct.pci_dev*, int, uint)* } - %struct.pipe_inode_info = type { %struct.__wait_queue_head, sbyte*, uint, uint, uint, uint, uint, uint, uint, uint } - %struct.pneigh_entry = type { %struct.pneigh_entry*, %struct.net_device*, [0 x ubyte] } + %struct.open_request = type { %struct.open_request*, i32, i32, i16, i16, i8, i8, i16, i32, i32, i32, i32, %struct.or_calltable*, %struct.sock*, { %struct.tcp_v4_open_req } } + %struct.or_calltable = type { i32, i32 (%struct.sock*, %struct.open_request*, %struct.dst_entry*)*, void (%struct.sk_buff*, %struct.open_request*)*, void (%struct.open_request*)*, void (%struct.sk_buff*)* } + %struct.page = type { %struct.list_head, %struct.address_space*, i32, %struct.page*, %struct.IO_APIC_reg_00, i32, %struct.list_head, %struct.page**, %struct.buffer_head* } + %struct.pci_bus = type { %struct.list_head, %struct.pci_bus*, %struct.list_head, %struct.list_head, %struct.pci_dev*, [4 x %struct.resource*], %struct.pci_ops*, i8*, %struct.proc_dir_entry*, i8, i8, i8, i8, [48 x i8], i16, i16, i32, i8, i8, i8, i8 } + %struct.pci_dev = type { %struct.list_head, %struct.list_head, %struct.pci_bus*, %struct.pci_bus*, i8*, %struct.proc_dir_entry*, i32, i16, i16, i16, i16, i32, i8, i8, %struct.pci_driver*, i8*, i64, i32, [4 x i16], [4 x i16], i32, [12 x %struct.resource], [2 x %struct.resource], [2 x %struct.resource], [90 x i8], [8 x i8], i32, i32, i16, i16, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)* } + %struct.pci_device_id = type { i32, i32, i32, i32, i32, i32, i32 } + %struct.pci_driver = type { %struct.list_head, i8*, %struct.pci_device_id*, i32 (%struct.pci_dev*, %struct.pci_device_id*)*, void (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32, i32)* } + %struct.pci_ops = type { i32 (%struct.pci_dev*, i32, i8*)*, i32 (%struct.pci_dev*, i32, i16*)*, i32 (%struct.pci_dev*, i32, i32*)*, i32 (%struct.pci_dev*, i32, i8)*, i32 (%struct.pci_dev*, i32, i16)*, i32 (%struct.pci_dev*, i32, i32)* } + %struct.pipe_inode_info = type { %struct.__wait_queue_head, i8*, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.pneigh_entry = type { %struct.pneigh_entry*, %struct.net_device*, [0 x i8] } %struct.poll_table_entry = type { %struct.file*, %struct.__wait_queue, %struct.__wait_queue_head* } %struct.poll_table_page = type { %struct.poll_table_page*, %struct.poll_table_entry*, [0 x %struct.poll_table_entry] } - %struct.poll_table_struct = type { int, %struct.poll_table_page* } - %struct.proc_dir_entry = type { ushort, ushort, sbyte*, ushort, ushort, uint, uint, uint, %struct.inode_operations*, %struct.file_operations*, int (sbyte*, sbyte**, int, int)*, %struct.module*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, sbyte*, int (sbyte*, sbyte**, int, int, int*, sbyte*)*, int (%struct.file*, sbyte*, uint, sbyte*)*, %struct.bluez_skb_cb, int, ushort } - %struct.proc_inode_info = type { %struct.task_struct*, int, { int (%struct.task_struct*, sbyte*)* }, %struct.file* } - %struct.proto = type { void (%struct.sock*, int)*, int (%struct.sock*, %struct.sockaddr*, int)*, int (%struct.sock*, int)*, %struct.sock* (%struct.sock*, int, int*)*, int (%struct.sock*, int, uint)*, int (%struct.sock*)*, int (%struct.sock*)*, void (%struct.sock*, int)*, int (%struct.sock*, int, int, sbyte*, int)*, int (%struct.sock*, int, int, sbyte*, int*)*, int (%struct.sock*, %struct.msghdr*, int)*, int (%struct.sock*, %struct.msghdr*, int, int, int, int*)*, int (%struct.sock*, %struct.sockaddr*, int)*, int (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)*, void (%struct.sock*)*, int (%struct.sock*, ushort)*, [32 x sbyte], [32 x { int, [28 x ubyte] }] } - %struct.proto_ops = type { int, int (%struct.socket*)*, int (%struct.socket*, %struct.sockaddr*, int)*, int (%struct.socket*, %struct.sockaddr*, int, int)*, int (%struct.socket*, %struct.socket*)*, int (%struct.socket*, %struct.socket*, int)*, int (%struct.socket*, %struct.sockaddr*, int*, int)*, uint (%struct.file*, %struct.socket*, %struct.poll_table_struct*)*, int (%struct.socket*, uint, uint)*, int (%struct.socket*, int)*, int (%struct.socket*, int)*, int (%struct.socket*, int, int, sbyte*, int)*, int (%struct.socket*, int, int, sbyte*, int*)*, int (%struct.socket*, %struct.msghdr*, int, %struct.scm_cookie*)*, int (%struct.socket*, %struct.msghdr*, int, int, %struct.scm_cookie*)*, int (%struct.file*, %struct.socket*, %struct.vm_area_struct*)*, int (%struct.socket*, %struct.page*, int, uint, int)* } - %struct.pt_regs = type { int, int, int, int, int, int, int, int, int, int, int, int, int, int, int } - %struct.qdisc_walker = type { int, int, int, int (%struct.Qdisc*, uint, %struct.qdisc_walker*)* } - %struct.qstr = type { ubyte*, uint, uint } - %struct.quota_format_ops = type { int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.dquot*)*, int (%struct.dquot*)* } - %struct.quota_format_type = type { int, %struct.quota_format_ops*, %struct.module*, %struct.quota_format_type* } - %struct.quota_info = type { uint, %struct.semaphore, %struct.semaphore, [2 x %struct.file*], [2 x %struct.mem_dqinfo], [2 x %struct.quota_format_ops*] } - %struct.quotactl_ops = type { int (%struct.super_block*, int, int, sbyte*)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int, %struct.if_dqinfo*)*, int (%struct.super_block*, int, %struct.if_dqinfo*)*, int (%struct.super_block*, int, uint, %struct.if_dqblk*)*, int (%struct.super_block*, int, uint, %struct.if_dqblk*)*, int (%struct.super_block*, %struct.fs_quota_stat*)*, int (%struct.super_block*, uint, int)*, int (%struct.super_block*, int, uint, %struct.fs_disk_quota*)*, int (%struct.super_block*, int, uint, %struct.fs_disk_quota*)* } - %struct.rb_node_s = type { %struct.rb_node_s*, int, %struct.rb_node_s*, %struct.rb_node_s* } + %struct.poll_table_struct = type { i32, %struct.poll_table_page* } + %struct.proc_dir_entry = type { i16, i16, i8*, i16, i16, i32, i32, i32, %struct.inode_operations*, %struct.file_operations*, i32 (i8*, i8**, i32, i32)*, %struct.module*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, i8*, i32 (i8*, i8**, i32, i32, i32*, i8*)*, i32 (%struct.file*, i8*, i32, i8*)*, %struct.IO_APIC_reg_00, i32, i16 } + %struct.proc_inode_info = type { %struct.task_struct*, i32, { i32 (%struct.task_struct*, i8*)* }, %struct.file* } + %struct.proto = type { void (%struct.sock*, i32)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, i32)*, %struct.sock* (%struct.sock*, i32, i32*)*, i32 (%struct.sock*, i32, i32)*, i32 (%struct.sock*)*, i32 (%struct.sock*)*, void (%struct.sock*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32*)*, i32 (%struct.sock*, %struct.msghdr*, i32)*, i32 (%struct.sock*, %struct.msghdr*, i32, i32, i32, i32*)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)*, void (%struct.sock*)*, i32 (%struct.sock*, i16)*, [32 x i8], [32 x { i32, [28 x i8] }] } + %struct.proto_ops = type { i32, i32 (%struct.socket*)*, i32 (%struct.socket*, %struct.sockaddr*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32, i32)*, i32 (%struct.socket*, %struct.socket*)*, i32 (%struct.socket*, %struct.socket*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32*, i32)*, i32 (%struct.file*, %struct.socket*, %struct.poll_table_struct*)*, i32 (%struct.socket*, i32, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32*)*, i32 (%struct.socket*, %struct.msghdr*, i32, %struct.scm_cookie*)*, i32 (%struct.socket*, %struct.msghdr*, i32, i32, %struct.scm_cookie*)*, i32 (%struct.file*, %struct.socket*, %struct.vm_area_struct*)*, i32 (%struct.socket*, %struct.page*, i32, i32, i32)* } + %struct.pt_regs = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.qdisc_walker = type { i32, i32, i32, i32 (%struct.Qdisc*, i32, %struct.qdisc_walker*)* } + %struct.qstr = type { i8*, i32, i32 } + %struct.quota_format_ops = type { i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.dquot*)*, i32 (%struct.dquot*)* } + %struct.quota_format_type = type { i32, %struct.quota_format_ops*, %struct.module*, %struct.quota_format_type* } + %struct.quota_info = type { i32, %struct.semaphore, %struct.semaphore, [2 x %struct.file*], [2 x %struct.mem_dqinfo], [2 x %struct.quota_format_ops*] } + %struct.quotactl_ops = type { i32 (%struct.super_block*, i32, i32, i8*)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, %struct.fs_quota_stat*)*, i32 (%struct.super_block*, i32, i32)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)* } + %struct.rb_node_s = type { %struct.rb_node_s*, i32, %struct.rb_node_s*, %struct.rb_node_s* } %struct.rb_root_s = type { %struct.rb_node_s* } - %struct.resource = type { sbyte*, uint, uint, uint, %struct.resource*, %struct.resource*, %struct.resource* } - %struct.revectored_struct = type { [8 x uint] } - %struct.rpc_auth = type { [8 x %struct.rpc_cred*], uint, uint, uint, uint, uint, %struct.rpc_authops* } - %struct.rpc_authops = type { uint, sbyte*, %struct.rpc_auth* (%struct.rpc_clnt*)*, void (%struct.rpc_auth*)*, %struct.rpc_cred* (int)* } - %struct.rpc_clnt = type { %struct.bluez_skb_cb, %struct.rpc_xprt*, %struct.rpc_procinfo*, uint, sbyte*, sbyte*, %struct.rpc_auth*, %struct.rpc_stat*, uint, uint, uint, %struct.rpc_rtt, %struct.msq_setbuf, %struct.rpc_wait_queue, int, [32 x sbyte] } - %struct.rpc_cred = type { %struct.rpc_cred*, %struct.rpc_auth*, %struct.rpc_credops*, uint, %struct.bluez_skb_cb, ushort, uint, uint } - %struct.rpc_credops = type { void (%struct.rpc_cred*)*, int (%struct.rpc_cred*, int)*, uint* (%struct.rpc_task*, uint*, int)*, int (%struct.rpc_task*)*, uint* (%struct.rpc_task*, uint*)* } - %struct.rpc_message = type { uint, sbyte*, sbyte*, %struct.rpc_cred* } - %struct.rpc_procinfo = type { sbyte*, int (sbyte*, uint*, sbyte*)*, int (sbyte*, uint*, sbyte*)*, uint, uint, uint } - %struct.rpc_program = type { sbyte*, uint, uint, %struct.rpc_version**, %struct.rpc_stat* } - %struct.rpc_rqst = type { %struct.rpc_xprt*, %struct.rpc_timeout, %struct.xdr_buf, %struct.xdr_buf, %struct.rpc_task*, uint, %struct.rpc_rqst*, int, int, %struct.list_head, %struct.xdr_buf, [2 x uint], uint, int, int, int } - %struct.rpc_rtt = type { int, [5 x int], [5 x int], %struct.bluez_skb_cb } - %struct.rpc_stat = type { %struct.rpc_program*, uint, uint, uint, uint, uint, uint, uint, uint, uint } - %struct.rpc_task = type { %struct.list_head, uint, %struct.list_head, %struct.rpc_clnt*, %struct.rpc_rqst*, int, %struct.rpc_wait_queue*, %struct.rpc_message, uint*, ubyte, ubyte, ubyte, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, sbyte*, %struct.timer_list, %struct.__wait_queue_head, uint, ushort, ubyte, uint, ushort } - %struct.rpc_timeout = type { uint, uint, uint, uint, short, ubyte } - %struct.rpc_version = type { uint, uint, %struct.rpc_procinfo* } - %struct.rpc_wait_queue = type { %struct.list_head, sbyte* } - %struct.rpc_xprt = type { %struct.socket*, %struct.sock*, %struct.rpc_timeout, %struct.sockaddr_in, int, uint, uint, uint, uint, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_rqst*, [16 x %struct.rpc_rqst], uint, ubyte, uint, uint, uint, uint, uint, uint, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.rpc_task*, %struct.list_head, void (%struct.sock*, int)*, void (%struct.sock*)*, void (%struct.sock*)*, %struct.__wait_queue_head } - %struct.rw_semaphore = type { int, %struct.IO_APIC_reg_00, %struct.list_head } - %struct.scm_cookie = type { %struct.ViceFid, %struct.scm_fp_list*, uint } - %struct.scm_fp_list = type { int, [255 x %struct.file*] } - %struct.sem_array = type { %struct.kern_ipc_perm, int, int, %struct.autofs_packet_hdr*, %struct.sem_queue*, %struct.sem_queue**, %struct.sem_undo*, uint } - %struct.sem_queue = type { %struct.sem_queue*, %struct.sem_queue**, %struct.task_struct*, %struct.sem_undo*, int, int, %struct.sem_array*, int, %struct.sembuf*, int, int } - %struct.sem_undo = type { %struct.sem_undo*, %struct.sem_undo*, int, short* } - %struct.semaphore = type { %struct.bluez_skb_cb, int, %struct.__wait_queue_head } - %struct.sembuf = type { ushort, short, short } - %struct.seq_file = type { sbyte*, uint, uint, uint, long, %struct.semaphore, %struct.seq_operations*, sbyte* } - %struct.seq_operations = type { sbyte* (%struct.seq_file*, long*)*, void (%struct.seq_file*, sbyte*)*, sbyte* (%struct.seq_file*, sbyte*, long*)*, int (%struct.seq_file*, sbyte*)* } - %struct.shmem_inode_info = type { %struct.IO_APIC_reg_00, uint, [16 x %struct.IO_APIC_reg_00], sbyte**, uint, uint, %struct.list_head, %struct.inode* } - %struct.sigaction = type { void (int)*, uint, void ()*, %typedef.sigset_t } - %struct.siginfo = type { int, int, int, { [29 x int] } } - %struct.signal_struct = type { %struct.bluez_skb_cb, [64 x %struct.k_sigaction], %struct.IO_APIC_reg_00 } - %struct.sigpending = type { %struct.sigqueue*, %struct.sigqueue**, %typedef.sigset_t } + %struct.resource = type { i8*, i32, i32, i32, %struct.resource*, %struct.resource*, %struct.resource* } + %struct.revectored_struct = type { [8 x i32] } + %struct.rpc_auth = type { [8 x %struct.rpc_cred*], i32, i32, i32, i32, i32, %struct.rpc_authops* } + %struct.rpc_authops = type { i32, i8*, %struct.rpc_auth* (%struct.rpc_clnt*)*, void (%struct.rpc_auth*)*, %struct.rpc_cred* (i32)* } + %struct.rpc_clnt = type { %struct.IO_APIC_reg_00, %struct.rpc_xprt*, %struct.rpc_procinfo*, i32, i8*, i8*, %struct.rpc_auth*, %struct.rpc_stat*, i32, i32, i32, %struct.rpc_rtt, %struct.msq_setbuf, %struct.rpc_wait_queue, i32, [32 x i8] } + %struct.rpc_cred = type { %struct.rpc_cred*, %struct.rpc_auth*, %struct.rpc_credops*, i32, %struct.IO_APIC_reg_00, i16, i32, i32 } + %struct.rpc_credops = type { void (%struct.rpc_cred*)*, i32 (%struct.rpc_cred*, i32)*, i32* (%struct.rpc_task*, i32*, i32)*, i32 (%struct.rpc_task*)*, i32* (%struct.rpc_task*, i32*)* } + %struct.rpc_message = type { i32, i8*, i8*, %struct.rpc_cred* } + %struct.rpc_procinfo = type { i8*, i32 (i8*, i32*, i8*)*, i32 (i8*, i32*, i8*)*, i32, i32, i32 } + %struct.rpc_program = type { i8*, i32, i32, %struct.rpc_version**, %struct.rpc_stat* } + %struct.rpc_rqst = type { %struct.rpc_xprt*, %struct.rpc_timeout, %struct.xdr_buf, %struct.xdr_buf, %struct.rpc_task*, i32, %struct.rpc_rqst*, i32, i32, %struct.list_head, %struct.xdr_buf, [2 x i32], i32, i32, i32, i32 } + %struct.rpc_rtt = type { i32, [5 x i32], [5 x i32], %struct.IO_APIC_reg_00 } + %struct.rpc_stat = type { %struct.rpc_program*, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.rpc_task = type { %struct.list_head, i32, %struct.list_head, %struct.rpc_clnt*, %struct.rpc_rqst*, i32, %struct.rpc_wait_queue*, %struct.rpc_message, i32*, i8, i8, i8, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, i8*, %struct.timer_list, %struct.__wait_queue_head, i32, i16, i8, i32, i16 } + %struct.rpc_timeout = type { i32, i32, i32, i32, i16, i8 } + %struct.rpc_version = type { i32, i32, %struct.rpc_procinfo* } + %struct.rpc_wait_queue = type { %struct.list_head, i8* } + %struct.rpc_xprt = type { %struct.socket*, %struct.sock*, %struct.rpc_timeout, %struct.sockaddr_in, i32, i32, i32, i32, i32, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_rqst*, [16 x %struct.rpc_rqst], i32, i8, i32, i32, i32, i32, i32, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.rpc_task*, %struct.list_head, void (%struct.sock*, i32)*, void (%struct.sock*)*, void (%struct.sock*)*, %struct.__wait_queue_head } + %struct.rw_semaphore = type { i32, %struct.IO_APIC_reg_00, %struct.list_head } + %struct.scm_cookie = type { %struct.ViceFid, %struct.scm_fp_list*, i32 } + %struct.scm_fp_list = type { i32, [255 x %struct.file*] } + %struct.sem_array = type { %struct.kern_ipc_perm, i32, i32, %struct._drm_i810_overlay_t*, %struct.sem_queue*, %struct.sem_queue**, %struct.sem_undo*, i32 } + %struct.sem_queue = type { %struct.sem_queue*, %struct.sem_queue**, %struct.task_struct*, %struct.sem_undo*, i32, i32, %struct.sem_array*, i32, %struct.sembuf*, i32, i32 } + %struct.sem_undo = type { %struct.sem_undo*, %struct.sem_undo*, i32, i16* } + %struct.semaphore = type { %struct.IO_APIC_reg_00, i32, %struct.__wait_queue_head } + %struct.sembuf = type { i16, i16, i16 } + %struct.seq_file = type { i8*, i32, i32, i32, i64, %struct.semaphore, %struct.seq_operations*, i8* } + %struct.seq_operations = type { i8* (%struct.seq_file*, i64*)*, void (%struct.seq_file*, i8*)*, i8* (%struct.seq_file*, i8*, i64*)*, i32 (%struct.seq_file*, i8*)* } + %struct.shmem_inode_info = type { %struct.IO_APIC_reg_00, i32, [16 x %struct.IO_APIC_reg_00], i8**, i32, i32, %struct.list_head, %struct.inode* } + %struct.sigaction = type { void (i32)*, i32, void ()*, %typedef.__kernel_fsid_t } + %struct.siginfo = type { i32, i32, i32, { [29 x i32] } } + %struct.signal_struct = type { %struct.IO_APIC_reg_00, [64 x %struct.k_sigaction], %struct.IO_APIC_reg_00 } + %struct.sigpending = type { %struct.sigqueue*, %struct.sigqueue**, %typedef.__kernel_fsid_t } %struct.sigqueue = type { %struct.sigqueue*, %struct.siginfo } - %struct.sk_buff = type { %struct.sk_buff*, %struct.sk_buff*, %struct.sk_buff_head*, %struct.sock*, %struct.autofs_packet_hdr, %struct.net_device*, %struct.net_device*, { ubyte* }, { ubyte* }, { ubyte* }, %struct.dst_entry*, [48 x sbyte], uint, uint, uint, ubyte, ubyte, ubyte, ubyte, uint, %struct.bluez_skb_cb, ushort, ushort, uint, ubyte*, ubyte*, ubyte*, ubyte*, void (%struct.sk_buff*)*, uint, uint, %struct.nf_ct_info*, uint } - %struct.sk_buff_head = type { %struct.sk_buff*, %struct.sk_buff*, uint, %struct.IO_APIC_reg_00 } - %struct.sock = type { uint, uint, ushort, ushort, int, %struct.sock*, %struct.sock**, %struct.sock*, %struct.sock**, ubyte, ubyte, ushort, ushort, ubyte, ubyte, %struct.bluez_skb_cb, %typedef.socket_lock_t, int, %struct.__wait_queue_head*, %struct.dst_entry*, %typedef.rwlock_t, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.bluez_skb_cb, int, int, uint, uint, int, %struct.sock*, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, ubyte, ubyte, ubyte, ubyte, int, int, uint, int, %struct.sock*, { %struct.sk_buff*, %struct.sk_buff* }, %typedef.rwlock_t, %struct.sk_buff_head, %struct.proto*, { %struct.tcp_opt }, int, int, ushort, ushort, uint, ushort, ubyte, ubyte, %struct.ViceFid, int, int, int, { %struct.unix_opt }, %struct.timer_list, %struct.autofs_packet_hdr, %struct.socket*, sbyte*, void (%struct.sock*)*, void (%struct.sock*, int)*, void (%struct.sock*)*, void (%struct.sock*)*, int (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)* } - %struct.sockaddr = type { ushort, [14 x sbyte] } - %struct.sockaddr_in = type { ushort, ushort, %struct.IO_APIC_reg_00, [8 x ubyte] } - %struct.sockaddr_un = type { ushort, [108 x sbyte] } - %struct.socket = type { uint, uint, %struct.proto_ops*, %struct.inode*, %struct.fasync_struct*, %struct.file*, %struct.sock*, %struct.__wait_queue_head, short, ubyte } - %struct.statfs = type { int, int, int, int, int, int, int, %typedef.__kernel_fsid_t, int, [6 x int] } - %struct.super_block = type { %struct.list_head, ushort, uint, ubyte, ubyte, ulong, %struct.file_system_type*, %struct.super_operations*, %struct.dquot_operations*, %struct.quotactl_ops*, uint, uint, %struct.dentry*, %struct.rw_semaphore, %struct.semaphore, int, %struct.bluez_skb_cb, %struct.list_head, %struct.list_head, %struct.list_head, %struct.block_device*, %struct.list_head, %struct.quota_info, { [115 x uint] }, %struct.semaphore, %struct.semaphore } - %struct.super_operations = type { %struct.inode* (%struct.super_block*)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.inode*, sbyte*)*, void (%struct.inode*)*, void (%struct.inode*, int)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, int (%struct.super_block*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, int (%struct.super_block*, %struct.statfs*)*, int (%struct.super_block*, int*, sbyte*)*, void (%struct.inode*)*, void (%struct.super_block*)*, %struct.dentry* (%struct.super_block*, uint*, int, int, int)*, int (%struct.dentry*, uint*, int*, int)*, int (%struct.seq_file*, %struct.vfsmount*)* } - %struct.task_struct = type { int, uint, int, %struct.IO_APIC_reg_00, %struct.exec_domain*, int, uint, int, int, int, uint, %struct.mm_struct*, int, uint, uint, %struct.list_head, uint, %struct.task_struct*, %struct.task_struct*, %struct.mm_struct*, %struct.list_head, uint, uint, %struct.linux_binfmt*, int, int, int, uint, int, int, int, int, int, int, int, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.list_head, %struct.task_struct*, %struct.task_struct**, %struct.__wait_queue_head, %struct.completion*, uint, uint, uint, uint, uint, uint, uint, %struct.timer_list, %struct.audio_buf_info, uint, [32 x int], [32 x int], uint, uint, uint, uint, uint, uint, int, uint, uint, uint, uint, uint, uint, uint, uint, int, [32 x uint], uint, uint, uint, int, %struct.user_struct*, [11 x %struct._drm_i810_overlay_t], ushort, [16 x sbyte], int, int, %struct.tty_struct*, uint, %struct.sem_undo*, %struct.sem_queue*, %struct.thread_struct, %struct.fs_struct*, %struct.files_struct*, %struct.namespace*, %struct.IO_APIC_reg_00, %struct.signal_struct*, %typedef.sigset_t, %struct.sigpending, uint, uint, int (sbyte*)*, sbyte*, %typedef.sigset_t*, uint, uint, %struct.IO_APIC_reg_00, sbyte*, %struct.llva_sigcontext*, uint, %struct.task_struct*, uint, %typedef.llva_icontext_t, %typedef.llva_fp_state_t, uint*, int, sbyte* } - %struct.tasklet_struct = type { %struct.tasklet_struct*, uint, %struct.bluez_skb_cb, void (uint)*, uint } - %struct.tc_stats = type { ulong, uint, uint, uint, uint, uint, uint, uint, %struct.IO_APIC_reg_00* } - %struct.tcf_proto = type { %struct.tcf_proto*, sbyte*, int (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, uint, uint, uint, %struct.Qdisc*, sbyte*, %struct.tcf_proto_ops* } - %struct.tcf_proto_ops = type { %struct.tcf_proto_ops*, [16 x sbyte], int (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, int (%struct.tcf_proto*)*, void (%struct.tcf_proto*)*, uint (%struct.tcf_proto*, uint)*, void (%struct.tcf_proto*, uint)*, int (%struct.tcf_proto*, uint, uint, %struct._agp_version**, uint*)*, int (%struct.tcf_proto*, uint)*, void (%struct.tcf_proto*, %struct.tcf_walker*)*, int (%struct.tcf_proto*, uint, %struct.sk_buff*, %struct.tcmsg*)* } - %struct.tcf_walker = type { int, int, int, int (%struct.tcf_proto*, uint, %struct.tcf_walker*)* } - %struct.tcmsg = type { ubyte, ubyte, ushort, int, uint, uint, uint } - %struct.tcp_func = type { int (%struct.sk_buff*)*, void (%struct.sock*, %struct.tcphdr*, int, %struct.sk_buff*)*, int (%struct.sock*)*, int (%struct.sock*, %struct.sk_buff*)*, %struct.sock* (%struct.sock*, %struct.sk_buff*, %struct.open_request*, %struct.dst_entry*)*, int (%struct.sock*)*, ushort, int (%struct.sock*, int, int, sbyte*, int)*, int (%struct.sock*, int, int, sbyte*, int*)*, void (%struct.sock*, %struct.sockaddr*)*, int } - %struct.tcp_listen_opt = type { ubyte, int, int, int, uint, [512 x %struct.open_request*] } - %struct.tcp_opt = type { int, uint, uint, uint, uint, uint, uint, uint, { ubyte, ubyte, ubyte, ubyte, uint, uint, uint, ushort, ushort }, { %struct.sk_buff_head, %struct.task_struct*, %struct.iovec*, int, int }, uint, uint, uint, uint, ushort, ushort, ushort, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, ushort, ushort, uint, uint, uint, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, %struct.tcp_func*, %struct.sk_buff*, %struct.page*, uint, uint, uint, uint, uint, uint, sbyte, sbyte, sbyte, sbyte, ubyte, ubyte, ubyte, ubyte, uint, uint, uint, int, ushort, ubyte, ubyte, [1 x %struct._drm_i810_overlay_t], [4 x %struct._drm_i810_overlay_t], uint, uint, ubyte, ubyte, ushort, ubyte, ubyte, ushort, uint, uint, uint, uint, uint, uint, int, uint, ushort, ubyte, ubyte, uint, %typedef.rwlock_t, %struct.tcp_listen_opt*, %struct.open_request*, %struct.open_request*, int, uint, uint, int, int, uint, uint } - %struct.tcp_v4_open_req = type { uint, uint, %struct.ip_options* } - %struct.tcphdr = type { ushort, ushort, uint, uint, ushort, ushort, ushort, ushort } - %struct.termios = type { uint, uint, uint, uint, ubyte, [19 x ubyte] } - %struct.thread_struct = type { uint, uint, uint, uint, uint, [8 x uint], uint, uint, uint, %union.i387_union, %struct.vm86_struct*, uint, uint, uint, uint, int, [33 x uint] } - %struct.timer_list = type { %struct.list_head, uint, uint, void (uint)* } - %struct.tq_struct = type { %struct.list_head, uint, void (sbyte*)*, sbyte* } - %struct.tty_driver = type { int, sbyte*, sbyte*, int, short, short, short, short, short, %struct.termios, int, int*, %struct.proc_dir_entry*, %struct.tty_driver*, %struct.tty_struct**, %struct.termios**, %struct.termios**, sbyte*, int (%struct.tty_struct*, %struct.file*)*, void (%struct.tty_struct*, %struct.file*)*, int (%struct.tty_struct*, int, ubyte*, int)*, void (%struct.tty_struct*, ubyte)*, void (%struct.tty_struct*)*, int (%struct.tty_struct*)*, int (%struct.tty_struct*)*, int (%struct.tty_struct*, %struct.file*, uint, uint)*, void (%struct.tty_struct*, %struct.termios*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, int)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, int)*, void (%struct.tty_struct*, sbyte)*, int (sbyte*, sbyte**, int, int, int*, sbyte*)*, int (%struct.file*, sbyte*, uint, sbyte*)*, %struct.tty_driver*, %struct.tty_driver* } - %struct.tty_flip_buffer = type { %struct.tq_struct, %struct.semaphore, sbyte*, ubyte*, int, int, [1024 x ubyte], [1024 x sbyte], [4 x ubyte] } - %struct.tty_ldisc = type { int, sbyte*, int, int, int (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, int (%struct.tty_struct*)*, int (%struct.tty_struct*, %struct.file*, ubyte*, uint)*, int (%struct.tty_struct*, %struct.file*, ubyte*, uint)*, int (%struct.tty_struct*, %struct.file*, uint, uint)*, void (%struct.tty_struct*, %struct.termios*)*, uint (%struct.tty_struct*, %struct.file*, %struct.poll_table_struct*)*, void (%struct.tty_struct*, ubyte*, sbyte*, int)*, int (%struct.tty_struct*)*, void (%struct.tty_struct*)* } - %struct.tty_struct = type { int, %struct.tty_driver, %struct.tty_ldisc, %struct.termios*, %struct.termios*, int, int, ushort, uint, int, %struct.drm_clip_rect, ubyte, ubyte, %struct.tty_struct*, %struct.fasync_struct*, %struct.tty_flip_buffer, int, int, %struct.__wait_queue_head, %struct.__wait_queue_head, %struct.tq_struct, sbyte*, sbyte*, %struct.list_head, uint, ubyte, ushort, uint, int, [8 x uint], sbyte*, int, int, int, [128 x uint], int, uint, uint, %struct.semaphore, %struct.semaphore, %struct.IO_APIC_reg_00, %struct.tq_struct } - %struct.unix_address = type { %struct.bluez_skb_cb, int, uint, [0 x %struct.sockaddr_un] } - %struct.unix_opt = type { %struct.unix_address*, %struct.dentry*, %struct.vfsmount*, %struct.semaphore, %struct.sock*, %struct.sock**, %struct.sock*, %struct.bluez_skb_cb, %typedef.rwlock_t, %struct.__wait_queue_head } + %struct.sk_buff = type { %struct.sk_buff*, %struct.sk_buff*, %struct.sk_buff_head*, %struct.sock*, %struct._drm_i810_overlay_t, %struct.net_device*, %struct.net_device*, { i8* }, { i8* }, { i8* }, %struct.dst_entry*, [48 x i8], i32, i32, i32, i8, i8, i8, i8, i32, %struct.IO_APIC_reg_00, i16, i16, i32, i8*, i8*, i8*, i8*, void (%struct.sk_buff*)*, i32, i32, %struct.nf_ct_info*, i32 } + %struct.sk_buff_head = type { %struct.sk_buff*, %struct.sk_buff*, i32, %struct.IO_APIC_reg_00 } + %struct.sock = type { i32, i32, i16, i16, i32, %struct.sock*, %struct.sock**, %struct.sock*, %struct.sock**, i8, i8, i16, i16, i8, i8, %struct.IO_APIC_reg_00, %struct.semaphore, i32, %struct.__wait_queue_head*, %struct.dst_entry*, %typedef.rwlock_t, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.IO_APIC_reg_00, i32, i32, i32, i32, i32, %struct.sock*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, %struct.sock*, { %struct.sk_buff*, %struct.sk_buff* }, %typedef.rwlock_t, %struct.sk_buff_head, %struct.proto*, { %struct.tcp_opt }, i32, i32, i16, i16, i32, i16, i8, i8, %struct.ViceFid, i32, i32, i32, { %struct.unix_opt }, %struct.timer_list, %struct._drm_i810_overlay_t, %struct.socket*, i8*, void (%struct.sock*)*, void (%struct.sock*, i32)*, void (%struct.sock*)*, void (%struct.sock*)*, i32 (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)* } + %struct.sockaddr = type { i16, [14 x i8] } + %struct.sockaddr_in = type { i16, i16, %struct.IO_APIC_reg_00, [8 x i8] } + %struct.sockaddr_un = type { i16, [108 x i8] } + %struct.socket = type { i32, i32, %struct.proto_ops*, %struct.inode*, %struct.fasync_struct*, %struct.file*, %struct.sock*, %struct.__wait_queue_head, i16, i8 } + %struct.statfs = type { i32, i32, i32, i32, i32, i32, i32, %typedef.__kernel_fsid_t, i32, [6 x i32] } + %struct.super_block = type { %struct.list_head, i16, i32, i8, i8, i64, %struct.file_system_type*, %struct.super_operations*, %struct.dquot_operations*, %struct.quotactl_ops*, i32, i32, %struct.dentry*, %struct.rw_semaphore, %struct.semaphore, i32, %struct.IO_APIC_reg_00, %struct.list_head, %struct.list_head, %struct.list_head, %struct.block_device*, %struct.list_head, %struct.quota_info, { [115 x i32] }, %struct.semaphore, %struct.semaphore } + %struct.super_operations = type { %struct.inode* (%struct.super_block*)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.inode*, i8*)*, void (%struct.inode*)*, void (%struct.inode*, i32)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, i32 (%struct.super_block*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, i32 (%struct.super_block*, %struct.statfs*)*, i32 (%struct.super_block*, i32*, i8*)*, void (%struct.inode*)*, void (%struct.super_block*)*, %struct.dentry* (%struct.super_block*, i32*, i32, i32, i32)*, i32 (%struct.dentry*, i32*, i32*, i32)*, i32 (%struct.seq_file*, %struct.vfsmount*)* } + %struct.task_struct = type { i32, i32, i32, %struct.IO_APIC_reg_00, %struct.exec_domain*, i32, i32, i32, i32, i32, i32, %struct.mm_struct*, i32, i32, i32, %struct.list_head, i32, %struct.task_struct*, %struct.task_struct*, %struct.mm_struct*, %struct.list_head, i32, i32, %struct.linux_binfmt*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.list_head, %struct.task_struct*, %struct.task_struct**, %struct.__wait_queue_head, %struct.completion*, i32, i32, i32, i32, i32, i32, i32, %struct.timer_list, %struct.audio_buf_info, i32, [32 x i32], [32 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x i32], i32, i32, i32, i32, %struct.user_struct*, [11 x %struct._drm_i810_overlay_t], i16, [16 x i8], i32, i32, %struct.tty_struct*, i32, %struct.sem_undo*, %struct.sem_queue*, %struct.thread_struct, %struct.fs_struct*, %struct.files_struct*, %struct.namespace*, %struct.IO_APIC_reg_00, %struct.signal_struct*, %typedef.__kernel_fsid_t, %struct.sigpending, i32, i32, i32 (i8*)*, i8*, %typedef.__kernel_fsid_t*, i32, i32, %struct.IO_APIC_reg_00, i8*, %struct.llva_sigcontext*, i32, %struct.task_struct*, i32, %typedef.llva_icontext_t, %typedef.llva_fp_state_t, i32*, i32, i8* } + %struct.tasklet_struct = type { %struct.tasklet_struct*, i32, %struct.IO_APIC_reg_00, void (i32)*, i32 } + %struct.tc_stats = type { i64, i32, i32, i32, i32, i32, i32, i32, %struct.IO_APIC_reg_00* } + %struct.tcf_proto = type { %struct.tcf_proto*, i8*, i32 (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, i32, i32, i32, %struct.Qdisc*, i8*, %struct.tcf_proto_ops* } + %struct.tcf_proto_ops = type { %struct.tcf_proto_ops*, [16 x i8], i32 (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, i32 (%struct.tcf_proto*)*, void (%struct.tcf_proto*)*, i32 (%struct.tcf_proto*, i32)*, void (%struct.tcf_proto*, i32)*, i32 (%struct.tcf_proto*, i32, i32, %struct._agp_version**, i32*)*, i32 (%struct.tcf_proto*, i32)*, void (%struct.tcf_proto*, %struct.tcf_walker*)*, i32 (%struct.tcf_proto*, i32, %struct.sk_buff*, %struct.tcmsg*)* } + %struct.tcf_walker = type { i32, i32, i32, i32 (%struct.tcf_proto*, i32, %struct.tcf_walker*)* } + %struct.tcmsg = type { i8, i8, i16, i32, i32, i32, i32 } + %struct.tcp_func = type { i32 (%struct.sk_buff*)*, void (%struct.sock*, %struct.tcphdr*, i32, %struct.sk_buff*)*, i32 (%struct.sock*)*, i32 (%struct.sock*, %struct.sk_buff*)*, %struct.sock* (%struct.sock*, %struct.sk_buff*, %struct.open_request*, %struct.dst_entry*)*, i32 (%struct.sock*)*, i16, i32 (%struct.sock*, i32, i32, i8*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32*)*, void (%struct.sock*, %struct.sockaddr*)*, i32 } + %struct.tcp_listen_opt = type { i8, i32, i32, i32, i32, [512 x %struct.open_request*] } + %struct.tcp_opt = type { i32, i32, i32, i32, i32, i32, i32, i32, { i8, i8, i8, i8, i32, i32, i32, i16, i16 }, { %struct.sk_buff_head, %struct.task_struct*, %struct.iovec*, i32, i32 }, i32, i32, i32, i32, i16, i16, i16, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, i32, i32, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, %struct.tcp_func*, %struct.sk_buff*, %struct.page*, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i16, i8, i8, [1 x %struct._drm_i810_overlay_t], [4 x %struct._drm_i810_overlay_t], i32, i32, i8, i8, i16, i8, i8, i16, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, i8, i32, %typedef.rwlock_t, %struct.tcp_listen_opt*, %struct.open_request*, %struct.open_request*, i32, i32, i32, i32, i32, i32, i32 } + %struct.tcp_v4_open_req = type { i32, i32, %struct.ip_options* } + %struct.tcphdr = type { i16, i16, i32, i32, i16, i16, i16, i16 } + %struct.termios = type { i32, i32, i32, i32, i8, [19 x i8] } + %struct.thread_struct = type { i32, i32, i32, i32, i32, [8 x i32], i32, i32, i32, %union.i387_union, %struct.vm86_struct*, i32, i32, i32, i32, i32, [33 x i32] } + %struct.timer_list = type { %struct.list_head, i32, i32, void (i32)* } + %struct.tq_struct = type { %struct.list_head, i32, void (i8*)*, i8* } + %struct.tty_driver = type { i32, i8*, i8*, i32, i16, i16, i16, i16, i16, %struct.termios, i32, i32*, %struct.proc_dir_entry*, %struct.tty_driver*, %struct.tty_struct**, %struct.termios**, %struct.termios**, i8*, i32 (%struct.tty_struct*, %struct.file*)*, void (%struct.tty_struct*, %struct.file*)*, i32 (%struct.tty_struct*, i32, i8*, i32)*, void (%struct.tty_struct*, i8)*, void (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*, %struct.file*, i32, i32)*, void (%struct.tty_struct*, %struct.termios*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, i32)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, i32)*, void (%struct.tty_struct*, i8)*, i32 (i8*, i8**, i32, i32, i32*, i8*)*, i32 (%struct.file*, i8*, i32, i8*)*, %struct.tty_driver*, %struct.tty_driver* } + %struct.tty_flip_buffer = type { %struct.tq_struct, %struct.semaphore, i8*, i8*, i32, i32, [1024 x i8], [1024 x i8], [4 x i8] } + %struct.tty_ldisc = type { i32, i8*, i32, i32, i32 (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*, %struct.file*, i8*, i32)*, i32 (%struct.tty_struct*, %struct.file*, i8*, i32)*, i32 (%struct.tty_struct*, %struct.file*, i32, i32)*, void (%struct.tty_struct*, %struct.termios*)*, i32 (%struct.tty_struct*, %struct.file*, %struct.poll_table_struct*)*, void (%struct.tty_struct*, i8*, i8*, i32)*, i32 (%struct.tty_struct*)*, void (%struct.tty_struct*)* } + %struct.tty_struct = type { i32, %struct.tty_driver, %struct.tty_ldisc, %struct.termios*, %struct.termios*, i32, i32, i16, i32, i32, %struct.drm_clip_rect, i8, i8, %struct.tty_struct*, %struct.fasync_struct*, %struct.tty_flip_buffer, i32, i32, %struct.__wait_queue_head, %struct.__wait_queue_head, %struct.tq_struct, i8*, i8*, %struct.list_head, i32, i8, i16, i32, i32, [8 x i32], i8*, i32, i32, i32, [128 x i32], i32, i32, i32, %struct.semaphore, %struct.semaphore, %struct.IO_APIC_reg_00, %struct.tq_struct } + %struct.unix_address = type { %struct.IO_APIC_reg_00, i32, i32, [0 x %struct.sockaddr_un] } + %struct.unix_opt = type { %struct.unix_address*, %struct.dentry*, %struct.vfsmount*, %struct.semaphore, %struct.sock*, %struct.sock**, %struct.sock*, %struct.IO_APIC_reg_00, %typedef.rwlock_t, %struct.__wait_queue_head } %struct.usb_bus = type opaque %struct.usbdev_inode_info = type { %struct.list_head, %struct.list_head, { %struct.usb_bus* } } - %struct.user_struct = type { %struct.bluez_skb_cb, %struct.bluez_skb_cb, %struct.bluez_skb_cb, %struct.user_struct*, %struct.user_struct**, uint } - %struct.vfsmount = type { %struct.list_head, %struct.vfsmount*, %struct.dentry*, %struct.dentry*, %struct.super_block*, %struct.list_head, %struct.list_head, %struct.bluez_skb_cb, int, sbyte*, %struct.list_head } + %struct.user_struct = type { %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.user_struct*, %struct.user_struct**, i32 } + %struct.vfsmount = type { %struct.list_head, %struct.vfsmount*, %struct.dentry*, %struct.dentry*, %struct.super_block*, %struct.list_head, %struct.list_head, %struct.IO_APIC_reg_00, i32, i8*, %struct.list_head } %struct.vlan_group = type opaque - %struct.vm86_regs = type { int, int, int, int, int, int, int, int, int, int, int, int, int, ushort, ushort, int, int, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort, ushort } - %struct.vm86_struct = type { %struct.vm86_regs, uint, uint, uint, %struct.revectored_struct, %struct.revectored_struct } - %struct.vm_area_struct = type { %struct.mm_struct*, uint, uint, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, uint, %struct.rb_node_s, %struct.vm_area_struct*, %struct.vm_area_struct**, %struct.vm_operations_struct*, uint, %struct.file*, uint, sbyte* } - %struct.vm_operations_struct = type { void (%struct.vm_area_struct*)*, void (%struct.vm_area_struct*)*, %struct.page* (%struct.vm_area_struct*, uint, int)* } - %struct.xdr_buf = type { [1 x %struct.iovec], [1 x %struct.iovec], %struct.page**, uint, uint, uint } - %typedef.__kernel_fd_set = type { [32 x int] } - %typedef.__kernel_fsid_t = type { [2 x int] } - %typedef.dvd_authinfo = type { [2 x ulong] } - %typedef.llva_fp_state_t = type { [7 x uint], [20 x uint] } - %typedef.llva_icontext_t = type { uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint*, uint } - %typedef.rwlock_t = type { %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, uint } - %typedef.sigset_t = type { [2 x uint] } - %typedef.socket_lock_t = type { %struct.IO_APIC_reg_00, uint, %struct.__wait_queue_head } + %struct.vm86_regs = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + %struct.vm86_struct = type { %struct.vm86_regs, i32, i32, i32, %struct.revectored_struct, %struct.revectored_struct } + %struct.vm_area_struct = type { %struct.mm_struct*, i32, i32, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, i32, %struct.rb_node_s, %struct.vm_area_struct*, %struct.vm_area_struct**, %struct.vm_operations_struct*, i32, %struct.file*, i32, i8* } + %struct.vm_operations_struct = type { void (%struct.vm_area_struct*)*, void (%struct.vm_area_struct*)*, %struct.page* (%struct.vm_area_struct*, i32, i32)* } + %struct.xdr_buf = type { [1 x %struct.iovec], [1 x %struct.iovec], %struct.page**, i32, i32, i32 } + %typedef.__kernel_fd_set = type { [32 x i32] } + %typedef.__kernel_fsid_t = type { [2 x i32] } + %typedef.dvd_authinfo = type { [2 x i64] } + %typedef.llva_fp_state_t = type { [7 x i32], [20 x i32] } + %typedef.llva_icontext_t = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, i32 } + %typedef.rwlock_t = type { %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32 } + %typedef.sigset_t = type { [2 x i32] } + %typedef.socket_lock_t = type { %struct.IO_APIC_reg_00, i32, %struct.__wait_queue_head } %union.i387_union = type { %struct.i387_fxsave_struct } -implementation ; Functions: - -void %rs_init() { +define void @rs_init() { entry: - br bool false, label %loopentry.0.no_exit.0_crit_edge, label %loopentry.0.loopexit.0_crit_edge + br i1 false, label %loopentry.0.no_exit.0_crit_edge, label %loopentry.0.loopexit.0_crit_edge loopentry.0: ; No predecessors! unreachable @@ -230,7 +227,7 @@ loopentry.0.no_exit.0_crit_edge: ; preds = %entry br label %no_exit.0 no_exit.0: ; preds = %no_exit.0.no_exit.0_crit_edge, %loopentry.0.no_exit.0_crit_edge - br bool false, label %no_exit.0.no_exit.0_crit_edge, label %no_exit.0.loopexit.0_crit_edge + br i1 false, label %no_exit.0.no_exit.0_crit_edge, label %no_exit.0.loopexit.0_crit_edge no_exit.0.loopexit.0_crit_edge: ; preds = %no_exit.0 br label %loopexit.0 @@ -239,13 +236,13 @@ no_exit.0.no_exit.0_crit_edge: ; preds = %no_exit.0 br label %no_exit.0 loopexit.0: ; preds = %no_exit.0.loopexit.0_crit_edge, %loopentry.0.loopexit.0_crit_edge - br bool false, label %then.0, label %loopexit.0.endif.0_crit_edge + br i1 false, label %then.0, label %loopexit.0.endif.0_crit_edge loopexit.0.endif.0_crit_edge: ; preds = %loopexit.0 br label %endif.0 then.0: ; preds = %loopexit.0 - br bool false, label %loopentry.1.no_exit.1_crit_edge, label %loopentry.1.loopexit.1_crit_edge + br i1 false, label %loopentry.1.no_exit.1_crit_edge, label %loopentry.1.loopexit.1_crit_edge loopentry.1: ; No predecessors! unreachable @@ -257,7 +254,7 @@ loopentry.1.no_exit.1_crit_edge: ; preds = %then.0 br label %no_exit.1 no_exit.1: ; preds = %no_exit.1.backedge, %loopentry.1.no_exit.1_crit_edge - br bool false, label %shortcirc_next.0, label %no_exit.1.shortcirc_done.0_crit_edge + br i1 false, label %shortcirc_next.0, label %no_exit.1.shortcirc_done.0_crit_edge no_exit.1.shortcirc_done.0_crit_edge: ; preds = %no_exit.1 br label %shortcirc_done.0 @@ -266,10 +263,10 @@ shortcirc_next.0: ; preds = %no_exit.1 br label %shortcirc_done.0 shortcirc_done.0: ; preds = %shortcirc_next.0, %no_exit.1.shortcirc_done.0_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.0 - br bool false, label %then.1.no_exit.1_crit_edge, label %then.1.loopexit.1_crit_edge + br i1 false, label %then.1.no_exit.1_crit_edge, label %then.1.loopexit.1_crit_edge then.1.loopexit.1_crit_edge: ; preds = %then.1 br label %loopexit.1 @@ -281,7 +278,7 @@ no_exit.1.backedge: ; preds = %endif.1.no_exit.1_crit_edge, %then.1.no_exit.1_c br label %no_exit.1 endif.1: ; preds = %shortcirc_done.0 - br bool false, label %endif.1.no_exit.1_crit_edge, label %endif.1.loopexit.1_crit_edge + br i1 false, label %endif.1.no_exit.1_crit_edge, label %endif.1.loopexit.1_crit_edge endif.1.loopexit.1_crit_edge: ; preds = %endif.1 br label %loopexit.1 @@ -293,7 +290,7 @@ loopexit.1: ; preds = %endif.1.loopexit.1_crit_edge, %then.1.loopexit.1_crit_ed br label %endif.0 endif.0: ; preds = %loopexit.1, %loopexit.0.endif.0_crit_edge - br bool false, label %then.2, label %endif.0.endif.2_crit_edge + br i1 false, label %then.2, label %endif.0.endif.2_crit_edge endif.0.endif.2_crit_edge: ; preds = %endif.0 br label %endif.2 @@ -305,7 +302,7 @@ dead_block.0: ; No predecessors! br label %endif.2 endif.2: ; preds = %dead_block.0, %endif.0.endif.2_crit_edge - br bool false, label %then.3, label %endif.2.endif.3_crit_edge + br i1 false, label %then.3, label %endif.2.endif.3_crit_edge endif.2.endif.3_crit_edge: ; preds = %endif.2 br label %endif.3 @@ -320,7 +317,7 @@ endif.3: ; preds = %dead_block.1, %endif.2.endif.3_crit_edge br label %loopentry.2 loopentry.2: ; preds = %endif.6, %endif.3 - br bool false, label %loopentry.2.no_exit.2_crit_edge, label %loopentry.2.loopexit.2_crit_edge + br i1 false, label %loopentry.2.no_exit.2_crit_edge, label %loopentry.2.loopexit.2_crit_edge loopentry.2.loopexit.2_crit_edge: ; preds = %loopentry.2 br label %loopexit.2 @@ -329,7 +326,7 @@ loopentry.2.no_exit.2_crit_edge: ; preds = %loopentry.2 br label %no_exit.2 no_exit.2: ; preds = %then.5.no_exit.2_crit_edge, %loopentry.2.no_exit.2_crit_edge - br bool false, label %then.4, label %no_exit.2.endif.4_crit_edge + br i1 false, label %then.4, label %no_exit.2.endif.4_crit_edge no_exit.2.endif.4_crit_edge: ; preds = %no_exit.2 br label %endif.4 @@ -338,13 +335,13 @@ then.4: ; preds = %no_exit.2 br label %endif.4 endif.4: ; preds = %then.4, %no_exit.2.endif.4_crit_edge - br bool false, label %shortcirc_next.1, label %endif.4.shortcirc_done.1_crit_edge + br i1 false, label %shortcirc_next.1, label %endif.4.shortcirc_done.1_crit_edge endif.4.shortcirc_done.1_crit_edge: ; preds = %endif.4 br label %shortcirc_done.1 shortcirc_next.1: ; preds = %endif.4 - br bool false, label %then.i21, label %endif.i + br i1 false, label %then.i21, label %endif.i then.i21: ; preds = %shortcirc_next.1 br label %then.5 @@ -362,7 +359,7 @@ __check_region.exit: ; No predecessors! unreachable shortcirc_done.1: ; preds = %endif.i, %endif.4.shortcirc_done.1_crit_edge - br bool false, label %shortcirc_done.1.then.5_crit_edge, label %shortcirc_done.1.endif.5_crit_edge + br i1 false, label %shortcirc_done.1.then.5_crit_edge, label %shortcirc_done.1.endif.5_crit_edge shortcirc_done.1.endif.5_crit_edge: ; preds = %shortcirc_done.1 br label %endif.5 @@ -371,7 +368,7 @@ shortcirc_done.1.then.5_crit_edge: ; preds = %shortcirc_done.1 br label %then.5 then.5: ; preds = %shortcirc_done.1.then.5_crit_edge, %then.i21 - br bool false, label %then.5.no_exit.2_crit_edge, label %then.5.loopexit.2_crit_edge + br i1 false, label %then.5.no_exit.2_crit_edge, label %then.5.loopexit.2_crit_edge then.5.loopexit.2_crit_edge: ; preds = %then.5 br label %loopexit.2 @@ -383,7 +380,7 @@ dead_block_after_continue.0: ; No predecessors! unreachable endif.5: ; preds = %shortcirc_done.1.endif.5_crit_edge - br bool false, label %then.6, label %endif.5.endif.6_crit_edge + br i1 false, label %then.6, label %endif.5.endif.6_crit_edge endif.5.endif.6_crit_edge: ; preds = %endif.5 br label %endif.6 @@ -401,7 +398,7 @@ loopexit.2: ; preds = %then.5.loopexit.2_crit_edge, %loopentry.2.loopexit.2_cri br label %loopentry.3 loopentry.3: ; preds = %endif.9, %loopexit.2 - br bool false, label %loopentry.3.no_exit.3_crit_edge, label %loopentry.3.loopexit.3_crit_edge + br i1 false, label %loopentry.3.no_exit.3_crit_edge, label %loopentry.3.loopexit.3_crit_edge loopentry.3.loopexit.3_crit_edge: ; preds = %loopentry.3 br label %loopexit.3 @@ -410,13 +407,13 @@ loopentry.3.no_exit.3_crit_edge: ; preds = %loopentry.3 br label %no_exit.3 no_exit.3: ; preds = %then.7.no_exit.3_crit_edge, %loopentry.3.no_exit.3_crit_edge - br bool false, label %then.7, label %no_exit.3.endif.7_crit_edge + br i1 false, label %then.7, label %no_exit.3.endif.7_crit_edge no_exit.3.endif.7_crit_edge: ; preds = %no_exit.3 br label %endif.7 then.7: ; preds = %no_exit.3 - br bool false, label %then.7.no_exit.3_crit_edge, label %then.7.loopexit.3_crit_edge + br i1 false, label %then.7.no_exit.3_crit_edge, label %then.7.loopexit.3_crit_edge then.7.loopexit.3_crit_edge: ; preds = %then.7 br label %loopexit.3 @@ -428,7 +425,7 @@ dead_block_after_continue.1: ; No predecessors! unreachable endif.7: ; preds = %no_exit.3.endif.7_crit_edge - br bool false, label %shortcirc_next.2, label %endif.7.shortcirc_done.2_crit_edge + br i1 false, label %shortcirc_next.2, label %endif.7.shortcirc_done.2_crit_edge endif.7.shortcirc_done.2_crit_edge: ; preds = %endif.7 br label %shortcirc_done.2 @@ -437,13 +434,13 @@ shortcirc_next.2: ; preds = %endif.7 br label %shortcirc_done.2 shortcirc_done.2: ; preds = %shortcirc_next.2, %endif.7.shortcirc_done.2_crit_edge - br bool false, label %shortcirc_next.3, label %shortcirc_done.2.shortcirc_done.3_crit_edge + br i1 false, label %shortcirc_next.3, label %shortcirc_done.2.shortcirc_done.3_crit_edge shortcirc_done.2.shortcirc_done.3_crit_edge: ; preds = %shortcirc_done.2 br label %shortcirc_done.3 shortcirc_next.3: ; preds = %shortcirc_done.2 - br bool false, label %shortcirc_next.3.shortcirc_done.4_crit_edge, label %shortcirc_next.4 + br i1 false, label %shortcirc_next.3.shortcirc_done.4_crit_edge, label %shortcirc_next.4 shortcirc_next.3.shortcirc_done.4_crit_edge: ; preds = %shortcirc_next.3 br label %shortcirc_done.4 @@ -455,7 +452,7 @@ shortcirc_done.4: ; preds = %shortcirc_next.4, %shortcirc_next.3.shortcirc_done br label %shortcirc_done.3 shortcirc_done.3: ; preds = %shortcirc_done.4, %shortcirc_done.2.shortcirc_done.3_crit_edge - br bool false, label %then.8, label %shortcirc_done.3.endif.8_crit_edge + br i1 false, label %then.8, label %shortcirc_done.3.endif.8_crit_edge shortcirc_done.3.endif.8_crit_edge: ; preds = %shortcirc_done.3 br label %endif.8 @@ -464,10 +461,10 @@ then.8: ; preds = %shortcirc_done.3 br label %endif.8 endif.8: ; preds = %then.8, %shortcirc_done.3.endif.8_crit_edge - br bool false, label %then.9, label %else + br i1 false, label %then.9, label %else then.9: ; preds = %endif.8 - br bool false, label %cond_true.0, label %cond_false.0 + br i1 false, label %cond_true.0, label %cond_false.0 cond_true.0: ; preds = %then.9 br label %cond_continue.0 @@ -479,7 +476,7 @@ cond_continue.0: ; preds = %cond_false.0, %cond_true.0 br label %endif.9 else: ; preds = %endif.8 - br bool false, label %cond_true.1, label %cond_false.1 + br i1 false, label %cond_true.1, label %cond_false.1 cond_true.1: ; preds = %else br label %cond_continue.1 @@ -497,7 +494,7 @@ loopcont.3: ; No predecessors! unreachable loopexit.3: ; preds = %then.7.loopexit.3_crit_edge, %loopentry.3.loopexit.3_crit_edge - br bool false, label %loopentry.i.i.i2.no_exit.i.i.i4_crit_edge, label %loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge + br i1 false, label %loopentry.i.i.i2.no_exit.i.i.i4_crit_edge, label %loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge loopentry.i.i.i2: ; No predecessors! unreachable @@ -509,22 +506,22 @@ loopentry.i.i.i2.no_exit.i.i.i4_crit_edge: ; preds = %loopexit.3 br label %no_exit.i.i.i4 no_exit.i.i.i4: ; preds = %endif.i.i.i10.no_exit.i.i.i4_crit_edge, %loopentry.i.i.i2.no_exit.i.i.i4_crit_edge - br bool false, label %then.i.i.i6, label %no_exit.i.i.i4.endif.i.i.i10_crit_edge + br i1 false, label %then.i.i.i6, label %no_exit.i.i.i4.endif.i.i.i10_crit_edge no_exit.i.i.i4.endif.i.i.i10_crit_edge: ; preds = %no_exit.i.i.i4 br label %endif.i.i.i10 then.i.i.i6: ; preds = %no_exit.i.i.i4 - br bool false, label %then.0.i.i.i.i, label %else.i.i.i.i + br i1 false, label %then.0.i.i.i.i, label %else.i.i.i.i then.0.i.i.i.i: ; preds = %then.i.i.i6 - br bool false, label %then.1.i.i.i.i, label %endif.1.i.i.i.i + br i1 false, label %then.1.i.i.i.i, label %endif.1.i.i.i.i then.1.i.i.i.i: ; preds = %then.0.i.i.i.i br label %endif.i.i.i10 endif.1.i.i.i.i: ; preds = %then.0.i.i.i.i - br bool false, label %endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge + br i1 false, label %endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge: ; preds = %endif.1.i.i.i.i br label %endif.i.i.i.i.i.i @@ -533,7 +530,7 @@ endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge: ; preds = %endif.1.i.i.i.i br label %then.i.i.i.i.i.i else.i.i.i.i: ; preds = %then.i.i.i6 - br bool false, label %endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge + br i1 false, label %endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge endif.0.i.i.i.i: ; No predecessors! unreachable @@ -545,7 +542,7 @@ endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge: ; preds = %else.i.i.i.i br label %then.i.i.i.i.i.i then.i.i.i.i.i.i: ; preds = %endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge, %endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge - br bool false, label %then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge, label %then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge + br i1 false, label %then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge, label %then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge: ; preds = %then.i.i.i.i.i.i br label %endif.2.i.i.i.i @@ -554,7 +551,7 @@ then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge: ; preds = %then.i.i.i.i.i.i br label %then.2.i.i.i.i endif.i.i.i.i.i.i: ; preds = %endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge, %endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge - br bool false, label %dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge, label %dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge + br i1 false, label %dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge, label %dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge dev_probe_lock.exit.i.i.i.i: ; No predecessors! unreachable @@ -569,7 +566,7 @@ then.2.i.i.i.i: ; preds = %dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge br label %endif.2.i.i.i.i endif.2.i.i.i.i: ; preds = %then.2.i.i.i.i, %dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge, %then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge - br bool false, label %then.i.i2.i.i.i.i, label %endif.i.i3.i.i.i.i + br i1 false, label %then.i.i2.i.i.i.i, label %endif.i.i3.i.i.i.i then.i.i2.i.i.i.i: ; preds = %endif.2.i.i.i.i br label %endif.i.i.i10 @@ -584,7 +581,7 @@ pci_announce_device.exit.i.i.i: ; No predecessors! unreachable endif.i.i.i10: ; preds = %endif.i.i3.i.i.i.i, %then.i.i2.i.i.i.i, %then.1.i.i.i.i, %no_exit.i.i.i4.endif.i.i.i10_crit_edge - br bool false, label %endif.i.i.i10.no_exit.i.i.i4_crit_edge, label %endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge + br i1 false, label %endif.i.i.i10.no_exit.i.i.i4_crit_edge, label %endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge: ; preds = %endif.i.i.i10 br label %pci_register_driver.exit.i.i @@ -593,7 +590,7 @@ endif.i.i.i10.no_exit.i.i.i4_crit_edge: ; preds = %endif.i.i.i10 br label %no_exit.i.i.i4 pci_register_driver.exit.i.i: ; preds = %endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge, %loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge - br bool false, label %then.0.i.i12, label %endif.0.i.i13 + br i1 false, label %then.0.i.i12, label %endif.0.i.i13 then.0.i.i12: ; preds = %pci_register_driver.exit.i.i br label %probe_serial_pci.exit @@ -605,7 +602,7 @@ then.0.i.i12.then.i_crit_edge: ; No predecessors! br label %then.i endif.0.i.i13: ; preds = %pci_register_driver.exit.i.i - br bool false, label %then.1.i.i14, label %endif.0.i.i13.endif.1.i.i15_crit_edge + br i1 false, label %then.1.i.i14, label %endif.0.i.i13.endif.1.i.i15_crit_edge endif.0.i.i13.endif.1.i.i15_crit_edge: ; preds = %endif.0.i.i13 br label %endif.1.i.i15 @@ -614,7 +611,7 @@ then.1.i.i14: ; preds = %endif.0.i.i13 br label %endif.1.i.i15 endif.1.i.i15: ; preds = %then.1.i.i14, %endif.0.i.i13.endif.1.i.i15_crit_edge - br bool false, label %loopentry.i8.i.i.no_exit.i9.i.i_crit_edge, label %loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge + br i1 false, label %loopentry.i8.i.i.no_exit.i9.i.i_crit_edge, label %loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge loopentry.i8.i.i: ; No predecessors! unreachable @@ -626,13 +623,13 @@ loopentry.i8.i.i.no_exit.i9.i.i_crit_edge: ; preds = %endif.1.i.i15 br label %no_exit.i9.i.i no_exit.i9.i.i: ; preds = %endif.0.i.i.i.no_exit.i9.i.i_crit_edge, %loopentry.i8.i.i.no_exit.i9.i.i_crit_edge - br bool false, label %then.0.i.i.i, label %no_exit.i9.i.i.endif.0.i.i.i_crit_edge + br i1 false, label %then.0.i.i.i, label %no_exit.i9.i.i.endif.0.i.i.i_crit_edge no_exit.i9.i.i.endif.0.i.i.i_crit_edge: ; preds = %no_exit.i9.i.i br label %endif.0.i.i.i then.0.i.i.i: ; preds = %no_exit.i9.i.i - br bool false, label %then.1.i.i.i, label %then.0.i.i.i.endif.1.i.i.i_crit_edge + br i1 false, label %then.1.i.i.i, label %then.0.i.i.i.endif.1.i.i.i_crit_edge then.0.i.i.i.endif.1.i.i.i_crit_edge: ; preds = %then.0.i.i.i br label %endif.1.i.i.i @@ -644,7 +641,7 @@ endif.1.i.i.i: ; preds = %then.1.i.i.i, %then.0.i.i.i.endif.1.i.i.i_crit_edge br label %endif.0.i.i.i endif.0.i.i.i: ; preds = %endif.1.i.i.i, %no_exit.i9.i.i.endif.0.i.i.i_crit_edge - br bool false, label %endif.0.i.i.i.no_exit.i9.i.i_crit_edge, label %endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge + br i1 false, label %endif.0.i.i.i.no_exit.i9.i.i_crit_edge, label %endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge: ; preds = %endif.0.i.i.i br label %pci_unregister_driver.exit.i.i @@ -653,7 +650,7 @@ endif.0.i.i.i.no_exit.i9.i.i_crit_edge: ; preds = %endif.0.i.i.i br label %no_exit.i9.i.i pci_unregister_driver.exit.i.i: ; preds = %endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge, %loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge - br bool false, label %pci_module_init.exit.i.then.i_crit_edge, label %pci_module_init.exit.i.probe_serial_pci.exit_crit_edge + br i1 false, label %pci_module_init.exit.i.then.i_crit_edge, label %pci_module_init.exit.i.probe_serial_pci.exit_crit_edge pci_module_init.exit.i: ; No predecessors! unreachable @@ -668,13 +665,13 @@ then.i: ; preds = %pci_module_init.exit.i.then.i_crit_edge, %then.0.i.i12.then. br label %probe_serial_pci.exit probe_serial_pci.exit: ; preds = %then.i, %pci_module_init.exit.i.probe_serial_pci.exit_crit_edge, %then.0.i.i12 - br bool false, label %then.0.i, label %endif.0.i + br i1 false, label %then.0.i, label %endif.0.i then.0.i: ; preds = %probe_serial_pci.exit ret void endif.0.i: ; preds = %probe_serial_pci.exit - 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: ; No predecessors! unreachable @@ -686,13 +683,13 @@ loopentry.0.i.no_exit.0.i_crit_edge: ; preds = %endif.0.i br label %no_exit.0.i no_exit.0.i: ; preds = %loopcont.0.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.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 = %no_exit.0.i br label %loopcont.0.i endif.1.i: ; preds = %no_exit.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: ; No predecessors! unreachable @@ -704,7 +701,7 @@ loopentry.1.i.no_exit.1.i_crit_edge: ; preds = %endif.1.i br label %no_exit.1.i no_exit.1.i: ; preds = %endif.2.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge - br bool false, label %shortcirc_next.0.i, label %no_exit.1.i.shortcirc_done.0.i_crit_edge + br i1 false, label %shortcirc_next.0.i, label %no_exit.1.i.shortcirc_done.0.i_crit_edge no_exit.1.i.shortcirc_done.0.i_crit_edge: ; preds = %no_exit.1.i br label %shortcirc_done.0.i @@ -713,10 +710,10 @@ shortcirc_next.0.i: ; preds = %no_exit.1.i br label %shortcirc_done.0.i shortcirc_done.0.i: ; preds = %shortcirc_next.0.i, %no_exit.1.i.shortcirc_done.0.i_crit_edge - br bool false, label %then.2.i, label %endif.2.i + br i1 false, label %then.2.i, label %endif.2.i then.2.i: ; preds = %shortcirc_done.0.i - br bool false, label %then.2.i.then.3.i_crit_edge, label %then.2.i.else.i_crit_edge + br i1 false, label %then.2.i.then.3.i_crit_edge, label %then.2.i.else.i_crit_edge then.2.i.else.i_crit_edge: ; preds = %then.2.i br label %else.i @@ -725,7 +722,7 @@ then.2.i.then.3.i_crit_edge: ; preds = %then.2.i br label %then.3.i endif.2.i: ; preds = %shortcirc_done.0.i - br bool false, label %endif.2.i.no_exit.1.i_crit_edge, label %endif.2.i.loopexit.1.i_crit_edge + br i1 false, label %endif.2.i.no_exit.1.i_crit_edge, label %endif.2.i.loopexit.1.i_crit_edge endif.2.i.loopexit.1.i_crit_edge: ; preds = %endif.2.i br label %loopexit.1.i @@ -734,7 +731,7 @@ endif.2.i.no_exit.1.i_crit_edge: ; preds = %endif.2.i br label %no_exit.1.i loopexit.1.i: ; preds = %endif.2.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge - br bool false, label %loopexit.1.i.then.3.i_crit_edge, label %loopexit.1.i.else.i_crit_edge + br i1 false, label %loopexit.1.i.then.3.i_crit_edge, label %loopexit.1.i.else.i_crit_edge loopexit.1.i.else.i_crit_edge: ; preds = %loopexit.1.i br label %else.i @@ -743,7 +740,7 @@ loopexit.1.i.then.3.i_crit_edge: ; preds = %loopexit.1.i br label %then.3.i then.3.i: ; preds = %loopexit.1.i.then.3.i_crit_edge, %then.2.i.then.3.i_crit_edge - br bool false, label %shortcirc_next.1.i, label %then.3.i.shortcirc_done.1.i_crit_edge + br i1 false, label %shortcirc_next.1.i, label %then.3.i.shortcirc_done.1.i_crit_edge then.3.i.shortcirc_done.1.i_crit_edge: ; preds = %then.3.i br label %shortcirc_done.1.i @@ -752,7 +749,7 @@ shortcirc_next.1.i: ; preds = %then.3.i br label %shortcirc_done.1.i shortcirc_done.1.i: ; preds = %shortcirc_next.1.i, %then.3.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 label %endif.3.i @@ -761,7 +758,7 @@ endif.4.i: ; preds = %shortcirc_done.1.i br label %endif.3.i else.i: ; preds = %loopexit.1.i.else.i_crit_edge, %then.2.i.else.i_crit_edge - br bool false, label %shortcirc_next.0.i.i, label %else.i.shortcirc_done.0.i.i_crit_edge + br i1 false, label %shortcirc_next.0.i.i, label %else.i.shortcirc_done.0.i.i_crit_edge else.i.shortcirc_done.0.i.i_crit_edge: ; preds = %else.i br label %shortcirc_done.0.i.i @@ -770,13 +767,13 @@ shortcirc_next.0.i.i: ; preds = %else.i br label %shortcirc_done.0.i.i shortcirc_done.0.i.i: ; preds = %shortcirc_next.0.i.i, %else.i.shortcirc_done.0.i.i_crit_edge - br bool false, label %shortcirc_next.1.i.i, label %shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge + br i1 false, label %shortcirc_next.1.i.i, label %shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge: ; preds = %shortcirc_done.0.i.i br label %shortcirc_done.1.i.i shortcirc_next.1.i.i: ; preds = %shortcirc_done.0.i.i - br bool false, label %loopentry.i.i2.i.no_exit.i.i3.i_crit_edge, label %loopentry.i.i2.i.loopexit.i.i.i_crit_edge + br i1 false, label %loopentry.i.i2.i.no_exit.i.i3.i_crit_edge, label %loopentry.i.i2.i.loopexit.i.i.i_crit_edge loopentry.i.i2.i: ; No predecessors! unreachable @@ -788,7 +785,7 @@ loopentry.i.i2.i.no_exit.i.i3.i_crit_edge: ; preds = %shortcirc_next.1.i.i br label %no_exit.i.i3.i no_exit.i.i3.i: ; preds = %endif.i.i.i.no_exit.i.i3.i_crit_edge, %loopentry.i.i2.i.no_exit.i.i3.i_crit_edge - br bool false, label %shortcirc_next.0.i.i.i, label %no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge + br i1 false, label %shortcirc_next.0.i.i.i, label %no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge: ; preds = %no_exit.i.i3.i br label %shortcirc_done.0.i.i.i @@ -797,7 +794,7 @@ shortcirc_next.0.i.i.i: ; preds = %no_exit.i.i3.i br label %shortcirc_done.0.i.i.i shortcirc_done.0.i.i.i: ; preds = %shortcirc_next.0.i.i.i, %no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge - br bool false, label %shortcirc_next.1.i.i.i, label %shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge + br i1 false, label %shortcirc_next.1.i.i.i, label %shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge: ; preds = %shortcirc_done.0.i.i.i br label %shortcirc_done.1.i.i.i @@ -806,7 +803,7 @@ shortcirc_next.1.i.i.i: ; preds = %shortcirc_done.0.i.i.i br label %shortcirc_done.1.i.i.i shortcirc_done.1.i.i.i: ; preds = %shortcirc_next.1.i.i.i, %shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge - br bool false, label %then.i.i.i, label %endif.i.i.i + br i1 false, label %then.i.i.i, label %endif.i.i.i then.i.i.i: ; preds = %shortcirc_done.1.i.i.i br label %then.0.i.i @@ -818,7 +815,7 @@ then.i.i.i.then.0.i.i_crit_edge: ; No predecessors! unreachable endif.i.i.i: ; preds = %shortcirc_done.1.i.i.i - br bool false, label %endif.i.i.i.no_exit.i.i3.i_crit_edge, label %endif.i.i.i.loopexit.i.i.i_crit_edge + br i1 false, label %endif.i.i.i.no_exit.i.i3.i_crit_edge, label %endif.i.i.i.loopexit.i.i.i_crit_edge endif.i.i.i.loopexit.i.i.i_crit_edge: ; preds = %endif.i.i.i br label %loopexit.i.i.i @@ -833,7 +830,7 @@ check_compatible_id.exit.i.i: ; No predecessors! unreachable shortcirc_done.1.i.i: ; preds = %loopexit.i.i.i, %shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge - br bool false, label %shortcirc_done.1.i.i.then.0.i.i_crit_edge, label %shortcirc_done.1.i.i.endif.0.i.i_crit_edge + br i1 false, label %shortcirc_done.1.i.i.then.0.i.i_crit_edge, label %shortcirc_done.1.i.i.endif.0.i.i_crit_edge shortcirc_done.1.i.i.endif.0.i.i_crit_edge: ; preds = %shortcirc_done.1.i.i br label %endif.0.i.i @@ -851,7 +848,7 @@ then.0.i.i.then.5.i_crit_edge: ; No predecessors! unreachable endif.0.i.i: ; preds = %shortcirc_done.1.i.i.endif.0.i.i_crit_edge - br bool false, label %endif.0.i.i.shortcirc_done.2.i.i_crit_edge, label %shortcirc_next.2.i.i + br i1 false, label %endif.0.i.i.shortcirc_done.2.i.i_crit_edge, label %shortcirc_next.2.i.i endif.0.i.i.shortcirc_done.2.i.i_crit_edge: ; preds = %endif.0.i.i br label %shortcirc_done.2.i.i @@ -860,7 +857,7 @@ shortcirc_next.2.i.i: ; preds = %endif.0.i.i br label %shortcirc_done.2.i.i shortcirc_done.2.i.i: ; preds = %shortcirc_next.2.i.i, %endif.0.i.i.shortcirc_done.2.i.i_crit_edge - br bool false, label %then.1.i.i, label %endif.1.i.i + br i1 false, label %then.1.i.i, label %endif.1.i.i then.1.i.i: ; preds = %shortcirc_done.2.i.i br label %then.5.i @@ -872,7 +869,7 @@ then.1.i.i.then.5.i_crit_edge: ; No predecessors! unreachable endif.1.i.i: ; preds = %shortcirc_done.2.i.i - br bool false, label %loopentry.0.i7.i.no_exit.0.i8.i_crit_edge, label %loopentry.0.i7.i.loopexit.0.i11.i_crit_edge + br i1 false, label %loopentry.0.i7.i.no_exit.0.i8.i_crit_edge, label %loopentry.0.i7.i.loopexit.0.i11.i_crit_edge loopentry.0.i7.i: ; No predecessors! unreachable @@ -884,7 +881,7 @@ loopentry.0.i7.i.no_exit.0.i8.i_crit_edge: ; preds = %endif.1.i.i br label %no_exit.0.i8.i no_exit.0.i8.i: ; preds = %loopexit.1.i.i.no_exit.0.i8.i_crit_edge, %loopentry.0.i7.i.no_exit.0.i8.i_crit_edge - br bool false, label %loopentry.1.i9.i.no_exit.1.i10.i_crit_edge, label %loopentry.1.i9.i.loopexit.1.i.i_crit_edge + br i1 false, label %loopentry.1.i9.i.no_exit.1.i10.i_crit_edge, label %loopentry.1.i9.i.loopexit.1.i.i_crit_edge loopentry.1.i9.i: ; No predecessors! unreachable @@ -896,13 +893,13 @@ loopentry.1.i9.i.no_exit.1.i10.i_crit_edge: ; preds = %no_exit.0.i8.i br label %no_exit.1.i10.i no_exit.1.i10.i: ; preds = %endif.2.i.i.no_exit.1.i10.i_crit_edge, %loopentry.1.i9.i.no_exit.1.i10.i_crit_edge - br bool false, label %shortcirc_next.3.i.i, label %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge + br i1 false, label %shortcirc_next.3.i.i, label %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge: ; preds = %no_exit.1.i10.i br label %shortcirc_done.3.i.i shortcirc_next.3.i.i: ; preds = %no_exit.1.i10.i - br bool false, label %shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge, label %shortcirc_next.4.i.i + br i1 false, label %shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge, label %shortcirc_next.4.i.i shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge: ; preds = %shortcirc_next.3.i.i br label %shortcirc_done.4.i.i @@ -911,22 +908,22 @@ shortcirc_next.4.i.i: ; preds = %shortcirc_next.3.i.i br label %shortcirc_done.4.i.i shortcirc_done.4.i.i: ; preds = %shortcirc_next.4.i.i, %shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge - br bool false, label %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge, label %shortcirc_next.5.i.i + br i1 false, label %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge, label %shortcirc_next.5.i.i shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge: ; preds = %shortcirc_done.4.i.i br label %shortcirc_done.5.i.i shortcirc_next.5.i.i: ; preds = %shortcirc_done.4.i.i - %tmp.68.i.i = seteq ushort 0, 1000 ; <bool> [#uses=1] + %tmp.68.i.i = icmp eq i16 0, 1000 ; <i1> [#uses=1] br label %shortcirc_done.5.i.i shortcirc_done.5.i.i: ; preds = %shortcirc_next.5.i.i, %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge - %shortcirc_val.4.i.i = phi bool [ true, %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge ], [ %tmp.68.i.i, %shortcirc_next.5.i.i ] ; <bool> [#uses=1] + %shortcirc_val.4.i.i = phi i1 [ true, %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge ], [ %tmp.68.i.i, %shortcirc_next.5.i.i ] ; <i1> [#uses=1] br label %shortcirc_done.3.i.i shortcirc_done.3.i.i: ; preds = %shortcirc_done.5.i.i, %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge - %shortcirc_val.5.i.i = phi bool [ false, %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge ], [ %shortcirc_val.4.i.i, %shortcirc_done.5.i.i ] ; <bool> [#uses=1] - br bool %shortcirc_val.5.i.i, label %then.2.i.i, label %endif.2.i.i + %shortcirc_val.5.i.i = phi i1 [ false, %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge ], [ %shortcirc_val.4.i.i, %shortcirc_done.5.i.i ] ; <i1> [#uses=1] + br i1 %shortcirc_val.5.i.i, label %then.2.i.i, label %endif.2.i.i then.2.i.i: ; preds = %shortcirc_done.3.i.i %port.2.i.i.8.lcssa20 = phi %struct.isapnp_port* [ null, %shortcirc_done.3.i.i ] ; <%struct.isapnp_port*> [#uses=0] @@ -939,7 +936,7 @@ then.2.i.i.then.5.i_crit_edge: ; No predecessors! unreachable endif.2.i.i: ; preds = %shortcirc_done.3.i.i - br bool false, label %endif.2.i.i.no_exit.1.i10.i_crit_edge, label %endif.2.i.i.loopexit.1.i.i_crit_edge + br i1 false, label %endif.2.i.i.no_exit.1.i10.i_crit_edge, label %endif.2.i.i.loopexit.1.i.i_crit_edge endif.2.i.i.loopexit.1.i.i_crit_edge: ; preds = %endif.2.i.i br label %loopexit.1.i.i @@ -948,7 +945,7 @@ endif.2.i.i.no_exit.1.i10.i_crit_edge: ; preds = %endif.2.i.i br label %no_exit.1.i10.i loopexit.1.i.i: ; preds = %endif.2.i.i.loopexit.1.i.i_crit_edge, %loopentry.1.i9.i.loopexit.1.i.i_crit_edge - br bool false, label %loopexit.1.i.i.no_exit.0.i8.i_crit_edge, label %loopexit.1.i.i.loopexit.0.i11.i_crit_edge + br i1 false, label %loopexit.1.i.i.no_exit.0.i8.i_crit_edge, label %loopexit.1.i.i.loopexit.0.i11.i_crit_edge loopexit.1.i.i.loopexit.0.i11.i_crit_edge: ; preds = %loopexit.1.i.i br label %loopexit.0.i11.i @@ -957,7 +954,7 @@ loopexit.1.i.i.no_exit.0.i8.i_crit_edge: ; preds = %loopexit.1.i.i br label %no_exit.0.i8.i loopexit.0.i11.i: ; preds = %loopexit.1.i.i.loopexit.0.i11.i_crit_edge, %loopentry.0.i7.i.loopexit.0.i11.i_crit_edge - br bool false, label %serial_pnp_guess_board.exit.i.then.5.i_crit_edge, label %serial_pnp_guess_board.exit.i.endif.5.i_crit_edge + br i1 false, label %serial_pnp_guess_board.exit.i.then.5.i_crit_edge, label %serial_pnp_guess_board.exit.i.endif.5.i_crit_edge serial_pnp_guess_board.exit.i: ; No predecessors! unreachable @@ -975,7 +972,7 @@ endif.5.i: ; preds = %serial_pnp_guess_board.exit.i.endif.5.i_crit_edge, %then. br label %endif.3.i endif.3.i: ; preds = %endif.5.i, %endif.4.i, %then.4.i - br bool false, label %then.6.i, label %endif.3.i.endif.6.i_crit_edge + br i1 false, label %then.6.i, label %endif.3.i.endif.6.i_crit_edge endif.3.i.endif.6.i_crit_edge: ; preds = %endif.3.i br label %endif.6.i @@ -984,7 +981,7 @@ then.6.i: ; preds = %endif.3.i br label %loopentry.0.i.i loopentry.0.i.i: ; preds = %endif.i.i, %then.6.i - br bool false, label %loopentry.0.i.i.no_exit.0.i.i_crit_edge, label %loopentry.0.i.i.loopexit.0.i.i_crit_edge + br i1 false, label %loopentry.0.i.i.no_exit.0.i.i_crit_edge, label %loopentry.0.i.i.loopexit.0.i.i_crit_edge loopentry.0.i.i.loopexit.0.i.i_crit_edge: ; preds = %loopentry.0.i.i br label %loopexit.0.i.i @@ -993,19 +990,19 @@ loopentry.0.i.i.no_exit.0.i.i_crit_edge: ; preds = %loopentry.0.i.i br label %no_exit.0.i.i no_exit.0.i.i: ; preds = %clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge, %loopentry.0.i.i.no_exit.0.i.i_crit_edge - br bool false, label %then.i.i, label %endif.i.i + br i1 false, label %then.i.i, label %endif.i.i then.i.i: ; preds = %no_exit.0.i.i br label %loopentry.i.i.i loopentry.i.i.i: ; preds = %no_exit.i.i.i, %then.i.i - br bool false, label %no_exit.i.i.i, label %clear_bit195.exit.i.i + br i1 false, label %no_exit.i.i.i, label %clear_bit195.exit.i.i no_exit.i.i.i: ; preds = %loopentry.i.i.i br label %loopentry.i.i.i clear_bit195.exit.i.i: ; preds = %loopentry.i.i.i - br bool false, label %clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge, label %clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge + br i1 false, label %clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge, label %clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge: ; preds = %clear_bit195.exit.i.i br label %loopexit.0.i.i @@ -1017,7 +1014,7 @@ endif.i.i: ; preds = %no_exit.0.i.i br label %loopentry.0.i.i loopexit.0.i.i: ; preds = %clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge, %loopentry.0.i.i.loopexit.0.i.i_crit_edge - br bool false, label %loopentry.1.i.i.no_exit.1.i.i_crit_edge, label %loopentry.1.i.i.avoid_irq_share.exit.i_crit_edge + br i1 false, label %loopentry.1.i.i.no_exit.1.i.i_crit_edge, label %loopentry.1.i.i.avoid_irq_share.exit.i_crit_edge loopentry.1.i.i: ; No predecessors! unreachable @@ -1029,7 +1026,7 @@ loopentry.1.i.i.no_exit.1.i.i_crit_edge: ; preds = %loopexit.0.i.i br label %no_exit.1.i.i no_exit.1.i.i: ; preds = %loopexit.2.i.i.no_exit.1.i.i_crit_edge, %loopentry.1.i.i.no_exit.1.i.i_crit_edge - br bool false, label %loopentry.2.i.i.no_exit.2.i.i_crit_edge, label %loopentry.2.i.i.loopexit.2.i.i_crit_edge + br i1 false, label %loopentry.2.i.i.no_exit.2.i.i_crit_edge, label %loopentry.2.i.i.loopexit.2.i.i_crit_edge loopentry.2.i.i: ; No predecessors! unreachable @@ -1041,7 +1038,7 @@ loopentry.2.i.i.no_exit.2.i.i_crit_edge: ; preds = %no_exit.1.i.i br label %no_exit.2.i.i no_exit.2.i.i: ; preds = %no_exit.2.i.i.no_exit.2.i.i_crit_edge, %loopentry.2.i.i.no_exit.2.i.i_crit_edge - br bool false, label %no_exit.2.i.i.no_exit.2.i.i_crit_edge, label %no_exit.2.i.i.loopexit.2.i.i_crit_edge + br i1 false, label %no_exit.2.i.i.no_exit.2.i.i_crit_edge, label %no_exit.2.i.i.loopexit.2.i.i_crit_edge no_exit.2.i.i.loopexit.2.i.i_crit_edge: ; preds = %no_exit.2.i.i br label %loopexit.2.i.i @@ -1050,7 +1047,7 @@ no_exit.2.i.i.no_exit.2.i.i_crit_edge: ; preds = %no_exit.2.i.i br label %no_exit.2.i.i loopexit.2.i.i: ; preds = %no_exit.2.i.i.loopexit.2.i.i_crit_edge, %loopentry.2.i.i.loopexit.2.i.i_crit_edge - br bool false, label %loopexit.2.i.i.no_exit.1.i.i_crit_edge, label %loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge + br i1 false, label %loopexit.2.i.i.no_exit.1.i.i_crit_edge, label %loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge: ; preds = %loopexit.2.i.i br label %avoid_irq_share.exit.i @@ -1065,7 +1062,7 @@ endif.6.i: ; preds = %avoid_irq_share.exit.i, %endif.3.i.endif.6.i_crit_edge br label %loopcont.0.i loopcont.0.i: ; preds = %endif.6.i, %then.5.i, %then.1.i - br bool false, label %loopcont.0.i.no_exit.0.i_crit_edge, label %loopcont.0.i.loopexit.0.i_crit_edge + br i1 false, label %loopcont.0.i.no_exit.0.i_crit_edge, label %loopcont.0.i.loopexit.0.i_crit_edge loopcont.0.i.loopexit.0.i_crit_edge: ; preds = %loopcont.0.i br label %loopexit.0.i diff --git a/test/Transforms/CondProp/basictest.ll b/test/Transforms/CondProp/basictest.ll index 1e2a936..eda104d 100644 --- a/test/Transforms/CondProp/basictest.ll +++ b/test/Transforms/CondProp/basictest.ll @@ -1,19 +1,27 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -condprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -condprop | llvm-dis | \ ; RUN: not grep {br label} -int %test(bool %C) { - br bool %C, label %T1, label %F1 -T1: - br label %Cont -F1: - br label %Cont -Cont: - %C2 = phi bool [false, %F1], [true, %T1] - br bool %C2, label %T2, label %F2 -T2: - call void %bar() - ret int 17 -F2: - ret int 1 + +define i32 @test(i1 %C) { + br i1 %C, label %T1, label %F1 + +T1: ; preds = %0 + br label %Cont + +F1: ; preds = %0 + br label %Cont + +Cont: ; preds = %F1, %T1 + %C2 = phi i1 [ false, %F1 ], [ true, %T1 ] ; <i1> [#uses=1] + br i1 %C2, label %T2, label %F2 + +T2: ; preds = %Cont + call void @bar( ) + ret i32 17 + +F2: ; preds = %Cont + ret i32 1 } -declare void %bar() + +declare void @bar() + diff --git a/test/Transforms/CondProp/phisimplify.ll b/test/Transforms/CondProp/phisimplify.ll index a4728eb..5b5a304 100644 --- a/test/Transforms/CondProp/phisimplify.ll +++ b/test/Transforms/CondProp/phisimplify.ll @@ -1,33 +1,43 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -condprop | llvm-dis | not grep phi +; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi -int %test(uint %C, bool %Val) { - switch uint %C, label %T1 [ - uint 4, label %T2 - uint 17, label %T3 +define i32 @test(i32 %C, i1 %Val) { + switch i32 %C, label %T1 [ + i32 4, label %T2 + i32 17, label %T3 ] -T1: - call void %a() - br label %Cont -T2: - call void %b() - br label %Cont -T3: - call void %c() - br label %Cont - -Cont: - ;; PHI becomes dead after threading T2 - %C2 = phi bool [%Val, %T1], [true, %T2], [%Val, %T3] - br bool %C2, label %L2, label %F2 -L2: - call void %d() - ret int 17 -F2: - call void %e() - ret int 1 + +T1: ; preds = %0 + call void @a( ) + br label %Cont + +T2: ; preds = %0 + call void @b( ) + br label %Cont + +T3: ; preds = %0 + call void @c( ) + br label %Cont + +Cont: ; preds = %T3, %T2, %T1 + ;; PHI becomes dead after threading T2 + %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ] ; <i1> [#uses=1] + br i1 %C2, label %L2, label %F2 + +L2: ; preds = %Cont + call void @d( ) + ret i32 17 + +F2: ; preds = %Cont + call void @e( ) + ret i32 1 } -declare void %a() -declare void %b() -declare void %c() -declare void %d() -declare void %e() + +declare void @a() + +declare void @b() + +declare void @c() + +declare void @d() + +declare void @e() diff --git a/test/Transforms/CondProp/phisimplify2.ll b/test/Transforms/CondProp/phisimplify2.ll index 4c83fa3..03d12e3 100644 --- a/test/Transforms/CondProp/phisimplify2.ll +++ b/test/Transforms/CondProp/phisimplify2.ll @@ -1,36 +1,46 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -condprop | llvm-dis | not grep phi +; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi -declare bool %foo() +declare i1 @foo() -int %test(uint %C) { - %Val = call bool %foo() - switch uint %C, label %T1 [ - uint 4, label %T2 - uint 17, label %T3 +define i32 @test(i32 %C) { + %Val = call i1 @foo( ) ; <i1> [#uses=2] + switch i32 %C, label %T1 [ + i32 4, label %T2 + i32 17, label %T3 ] -T1: - call void %a() - br label %Cont -T2: - call void %b() - br label %Cont -T3: - call void %c() - br label %Cont - -Cont: - ;; PHI becomes dead after threading T2 - %C2 = phi bool [%Val, %T1], [true, %T2], [%Val, %T3] - br bool %C2, label %L2, label %F2 -L2: - call void %d() - ret int 17 -F2: - call void %e() - ret int 1 + +T1: ; preds = %0 + call void @a( ) + br label %Cont + +T2: ; preds = %0 + call void @b( ) + br label %Cont + +T3: ; preds = %0 + call void @c( ) + br label %Cont + +Cont: ; preds = %T3, %T2, %T1 + ;; PHI becomes dead after threading T2 + %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ] ; <i1> [#uses=1] + br i1 %C2, label %L2, label %F2 + +L2: ; preds = %Cont + call void @d( ) + ret i32 17 + +F2: ; preds = %Cont + call void @e( ) + ret i32 1 } -declare void %a() -declare void %b() -declare void %c() -declare void %d() -declare void %e() + +declare void @a() + +declare void @b() + +declare void @c() + +declare void @d() + +declare void @e() diff --git a/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll b/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll index 331501a..1a0845c 100644 --- a/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll +++ b/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll @@ -1,14 +1,15 @@ ; Make sure that the constant propogator doesn't divide by zero! ; -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop +; RUN: llvm-as < %s | opt -constprop ; -int "test"() { - %R = div int 12, 0 - ret int %R +define i32 @test() { + %R = sdiv i32 12, 0 ; <i32> [#uses=1] + ret i32 %R } -int "test2"() { - %R = rem int 12, 0 - ret int %R +define i32 @test2() { + %R = srem i32 12, 0 ; <i32> [#uses=1] + ret i32 %R } + diff --git a/test/Transforms/ConstProp/2002-05-03-NotOperator.ll b/test/Transforms/ConstProp/2002-05-03-NotOperator.ll index 51f352c..7a281aa 100644 --- a/test/Transforms/ConstProp/2002-05-03-NotOperator.ll +++ b/test/Transforms/ConstProp/2002-05-03-NotOperator.ll @@ -4,15 +4,16 @@ ; Fix #2: The unary not instruction now no longer exists. Change to xor. -; RUN: llvm-upgrade < $test | llvm-as | opt -constprop | llvm-dis | \ -; RUN: not grep {int 0} +; RUN: llvm-as < $test | opt -constprop | llvm-dis | \ +; RUN: not grep {i32 0} -int "test1"() { - %R = xor int 123, -1 - ret int %R +define i32 @test1() { + %R = xor i32 123, -1 ; <i32> [#uses=1] + ret i32 %R } -int "test2"() { - %R = xor int -123, -1 - ret int %R +define i32 @test2() { + %R = xor i32 -123, -1 ; <i32> [#uses=1] + ret i32 %R } + diff --git a/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll b/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll index cf44346..781d796 100644 --- a/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll +++ b/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll @@ -1,20 +1,20 @@ ; SetCC on boolean values was not implemented! -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | \ ; RUN: not grep set -bool "test1"() { - %A = setle bool true, false - %B = setge bool true, false - %C = setlt bool false, true - %D = setgt bool true, false - %E = seteq bool false, false - %F = setne bool false, true - %G = and bool %A, %B - %H = and bool %C, %D - %I = and bool %E, %F - %J = and bool %G, %H - %K = and bool %I, %J - ret bool %K +define i1 @test1() { + %A = icmp ule i1 true, false ; <i1> [#uses=1] + %B = icmp uge i1 true, false ; <i1> [#uses=1] + %C = icmp ult i1 false, true ; <i1> [#uses=1] + %D = icmp ugt i1 true, false ; <i1> [#uses=1] + %E = icmp eq i1 false, false ; <i1> [#uses=1] + %F = icmp ne i1 false, true ; <i1> [#uses=1] + %G = and i1 %A, %B ; <i1> [#uses=1] + %H = and i1 %C, %D ; <i1> [#uses=1] + %I = and i1 %E, %F ; <i1> [#uses=1] + %J = and i1 %G, %H ; <i1> [#uses=1] + %K = and i1 %I, %J ; <i1> [#uses=1] + ret i1 %K } diff --git a/test/Transforms/ConstProp/2003-05-12-DivideError.ll b/test/Transforms/ConstProp/2003-05-12-DivideError.ll index 289384b..a3f239f 100644 --- a/test/Transforms/ConstProp/2003-05-12-DivideError.ll +++ b/test/Transforms/ConstProp/2003-05-12-DivideError.ll @@ -1,15 +1,15 @@ ; Make sure that the constant propagator doesn't cause a sigfpe ; -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop +; RUN: llvm-as < %s | opt -constprop ; -int "test"() { - %R = div int -2147483648, -1 - ret int %R +define i32 @test() { + %R = sdiv i32 -2147483648, -1 ; <i32> [#uses=1] + ret i32 %R } -int "test2"() { - %R = rem int -2147483648, -1 - ret int %R +define i32 @test2() { + %R = srem i32 -2147483648, -1 ; <i32> [#uses=1] + ret i32 %R } diff --git a/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll b/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll index ee1f251..9ffbcd1 100644 --- a/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll +++ b/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll @@ -1,13 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ -; RUN: not grep {ret bool false} +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ +; RUN: not grep {ret i1 false} -%b = external global [2 x { }] +@b = external global [2 x { }] ; <[2 x { }]*> [#uses=2] -implementation - -bool %f() { - ; tmp.2 -> true, not false. - %tmp.2 = seteq { }* getelementptr ([2 x { }]* %b, int 0, int 0), - getelementptr ([2 x { }]* %b, int 0, int 1) - ret bool %tmp.2 +define i1 @f() { + %tmp.2 = icmp eq { }* getelementptr ([2 x { }]* @b, i32 0, i32 0), getelementptr ([2 x { }]* @b, i32 0, i32 1) ; <i1> [#uses=1] + ret i1 %tmp.2 } + diff --git a/test/Transforms/ConstProp/2006-11-30-vector-cast.ll b/test/Transforms/ConstProp/2006-11-30-vector-cast.ll index 80f4252..812cbcf 100644 --- a/test/Transforms/ConstProp/2006-11-30-vector-cast.ll +++ b/test/Transforms/ConstProp/2006-11-30-vector-cast.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ ; RUN: grep {i32 -1} -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ ; RUN: not grep zeroinitializer -< 4 x uint> %test() { - %tmp40 = bitcast <2 x long> bitcast (<4 x int> < int 0, int 0, int -1, int 0 > to <2 x long>) to <4 x uint> - ret <4 x uint> %tmp40 +define <4 x i32> @test() { + %tmp40 = bitcast <2 x i64> bitcast (<4 x i32> < i32 0, i32 0, i32 -1, i32 0 > to <2 x i64>) to <4 x i32>; <<4 x i32>> [#uses=1] + ret <4 x i32> %tmp40 } + diff --git a/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll b/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll index 779f6be..889ef56 100644 --- a/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll +++ b/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll @@ -1,6 +1,7 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ ; RUN: grep {ret i1 false} -bool %test() { - %X = trunc uint 320 to bool - ret bool %X +define i1 @test() { + %X = trunc i32 320 to i1 ; <i1> [#uses=1] + ret i1 %X } + diff --git a/test/Transforms/ConstProp/2006-12-01-bool-casts.ll b/test/Transforms/ConstProp/2006-12-01-bool-casts.ll index 2474132..dd1e46d 100644 --- a/test/Transforms/ConstProp/2006-12-01-bool-casts.ll +++ b/test/Transforms/ConstProp/2006-12-01-bool-casts.ll @@ -1,15 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ ; RUN: grep {ret i32 -1} -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ ; RUN: grep {ret i32 1} -int %test1() { - %A = sext bool true to int - ret int %A +define i32 @test1() { + %A = sext i1 true to i32 ; <i32> [#uses=1] + ret i32 %A } -uint %test2() { - %A = zext bool true to uint - ret uint %A +define i32 @test2() { + %A = zext i1 true to i32 ; <i32> [#uses=1] + ret i32 %A } diff --git a/test/Transforms/ConstProp/basictest.ll b/test/Transforms/ConstProp/basictest.ll index 178467d..56892d9 100644 --- a/test/Transforms/ConstProp/basictest.ll +++ b/test/Transforms/ConstProp/basictest.ll @@ -1,16 +1,20 @@ ; This is a basic sanity check for constant propogation. The add instruction ; should be eliminated. -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not grep add +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep add -int %test(bool %B) { - br bool %B, label %BB1, label %BB2 -BB1: - %Val = add int 0, 0 - br label %BB3 -BB2: - br label %BB3 -BB3: - %Ret = phi int [%Val, %BB1], [1, %BB2] - ret int %Ret +define i32 @test(i1 %B) { + br i1 %B, label %BB1, label %BB2 + +BB1: ; preds = %0 + %Val = add i32 0, 0 ; <i32> [#uses=1] + br label %BB3 + +BB2: ; preds = %0 + br label %BB3 + +BB3: ; preds = %BB2, %BB1 + %Ret = phi i32 [ %Val, %BB1 ], [ 1, %BB2 ] ; <i32> [#uses=1] + ret i32 %Ret } + diff --git a/test/Transforms/ConstProp/bitcast.ll b/test/Transforms/ConstProp/bitcast.ll index 1fc2570..bf943c9 100644 --- a/test/Transforms/ConstProp/bitcast.ll +++ b/test/Transforms/ConstProp/bitcast.ll @@ -1,3 +1,2 @@ -; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep 0x36A0000000000000 - -%A = global float bitcast (int 1 to float) +; RUN: llvm-as < %s | llvm-dis | grep 0x36A0000000000000 +@A = global float 0x36A0000000000000 ; <float*> [#uses=0] diff --git a/test/Transforms/ConstProp/bswap.ll b/test/Transforms/ConstProp/bswap.ll index d31fa9d..4975827 100644 --- a/test/Transforms/ConstProp/bswap.ll +++ b/test/Transforms/ConstProp/bswap.ll @@ -1,22 +1,25 @@ ; bswap should be constant folded when it is passed a constant argument -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | not grep call +; RUN: llvm-as < %s | opt -constprop | llvm-dis | not grep call -declare ushort %llvm.bswap.i16(ushort) -declare uint %llvm.bswap.i32(uint) -declare ulong %llvm.bswap.i64(ulong) +declare i16 @llvm.bswap.i16(i16) -ushort %W() { - %Z = call ushort %llvm.bswap.i16(ushort 1) - ret ushort %Z +declare i32 @llvm.bswap.i32(i32) + +declare i64 @llvm.bswap.i64(i64) + +define i16 @W() { + %Z = call i16 @llvm.bswap.i16( i16 1 ) ; <i16> [#uses=1] + ret i16 %Z } -uint %X() { - %Z = call uint %llvm.bswap.i32(uint 1) - ret uint %Z +define i32 @X() { + %Z = call i32 @llvm.bswap.i32( i32 1 ) ; <i32> [#uses=1] + ret i32 %Z } -ulong %Y() { - %Z = call ulong %llvm.bswap.i64(ulong 1) - ret ulong %Z +define i64 @Y() { + %Z = call i64 @llvm.bswap.i64( i64 1 ) ; <i64> [#uses=1] + ret i64 %Z } + diff --git a/test/Transforms/ConstProp/calls.ll b/test/Transforms/ConstProp/calls.ll index c4a8206..126db4c 100644 --- a/test/Transforms/ConstProp/calls.ll +++ b/test/Transforms/ConstProp/calls.ll @@ -1,25 +1,30 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | not grep call - -declare double %cos(double) -declare double %sin(double) -declare double %tan(double) -declare double %sqrt(double) -declare bool %llvm.isunordered.f64(double, double) - -double %T() { - %A = call double %cos(double 0.0) - %B = call double %sin(double 0.0) - %a = add double %A, %B - %C = call double %tan(double 0.0) - %b = add double %a, %C - %D = call double %sqrt(double 4.0) - %c = add double %b, %D - ret double %c +; RUN: llvm-as < %s | opt -constprop | llvm-dis | not grep call + +declare double @cos(double) + +declare double @sin(double) + +declare double @tan(double) + +declare double @sqrt(double) + +declare i1 @llvm.isunordered.f64(double, double) + +define double @T() { + %A = call double @cos( double 0.000000e+00 ) ; <double> [#uses=1] + %B = call double @sin( double 0.000000e+00 ) ; <double> [#uses=1] + %a = add double %A, %B ; <double> [#uses=1] + %C = call double @tan( double 0.000000e+00 ) ; <double> [#uses=1] + %b = add double %a, %C ; <double> [#uses=1] + %D = call double @sqrt( double 4.000000e+00 ) ; <double> [#uses=1] + %c = add double %b, %D ; <double> [#uses=1] + ret double %c } -bool %TNAN() { - %A = call bool %llvm.isunordered.f64(double 0x7FF8000000000000, double 1.0) ;; it's a nan! - %B = call bool %llvm.isunordered.f64(double 123.0, double 1.0) - %C = or bool %A, %B - ret bool %C +define i1 @TNAN() { + %A = fcmp uno double 0x7FF8000000000000, 1.000000e+00 ; <i1> [#uses=1] + %B = fcmp uno double 1.230000e+02, 1.000000e+00 ; <i1> [#uses=1] + %C = or i1 %A, %B ; <i1> [#uses=1] + ret i1 %C } + diff --git a/test/Transforms/ConstProp/float-to-ptr-cast.ll b/test/Transforms/ConstProp/float-to-ptr-cast.ll index 239b748..cbf84f5 100644 --- a/test/Transforms/ConstProp/float-to-ptr-cast.ll +++ b/test/Transforms/ConstProp/float-to-ptr-cast.ll @@ -1,11 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop | llvm-dis | \ ; RUN: grep -F {ret i32* null} | count 2 -int* %test1() { - %X = cast float 0.0 to int* - ret int* %X +define i32* @test1() { + %X = inttoptr i64 0 to i32* ; <i32*> [#uses=1] + ret i32* %X } -int* %test2() { - ret int* cast (float 0.0 to int*) +define i32* @test2() { + ret i32* null } + diff --git a/test/Transforms/ConstProp/logicaltest.ll b/test/Transforms/ConstProp/logicaltest.ll index ce31114..81bdb95 100644 --- a/test/Transforms/ConstProp/logicaltest.ll +++ b/test/Transforms/ConstProp/logicaltest.ll @@ -1,14 +1,35 @@ ; Ensure constant propogation of logical instructions is working correctly. -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | \ +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | \ ; RUN: not egrep {and|or|xor} +define i32 @test1() { + %R = and i32 4, 1234 ; <i32> [#uses=1] + ret i32 %R +} -int "test1"() { %R = and int 4,1234 ret int %R } -bool "test1"() { %R = and bool true, false ret bool %R } +define i1 @test1.upgrd.1() { + %R = and i1 true, false ; <i1> [#uses=1] + ret i1 %R +} -int "test2"() { %R = or int 4,1234 ret int %R } -bool "test2"() { %R = or bool true, false ret bool %R } +define i32 @test2() { + %R = or i32 4, 1234 ; <i32> [#uses=1] + ret i32 %R +} + +define i1 @test2.upgrd.2() { + %R = or i1 true, false ; <i1> [#uses=1] + ret i1 %R +} + +define i32 @test3() { + %R = xor i32 4, 1234 ; <i32> [#uses=1] + ret i32 %R +} + +define i1 @test3.upgrd.3() { + %R = xor i1 true, false ; <i1> [#uses=1] + ret i1 %R +} -int "test3"() { %R = xor int 4,1234 ret int %R } -bool "test3"() { %R = xor bool true, false ret bool %R } diff --git a/test/Transforms/ConstProp/nottest.ll b/test/Transforms/ConstProp/nottest.ll index 022a513..41ea1b3 100644 --- a/test/Transforms/ConstProp/nottest.ll +++ b/test/Transforms/ConstProp/nottest.ll @@ -1,19 +1,19 @@ ; Ensure constant propogation of 'not' instructions is working correctly. -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not grep xor +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep xor -int "test1"() { - %R = xor int 4, -1 - ret int %R +define i32 @test1() { + %R = xor i32 4, -1 ; <i32> [#uses=1] + ret i32 %R } -int "test2"() { - %R = xor int -23, -1 - ret int %R +define i32 @test2() { + %R = xor i32 -23, -1 ; <i32> [#uses=1] + ret i32 %R } -bool "test3"() { - %R = xor bool true, true - ret bool %R +define i1 @test3() { + %R = xor i1 true, true ; <i1> [#uses=1] + ret i1 %R } diff --git a/test/Transforms/ConstProp/phi.ll b/test/Transforms/ConstProp/phi.ll index d7624dc..858c0be 100644 --- a/test/Transforms/ConstProp/phi.ll +++ b/test/Transforms/ConstProp/phi.ll @@ -1,14 +1,17 @@ ; This is a basic sanity check for constant propogation. The add instruction ; should be eliminated. -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not grep phi +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep phi -int %test(bool %B) { +define i32 @test(i1 %B) { BB0: - br bool %B, label %BB1, label %BB3 -BB1: - br label %BB3 -BB3: - %Ret = phi int [1, %BB0], [1, %BB1] - ret int %Ret + br i1 %B, label %BB1, label %BB3 + +BB1: ; preds = %BB0 + br label %BB3 + +BB3: ; preds = %BB1, %BB0 + %Ret = phi i32 [ 1, %BB0 ], [ 1, %BB1 ] ; <i32> [#uses=1] + ret i32 %Ret } + diff --git a/test/Transforms/ConstProp/remtest.ll b/test/Transforms/ConstProp/remtest.ll index fd56012..11861a4 100644 --- a/test/Transforms/ConstProp/remtest.ll +++ b/test/Transforms/ConstProp/remtest.ll @@ -1,23 +1,24 @@ ; Ensure constant propagation of remainder instructions is working correctly. -; RUN: llvm-upgrade < %s | llvm-as | opt -constprop -die | llvm-dis | not grep rem +; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep rem -int %test1() { - %R = rem int 4, 3 - ret int %R +define i32 @test1() { + %R = srem i32 4, 3 ; <i32> [#uses=1] + ret i32 %R } -int %test2() { - %R = rem int 123, -23 - ret int %R +define i32 @test2() { + %R = srem i32 123, -23 ; <i32> [#uses=1] + ret i32 %R } -float %test3() { - %R = rem float 0x4028E66660000000, 0x405ECDA1C0000000 - ret float %R +define float @test3() { + %R = frem float 0x4028E66660000000, 0x405ECDA1C0000000 ; <float> [#uses=1] + ret float %R } -double %test4() { - %R = rem double 0x4073833BEE07AFF8, 0x4028AAABB2A0D19C - ret double %R +define double @test4() { + %R = frem double 0x4073833BEE07AFF8, 0x4028AAABB2A0D19C ; <double> [#uses=1] + ret double %R } + diff --git a/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll index 8d3d434..658944d 100644 --- a/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll +++ b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll @@ -1,14 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constmerge > /dev/null +; RUN: llvm-as < %s | opt -constmerge > /dev/null -%foo = internal constant {int} {int 7} -%bar = internal constant {int} {int 7} +@foo.upgrd.1 = internal constant { i32 } { i32 7 } ; <{ i32 }*> [#uses=1] +@bar = internal constant { i32 } { i32 7 } ; <{ i32 }*> [#uses=1] -implementation +declare i32 @test(i32*) -declare int %test(int*) - -void %foo() { - call int %test(int* getelementptr ( {int} * %foo, long 0, uint 0)) - call int %test(int* getelementptr ( {int} * %bar, long 0, uint 0)) - ret void +define void @foo() { + call i32 @test( i32* getelementptr ({ i32 }* @foo.upgrd.1, i64 0, i32 0) ) ; <i32>:1 [#uses=0] + call i32 @test( i32* getelementptr ({ i32 }* @bar, i64 0, i32 0) ) ; <i32>:2 [#uses=0] + ret void } + diff --git a/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll b/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll index 72f8ecf..9a9c3dd 100644 --- a/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll +++ b/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll @@ -1,7 +1,5 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constmerge | llvm-dis | %prcontext foo 2 | grep bar +; RUN: llvm-as < %s | opt -constmerge | llvm-dis | %prcontext foo 2 | grep bar -%foo = constant int 6 -%bar = constant int 6 - -implementation +@foo = constant i32 6 ; <i32*> [#uses=0] +@bar = constant i32 6 ; <i32*> [#uses=0] diff --git a/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll b/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll index 36786d9..a621b59 100644 --- a/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll +++ b/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll @@ -1,15 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -constmerge | llvm-dis | grep foo -; RUN: llvm-upgrade < %s | llvm-as | opt -constmerge | llvm-dis | grep bar +; RUN: llvm-as < %s | opt -constmerge | llvm-dis | grep foo +; RUN: llvm-as < %s | opt -constmerge | llvm-dis | grep bar ; Don't merge constants in different sections. -%G1 = internal constant int 1, section "foo" -%G2 = internal constant int 1, section "bar" -%G3 = internal constant int 1, section "bar" +@G1 = internal constant i32 1, section "foo" ; <i32*> [#uses=1] +@G2 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] +@G3 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] -void %test(int** %P1, int **%P2, int **%P3) { - store int* %G1, int** %P1 - store int* %G2, int** %P2 - store int* %G3, int** %P3 - ret void +define void @test(i32** %P1, i32** %P2, i32** %P3) { + store i32* @G1, i32** %P1 + store i32* @G2, i32** %P2 + store i32* @G3, i32** %P3 + ret void } + diff --git a/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll b/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll index 2a7b3a1..0d86800 100644 --- a/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll +++ b/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll @@ -1,13 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim -disable-output +; RUN: llvm-as < %s | opt -deadargelim -disable-output -implementation - -internal csretcc void %build_delaunay({int}* %agg.result) { - ret void +define internal void @build_delaunay({ i32 }* sret %agg.result) { + ret void } -void %test() { - call csretcc void %build_delaunay({int}* null) - ret void +define void @test() { + call void @build_delaunay( { i32 }* sret null ) + ret void } diff --git a/test/Transforms/DeadArgElim/basictest.ll b/test/Transforms/DeadArgElim/basictest.ll index a3a4235..5f68f98 100644 --- a/test/Transforms/DeadArgElim/basictest.ll +++ b/test/Transforms/DeadArgElim/basictest.ll @@ -1,37 +1,36 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim | llvm-dis | not grep DEADARG - -implementation +; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep DEADARG ; test - an obviously dead argument -internal int %test(int %v, int %DEADARG1, int* %p) { - store int %v, int* %p - ret int %v +define internal i32 @test(i32 %v, i32 %DEADARG1, i32* %p) { + store i32 %v, i32* %p + ret i32 %v } ; hardertest - an argument which is only used by a call of a function with a ; dead argument. -internal int %hardertest(int %DEADARG2) { - %p = alloca int - %V = call int %test(int 5, int %DEADARG2, int* %p) - ret int %V +define internal i32 @hardertest(i32 %DEADARG2) { + %p = alloca i32 ; <i32*> [#uses=1] + %V = call i32 @test( i32 5, i32 %DEADARG2, i32* %p ) ; <i32> [#uses=1] + ret i32 %V } ; evenhardertest - recursive dead argument... -internal void %evenhardertest(int %DEADARG3) { - call void %evenhardertest(int %DEADARG3) - ret void +define internal void @evenhardertest(i32 %DEADARG3) { + call void @evenhardertest( i32 %DEADARG3 ) + ret void } -internal void %needarg(int %TEST) { - call int %needarg2(int %TEST) - ret void +define internal void @needarg(i32 %TEST) { + call i32 @needarg2( i32 %TEST ) ; <i32>:1 [#uses=0] + ret void } -internal int %needarg2(int %TEST) { - ret int %TEST +define internal i32 @needarg2(i32 %TEST) { + ret i32 %TEST } -internal void %needarg3(int %TEST3) { - call void %needarg(int %TEST3) - ret void +define internal void @needarg3(i32 %TEST3) { + call void @needarg( i32 %TEST3 ) + ret void } + diff --git a/test/Transforms/DeadArgElim/dead_vaargs.ll b/test/Transforms/DeadArgElim/dead_vaargs.ll index ecb84cc..a4444bc 100644 --- a/test/Transforms/DeadArgElim/dead_vaargs.ll +++ b/test/Transforms/DeadArgElim/dead_vaargs.ll @@ -1,12 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim | llvm-dis | not grep 47 -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim | llvm-dis | not grep 1.0 +; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep 47 +; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep 1.0 -int %bar(int %A) { - %tmp4 = tail call int (int, ...)* %foo( int %A, int %A, int %A, int %A, ulong 47, double 1.000000e+00 ) - ret int %tmp4 +define i32 @bar(i32 %A) { + %tmp4 = tail call i32 (i32, ...)* @foo( i32 %A, i32 %A, i32 %A, i32 %A, i64 47, double 1.000000e+00 ) ; <i32> [#uses=1] + ret i32 %tmp4 } -internal int %foo(int %X, ...) { - ret int %X +define internal i32 @foo(i32 %X, ...) { + ret i32 %X } diff --git a/test/Transforms/DeadArgElim/deadretval.ll b/test/Transforms/DeadArgElim/deadretval.ll index ccfbc2f..5395290 100644 --- a/test/Transforms/DeadArgElim/deadretval.ll +++ b/test/Transforms/DeadArgElim/deadretval.ll @@ -1,19 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim | llvm-dis | not grep DEAD +; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep DEAD -implementation - -internal int %test(int %DEADARG) { ; Dead arg only used by dead retval - ret int %DEADARG +; Dead arg only used by dead retval +define internal i32 @test(i32 %DEADARG) { + ret i32 %DEADARG } -int %test2(int %A) { - %DEAD = call int %test(int %A) - ret int 123 +define i32 @test2(i32 %A) { + %DEAD = call i32 @test( i32 %A ) ; <i32> [#uses=0] + ret i32 123 } -int %test3() { - %X = call int %test2(int 3232) - %Y = add int %X, -123 - ret int %Y +define i32 @test3() { + %X = call i32 @test2( i32 3232 ) ; <i32> [#uses=1] + %Y = add i32 %X, -123 ; <i32> [#uses=1] + ret i32 %Y } diff --git a/test/Transforms/DeadArgElim/deadretval2.ll b/test/Transforms/DeadArgElim/deadretval2.ll index 4f129ab..76ce84d 100644 --- a/test/Transforms/DeadArgElim/deadretval2.ll +++ b/test/Transforms/DeadArgElim/deadretval2.ll @@ -1,36 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim -die | llvm-dis | not grep DEAD +; RUN: llvm-as < %s | opt -deadargelim -die | llvm-dis | not grep DEAD -%P = external global int +@P = external global i32 ; <i32*> [#uses=1] -implementation - - -internal int %test(int %DEADARG) { ; Dead arg only used by dead retval - ret int %DEADARG +; Dead arg only used by dead retval +define internal i32 @test(i32 %DEADARG) { + ret i32 %DEADARG } -internal int %test2(int %DEADARG) { - %DEADRETVAL = call int %test(int %DEADARG) - ret int %DEADRETVAL +define internal i32 @test2(i32 %DEADARG) { + %DEADRETVAL = call i32 @test( i32 %DEADARG ) ; <i32> [#uses=1] + ret i32 %DEADRETVAL } -void %test3(int %X) { - %DEADRETVAL = call int %test2(int %X) - ret void +define void @test3(i32 %X) { + %DEADRETVAL = call i32 @test2( i32 %X ) ; <i32> [#uses=0] + ret void } -internal int %foo() { - %DEAD = load int* %P - ret int %DEAD +define internal i32 @foo() { + %DEAD = load i32* @P ; <i32> [#uses=1] + ret i32 %DEAD } -internal int %id(int %X) { - ret int %X +define internal i32 @id(i32 %X) { + ret i32 %X } -void %test4() { - %DEAD = call int %foo() - %DEAD2 = call int %id(int %DEAD) - ret void +define void @test4() { + %DEAD = call i32 @foo( ) ; <i32> [#uses=1] + %DEAD2 = call i32 @id( i32 %DEAD ) ; <i32> [#uses=0] + ret void } - diff --git a/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll b/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll index 36afb24..660c74f 100644 --- a/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll +++ b/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll @@ -1,14 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse -scalarrepl -instcombine | \ +; RUN: llvm-as < %s | opt -dse -scalarrepl -instcombine | \ ; RUN: llvm-dis | not grep {ret int undef} -int %test(double %__x) { - %__u = alloca { [3 x int] } - %tmp.1 = cast { [3 x int] }* %__u to double* - store double %__x, double* %tmp.1 - %tmp.4 = getelementptr { [3 x int] }* %__u, int 0, uint 0, int 1 - %tmp.5 = load int* %tmp.4 - %tmp.6 = setlt int %tmp.5, 0 - %tmp.7 = cast bool %tmp.6 to int - ret int %tmp.7 +define i32 @test(double %__x) { + %__u = alloca { [3 x i32] } ; <{ [3 x i32] }*> [#uses=2] + %tmp.1 = bitcast { [3 x i32] }* %__u to double* ; <double*> [#uses=1] + store double %__x, double* %tmp.1 + %tmp.4 = getelementptr { [3 x i32] }* %__u, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.5 = load i32* %tmp.4 ; <i32> [#uses=1] + %tmp.6 = icmp slt i32 %tmp.5, 0 ; <i1> [#uses=1] + %tmp.7 = zext i1 %tmp.6 to i32 ; <i32> [#uses=1] + ret i32 %tmp.7 } diff --git a/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll b/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll index ec48e46..3c40347 100644 --- a/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll +++ b/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll @@ -1,13 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | \ +; RUN: llvm-as < %s | opt -dse | llvm-dis | \ ; RUN: grep {store i32 1234567} ; Do not delete stores that are only partially killed. -int %test() { - %V = alloca int - store int 1234567, int* %V - %V2 = cast int* %V to sbyte* - store sbyte 0, sbyte* %V2 - %X = load int* %V - ret int %X +define i32 @test() { + %V = alloca i32 ; <i32*> [#uses=3] + store i32 1234567, i32* %V + %V2 = bitcast i32* %V to i8* ; <i8*> [#uses=1] + store i8 0, i8* %V2 + %X = load i32* %V ; <i32> [#uses=1] + ret i32 %X } diff --git a/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll b/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll index 58b253c..58d6787 100644 --- a/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll +++ b/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | grep store +; RUN: llvm-as < %s | opt -dse | llvm-dis | grep store -double %foo(sbyte* %X) { - %X_addr = alloca sbyte* - store sbyte* %X, sbyte** %X_addr ;; not a dead store. - %tmp.0 = va_arg sbyte** %X_addr, double +define double @foo(i8* %X) { + %X_addr = alloca i8* ; <i8**> [#uses=2] + store i8* %X, i8** %X_addr + %tmp.0 = va_arg i8** %X_addr, double ; <double> [#uses=1] ret double %tmp.0 } diff --git a/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll b/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll index 5deaef4..50dcf32 100644 --- a/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll +++ b/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll @@ -1,1116 +1,1113 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalsmodref-aa -dse -disable-output -target endian = big -target pointersize = 32 +; RUN: llvm-as < %s | opt -globalsmodref-aa -dse -disable-output +target datalayout = "E-p:32:32" target triple = "powerpc-apple-darwin8" - %struct.ECacheType = type { uint, uint, int } - %struct.FILE = type { ubyte*, int, int, short, short, %struct.__sbuf, int, sbyte*, int (sbyte*)*, int (sbyte*, sbyte*, int)*, long (sbyte*, long, int)*, int (sbyte*, sbyte*, int)*, %struct.__sbuf, %struct.__sFILEX*, int, [3 x ubyte], [1 x ubyte], %struct.__sbuf, int, long } - %struct.QTType = type { sbyte, sbyte, ushort, uint, uint, int } - %struct.TType = type { sbyte, sbyte, sbyte, sbyte, ushort, uint, uint, int } - %struct._RuneEntry = type { int, int, int, uint* } - %struct._RuneLocale = type { [8 x sbyte], [32 x sbyte], int (sbyte*, uint, sbyte**)*, int (int, sbyte*, uint, sbyte**)*, int, [256 x uint], [256 x int], [256 x int], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, sbyte*, int } - %struct._RuneRange = type { int, %struct._RuneEntry* } + %struct.ECacheType = type { i32, i32, i32 } + %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } + %struct.QTType = type { i8, i8, i16, i32, i32, i32 } + %struct.TType = type { i8, i8, i8, i8, i16, i32, i32, i32 } + %struct._RuneEntry = type { i32, i32, i32, i32* } + %struct._RuneLocale = type { [8 x i8], [32 x i8], i32 (i8*, i32, i8**)*, i32 (i32, i8*, i32, i8**)*, i32, [256 x i32], [256 x i32], [256 x i32], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, i8*, i32 } + %struct._RuneRange = type { i32, %struct._RuneEntry* } %struct.__sFILEX = type opaque - %struct.__sbuf = type { ubyte*, int } - %struct.move_s = type { int, int, int, int, int, int } - %struct.move_x = type { int, int, int, int } - %struct.node_t = type { ubyte, ubyte, ubyte, ubyte, int, int, %struct.node_t**, %struct.node_t*, %struct.move_s } - %struct.see_data = type { int, int } -%rook_o.2925 = internal global [4 x int] [ int 12, int -12, int 1, int -1 ] ; <[4 x int]*> [#uses=0] -%bishop_o.2926 = internal global [4 x int] [ int 11, int -11, int 13, int -13 ] ; <[4 x int]*> [#uses=0] -%knight_o.2927 = internal global [8 x int] [ int 10, int -10, int 14, int -14, int 23, int -23, int 25, int -25 ] ; <[8 x int]*> [#uses=0] -%board = internal global [144 x int] zeroinitializer ; <[144 x int]*> [#uses=0] -%holding = internal global [2 x [16 x int]] zeroinitializer ; <[2 x [16 x int]]*> [#uses=0] -%hold_hash = internal global uint 0 ; <uint*> [#uses=0] -%white_hand_eval = internal global int 0 ; <int*> [#uses=0] -%black_hand_eval = internal global int 0 ; <int*> [#uses=0] -%num_holding = internal global [2 x int] zeroinitializer ; <[2 x int]*> [#uses=0] -%zobrist = internal global [14 x [144 x uint]] zeroinitializer ; <[14 x [144 x uint]]*> [#uses=0] -%Variant = internal global int 0 ; <int*> [#uses=7] -%userealholdings.b = internal global bool false ; <bool*> [#uses=1] -%realholdings = internal global [255 x sbyte] zeroinitializer ; <[255 x sbyte]*> [#uses=0] -%comp_color = internal global int 0 ; <int*> [#uses=0] -%C.97.3177 = internal global [13 x int] [ int 0, int 2, int 1, int 4, int 3, int 0, int 0, int 8, int 7, int 10, int 9, int 12, int 11 ] ; <[13 x int]*> [#uses=0] -%str = internal global [30 x sbyte] c"%s:%u: failed assertion `%s'\0A\00" ; <[30 x sbyte]*> [#uses=0] -%str = internal global [81 x sbyte] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/crazy.c\00" ; <[81 x sbyte]*> [#uses=0] -%str = internal global [32 x sbyte] c"piece > frame && piece < npiece\00" ; <[32 x sbyte]*> [#uses=0] -%C.101.3190 = internal global [13 x int] [ int 0, int 2, int 1, int 2, int 1, int 0, int 0, int 2, int 1, int 2, int 1, int 2, int 1 ] ; <[13 x int]*> [#uses=0] -%hand_value = internal global [13 x int] [ int 0, int 100, int -100, int 210, int -210, int 0, int 0, int 250, int -250, int 450, int -450, int 230, int -230 ] ; <[13 x int]*> [#uses=0] -%material = internal global [14 x int] zeroinitializer ; <[14 x int]*> [#uses=0] -%Material = internal global int 0 ; <int*> [#uses=0] -%str = internal global [23 x sbyte] c"holding[who][what] > 0\00" ; <[23 x sbyte]*> [#uses=0] -%str = internal global [24 x sbyte] c"holding[who][what] < 20\00" ; <[24 x sbyte]*> [#uses=0] -%fifty = internal global int 0 ; <int*> [#uses=0] -%move_number = internal global int 0 ; <int*> [#uses=1] -%ply = internal global int 0 ; <int*> [#uses=2] -%hash_history = internal global [600 x uint] zeroinitializer ; <[600 x uint]*> [#uses=1] -%hash = internal global uint 0 ; <uint*> [#uses=1] -%ECacheSize.b = internal global bool false ; <bool*> [#uses=1] -%ECache = internal global %struct.ECacheType* null ; <%struct.ECacheType**> [#uses=1] -%ECacheProbes = internal global uint 0 ; <uint*> [#uses=1] -%ECacheHits = internal global uint 0 ; <uint*> [#uses=1] -%str = internal global [34 x sbyte] c"Out of memory allocating ECache.\0A\00" ; <[34 x sbyte]*> [#uses=0] -%rankoffsets.2930 = internal global [8 x int] [ int 110, int 98, int 86, int 74, int 62, int 50, int 38, int 26 ] ; <[8 x int]*> [#uses=0] -%white_castled = internal global int 0 ; <int*> [#uses=0] -%black_castled = internal global int 0 ; <int*> [#uses=0] -%book_ply = internal global int 0 ; <int*> [#uses=0] -%bking_loc = internal global int 0 ; <int*> [#uses=1] -%wking_loc = internal global int 0 ; <int*> [#uses=1] -%white_to_move = internal global int 0 ; <int*> [#uses=3] -%moved = internal global [144 x int] zeroinitializer ; <[144 x int]*> [#uses=0] -%ep_square = internal global int 0 ; <int*> [#uses=0] -%_DefaultRuneLocale = external global %struct._RuneLocale ; <%struct._RuneLocale*> [#uses=0] -%str = internal global [3 x sbyte] c"bm\00" ; <[3 x sbyte]*> [#uses=0] -%str1 = internal global [3 x sbyte] c"am\00" ; <[3 x sbyte]*> [#uses=0] -%str1 = internal global [34 x sbyte] c"No best-move or avoid-move found!\00" ; <[34 x sbyte]*> [#uses=0] -%str = internal global [25 x sbyte] c"\0AName of EPD testsuite: \00" ; <[25 x sbyte]*> [#uses=0] -%__sF = external global [0 x %struct.FILE] ; <[0 x %struct.FILE]*> [#uses=0] -%str = internal global [21 x sbyte] c"\0ATime per move (s): \00" ; <[21 x sbyte]*> [#uses=0] -%str = internal global [2 x sbyte] c"\0A\00" ; <[2 x sbyte]*> [#uses=0] -%str2 = internal global [2 x sbyte] c"r\00" ; <[2 x sbyte]*> [#uses=0] -%root_to_move = internal global int 0 ; <int*> [#uses=1] -%forcedwin.b = internal global bool false ; <bool*> [#uses=2] -%fixed_time = internal global int 0 ; <int*> [#uses=1] -%nodes = internal global int 0 ; <int*> [#uses=1] -%qnodes = internal global int 0 ; <int*> [#uses=1] -%str = internal global [29 x sbyte] c"\0ANodes: %i (%0.2f%% qnodes)\0A\00" ; <[29 x sbyte]*> [#uses=0] -%str = internal global [54 x sbyte] c"ECacheProbes : %u ECacheHits : %u HitRate : %f%%\0A\00" ; <[54 x sbyte]*> [#uses=0] -%TTStores = internal global uint 0 ; <uint*> [#uses=1] -%TTProbes = internal global uint 0 ; <uint*> [#uses=1] -%TTHits = internal global uint 0 ; <uint*> [#uses=1] -%str = internal global [60 x sbyte] c"TTStores : %u TTProbes : %u TTHits : %u HitRate : %f%%\0A\00" ; <[60 x sbyte]*> [#uses=0] -%NTries = internal global uint 0 ; <uint*> [#uses=1] -%NCuts = internal global uint 0 ; <uint*> [#uses=1] -%TExt = internal global uint 0 ; <uint*> [#uses=1] -%str = internal global [51 x sbyte] c"NTries : %u NCuts : %u CutRate : %f%% TExt: %u\0A\00" ; <[51 x sbyte]*> [#uses=0] -%ext_check = internal global uint 0 ; <uint*> [#uses=1] -%razor_drop = internal global uint 0 ; <uint*> [#uses=1] -%razor_material = internal global uint 0 ; <uint*> [#uses=1] -%str = internal global [61 x sbyte] c"Check extensions: %u Razor drops : %u Razor Material : %u\0A\00" ; <[61 x sbyte]*> [#uses=0] -%FHF = internal global uint 0 ; <uint*> [#uses=1] -%FH = internal global uint 0 ; <uint*> [#uses=1] -%str = internal global [22 x sbyte] c"Move ordering : %f%%\0A\00" ; <[22 x sbyte]*> [#uses=0] -%maxposdiff = internal global int 0 ; <int*> [#uses=1] -%str = internal global [47 x sbyte] c"Material score: %d Eval : %d MaxPosDiff: %d\0A\00" ; <[47 x sbyte]*> [#uses=0] -%str = internal global [17 x sbyte] c"Solution found.\0A\00" ; <[17 x sbyte]*> [#uses=0] -%str3 = internal global [21 x sbyte] c"Solution not found.\0A\00" ; <[21 x sbyte]*> [#uses=0] -%str = internal global [15 x sbyte] c"Solved: %d/%d\0A\00" ; <[15 x sbyte]*> [#uses=0] -%str = internal global [9 x sbyte] c"EPD: %s\0A\00" ; <[9 x sbyte]*> [#uses=0] -%str4 = internal global [21 x sbyte] c"Searching to %d ply\0A\00" ; <[21 x sbyte]*> [#uses=0] -%maxdepth = internal global int 0 ; <int*> [#uses=0] -%std_material = internal global [14 x int] [ int 0, int 100, int -100, int 310, int -310, int 4000, int -4000, int 500, int -500, int 900, int -900, int 325, int -325, int 0 ] ; <[14 x int]*> [#uses=0] -%zh_material = internal global [14 x int] [ int 0, int 100, int -100, int 210, int -210, int 4000, int -4000, int 250, int -250, int 450, int -450, int 230, int -230, int 0 ] ; <[14 x int]*> [#uses=0] -%suicide_material = internal global [14 x int] [ int 0, int 15, int -15, int 150, int -150, int 500, int -500, int 150, int -150, int 50, int -50, int 0, int 0, int 0 ] ; <[14 x int]*> [#uses=0] -%losers_material = internal global [14 x int] [ int 0, int 80, int -80, int 320, int -320, int 1000, int -1000, int 350, int -350, int 400, int -400, int 270, int -270, int 0 ] ; <[14 x int]*> [#uses=0] -%Xfile = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%Xrank = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 1, int 1, int 1, int 1, int 1, int 1, int 1, int 0, int 0, int 0, int 0, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 0, int 0, int 0, int 0, int 3, int 3, int 3, int 3, int 3, int 3, int 3, int 3, int 0, int 0, int 0, int 0, int 4, int 4, int 4, int 4, int 4, int 4, int 4, int 4, int 0, int 0, int 0, int 0, int 5, int 5, int 5, int 5, int 5, int 5, int 5, int 5, int 0, int 0, int 0, int 0, int 6, int 6, int 6, int 6, int 6, int 6, int 6, int 6, int 0, int 0, int 0, int 0, int 7, int 7, int 7, int 7, int 7, int 7, int 7, int 7, int 0, int 0, int 0, int 0, int 8, int 8, int 8, int 8, int 8, int 8, int 8, int 8, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%Xdiagl = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 9, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 0, int 0, int 0, int 0, int 10, int 9, int 1, int 2, int 3, int 4, int 5, int 6, int 0, int 0, int 0, int 0, int 11, int 10, int 9, int 1, int 2, int 3, int 4, int 5, int 0, int 0, int 0, int 0, int 12, int 11, int 10, int 9, int 1, int 2, int 3, int 4, int 0, int 0, int 0, int 0, int 13, int 12, int 11, int 10, int 9, int 1, int 2, int 3, int 0, int 0, int 0, int 0, int 14, int 13, int 12, int 11, int 10, int 9, int 1, int 2, int 0, int 0, int 0, int 0, int 15, int 14, int 13, int 12, int 11, int 10, int 9, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%Xdiagr = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 15, int 14, int 13, int 12, int 11, int 10, int 9, int 1, int 0, int 0, int 0, int 0, int 14, int 13, int 12, int 11, int 10, int 9, int 1, int 2, int 0, int 0, int 0, int 0, int 13, int 12, int 11, int 10, int 9, int 1, int 2, int 3, int 0, int 0, int 0, int 0, int 12, int 11, int 10, int 9, int 1, int 2, int 3, int 4, int 0, int 0, int 0, int 0, int 11, int 10, int 9, int 1, int 2, int 3, int 4, int 5, int 0, int 0, int 0, int 0, int 10, int 9, int 1, int 2, int 3, int 4, int 5, int 6, int 0, int 0, int 0, int 0, int 9, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%sqcolor = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%pcsqbishop = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -5, int -5, int -10, int -5, int -5, int -10, int -5, int -5, int 0, int 0, int 0, int 0, int -5, int 10, int 5, int 10, int 10, int 5, int 10, int -5, int 0, int 0, int 0, int 0, int -5, int 5, int 6, int 15, int 15, int 6, int 5, int -5, int 0, int 0, int 0, int 0, int -5, int 3, int 15, int 10, int 10, int 15, int 3, int -5, int 0, int 0, int 0, int 0, int -5, int 3, int 15, int 10, int 10, int 15, int 3, int -5, int 0, int 0, int 0, int 0, int -5, int 5, int 6, int 15, int 15, int 6, int 5, int -5, int 0, int 0, int 0, int 0, int -5, int 10, int 5, int 10, int 10, int 5, int 10, int -5, int 0, int 0, int 0, int 0, int -5, int -5, int -10, int -5, int -5, int -10, int -5, int -5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%black_knight = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int -10, int 15, int 25, int 25, int 25, int 25, int 15, int -10, int 0, int 0, int 0, int 0, int -10, int 15, int 25, int 35, int 35, int 35, int 15, int -10, int 0, int 0, int 0, int 0, int -10, int 10, int 25, int 20, int 25, int 25, int 10, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 20, int 20, int 20, int 20, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 15, int 15, int 15, int 15, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 0, int 3, int 3, int 0, int 0, int -10, int 0, int 0, int 0, int 0, int -20, int -35, int -10, int -10, int -10, int -10, int -35, int -20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%white_knight = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -20, int -35, int -10, int -10, int -10, int -10, int -35, int -20, int 0, int 0, int 0, int 0, int -10, int 0, int 0, int 3, int 3, int 0, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 15, int 15, int 15, int 15, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 20, int 20, int 20, int 20, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 10, int 25, int 20, int 25, int 25, int 10, int -10, int 0, int 0, int 0, int 0, int -10, int 15, int 25, int 35, int 35, int 35, int 15, int -10, int 0, int 0, int 0, int 0, int -10, int 15, int 25, int 25, int 25, int 25, int 15, int -10, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%white_pawn = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 25, int 25, int 35, int 5, int 5, int 50, int 45, int 30, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 7, int 5, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 14, int 14, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 10, int 20, int 20, int 10, int 5, int 5, int 0, int 0, int 0, int 0, int 12, int 18, int 18, int 27, int 27, int 18, int 18, int 18, int 0, int 0, int 0, int 0, int 25, int 30, int 30, int 35, int 35, int 35, int 30, int 25, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%black_pawn = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 30, int 30, int 30, int 35, int 35, int 35, int 30, int 25, int 0, int 0, int 0, int 0, int 12, int 18, int 18, int 27, int 27, int 18, int 18, int 18, int 0, int 0, int 0, int 0, int 0, int 0, int 10, int 20, int 20, int 10, int 5, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 14, int 14, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 7, int 5, int 5, int 0, int 0, int 0, int 0, int 0, int 25, int 25, int 35, int 5, int 5, int 50, int 45, int 30, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%white_king = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -100, int 7, int 4, int 0, int 10, int 4, int 7, int -100, int 0, int 0, int 0, int 0, int -250, int -200, int -150, int -100, int -100, int -150, int -200, int -250, int 0, int 0, int 0, int 0, int -350, int -300, int -300, int -250, int -250, int -300, int -300, int -350, int 0, int 0, int 0, int 0, int -400, int -400, int -400, int -350, int -350, int -400, int -400, int -400, int 0, int 0, int 0, int 0, int -450, int -450, int -450, int -450, int -450, int -450, int -450, int -450, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%black_king = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int -500, int 0, int 0, int 0, int 0, int -450, int -450, int -450, int -450, int -450, int -450, int -450, int -450, int 0, int 0, int 0, int 0, int -400, int -400, int -400, int -350, int -350, int -400, int -400, int -400, int 0, int 0, int 0, int 0, int -350, int -300, int -300, int -250, int -250, int -300, int -300, int -350, int 0, int 0, int 0, int 0, int -250, int -200, int -150, int -100, int -100, int -150, int -200, int -250, int 0, int 0, int 0, int 0, int -100, int 7, int 4, int 0, int 10, int 4, int 7, int -100, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%black_queen = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 5, int 5, int 5, int 10, int 10, int 5, int 5, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 3, int 3, int 3, int 3, int 3, int 0, int 0, int 0, int 0, int 0, int -30, int -30, int -30, int -30, int -30, int -30, int -30, int -30, int 0, int 0, int 0, int 0, int -60, int -40, int -40, int -60, int -60, int -40, int -40, int -60, int 0, int 0, int 0, int 0, int -40, int -40, int -40, int -40, int -40, int -40, int -40, int -40, int 0, int 0, int 0, int 0, int -15, int -15, int -15, int -10, int -10, int -15, int -15, int -15, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 10, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%white_queen = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 10, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int -15, int -15, int -15, int -10, int -10, int -15, int -15, int -15, int 0, int 0, int 0, int 0, int -40, int -40, int -40, int -40, int -40, int -40, int -40, int -40, int 0, int 0, int 0, int 0, int -60, int -40, int -40, int -60, int -60, int -40, int -40, int -60, int 0, int 0, int 0, int 0, int -30, int -30, int -30, int -30, int -30, int -30, int -30, int -30, int 0, int 0, int 0, int 0, int 0, int 0, int 3, int 3, int 3, int 3, int 3, int 0, int 0, int 0, int 0, int 0, int 5, int 5, int 5, int 10, int 10, int 5, int 5, int 5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%black_rook = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 10, int 15, int 20, int 25, int 25, int 20, int 15, int 10, int 0, int 0, int 0, int 0, int 0, int 10, int 15, int 20, int 20, int 15, int 10, int 0, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -30, int -30, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int -15, int -15, int -15, int -10, int -10, int -15, int -15, int -15, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 10, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%white_rook = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 2, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 7, int 10, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -15, int -15, int -15, int -10, int -10, int -15, int -15, int -15, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -30, int -30, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int -20, int 0, int 0, int 0, int 0, int 0, int 10, int 15, int 20, int 20, int 15, int 10, int 0, int 0, int 0, int 0, int 0, int 10, int 15, int 20, int 25, int 25, int 20, int 15, int 10, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%upscale = internal global [64 x int] [ int 26, int 27, int 28, int 29, int 30, int 31, int 32, int 33, int 38, int 39, int 40, int 41, int 42, int 43, int 44, int 45, int 50, int 51, int 52, int 53, int 54, int 55, int 56, int 57, int 62, int 63, int 64, int 65, int 66, int 67, int 68, int 69, int 74, int 75, int 76, int 77, int 78, int 79, int 80, int 81, int 86, int 87, int 88, int 89, int 90, int 91, int 92, int 93, int 98, int 99, int 100, int 101, int 102, int 103, int 104, int 105, int 110, int 111, int 112, int 113, int 114, int 115, int 116, int 117 ] ; <[64 x int]*> [#uses=0] -%pre_p_tropism = internal global [9 x int] [ int 9999, int 40, int 20, int 10, int 3, int 1, int 1, int 0, int 9999 ] ; <[9 x int]*> [#uses=0] -%pre_r_tropism = internal global [9 x int] [ int 9999, int 50, int 40, int 15, int 5, int 1, int 1, int 0, int 9999 ] ; <[9 x int]*> [#uses=0] -%pre_n_tropism = internal global [9 x int] [ int 9999, int 50, int 70, int 35, int 10, int 2, int 1, int 0, int 9999 ] ; <[9 x int]*> [#uses=0] -%pre_q_tropism = internal global [9 x int] [ int 9999, int 100, int 60, int 20, int 5, int 2, int 0, int 0, int 9999 ] ; <[9 x int]*> [#uses=0] -%pre_b_tropism = internal global [9 x int] [ int 9999, int 50, int 25, int 15, int 5, int 2, int 2, int 2, int 9999 ] ; <[9 x int]*> [#uses=0] -%rookdistance = internal global [144 x [144 x int]] zeroinitializer ; <[144 x [144 x int]]*> [#uses=0] -%distance = internal global [144 x [144 x int]] zeroinitializer ; <[144 x [144 x int]]*> [#uses=0] -%p_tropism = internal global [144 x [144 x ubyte]] zeroinitializer ; <[144 x [144 x ubyte]]*> [#uses=0] -%b_tropism = internal global [144 x [144 x ubyte]] zeroinitializer ; <[144 x [144 x ubyte]]*> [#uses=0] -%n_tropism = internal global [144 x [144 x ubyte]] zeroinitializer ; <[144 x [144 x ubyte]]*> [#uses=0] -%r_tropism = internal global [144 x [144 x ubyte]] zeroinitializer ; <[144 x [144 x ubyte]]*> [#uses=0] -%q_tropism = internal global [144 x [144 x ubyte]] zeroinitializer ; <[144 x [144 x ubyte]]*> [#uses=0] -%cfg_devscale.b = internal global bool false ; <bool*> [#uses=0] -%pieces = internal global [62 x int] zeroinitializer ; <[62 x int]*> [#uses=0] -%piece_count = internal global int 0 ; <int*> [#uses=1] -%cfg_smarteval.b = internal global bool false ; <bool*> [#uses=0] -%lcentral = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -20, int -15, int -15, int -15, int -15, int -15, int -15, int -20, int 0, int 0, int 0, int 0, int -15, int 0, int 3, int 5, int 5, int 3, int 0, int -15, int 0, int 0, int 0, int 0, int -15, int 0, int 15, int 15, int 15, int 15, int 0, int -15, int 0, int 0, int 0, int 0, int -15, int 0, int 15, int 30, int 30, int 15, int 0, int -15, int 0, int 0, int 0, int 0, int -15, int 0, int 15, int 30, int 30, int 15, int 0, int -15, int 0, int 0, int 0, int 0, int -15, int 0, int 15, int 15, int 15, int 15, int 0, int -15, int 0, int 0, int 0, int 0, int -15, int 0, int 3, int 5, int 5, int 3, int 0, int -15, int 0, int 0, int 0, int 0, int -20, int -15, int -15, int -15, int -15, int -15, int -15, int -20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%str3 = internal global [81 x sbyte] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/leval.c\00" ; <[81 x sbyte]*> [#uses=0] -%str5 = internal global [21 x sbyte] c"(i > 0) && (i < 145)\00" ; <[21 x sbyte]*> [#uses=0] -%kingcap.b = internal global bool false ; <bool*> [#uses=0] -%numb_moves = internal global int 0 ; <int*> [#uses=2] -%genfor = internal global %struct.move_s* null ; <%struct.move_s**> [#uses=0] -%captures = internal global uint 0 ; <uint*> [#uses=1] -%fcaptures.b = internal global bool false ; <bool*> [#uses=0] -%gfrom = internal global int 0 ; <int*> [#uses=0] -%Giveaway.b = internal global bool false ; <bool*> [#uses=0] -%path_x = internal global [300 x %struct.move_x] zeroinitializer ; <[300 x %struct.move_x]*> [#uses=0] -%str7 = internal global [81 x sbyte] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/moves.c\00" ; <[81 x sbyte]*> [#uses=0] -%str8 = internal global [15 x sbyte] c"find_slot < 63\00" ; <[15 x sbyte]*> [#uses=0] -%is_promoted = internal global [62 x int] zeroinitializer ; <[62 x int]*> [#uses=0] -%squares = internal global [144 x int] zeroinitializer ; <[144 x int]*> [#uses=0] -%str = internal global [38 x sbyte] c"promoted > frame && promoted < npiece\00" ; <[38 x sbyte]*> [#uses=0] -%str1 = internal global [38 x sbyte] c"promoted < npiece && promoted > frame\00" ; <[38 x sbyte]*> [#uses=0] -%evalRoutines = internal global [7 x int (int, int)*] [ int (int, int)* %ErrorIt, int (int, int)* %Pawn, int (int, int)* %Knight, int (int, int)* %King, int (int, int)* %Rook, int (int, int)* %Queen, int (int, int)* %Bishop ] ; <[7 x int (int, int)*]*> [#uses=0] -%sbishop = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -2, int -2, int -2, int -2, int -2, int -2, int -2, int -2, int 0, int 0, int 0, int 0, int -2, int 8, int 5, int 5, int 5, int 5, int 8, int -2, int 0, int 0, int 0, int 0, int -2, int 3, int 3, int 5, int 5, int 3, int 3, int -2, int 0, int 0, int 0, int 0, int -2, int 2, int 5, int 4, int 4, int 5, int 2, int -2, int 0, int 0, int 0, int 0, int -2, int 2, int 5, int 4, int 4, int 5, int 2, int -2, int 0, int 0, int 0, int 0, int -2, int 3, int 3, int 5, int 5, int 3, int 3, int -2, int 0, int 0, int 0, int 0, int -2, int 8, int 5, int 5, int 5, int 5, int 8, int -2, int 0, int 0, int 0, int 0, int -2, int -2, int -2, int -2, int -2, int -2, int -2, int -2, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%sknight = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int -10, int 0, int 0, int 3, int 3, int 0, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 5, int 5, int 5, int 5, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 5, int 10, int 10, int 5, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 5, int 10, int 10, int 5, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 5, int 5, int 5, int 5, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 0, int 3, int 3, int 0, int 0, int -10, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%swhite_pawn = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 10, int 10, int 3, int 2, int 1, int 0, int 0, int 0, int 0, int 2, int 4, int 6, int 12, int 12, int 6, int 4, int 2, int 0, int 0, int 0, int 0, int 3, int 6, int 9, int 14, int 14, int 9, int 6, int 3, int 0, int 0, int 0, int 0, int 10, int 12, int 14, int 16, int 16, int 14, int 12, int 10, int 0, int 0, int 0, int 0, int 20, int 22, int 24, int 26, int 26, int 24, int 22, int 20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%sblack_pawn = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 20, int 22, int 24, int 26, int 26, int 24, int 22, int 20, int 0, int 0, int 0, int 0, int 10, int 12, int 14, int 16, int 16, int 14, int 12, int 10, int 0, int 0, int 0, int 0, int 3, int 6, int 9, int 14, int 14, int 9, int 6, int 3, int 0, int 0, int 0, int 0, int 2, int 4, int 6, int 12, int 12, int 6, int 4, int 2, int 0, int 0, int 0, int 0, int 1, int 2, int 3, int 10, int 10, int 3, int 2, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%swhite_king = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 2, int 14, int 0, int 0, int 0, int 9, int 14, int 2, int 0, int 0, int 0, int 0, int -3, int -5, int -6, int -6, int -6, int -6, int -5, int -3, int 0, int 0, int 0, int 0, int -5, int -5, int -8, int -8, int -8, int -8, int -5, int -5, int 0, int 0, int 0, int 0, int -8, int -8, int -13, int -13, int -13, int -13, int -8, int -8, int 0, int 0, int 0, int 0, int -13, int -13, int -21, int -21, int -21, int -21, int -13, int -13, int 0, int 0, int 0, int 0, int -21, int -21, int -34, int -34, int -34, int -34, int -21, int -21, int 0, int 0, int 0, int 0, int -34, int -34, int -55, int -55, int -55, int -55, int -34, int -34, int 0, int 0, int 0, int 0, int -55, int -55, int -89, int -89, int -89, int -89, int -55, int -55, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%sblack_king = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -55, int -55, int -89, int -89, int -89, int -89, int -55, int -55, int 0, int 0, int 0, int 0, int -34, int -34, int -55, int -55, int -55, int -55, int -34, int -34, int 0, int 0, int 0, int 0, int -21, int -21, int -34, int -34, int -34, int -34, int -21, int -21, int 0, int 0, int 0, int 0, int -13, int -13, int -21, int -21, int -21, int -21, int -13, int -13, int 0, int 0, int 0, int 0, int -8, int -8, int -13, int -13, int -13, int -13, int -8, int -8, int 0, int 0, int 0, int 0, int -5, int -5, int -8, int -8, int -8, int -8, int -5, int -5, int 0, int 0, int 0, int 0, int -3, int -5, int -6, int -6, int -6, int -6, int -5, int -3, int 0, int 0, int 0, int 0, int 2, int 14, int 0, int 0, int 0, int 9, int 14, int 2, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%send_king = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -5, int -3, int -1, int 0, int 0, int -1, int -3, int -5, int 0, int 0, int 0, int 0, int -3, int 10, int 10, int 10, int 10, int 10, int 10, int -3, int 0, int 0, int 0, int 0, int -1, int 10, int 25, int 25, int 25, int 25, int 10, int -1, int 0, int 0, int 0, int 0, int 0, int 10, int 25, int 50, int 50, int 25, int 10, int 0, int 0, int 0, int 0, int 0, int 0, int 10, int 25, int 50, int 50, int 25, int 10, int 0, int 0, int 0, int 0, int 0, int -1, int 10, int 25, int 25, int 25, int 25, int 10, int -1, int 0, int 0, int 0, int 0, int -3, int 10, int 10, int 10, int 10, int 10, int 10, int -3, int 0, int 0, int 0, int 0, int -5, int -3, int -1, int 0, int 0, int -1, int -3, int -5, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%srev_rank = internal global [9 x int] [ int 0, int 8, int 7, int 6, int 5, int 4, int 3, int 2, int 1 ] ; <[9 x int]*> [#uses=0] -%std_p_tropism = internal global [8 x int] [ int 9999, int 15, int 10, int 7, int 2, int 0, int 0, int 0 ] ; <[8 x int]*> [#uses=0] -%std_own_p_tropism = internal global [8 x int] [ int 9999, int 30, int 10, int 2, int 0, int 0, int 0, int 0 ] ; <[8 x int]*> [#uses=0] -%std_r_tropism = internal global [16 x int] [ int 9999, int 0, int 15, int 5, int 2, int 1, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[16 x int]*> [#uses=0] -%std_n_tropism = internal global [8 x int] [ int 9999, int 14, int 9, int 6, int 1, int 0, int 0, int 0 ] ; <[8 x int]*> [#uses=0] -%std_q_tropism = internal global [8 x int] [ int 9999, int 200, int 50, int 15, int 3, int 2, int 1, int 0 ] ; <[8 x int]*> [#uses=0] -%std_b_tropism = internal global [8 x int] [ int 9999, int 12, int 7, int 5, int 0, int 0, int 0, int 0 ] ; <[8 x int]*> [#uses=0] -%phase = internal global int 0 ; <int*> [#uses=1] -%dir.3001 = internal global [4 x int] [ int -13, int -11, int 11, int 13 ] ; <[4 x int]*> [#uses=0] -%dir.3021 = internal global [4 x int] [ int -1, int 1, int 12, int -12 ] ; <[4 x int]*> [#uses=0] -%king_locs = internal global [2 x int] zeroinitializer ; <[2 x int]*> [#uses=0] -%square_d1.3081 = internal global [2 x int] [ int 29, int 113 ] ; <[2 x int]*> [#uses=0] -%wmat = internal global int 0 ; <int*> [#uses=0] -%bmat = internal global int 0 ; <int*> [#uses=0] -%str = internal global [35 x sbyte] c"Illegal piece detected sq=%i c=%i\0A\00" ; <[35 x sbyte]*> [#uses=0] -%str10 = internal global [81 x sbyte] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/neval.c\00" ; <[81 x sbyte]*> [#uses=0] -%std_hand_value = internal global [13 x int] [ int 0, int 100, int -100, int 210, int -210, int 0, int 0, int 250, int -250, int 450, int -450, int 230, int -230 ] ; <[13 x int]*> [#uses=0] -%xb_mode = internal global int 0 ; <int*> [#uses=0] -%str = internal global [69 x sbyte] c"tellics ptell Hello! I am Sjeng and hope you enjoy playing with me.\0A\00" ; <[69 x sbyte]*> [#uses=0] -%str = internal global [76 x sbyte] c"tellics ptell For help on some commands that I understand, ptell me 'help'\0A\00" ; <[76 x sbyte]*> [#uses=0] -%str12 = internal global [3 x sbyte] c"%s\00" ; <[3 x sbyte]*> [#uses=0] -%my_partner = internal global [256 x sbyte] zeroinitializer ; <[256 x sbyte]*> [#uses=0] -%str13 = internal global [25 x sbyte] c"tellics set f5 bughouse\0A\00" ; <[25 x sbyte]*> [#uses=0] -%str = internal global [16 x sbyte] c"tellics unseek\0A\00" ; <[16 x sbyte]*> [#uses=0] -%str = internal global [20 x sbyte] c"tellics set f5 1=1\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str = internal global [80 x sbyte] c"is...uh...what did you say?\0A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" ; <[80 x sbyte]*> [#uses=0] -%str = internal global [5 x sbyte] c"help\00" ; <[5 x sbyte]*> [#uses=0] -%str = internal global [147 x sbyte] c"tellics ptell Commands that I understand are : sit, go, fast, slow, abort, flag, +/++/+++/-/--/---{p,n,b,r,q,d,h,trades}, x, dead, formula, help.\0A\00" ; <[147 x sbyte]*> [#uses=0] -%str = internal global [6 x sbyte] c"sorry\00" ; <[6 x sbyte]*> [#uses=0] -%str = internal global [59 x sbyte] c"tellics ptell Sorry, but I'm not playing a bughouse game.\0A\00" ; <[59 x sbyte]*> [#uses=0] -%str = internal global [4 x sbyte] c"sit\00" ; <[4 x sbyte]*> [#uses=0] -%str = internal global [56 x sbyte] c"tellics ptell Ok, I sit next move. Tell me when to go.\0A\00" ; <[56 x sbyte]*> [#uses=0] -%must_sit.b = internal global bool false ; <bool*> [#uses=0] -%str114 = internal global [3 x sbyte] c"go\00" ; <[3 x sbyte]*> [#uses=0] -%str2 = internal global [5 x sbyte] c"move\00" ; <[5 x sbyte]*> [#uses=0] -%str = internal global [31 x sbyte] c"tellics ptell Ok, I'm moving.\0A\00" ; <[31 x sbyte]*> [#uses=0] -%str3 = internal global [5 x sbyte] c"fast\00" ; <[5 x sbyte]*> [#uses=0] -%str4 = internal global [5 x sbyte] c"time\00" ; <[5 x sbyte]*> [#uses=0] -%str15 = internal global [35 x sbyte] c"tellics ptell Ok, I'm going FAST!\0A\00" ; <[35 x sbyte]*> [#uses=0] -%go_fast.b = internal global bool false ; <bool*> [#uses=0] -%str5 = internal global [5 x sbyte] c"slow\00" ; <[5 x sbyte]*> [#uses=0] -%str16 = internal global [36 x sbyte] c"tellics ptell Ok, moving normally.\0A\00" ; <[36 x sbyte]*> [#uses=0] -%str6 = internal global [6 x sbyte] c"abort\00" ; <[6 x sbyte]*> [#uses=0] -%str7 = internal global [35 x sbyte] c"tellics ptell Requesting abort...\0A\00" ; <[35 x sbyte]*> [#uses=0] -%str17 = internal global [15 x sbyte] c"tellics abort\0A\00" ; <[15 x sbyte]*> [#uses=0] -%str8 = internal global [5 x sbyte] c"flag\00" ; <[5 x sbyte]*> [#uses=0] -%str = internal global [27 x sbyte] c"tellics ptell Flagging...\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str = internal global [14 x sbyte] c"tellics flag\0A\00" ; <[14 x sbyte]*> [#uses=0] -%str18 = internal global [2 x sbyte] c"+\00" ; <[2 x sbyte]*> [#uses=0] -%str9 = internal global [6 x sbyte] c"trade\00" ; <[6 x sbyte]*> [#uses=0] -%str10 = internal global [35 x sbyte] c"tellics ptell Ok, trading is GOOD\0A\00" ; <[35 x sbyte]*> [#uses=0] -%str11 = internal global [4 x sbyte] c"+++\00" ; <[4 x sbyte]*> [#uses=0] -%str12 = internal global [6 x sbyte] c"mates\00" ; <[6 x sbyte]*> [#uses=0] -%str13 = internal global [3 x sbyte] c"++\00" ; <[3 x sbyte]*> [#uses=0] -%str = internal global [49 x sbyte] c"is VERY good (ptell me 'x' to play normal again)\00" ; <[49 x sbyte]*> [#uses=0] -%str = internal global [44 x sbyte] c"is good (ptell me 'x' to play normal again)\00" ; <[44 x sbyte]*> [#uses=0] -%str19 = internal global [29 x sbyte] c"tellics ptell Ok, Knight %s\0A\00" ; <[29 x sbyte]*> [#uses=0] -%str14 = internal global [29 x sbyte] c"tellics ptell Ok, Bishop %s\0A\00" ; <[29 x sbyte]*> [#uses=0] -%str15 = internal global [27 x sbyte] c"tellics ptell Ok, Rook %s\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str = internal global [28 x sbyte] c"tellics ptell Ok, Queen %s\0A\00" ; <[28 x sbyte]*> [#uses=0] -%str16 = internal global [27 x sbyte] c"tellics ptell Ok, Pawn %s\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str17 = internal global [31 x sbyte] c"tellics ptell Ok, Diagonal %s\0A\00" ; <[31 x sbyte]*> [#uses=0] -%str18 = internal global [28 x sbyte] c"tellics ptell Ok, Heavy %s\0A\00" ; <[28 x sbyte]*> [#uses=0] -%str20 = internal global [34 x sbyte] c"tellics ptell Ok, trading is BAD\0A\00" ; <[34 x sbyte]*> [#uses=0] -%str20 = internal global [4 x sbyte] c"---\00" ; <[4 x sbyte]*> [#uses=0] -%str = internal global [53 x sbyte] c"mates you (ptell me 'x' when it no longer mates you)\00" ; <[53 x sbyte]*> [#uses=0] -%str21 = internal global [3 x sbyte] c"--\00" ; <[3 x sbyte]*> [#uses=0] -%str = internal global [52 x sbyte] c"is VERY bad (ptell me 'x' when it is no longer bad)\00" ; <[52 x sbyte]*> [#uses=0] -%str21 = internal global [47 x sbyte] c"is bad (ptell me 'x' when it is no longer bad)\00" ; <[47 x sbyte]*> [#uses=0] -%str23 = internal global [16 x sbyte] c"mate me anymore\00" ; <[16 x sbyte]*> [#uses=0] -%str24 = internal global [6 x sbyte] c"never\00" ; <[6 x sbyte]*> [#uses=0] -%str25 = internal global [5 x sbyte] c"mind\00" ; <[5 x sbyte]*> [#uses=0] -%str22 = internal global [9 x sbyte] c"ptell me\00" ; <[9 x sbyte]*> [#uses=0] -%str = internal global [55 x sbyte] c"tellics ptell Ok, reverting to STANDARD piece values!\0A\00" ; <[55 x sbyte]*> [#uses=0] -%partnerdead.b = internal global bool false ; <bool*> [#uses=0] -%piecedead.b = internal global bool false ; <bool*> [#uses=0] -%str = internal global [26 x sbyte] c"i'll have to sit...(dead)\00" ; <[26 x sbyte]*> [#uses=0] -%str27 = internal global [5 x sbyte] c"dead\00" ; <[5 x sbyte]*> [#uses=0] -%str28 = internal global [27 x sbyte] c"i'll have to sit...(piece)\00" ; <[27 x sbyte]*> [#uses=0] -%str29 = internal global [3 x sbyte] c"ok\00" ; <[3 x sbyte]*> [#uses=0] -%str30 = internal global [3 x sbyte] c"hi\00" ; <[3 x sbyte]*> [#uses=0] -%str31 = internal global [6 x sbyte] c"hello\00" ; <[6 x sbyte]*> [#uses=0] -%str32 = internal global [26 x sbyte] c"tellics ptell Greetings.\0A\00" ; <[26 x sbyte]*> [#uses=0] -%str = internal global [8 x sbyte] c"formula\00" ; <[8 x sbyte]*> [#uses=0] -%str = internal global [87 x sbyte] c"tellics ptell Setting formula, if you are still interrupted, complain to my operator.\0A\00" ; <[87 x sbyte]*> [#uses=0] -%str33 = internal global [59 x sbyte] c"tellics ptell Sorry, but I don't understand that command.\0A\00" ; <[59 x sbyte]*> [#uses=0] -%pawnmated.3298 = internal global int 0 ; <int*> [#uses=0] -%knightmated.3299 = internal global int 0 ; <int*> [#uses=0] -%bishopmated.3300 = internal global int 0 ; <int*> [#uses=0] -%rookmated.3301 = internal global int 0 ; <int*> [#uses=0] -%queenmated.3302 = internal global int 0 ; <int*> [#uses=0] -%str = internal global [41 x sbyte] c"tellics ptell p doesn't mate me anymore\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str34 = internal global [41 x sbyte] c"tellics ptell n doesn't mate me anymore\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str35 = internal global [41 x sbyte] c"tellics ptell b doesn't mate me anymore\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str36 = internal global [41 x sbyte] c"tellics ptell r doesn't mate me anymore\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str37 = internal global [41 x sbyte] c"tellics ptell q doesn't mate me anymore\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str38 = internal global [20 x sbyte] c"tellics ptell ---p\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str39 = internal global [20 x sbyte] c"tellics ptell ---n\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str40 = internal global [20 x sbyte] c"tellics ptell ---b\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str41 = internal global [20 x sbyte] c"tellics ptell ---r\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str42 = internal global [20 x sbyte] c"tellics ptell ---q\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str23 = internal global [17 x sbyte] c"tellics ptell x\0A\00" ; <[17 x sbyte]*> [#uses=0] -%str = internal global [18 x sbyte] c"tellics ptell go\0A\00" ; <[18 x sbyte]*> [#uses=0] -%bufftop = internal global int 0 ; <int*> [#uses=2] -%membuff = internal global ubyte* null ; <ubyte**> [#uses=3] -%maxply = internal global int 0 ; <int*> [#uses=1] -%forwards = internal global int 0 ; <int*> [#uses=1] -%nodecount = internal global int 0 ; <int*> [#uses=1] -%frees = internal global int 0 ; <int*> [#uses=0] -%PBSize.b = internal global bool false ; <bool*> [#uses=1] -%alllosers.b = internal global bool false ; <bool*> [#uses=1] -%rootlosers = internal global [300 x int] zeroinitializer ; <[300 x int]*> [#uses=1] -%pn_move = internal global %struct.move_s zeroinitializer ; <%struct.move_s*> [#uses=7] -%iters = internal global int 0 ; <int*> [#uses=1] -%kibitzed.b = internal global bool false ; <bool*> [#uses=0] -%str24 = internal global [28 x sbyte] c"tellics kibitz Forced win!\0A\00" ; <[28 x sbyte]*> [#uses=0] -%str25 = internal global [34 x sbyte] c"tellics kibitz Forced win! (alt)\0A\00" ; <[34 x sbyte]*> [#uses=0] -%pn_time = internal global int 0 ; <int*> [#uses=1] -%post = internal global uint 0 ; <uint*> [#uses=0] -%str = internal global [94 x sbyte] c"tellics whisper proof %d, disproof %d, %d losers, highest depth %d, primary %d, secondary %d\0A\00" ; <[94 x sbyte]*> [#uses=0] -%str26 = internal global [30 x sbyte] c"tellics whisper Forced reply\0A\00" ; <[30 x sbyte]*> [#uses=0] -%str27 = internal global [60 x sbyte] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d MaxDepth: %d\0A\00" ; <[60 x sbyte]*> [#uses=0] -%str = internal global [90 x sbyte] c"tellics whisper proof %d, disproof %d, %d nodes, %d forwards, %d iters, highest depth %d\0A\00" ; <[90 x sbyte]*> [#uses=0] -%str = internal global [11 x sbyte] c"Time : %f\0A\00" ; <[11 x sbyte]*> [#uses=0] -%str28 = internal global [23 x sbyte] c"This position is WON.\0A\00" ; <[23 x sbyte]*> [#uses=0] -%str29 = internal global [5 x sbyte] c"PV: \00" ; <[5 x sbyte]*> [#uses=0] -%str30 = internal global [4 x sbyte] c"%s \00" ; <[4 x sbyte]*> [#uses=0] -%str31 = internal global [2 x sbyte] c" \00" ; <[2 x sbyte]*> [#uses=0] -%str32 = internal global [41 x sbyte] c"\0Atellics kibitz Forced win in %d moves.\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str33 = internal global [20 x sbyte] c"\0A1-0 {White mates}\0A\00" ; <[20 x sbyte]*> [#uses=0] -%result = internal global int 0 ; <int*> [#uses=4] -%str1 = internal global [20 x sbyte] c"\0A0-1 {Black mates}\0A\00" ; <[20 x sbyte]*> [#uses=0] -%str35 = internal global [24 x sbyte] c"This position is LOST.\0A\00" ; <[24 x sbyte]*> [#uses=0] -%str36 = internal global [27 x sbyte] c"This position is UNKNOWN.\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str37 = internal global [47 x sbyte] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d\0A\00" ; <[47 x sbyte]*> [#uses=0] -%s_threat.b = internal global bool false ; <bool*> [#uses=0] -%TTSize.b = internal global bool false ; <bool*> [#uses=3] -%cfg_razordrop.b = internal global bool false ; <bool*> [#uses=0] -%cfg_futprune.b = internal global bool false ; <bool*> [#uses=0] -%cfg_onerep.b = internal global bool false ; <bool*> [#uses=0] -%setcode = internal global [30 x sbyte] zeroinitializer ; <[30 x sbyte]*> [#uses=0] -%str38 = internal global [3 x sbyte] c"%u\00" ; <[3 x sbyte]*> [#uses=0] -%searching_pv.b = internal global bool false ; <bool*> [#uses=0] -%pv = internal global [300 x [300 x %struct.move_s]] zeroinitializer ; <[300 x [300 x %struct.move_s]]*> [#uses=0] -%i_depth = internal global int 0 ; <int*> [#uses=0] -%history_h = internal global [144 x [144 x uint]] zeroinitializer ; <[144 x [144 x uint]]*> [#uses=0] -%killer1 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] -%killer2 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] -%killer3 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] -%rootnodecount = internal global [512 x uint] zeroinitializer ; <[512 x uint]*> [#uses=0] -%raw_nodes = internal global int 0 ; <int*> [#uses=0] -%pv_length = internal global [300 x int] zeroinitializer ; <[300 x int]*> [#uses=0] -%time_exit.b = internal global bool false ; <bool*> [#uses=0] -%time_for_move = internal global int 0 ; <int*> [#uses=3] -%failed = internal global int 0 ; <int*> [#uses=0] -%extendedtime.b = internal global bool false ; <bool*> [#uses=1] -%time_left = internal global int 0 ; <int*> [#uses=0] -%str39 = internal global [38 x sbyte] c"Extended from %d to %d, time left %d\0A\00" ; <[38 x sbyte]*> [#uses=0] -%checks = internal global [300 x uint] zeroinitializer ; <[300 x uint]*> [#uses=0] -%singular = internal global [300 x uint] zeroinitializer ; <[300 x uint]*> [#uses=0] -%recaps = internal global [300 x uint] zeroinitializer ; <[300 x uint]*> [#uses=0] -%ext_onerep = internal global uint 0 ; <uint*> [#uses=1] -%FULL = internal global uint 0 ; <uint*> [#uses=1] -%PVS = internal global uint 0 ; <uint*> [#uses=1] -%PVSF = internal global uint 0 ; <uint*> [#uses=1] -%killer_scores = internal global [300 x int] zeroinitializer ; <[300 x int]*> [#uses=0] -%killer_scores2 = internal global [300 x int] zeroinitializer ; <[300 x int]*> [#uses=0] -%killer_scores3 = internal global [300 x int] zeroinitializer ; <[300 x int]*> [#uses=0] -%time_failure.b = internal global bool false ; <bool*> [#uses=0] -%cur_score = internal global int 0 ; <int*> [#uses=0] -%legals = internal global int 0 ; <int*> [#uses=3] -%movetotal = internal global int 0 ; <int*> [#uses=0] -%searching_move = internal global [20 x sbyte] zeroinitializer ; <[20 x sbyte]*> [#uses=0] -%is_pondering.b = internal global bool false ; <bool*> [#uses=6] -%true_i_depth = internal global sbyte 0 ; <sbyte*> [#uses=1] -%is_analyzing.b = internal global bool false ; <bool*> [#uses=0] -%inc = internal global int 0 ; <int*> [#uses=1] -%time_cushion = internal global int 0 ; <int*> [#uses=2] -%str40 = internal global [16 x sbyte] c"Opening phase.\0A\00" ; <[16 x sbyte]*> [#uses=1] -%str = internal global [19 x sbyte] c"Middlegame phase.\0A\00" ; <[19 x sbyte]*> [#uses=1] -%str1 = internal global [16 x sbyte] c"Endgame phase.\0A\00" ; <[16 x sbyte]*> [#uses=1] -%str43 = internal global [20 x sbyte] c"Time for move : %d\0A\00" ; <[20 x sbyte]*> [#uses=1] -%postpv = internal global [256 x sbyte] zeroinitializer ; <[256 x sbyte]*> [#uses=0] -%str44 = internal global [49 x sbyte] c"tellics whisper %d restart(s), ended up with %s\0A\00" ; <[49 x sbyte]*> [#uses=0] -%moves_to_tc = internal global int 0 ; <int*> [#uses=0] -%str45 = internal global [27 x sbyte] c"tellics kibitz Mate in %d\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str46 = internal global [52 x sbyte] c"tellics ptell Mate in %d, give him no more pieces.\0A\00" ; <[52 x sbyte]*> [#uses=0] -%tradefreely.b = internal global bool false ; <bool*> [#uses=0] -%str = internal global [37 x sbyte] c"tellics ptell You can trade freely.\0A\00" ; <[37 x sbyte]*> [#uses=0] -%str47 = internal global [25 x sbyte] c"tellics ptell ---trades\0A\00" ; <[25 x sbyte]*> [#uses=0] -%str2 = internal global [49 x sbyte] c"tellics kibitz Both players dead...resigning...\0A\00" ; <[49 x sbyte]*> [#uses=0] -%str3 = internal global [16 x sbyte] c"tellics resign\0A\00" ; <[16 x sbyte]*> [#uses=0] -%str48 = internal global [81 x sbyte] c"tellics ptell I am forcedly mated (dead). Tell me 'go' to start moving into it.\0A\00" ; <[81 x sbyte]*> [#uses=0] -%str = internal global [62 x sbyte] c"tellics ptell I'll have to sit...(lose piece that mates you)\0A\00" ; <[62 x sbyte]*> [#uses=0] -%see_num_attackers = internal global [2 x int] zeroinitializer ; <[2 x int]*> [#uses=0] -%see_attackers = internal global [2 x [16 x %struct.see_data]] zeroinitializer ; <[2 x [16 x %struct.see_data]]*> [#uses=0] -%scentral = internal global [144 x int] [ int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int -10, int 0, int 3, int 5, int 5, int 3, int 0, int -10, int 0, int 0, int 0, int 0, int -10, int 2, int 15, int 15, int 15, int 15, int 2, int -10, int 0, int 0, int 0, int 0, int -10, int 7, int 15, int 25, int 25, int 15, int 7, int -10, int 0, int 0, int 0, int 0, int -10, int 7, int 15, int 25, int 25, int 15, int 7, int -10, int 0, int 0, int 0, int 0, int -10, int 2, int 15, int 15, int 15, int 15, int 2, int -10, int 0, int 0, int 0, int 0, int -10, int 0, int 3, int 5, int 5, int 3, int 0, int -10, int 0, int 0, int 0, int 0, int -20, int -10, int -10, int -10, int -10, int -10, int -10, int -20, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0, int 0 ] ; <[144 x int]*> [#uses=0] -%str51 = internal global [81 x sbyte] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/seval.c\00" ; <[81 x sbyte]*> [#uses=0] -%divider = internal global [50 x sbyte] c"-------------------------------------------------\00" ; <[50 x sbyte]*> [#uses=0] -%min_per_game = internal global int 0 ; <int*> [#uses=0] -%opp_rating = internal global int 0 ; <int*> [#uses=0] -%my_rating = internal global int 0 ; <int*> [#uses=0] -%str53 = internal global [15 x sbyte] c"SPEC Workload\0A\00" ; <[15 x sbyte]*> [#uses=0] -%opening_history = internal global [256 x sbyte] zeroinitializer ; <[256 x sbyte]*> [#uses=0] -%str60 = internal global [81 x sbyte] c"Material score: %d Eval : %d MaxPosDiff: %d White hand: %d Black hand : %d\0A\00" ; <[81 x sbyte]*> [#uses=0] -%str61 = internal global [26 x sbyte] c"Hash : %X HoldHash : %X\0A\00" ; <[26 x sbyte]*> [#uses=0] -%str62 = internal global [9 x sbyte] c"move %s\0A\00" ; <[9 x sbyte]*> [#uses=0] -%str63 = internal global [5 x sbyte] c"\0A%s\0A\00" ; <[5 x sbyte]*> [#uses=0] -%str64 = internal global [19 x sbyte] c"0-1 {Black Mates}\0A\00" ; <[19 x sbyte]*> [#uses=0] -%str1 = internal global [19 x sbyte] c"1-0 {White Mates}\0A\00" ; <[19 x sbyte]*> [#uses=0] -%str65 = internal global [27 x sbyte] c"1/2-1/2 {Fifty move rule}\0A\00" ; <[27 x sbyte]*> [#uses=0] -%str2 = internal global [29 x sbyte] c"1/2-1/2 {3 fold repetition}\0A\00" ; <[29 x sbyte]*> [#uses=0] -%str66 = internal global [16 x sbyte] c"1/2-1/2 {Draw}\0A\00" ; <[16 x sbyte]*> [#uses=0] -%str68 = internal global [8 x sbyte] c"Sjeng: \00" ; <[8 x sbyte]*> [#uses=0] -%str69 = internal global [18 x sbyte] c"Illegal move: %s\0A\00" ; <[18 x sbyte]*> [#uses=0] -%str3 = internal global [9 x sbyte] c"setboard\00" ; <[9 x sbyte]*> [#uses=0] -%str470 = internal global [5 x sbyte] c"quit\00" ; <[5 x sbyte]*> [#uses=0] -%str571 = internal global [5 x sbyte] c"exit\00" ; <[5 x sbyte]*> [#uses=0] -%str6 = internal global [8 x sbyte] c"diagram\00" ; <[8 x sbyte]*> [#uses=0] -%str7 = internal global [2 x sbyte] c"d\00" ; <[2 x sbyte]*> [#uses=0] -%str72 = internal global [6 x sbyte] c"perft\00" ; <[6 x sbyte]*> [#uses=0] -%str73 = internal global [3 x sbyte] c"%d\00" ; <[3 x sbyte]*> [#uses=0] -%str74 = internal global [28 x sbyte] c"Raw nodes for depth %d: %i\0A\00" ; <[28 x sbyte]*> [#uses=0] -%str = internal global [13 x sbyte] c"Time : %.2f\0A\00" ; <[13 x sbyte]*> [#uses=0] -%str75 = internal global [4 x sbyte] c"new\00" ; <[4 x sbyte]*> [#uses=0] -%str = internal global [40 x sbyte] c"tellics set 1 Sjeng SPEC 1.0 (SPEC/%s)\0A\00" ; <[40 x sbyte]*> [#uses=0] -%str = internal global [7 x sbyte] c"xboard\00" ; <[7 x sbyte]*> [#uses=0] -%str8 = internal global [6 x sbyte] c"nodes\00" ; <[6 x sbyte]*> [#uses=0] -%str77 = internal global [38 x sbyte] c"Number of nodes: %i (%0.2f%% qnodes)\0A\00" ; <[38 x sbyte]*> [#uses=0] -%str9 = internal global [5 x sbyte] c"post\00" ; <[5 x sbyte]*> [#uses=0] -%str10 = internal global [7 x sbyte] c"nopost\00" ; <[7 x sbyte]*> [#uses=0] -%str11 = internal global [7 x sbyte] c"random\00" ; <[7 x sbyte]*> [#uses=0] -%str12 = internal global [5 x sbyte] c"hard\00" ; <[5 x sbyte]*> [#uses=0] -%str13 = internal global [5 x sbyte] c"easy\00" ; <[5 x sbyte]*> [#uses=0] -%str14 = internal global [2 x sbyte] c"?\00" ; <[2 x sbyte]*> [#uses=0] -%str15 = internal global [6 x sbyte] c"white\00" ; <[6 x sbyte]*> [#uses=0] -%str16 = internal global [6 x sbyte] c"black\00" ; <[6 x sbyte]*> [#uses=0] -%str17 = internal global [6 x sbyte] c"force\00" ; <[6 x sbyte]*> [#uses=0] -%str18 = internal global [5 x sbyte] c"eval\00" ; <[5 x sbyte]*> [#uses=0] -%str = internal global [10 x sbyte] c"Eval: %d\0A\00" ; <[10 x sbyte]*> [#uses=0] -%str2178 = internal global [3 x sbyte] c"%i\00" ; <[3 x sbyte]*> [#uses=0] -%str22 = internal global [5 x sbyte] c"otim\00" ; <[5 x sbyte]*> [#uses=0] -%opp_time = internal global int 0 ; <int*> [#uses=0] -%str23 = internal global [6 x sbyte] c"level\00" ; <[6 x sbyte]*> [#uses=0] -%str = internal global [12 x sbyte] c"%i %i:%i %i\00" ; <[12 x sbyte]*> [#uses=0] -%sec_per_game = internal global int 0 ; <int*> [#uses=0] -%str24 = internal global [9 x sbyte] c"%i %i %i\00" ; <[9 x sbyte]*> [#uses=0] -%str25 = internal global [7 x sbyte] c"rating\00" ; <[7 x sbyte]*> [#uses=0] -%str26 = internal global [6 x sbyte] c"%i %i\00" ; <[6 x sbyte]*> [#uses=0] -%str27 = internal global [8 x sbyte] c"holding\00" ; <[8 x sbyte]*> [#uses=0] -%str28 = internal global [8 x sbyte] c"variant\00" ; <[8 x sbyte]*> [#uses=0] -%str29 = internal global [7 x sbyte] c"normal\00" ; <[7 x sbyte]*> [#uses=0] -%str79 = internal global [11 x sbyte] c"crazyhouse\00" ; <[11 x sbyte]*> [#uses=0] -%str30 = internal global [9 x sbyte] c"bughouse\00" ; <[9 x sbyte]*> [#uses=0] -%str31 = internal global [8 x sbyte] c"suicide\00" ; <[8 x sbyte]*> [#uses=0] -%str32 = internal global [9 x sbyte] c"giveaway\00" ; <[9 x sbyte]*> [#uses=0] -%str33 = internal global [7 x sbyte] c"losers\00" ; <[7 x sbyte]*> [#uses=0] -%str34 = internal global [8 x sbyte] c"analyze\00" ; <[8 x sbyte]*> [#uses=0] -%str35 = internal global [5 x sbyte] c"undo\00" ; <[5 x sbyte]*> [#uses=0] -%str36 = internal global [18 x sbyte] c"Move number : %d\0A\00" ; <[18 x sbyte]*> [#uses=0] -%str37 = internal global [7 x sbyte] c"remove\00" ; <[7 x sbyte]*> [#uses=0] -%str38 = internal global [5 x sbyte] c"edit\00" ; <[5 x sbyte]*> [#uses=0] -%str41 = internal global [2 x sbyte] c"#\00" ; <[2 x sbyte]*> [#uses=0] -%str42 = internal global [8 x sbyte] c"partner\00" ; <[8 x sbyte]*> [#uses=0] -%str43 = internal global [9 x sbyte] c"$partner\00" ; <[9 x sbyte]*> [#uses=0] -%str44 = internal global [6 x sbyte] c"ptell\00" ; <[6 x sbyte]*> [#uses=0] -%str45 = internal global [5 x sbyte] c"test\00" ; <[5 x sbyte]*> [#uses=0] -%str46 = internal global [3 x sbyte] c"st\00" ; <[3 x sbyte]*> [#uses=0] -%str47 = internal global [7 x sbyte] c"result\00" ; <[7 x sbyte]*> [#uses=0] -%str48 = internal global [6 x sbyte] c"prove\00" ; <[6 x sbyte]*> [#uses=0] -%str49 = internal global [26 x sbyte] c"\0AMax time to search (s): \00" ; <[26 x sbyte]*> [#uses=0] -%str50 = internal global [5 x sbyte] c"ping\00" ; <[5 x sbyte]*> [#uses=0] -%str51 = internal global [9 x sbyte] c"pong %d\0A\00" ; <[9 x sbyte]*> [#uses=0] -%str52 = internal global [6 x sbyte] c"fritz\00" ; <[6 x sbyte]*> [#uses=0] -%str53 = internal global [6 x sbyte] c"reset\00" ; <[6 x sbyte]*> [#uses=0] -%str54 = internal global [3 x sbyte] c"sd\00" ; <[3 x sbyte]*> [#uses=0] -%str55 = internal global [26 x sbyte] c"New max depth set to: %d\0A\00" ; <[26 x sbyte]*> [#uses=0] -%str56 = internal global [5 x sbyte] c"auto\00" ; <[5 x sbyte]*> [#uses=0] -%str57 = internal global [9 x sbyte] c"protover\00" ; <[9 x sbyte]*> [#uses=0] -%str = internal global [63 x sbyte] c"feature ping=0 setboard=1 playother=0 san=0 usermove=0 time=1\0A\00" ; <[63 x sbyte]*> [#uses=0] -%str80 = internal global [53 x sbyte] c"feature draw=0 sigint=0 sigterm=0 reuse=1 analyze=0\0A\00" ; <[53 x sbyte]*> [#uses=0] -%str = internal global [33 x sbyte] c"feature myname=\22Sjeng SPEC 1.0\22\0A\00" ; <[33 x sbyte]*> [#uses=0] -%str = internal global [71 x sbyte] c"feature variants=\22normal,bughouse,crazyhouse,suicide,giveaway,losers\22\0A\00" ; <[71 x sbyte]*> [#uses=0] -%str = internal global [46 x sbyte] c"feature colors=1 ics=0 name=0 pause=0 done=1\0A\00" ; <[46 x sbyte]*> [#uses=0] -%str58 = internal global [9 x sbyte] c"accepted\00" ; <[9 x sbyte]*> [#uses=0] -%str59 = internal global [9 x sbyte] c"rejected\00" ; <[9 x sbyte]*> [#uses=0] -%str = internal global [65 x sbyte] c"Interface does not support a required feature...expect trouble.\0A\00" ; <[65 x sbyte]*> [#uses=0] -%str61 = internal global [6 x sbyte] c"\0A%s\0A\0A\00" ; <[6 x sbyte]*> [#uses=0] -%str81 = internal global [41 x sbyte] c"diagram/d: toggle diagram display\0A\00" ; <[41 x sbyte]*> [#uses=0] -%str82 = internal global [34 x sbyte] c"exit/quit: terminate Sjeng\0A\00" ; <[34 x sbyte]*> [#uses=0] -%str62 = internal global [51 x sbyte] c"go: make Sjeng play the side to move\0A\00" ; <[51 x sbyte]*> [#uses=0] -%str83 = internal global [35 x sbyte] c"new: start a new game\0A\00" ; <[35 x sbyte]*> [#uses=0] -%str84 = internal global [55 x sbyte] c"level <x>: the xboard style command to set time\0A\00" ; <[55 x sbyte]*> [#uses=0] -%str85 = internal global [49 x sbyte] c" <x> should be in the form: <a> <b> <c> where:\0A\00" ; <[49 x sbyte]*> [#uses=0] -%str63 = internal global [49 x sbyte] c" a -> moves to TC (0 if using an ICS style TC)\0A\00" ; <[49 x sbyte]*> [#uses=0] -%str86 = internal global [25 x sbyte] c" b -> minutes per game\0A\00" ; <[25 x sbyte]*> [#uses=0] -%str64 = internal global [29 x sbyte] c" c -> increment in seconds\0A\00" ; <[29 x sbyte]*> [#uses=0] -%str65 = internal global [55 x sbyte] c"nodes: outputs the number of nodes searched\0A\00" ; <[55 x sbyte]*> [#uses=0] -%str87 = internal global [47 x sbyte] c"perft <x>: compute raw nodes to depth x\0A\00" ; <[47 x sbyte]*> [#uses=0] -%str = internal global [42 x sbyte] c"post: toggles thinking output\0A\00" ; <[42 x sbyte]*> [#uses=0] -%str = internal global [45 x sbyte] c"xboard: put Sjeng into xboard mode\0A\00" ; <[45 x sbyte]*> [#uses=0] -%str = internal global [39 x sbyte] c"test: run an EPD testsuite\0A\00" ; <[39 x sbyte]*> [#uses=0] -%str88 = internal global [52 x sbyte] c"speed: test movegen and evaluation speed\0A\00" ; <[52 x sbyte]*> [#uses=0] -%str89 = internal global [59 x sbyte] c"proof: try to prove or disprove the current pos\0A\00" ; <[59 x sbyte]*> [#uses=0] -%str90 = internal global [44 x sbyte] c"sd <x>: limit thinking to depth x\0A\00" ; <[44 x sbyte]*> [#uses=0] -%str66 = internal global [51 x sbyte] c"st <x>: limit thinking to x centiseconds\0A\00" ; <[51 x sbyte]*> [#uses=0] -%str67 = internal global [54 x sbyte] c"setboard <FEN>: set board to a specified FEN string\0A\00" ; <[54 x sbyte]*> [#uses=0] -%str68 = internal global [38 x sbyte] c"undo: back up a half move\0A\00" ; <[38 x sbyte]*> [#uses=0] -%str69 = internal global [38 x sbyte] c"remove: back up a full move\0A\00" ; <[38 x sbyte]*> [#uses=0] -%str70 = internal global [42 x sbyte] c"force: disable computer moving\0A\00" ; <[42 x sbyte]*> [#uses=0] -%str71 = internal global [44 x sbyte] c"auto: computer plays both sides\0A\00" ; <[44 x sbyte]*> [#uses=0] -%DP_TTable = internal global %struct.TType* null ; <%struct.TType**> [#uses=1] -%AS_TTable = internal global %struct.TType* null ; <%struct.TType**> [#uses=1] -%QS_TTable = internal global %struct.QTType* null ; <%struct.QTType**> [#uses=1] -%str93 = internal global [38 x sbyte] c"Out of memory allocating hashtables.\0A\00" ; <[38 x sbyte]*> [#uses=0] -%type_to_char.3058 = internal global [14 x int] [ int 70, int 80, int 80, int 78, int 78, int 75, int 75, int 82, int 82, int 81, int 81, int 66, int 66, int 69 ] ; <[14 x int]*> [#uses=0] -%str94 = internal global [8 x sbyte] c"%c@%c%d\00" ; <[8 x sbyte]*> [#uses=0] -%str95 = internal global [5 x sbyte] c"%c%d\00" ; <[5 x sbyte]*> [#uses=0] -%str1 = internal global [8 x sbyte] c"%c%d=%c\00" ; <[8 x sbyte]*> [#uses=0] -%str2 = internal global [8 x sbyte] c"%cx%c%d\00" ; <[8 x sbyte]*> [#uses=0] -%str96 = internal global [11 x sbyte] c"%cx%c%d=%c\00" ; <[11 x sbyte]*> [#uses=0] -%str97 = internal global [4 x sbyte] c"O-O\00" ; <[4 x sbyte]*> [#uses=0] -%str98 = internal global [6 x sbyte] c"O-O-O\00" ; <[6 x sbyte]*> [#uses=0] -%str99 = internal global [9 x sbyte] c"%c%c%c%d\00" ; <[9 x sbyte]*> [#uses=0] -%str3100 = internal global [9 x sbyte] c"%c%d%c%d\00" ; <[9 x sbyte]*> [#uses=0] -%str101 = internal global [10 x sbyte] c"%c%cx%c%d\00" ; <[10 x sbyte]*> [#uses=0] -%str4 = internal global [10 x sbyte] c"%c%dx%c%d\00" ; <[10 x sbyte]*> [#uses=0] -%str102 = internal global [7 x sbyte] c"%c%c%d\00" ; <[7 x sbyte]*> [#uses=0] -%str5103 = internal global [5 x sbyte] c"illg\00" ; <[5 x sbyte]*> [#uses=0] -%type_to_char.3190 = internal global [14 x int] [ int 70, int 80, int 112, int 78, int 110, int 75, int 107, int 82, int 114, int 81, int 113, int 66, int 98, int 69 ] ; <[14 x int]*> [#uses=0] -%str7 = internal global [10 x sbyte] c"%c%d%c%dn\00" ; <[10 x sbyte]*> [#uses=0] -%str8 = internal global [10 x sbyte] c"%c%d%c%dr\00" ; <[10 x sbyte]*> [#uses=0] -%str9 = internal global [10 x sbyte] c"%c%d%c%db\00" ; <[10 x sbyte]*> [#uses=0] -%str10 = internal global [10 x sbyte] c"%c%d%c%dk\00" ; <[10 x sbyte]*> [#uses=0] -%str11 = internal global [10 x sbyte] c"%c%d%c%dq\00" ; <[10 x sbyte]*> [#uses=0] -%C.88.3251 = internal global [14 x sbyte*] [ sbyte* getelementptr ([3 x sbyte]* %str105, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str12106, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str13107, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str14, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str15, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str16, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str19108, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str21109, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str22, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str23, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str24, int 0, int 0) ] ; <[14 x sbyte*]*> [#uses=0] -%str105 = internal global [3 x sbyte] c"!!\00" ; <[3 x sbyte]*> [#uses=1] -%str12106 = internal global [3 x sbyte] c" P\00" ; <[3 x sbyte]*> [#uses=1] -%str13107 = internal global [3 x sbyte] c"*P\00" ; <[3 x sbyte]*> [#uses=1] -%str14 = internal global [3 x sbyte] c" N\00" ; <[3 x sbyte]*> [#uses=1] -%str15 = internal global [3 x sbyte] c"*N\00" ; <[3 x sbyte]*> [#uses=1] -%str16 = internal global [3 x sbyte] c" K\00" ; <[3 x sbyte]*> [#uses=1] -%str17 = internal global [3 x sbyte] c"*K\00" ; <[3 x sbyte]*> [#uses=1] -%str18 = internal global [3 x sbyte] c" R\00" ; <[3 x sbyte]*> [#uses=1] -%str19108 = internal global [3 x sbyte] c"*R\00" ; <[3 x sbyte]*> [#uses=1] -%str20 = internal global [3 x sbyte] c" Q\00" ; <[3 x sbyte]*> [#uses=1] -%str21109 = internal global [3 x sbyte] c"*Q\00" ; <[3 x sbyte]*> [#uses=1] -%str22 = internal global [3 x sbyte] c" B\00" ; <[3 x sbyte]*> [#uses=1] -%str23 = internal global [3 x sbyte] c"*B\00" ; <[3 x sbyte]*> [#uses=1] -%str24 = internal global [3 x sbyte] c" \00" ; <[3 x sbyte]*> [#uses=1] -%str110 = internal global [42 x sbyte] c"+----+----+----+----+----+----+----+----+\00" ; <[42 x sbyte]*> [#uses=0] -%str25 = internal global [6 x sbyte] c" %s\0A\00" ; <[6 x sbyte]*> [#uses=0] -%str26 = internal global [5 x sbyte] c"%d |\00" ; <[5 x sbyte]*> [#uses=0] -%str27 = internal global [6 x sbyte] c" %s |\00" ; <[6 x sbyte]*> [#uses=0] -%str28 = internal global [7 x sbyte] c"\0A %s\0A\00" ; <[7 x sbyte]*> [#uses=0] -%str111 = internal global [45 x sbyte] c"\0A a b c d e f g h\0A\0A\00" ; <[45 x sbyte]*> [#uses=0] -%str29 = internal global [45 x sbyte] c"\0A h g f e d c b a\0A\0A\00" ; <[45 x sbyte]*> [#uses=0] -%str33 = internal global [2 x sbyte] c"<\00" ; <[2 x sbyte]*> [#uses=0] -%str34 = internal global [3 x sbyte] c"> \00" ; <[3 x sbyte]*> [#uses=0] -%str114 = internal global [18 x sbyte] c"%2i %7i %5i %8i \00" ; <[18 x sbyte]*> [#uses=0] -%str115 = internal global [20 x sbyte] c"%2i %c%1i.%02i %9i \00" ; <[20 x sbyte]*> [#uses=0] -%str39 = internal global [5 x sbyte] c"%s !\00" ; <[5 x sbyte]*> [#uses=0] -%str40 = internal global [6 x sbyte] c"%s !!\00" ; <[6 x sbyte]*> [#uses=0] -%str41 = internal global [6 x sbyte] c"%s ??\00" ; <[6 x sbyte]*> [#uses=0] -%str124 = internal global [71 x sbyte] c"\0ASjeng version SPEC 1.0, Copyright (C) 2000-2005 Gian-Carlo Pascutto\0A\0A\00" ; <[71 x sbyte]*> [#uses=0] -%state = internal global [625 x uint] zeroinitializer ; <[625 x uint]*> [#uses=0] - -implementation ; Functions: - -declare fastcc int %calc_attackers(int, int) - -declare fastcc uint %is_attacked(int, int) - -declare fastcc void %ProcessHoldings(sbyte*) - -declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint) - -declare sbyte* %strncpy(sbyte*, sbyte*, uint) - -declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint) - -declare void %__eprintf(sbyte*, sbyte*, uint, sbyte*) - -declare fastcc void %addHolding(int, int) - -declare fastcc void %removeHolding(int, int) - -declare fastcc void %DropremoveHolding(int, int) - -declare int %printf(sbyte*, ...) - -declare fastcc uint %is_draw() - -declare void %exit(int) - -declare fastcc void %setup_epd_line(sbyte*) - -declare int %atoi(sbyte*) - -declare fastcc void %reset_piece_square() - -declare fastcc void %initialize_hash() - -declare int %__maskrune(int, uint) - -declare fastcc void %comp_to_san(long, long, long, sbyte*) - -declare sbyte* %strstr(sbyte*, sbyte*) - -declare int %atol(sbyte*) - -declare %struct.FILE* %fopen(sbyte*, sbyte*) - -declare fastcc void %display_board(int) - -internal csretcc void %think(%struct.move_s* %agg.result) { + %struct.__sbuf = type { i8*, i32 } + %struct.move_s = type { i32, i32, i32, i32, i32, i32 } + %struct.move_x = type { i32, i32, i32, i32 } + %struct.node_t = type { i8, i8, i8, i8, i32, i32, %struct.node_t**, %struct.node_t*, %struct.move_s } + %struct.see_data = type { i32, i32 } +@rook_o.2925 = internal global [4 x i32] [ i32 12, i32 -12, i32 1, i32 -1 ] ; <[4 x i32]*> [#uses=0] +@bishop_o.2926 = internal global [4 x i32] [ i32 11, i32 -11, i32 13, i32 -13 ] ; <[4 x i32]*> [#uses=0] +@knight_o.2927 = internal global [8 x i32] [ i32 10, i32 -10, i32 14, i32 -14, i32 23, i32 -23, i32 25, i32 -25 ] ; <[8 x i32]*> [#uses=0] +@board = internal global [144 x i32] zeroinitializer ; <[144 x i32]*> [#uses=0] +@holding = internal global [2 x [16 x i32]] zeroinitializer ; <[2 x [16 x i32]]*> [#uses=0] +@hold_hash = internal global i32 0 ; <i32*> [#uses=0] +@white_hand_eval = internal global i32 0 ; <i32*> [#uses=0] +@black_hand_eval = internal global i32 0 ; <i32*> [#uses=0] +@num_holding = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=0] +@zobrist = internal global [14 x [144 x i32]] zeroinitializer ; <[14 x [144 x i32]]*> [#uses=0] +@Variant = internal global i32 0 ; <i32*> [#uses=7] +@userealholdings.b = internal global i1 false ; <i1*> [#uses=1] +@realholdings = internal global [255 x i8] zeroinitializer ; <[255 x i8]*> [#uses=0] +@comp_color = internal global i32 0 ; <i32*> [#uses=0] +@C.97.3177 = internal global [13 x i32] [ i32 0, i32 2, i32 1, i32 4, i32 3, i32 0, i32 0, i32 8, i32 7, i32 10, i32 9, i32 12, i32 11 ] ; <[13 x i32]*> [#uses=0] +@str = internal global [30 x i8] c"%s:%u: failed assertion `%s'\0A\00" ; <[30 x i8]*> [#uses=0] +@str.upgrd.1 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/crazy.c\00" ; <[81 x i8]*> [#uses=0] +@str.upgrd.2 = internal global [32 x i8] c"piece > frame && piece < npiece\00" ; <[32 x i8]*> [#uses=0] +@C.101.3190 = internal global [13 x i32] [ i32 0, i32 2, i32 1, i32 2, i32 1, i32 0, i32 0, i32 2, i32 1, i32 2, i32 1, i32 2, i32 1 ] ; <[13 x i32]*> [#uses=0] +@hand_value = internal global [13 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 0, i32 0, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230 ] ; <[13 x i32]*> [#uses=0] +@material = internal global [14 x i32] zeroinitializer ; <[14 x i32]*> [#uses=0] +@Material = internal global i32 0 ; <i32*> [#uses=0] +@str.upgrd.3 = internal global [23 x i8] c"holding[who][what] > 0\00" ; <[23 x i8]*> [#uses=0] +@str.upgrd.4 = internal global [24 x i8] c"holding[who][what] < 20\00" ; <[24 x i8]*> [#uses=0] +@fifty = internal global i32 0 ; <i32*> [#uses=0] +@move_number = internal global i32 0 ; <i32*> [#uses=1] +@ply = internal global i32 0 ; <i32*> [#uses=2] +@hash_history = internal global [600 x i32] zeroinitializer ; <[600 x i32]*> [#uses=1] +@hash = internal global i32 0 ; <i32*> [#uses=1] +@ECacheSize.b = internal global i1 false ; <i1*> [#uses=1] +@ECache = internal global %struct.ECacheType* null ; <%struct.ECacheType**> [#uses=1] +@ECacheProbes = internal global i32 0 ; <i32*> [#uses=1] +@ECacheHits = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.5 = internal global [34 x i8] c"Out of memory allocating ECache.\0A\00" ; <[34 x i8]*> [#uses=0] +@rankoffsets.2930 = internal global [8 x i32] [ i32 110, i32 98, i32 86, i32 74, i32 62, i32 50, i32 38, i32 26 ] ; <[8 x i32]*> [#uses=0] +@white_castled = internal global i32 0 ; <i32*> [#uses=0] +@black_castled = internal global i32 0 ; <i32*> [#uses=0] +@book_ply = internal global i32 0 ; <i32*> [#uses=0] +@bking_loc = internal global i32 0 ; <i32*> [#uses=1] +@wking_loc = internal global i32 0 ; <i32*> [#uses=1] +@white_to_move = internal global i32 0 ; <i32*> [#uses=3] +@moved = internal global [144 x i32] zeroinitializer ; <[144 x i32]*> [#uses=0] +@ep_square = internal global i32 0 ; <i32*> [#uses=0] +@_DefaultRuneLocale = external global %struct._RuneLocale ; <%struct._RuneLocale*> [#uses=0] +@str.upgrd.6 = internal global [3 x i8] c"bm\00" ; <[3 x i8]*> [#uses=0] +@str1 = internal global [3 x i8] c"am\00" ; <[3 x i8]*> [#uses=0] +@str1.upgrd.7 = internal global [34 x i8] c"No best-move or avoid-move found!\00" ; <[34 x i8]*> [#uses=0] +@str.upgrd.8 = internal global [25 x i8] c"\0AName of EPD testsuite: \00" ; <[25 x i8]*> [#uses=0] +@__sF = external global [0 x %struct.FILE] ; <[0 x %struct.FILE]*> [#uses=0] +@str.upgrd.9 = internal global [21 x i8] c"\0ATime per move (s): \00" ; <[21 x i8]*> [#uses=0] +@str.upgrd.10 = internal global [2 x i8] c"\0A\00" ; <[2 x i8]*> [#uses=0] +@str2 = internal global [2 x i8] c"r\00" ; <[2 x i8]*> [#uses=0] +@root_to_move = internal global i32 0 ; <i32*> [#uses=1] +@forcedwin.b = internal global i1 false ; <i1*> [#uses=2] +@fixed_time = internal global i32 0 ; <i32*> [#uses=1] +@nodes = internal global i32 0 ; <i32*> [#uses=1] +@qnodes = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.11 = internal global [29 x i8] c"\0ANodes: %i (%0.2f%% qnodes)\0A\00" ; <[29 x i8]*> [#uses=0] +@str.upgrd.12 = internal global [54 x i8] c"ECacheProbes : %u ECacheHits : %u HitRate : %f%%\0A\00" ; <[54 x i8]*> [#uses=0] +@TTStores = internal global i32 0 ; <i32*> [#uses=1] +@TTProbes = internal global i32 0 ; <i32*> [#uses=1] +@TTHits = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.13 = internal global [60 x i8] c"TTStores : %u TTProbes : %u TTHits : %u HitRate : %f%%\0A\00" ; <[60 x i8]*> [#uses=0] +@NTries = internal global i32 0 ; <i32*> [#uses=1] +@NCuts = internal global i32 0 ; <i32*> [#uses=1] +@TExt = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.14 = internal global [51 x i8] c"NTries : %u NCuts : %u CutRate : %f%% TExt: %u\0A\00" ; <[51 x i8]*> [#uses=0] +@ext_check = internal global i32 0 ; <i32*> [#uses=1] +@razor_drop = internal global i32 0 ; <i32*> [#uses=1] +@razor_material = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.15 = internal global [61 x i8] c"Check extensions: %u Razor drops : %u Razor Material : %u\0A\00" ; <[61 x i8]*> [#uses=0] +@FHF = internal global i32 0 ; <i32*> [#uses=1] +@FH = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.16 = internal global [22 x i8] c"Move ordering : %f%%\0A\00" ; <[22 x i8]*> [#uses=0] +@maxposdiff = internal global i32 0 ; <i32*> [#uses=1] +@str.upgrd.17 = internal global [47 x i8] c"Material score: %d Eval : %d MaxPosDiff: %d\0A\00" ; <[47 x i8]*> [#uses=0] +@str.upgrd.18 = internal global [17 x i8] c"Solution found.\0A\00" ; <[17 x i8]*> [#uses=0] +@str3 = internal global [21 x i8] c"Solution not found.\0A\00" ; <[21 x i8]*> [#uses=0] +@str.upgrd.19 = internal global [15 x i8] c"Solved: %d/%d\0A\00" ; <[15 x i8]*> [#uses=0] +@str.upgrd.20 = internal global [9 x i8] c"EPD: %s\0A\00" ; <[9 x i8]*> [#uses=0] +@str4 = internal global [21 x i8] c"Searching to %d ply\0A\00" ; <[21 x i8]*> [#uses=0] +@maxdepth = internal global i32 0 ; <i32*> [#uses=0] +@std_material = internal global [14 x i32] [ i32 0, i32 100, i32 -100, i32 310, i32 -310, i32 4000, i32 -4000, i32 500, i32 -500, i32 900, i32 -900, i32 325, i32 -325, i32 0 ] ; <[14 x i32]*> [#uses=0] +@zh_material = internal global [14 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 4000, i32 -4000, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230, i32 0 ] ; <[14 x i32]*> [#uses=0] +@suicide_material = internal global [14 x i32] [ i32 0, i32 15, i32 -15, i32 150, i32 -150, i32 500, i32 -500, i32 150, i32 -150, i32 50, i32 -50, i32 0, i32 0, i32 0 ] ; <[14 x i32]*> [#uses=0] +@losers_material = internal global [14 x i32] [ i32 0, i32 80, i32 -80, i32 320, i32 -320, i32 1000, i32 -1000, i32 350, i32 -350, i32 400, i32 -400, i32 270, i32 -270, i32 0 ] ; <[14 x i32]*> [#uses=0] +@Xfile = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@Xrank = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 0, i32 0, i32 0, i32 0, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@Xdiagl = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 0, i32 0, i32 0, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 0, i32 0, i32 0, i32 0, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 0, i32 0, i32 0, i32 0, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 0, i32 0, i32 0, i32 0, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 0, i32 0, i32 0, i32 0, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 0, i32 0, i32 0, i32 0, i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@Xdiagr = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 0, i32 0, i32 0, i32 0, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 0, i32 0, i32 0, i32 0, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 0, i32 0, i32 0, i32 0, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 0, i32 0, i32 0, i32 0, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 0, i32 0, i32 0, i32 0, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 0, i32 0, i32 0, i32 0, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@sqcolor = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@pcsqbishop = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 10, i32 5, i32 10, i32 10, i32 5, i32 10, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 5, i32 6, i32 15, i32 15, i32 6, i32 5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 3, i32 15, i32 10, i32 10, i32 15, i32 3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 3, i32 15, i32 10, i32 10, i32 15, i32 3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 5, i32 6, i32 15, i32 15, i32 6, i32 5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 10, i32 5, i32 10, i32 10, i32 5, i32 10, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@black_knight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 25, i32 25, i32 25, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 35, i32 35, i32 35, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 10, i32 25, i32 20, i32 25, i32 25, i32 10, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 20, i32 20, i32 20, i32 20, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -35, i32 -10, i32 -10, i32 -10, i32 -10, i32 -35, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@white_knight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -35, i32 -10, i32 -10, i32 -10, i32 -10, i32 -35, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 20, i32 20, i32 20, i32 20, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 10, i32 25, i32 20, i32 25, i32 25, i32 10, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 35, i32 35, i32 35, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 25, i32 25, i32 25, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@white_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 25, i32 25, i32 35, i32 5, i32 5, i32 50, i32 45, i32 30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 20, i32 20, i32 10, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 12, i32 18, i32 18, i32 27, i32 27, i32 18, i32 18, i32 18, i32 0, i32 0, i32 0, i32 0, i32 25, i32 30, i32 30, i32 35, i32 35, i32 35, i32 30, i32 25, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@black_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 30, i32 30, i32 30, i32 35, i32 35, i32 35, i32 30, i32 25, i32 0, i32 0, i32 0, i32 0, i32 12, i32 18, i32 18, i32 27, i32 27, i32 18, i32 18, i32 18, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 20, i32 20, i32 10, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 25, i32 25, i32 35, i32 5, i32 5, i32 50, i32 45, i32 30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@white_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -100, i32 7, i32 4, i32 0, i32 10, i32 4, i32 7, i32 -100, i32 0, i32 0, i32 0, i32 0, i32 -250, i32 -200, i32 -150, i32 -100, i32 -100, i32 -150, i32 -200, i32 -250, i32 0, i32 0, i32 0, i32 0, i32 -350, i32 -300, i32 -300, i32 -250, i32 -250, i32 -300, i32 -300, i32 -350, i32 0, i32 0, i32 0, i32 0, i32 -400, i32 -400, i32 -400, i32 -350, i32 -350, i32 -400, i32 -400, i32 -400, i32 0, i32 0, i32 0, i32 0, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@black_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 0, i32 0, i32 0, i32 0, i32 -400, i32 -400, i32 -400, i32 -350, i32 -350, i32 -400, i32 -400, i32 -400, i32 0, i32 0, i32 0, i32 0, i32 -350, i32 -300, i32 -300, i32 -250, i32 -250, i32 -300, i32 -300, i32 -350, i32 0, i32 0, i32 0, i32 0, i32 -250, i32 -200, i32 -150, i32 -100, i32 -100, i32 -150, i32 -200, i32 -250, i32 0, i32 0, i32 0, i32 0, i32 -100, i32 7, i32 4, i32 0, i32 10, i32 4, i32 7, i32 -100, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@black_queen = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 10, i32 10, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 0, i32 0, i32 0, i32 0, i32 -60, i32 -40, i32 -40, i32 -60, i32 -60, i32 -40, i32 -40, i32 -60, i32 0, i32 0, i32 0, i32 0, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@white_queen = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 0, i32 0, i32 0, i32 0, i32 -60, i32 -40, i32 -40, i32 -60, i32 -60, i32 -40, i32 -40, i32 -60, i32 0, i32 0, i32 0, i32 0, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 10, i32 10, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@black_rook = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 25, i32 25, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -30, i32 -30, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@white_rook = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -30, i32 -30, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 25, i32 25, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@upscale = internal global [64 x i32] [ i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117 ] ; <[64 x i32]*> [#uses=0] +@pre_p_tropism = internal global [9 x i32] [ i32 9999, i32 40, i32 20, i32 10, i32 3, i32 1, i32 1, i32 0, i32 9999 ] ; <[9 x i32]*> [#uses=0] +@pre_r_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 40, i32 15, i32 5, i32 1, i32 1, i32 0, i32 9999 ] ; <[9 x i32]*> [#uses=0] +@pre_n_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 70, i32 35, i32 10, i32 2, i32 1, i32 0, i32 9999 ] ; <[9 x i32]*> [#uses=0] +@pre_q_tropism = internal global [9 x i32] [ i32 9999, i32 100, i32 60, i32 20, i32 5, i32 2, i32 0, i32 0, i32 9999 ] ; <[9 x i32]*> [#uses=0] +@pre_b_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 25, i32 15, i32 5, i32 2, i32 2, i32 2, i32 9999 ] ; <[9 x i32]*> [#uses=0] +@rookdistance = internal global [144 x [144 x i32]] zeroinitializer ; <[144 x [144 x i32]]*> [#uses=0] +@distance = internal global [144 x [144 x i32]] zeroinitializer ; <[144 x [144 x i32]]*> [#uses=0] +@p_tropism = internal global [144 x [144 x i8]] zeroinitializer ; <[144 x [144 x i8]]*> [#uses=0] +@b_tropism = internal global [144 x [144 x i8]] zeroinitializer ; <[144 x [144 x i8]]*> [#uses=0] +@n_tropism = internal global [144 x [144 x i8]] zeroinitializer ; <[144 x [144 x i8]]*> [#uses=0] +@r_tropism = internal global [144 x [144 x i8]] zeroinitializer ; <[144 x [144 x i8]]*> [#uses=0] +@q_tropism = internal global [144 x [144 x i8]] zeroinitializer ; <[144 x [144 x i8]]*> [#uses=0] +@cfg_devscale.b = internal global i1 false ; <i1*> [#uses=0] +@pieces = internal global [62 x i32] zeroinitializer ; <[62 x i32]*> [#uses=0] +@piece_count = internal global i32 0 ; <i32*> [#uses=1] +@cfg_smarteval.b = internal global i1 false ; <i1*> [#uses=0] +@lcentral = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 30, i32 30, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 30, i32 30, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@str3.upgrd.21 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/leval.c\00" ; <[81 x i8]*> [#uses=0] +@str5 = internal global [21 x i8] c"(i > 0) && (i < 145)\00" ; <[21 x i8]*> [#uses=0] +@kingcap.b = internal global i1 false ; <i1*> [#uses=0] +@numb_moves = internal global i32 0 ; <i32*> [#uses=2] +@genfor = internal global %struct.move_s* null ; <%struct.move_s**> [#uses=0] +@captures = internal global i32 0 ; <i32*> [#uses=1] +@fcaptures.b = internal global i1 false ; <i1*> [#uses=0] +@gfrom = internal global i32 0 ; <i32*> [#uses=0] +@Giveaway.b = internal global i1 false ; <i1*> [#uses=0] +@path_x = internal global [300 x %struct.move_x] zeroinitializer ; <[300 x %struct.move_x]*> [#uses=0] +@str7 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/moves.c\00" ; <[81 x i8]*> [#uses=0] +@str8 = internal global [15 x i8] c"find_slot < 63\00" ; <[15 x i8]*> [#uses=0] +@is_promoted = internal global [62 x i32] zeroinitializer ; <[62 x i32]*> [#uses=0] +@squares = internal global [144 x i32] zeroinitializer ; <[144 x i32]*> [#uses=0] +@str.upgrd.22 = internal global [38 x i8] c"promoted > frame && promoted < npiece\00" ; <[38 x i8]*> [#uses=0] +@str1.upgrd.23 = internal global [38 x i8] c"promoted < npiece && promoted > frame\00" ; <[38 x i8]*> [#uses=0] +@evalRoutines = internal global [7 x i32 (i32, i32)*] [ i32 (i32, i32)* @ErrorIt, i32 (i32, i32)* @Pawn, i32 (i32, i32)* @Knight, i32 (i32, i32)* @King, i32 (i32, i32)* @Rook, i32 (i32, i32)* @Queen, i32 (i32, i32)* @Bishop ] ; <[7 x i32 (i32, i32)*]*> [#uses=0] +@sbishop = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 8, i32 5, i32 5, i32 5, i32 5, i32 8, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 3, i32 3, i32 5, i32 5, i32 3, i32 3, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 2, i32 5, i32 4, i32 4, i32 5, i32 2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 2, i32 5, i32 4, i32 4, i32 5, i32 2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 3, i32 3, i32 5, i32 5, i32 3, i32 3, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 8, i32 5, i32 5, i32 5, i32 5, i32 8, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@sknight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 5, i32 5, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 10, i32 10, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 10, i32 10, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 5, i32 5, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@swhite_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 10, i32 10, i32 3, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 2, i32 4, i32 6, i32 12, i32 12, i32 6, i32 4, i32 2, i32 0, i32 0, i32 0, i32 0, i32 3, i32 6, i32 9, i32 14, i32 14, i32 9, i32 6, i32 3, i32 0, i32 0, i32 0, i32 0, i32 10, i32 12, i32 14, i32 16, i32 16, i32 14, i32 12, i32 10, i32 0, i32 0, i32 0, i32 0, i32 20, i32 22, i32 24, i32 26, i32 26, i32 24, i32 22, i32 20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@sblack_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 20, i32 22, i32 24, i32 26, i32 26, i32 24, i32 22, i32 20, i32 0, i32 0, i32 0, i32 0, i32 10, i32 12, i32 14, i32 16, i32 16, i32 14, i32 12, i32 10, i32 0, i32 0, i32 0, i32 0, i32 3, i32 6, i32 9, i32 14, i32 14, i32 9, i32 6, i32 3, i32 0, i32 0, i32 0, i32 0, i32 2, i32 4, i32 6, i32 12, i32 12, i32 6, i32 4, i32 2, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 10, i32 10, i32 3, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@swhite_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 14, i32 0, i32 0, i32 0, i32 9, i32 14, i32 2, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 -5, i32 -6, i32 -6, i32 -6, i32 -6, i32 -5, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -8, i32 -8, i32 -8, i32 -8, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -8, i32 -8, i32 -13, i32 -13, i32 -13, i32 -13, i32 -8, i32 -8, i32 0, i32 0, i32 0, i32 0, i32 -13, i32 -13, i32 -21, i32 -21, i32 -21, i32 -21, i32 -13, i32 -13, i32 0, i32 0, i32 0, i32 0, i32 -21, i32 -21, i32 -34, i32 -34, i32 -34, i32 -34, i32 -21, i32 -21, i32 0, i32 0, i32 0, i32 0, i32 -34, i32 -34, i32 -55, i32 -55, i32 -55, i32 -55, i32 -34, i32 -34, i32 0, i32 0, i32 0, i32 0, i32 -55, i32 -55, i32 -89, i32 -89, i32 -89, i32 -89, i32 -55, i32 -55, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@sblack_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -55, i32 -55, i32 -89, i32 -89, i32 -89, i32 -89, i32 -55, i32 -55, i32 0, i32 0, i32 0, i32 0, i32 -34, i32 -34, i32 -55, i32 -55, i32 -55, i32 -55, i32 -34, i32 -34, i32 0, i32 0, i32 0, i32 0, i32 -21, i32 -21, i32 -34, i32 -34, i32 -34, i32 -34, i32 -21, i32 -21, i32 0, i32 0, i32 0, i32 0, i32 -13, i32 -13, i32 -21, i32 -21, i32 -21, i32 -21, i32 -13, i32 -13, i32 0, i32 0, i32 0, i32 0, i32 -8, i32 -8, i32 -13, i32 -13, i32 -13, i32 -13, i32 -8, i32 -8, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -8, i32 -8, i32 -8, i32 -8, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 -5, i32 -6, i32 -6, i32 -6, i32 -6, i32 -5, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 2, i32 14, i32 0, i32 0, i32 0, i32 9, i32 14, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@send_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -3, i32 -1, i32 0, i32 0, i32 -1, i32 -3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -1, i32 10, i32 25, i32 25, i32 25, i32 25, i32 10, i32 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 25, i32 50, i32 50, i32 25, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 25, i32 50, i32 50, i32 25, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -1, i32 10, i32 25, i32 25, i32 25, i32 25, i32 10, i32 -1, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -3, i32 -1, i32 0, i32 0, i32 -1, i32 -3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@srev_rank = internal global [9 x i32] [ i32 0, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1 ] ; <[9 x i32]*> [#uses=0] +@std_p_tropism = internal global [8 x i32] [ i32 9999, i32 15, i32 10, i32 7, i32 2, i32 0, i32 0, i32 0 ] ; <[8 x i32]*> [#uses=0] +@std_own_p_tropism = internal global [8 x i32] [ i32 9999, i32 30, i32 10, i32 2, i32 0, i32 0, i32 0, i32 0 ] ; <[8 x i32]*> [#uses=0] +@std_r_tropism = internal global [16 x i32] [ i32 9999, i32 0, i32 15, i32 5, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[16 x i32]*> [#uses=0] +@std_n_tropism = internal global [8 x i32] [ i32 9999, i32 14, i32 9, i32 6, i32 1, i32 0, i32 0, i32 0 ] ; <[8 x i32]*> [#uses=0] +@std_q_tropism = internal global [8 x i32] [ i32 9999, i32 200, i32 50, i32 15, i32 3, i32 2, i32 1, i32 0 ] ; <[8 x i32]*> [#uses=0] +@std_b_tropism = internal global [8 x i32] [ i32 9999, i32 12, i32 7, i32 5, i32 0, i32 0, i32 0, i32 0 ] ; <[8 x i32]*> [#uses=0] +@phase = internal global i32 0 ; <i32*> [#uses=1] +@dir.3001 = internal global [4 x i32] [ i32 -13, i32 -11, i32 11, i32 13 ] ; <[4 x i32]*> [#uses=0] +@dir.3021 = internal global [4 x i32] [ i32 -1, i32 1, i32 12, i32 -12 ] ; <[4 x i32]*> [#uses=0] +@king_locs = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=0] +@square_d1.3081 = internal global [2 x i32] [ i32 29, i32 113 ] ; <[2 x i32]*> [#uses=0] +@wmat = internal global i32 0 ; <i32*> [#uses=0] +@bmat = internal global i32 0 ; <i32*> [#uses=0] +@str.upgrd.24 = internal global [35 x i8] c"Illegal piece detected sq=%i c=%i\0A\00" ; <[35 x i8]*> [#uses=0] +@str10 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/neval.c\00" ; <[81 x i8]*> [#uses=0] +@std_hand_value = internal global [13 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 0, i32 0, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230 ] ; <[13 x i32]*> [#uses=0] +@xb_mode = internal global i32 0 ; <i32*> [#uses=0] +@str.upgrd.25 = internal global [69 x i8] c"tellics ptell Hello! I am Sjeng and hope you enjoy playing with me.\0A\00" ; <[69 x i8]*> [#uses=0] +@str.upgrd.26 = internal global [76 x i8] c"tellics ptell For help on some commands that I understand, ptell me 'help'\0A\00" ; <[76 x i8]*> [#uses=0] +@str12 = internal global [3 x i8] c"%s\00" ; <[3 x i8]*> [#uses=0] +@my_partner = internal global [256 x i8] zeroinitializer ; <[256 x i8]*> [#uses=0] +@str13 = internal global [25 x i8] c"tellics set f5 bughouse\0A\00" ; <[25 x i8]*> [#uses=0] +@str.upgrd.27 = internal global [16 x i8] c"tellics unseek\0A\00" ; <[16 x i8]*> [#uses=0] +@str.upgrd.28 = internal global [20 x i8] c"tellics set f5 1=1\0A\00" ; <[20 x i8]*> [#uses=0] +@str.upgrd.29 = internal global [80 x i8] c"is...uh...what did you say?\0A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" ; <[80 x i8]*> [#uses=0] +@str.upgrd.30 = internal global [5 x i8] c"help\00" ; <[5 x i8]*> [#uses=0] +@str.upgrd.31 = internal global [147 x i8] c"tellics ptell Commands that I understand are : sit, go, fast, slow, abort, flag, +/++/+++/-/--/---{p,n,b,r,q,d,h,trades}, x, dead, formula, help.\0A\00" ; <[147 x i8]*> [#uses=0] +@str.upgrd.32 = internal global [6 x i8] c"sorry\00" ; <[6 x i8]*> [#uses=0] +@str.upgrd.33 = internal global [59 x i8] c"tellics ptell Sorry, but I'm not playing a bughouse game.\0A\00" ; <[59 x i8]*> [#uses=0] +@str.upgrd.34 = internal global [4 x i8] c"sit\00" ; <[4 x i8]*> [#uses=0] +@str.upgrd.35 = internal global [56 x i8] c"tellics ptell Ok, I sit next move. Tell me when to go.\0A\00" ; <[56 x i8]*> [#uses=0] +@must_sit.b = internal global i1 false ; <i1*> [#uses=0] +@str114 = internal global [3 x i8] c"go\00" ; <[3 x i8]*> [#uses=0] +@str2.upgrd.36 = internal global [5 x i8] c"move\00" ; <[5 x i8]*> [#uses=0] +@str.upgrd.37 = internal global [31 x i8] c"tellics ptell Ok, I'm moving.\0A\00" ; <[31 x i8]*> [#uses=0] +@str3.upgrd.38 = internal global [5 x i8] c"fast\00" ; <[5 x i8]*> [#uses=0] +@str4.upgrd.39 = internal global [5 x i8] c"time\00" ; <[5 x i8]*> [#uses=0] +@str15 = internal global [35 x i8] c"tellics ptell Ok, I'm going FAST!\0A\00" ; <[35 x i8]*> [#uses=0] +@go_fast.b = internal global i1 false ; <i1*> [#uses=0] +@str5.upgrd.40 = internal global [5 x i8] c"slow\00" ; <[5 x i8]*> [#uses=0] +@str16 = internal global [36 x i8] c"tellics ptell Ok, moving normally.\0A\00" ; <[36 x i8]*> [#uses=0] +@str6 = internal global [6 x i8] c"abort\00" ; <[6 x i8]*> [#uses=0] +@str7.upgrd.41 = internal global [35 x i8] c"tellics ptell Requesting abort...\0A\00" ; <[35 x i8]*> [#uses=0] +@str17 = internal global [15 x i8] c"tellics abort\0A\00" ; <[15 x i8]*> [#uses=0] +@str8.upgrd.42 = internal global [5 x i8] c"flag\00" ; <[5 x i8]*> [#uses=0] +@str.upgrd.43 = internal global [27 x i8] c"tellics ptell Flagging...\0A\00" ; <[27 x i8]*> [#uses=0] +@str.upgrd.44 = internal global [14 x i8] c"tellics flag\0A\00" ; <[14 x i8]*> [#uses=0] +@str18 = internal global [2 x i8] c"+\00" ; <[2 x i8]*> [#uses=0] +@str9 = internal global [6 x i8] c"trade\00" ; <[6 x i8]*> [#uses=0] +@str10.upgrd.45 = internal global [35 x i8] c"tellics ptell Ok, trading is GOOD\0A\00" ; <[35 x i8]*> [#uses=0] +@str11 = internal global [4 x i8] c"+++\00" ; <[4 x i8]*> [#uses=0] +@str12.upgrd.46 = internal global [6 x i8] c"mates\00" ; <[6 x i8]*> [#uses=0] +@str13.upgrd.47 = internal global [3 x i8] c"++\00" ; <[3 x i8]*> [#uses=0] +@str.upgrd.48 = internal global [49 x i8] c"is VERY good (ptell me 'x' to play normal again)\00" ; <[49 x i8]*> [#uses=0] +@str.upgrd.49 = internal global [44 x i8] c"is good (ptell me 'x' to play normal again)\00" ; <[44 x i8]*> [#uses=0] +@str19 = internal global [29 x i8] c"tellics ptell Ok, Knight %s\0A\00" ; <[29 x i8]*> [#uses=0] +@str14 = internal global [29 x i8] c"tellics ptell Ok, Bishop %s\0A\00" ; <[29 x i8]*> [#uses=0] +@str15.upgrd.50 = internal global [27 x i8] c"tellics ptell Ok, Rook %s\0A\00" ; <[27 x i8]*> [#uses=0] +@str.upgrd.51 = internal global [28 x i8] c"tellics ptell Ok, Queen %s\0A\00" ; <[28 x i8]*> [#uses=0] +@str16.upgrd.52 = internal global [27 x i8] c"tellics ptell Ok, Pawn %s\0A\00" ; <[27 x i8]*> [#uses=0] +@str17.upgrd.53 = internal global [31 x i8] c"tellics ptell Ok, Diagonal %s\0A\00" ; <[31 x i8]*> [#uses=0] +@str18.upgrd.54 = internal global [28 x i8] c"tellics ptell Ok, Heavy %s\0A\00" ; <[28 x i8]*> [#uses=0] +@str20 = internal global [34 x i8] c"tellics ptell Ok, trading is BAD\0A\00" ; <[34 x i8]*> [#uses=0] +@str20.upgrd.55 = internal global [4 x i8] c"---\00" ; <[4 x i8]*> [#uses=0] +@str.upgrd.56 = internal global [53 x i8] c"mates you (ptell me 'x' when it no longer mates you)\00" ; <[53 x i8]*> [#uses=0] +@str21 = internal global [3 x i8] c"--\00" ; <[3 x i8]*> [#uses=0] +@str.upgrd.57 = internal global [52 x i8] c"is VERY bad (ptell me 'x' when it is no longer bad)\00" ; <[52 x i8]*> [#uses=0] +@str21.upgrd.58 = internal global [47 x i8] c"is bad (ptell me 'x' when it is no longer bad)\00" ; <[47 x i8]*> [#uses=0] +@str23 = internal global [16 x i8] c"mate me anymore\00" ; <[16 x i8]*> [#uses=0] +@str24 = internal global [6 x i8] c"never\00" ; <[6 x i8]*> [#uses=0] +@str25 = internal global [5 x i8] c"mind\00" ; <[5 x i8]*> [#uses=0] +@str22 = internal global [9 x i8] c"ptell me\00" ; <[9 x i8]*> [#uses=0] +@str.upgrd.59 = internal global [55 x i8] c"tellics ptell Ok, reverting to STANDARD piece values!\0A\00" ; <[55 x i8]*> [#uses=0] +@partnerdead.b = internal global i1 false ; <i1*> [#uses=0] +@piecedead.b = internal global i1 false ; <i1*> [#uses=0] +@str.upgrd.60 = internal global [26 x i8] c"i'll have to sit...(dead)\00" ; <[26 x i8]*> [#uses=0] +@str27 = internal global [5 x i8] c"dead\00" ; <[5 x i8]*> [#uses=0] +@str28 = internal global [27 x i8] c"i'll have to sit...(piece)\00" ; <[27 x i8]*> [#uses=0] +@str29 = internal global [3 x i8] c"ok\00" ; <[3 x i8]*> [#uses=0] +@str30 = internal global [3 x i8] c"hi\00" ; <[3 x i8]*> [#uses=0] +@str31 = internal global [6 x i8] c"hello\00" ; <[6 x i8]*> [#uses=0] +@str32 = internal global [26 x i8] c"tellics ptell Greetings.\0A\00" ; <[26 x i8]*> [#uses=0] +@str.upgrd.61 = internal global [8 x i8] c"formula\00" ; <[8 x i8]*> [#uses=0] +@str.upgrd.62 = internal global [87 x i8] c"tellics ptell Setting formula, if you are still interrupted, complain to my operator.\0A\00" ; <[87 x i8]*> [#uses=0] +@str33 = internal global [59 x i8] c"tellics ptell Sorry, but I don't understand that command.\0A\00" ; <[59 x i8]*> [#uses=0] +@pawnmated.3298 = internal global i32 0 ; <i32*> [#uses=0] +@knightmated.3299 = internal global i32 0 ; <i32*> [#uses=0] +@bishopmated.3300 = internal global i32 0 ; <i32*> [#uses=0] +@rookmated.3301 = internal global i32 0 ; <i32*> [#uses=0] +@queenmated.3302 = internal global i32 0 ; <i32*> [#uses=0] +@str.upgrd.63 = internal global [41 x i8] c"tellics ptell p doesn't mate me anymore\0A\00" ; <[41 x i8]*> [#uses=0] +@str34 = internal global [41 x i8] c"tellics ptell n doesn't mate me anymore\0A\00" ; <[41 x i8]*> [#uses=0] +@str35 = internal global [41 x i8] c"tellics ptell b doesn't mate me anymore\0A\00" ; <[41 x i8]*> [#uses=0] +@str36 = internal global [41 x i8] c"tellics ptell r doesn't mate me anymore\0A\00" ; <[41 x i8]*> [#uses=0] +@str37 = internal global [41 x i8] c"tellics ptell q doesn't mate me anymore\0A\00" ; <[41 x i8]*> [#uses=0] +@str38 = internal global [20 x i8] c"tellics ptell ---p\0A\00" ; <[20 x i8]*> [#uses=0] +@str39 = internal global [20 x i8] c"tellics ptell ---n\0A\00" ; <[20 x i8]*> [#uses=0] +@str40 = internal global [20 x i8] c"tellics ptell ---b\0A\00" ; <[20 x i8]*> [#uses=0] +@str41 = internal global [20 x i8] c"tellics ptell ---r\0A\00" ; <[20 x i8]*> [#uses=0] +@str42 = internal global [20 x i8] c"tellics ptell ---q\0A\00" ; <[20 x i8]*> [#uses=0] +@str23.upgrd.64 = internal global [17 x i8] c"tellics ptell x\0A\00" ; <[17 x i8]*> [#uses=0] +@str.upgrd.65 = internal global [18 x i8] c"tellics ptell go\0A\00" ; <[18 x i8]*> [#uses=0] +@bufftop = internal global i32 0 ; <i32*> [#uses=2] +@membuff = internal global i8* null ; <i8**> [#uses=3] +@maxply = internal global i32 0 ; <i32*> [#uses=1] +@forwards = internal global i32 0 ; <i32*> [#uses=1] +@nodecount = internal global i32 0 ; <i32*> [#uses=1] +@frees = internal global i32 0 ; <i32*> [#uses=0] +@PBSize.b = internal global i1 false ; <i1*> [#uses=1] +@alllosers.b = internal global i1 false ; <i1*> [#uses=1] +@rootlosers = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=1] +@pn_move = internal global %struct.move_s zeroinitializer ; <%struct.move_s*> [#uses=7] +@iters = internal global i32 0 ; <i32*> [#uses=1] +@kibitzed.b = internal global i1 false ; <i1*> [#uses=0] +@str24.upgrd.66 = internal global [28 x i8] c"tellics kibitz Forced win!\0A\00" ; <[28 x i8]*> [#uses=0] +@str25.upgrd.67 = internal global [34 x i8] c"tellics kibitz Forced win! (alt)\0A\00" ; <[34 x i8]*> [#uses=0] +@pn_time = internal global i32 0 ; <i32*> [#uses=1] +@post = internal global i32 0 ; <i32*> [#uses=0] +@str.upgrd.68 = internal global [94 x i8] c"tellics whisper proof %d, disproof %d, %d losers, highest depth %d, primary %d, secondary %d\0A\00" ; <[94 x i8]*> [#uses=0] +@str26 = internal global [30 x i8] c"tellics whisper Forced reply\0A\00" ; <[30 x i8]*> [#uses=0] +@str27.upgrd.69 = internal global [60 x i8] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d MaxDepth: %d\0A\00" ; <[60 x i8]*> [#uses=0] +@str.upgrd.70 = internal global [90 x i8] c"tellics whisper proof %d, disproof %d, %d nodes, %d forwards, %d iters, highest depth %d\0A\00" ; <[90 x i8]*> [#uses=0] +@str.upgrd.71 = internal global [11 x i8] c"Time : %f\0A\00" ; <[11 x i8]*> [#uses=0] +@str28.upgrd.72 = internal global [23 x i8] c"This position is WON.\0A\00" ; <[23 x i8]*> [#uses=0] +@str29.upgrd.73 = internal global [5 x i8] c"PV: \00" ; <[5 x i8]*> [#uses=0] +@str30.upgrd.74 = internal global [4 x i8] c"%s \00" ; <[4 x i8]*> [#uses=0] +@str31.upgrd.75 = internal global [2 x i8] c" \00" ; <[2 x i8]*> [#uses=0] +@str32.upgrd.76 = internal global [41 x i8] c"\0Atellics kibitz Forced win in %d moves.\0A\00" ; <[41 x i8]*> [#uses=0] +@str33.upgrd.77 = internal global [20 x i8] c"\0A1-0 {White mates}\0A\00" ; <[20 x i8]*> [#uses=0] +@result = internal global i32 0 ; <i32*> [#uses=4] +@str1.upgrd.78 = internal global [20 x i8] c"\0A0-1 {Black mates}\0A\00" ; <[20 x i8]*> [#uses=0] +@str35.upgrd.79 = internal global [24 x i8] c"This position is LOST.\0A\00" ; <[24 x i8]*> [#uses=0] +@str36.upgrd.80 = internal global [27 x i8] c"This position is UNKNOWN.\0A\00" ; <[27 x i8]*> [#uses=0] +@str37.upgrd.81 = internal global [47 x i8] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d\0A\00" ; <[47 x i8]*> [#uses=0] +@s_threat.b = internal global i1 false ; <i1*> [#uses=0] +@TTSize.b = internal global i1 false ; <i1*> [#uses=3] +@cfg_razordrop.b = internal global i1 false ; <i1*> [#uses=0] +@cfg_futprune.b = internal global i1 false ; <i1*> [#uses=0] +@cfg_onerep.b = internal global i1 false ; <i1*> [#uses=0] +@setcode = internal global [30 x i8] zeroinitializer ; <[30 x i8]*> [#uses=0] +@str38.upgrd.82 = internal global [3 x i8] c"%u\00" ; <[3 x i8]*> [#uses=0] +@searching_pv.b = internal global i1 false ; <i1*> [#uses=0] +@pv = internal global [300 x [300 x %struct.move_s]] zeroinitializer ; <[300 x [300 x %struct.move_s]]*> [#uses=0] +@i_depth = internal global i32 0 ; <i32*> [#uses=0] +@history_h = internal global [144 x [144 x i32]] zeroinitializer ; <[144 x [144 x i32]]*> [#uses=0] +@killer1 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] +@killer2 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] +@killer3 = internal global [300 x %struct.move_s] zeroinitializer ; <[300 x %struct.move_s]*> [#uses=0] +@rootnodecount = internal global [512 x i32] zeroinitializer ; <[512 x i32]*> [#uses=0] +@raw_nodes = internal global i32 0 ; <i32*> [#uses=0] +@pv_length = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@time_exit.b = internal global i1 false ; <i1*> [#uses=0] +@time_for_move = internal global i32 0 ; <i32*> [#uses=3] +@failed = internal global i32 0 ; <i32*> [#uses=0] +@extendedtime.b = internal global i1 false ; <i1*> [#uses=1] +@time_left = internal global i32 0 ; <i32*> [#uses=0] +@str39.upgrd.83 = internal global [38 x i8] c"Extended from %d to %d, time left %d\0A\00" ; <[38 x i8]*> [#uses=0] +@checks = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@singular = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@recaps = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@ext_onerep = internal global i32 0 ; <i32*> [#uses=1] +@FULL = internal global i32 0 ; <i32*> [#uses=1] +@PVS = internal global i32 0 ; <i32*> [#uses=1] +@PVSF = internal global i32 0 ; <i32*> [#uses=1] +@killer_scores = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@killer_scores2 = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@killer_scores3 = internal global [300 x i32] zeroinitializer ; <[300 x i32]*> [#uses=0] +@time_failure.b = internal global i1 false ; <i1*> [#uses=0] +@cur_score = internal global i32 0 ; <i32*> [#uses=0] +@legals = internal global i32 0 ; <i32*> [#uses=3] +@movetotal = internal global i32 0 ; <i32*> [#uses=0] +@searching_move = internal global [20 x i8] zeroinitializer ; <[20 x i8]*> [#uses=0] +@is_pondering.b = internal global i1 false ; <i1*> [#uses=6] +@true_i_depth = internal global i8 0 ; <i8*> [#uses=1] +@is_analyzing.b = internal global i1 false ; <i1*> [#uses=0] +@inc = internal global i32 0 ; <i32*> [#uses=1] +@time_cushion = internal global i32 0 ; <i32*> [#uses=2] +@str40.upgrd.84 = internal global [16 x i8] c"Opening phase.\0A\00" ; <[16 x i8]*> [#uses=1] +@str.upgrd.85 = internal global [19 x i8] c"Middlegame phase.\0A\00" ; <[19 x i8]*> [#uses=1] +@str1.upgrd.86 = internal global [16 x i8] c"Endgame phase.\0A\00" ; <[16 x i8]*> [#uses=1] +@str43 = internal global [20 x i8] c"Time for move : %d\0A\00" ; <[20 x i8]*> [#uses=1] +@postpv = internal global [256 x i8] zeroinitializer ; <[256 x i8]*> [#uses=0] +@str44 = internal global [49 x i8] c"tellics whisper %d restart(s), ended up with %s\0A\00" ; <[49 x i8]*> [#uses=0] +@moves_to_tc = internal global i32 0 ; <i32*> [#uses=0] +@str45 = internal global [27 x i8] c"tellics kibitz Mate in %d\0A\00" ; <[27 x i8]*> [#uses=0] +@str46 = internal global [52 x i8] c"tellics ptell Mate in %d, give him no more pieces.\0A\00" ; <[52 x i8]*> [#uses=0] +@tradefreely.b = internal global i1 false ; <i1*> [#uses=0] +@str.upgrd.87 = internal global [37 x i8] c"tellics ptell You can trade freely.\0A\00" ; <[37 x i8]*> [#uses=0] +@str47 = internal global [25 x i8] c"tellics ptell ---trades\0A\00" ; <[25 x i8]*> [#uses=0] +@str2.upgrd.88 = internal global [49 x i8] c"tellics kibitz Both players dead...resigning...\0A\00" ; <[49 x i8]*> [#uses=0] +@str3.upgrd.89 = internal global [16 x i8] c"tellics resign\0A\00" ; <[16 x i8]*> [#uses=0] +@str48 = internal global [81 x i8] c"tellics ptell I am forcedly mated (dead). Tell me 'go' to start moving into it.\0A\00" ; <[81 x i8]*> [#uses=0] +@str.upgrd.90 = internal global [62 x i8] c"tellics ptell I'll have to sit...(lose piece that mates you)\0A\00" ; <[62 x i8]*> [#uses=0] +@see_num_attackers = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=0] +@see_attackers = internal global [2 x [16 x %struct.see_data]] zeroinitializer ; <[2 x [16 x %struct.see_data]]*> [#uses=0] +@scentral = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 2, i32 15, i32 15, i32 15, i32 15, i32 2, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 7, i32 15, i32 25, i32 25, i32 15, i32 7, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 7, i32 15, i32 25, i32 25, i32 15, i32 7, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 2, i32 15, i32 15, i32 15, i32 15, i32 2, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ] ; <[144 x i32]*> [#uses=0] +@str51 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/seval.c\00" ; <[81 x i8]*> [#uses=0] +@divider = internal global [50 x i8] c"-------------------------------------------------\00" ; <[50 x i8]*> [#uses=0] +@min_per_game = internal global i32 0 ; <i32*> [#uses=0] +@opp_rating = internal global i32 0 ; <i32*> [#uses=0] +@my_rating = internal global i32 0 ; <i32*> [#uses=0] +@str53 = internal global [15 x i8] c"SPEC Workload\0A\00" ; <[15 x i8]*> [#uses=0] +@opening_history = internal global [256 x i8] zeroinitializer ; <[256 x i8]*> [#uses=0] +@str60 = internal global [81 x i8] c"Material score: %d Eval : %d MaxPosDiff: %d White hand: %d Black hand : %d\0A\00" ; <[81 x i8]*> [#uses=0] +@str61 = internal global [26 x i8] c"Hash : %X HoldHash : %X\0A\00" ; <[26 x i8]*> [#uses=0] +@str62 = internal global [9 x i8] c"move %s\0A\00" ; <[9 x i8]*> [#uses=0] +@str63 = internal global [5 x i8] c"\0A%s\0A\00" ; <[5 x i8]*> [#uses=0] +@str64 = internal global [19 x i8] c"0-1 {Black Mates}\0A\00" ; <[19 x i8]*> [#uses=0] +@str1.upgrd.91 = internal global [19 x i8] c"1-0 {White Mates}\0A\00" ; <[19 x i8]*> [#uses=0] +@str65 = internal global [27 x i8] c"1/2-1/2 {Fifty move rule}\0A\00" ; <[27 x i8]*> [#uses=0] +@str2.upgrd.92 = internal global [29 x i8] c"1/2-1/2 {3 fold repetition}\0A\00" ; <[29 x i8]*> [#uses=0] +@str66 = internal global [16 x i8] c"1/2-1/2 {Draw}\0A\00" ; <[16 x i8]*> [#uses=0] +@str68 = internal global [8 x i8] c"Sjeng: \00" ; <[8 x i8]*> [#uses=0] +@str69 = internal global [18 x i8] c"Illegal move: %s\0A\00" ; <[18 x i8]*> [#uses=0] +@str3.upgrd.93 = internal global [9 x i8] c"setboard\00" ; <[9 x i8]*> [#uses=0] +@str470 = internal global [5 x i8] c"quit\00" ; <[5 x i8]*> [#uses=0] +@str571 = internal global [5 x i8] c"exit\00" ; <[5 x i8]*> [#uses=0] +@str6.upgrd.94 = internal global [8 x i8] c"diagram\00" ; <[8 x i8]*> [#uses=0] +@str7.upgrd.95 = internal global [2 x i8] c"d\00" ; <[2 x i8]*> [#uses=0] +@str72 = internal global [6 x i8] c"perft\00" ; <[6 x i8]*> [#uses=0] +@str73 = internal global [3 x i8] c"%d\00" ; <[3 x i8]*> [#uses=0] +@str74 = internal global [28 x i8] c"Raw nodes for depth %d: %i\0A\00" ; <[28 x i8]*> [#uses=0] +@str.upgrd.96 = internal global [13 x i8] c"Time : %.2f\0A\00" ; <[13 x i8]*> [#uses=0] +@str75 = internal global [4 x i8] c"new\00" ; <[4 x i8]*> [#uses=0] +@str.upgrd.97 = internal global [40 x i8] c"tellics set 1 Sjeng SPEC 1.0 (SPEC/%s)\0A\00" ; <[40 x i8]*> [#uses=0] +@str.upgrd.98 = internal global [7 x i8] c"xboard\00" ; <[7 x i8]*> [#uses=0] +@str8.upgrd.99 = internal global [6 x i8] c"nodes\00" ; <[6 x i8]*> [#uses=0] +@str77 = internal global [38 x i8] c"Number of nodes: %i (%0.2f%% qnodes)\0A\00" ; <[38 x i8]*> [#uses=0] +@str9.upgrd.100 = internal global [5 x i8] c"post\00" ; <[5 x i8]*> [#uses=0] +@str10.upgrd.101 = internal global [7 x i8] c"nopost\00" ; <[7 x i8]*> [#uses=0] +@str11.upgrd.102 = internal global [7 x i8] c"random\00" ; <[7 x i8]*> [#uses=0] +@str12.upgrd.103 = internal global [5 x i8] c"hard\00" ; <[5 x i8]*> [#uses=0] +@str13.upgrd.104 = internal global [5 x i8] c"easy\00" ; <[5 x i8]*> [#uses=0] +@str14.upgrd.105 = internal global [2 x i8] c"?\00" ; <[2 x i8]*> [#uses=0] +@str15.upgrd.106 = internal global [6 x i8] c"white\00" ; <[6 x i8]*> [#uses=0] +@str16.upgrd.107 = internal global [6 x i8] c"black\00" ; <[6 x i8]*> [#uses=0] +@str17.upgrd.108 = internal global [6 x i8] c"force\00" ; <[6 x i8]*> [#uses=0] +@str18.upgrd.109 = internal global [5 x i8] c"eval\00" ; <[5 x i8]*> [#uses=0] +@str.upgrd.110 = internal global [10 x i8] c"Eval: %d\0A\00" ; <[10 x i8]*> [#uses=0] +@str2178 = internal global [3 x i8] c"%i\00" ; <[3 x i8]*> [#uses=0] +@str22.upgrd.111 = internal global [5 x i8] c"otim\00" ; <[5 x i8]*> [#uses=0] +@opp_time = internal global i32 0 ; <i32*> [#uses=0] +@str23.upgrd.112 = internal global [6 x i8] c"level\00" ; <[6 x i8]*> [#uses=0] +@str.upgrd.113 = internal global [12 x i8] c"%i %i:%i %i\00" ; <[12 x i8]*> [#uses=0] +@sec_per_game = internal global i32 0 ; <i32*> [#uses=0] +@str24.upgrd.114 = internal global [9 x i8] c"%i %i %i\00" ; <[9 x i8]*> [#uses=0] +@str25.upgrd.115 = internal global [7 x i8] c"rating\00" ; <[7 x i8]*> [#uses=0] +@str26.upgrd.116 = internal global [6 x i8] c"%i %i\00" ; <[6 x i8]*> [#uses=0] +@str27.upgrd.117 = internal global [8 x i8] c"holding\00" ; <[8 x i8]*> [#uses=0] +@str28.upgrd.118 = internal global [8 x i8] c"variant\00" ; <[8 x i8]*> [#uses=0] +@str29.upgrd.119 = internal global [7 x i8] c"normal\00" ; <[7 x i8]*> [#uses=0] +@str79 = internal global [11 x i8] c"crazyhouse\00" ; <[11 x i8]*> [#uses=0] +@str30.upgrd.120 = internal global [9 x i8] c"bughouse\00" ; <[9 x i8]*> [#uses=0] +@str31.upgrd.121 = internal global [8 x i8] c"suicide\00" ; <[8 x i8]*> [#uses=0] +@str32.upgrd.122 = internal global [9 x i8] c"giveaway\00" ; <[9 x i8]*> [#uses=0] +@str33.upgrd.123 = internal global [7 x i8] c"losers\00" ; <[7 x i8]*> [#uses=0] +@str34.upgrd.124 = internal global [8 x i8] c"analyze\00" ; <[8 x i8]*> [#uses=0] +@str35.upgrd.125 = internal global [5 x i8] c"undo\00" ; <[5 x i8]*> [#uses=0] +@str36.upgrd.126 = internal global [18 x i8] c"Move number : %d\0A\00" ; <[18 x i8]*> [#uses=0] +@str37.upgrd.127 = internal global [7 x i8] c"remove\00" ; <[7 x i8]*> [#uses=0] +@str38.upgrd.128 = internal global [5 x i8] c"edit\00" ; <[5 x i8]*> [#uses=0] +@str41.upgrd.129 = internal global [2 x i8] c"#\00" ; <[2 x i8]*> [#uses=0] +@str42.upgrd.130 = internal global [8 x i8] c"partner\00" ; <[8 x i8]*> [#uses=0] +@str43.upgrd.131 = internal global [9 x i8] c"$partner\00" ; <[9 x i8]*> [#uses=0] +@str44.upgrd.132 = internal global [6 x i8] c"ptell\00" ; <[6 x i8]*> [#uses=0] +@str45.upgrd.133 = internal global [5 x i8] c"test\00" ; <[5 x i8]*> [#uses=0] +@str46.upgrd.134 = internal global [3 x i8] c"st\00" ; <[3 x i8]*> [#uses=0] +@str47.upgrd.135 = internal global [7 x i8] c"result\00" ; <[7 x i8]*> [#uses=0] +@str48.upgrd.136 = internal global [6 x i8] c"prove\00" ; <[6 x i8]*> [#uses=0] +@str49 = internal global [26 x i8] c"\0AMax time to search (s): \00" ; <[26 x i8]*> [#uses=0] +@str50 = internal global [5 x i8] c"ping\00" ; <[5 x i8]*> [#uses=0] +@str51.upgrd.137 = internal global [9 x i8] c"pong %d\0A\00" ; <[9 x i8]*> [#uses=0] +@str52 = internal global [6 x i8] c"fritz\00" ; <[6 x i8]*> [#uses=0] +@str53.upgrd.138 = internal global [6 x i8] c"reset\00" ; <[6 x i8]*> [#uses=0] +@str54 = internal global [3 x i8] c"sd\00" ; <[3 x i8]*> [#uses=0] +@str55 = internal global [26 x i8] c"New max depth set to: %d\0A\00" ; <[26 x i8]*> [#uses=0] +@str56 = internal global [5 x i8] c"auto\00" ; <[5 x i8]*> [#uses=0] +@str57 = internal global [9 x i8] c"protover\00" ; <[9 x i8]*> [#uses=0] +@str.upgrd.139 = internal global [63 x i8] c"feature ping=0 setboard=1 playother=0 san=0 usermove=0 time=1\0A\00" ; <[63 x i8]*> [#uses=0] +@str80 = internal global [53 x i8] c"feature draw=0 sigint=0 sigterm=0 reuse=1 analyze=0\0A\00" ; <[53 x i8]*> [#uses=0] +@str.upgrd.140 = internal global [33 x i8] c"feature myname=\22Sjeng SPEC 1.0\22\0A\00" ; <[33 x i8]*> [#uses=0] +@str.upgrd.141 = internal global [71 x i8] c"feature variants=\22normal,bughouse,crazyhouse,suicide,giveaway,losers\22\0A\00" ; <[71 x i8]*> [#uses=0] +@str.upgrd.142 = internal global [46 x i8] c"feature colors=1 ics=0 name=0 pause=0 done=1\0A\00" ; <[46 x i8]*> [#uses=0] +@str58 = internal global [9 x i8] c"accepted\00" ; <[9 x i8]*> [#uses=0] +@str59 = internal global [9 x i8] c"rejected\00" ; <[9 x i8]*> [#uses=0] +@str.upgrd.143 = internal global [65 x i8] c"Interface does not support a required feature...expect trouble.\0A\00" ; <[65 x i8]*> [#uses=0] +@str61.upgrd.144 = internal global [6 x i8] c"\0A%s\0A\0A\00" ; <[6 x i8]*> [#uses=0] +@str81 = internal global [41 x i8] c"diagram/d: toggle diagram display\0A\00" ; <[41 x i8]*> [#uses=0] +@str82 = internal global [34 x i8] c"exit/quit: terminate Sjeng\0A\00" ; <[34 x i8]*> [#uses=0] +@str62.upgrd.145 = internal global [51 x i8] c"go: make Sjeng play the side to move\0A\00" ; <[51 x i8]*> [#uses=0] +@str83 = internal global [35 x i8] c"new: start a new game\0A\00" ; <[35 x i8]*> [#uses=0] +@str84 = internal global [55 x i8] c"level <x>: the xboard style command to set time\0A\00" ; <[55 x i8]*> [#uses=0] +@str85 = internal global [49 x i8] c" <x> should be in the form: <a> <b> <c> where:\0A\00" ; <[49 x i8]*> [#uses=0] +@str63.upgrd.146 = internal global [49 x i8] c" a -> moves to TC (0 if using an ICS style TC)\0A\00" ; <[49 x i8]*> [#uses=0] +@str86 = internal global [25 x i8] c" b -> minutes per game\0A\00" ; <[25 x i8]*> [#uses=0] +@str64.upgrd.147 = internal global [29 x i8] c" c -> increment in seconds\0A\00" ; <[29 x i8]*> [#uses=0] +@str65.upgrd.148 = internal global [55 x i8] c"nodes: outputs the number of nodes searched\0A\00" ; <[55 x i8]*> [#uses=0] +@str87 = internal global [47 x i8] c"perft <x>: compute raw nodes to depth x\0A\00" ; <[47 x i8]*> [#uses=0] +@str.upgrd.149 = internal global [42 x i8] c"post: toggles thinking output\0A\00" ; <[42 x i8]*> [#uses=0] +@str.upgrd.150 = internal global [45 x i8] c"xboard: put Sjeng into xboard mode\0A\00" ; <[45 x i8]*> [#uses=0] +@str.upgrd.151 = internal global [39 x i8] c"test: run an EPD testsuite\0A\00" ; <[39 x i8]*> [#uses=0] +@str88 = internal global [52 x i8] c"speed: test movegen and evaluation speed\0A\00" ; <[52 x i8]*> [#uses=0] +@str89 = internal global [59 x i8] c"proof: try to prove or disprove the current pos\0A\00" ; <[59 x i8]*> [#uses=0] +@str90 = internal global [44 x i8] c"sd <x>: limit thinking to depth x\0A\00" ; <[44 x i8]*> [#uses=0] +@str66.upgrd.152 = internal global [51 x i8] c"st <x>: limit thinking to x centiseconds\0A\00" ; <[51 x i8]*> [#uses=0] +@str67 = internal global [54 x i8] c"setboard <FEN>: set board to a specified FEN string\0A\00" ; <[54 x i8]*> [#uses=0] +@str68.upgrd.153 = internal global [38 x i8] c"undo: back up a half move\0A\00" ; <[38 x i8]*> [#uses=0] +@str69.upgrd.154 = internal global [38 x i8] c"remove: back up a full move\0A\00" ; <[38 x i8]*> [#uses=0] +@str70 = internal global [42 x i8] c"force: disable computer moving\0A\00" ; <[42 x i8]*> [#uses=0] +@str71 = internal global [44 x i8] c"auto: computer plays both sides\0A\00" ; <[44 x i8]*> [#uses=0] +@DP_TTable = internal global %struct.TType* null ; <%struct.TType**> [#uses=1] +@AS_TTable = internal global %struct.TType* null ; <%struct.TType**> [#uses=1] +@QS_TTable = internal global %struct.QTType* null ; <%struct.QTType**> [#uses=1] +@str93 = internal global [38 x i8] c"Out of memory allocating hashtables.\0A\00" ; <[38 x i8]*> [#uses=0] +@type_to_char.3058 = internal global [14 x i32] [ i32 70, i32 80, i32 80, i32 78, i32 78, i32 75, i32 75, i32 82, i32 82, i32 81, i32 81, i32 66, i32 66, i32 69 ] ; <[14 x i32]*> [#uses=0] +@str94 = internal global [8 x i8] c"%c@%c%d\00" ; <[8 x i8]*> [#uses=0] +@str95 = internal global [5 x i8] c"%c%d\00" ; <[5 x i8]*> [#uses=0] +@str1.upgrd.155 = internal global [8 x i8] c"%c%d=%c\00" ; <[8 x i8]*> [#uses=0] +@str2.upgrd.156 = internal global [8 x i8] c"%cx%c%d\00" ; <[8 x i8]*> [#uses=0] +@str96 = internal global [11 x i8] c"%cx%c%d=%c\00" ; <[11 x i8]*> [#uses=0] +@str97 = internal global [4 x i8] c"O-O\00" ; <[4 x i8]*> [#uses=0] +@str98 = internal global [6 x i8] c"O-O-O\00" ; <[6 x i8]*> [#uses=0] +@str99 = internal global [9 x i8] c"%c%c%c%d\00" ; <[9 x i8]*> [#uses=0] +@str3100 = internal global [9 x i8] c"%c%d%c%d\00" ; <[9 x i8]*> [#uses=0] +@str101 = internal global [10 x i8] c"%c%cx%c%d\00" ; <[10 x i8]*> [#uses=0] +@str4.upgrd.157 = internal global [10 x i8] c"%c%dx%c%d\00" ; <[10 x i8]*> [#uses=0] +@str102 = internal global [7 x i8] c"%c%c%d\00" ; <[7 x i8]*> [#uses=0] +@str5103 = internal global [5 x i8] c"illg\00" ; <[5 x i8]*> [#uses=0] +@type_to_char.3190 = internal global [14 x i32] [ i32 70, i32 80, i32 112, i32 78, i32 110, i32 75, i32 107, i32 82, i32 114, i32 81, i32 113, i32 66, i32 98, i32 69 ] ; <[14 x i32]*> [#uses=0] +@str7.upgrd.158 = internal global [10 x i8] c"%c%d%c%dn\00" ; <[10 x i8]*> [#uses=0] +@str8.upgrd.159 = internal global [10 x i8] c"%c%d%c%dr\00" ; <[10 x i8]*> [#uses=0] +@str9.upgrd.160 = internal global [10 x i8] c"%c%d%c%db\00" ; <[10 x i8]*> [#uses=0] +@str10.upgrd.161 = internal global [10 x i8] c"%c%d%c%dk\00" ; <[10 x i8]*> [#uses=0] +@str11.upgrd.162 = internal global [10 x i8] c"%c%d%c%dq\00" ; <[10 x i8]*> [#uses=0] +@C.88.3251 = internal global [14 x i8*] [ i8* getelementptr ([3 x i8]* @str105, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str12106, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str13107, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str141, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str152, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str163, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str174, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str185, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str19108, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str206, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str21109, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str227, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str238, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str249, i32 0, i32 0) ] ; <[14 x i8*]*> [#uses=0] +@str105 = internal global [3 x i8] c"!!\00" ; <[3 x i8]*> [#uses=1] +@str12106 = internal global [3 x i8] c" P\00" ; <[3 x i8]*> [#uses=1] +@str13107 = internal global [3 x i8] c"*P\00" ; <[3 x i8]*> [#uses=1] +@str141 = internal global [3 x i8] c" N\00" ; <[3 x i8]*> [#uses=1] +@str152 = internal global [3 x i8] c"*N\00" ; <[3 x i8]*> [#uses=1] +@str163 = internal global [3 x i8] c" K\00" ; <[3 x i8]*> [#uses=1] +@str174 = internal global [3 x i8] c"*K\00" ; <[3 x i8]*> [#uses=1] +@str185 = internal global [3 x i8] c" R\00" ; <[3 x i8]*> [#uses=1] +@str19108 = internal global [3 x i8] c"*R\00" ; <[3 x i8]*> [#uses=1] +@str206 = internal global [3 x i8] c" Q\00" ; <[3 x i8]*> [#uses=1] +@str21109 = internal global [3 x i8] c"*Q\00" ; <[3 x i8]*> [#uses=1] +@str227 = internal global [3 x i8] c" B\00" ; <[3 x i8]*> [#uses=1] +@str238 = internal global [3 x i8] c"*B\00" ; <[3 x i8]*> [#uses=1] +@str249 = internal global [3 x i8] c" \00" ; <[3 x i8]*> [#uses=1] +@str110 = internal global [42 x i8] c"+----+----+----+----+----+----+----+----+\00" ; <[42 x i8]*> [#uses=0] +@str25.upgrd.163 = internal global [6 x i8] c" %s\0A\00" ; <[6 x i8]*> [#uses=0] +@str26.upgrd.164 = internal global [5 x i8] c"%d |\00" ; <[5 x i8]*> [#uses=0] +@str27.upgrd.165 = internal global [6 x i8] c" %s |\00" ; <[6 x i8]*> [#uses=0] +@str28.upgrd.166 = internal global [7 x i8] c"\0A %s\0A\00" ; <[7 x i8]*> [#uses=0] +@str111 = internal global [45 x i8] c"\0A a b c d e f g h\0A\0A\00" ; <[45 x i8]*> [#uses=0] +@str29.upgrd.167 = internal global [45 x i8] c"\0A h g f e d c b a\0A\0A\00" ; <[45 x i8]*> [#uses=0] +@str33.upgrd.168 = internal global [2 x i8] c"<\00" ; <[2 x i8]*> [#uses=0] +@str34.upgrd.169 = internal global [3 x i8] c"> \00" ; <[3 x i8]*> [#uses=0] +@str114.upgrd.170 = internal global [18 x i8] c"%2i %7i %5i %8i \00" ; <[18 x i8]*> [#uses=0] +@str115 = internal global [20 x i8] c"%2i %c%1i.%02i %9i \00" ; <[20 x i8]*> [#uses=0] +@str39.upgrd.171 = internal global [5 x i8] c"%s !\00" ; <[5 x i8]*> [#uses=0] +@str40.upgrd.172 = internal global [6 x i8] c"%s !!\00" ; <[6 x i8]*> [#uses=0] +@str41.upgrd.173 = internal global [6 x i8] c"%s ??\00" ; <[6 x i8]*> [#uses=0] +@str124 = internal global [71 x i8] c"\0ASjeng version SPEC 1.0, Copyright (C) 2000-2005 Gian-Carlo Pascutto\0A\0A\00" ; <[71 x i8]*> [#uses=0] +@state = internal global [625 x i32] zeroinitializer ; <[625 x i32]*> [#uses=0] + +declare fastcc i32 @calc_attackers(i32, i32) + +declare fastcc i32 @is_attacked(i32, i32) + +declare fastcc void @ProcessHoldings(i8*) + +declare void @llvm.memset.i32(i8*, i8, i32, i32) + +declare i8* @strncpy(i8*, i8*, i32) + +declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) + +declare void @__eprintf(i8*, i8*, i32, i8*) + +declare fastcc void @addHolding(i32, i32) + +declare fastcc void @removeHolding(i32, i32) + +declare fastcc void @DropremoveHolding(i32, i32) + +declare i32 @printf(i8*, ...) + +declare fastcc i32 @is_draw() + +declare void @exit(i32) + +declare fastcc void @setup_epd_line(i8*) + +declare i32 @atoi(i8*) + +declare fastcc void @reset_piece_square() + +declare fastcc void @initialize_hash() + +declare i32 @__maskrune(i32, i32) + +declare fastcc void @comp_to_san(i64, i64, i64, i8*) + +declare i8* @strstr(i8*, i8*) + +declare i32 @atol(i8*) + +declare %struct.FILE* @fopen(i8*, i8*) + +declare fastcc void @display_board(i32) + +define internal void @think(%struct.move_s* sret %agg.result) { entry: - %output.i = alloca [8 x sbyte], align 8 ; <[8 x sbyte]*> [#uses=0] + %output.i = alloca [8 x i8], align 8 ; <[8 x i8]*> [#uses=0] %comp_move = alloca %struct.move_s, align 16 ; <%struct.move_s*> [#uses=7] %temp_move = alloca %struct.move_s, align 16 ; <%struct.move_s*> [#uses=6] %moves = alloca [512 x %struct.move_s], align 16 ; <[512 x %struct.move_s]*> [#uses=7] - %output = alloca [8 x sbyte], align 8 ; <[8 x sbyte]*> [#uses=1] - store bool false, bool* %userealholdings.b - %tmp = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0 ; <%struct.move_s*> [#uses=3] - %tmp362 = getelementptr %struct.move_s* %comp_move, int 0, uint 0 ; <int*> [#uses=0] - %tmp365 = getelementptr %struct.move_s* %comp_move, int 0, uint 1 ; <int*> [#uses=0] - %tmp368 = getelementptr %struct.move_s* %comp_move, int 0, uint 2 ; <int*> [#uses=0] - %tmp371 = getelementptr %struct.move_s* %comp_move, int 0, uint 3 ; <int*> [#uses=0] - %tmp374 = getelementptr %struct.move_s* %comp_move, int 0, uint 4 ; <int*> [#uses=0] - %tmp377 = getelementptr %struct.move_s* %comp_move, int 0, uint 5 ; <int*> [#uses=0] - %tmp = cast %struct.move_s* %comp_move to { long, long, long }* ; <{ long, long, long }*> [#uses=3] - %tmp = getelementptr { long, long, long }* %tmp, int 0, uint 0 ; <long*> [#uses=0] - %tmp829 = getelementptr { long, long, long }* %tmp, int 0, uint 1 ; <long*> [#uses=0] - %tmp832 = getelementptr { long, long, long }* %tmp, int 0, uint 2 ; <long*> [#uses=0] - %output = getelementptr [8 x sbyte]* %output, int 0, int 0 ; <sbyte*> [#uses=0] - %tmp573 = getelementptr %struct.move_s* %temp_move, int 0, uint 0 ; <int*> [#uses=0] - %tmp576 = getelementptr %struct.move_s* %temp_move, int 0, uint 1 ; <int*> [#uses=0] - %tmp579 = getelementptr %struct.move_s* %temp_move, int 0, uint 2 ; <int*> [#uses=0] - %tmp582 = getelementptr %struct.move_s* %temp_move, int 0, uint 3 ; <int*> [#uses=0] - %tmp585 = getelementptr %struct.move_s* %temp_move, int 0, uint 4 ; <int*> [#uses=0] - %tmp588 = getelementptr %struct.move_s* %temp_move, int 0, uint 5 ; <int*> [#uses=0] - %pn_restart.0.ph = cast uint 0 to int ; <int> [#uses=2] - %tmp21362 = seteq uint 0, 0 ; <bool> [#uses=2] - %tmp216 = cast int %pn_restart.0.ph to float ; <float> [#uses=1] - %tmp216 = cast float %tmp216 to double ; <double> [#uses=1] - %tmp217 = add double %tmp216, 1.000000e+00 ; <double> [#uses=1] - %tmp835 = setgt int %pn_restart.0.ph, 9 ; <bool> [#uses=0] - store int 0, int* %nodes - store int 0, int* %qnodes - store int 1, int* %ply - store uint 0, uint* %ECacheProbes - store uint 0, uint* %ECacheHits - store uint 0, uint* %TTProbes - store uint 0, uint* %TTHits - store uint 0, uint* %TTStores - store uint 0, uint* %NCuts - store uint 0, uint* %NTries - store uint 0, uint* %TExt - store uint 0, uint* %FH - store uint 0, uint* %FHF - store uint 0, uint* %PVS - store uint 0, uint* %FULL - store uint 0, uint* %PVSF - store uint 0, uint* %ext_check - store uint 0, uint* %ext_onerep - store uint 0, uint* %razor_drop - store uint 0, uint* %razor_material - store bool false, bool* %extendedtime.b - store bool false, bool* %forcedwin.b - store int 200, int* %maxposdiff - store sbyte 0, sbyte* %true_i_depth - store int 0, int* %legals - %tmp48 = load int* %Variant ; <int> [#uses=1] - %tmp49 = seteq int %tmp48, 4 ; <bool> [#uses=1] - %storemerge = cast bool %tmp49 to uint ; <uint> [#uses=1] - store uint %storemerge, uint* %captures - call fastcc void %gen( %struct.move_s* %tmp ) - %tmp53 = load int* %numb_moves ; <int> [#uses=1] - %tmp.i = load int* %Variant ; <int> [#uses=1] - %tmp.i = seteq int %tmp.i, 3 ; <bool> [#uses=1] - br bool %tmp.i, label %in_check.exit, label %cond_next.i + %output = alloca [8 x i8], align 8 ; <[8 x i8]*> [#uses=1] + store i1 false, i1* @userealholdings.b + %tmp = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0 ; <%struct.move_s*> [#uses=3] + %tmp362 = getelementptr %struct.move_s* %comp_move, i32 0, i32 0 ; <i32*> [#uses=0] + %tmp365 = getelementptr %struct.move_s* %comp_move, i32 0, i32 1 ; <i32*> [#uses=0] + %tmp368 = getelementptr %struct.move_s* %comp_move, i32 0, i32 2 ; <i32*> [#uses=0] + %tmp371 = getelementptr %struct.move_s* %comp_move, i32 0, i32 3 ; <i32*> [#uses=0] + %tmp374 = getelementptr %struct.move_s* %comp_move, i32 0, i32 4 ; <i32*> [#uses=0] + %tmp377 = getelementptr %struct.move_s* %comp_move, i32 0, i32 5 ; <i32*> [#uses=0] + %tmp.upgrd.174 = bitcast %struct.move_s* %comp_move to { i64, i64, i64 }* ; <{ i64, i64, i64 }*> [#uses=3] + %tmp.upgrd.175 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 0 ; <i64*> [#uses=0] + %tmp829 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 1 ; <i64*> [#uses=0] + %tmp832 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 2 ; <i64*> [#uses=0] + %output.upgrd.176 = getelementptr [8 x i8]* %output, i32 0, i32 0 ; <i8*> [#uses=0] + %tmp573 = getelementptr %struct.move_s* %temp_move, i32 0, i32 0 ; <i32*> [#uses=0] + %tmp576 = getelementptr %struct.move_s* %temp_move, i32 0, i32 1 ; <i32*> [#uses=0] + %tmp579 = getelementptr %struct.move_s* %temp_move, i32 0, i32 2 ; <i32*> [#uses=0] + %tmp582 = getelementptr %struct.move_s* %temp_move, i32 0, i32 3 ; <i32*> [#uses=0] + %tmp585 = getelementptr %struct.move_s* %temp_move, i32 0, i32 4 ; <i32*> [#uses=0] + %tmp588 = getelementptr %struct.move_s* %temp_move, i32 0, i32 5 ; <i32*> [#uses=0] + %pn_restart.0.ph = bitcast i32 0 to i32 ; <i32> [#uses=2] + %tmp21362 = icmp eq i32 0, 0 ; <i1> [#uses=2] + %tmp216 = sitofp i32 %pn_restart.0.ph to float ; <float> [#uses=1] + %tmp216.upgrd.177 = fpext float %tmp216 to double ; <double> [#uses=1] + %tmp217 = add double %tmp216.upgrd.177, 1.000000e+00 ; <double> [#uses=1] + %tmp835 = icmp sgt i32 %pn_restart.0.ph, 9 ; <i1> [#uses=0] + store i32 0, i32* @nodes + store i32 0, i32* @qnodes + store i32 1, i32* @ply + store i32 0, i32* @ECacheProbes + store i32 0, i32* @ECacheHits + store i32 0, i32* @TTProbes + store i32 0, i32* @TTHits + store i32 0, i32* @TTStores + store i32 0, i32* @NCuts + store i32 0, i32* @NTries + store i32 0, i32* @TExt + store i32 0, i32* @FH + store i32 0, i32* @FHF + store i32 0, i32* @PVS + store i32 0, i32* @FULL + store i32 0, i32* @PVSF + store i32 0, i32* @ext_check + store i32 0, i32* @ext_onerep + store i32 0, i32* @razor_drop + store i32 0, i32* @razor_material + store i1 false, i1* @extendedtime.b + store i1 false, i1* @forcedwin.b + store i32 200, i32* @maxposdiff + store i8 0, i8* @true_i_depth + store i32 0, i32* @legals + %tmp48 = load i32* @Variant ; <i32> [#uses=1] + %tmp49 = icmp eq i32 %tmp48, 4 ; <i1> [#uses=1] + %storemerge = zext i1 %tmp49 to i32 ; <i32> [#uses=1] + store i32 %storemerge, i32* @captures + call fastcc void @gen( %struct.move_s* %tmp ) + %tmp53 = load i32* @numb_moves ; <i32> [#uses=1] + %tmp.i = load i32* @Variant ; <i32> [#uses=1] + %tmp.i.upgrd.178 = icmp eq i32 %tmp.i, 3 ; <i1> [#uses=1] + br i1 %tmp.i.upgrd.178, label %in_check.exit, label %cond_next.i cond_next.i: ; preds = %entry - %tmp2.i5 = load int* %white_to_move ; <int> [#uses=1] - %tmp3.i = seteq int %tmp2.i5, 1 ; <bool> [#uses=0] + %tmp2.i5 = load i32* @white_to_move ; <i32> [#uses=1] + %tmp3.i = icmp eq i32 %tmp2.i5, 1 ; <i1> [#uses=0] ret void in_check.exit: ; preds = %entry - %tmp7637 = setgt int %tmp53, 0 ; <bool> [#uses=1] - br bool %tmp7637, label %cond_true77, label %bb80 + %tmp7637 = icmp sgt i32 %tmp53, 0 ; <i1> [#uses=1] + br i1 %tmp7637, label %cond_true77, label %bb80 cond_true77: ; preds = %in_check.exit - %l.1.0 = cast uint 0 to int ; <int> [#uses=2] - call fastcc void %make( %struct.move_s* %tmp, int %l.1.0 ) - %tmp61 = call fastcc uint %check_legal( %struct.move_s* %tmp, int %l.1.0, int 0 ) ; <uint> [#uses=1] - %tmp62 = seteq uint %tmp61, 0 ; <bool> [#uses=0] + %l.1.0 = bitcast i32 0 to i32 ; <i32> [#uses=2] + call fastcc void @make( %struct.move_s* %tmp, i32 %l.1.0 ) + %tmp61 = call fastcc i32 @check_legal( %struct.move_s* %tmp, i32 %l.1.0, i32 0 ) ; <i32> [#uses=1] + %tmp62 = icmp eq i32 %tmp61, 0 ; <i1> [#uses=0] ret void bb80: ; preds = %in_check.exit - %tmp81 = load int* %Variant ; <int> [#uses=1] - %tmp82 = seteq int %tmp81, 4 ; <bool> [#uses=1] - br bool %tmp82, label %cond_true83, label %cond_next118 + %tmp81 = load i32* @Variant ; <i32> [#uses=1] + %tmp82 = icmp eq i32 %tmp81, 4 ; <i1> [#uses=1] + br i1 %tmp82, label %cond_true83, label %cond_next118 cond_true83: ; preds = %bb80 - %tmp84 = load int* %legals ; <int> [#uses=1] - %tmp85 = seteq int %tmp84, 0 ; <bool> [#uses=0] + %tmp84 = load i32* @legals ; <i32> [#uses=1] + %tmp85 = icmp eq i32 %tmp84, 0 ; <i1> [#uses=0] ret void cond_next118: ; preds = %bb80 - %tmp119 = load int* %Variant ; <int> [#uses=1] - %tmp120 = seteq int %tmp119, 1 ; <bool> [#uses=1] - br bool %tmp120, label %cond_next176, label %cond_true121 + %tmp119 = load i32* @Variant ; <i32> [#uses=1] + %tmp120 = icmp eq i32 %tmp119, 1 ; <i1> [#uses=1] + br i1 %tmp120, label %cond_next176, label %cond_true121 cond_true121: ; preds = %cond_next118 - %tmp122.b = load bool* %is_pondering.b ; <bool> [#uses=1] - br bool %tmp122.b, label %cond_next176, label %cond_true124 + %tmp122.b = load i1* @is_pondering.b ; <i1> [#uses=1] + br i1 %tmp122.b, label %cond_next176, label %cond_true124 cond_true124: ; preds = %cond_true121 - %tmp125 = load int* %legals ; <int> [#uses=1] - %tmp126 = seteq int %tmp125, 1 ; <bool> [#uses=1] - br bool %tmp126, label %cond_true127, label %cond_next176 + %tmp125 = load i32* @legals ; <i32> [#uses=1] + %tmp126 = icmp eq i32 %tmp125, 1 ; <i1> [#uses=1] + br i1 %tmp126, label %cond_true127, label %cond_next176 cond_true127: ; preds = %cond_true124 - %tmp128 = load int* %inc ; <int> [#uses=1] - %tmp129 = mul int %tmp128, 100 ; <int> [#uses=1] - %tmp130 = load int* %time_cushion ; <int> [#uses=1] - %tmp131 = add int %tmp129, %tmp130 ; <int> [#uses=1] - store int %tmp131, int* %time_cushion - %tmp134 = getelementptr %struct.move_s* %agg.result, int 0, uint 0 ; <int*> [#uses=1] - %tmp135 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 0 ; <int*> [#uses=1] - %tmp136 = load int* %tmp135 ; <int> [#uses=1] - store int %tmp136, int* %tmp134 - %tmp137 = getelementptr %struct.move_s* %agg.result, int 0, uint 1 ; <int*> [#uses=1] - %tmp138 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 1 ; <int*> [#uses=1] - %tmp139 = load int* %tmp138 ; <int> [#uses=1] - store int %tmp139, int* %tmp137 - %tmp140 = getelementptr %struct.move_s* %agg.result, int 0, uint 2 ; <int*> [#uses=1] - %tmp141 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 2 ; <int*> [#uses=1] - %tmp142 = load int* %tmp141 ; <int> [#uses=1] - store int %tmp142, int* %tmp140 - %tmp143 = getelementptr %struct.move_s* %agg.result, int 0, uint 3 ; <int*> [#uses=1] - %tmp144 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 3 ; <int*> [#uses=1] - %tmp145 = load int* %tmp144 ; <int> [#uses=1] - store int %tmp145, int* %tmp143 - %tmp146 = getelementptr %struct.move_s* %agg.result, int 0, uint 4 ; <int*> [#uses=1] - %tmp147 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 4 ; <int*> [#uses=1] - %tmp148 = load int* %tmp147 ; <int> [#uses=1] - store int %tmp148, int* %tmp146 - %tmp149 = getelementptr %struct.move_s* %agg.result, int 0, uint 5 ; <int*> [#uses=1] - %tmp150 = getelementptr [512 x %struct.move_s]* %moves, int 0, int 0, uint 5 ; <int*> [#uses=1] - %tmp151 = load int* %tmp150 ; <int> [#uses=1] - store int %tmp151, int* %tmp149 + %tmp128 = load i32* @inc ; <i32> [#uses=1] + %tmp129 = mul i32 %tmp128, 100 ; <i32> [#uses=1] + %tmp130 = load i32* @time_cushion ; <i32> [#uses=1] + %tmp131 = add i32 %tmp129, %tmp130 ; <i32> [#uses=1] + store i32 %tmp131, i32* @time_cushion + %tmp134 = getelementptr %struct.move_s* %agg.result, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp135 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp136 = load i32* %tmp135 ; <i32> [#uses=1] + store i32 %tmp136, i32* %tmp134 + %tmp137 = getelementptr %struct.move_s* %agg.result, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp138 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp139 = load i32* %tmp138 ; <i32> [#uses=1] + store i32 %tmp139, i32* %tmp137 + %tmp140 = getelementptr %struct.move_s* %agg.result, i32 0, i32 2 ; <i32*> [#uses=1] + %tmp141 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 2 ; <i32*> [#uses=1] + %tmp142 = load i32* %tmp141 ; <i32> [#uses=1] + store i32 %tmp142, i32* %tmp140 + %tmp143 = getelementptr %struct.move_s* %agg.result, i32 0, i32 3 ; <i32*> [#uses=1] + %tmp144 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 3 ; <i32*> [#uses=1] + %tmp145 = load i32* %tmp144 ; <i32> [#uses=1] + store i32 %tmp145, i32* %tmp143 + %tmp146 = getelementptr %struct.move_s* %agg.result, i32 0, i32 4 ; <i32*> [#uses=1] + %tmp147 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 4 ; <i32*> [#uses=1] + %tmp148 = load i32* %tmp147 ; <i32> [#uses=1] + store i32 %tmp148, i32* %tmp146 + %tmp149 = getelementptr %struct.move_s* %agg.result, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp150 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp151 = load i32* %tmp150 ; <i32> [#uses=1] + store i32 %tmp151, i32* %tmp149 ret void cond_next176: ; preds = %cond_true124, %cond_true121, %cond_next118 - call fastcc void %check_phase( ) - %tmp177 = load int* %phase ; <int> [#uses=1] - switch int %tmp177, label %bb187 [ - int 0, label %bb178 - int 1, label %bb180 - int 2, label %bb183 + call fastcc void @check_phase( ) + %tmp177 = load i32* @phase ; <i32> [#uses=1] + switch i32 %tmp177, label %bb187 [ + i32 0, label %bb178 + i32 1, label %bb180 + i32 2, label %bb183 ] bb178: ; preds = %cond_next176 - %tmp179 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([16 x sbyte]* %str40, int 0, uint 0) ) ; <int> [#uses=0] - %tmp18854.b = load bool* %is_pondering.b ; <bool> [#uses=1] - br bool %tmp18854.b, label %cond_false210, label %cond_true190 + %tmp179 = call i32 (i8*, ...)* @printf( i8* getelementptr ([16 x i8]* @str40.upgrd.84, i32 0, i64 0) ) ; <i32> [#uses=0] + %tmp18854.b = load i1* @is_pondering.b ; <i1> [#uses=1] + br i1 %tmp18854.b, label %cond_false210, label %cond_true190 bb180: ; preds = %cond_next176 - %tmp182 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([19 x sbyte]* %str, int 0, uint 0) ) ; <int> [#uses=0] - %tmp18856.b = load bool* %is_pondering.b ; <bool> [#uses=0] + %tmp182 = call i32 (i8*, ...)* @printf( i8* getelementptr ([19 x i8]* @str.upgrd.85, i32 0, i64 0) ) ; <i32> [#uses=0] + %tmp18856.b = load i1* @is_pondering.b ; <i1> [#uses=0] ret void bb183: ; preds = %cond_next176 - %tmp185 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([16 x sbyte]* %str1, int 0, uint 0) ) ; <int> [#uses=0] - %tmp18858.b = load bool* %is_pondering.b ; <bool> [#uses=0] + %tmp185 = call i32 (i8*, ...)* @printf( i8* getelementptr ([16 x i8]* @str1.upgrd.86, i32 0, i64 0) ) ; <i32> [#uses=0] + %tmp18858.b = load i1* @is_pondering.b ; <i1> [#uses=0] ret void bb187: ; preds = %cond_next176 - %tmp188.b = load bool* %is_pondering.b ; <bool> [#uses=0] + %tmp188.b = load i1* @is_pondering.b ; <i1> [#uses=0] ret void cond_true190: ; preds = %bb178 - %tmp191 = load int* %fixed_time ; <int> [#uses=1] - %tmp192 = seteq int %tmp191, 0 ; <bool> [#uses=0] + %tmp191 = load i32* @fixed_time ; <i32> [#uses=1] + %tmp192 = icmp eq i32 %tmp191, 0 ; <i1> [#uses=0] ret void cond_false210: ; preds = %bb178 - store int 999999, int* %time_for_move - br bool %tmp21362, label %cond_true226.critedge, label %bb287.critedge + store i32 999999, i32* @time_for_move + br i1 %tmp21362, label %cond_true226.critedge, label %bb287.critedge cond_true226.critedge: ; preds = %cond_false210 - %tmp223.c = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([20 x sbyte]* %str43, int 0, uint 0), int 999999 ) ; <int> [#uses=0] - %tmp.i = load %struct.TType** %DP_TTable ; <%struct.TType*> [#uses=1] - %tmp.i7.b = load bool* %TTSize.b ; <bool> [#uses=1] - %tmp1.i = select bool %tmp.i7.b, uint 60000000, uint 0 ; <uint> [#uses=1] - %tmp.i.sb = getelementptr %struct.TType* %tmp.i, int 0, uint 0 ; <sbyte*> [#uses=1] - call void %llvm.memset.i32( sbyte* %tmp.i.sb, ubyte 0, uint %tmp1.i, uint 4 ) - %tmp2.i = load %struct.TType** %AS_TTable ; <%struct.TType*> [#uses=1] - %tmp3.i8.b = load bool* %TTSize.b ; <bool> [#uses=1] - %tmp4.i = select bool %tmp3.i8.b, uint 60000000, uint 0 ; <uint> [#uses=1] - %tmp2.i = getelementptr %struct.TType* %tmp2.i, int 0, uint 0 ; <sbyte*> [#uses=1] - call void %llvm.memset.i32( sbyte* %tmp2.i, ubyte 0, uint %tmp4.i, uint 4 ) - %tmp.i.QTT = load %struct.QTType** %QS_TTable ; <%struct.QTType*> [#uses=1] - %tmp5.i9.b = load bool* %TTSize.b ; <bool> [#uses=1] - %tmp6.i10 = select bool %tmp5.i9.b, uint 48000000, uint 0 ; <uint> [#uses=1] - %tmp7.i = getelementptr %struct.QTType* %tmp.i.QTT, int 0, uint 0 ; <sbyte*> [#uses=1] - call void %llvm.memset.i32( sbyte* %tmp7.i, ubyte 0, uint %tmp6.i10, uint 4 ) - %tmp.i.ECache = load %struct.ECacheType** %ECache ; <%struct.ECacheType*> [#uses=1] - %tmp.i14.b = load bool* %ECacheSize.b ; <bool> [#uses=1] - %tmp1.i16 = select bool %tmp.i14.b, uint 12000000, uint 0 ; <uint> [#uses=1] - %tmp.i17 = cast %struct.ECacheType* %tmp.i.ECache to sbyte* ; <sbyte*> [#uses=1] - call void %llvm.memset.i32( sbyte* %tmp.i17, ubyte 0, uint %tmp1.i16, uint 4 ) - call void %llvm.memset.i32( sbyte* cast ([300 x int]* %rootlosers to sbyte*), ubyte 0, uint 1200, uint 4 ) - %tmp234.b = load bool* %is_pondering.b ; <bool> [#uses=1] - br bool %tmp234.b, label %bb263, label %cond_next238 + %tmp223.c = call i32 (i8*, ...)* @printf( i8* getelementptr ([20 x i8]* @str43, i32 0, i64 0), i32 999999 ) ; <i32> [#uses=0] + %tmp.i.upgrd.179 = load %struct.TType** @DP_TTable ; <%struct.TType*> [#uses=1] + %tmp.i7.b = load i1* @TTSize.b ; <i1> [#uses=1] + %tmp1.i = select i1 %tmp.i7.b, i32 60000000, i32 0 ; <i32> [#uses=1] + %tmp.i.sb = getelementptr %struct.TType* %tmp.i.upgrd.179, i32 0, i32 0 ; <i8*> [#uses=1] + call void @llvm.memset.i32( i8* %tmp.i.sb, i8 0, i32 %tmp1.i, i32 4 ) + %tmp2.i = load %struct.TType** @AS_TTable ; <%struct.TType*> [#uses=1] + %tmp3.i8.b = load i1* @TTSize.b ; <i1> [#uses=1] + %tmp4.i = select i1 %tmp3.i8.b, i32 60000000, i32 0 ; <i32> [#uses=1] + %tmp2.i.upgrd.180 = getelementptr %struct.TType* %tmp2.i, i32 0, i32 0 ; <i8*> [#uses=1] + call void @llvm.memset.i32( i8* %tmp2.i.upgrd.180, i8 0, i32 %tmp4.i, i32 4 ) + %tmp.i.QTT = load %struct.QTType** @QS_TTable ; <%struct.QTType*> [#uses=1] + %tmp5.i9.b = load i1* @TTSize.b ; <i1> [#uses=1] + %tmp6.i10 = select i1 %tmp5.i9.b, i32 48000000, i32 0 ; <i32> [#uses=1] + %tmp7.i = getelementptr %struct.QTType* %tmp.i.QTT, i32 0, i32 0 ; <i8*> [#uses=1] + call void @llvm.memset.i32( i8* %tmp7.i, i8 0, i32 %tmp6.i10, i32 4 ) + %tmp.i.ECache = load %struct.ECacheType** @ECache ; <%struct.ECacheType*> [#uses=1] + %tmp.i14.b = load i1* @ECacheSize.b ; <i1> [#uses=1] + %tmp1.i16 = select i1 %tmp.i14.b, i32 12000000, i32 0 ; <i32> [#uses=1] + %tmp.i17 = bitcast %struct.ECacheType* %tmp.i.ECache to i8* ; <i8*> [#uses=1] + call void @llvm.memset.i32( i8* %tmp.i17, i8 0, i32 %tmp1.i16, i32 4 ) + call void @llvm.memset.i32( i8* bitcast ([300 x i32]* @rootlosers to i8*), i8 0, i32 1200, i32 4 ) + %tmp234.b = load i1* @is_pondering.b ; <i1> [#uses=1] + br i1 %tmp234.b, label %bb263, label %cond_next238 cond_next238: ; preds = %cond_true226.critedge - %tmp239 = load int* %Variant ; <int> [#uses=2] - switch int %tmp239, label %bb263 [ - int 3, label %bb249 - int 4, label %bb249 + %tmp239 = load i32* @Variant ; <i32> [#uses=2] + switch i32 %tmp239, label %bb263 [ + i32 3, label %bb249 + i32 4, label %bb249 ] bb249: ; preds = %cond_next238, %cond_next238 - %tmp250 = load int* %piece_count ; <int> [#uses=1] - %tmp251 = setgt int %tmp250, 3 ; <bool> [#uses=1] - %tmp240.not = setne int %tmp239, 3 ; <bool> [#uses=1] - %brmerge = or bool %tmp251, %tmp240.not ; <bool> [#uses=1] - br bool %brmerge, label %bb260, label %bb263 + %tmp250 = load i32* @piece_count ; <i32> [#uses=1] + %tmp251 = icmp sgt i32 %tmp250, 3 ; <i1> [#uses=1] + %tmp240.not = icmp ne i32 %tmp239, 3 ; <i1> [#uses=1] + %brmerge = or i1 %tmp251, %tmp240.not ; <i1> [#uses=1] + br i1 %brmerge, label %bb260, label %bb263 bb260: ; preds = %bb249 - %tmp261 = load int* %time_for_move ; <int> [#uses=1] - %tmp261 = cast int %tmp261 to float ; <float> [#uses=1] - %tmp261 = cast float %tmp261 to double ; <double> [#uses=1] - %tmp262 = div double %tmp261, 3.000000e+00 ; <double> [#uses=1] - %tmp262 = cast double %tmp262 to int ; <int> [#uses=1] - store int %tmp262, int* %pn_time - %tmp1.b.i = load bool* %PBSize.b ; <bool> [#uses=1] - %tmp1.i1 = select bool %tmp1.b.i, uint 200000, uint 0 ; <uint> [#uses=1] - %tmp.i2 = call sbyte* %calloc( uint %tmp1.i1, uint 44 ) ; <sbyte*> [#uses=1] - %tmp.i.ub = cast sbyte* %tmp.i2 to ubyte* ; <ubyte*> [#uses=1] - store ubyte* %tmp.i.ub, ubyte** %membuff - %tmp2.i3 = call sbyte* %calloc( uint 1, uint 44 ) ; <sbyte*> [#uses=3] - %tmp2.i = cast sbyte* %tmp2.i3 to %struct.node_t* ; <%struct.node_t*> [#uses=6] - %tmp.i.move_s = getelementptr [512 x %struct.move_s]* null, int 0, int 0 ; <%struct.move_s*> [#uses=3] - call fastcc void %gen( %struct.move_s* %tmp.i.move_s ) - %tmp3.i4 = load int* %numb_moves ; <int> [#uses=4] - %tmp3.i5 = cast int %tmp3.i4 to uint ; <uint> [#uses=0] - store bool false, bool* %alllosers.b - call void %llvm.memset.i32( sbyte* cast ([300 x int]* %rootlosers to sbyte*), ubyte 0, uint 1200, uint 4 ) - %nodesspent.i = cast [512 x int]* null to sbyte* ; <sbyte*> [#uses=1] - call void %llvm.memset.i32( sbyte* %nodesspent.i, ubyte 0, uint 2048, uint 16 ) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 0) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 1) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 2) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 3) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 4) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 5) - %tmp.i.i = load int* %Variant ; <int> [#uses=1] - %tmp.i.i = seteq int %tmp.i.i, 3 ; <bool> [#uses=1] - br bool %tmp.i.i, label %in_check.exit.i, label %cond_next.i.i + %tmp261 = load i32* @time_for_move ; <i32> [#uses=1] + %tmp261.upgrd.181 = sitofp i32 %tmp261 to float ; <float> [#uses=1] + %tmp261.upgrd.182 = fpext float %tmp261.upgrd.181 to double ; <double> [#uses=1] + %tmp262 = fdiv double %tmp261.upgrd.182, 3.000000e+00 ; <double> [#uses=1] + %tmp262.upgrd.183 = fptosi double %tmp262 to i32 ; <i32> [#uses=1] + store i32 %tmp262.upgrd.183, i32* @pn_time + %tmp1.b.i = load i1* @PBSize.b ; <i1> [#uses=1] + %tmp1.i1 = select i1 %tmp1.b.i, i32 200000, i32 0 ; <i32> [#uses=1] + %tmp.i2 = call i8* @calloc( i32 %tmp1.i1, i32 44 ) ; <i8*> [#uses=1] + %tmp.i.ub = bitcast i8* %tmp.i2 to i8* ; <i8*> [#uses=1] + store i8* %tmp.i.ub, i8** @membuff + %tmp2.i3 = call i8* @calloc( i32 1, i32 44 ) ; <i8*> [#uses=3] + %tmp2.i.upgrd.184 = bitcast i8* %tmp2.i3 to %struct.node_t* ; <%struct.node_t*> [#uses=6] + %tmp.i.move_s = getelementptr [512 x %struct.move_s]* null, i32 0, i32 0 ; <%struct.move_s*> [#uses=3] + call fastcc void @gen( %struct.move_s* %tmp.i.move_s ) + %tmp3.i4 = load i32* @numb_moves ; <i32> [#uses=4] + %tmp3.i5 = bitcast i32 %tmp3.i4 to i32 ; <i32> [#uses=0] + store i1 false, i1* @alllosers.b + call void @llvm.memset.i32( i8* bitcast ([300 x i32]* @rootlosers to i8*), i8 0, i32 1200, i32 4 ) + %nodesspent.i = bitcast [512 x i32]* null to i8* ; <i8*> [#uses=1] + call void @llvm.memset.i32( i8* %nodesspent.i, i8 0, i32 2048, i32 16 ) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5) + %tmp.i.i = load i32* @Variant ; <i32> [#uses=1] + %tmp.i.i.upgrd.185 = icmp eq i32 %tmp.i.i, 3 ; <i1> [#uses=1] + br i1 %tmp.i.i.upgrd.185, label %in_check.exit.i, label %cond_next.i.i cond_next.i.i: ; preds = %bb260 - %tmp2.i.i = load int* %white_to_move ; <int> [#uses=1] - %tmp3.i.i = seteq int %tmp2.i.i, 1 ; <bool> [#uses=1] - br bool %tmp3.i.i, label %cond_true4.i.i, label %cond_false12.i.i + %tmp2.i.i = load i32* @white_to_move ; <i32> [#uses=1] + %tmp3.i.i = icmp eq i32 %tmp2.i.i, 1 ; <i1> [#uses=1] + br i1 %tmp3.i.i, label %cond_true4.i.i, label %cond_false12.i.i cond_true4.i.i: ; preds = %cond_next.i.i - %tmp5.i.i = load int* %wking_loc ; <int> [#uses=1] - %tmp6.i.i = call fastcc uint %is_attacked( int %tmp5.i.i, int 0 ) ; <uint> [#uses=1] - %not.tmp7.i.i = setne uint %tmp6.i.i, 0 ; <bool> [#uses=1] - %tmp217.i = cast bool %not.tmp7.i.i to int ; <int> [#uses=1] - %tmp4219.i = setgt int %tmp3.i4, 0 ; <bool> [#uses=1] - br bool %tmp4219.i, label %cond_true43.i, label %bb46.i + %tmp5.i.i = load i32* @wking_loc ; <i32> [#uses=1] + %tmp6.i.i = call fastcc i32 @is_attacked( i32 %tmp5.i.i, i32 0 ) ; <i32> [#uses=1] + %not.tmp7.i.i = icmp ne i32 %tmp6.i.i, 0 ; <i1> [#uses=1] + %tmp217.i = zext i1 %not.tmp7.i.i to i32 ; <i32> [#uses=1] + %tmp4219.i = icmp sgt i32 %tmp3.i4, 0 ; <i1> [#uses=1] + br i1 %tmp4219.i, label %cond_true43.i, label %bb46.i cond_false12.i.i: ; preds = %cond_next.i.i - %tmp13.i.i = load int* %bking_loc ; <int> [#uses=1] - %tmp14.i.i = call fastcc uint %is_attacked( int %tmp13.i.i, int 1 ) ; <uint> [#uses=1] - %not.tmp15.i.i = setne uint %tmp14.i.i, 0 ; <bool> [#uses=1] - %tmp2120.i = cast bool %not.tmp15.i.i to int ; <int> [#uses=1] - %tmp4222.i = setgt int %tmp3.i4, 0 ; <bool> [#uses=1] - br bool %tmp4222.i, label %cond_true43.i, label %bb46.i + %tmp13.i.i = load i32* @bking_loc ; <i32> [#uses=1] + %tmp14.i.i = call fastcc i32 @is_attacked( i32 %tmp13.i.i, i32 1 ) ; <i32> [#uses=1] + %not.tmp15.i.i = icmp ne i32 %tmp14.i.i, 0 ; <i1> [#uses=1] + %tmp2120.i = zext i1 %not.tmp15.i.i to i32 ; <i32> [#uses=1] + %tmp4222.i = icmp sgt i32 %tmp3.i4, 0 ; <i1> [#uses=1] + br i1 %tmp4222.i, label %cond_true43.i, label %bb46.i in_check.exit.i: ; preds = %bb260 - %tmp4224.i = setgt int %tmp3.i4, 0 ; <bool> [#uses=0] + %tmp4224.i = icmp sgt i32 %tmp3.i4, 0 ; <i1> [#uses=0] ret void cond_true43.i: ; preds = %cond_false12.i.i, %cond_true4.i.i - %tmp21.0.ph.i = phi int [ %tmp217.i, %cond_true4.i.i ], [ %tmp2120.i, %cond_false12.i.i ] ; <int> [#uses=1] - %i.0.0.i = cast uint 0 to int ; <int> [#uses=2] - call fastcc void %make( %struct.move_s* %tmp.i.move_s, int %i.0.0.i ) - %tmp27.i = call fastcc uint %check_legal( %struct.move_s* %tmp.i.move_s, int %i.0.0.i, int %tmp21.0.ph.i ) ; <uint> [#uses=1] - %tmp.i6 = seteq uint %tmp27.i, 0 ; <bool> [#uses=0] + %tmp21.0.ph.i = phi i32 [ %tmp217.i, %cond_true4.i.i ], [ %tmp2120.i, %cond_false12.i.i ] ; <i32> [#uses=1] + %i.0.0.i = bitcast i32 0 to i32 ; <i32> [#uses=2] + call fastcc void @make( %struct.move_s* %tmp.i.move_s, i32 %i.0.0.i ) + %tmp27.i = call fastcc i32 @check_legal( %struct.move_s* %tmp.i.move_s, i32 %i.0.0.i, i32 %tmp21.0.ph.i ) ; <i32> [#uses=1] + %tmp.i6 = icmp eq i32 %tmp27.i, 0 ; <i1> [#uses=0] ret void bb46.i: ; preds = %cond_false12.i.i, %cond_true4.i.i - %tmp48.i = seteq int 0, 0 ; <bool> [#uses=1] - br bool %tmp48.i, label %cond_true49.i, label %cond_next53.i + %tmp48.i = icmp eq i32 0, 0 ; <i1> [#uses=1] + br i1 %tmp48.i, label %cond_true49.i, label %cond_next53.i cond_true49.i: ; preds = %bb46.i - store int 0, int* %bufftop - %tmp50.i = load ubyte** %membuff ; <ubyte*> [#uses=1] - free ubyte* %tmp50.i - free sbyte* %tmp2.i3 + store i32 0, i32* @bufftop + %tmp50.i = load i8** @membuff ; <i8*> [#uses=1] + free i8* %tmp50.i + free i8* %tmp2.i3 ret void cond_next53.i: ; preds = %bb46.i - store int 1, int* %nodecount - store int 0, int* %iters - store int 0, int* %maxply - store int 0, int* %forwards - %tmp54.i = load int* %move_number ; <int> [#uses=1] - %tmp55.i = load int* %ply ; <int> [#uses=1] - %tmp56.i = add int %tmp54.i, -1 ; <int> [#uses=1] - %tmp57.i = add int %tmp56.i, %tmp55.i ; <int> [#uses=1] - %tmp58.i = load uint* %hash ; <uint> [#uses=1] - %tmp.i = getelementptr [600 x uint]* %hash_history, int 0, int %tmp57.i ; <uint*> [#uses=1] - store uint %tmp58.i, uint* %tmp.i - %tmp59.i = load int* %white_to_move ; <int> [#uses=1] - %tmp60.i = seteq int %tmp59.i, 0 ; <bool> [#uses=1] - %tmp60.i = cast bool %tmp60.i to int ; <int> [#uses=1] - store int %tmp60.i, int* %root_to_move - %tmp.i4.i = load int* %Variant ; <int> [#uses=2] - %tmp.i5.i = seteq int %tmp.i4.i, 3 ; <bool> [#uses=1] - br bool %tmp.i5.i, label %cond_true.i.i, label %cond_false.i.i + store i32 1, i32* @nodecount + store i32 0, i32* @iters + store i32 0, i32* @maxply + store i32 0, i32* @forwards + %tmp54.i = load i32* @move_number ; <i32> [#uses=1] + %tmp55.i = load i32* @ply ; <i32> [#uses=1] + %tmp56.i = add i32 %tmp54.i, -1 ; <i32> [#uses=1] + %tmp57.i = add i32 %tmp56.i, %tmp55.i ; <i32> [#uses=1] + %tmp58.i = load i32* @hash ; <i32> [#uses=1] + %tmp.i.upgrd.186 = getelementptr [600 x i32]* @hash_history, i32 0, i32 %tmp57.i ; <i32*> [#uses=1] + store i32 %tmp58.i, i32* %tmp.i.upgrd.186 + %tmp59.i = load i32* @white_to_move ; <i32> [#uses=1] + %tmp60.i = icmp eq i32 %tmp59.i, 0 ; <i1> [#uses=1] + %tmp60.i.upgrd.187 = zext i1 %tmp60.i to i32 ; <i32> [#uses=1] + store i32 %tmp60.i.upgrd.187, i32* @root_to_move + %tmp.i4.i = load i32* @Variant ; <i32> [#uses=2] + %tmp.i5.i = icmp eq i32 %tmp.i4.i, 3 ; <i1> [#uses=1] + br i1 %tmp.i5.i, label %cond_true.i.i, label %cond_false.i.i cond_true.i.i: ; preds = %cond_next53.i - call fastcc void %suicide_pn_eval( %struct.node_t* %tmp2.i ) - %tmp6328.i = getelementptr %struct.node_t* %tmp2.i, int 0, uint 0 ; <ubyte*> [#uses=1] - %tmp29.i = load ubyte* %tmp6328.i ; <ubyte> [#uses=1] - %tmp6430.i = seteq ubyte %tmp29.i, 1 ; <bool> [#uses=0] + call fastcc void @suicide_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 ) + %tmp6328.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0 ; <i8*> [#uses=1] + %tmp29.i = load i8* %tmp6328.i ; <i8> [#uses=1] + %tmp6430.i = icmp eq i8 %tmp29.i, 1 ; <i1> [#uses=0] ret void cond_false.i.i: ; preds = %cond_next53.i - %tmp2.i.i = seteq int %tmp.i4.i, 4 ; <bool> [#uses=1] - %tmp63.i = getelementptr %struct.node_t* %tmp2.i, int 0, uint 0 ; <ubyte*> [#uses=2] - br bool %tmp2.i.i, label %cond_true3.i.i, label %cond_false5.i.i + %tmp2.i.i.upgrd.188 = icmp eq i32 %tmp.i4.i, 4 ; <i1> [#uses=1] + %tmp63.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0 ; <i8*> [#uses=2] + br i1 %tmp2.i.i.upgrd.188, label %cond_true3.i.i, label %cond_false5.i.i cond_true3.i.i: ; preds = %cond_false.i.i - call fastcc void %losers_pn_eval( %struct.node_t* %tmp2.i ) - %tmp31.i = load ubyte* %tmp63.i ; <ubyte> [#uses=1] - %tmp6432.i = seteq ubyte %tmp31.i, 1 ; <bool> [#uses=1] - br bool %tmp6432.i, label %bb75.i, label %cond_next67.i + call fastcc void @losers_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 ) + %tmp31.i = load i8* %tmp63.i ; <i8> [#uses=1] + %tmp6432.i = icmp eq i8 %tmp31.i, 1 ; <i1> [#uses=1] + br i1 %tmp6432.i, label %bb75.i, label %cond_next67.i cond_false5.i.i: ; preds = %cond_false.i.i - call fastcc void %std_pn_eval( %struct.node_t* %tmp2.i ) - %tmp.i = load ubyte* %tmp63.i ; <ubyte> [#uses=1] - %tmp64.i = seteq ubyte %tmp.i, 1 ; <bool> [#uses=0] + call fastcc void @std_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 ) + %tmp.i.upgrd.189 = load i8* %tmp63.i ; <i8> [#uses=1] + %tmp64.i = icmp eq i8 %tmp.i.upgrd.189, 1 ; <i1> [#uses=0] ret void cond_next67.i: ; preds = %cond_true3.i.i - %tmp69.i = getelementptr %struct.node_t* %tmp2.i, int 0, uint 0 ; <ubyte*> [#uses=1] - %tmp70.i = load ubyte* %tmp69.i ; <ubyte> [#uses=1] - %tmp71.i = seteq ubyte %tmp70.i, 0 ; <bool> [#uses=0] + %tmp69.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0 ; <i8*> [#uses=1] + %tmp70.i = load i8* %tmp69.i ; <i8> [#uses=1] + %tmp71.i = icmp eq i8 %tmp70.i, 0 ; <i1> [#uses=0] ret void bb75.i: ; preds = %cond_true3.i.i - store int 0, int* %bufftop - %tmp76.i = load ubyte** %membuff ; <ubyte*> [#uses=1] - free ubyte* %tmp76.i - free sbyte* %tmp2.i3 - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 0) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 1) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 2) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 3) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 4) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 5) - %tmp28869 = load int* %result ; <int> [#uses=1] - %tmp28970 = seteq int %tmp28869, 0 ; <bool> [#uses=1] - br bool %tmp28970, label %cond_next337, label %cond_true290 + store i32 0, i32* @bufftop + %tmp76.i = load i8** @membuff ; <i8*> [#uses=1] + free i8* %tmp76.i + free i8* %tmp2.i3 + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5) + %tmp28869 = load i32* @result ; <i32> [#uses=1] + %tmp28970 = icmp eq i32 %tmp28869, 0 ; <i1> [#uses=1] + br i1 %tmp28970, label %cond_next337, label %cond_true290 bb263: ; preds = %bb249, %cond_next238, %cond_true226.critedge - br bool %tmp21362, label %cond_true266, label %bb287 + br i1 %tmp21362, label %cond_true266, label %bb287 cond_true266: ; preds = %bb263 - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 0) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 1) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 2) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 3) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 4) - store int 0, int* getelementptr (%struct.move_s* %pn_move, uint 0, uint 5) - %tmp28871 = load int* %result ; <int> [#uses=1] - %tmp28972 = seteq int %tmp28871, 0 ; <bool> [#uses=0] + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4) + store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5) + %tmp28871 = load i32* @result ; <i32> [#uses=1] + %tmp28972 = icmp eq i32 %tmp28871, 0 ; <i1> [#uses=0] ret void bb287.critedge: ; preds = %cond_false210 - %tmp218.c = div double 1.999998e+06, %tmp217 ; <double> [#uses=1] - %tmp218.c = cast double %tmp218.c to int ; <int> [#uses=2] - store int %tmp218.c, int* %time_for_move - %tmp22367.c = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([20 x sbyte]* %str43, int 0, uint 0), int %tmp218.c ) ; <int> [#uses=0] + %tmp218.c = fdiv double 1.999998e+06, %tmp217 ; <double> [#uses=1] + %tmp218.c.upgrd.190 = fptosi double %tmp218.c to i32 ; <i32> [#uses=2] + store i32 %tmp218.c.upgrd.190, i32* @time_for_move + %tmp22367.c = call i32 (i8*, ...)* @printf( i8* getelementptr ([20 x i8]* @str43, i32 0, i64 0), i32 %tmp218.c.upgrd.190 ) ; <i32> [#uses=0] ret void bb287: ; preds = %bb263 - %tmp288 = load int* %result ; <int> [#uses=1] - %tmp289 = seteq int %tmp288, 0 ; <bool> [#uses=0] + %tmp288 = load i32* @result ; <i32> [#uses=1] + %tmp289 = icmp eq i32 %tmp288, 0 ; <i1> [#uses=0] ret void cond_true290: ; preds = %bb75.i - %tmp292 = load int* getelementptr (%struct.move_s* %pn_move, int 0, uint 1) ; <int> [#uses=1] - %tmp295 = seteq int %tmp292, 0 ; <bool> [#uses=0] + %tmp292 = load i32* getelementptr (%struct.move_s* @pn_move, i32 0, i32 1) ; <i32> [#uses=1] + %tmp295 = icmp eq i32 %tmp292, 0 ; <i1> [#uses=0] ret void cond_next337: ; preds = %bb75.i - %tmp338.b = load bool* %forcedwin.b ; <bool> [#uses=1] - br bool %tmp338.b, label %bb348, label %cond_next342 + %tmp338.b = load i1* @forcedwin.b ; <i1> [#uses=1] + br i1 %tmp338.b, label %bb348, label %cond_next342 cond_next342: ; preds = %cond_next337 - %tmp343 = load int* %result ; <int> [#uses=1] - %tmp344 = seteq int %tmp343, 0 ; <bool> [#uses=0] + %tmp343 = load i32* @result ; <i32> [#uses=1] + %tmp344 = icmp eq i32 %tmp343, 0 ; <i1> [#uses=0] ret void bb348: ; preds = %cond_next337 - %tmp350 = load int* getelementptr (%struct.move_s* %pn_move, int 0, uint 1) ; <int> [#uses=1] - %tmp353 = seteq int %tmp350, 0 ; <bool> [#uses=0] + %tmp350 = load i32* getelementptr (%struct.move_s* @pn_move, i32 0, i32 1) ; <i32> [#uses=1] + %tmp353 = icmp eq i32 %tmp350, 0 ; <i1> [#uses=0] ret void } -declare fastcc int %eval(int, int) +declare fastcc i32 @eval(i32, i32) -declare sbyte* %fgets(sbyte*, int, %struct.FILE*) +declare i8* @fgets(i8*, i32, %struct.FILE*) -declare int %fclose(%struct.FILE*) +declare i32 @fclose(%struct.FILE*) -declare fastcc int %losers_eval() +declare fastcc i32 @losers_eval() -declare fastcc int %l_bishop_mobility(int) +declare fastcc i32 @l_bishop_mobility(i32) -declare fastcc int %l_rook_mobility(int) +declare fastcc i32 @l_rook_mobility(i32) -declare fastcc uint %check_legal(%struct.move_s*, int, int) +declare fastcc i32 @check_legal(%struct.move_s*, i32, i32) -declare fastcc void %gen(%struct.move_s*) +declare fastcc void @gen(%struct.move_s*) -declare fastcc void %push_pawn(int, uint) +declare fastcc void @push_pawn(i32, i32) -declare fastcc void %push_knighT(int) +declare fastcc void @push_knighT(i32) -declare fastcc void %push_slidE(int) +declare fastcc void @push_slidE(i32) -declare fastcc void %push_king(int) +declare fastcc void @push_king(i32) -declare fastcc uint %f_in_check(%struct.move_s*, int) +declare fastcc i32 @f_in_check(%struct.move_s*, i32) -declare fastcc void %make(%struct.move_s*, int) +declare fastcc void @make(%struct.move_s*, i32) -declare fastcc void %add_capture(int, int, int) +declare fastcc void @add_capture(i32, i32, i32) -declare fastcc void %unmake(%struct.move_s*, int) +declare fastcc void @unmake(%struct.move_s*, i32) -declare int %ErrorIt(int, int) +declare i32 @ErrorIt(i32, i32) -declare int %Pawn(int, int) +declare i32 @Pawn(i32, i32) -declare int %Knight(int, int) +declare i32 @Knight(i32, i32) -declare int %King(int, int) +declare i32 @King(i32, i32) -declare int %Rook(int, int) +declare i32 @Rook(i32, i32) -declare int %Queen(int, int) +declare i32 @Queen(i32, i32) -declare int %Bishop(int, int) +declare i32 @Bishop(i32, i32) -declare fastcc void %check_phase() +declare fastcc void @check_phase() -declare fastcc int %bishop_mobility(int) +declare fastcc i32 @bishop_mobility(i32) -declare fastcc int %rook_mobility(int) +declare fastcc i32 @rook_mobility(i32) -declare int %sscanf(sbyte*, sbyte*, ...) +declare i32 @sscanf(i8*, i8*, ...) -declare int %strncmp(sbyte*, sbyte*, uint) +declare i32 @strncmp(i8*, i8*, i32) -declare sbyte* %strchr(sbyte*, int) +declare i8* @strchr(i8*, i32) -declare fastcc void %CheckBadFlow(uint) +declare fastcc void @CheckBadFlow(i32) -declare fastcc void %suicide_pn_eval(%struct.node_t*) +declare fastcc void @suicide_pn_eval(%struct.node_t*) -declare fastcc void %losers_pn_eval(%struct.node_t*) +declare fastcc void @losers_pn_eval(%struct.node_t*) -declare fastcc void %std_pn_eval(%struct.node_t*) +declare fastcc void @std_pn_eval(%struct.node_t*) -declare fastcc %struct.node_t* %select_most_proving(%struct.node_t*) +declare fastcc %struct.node_t* @select_most_proving(%struct.node_t*) -declare fastcc void %set_proof_and_disproof_numbers(%struct.node_t*) +declare fastcc void @set_proof_and_disproof_numbers(%struct.node_t*) -declare fastcc void %StoreTT(int, int, int, int, int, int) +declare fastcc void @StoreTT(i32, i32, i32, i32, i32, i32) -declare fastcc void %develop_node(%struct.node_t*) +declare fastcc void @develop_node(%struct.node_t*) -declare fastcc void %update_ancestors(%struct.node_t*) +declare fastcc void @update_ancestors(%struct.node_t*) -declare sbyte* %calloc(uint, uint) +declare i8* @calloc(i32, i32) -declare fastcc void %comp_to_coord(long, long, long, sbyte*) +declare fastcc void @comp_to_coord(i64, i64, i64, i8*) -declare sbyte* %strcat(sbyte*, sbyte*) +declare i8* @strcat(i8*, i8*) -declare int %sprintf(sbyte*, sbyte*, ...) +declare i32 @sprintf(i8*, i8*, ...) -declare fastcc void %order_moves(%struct.move_s*, int*, int*, int, int) +declare fastcc void @order_moves(%struct.move_s*, i32*, i32*, i32, i32) -declare fastcc int %see(int, int, int) +declare fastcc i32 @see(i32, i32, i32) -declare fastcc void %perft(int) +declare fastcc void @perft(i32) -declare fastcc int %qsearch(int, int, int) +declare fastcc i32 @qsearch(i32, i32, i32) -declare fastcc int %allocate_time() +declare fastcc i32 @allocate_time() -declare fastcc void %QStoreTT(int, int, int, int) +declare fastcc void @QStoreTT(i32, i32, i32, i32) -declare fastcc int %search(int, int, int, int) +declare fastcc i32 @search(i32, i32, i32, i32) -declare fastcc int %ProbeTT(int*, int, int*, int*, int*, int) +declare fastcc i32 @ProbeTT(i32*, i32, i32*, i32*, i32*, i32) -declare csretcc void %search_root(%struct.move_s*, int, int, int) +declare void @search_root(%struct.move_s* sret , i32, i32, i32) -declare fastcc void %post_fh_thinking(int, %struct.move_s*) +declare fastcc void @post_fh_thinking(i32, %struct.move_s*) -declare fastcc void %post_thinking(int) +declare fastcc void @post_thinking(i32) -declare int %fprintf(%struct.FILE*, sbyte*, ...) +declare i32 @fprintf(%struct.FILE*, i8*, ...) -declare fastcc int %s_bishop_mobility(int) +declare fastcc i32 @s_bishop_mobility(i32) -declare fastcc int %s_rook_mobility(int) +declare fastcc i32 @s_rook_mobility(i32) -declare fastcc int %suicide_mid_eval() +declare fastcc i32 @suicide_mid_eval() -declare int %main(int, sbyte**) +declare i32 @main(i32, i8**) -declare fastcc void %init_game() +declare fastcc void @init_game() -declare void %setbuf(%struct.FILE*, sbyte*) +declare void @setbuf(%struct.FILE*, i8*) -declare sbyte* %strcpy(sbyte*, sbyte*) +declare i8* @strcpy(i8*, i8*) -declare int %__tolower(int) +declare i32 @__tolower(i32) -declare int %strcmp(sbyte*, sbyte*) +declare i32 @strcmp(i8*, i8*) -declare void (int)* %signal(int, void (int)*) +declare void (i32)* @signal(i32, void (i32)*) -declare fastcc void %hash_extract_pv(int, sbyte*) +declare fastcc void @hash_extract_pv(i32, i8*) -declare double %difftime(int, int) +declare double @difftime(i32, i32) -declare int %getc(%struct.FILE*) +declare i32 @getc(%struct.FILE*) -declare uint %strlen(sbyte*) +declare i32 @strlen(i8*) -declare uint %fwrite(sbyte*, uint, uint, %struct.FILE*) +declare i32 @fwrite(i8*, i32, i32, %struct.FILE*) diff --git a/test/Transforms/DeadStoreElimination/PartialStore.ll b/test/Transforms/DeadStoreElimination/PartialStore.ll index 14b2b0d..ce19657 100644 --- a/test/Transforms/DeadStoreElimination/PartialStore.ll +++ b/test/Transforms/DeadStoreElimination/PartialStore.ll @@ -1,12 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | \ +; RUN: llvm-as < %s | opt -dse | llvm-dis | \ ; RUN: not grep {store i8} ; Ensure that the dead store is deleted in this case. It is wholely ; overwritten by the second store. -int %test() { - %V = alloca int - %V2 = cast int* %V to sbyte* - store sbyte 0, sbyte* %V2 - store int 1234567, int* %V - %X = load int* %V - ret int %X +define i32 @test() { + %V = alloca i32 ; <i32*> [#uses=3] + %V2 = bitcast i32* %V to i8* ; <i8*> [#uses=1] + store i8 0, i8* %V2 + store i32 1234567, i32* %V + %X = load i32* %V ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/DeadStoreElimination/alloca.llx b/test/Transforms/DeadStoreElimination/alloca.llx index d7aacb5..7a2c94f 100644 --- a/test/Transforms/DeadStoreElimination/alloca.llx +++ b/test/Transforms/DeadStoreElimination/alloca.llx @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | not grep DEAD +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD -void %test(int* %Q) { - %P = alloca int - %DEAD = load int* %Q - store int %DEAD, int* %P ;; Alloca goes out of scope, dead store. - ret void +define void @test(i32* %Q) { + %P = alloca i32 ; <i32*> [#uses=1] + %DEAD = load i32* %Q ; <i32> [#uses=1] + store i32 %DEAD, i32* %P + ret void } + diff --git a/test/Transforms/DeadStoreElimination/context-sensitive.llx b/test/Transforms/DeadStoreElimination/context-sensitive.llx index 54396d4..266fdbc 100644 --- a/test/Transforms/DeadStoreElimination/context-sensitive.llx +++ b/test/Transforms/DeadStoreElimination/context-sensitive.llx @@ -1,15 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | not grep DEAD - -declare void %ext() - -int* %caller() { - %P = malloc int - %DEAD = load int* %P - %DEAD2 = add int %DEAD, 1 - store int %DEAD2, int* %P ;; dead store - - call void %ext() ; Can not clobber *P - - store int 0, int* %P - ret int* %P +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD + +declare void @ext() + +define i32* @caller() { + %P = malloc i32 ; <i32*> [#uses=4] + %DEAD = load i32* %P ; <i32> [#uses=1] + %DEAD2 = add i32 %DEAD, 1 ; <i32> [#uses=1] + store i32 %DEAD2, i32* %P + call void @ext( ) + store i32 0, i32* %P + ret i32* %P } + diff --git a/test/Transforms/DeadStoreElimination/free.llx b/test/Transforms/DeadStoreElimination/free.llx index 3f0db04..e0611d3 100644 --- a/test/Transforms/DeadStoreElimination/free.llx +++ b/test/Transforms/DeadStoreElimination/free.llx @@ -1,8 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | not grep DEAD +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD -void %test(int* %Q, int* %P) { - %DEAD = load int* %Q - store int %DEAD, int* %P - free int* %P - ret void +define void @test(i32* %Q, i32* %P) { + %DEAD = load i32* %Q ; <i32> [#uses=1] + store i32 %DEAD, i32* %P + free i32* %P + ret void } diff --git a/test/Transforms/DeadStoreElimination/simple.llx b/test/Transforms/DeadStoreElimination/simple.llx index e0ce12d..594671d 100644 --- a/test/Transforms/DeadStoreElimination/simple.llx +++ b/test/Transforms/DeadStoreElimination/simple.llx @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -dse | llvm-dis | not grep DEAD +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD -void %test(int* %Q, int* %P) { - %DEAD = load int* %Q - store int %DEAD, int* %P - store int 0, int* %P - ret void +define void @test(i32* %Q, i32* %P) { + %DEAD = load i32* %Q ; <i32> [#uses=1] + store i32 %DEAD, i32* %P + store i32 0, i32* %P + ret void } + diff --git a/test/Transforms/GCSE/2002-05-14-OperandSwap.ll b/test/Transforms/GCSE/2002-05-14-OperandSwap.ll index 51183b8..ca4ac20 100644 --- a/test/Transforms/GCSE/2002-05-14-OperandSwap.ll +++ b/test/Transforms/GCSE/2002-05-14-OperandSwap.ll @@ -1,18 +1,17 @@ ; This entire chain of computation should be optimized away, but ; wasn't because the two multiplies were not detected as being identical. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -gcse -instcombine -dce | \ +; RUN: llvm-as < %s | opt -gcse -instcombine -dce | \ ; RUN: llvm-dis | not grep sub -implementation ; Functions: - -uint "vnum_test4"(uint* %data) { - %idx1 = getelementptr uint* %data, uint 1 - %idx2 = getelementptr uint* %data, uint 3 - %reg1101 = load uint* %idx1 - %reg1111 = load uint* %idx2 - %reg109 = mul uint %reg1101, %reg1111 - %reg108 = mul uint %reg1111, %reg1101 - %reg121 = sub uint %reg108, %reg109 - ret uint %reg121 +define i32 @vnum_test4(i32* %data) { + %idx1 = getelementptr i32* %data, i64 1 ; <i32*> [#uses=1] + %idx2 = getelementptr i32* %data, i64 3 ; <i32*> [#uses=1] + %reg1101 = load i32* %idx1 ; <i32> [#uses=2] + %reg1111 = load i32* %idx2 ; <i32> [#uses=2] + %reg109 = mul i32 %reg1101, %reg1111 ; <i32> [#uses=1] + %reg108 = mul i32 %reg1111, %reg1101 ; <i32> [#uses=1] + %reg121 = sub i32 %reg108, %reg109 ; <i32> [#uses=1] + ret i32 %reg121 } + diff --git a/test/Transforms/GCSE/2002-05-21-NoSharedDominator.ll b/test/Transforms/GCSE/2002-05-21-NoSharedDominator.ll index 2c78695..cf288b8 100644 --- a/test/Transforms/GCSE/2002-05-21-NoSharedDominator.ll +++ b/test/Transforms/GCSE/2002-05-21-NoSharedDominator.ll @@ -1,13 +1,14 @@ ; This testcase shows a bug where an common subexpression exists, but there ; is no shared dominator block that the expression can be hoisted out to. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -gcse | llvm-dis +; RUN: llvm-as < %s | opt -gcse | llvm-dis -int "test"(int %X, int %Y) { - %Z = add int %X, %Y - ret int %Z +define i32 @test(i32 %X, i32 %Y) { + %Z = add i32 %X, %Y ; <i32> [#uses=1] + ret i32 %Z -Unreachable: - %Q = add int %X, %Y - ret int %Q +Unreachable: ; No predecessors! + %Q = add i32 %X, %Y ; <i32> [#uses=1] + ret i32 %Q } + diff --git a/test/Transforms/GCSE/2003-06-13-LoadStoreEliminate.ll b/test/Transforms/GCSE/2003-06-13-LoadStoreEliminate.ll index 4ebb66c..d4bdc3f 100644 --- a/test/Transforms/GCSE/2003-06-13-LoadStoreEliminate.ll +++ b/test/Transforms/GCSE/2003-06-13-LoadStoreEliminate.ll @@ -1,11 +1,11 @@ ; This testcase shows a bug where an common subexpression exists, but there ; is no shared dominator block that the expression can be hoisted out to. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -load-vn -gcse | llvm-dis | not grep load +; RUN: llvm-as < %s | opt -load-vn -gcse | llvm-dis | not grep load -int %test(int* %P) { - store int 5, int* %P - %Z = load int* %P - ret int %Z +define i32 @test(i32* %P) { + store i32 5, i32* %P + %Z = load i32* %P ; <i32> [#uses=1] + ret i32 %Z } diff --git a/test/Transforms/GCSE/gcsetests.ll b/test/Transforms/GCSE/gcsetests.ll index b866bb7..6fb3057 100644 --- a/test/Transforms/GCSE/gcsetests.ll +++ b/test/Transforms/GCSE/gcsetests.ll @@ -1,57 +1,46 @@ ; Various test cases to ensure basic functionality is working for GCSE -; RUN: llvm-upgrade < %s | llvm-as | opt -gcse - -implementation - -void "testinsts"(int %i, int %j, int* %p) -begin - %A = cast int %i to uint - %B = cast int %i to uint - - %C = shl int %i, ubyte 1 - %D = shl int %i, ubyte 1 - - %E = getelementptr int* %p, long 12 - %F = getelementptr int* %p, long 12 - %G = getelementptr int* %p, long 13 - ret void -end - +; RUN: llvm-as < %s | opt -gcse + +define void @testinsts(i32 %i, i32 %j, i32* %p) { + %A = bitcast i32 %i to i32 ; <i32> [#uses=0] + %B = bitcast i32 %i to i32 ; <i32> [#uses=0] + %C = shl i32 %i, 1 ; <i32> [#uses=0] + %D = shl i32 %i, 1 ; <i32> [#uses=0] + %E = getelementptr i32* %p, i64 12 ; <i32*> [#uses=0] + %F = getelementptr i32* %p, i64 12 ; <i32*> [#uses=0] + %G = getelementptr i32* %p, i64 13 ; <i32*> [#uses=0] + ret void +} ; Test different combinations of domination properties... -void "sameBBtest"(int %i, int %j) -begin - %A = add int %i, %j - %B = add int %i, %j - - %C = xor int %A, -1 - %D = xor int %B, -1 - %E = xor int %j, -1 - - ret void -end - -int "dominates"(int %i, int %j) -begin - %A = add int %i, %j - br label %BB2 - -BB2: - %B = add int %i, %j - ret int %B -end - -int "hascommondominator"(int %i, int %j) -begin - br bool true, label %BB1, label %BB2 - -BB1: - %A = add int %i, %j - ret int %A - -BB2: - %B = add int %i, %j - ret int %B -end +define void @sameBBtest(i32 %i, i32 %j) { + %A = add i32 %i, %j ; <i32> [#uses=1] + %B = add i32 %i, %j ; <i32> [#uses=1] + %C = xor i32 %A, -1 ; <i32> [#uses=0] + %D = xor i32 %B, -1 ; <i32> [#uses=0] + %E = xor i32 %j, -1 ; <i32> [#uses=0] + ret void +} + +define i32 @dominates(i32 %i, i32 %j) { + %A = add i32 %i, %j ; <i32> [#uses=0] + br label %BB2 + +BB2: ; preds = %0 + %B = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %B +} + +define i32 @hascommondominator(i32 %i, i32 %j) { + br i1 true, label %BB1, label %BB2 + +BB1: ; preds = %0 + %A = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %A + +BB2: ; preds = %0 + %B = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %B +} diff --git a/test/Transforms/GCSE/vectorops.ll b/test/Transforms/GCSE/vectorops.ll index 694d9d5..f52688e 100644 --- a/test/Transforms/GCSE/vectorops.ll +++ b/test/Transforms/GCSE/vectorops.ll @@ -1,26 +1,24 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -gcse -instcombine | \ +; RUN: llvm-as < %s | opt -gcse -instcombine | \ ; RUN: llvm-dis | not grep sub -uint %test_extractelement(<4 x uint> %V) { - %R = extractelement <4 x uint> %V, uint 1 - %R2 = extractelement <4 x uint> %V, uint 1 - %V = sub uint %R, %R2 - ret uint %V +define i32 @test_extractelement(<4 x i32> %V) { + %R = extractelement <4 x i32> %V, i32 1 ; <i32> [#uses=1] + %R2 = extractelement <4 x i32> %V, i32 1 ; <i32> [#uses=1] + %V.upgrd.1 = sub i32 %R, %R2 ; <i32> [#uses=1] + ret i32 %V.upgrd.1 } -<4 x uint> %test_insertelement(<4 x uint> %V) { - %R = insertelement <4 x uint> %V, uint 0, uint 0 - %R2 = insertelement <4 x uint> %V, uint 0, uint 0 - %x = sub <4 x uint> %R, %R2 - ret <4 x uint> %x +define <4 x i32> @test_insertelement(<4 x i32> %V) { + %R = insertelement <4 x i32> %V, i32 0, i32 0 ; <<4 x i32>> [#uses=1] + %R2 = insertelement <4 x i32> %V, i32 0, i32 0 ; <<4 x i32>> [#uses=1] + %x = sub <4 x i32> %R, %R2 ; <<4 x i32>> [#uses=1] + ret <4 x i32> %x } -<4 x uint> %test_shufflevector(<4 x uint> %V) { - %R = shufflevector <4 x uint> %V, <4 x uint> %V, - <4 x uint> < uint 1, uint undef, uint 7, uint 2> - %R2 = shufflevector <4 x uint> %V, <4 x uint> %V, - <4 x uint> < uint 1, uint undef, uint 7, uint 2> - %x = sub <4 x uint> %R, %R2 - ret <4 x uint> %x +define <4 x i32> @test_shufflevector(<4 x i32> %V) { + %R = shufflevector <4 x i32> %V, <4 x i32> %V, <4 x i32> < i32 1, i32 undef, i32 7, i32 2 > ; <<4 x i32>> [#uses=1] + %R2 = shufflevector <4 x i32> %V, <4 x i32> %V, <4 x i32> < i32 1, i32 undef, i32 7, i32 2 > ; <<4 x i32>> [#uses=1] + %x = sub <4 x i32> %R, %R2 ; <<4 x i32>> [#uses=1] + ret <4 x i32> %x } diff --git a/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll b/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll index 3679d51..a79f673 100644 --- a/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll +++ b/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll @@ -1,12 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce +; RUN: llvm-as < %s | opt -globaldce ; -implementation - -internal void %func() { ; Not dead, can be reachable via X - ret void +define internal void @func() { + ret void } -void %main() { - %X = cast void()* %func to int* - ret void +define void @main() { + %X = bitcast void ()* @func to i32* ; <i32*> [#uses=0] + ret void } + diff --git a/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll b/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll index 8bb6da5..2a39846 100644 --- a/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll +++ b/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll @@ -1,12 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce +; RUN: llvm-as < %s | opt -globaldce ; -%X = global void() * %func -implementation -internal void %func() { ; Not dead, can be reachable via X - ret void +@X = global void ()* @func ; <void ()**> [#uses=0] + +; Not dead, can be reachable via X +define internal void @func() { + ret void } -void %main() { - ret void +define void @main() { + ret void } diff --git a/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll b/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll index e0af3c2..dac81a3 100644 --- a/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll +++ b/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll @@ -1,16 +1,17 @@ ; Make sure that functions are removed successfully if they are referred to by ; a global that is dead. Make sure any globals they refer to die as well. -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | not grep foo +; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep foo -%b = internal global int ()* %foo ;; Unused, kills %foo +;; Unused, kills %foo +@b = internal global i32 ()* @foo ; <i32 ()**> [#uses=0] -%foo = internal global int 7 ;; Should die when function %foo is killed +;; Should die when function %foo is killed +@foo.upgrd.1 = internal global i32 7 ; <i32*> [#uses=1] -implementation - -internal int %foo() { ;; dies when %b dies. - %ret = load int* %foo - ret int %ret + ;; dies when %b dies. +define internal i32 @foo() { + %ret = load i32* @foo.upgrd.1 ; <i32> [#uses=1] + ret i32 %ret } diff --git a/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll b/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll index 493e30c..d07f014 100644 --- a/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll +++ b/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll @@ -1,14 +1,12 @@ ; This testcase tests that a worklist is being used, and that globals can be ; removed if they are the subject of a constexpr and ConstantPointerRef -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | not grep global - -%t0 = internal global [4 x sbyte] c"foo\00" -%t1 = internal global [4 x sbyte] c"bar\00" - -%s1 = internal global [1 x sbyte*] [sbyte* cast ([4 x sbyte]* %t0 to sbyte*)] -%s2 = internal global [1 x sbyte*] [sbyte* getelementptr ([4 x sbyte]* %t1, uint 0, uint 0 )] - -%b = internal global int* %a -%a = internal global int 7 +; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep global + +@t0 = internal global [4 x i8] c"foo\00" ; <[4 x i8]*> [#uses=1] +@t1 = internal global [4 x i8] c"bar\00" ; <[4 x i8]*> [#uses=1] +@s1 = internal global [1 x i8*] [ i8* getelementptr ([4 x i8]* @t0, i32 0, i32 0) ] ; <[1 x i8*]*> [#uses=0] +@s2 = internal global [1 x i8*] [ i8* getelementptr ([4 x i8]* @t1, i64 0, i64 0) ] ; <[1 x i8*]*> [#uses=0] +@b = internal global i32* @a ; <i32**> [#uses=0] +@a = internal global i32 7 ; <i32*> [#uses=1] diff --git a/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll b/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll index bc650d2..b49bfcc 100644 --- a/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll +++ b/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll @@ -1,13 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce +; RUN: llvm-as < %s | opt -globaldce -%foo = internal global int 7 ;; Should die when function %foo is killed +;; Should die when function %foo is killed +@foo.upgrd.1 = internal global i32 7 ; <i32*> [#uses=3] +@bar = internal global [2 x { i32*, i32 }] [ { i32*, i32 } { i32* @foo.upgrd.1, i32 7 }, { i32*, i32 } { i32* @foo.upgrd.1, i32 1 } ] ; <[2 x { i32*, i32 }]*> [#uses=0] -%bar = internal global [2x { int *, int }] [ { int *, int } { int* %foo, int 7}, {int*, int} { int* %foo, int 1 }] - -implementation - -internal int %foo() { ;; dies when %b dies. - %ret = load int* %foo - ret int %ret +define internal i32 @foo() { + %ret = load i32* @foo.upgrd.1 ; <i32> [#uses=1] + ret i32 %ret } diff --git a/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll b/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll index afdc1cd..c6c51df 100644 --- a/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll +++ b/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll @@ -1,11 +1,11 @@ ; distilled from 255.vortex -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | not grep testfunc +; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep testfunc -implementation +declare i1 ()* @getfunc() -declare bool()* %getfunc() -internal bool %testfunc() { - %F = call bool()*()* %getfunc() - %c = seteq bool()* %F, %testfunc - ret bool %c +define internal i1 @testfunc() { + %F = call i1 ()* ()* @getfunc( ) ; <i1 ()*> [#uses=1] + %c = icmp eq i1 ()* %F, @testfunc ; <i1> [#uses=1] + ret i1 %c } + diff --git a/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll b/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll index ff41163..12d4736 100644 --- a/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll +++ b/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll @@ -1,6 +1,6 @@ ; Weak variables should be preserved by global DCE! -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | grep @A +; RUN: llvm-as < %s | opt -globaldce | llvm-dis | grep @A -%A = weak global int 54 +@A = weak global i32 54 diff --git a/test/Transforms/GlobalDCE/basicvariabletest.ll b/test/Transforms/GlobalDCE/basicvariabletest.ll index 0b5c8b6..c883e58 100644 --- a/test/Transforms/GlobalDCE/basicvariabletest.ll +++ b/test/Transforms/GlobalDCE/basicvariabletest.ll @@ -1,5 +1,5 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globaldce | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep global -%X = uninitialized global int -%Y = internal global int 7 +@X = external global i32 +@Y = internal global i32 7 diff --git a/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx b/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx index 8150c52..5f784e0 100644 --- a/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx +++ b/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx @@ -1,17 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt +; RUN: llvm-as < %s | opt -globalopt -%V = global float 12.0 -%G = internal global int* null +@V = global float 1.200000e+01 ; <float*> [#uses=1] +@G = internal global i32* null ; <i32**> [#uses=2] -int %user() { - %P = load int** %G - %Q = load int* %P - ret int %Q +define i32 @user() { + %P = load i32** @G ; <i32*> [#uses=1] + %Q = load i32* %P ; <i32> [#uses=1] + ret i32 %Q } -void %setter() { - %Vi = cast float* %V to int* - store int* %Vi, int** %G - ret void +define void @setter() { + %Vi = bitcast float* @V to i32* ; <i32*> [#uses=1] + store i32* %Vi, i32** @G + ret void } diff --git a/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll b/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll index 19458c7..80f8243 100644 --- a/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll +++ b/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -disable-output +; RUN: llvm-as < %s | opt -globalopt -disable-output ; PR579 -%g_40507551 = internal global short 31038 ; <short*> [#uses=1] +@g_40507551 = internal global i16 31038 ; <i16*> [#uses=1] -void %main() { - %tmp.4.i.1 = load ubyte* getelementptr (ubyte* cast (short* %g_40507551 to ubyte*), int 1) - ret void +define void @main() { + %tmp.4.i.1 = load i8* getelementptr (i8* bitcast (i16* @g_40507551 to i8*), i32 1) ; <i8> [#uses=0] + ret void } + diff --git a/test/Transforms/GlobalOpt/2005-09-27-Crash.ll b/test/Transforms/GlobalOpt/2005-09-27-Crash.ll index 9486877..5eac431 100644 --- a/test/Transforms/GlobalOpt/2005-09-27-Crash.ll +++ b/test/Transforms/GlobalOpt/2005-09-27-Crash.ll @@ -1,28 +1,27 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -disable-output - %RPyString = type { int, %arraytype.Char } - %arraytype.Char = type { int, [0 x sbyte] } - %arraytype.Signed = type { int, [0 x int] } - %functiontype.1 = type %RPyString* (int) - %structtype.test = type { int, %arraytype.Signed } -%structinstance.test = internal global { int, { int, [2 x int] } } { int 41, { int, [2 x int] } { int 2, [2 x int] [ int 100, int 101 ] } } ; <{ int, { int, [2 x int] } }*> [#uses=1] +; RUN: llvm-as < %s | opt -globalopt -disable-output + %RPyString = type { i32, %arraytype.Char } + %arraytype.Char = type { i32, [0 x i8] } + %arraytype.Signed = type { i32, [0 x i32] } + %functiontype.1 = type %RPyString* (i32) + %structtype.test = type { i32, %arraytype.Signed } +@structinstance.test = internal global { i32, { i32, [2 x i32] } } { i32 41, { i32, [2 x i32] } { i32 2, [2 x i32] [ i32 100, i32 101 ] } } ; <{ i32, { i32, [2 x i32] } }*> [#uses=1] -implementation ; Functions: - -fastcc void %pypy_array_constant() { +define fastcc void @pypy_array_constant() { block0: - %tmp.9 = getelementptr %structtype.test* cast ({ int, { int, [2 x int] } }* %structinstance.test to %structtype.test*), int 0, uint 0 ; <int*> [#uses=0] - ret void + %tmp.9 = getelementptr %structtype.test* bitcast ({ i32, { i32, [2 x i32] } }* @structinstance.test to %structtype.test*), i32 0, i32 0 ; <i32*> [#uses=0] + ret void } -fastcc void %new.varsizestruct.rpy_string() { - unreachable +define fastcc void @new.varsizestruct.rpy_string() { + unreachable } -void %__entrypoint__pypy_array_constant() { - call fastcc void %pypy_array_constant( ) - ret void +define void @__entrypoint__pypy_array_constant() { + call fastcc void @pypy_array_constant( ) + ret void } -void %__entrypoint__raised_LLVMException() { - ret void +define void @__entrypoint__raised_LLVMException() { + ret void } + diff --git a/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll b/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll index 61df345..5559ef1 100644 --- a/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll +++ b/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll @@ -1,138 +1,135 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -disable-output +; RUN: llvm-as < %s | opt -globalopt -disable-output ; PR820 -target endian = little -target pointersize = 32 +target datalayout = "e-p:32:32" target triple = "i686-pc-linux-gnu" - %struct..0FileDescriptor = type { int } - "struct.FlagDescription<int32>" = type { ubyte*, int*, bool, bool, int, ubyte* } - "struct.FlagRegisterer<bool>" = type { ubyte } + %struct..0FileDescriptor = type { i32 } + %"struct.FlagDescription<int32>" = type { i8*, i32*, i1, i1, i32, i8* } + %"struct.FlagRegisterer<bool>" = type { i8 } %struct.MutexLock = type { %struct..0FileDescriptor* } - "struct.std::DisabledRangeMap" = type { "struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" } - "struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" = type { "struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" } - "struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" = type { "struct.FlagRegisterer<bool>", "struct.std::_Rb_tree_node_base", uint } - "struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { "struct.std::_Rb_tree_node_base"* } - "struct.std::_Rb_tree_node_base" = type { uint, "struct.std::_Rb_tree_node_base"*, "struct.std::_Rb_tree_node_base"*, "struct.std::_Rb_tree_node_base"* } - "struct.std::_Vector_base<int,std::allocator<int> >" = type { "struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" } - "struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { int*, int*, int* } - "struct.std::vector<int,std::allocator<int> >" = type { "struct.std::_Vector_base<int,std::allocator<int> >" } -%registry_lock = external global %struct..0FileDescriptor ; <%struct..0FileDescriptor*> [#uses=0] -%_ZN61FLAG__foo_int32_44FLAGS_E = external global "struct.FlagRegisterer<bool>" ; <"struct.FlagRegisterer<bool>"*> [#uses=0] -%llvm.global_ctors = appending global [20 x { int, void ()* }] [ { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN7ScannerC2Ev }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__Z11StripStringPSsPKcc }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_ }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN8Hasher325ResetEj }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__Z25ACLRv }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I_eventbuf }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE }, { int, void ()* } { int 65535, void ()* %_GLOBAL__I__checker_bcad_variable } ] ; <[20 x { int, void ()* }]*> [#uses=0] + %"struct.std::DisabledRangeMap" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" } + %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" } + %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" = type { %"struct.FlagRegisterer<bool>", %"struct.std::_Rb_tree_node_base", i32 } + %"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { %"struct.std::_Rb_tree_node_base"* } + %"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* } + %"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" } + %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* } + %"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" } +@registry_lock = external global %struct..0FileDescriptor ; <%struct..0FileDescriptor*> [#uses=0] +@_ZN61FLAG__foo_int32_44FLAGS_E = external global %"struct.FlagRegisterer<bool>" ; <%"struct.FlagRegisterer<bool>"*> [#uses=0] +@llvm.global_ctors = appending global [20 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN7ScannerC2Ev }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z11StripStringPSsPKcc }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_ }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN8Hasher325ResetEj }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z25ACLRv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_eventbuf }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__checker_bcad_variable } ] ; <[20 x { i32, void ()* }]*> [#uses=0] -implementation ; Functions: +declare void @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E() -declare void %_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E() +declare void @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E() -declare void %_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E() +declare void @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv() -declare void %_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv() +declare void @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E() -declare void %_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E() +declare void @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E() -declare void %_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E() - -void %_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE() { +define void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE() { entry: - call void %_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E( ) + call void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E( ) ret void } -void %_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E() { +define void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E() { entry: - call void %_ZN9MutexLockC1EP5Mutex( ) + call void @_ZN9MutexLockC1EP5Mutex( ) ret void } -declare void %_GLOBAL__I__ZN7ScannerC2Ev() +declare void @_GLOBAL__I__ZN7ScannerC2Ev() -declare void %_GLOBAL__I__Z11StripStringPSsPKcc() +declare void @_GLOBAL__I__Z11StripStringPSsPKcc() -void %_ZNSt6vectorIiSaIiEEC1ERKS0_() { +define void @_ZNSt6vectorIiSaIiEEC1ERKS0_() { entry: unreachable } -declare void %_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_() +declare void @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_() -declare void %_GLOBAL__I__ZN8Hasher325ResetEj() +declare void @_GLOBAL__I__ZN8Hasher325ResetEj() -declare void %_GLOBAL__I__Z25ACLRv() +declare void @_GLOBAL__I__Z25ACLRv() -void %_ZN9MutexLockC1EP5Mutex() { +define void @_ZN9MutexLockC1EP5Mutex() { entry: - call void %_ZN5Mutex4LockEv( ) + call void @_ZN5Mutex4LockEv( ) ret void } -void %_ZN5Mutex4LockEv() { +define void @_ZN5Mutex4LockEv() { entry: - call void %_Z22Acquire_CASPViii( ) + call void @_Z22Acquire_CASPViii( ) ret void } -csretcc void %_ZNSt3mapIPKc15FlagDescriptionIiE9StringCmpSaISt4pairIKS1_S3_EEE3endEv("struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >"* %agg.result) { +define void @_ZNSt3mapIPKc15FlagDescriptionIiE9StringCmpSaISt4pairIKS1_S3_EEE3endEv(%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >"* sret %agg.result) { entry: unreachable } -declare void %_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E() +declare void @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E() -void %_Z14CASPViii() { +define void @_Z14CASPViii() { entry: - %tmp3 = call int asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( int 0, int* null, int 0 ) ; <int> [#uses=0] + %tmp3 = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, i32* null, i32 0 ) ; <i32> [#uses=0] unreachable } -declare void %_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E() +declare void @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E() -declare void %_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E() +declare void @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E() -void %_Z22Acquire_CASPViii() { +define void @_Z22Acquire_CASPViii() { entry: - call void %_Z14CASPViii( ) + call void @_Z14CASPViii( ) unreachable } -declare void %_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E() +declare void @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E() -declare void %_GLOBAL__I_eventbuf() +declare void @_GLOBAL__I_eventbuf() -void %_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E() { +define void @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E() { entry: - call void %_Z41__static_initialization_and_destruction_0ii1662( int 1, int 65535 ) + call void @_Z41__static_initialization_and_destruction_0ii1662( i32 1, i32 65535 ) ret void } -void %_Z41__static_initialization_and_destruction_0ii1662(int %__initialize_p, int %__priority) { +define void @_Z41__static_initialization_and_destruction_0ii1662(i32 %__initialize_p, i32 %__priority) { entry: - %__initialize_p_addr = alloca int ; <int*> [#uses=2] - %__priority_addr = alloca int ; <int*> [#uses=2] - store int %__initialize_p, int* %__initialize_p_addr - store int %__priority, int* %__priority_addr - %tmp = load int* %__priority_addr ; <int> [#uses=1] - %tmp = seteq int %tmp, 65535 ; <bool> [#uses=1] - br bool %tmp, label %cond_true, label %cond_next14 + %__initialize_p_addr = alloca i32 ; <i32*> [#uses=2] + %__priority_addr = alloca i32 ; <i32*> [#uses=2] + store i32 %__initialize_p, i32* %__initialize_p_addr + store i32 %__priority, i32* %__priority_addr + %tmp = load i32* %__priority_addr ; <i32> [#uses=1] + %tmp.upgrd.1 = icmp eq i32 %tmp, 65535 ; <i1> [#uses=1] + br i1 %tmp.upgrd.1, label %cond_true, label %cond_next14 cond_true: ; preds = %entry - %tmp8 = load int* %__initialize_p_addr ; <int> [#uses=1] - %tmp9 = seteq int %tmp8, 1 ; <bool> [#uses=1] - br bool %tmp9, label %cond_true10, label %cond_next14 + %tmp8 = load i32* %__initialize_p_addr ; <i32> [#uses=1] + %tmp9 = icmp eq i32 %tmp8, 1 ; <i1> [#uses=1] + br i1 %tmp9, label %cond_true10, label %cond_next14 cond_true10: ; preds = %cond_true - call void %_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE( ) + call void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE( ) ret void cond_next14: ; preds = %cond_true, %entry ret void } -declare void %_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E() +declare void @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E() -void %_ZN9__gnu_cxx13new_allocatorIPNS_15_Hashtable_nodeIjEEEC2Ev() { +define void @_ZN9__gnu_cxx13new_allocatorIPNS_15_Hashtable_nodeIjEEEC2Ev() { entry: unreachable } -declare void %_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE() +declare void @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE() -declare void %_GLOBAL__I__checker_bcad_variable() +declare void @_GLOBAL__I__checker_bcad_variable() diff --git a/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll b/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll index cd76681..39be6c4 100644 --- a/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll +++ b/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll @@ -1,33 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -disable-output - %struct._list = type { int*, %struct._list* } - %struct._play = type { int, int*, %struct._list*, %struct._play* } -%nrow = internal global int 0 ; <int*> [#uses=2] +; RUN: llvm-as < %s | opt -globalopt -disable-output -implementation ; Functions: + %struct._list = type { i32*, %struct._list* } + %struct._play = type { i32, i32*, %struct._list*, %struct._play* } +@nrow = internal global i32 0 ; <i32*> [#uses=2] -void %make_play() { +define void @make_play() { entry: - br label %cond_true16.i + br label %cond_true16.i -cond_true16.i: ; preds = %cond_true16.i, %entry - %low.0.in.i.0 = phi int* [ %nrow, %entry ], [ null, %cond_true16.i ] ; <int*> [#uses=1] - %low.0.i = load int* %low.0.in.i.0 ; <int> [#uses=0] - br label %cond_true16.i +cond_true16.i: ; preds = %cond_true16.i, %entry + %low.0.in.i.0 = phi i32* [ @nrow, %entry ], [ null, %cond_true16.i ] ; <i32*> [#uses=1] + %low.0.i = load i32* %low.0.in.i.0 ; <i32> [#uses=0] + br label %cond_true16.i } -void %make_wanted() { +define void @make_wanted() { entry: - unreachable + unreachable } -void %get_good_move() { +define void @get_good_move() { entry: - ret void + ret void } -void %main() { +define void @main() { entry: - store int 8, int* %nrow - tail call void %make_play( ) - ret void + store i32 8, i32* @nrow + tail call void @make_play( ) + ret void } + diff --git a/test/Transforms/GlobalOpt/basictest.llx b/test/Transforms/GlobalOpt/basictest.llx index 1f97fc0..1c3bdbb 100644 --- a/test/Transforms/GlobalOpt/basictest.llx +++ b/test/Transforms/GlobalOpt/basictest.llx @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global -%X = internal global int 4 +@X = internal global i32 4 ; <i32*> [#uses=1] - -int %foo() { - %V = load int* %X - ret int %V +define i32 @foo() { + %V = load i32* @X ; <i32> [#uses=1] + ret i32 %V } + diff --git a/test/Transforms/GlobalOpt/ctor-list-opt.ll b/test/Transforms/GlobalOpt/ctor-list-opt.ll index 6270f4f..56aeadb 100644 --- a/test/Transforms/GlobalOpt/ctor-list-opt.ll +++ b/test/Transforms/GlobalOpt/ctor-list-opt.ll @@ -1,97 +1,85 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep CTOR +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep CTOR +@llvm.global_ctors = appending global [10 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR2 }, { i32, void ()* } { i32 65535, void ()* @CTOR3 }, { i32, void ()* } { i32 65535, void ()* @CTOR4 }, { i32, void ()* } { i32 65535, void ()* @CTOR5 }, { i32, void ()* } { i32 65535, void ()* @CTOR6 }, { i32, void ()* } { i32 65535, void ()* @CTOR7 }, { i32, void ()* } { i32 65535, void ()* @CTOR8 }, { i32, void ()* } { i32 2147483647, void ()* null } ] ; <[10 x { i32, void ()* }]*> [#uses=0] +@G = global i32 0 ; <i32*> [#uses=1] +@G2 = global i32 0 ; <i32*> [#uses=1] +@G3 = global i32 -123 ; <i32*> [#uses=2] +@X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] } ; <{ i32, [2 x i32] }*> [#uses=2] +@Y = global i32 -1 ; <i32*> [#uses=2] +@Z = global i32 123 ; <i32*> [#uses=1] +@D = global double 0.000000e+00 ; <double*> [#uses=1] +@CTORGV = internal global i1 false ; <i1*> [#uses=2] -%llvm.global_ctors = appending global [10 x { int, void ()* }] [ - { int, void ()* } { int 65535, void ()* %CTOR1 }, - { int, void ()* } { int 65535, void ()* %CTOR1 }, - { int, void ()* } { int 65535, void ()* %CTOR2 }, - { int, void ()* } { int 65535, void ()* %CTOR3 }, - { int, void ()* } { int 65535, void ()* %CTOR4 }, - { int, void ()* } { int 65535, void ()* %CTOR5 }, - { int, void ()* } { int 65535, void ()* %CTOR6 }, - { int, void ()* } { int 65535, void ()* %CTOR7 }, - { int, void ()* } { int 65535, void ()* %CTOR8 }, - { int, void ()* } { int 2147483647, void ()* null } -] - -%G = global int 0 -%G2 = global int 0 -%G3 = global int -123 -%X = global {int, [2 x int]} { int 0, [2 x int] [ int 17, int 21] } -%Y = global int -1 -%Z = global int 123 -%D = global double 0.0 - -%CTORGV = internal global bool false ;; Should become constant after eval - -implementation - -internal void %CTOR1() { ;; noop ctor, remove. - ret void +define internal void @CTOR1() { + ret void } -internal void %CTOR2() { ;; evaluate the store - %A = add int 1, 23 - store int %A, int* %G - store bool true, bool* %CTORGV - ret void +define internal void @CTOR2() { + %A = add i32 1, 23 ; <i32> [#uses=1] + store i32 %A, i32* @G + store i1 true, i1* @CTORGV + ret void } -internal void %CTOR3() { - %X = or bool true, false +define internal void @CTOR3() { + %X = or i1 true, false ; <i1> [#uses=1] br label %Cont -Cont: - br bool %X, label %S, label %T -S: - store int 24, int* %G2 + +Cont: ; preds = %0 + br i1 %X, label %S, label %T + +S: ; preds = %Cont + store i32 24, i32* @G2 ret void -T: + +T: ; preds = %Cont ret void } -internal void %CTOR4() { - %X = load int* %G3 - %Y = add int %X, 123 - store int %Y, int* %G3 +define internal void @CTOR4() { + %X = load i32* @G3 ; <i32> [#uses=1] + %Y = add i32 %X, 123 ; <i32> [#uses=1] + store i32 %Y, i32* @G3 ret void } -internal void %CTOR5() { - %X.2p = getelementptr {int,[2 x int]}* %X, int 0, uint 1, int 0 - %X.2 = load int* %X.2p - %X.1p = getelementptr {int,[2 x int]}* %X, int 0, uint 0 - store int %X.2, int* %X.1p - store int 42, int* %X.2p +define internal void @CTOR5() { + %X.2p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 1, i32 0 ; <i32*> [#uses=2] + %X.2 = load i32* %X.2p ; <i32> [#uses=1] + %X.1p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 0 ; <i32*> [#uses=1] + store i32 %X.2, i32* %X.1p + store i32 42, i32* %X.2p ret void } -internal void %CTOR6() { - %A = alloca int - %y = load int* %Y - store int %y, int* %A - %Av = load int* %A - %Av1 = add int %Av, 1 - store int %Av1, int* %Y +define internal void @CTOR6() { + %A = alloca i32 ; <i32*> [#uses=2] + %y = load i32* @Y ; <i32> [#uses=1] + store i32 %y, i32* %A + %Av = load i32* %A ; <i32> [#uses=1] + %Av1 = add i32 %Av, 1 ; <i32> [#uses=1] + store i32 %Av1, i32* @Y ret void } -internal void %CTOR7() { - call void %setto(int* %Z, int 0) +define internal void @CTOR7() { + call void @setto( i32* @Z, i32 0 ) ret void } -void %setto(int* %P, int %V) { - store int %V, int* %P +define void @setto(i32* %P, i32 %V) { + store i32 %V, i32* %P ret void } -declare double %cos(double) +declare double @cos(double) -internal void %CTOR8() { - %X = call double %cos(double 1.0) - store double %X, double* %D +define internal void @CTOR8() { + %X = call double @cos( double 1.000000e+00 ) ; <double> [#uses=1] + store double %X, double* @D ret void } -bool %accessor() { - %V = load bool* %CTORGV ;; constant true - ret bool %V + +define i1 @accessor() { + %V = load i1* @CTORGV ; <i1> [#uses=1] + ret i1 %V } diff --git a/test/Transforms/GlobalOpt/deadglobal.llx b/test/Transforms/GlobalOpt/deadglobal.llx index a7397bf..7a47b8e 100644 --- a/test/Transforms/GlobalOpt/deadglobal.llx +++ b/test/Transforms/GlobalOpt/deadglobal.llx @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep internal +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep internal -%G = internal global int 123 +@G = internal global i32 123 ; <i32*> [#uses=1] -void %foo() { - store int 1, int* %G - ret void +define void @foo() { + store i32 1, i32* @G + ret void } + diff --git a/test/Transforms/GlobalOpt/globalsra-partial.llx b/test/Transforms/GlobalOpt/globalsra-partial.llx index e060565..e52e7fe 100644 --- a/test/Transforms/GlobalOpt/globalsra-partial.llx +++ b/test/Transforms/GlobalOpt/globalsra-partial.llx @@ -1,23 +1,23 @@ ; In this case, the global can only be broken up by one level. -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep 12345 +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep 12345 -%G = internal global { int, [4 x float] } zeroinitializer +@G = internal global { i32, [4 x float] } zeroinitializer ; <{ i32, [4 x float] }*> [#uses=3] -void %onlystore() { - store int 12345, int* getelementptr ({ int, [4 x float] }* %G, int 0, uint 0) - ret void +define void @onlystore() { + store i32 12345, i32* getelementptr ({ i32, [4 x float] }* @G, i32 0, i32 0) + ret void } -void %storeinit(int %i) { - %Ptr = getelementptr { int, [4 x float] }* %G, int 0, uint 1, int %i - store float 1.0, float* %Ptr - ret void +define void @storeinit(i32 %i) { + %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; <float*> [#uses=1] + store float 1.000000e+00, float* %Ptr + ret void } -float %readval(int %i) { - %Ptr = getelementptr { int, [4 x float] }* %G, int 0, uint 1, int %i - %V = load float* %Ptr - ret float %V +define float @readval(i32 %i) { + %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; <float*> [#uses=1] + %V = load float* %Ptr ; <float> [#uses=1] + ret float %V } diff --git a/test/Transforms/GlobalOpt/globalsra.llx b/test/Transforms/GlobalOpt/globalsra.llx index a87b954..3623555 100644 --- a/test/Transforms/GlobalOpt/globalsra.llx +++ b/test/Transforms/GlobalOpt/globalsra.llx @@ -1,19 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global -%G = internal global { int, float, {double} } { int 1, float 1.0, {double} {double 17.27} } +@G = internal global { i32, float, { double } } { + i32 1, + float 1.000000e+00, + { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3] -void %onlystore() { - store int 123, int* getelementptr ({ int, float, {double} }* %G, int 0, uint 0) - ret void +define void @onlystore() { + store i32 123, i32* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 0) + ret void } -float %storeinit() { - store float 1.0, float* getelementptr ({ int, float, {double} }* %G, int 0, uint 1) - %X = load float* getelementptr ({ int, float, {double} }* %G, int 0, uint 1) - ret float %X +define float @storeinit() { + store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) + %X = load float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) ; <float> [#uses=1] + ret float %X } -double %constantize() { - %X = load double* getelementptr ({ int, float, {double} }* %G, int 0, uint 2, uint 0) - ret double %X +define double @constantize() { + %X = load double* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 2, i32 0) ; <double> [#uses=1] + ret double %X } + diff --git a/test/Transforms/GlobalOpt/integer-bool.ll b/test/Transforms/GlobalOpt/integer-bool.ll index eef2f72..9fbbe35 100644 --- a/test/Transforms/GlobalOpt/integer-bool.ll +++ b/test/Transforms/GlobalOpt/integer-bool.ll @@ -1,23 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -instcombine | \ +; RUN: llvm-as < %s | opt -globalopt -instcombine | \ ; RUN: llvm-dis | grep {ret i1 true} ;; check that global opt turns integers that only hold 0 or 1 into bools. -%G = internal global int 0 ;; This only holds 0 or 1. +@G = internal global i32 0 ; <i32*> [#uses=3] -implementation - -void %set1() { - store int 0, int* %G - ret void +define void @set1() { + store i32 0, i32* @G + ret void } -void %set2() { - store int 1, int* %G - ret void + +define void @set2() { + store i32 1, i32* @G + ret void } -bool %get() { - %A = load int* %G - %C = setlt int %A, 2 ;; always true - ret bool %C +define i1 @get() { + %A = load i32* @G ; <i32> [#uses=1] + %C = icmp slt i32 %A, 2 ; <i1> [#uses=1] + ret i1 %C } + diff --git a/test/Transforms/GlobalOpt/iterate.llx b/test/Transforms/GlobalOpt/iterate.llx index e4e59c6..d764c5d 100644 --- a/test/Transforms/GlobalOpt/iterate.llx +++ b/test/Transforms/GlobalOpt/iterate.llx @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep %G +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep %G -%G = internal global int 0 -%H = internal global { int* } { int* %G } +@G = internal global i32 0 ; <i32*> [#uses=1] +@H = internal global { i32* } { i32* @G } ; <{ i32* }*> [#uses=1] -int %loadg() { - %G = load int** getelementptr ({int*}* %H, int 0, uint 0) - %GV = load int* %G - ret int %GV +define i32 @loadg() { + %G = load i32** getelementptr ({ i32* }* @H, i32 0, i32 0) ; <i32*> [#uses=1] + %GV = load i32* %G ; <i32> [#uses=1] + ret i32 %GV } + diff --git a/test/Transforms/GlobalOpt/load-store-global.llx b/test/Transforms/GlobalOpt/load-store-global.llx index bf5d3a2..d89d226 100644 --- a/test/Transforms/GlobalOpt/load-store-global.llx +++ b/test/Transforms/GlobalOpt/load-store-global.llx @@ -1,14 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep G +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G -%G = internal global int 17 +@G = internal global i32 17 ; <i32*> [#uses=3] -void %foo() { - %V = load int* %G - store int %V, int* %G ;; Doesn't change the value +define void @foo() { + %V = load i32* @G ; <i32> [#uses=1] + store i32 %V, i32* @G ret void } -int %bar() { - %X = load int* %G - ret int %X + +define i32 @bar() { + %X = load i32* @G ; <i32> [#uses=1] + ret i32 %X } diff --git a/test/Transforms/GlobalOpt/malloc-promote-1.llx b/test/Transforms/GlobalOpt/malloc-promote-1.llx index 068e96f..fea4dbd 100644 --- a/test/Transforms/GlobalOpt/malloc-promote-1.llx +++ b/test/Transforms/GlobalOpt/malloc-promote-1.llx @@ -1,18 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global -%G = internal global int* null +@G = internal global i32* null ; <i32**> [#uses=3] -void %init() { - %P = malloc int - store int* %P, int** %G - - %GV = load int** %G - store int 0, int* %GV - ret void +define void @init() { + %P = malloc i32 ; <i32*> [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; <i32*> [#uses=1] + store i32 0, i32* %GV + ret void } -int %get() { - %GV = load int** %G - %V = load int* %GV - ret int %V +define i32 @get() { + %GV = load i32** @G ; <i32*> [#uses=1] + %V = load i32* %GV ; <i32> [#uses=1] + ret i32 %V } + diff --git a/test/Transforms/GlobalOpt/malloc-promote-2.llx b/test/Transforms/GlobalOpt/malloc-promote-2.llx index 12d4c6d..1b33632 100644 --- a/test/Transforms/GlobalOpt/malloc-promote-2.llx +++ b/test/Transforms/GlobalOpt/malloc-promote-2.llx @@ -1,20 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep malloc +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc -%G = internal global int* null +@G = internal global i32* null ; <i32**> [#uses=3] -void %init() { - %P = malloc int, uint 100 - store int* %P, int** %G - - %GV = load int** %G - %GVe = getelementptr int* %GV, int 40 - store int 20, int* %GVe - ret void +define void @init() { + %P = malloc i32, i32 100 ; <i32*> [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; <i32*> [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; <i32*> [#uses=1] + store i32 20, i32* %GVe + ret void } -int %get() { - %GV = load int** %G - %GVe = getelementptr int* %GV, int 40 - %V = load int* %GVe - ret int %V +define i32 @get() { + %GV = load i32** @G ; <i32*> [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; <i32*> [#uses=1] + %V = load i32* %GVe ; <i32> [#uses=1] + ret i32 %V } + diff --git a/test/Transforms/GlobalOpt/malloc-promote-3.llx b/test/Transforms/GlobalOpt/malloc-promote-3.llx index 85ce6bd..26ce8fd 100644 --- a/test/Transforms/GlobalOpt/malloc-promote-3.llx +++ b/test/Transforms/GlobalOpt/malloc-promote-3.llx @@ -1,26 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep malloc +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc -%G = internal global int* null +@G = internal global i32* null ; <i32**> [#uses=4] -void %init() { - %P = malloc int, uint 100 - store int* %P, int** %G - - %GV = load int** %G - %GVe = getelementptr int* %GV, int 40 - store int 20, int* %GVe - ret void +define void @init() { + %P = malloc i32, i32 100 ; <i32*> [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; <i32*> [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; <i32*> [#uses=1] + store i32 20, i32* %GVe + ret void } -int %get() { - %GV = load int** %G - %GVe = getelementptr int* %GV, int 40 - %V = load int* %GVe - ret int %V +define i32 @get() { + %GV = load i32** @G ; <i32*> [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; <i32*> [#uses=1] + %V = load i32* %GVe ; <i32> [#uses=1] + ret i32 %V } -bool %check() { ;; Return true if init has been called - %GV = load int** %G - %V = seteq int* %GV, null - ret bool %V +define i1 @check() { + %GV = load i32** @G ; <i32*> [#uses=1] + %V = icmp eq i32* %GV, null ; <i1> [#uses=1] + ret i1 %V } + diff --git a/test/Transforms/GlobalOpt/memcpy.ll b/test/Transforms/GlobalOpt/memcpy.ll index a110d40..b51aedb 100644 --- a/test/Transforms/GlobalOpt/memcpy.ll +++ b/test/Transforms/GlobalOpt/memcpy.ll @@ -1,17 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | \ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \ ; RUN: grep {G1 = internal constant} -%G1 = internal global [58 x sbyte] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" +@G1 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1] -implementation +declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) -declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint) - -void %foo() { - %Blah = alloca [58 x sbyte] ; <[58 x sbyte]*> [#uses=2] - %tmp.0 = getelementptr [58 x sbyte]* %Blah, int 0, int 0 ; <sbyte*> [#uses=1] - call void %llvm.memcpy.i32( sbyte* %tmp.0, sbyte* getelementptr ([58 x sbyte]* %G1, int 0, int 0), uint 58, uint 1 ) - ret void +define void @foo() { + %Blah = alloca [58 x i8] ; <[58 x i8]*> [#uses=1] + %tmp.0 = getelementptr [58 x i8]* %Blah, i32 0, i32 0 ; <i8*> [#uses=1] + call void @llvm.memcpy.i32( i8* %tmp.0, i8* getelementptr ([58 x i8]* @G1, i32 0, i32 0), i32 58, i32 1 ) + ret void } diff --git a/test/Transforms/GlobalOpt/memset.ll b/test/Transforms/GlobalOpt/memset.ll index 336a234..0ee851f 100644 --- a/test/Transforms/GlobalOpt/memset.ll +++ b/test/Transforms/GlobalOpt/memset.ll @@ -1,23 +1,21 @@ ; both globals are write only, delete them. -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | \ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \ ; RUN: not grep internal -%G0 = internal global [58 x sbyte] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" +@G0 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1] +@G1 = internal global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <[4 x i32]*> [#uses=1] -%G1 = internal global [4 x int] [ int 1, int 2, int 3, int 4] +declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) -implementation ; Functions: +declare void @llvm.memset.i32(i8*, i8, i32, i32) -declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint) -declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint) - -void %foo() { - %Blah = alloca [58 x sbyte] ; <[58 x sbyte]*> [#uses=2] - %tmp3 = cast [58 x sbyte]* %Blah to sbyte* - call void %llvm.memcpy.i32( sbyte* cast ([4 x int]* %G1 to sbyte*), sbyte* %tmp3, uint 16, uint 1) - call void %llvm.memset.i32( sbyte* getelementptr ([58 x sbyte]* %G0, int 0, int 0), ubyte 17, uint 58, uint 1) - ret void +define void @foo() { + %Blah = alloca [58 x i8] ; <[58 x i8]*> [#uses=1] + %tmp3 = bitcast [58 x i8]* %Blah to i8* ; <i8*> [#uses=1] + call void @llvm.memcpy.i32( i8* bitcast ([4 x i32]* @G1 to i8*), i8* %tmp3, i32 16, i32 1 ) + call void @llvm.memset.i32( i8* getelementptr ([58 x i8]* @G0, i32 0, i32 0), i8 17, i32 58, i32 1 ) + ret void } diff --git a/test/Transforms/GlobalOpt/phi-select.llx b/test/Transforms/GlobalOpt/phi-select.llx index 2389c0a..da1314f 100644 --- a/test/Transforms/GlobalOpt/phi-select.llx +++ b/test/Transforms/GlobalOpt/phi-select.llx @@ -1,26 +1,28 @@ ; Test that PHI nodes and select instructions do not necessarily make stuff ; non-constant. -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global -%X = internal global int 4 -%Y = internal global int 5 +@X = internal global i32 4 ; <i32*> [#uses=2] +@Y = internal global i32 5 ; <i32*> [#uses=2] -int %test1(bool %C) { - %P = select bool %C, int* %X, int* %Y - %V = load int* %P - ret int %V +define i32 @test1(i1 %C) { + %P = select i1 %C, i32* @X, i32* @Y ; <i32*> [#uses=1] + %V = load i32* %P ; <i32> [#uses=1] + ret i32 %V } +define i32 @test2(i1 %C) { +; <label>:0 + br i1 %C, label %T, label %Cont -int %test2(bool %C) { - br bool %C, label %T, label %Cont -T: - br label %Cont -Cont: - %P = phi int* [%X, %0], [%Y, %T] - %V = load int* %P - ret int %V +T: ; preds = %0 + br label %Cont + +Cont: ; preds = %T, %0 + %P = phi i32* [ @X, %0 ], [ @Y, %T ] ; <i32*> [#uses=1] + %V = load i32* %P ; <i32> [#uses=1] + ret i32 %V } diff --git a/test/Transforms/GlobalOpt/storepointer-compare.llx b/test/Transforms/GlobalOpt/storepointer-compare.llx index d85d97d..86eff51 100644 --- a/test/Transforms/GlobalOpt/storepointer-compare.llx +++ b/test/Transforms/GlobalOpt/storepointer-compare.llx @@ -1,29 +1,30 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | \ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \ ; RUN: grep {call void @Actual} ; Check that a comparison does not prevent an indirect call from being made ; direct. The global will still remain, but indirect call elim is still good. -%G = internal global void ()* null +@G = internal global void ()* null ; <void ()**> [#uses=2] -implementation - -internal void %Actual() { - ret void +define internal void @Actual() { + ret void } -void %init() { - store void()* %Actual, void()** %G - ret void +define void @init() { + store void ()* @Actual, void ()** @G + ret void } -void %doit() { - %FP = load void()** %G - %CC = seteq void()* %FP, null - br bool %CC, label %isNull, label %DoCall -DoCall: - call void %FP() - ret void -isNull: - ret void +define void @doit() { + %FP = load void ()** @G ; <void ()*> [#uses=2] + %CC = icmp eq void ()* %FP, null ; <i1> [#uses=1] + br i1 %CC, label %isNull, label %DoCall + +DoCall: ; preds = %0 + call void %FP( ) + ret void + +isNull: ; preds = %0 + ret void } + diff --git a/test/Transforms/GlobalOpt/storepointer.llx b/test/Transforms/GlobalOpt/storepointer.llx index a424d25..d57a6ac 100644 --- a/test/Transforms/GlobalOpt/storepointer.llx +++ b/test/Transforms/GlobalOpt/storepointer.llx @@ -1,20 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep global +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global -%G = internal global void ()* null +@G = internal global void ()* null ; <void ()**> [#uses=2] -implementation - -internal void %Actual() { - ret void +define internal void @Actual() { + ret void } -void %init() { - store void()* %Actual, void()** %G - ret void +define void @init() { + store void ()* @Actual, void ()** @G + ret void } -void %doit() { - %FP = load void()** %G - call void %FP() - ret void +define void @doit() { + %FP = load void ()** @G ; <void ()*> [#uses=1] + call void %FP( ) + ret void } + diff --git a/test/Transforms/GlobalOpt/trivialstore.llx b/test/Transforms/GlobalOpt/trivialstore.llx index 8b1f1ce..a662565 100644 --- a/test/Transforms/GlobalOpt/trivialstore.llx +++ b/test/Transforms/GlobalOpt/trivialstore.llx @@ -1,17 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep G +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G -%G = internal global int 17 +@G = internal global i32 17 ; <i32*> [#uses=3] -void %foo() { - store int 17, int* %G ;; Doesn't change the value - ret void +define void @foo() { + store i32 17, i32* @G + ret void } -int %bar() { - %X = load int* %G - ret int %X + +define i32 @bar() { + %X = load i32* @G ; <i32> [#uses=1] + ret i32 %X } -internal void %dead() { - store int 123, int* %G - ret void +define internal void @dead() { + store i32 123, i32* @G + ret void } + diff --git a/test/Transforms/GlobalOpt/undef-init.llx b/test/Transforms/GlobalOpt/undef-init.llx index 2f073c2..bb483fc 100644 --- a/test/Transforms/GlobalOpt/undef-init.llx +++ b/test/Transforms/GlobalOpt/undef-init.llx @@ -1,18 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt | llvm-dis | not grep store +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep store -%llvm.global_ctors = appending global [1 x { int, void ()* }] [ { int, void ()* } { int 65535, void ()* %_GLOBAL__I__Z3foov } ] ; <[1 x { int, void ()* }]*> [#uses=0] -%X.0 = internal global int undef ; <int*> [#uses=2] +@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z3foov } ] ; <[1 x { i32, void ()* }]*> [#uses=0] +@X.0 = internal global i32 undef ; <i32*> [#uses=2] -implementation ; Functions: - -int %_Z3foov() { +define i32 @_Z3foov() { entry: - %tmp.1 = load int* %X.0 ; <int> [#uses=1] - ret int %tmp.1 + %tmp.1 = load i32* @X.0 ; <i32> [#uses=1] + ret i32 %tmp.1 } -internal void %_GLOBAL__I__Z3foov() { +define internal void @_GLOBAL__I__Z3foov() { entry: - store int 1, int* %X.0 - ret void + store i32 1, i32* @X.0 + ret void } + diff --git a/test/Transforms/IPConstantProp/deadarg.ll b/test/Transforms/IPConstantProp/deadarg.ll index 5e41ade..18b8f7d 100644 --- a/test/Transforms/IPConstantProp/deadarg.ll +++ b/test/Transforms/IPConstantProp/deadarg.ll @@ -1,7 +1,6 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -ipconstprop -disable-output -implementation - -internal void %foo(int %X) { - call void %foo(int %X) - ret void +; RUN: llvm-as < %s | opt -ipconstprop -disable-output +define internal void @foo(i32 %X) { + call void @foo( i32 %X ) + ret void } + diff --git a/test/Transforms/IPConstantProp/recursion.ll b/test/Transforms/IPConstantProp/recursion.ll index 10f18e5..27c381a 100644 --- a/test/Transforms/IPConstantProp/recursion.ll +++ b/test/Transforms/IPConstantProp/recursion.ll @@ -1,14 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -ipconstprop -deadargelim | llvm-dis | not grep %X - -implementation - -internal int %foo(int %X) { - %Y = call int %foo( int %X ) - %Z = add int %Y, 1 - ret int %Z +; RUN: llvm-as < %s | opt -ipconstprop -deadargelim | llvm-dis | not grep %X +define internal i32 @foo(i32 %X) { + %Y = call i32 @foo( i32 %X ) ; <i32> [#uses=1] + %Z = add i32 %Y, 1 ; <i32> [#uses=1] + ret i32 %Z } -void %bar() { - call int %foo( int 17 ) ; <int>:0 [#uses=0] +define void @bar() { + call i32 @foo( i32 17 ) ; <i32>:1 [#uses=0] ret void } + diff --git a/test/Transforms/IPConstantProp/return-constant.ll b/test/Transforms/IPConstantProp/return-constant.ll index 36cd493..82ad902 100644 --- a/test/Transforms/IPConstantProp/return-constant.ll +++ b/test/Transforms/IPConstantProp/return-constant.ll @@ -1,17 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -ipconstprop -instcombine | \ +; RUN: llvm-as < %s | opt -ipconstprop -instcombine | \ ; RUN: llvm-dis | grep {ret i1 true} -implementation +define internal i32 @foo(i1 %C) { + br i1 %C, label %T, label %F -internal int %foo(bool %C) { - br bool %C, label %T, label %F -T: - ret int 52 -F: - ret int 52 +T: ; preds = %0 + ret i32 52 + +F: ; preds = %0 + ret i32 52 } -bool %caller(bool %C) { - %X = call int %foo(bool %C) - %Y = setne int %X, 0 - ret bool %Y +define i1 @caller(i1 %C) { + %X = call i32 @foo( i1 %C ) ; <i32> [#uses=1] + %Y = icmp ne i32 %X, 0 ; <i1> [#uses=1] + ret i1 %Y } + diff --git a/test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll b/test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll index 4c80e48..228772e 100644 --- a/test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll +++ b/test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll @@ -1,16 +1,17 @@ ; Induction variable pass is doing bad things with pointer induction vars, ; trying to do arithmetic on them directly. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars +; RUN: llvm-as < %s | opt -indvars ; -void %test(int %A, uint %S, sbyte* %S) { +define void @test(i32 %A, i32 %S, i8* %S.upgrd.1) { +; <label>:0 + br label %Loop - br label %Loop -Loop: - %PIV = phi sbyte* [%S, %0], [%PIVNext, %Loop] - - %PIV = cast sbyte* %PIV to ulong - %PIVNext = add ulong %PIV, 8 - %PIVNext = cast ulong %PIVNext to sbyte* - br label %Loop +Loop: ; preds = %Loop, %0 + %PIV = phi i8* [ %S.upgrd.1, %0 ], [ %PIVNext.upgrd.3, %Loop ] ; <i8*> [#uses=1] + %PIV.upgrd.2 = ptrtoint i8* %PIV to i64 ; <i64> [#uses=1] + %PIVNext = add i64 %PIV.upgrd.2, 8 ; <i64> [#uses=1] + %PIVNext.upgrd.3 = inttoptr i64 %PIVNext to i8* ; <i8*> [#uses=1] + br label %Loop } + diff --git a/test/Transforms/IndVarsSimplify/2003-04-16-ExprAnalysis.ll b/test/Transforms/IndVarsSimplify/2003-04-16-ExprAnalysis.ll index 2f19825..2487ea9 100644 --- a/test/Transforms/IndVarsSimplify/2003-04-16-ExprAnalysis.ll +++ b/test/Transforms/IndVarsSimplify/2003-04-16-ExprAnalysis.ll @@ -1,14 +1,17 @@ ; This is a test case for the expression analysis code, not really indvars. ; It was assuming any constant of int type was a ConstantInteger. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars +; RUN: llvm-as < %s | opt -indvars -%X = global int 7 +@X = global i32 7 ; <i32*> [#uses=1] -void %test(int %A) { +define void @test(i32 %A) { +; <label>:0 br label %Loop -Loop: - %IV = phi int [%A, %0], [%IVNext, %Loop] - %IVNext = add int %IV, cast (int* %X to int) + +Loop: ; preds = %Loop, %0 + %IV = phi i32 [ %A, %0 ], [ %IVNext, %Loop ] ; <i32> [#uses=1] + %IVNext = add i32 %IV, ptrtoint (i32* @X to i32) ; <i32> [#uses=1] br label %Loop } + diff --git a/test/Transforms/IndVarsSimplify/2003-09-12-MultiplePred.ll b/test/Transforms/IndVarsSimplify/2003-09-12-MultiplePred.ll index ea1e585..9619099 100644 --- a/test/Transforms/IndVarsSimplify/2003-09-12-MultiplePred.ll +++ b/test/Transforms/IndVarsSimplify/2003-09-12-MultiplePred.ll @@ -1,12 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep indvar +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar -int %test() { - br bool true, label %LoopHead, label %LoopHead +define i32 @test() { +; <label>:0 + br i1 true, label %LoopHead, label %LoopHead -LoopHead: - %A = phi int [7, %0], [7, %0], [%B, %LoopHead] - %B = add int %A, 1 - br bool false, label %LoopHead, label %Out -Out: - ret int %B +LoopHead: ; preds = %LoopHead, %0, %0 + %A = phi i32 [ 7, %0 ], [ 7, %0 ], [ %B, %LoopHead ] ; <i32> [#uses=1] + %B = add i32 %A, 1 ; <i32> [#uses=2] + br i1 false, label %LoopHead, label %Out + +Out: ; preds = %LoopHead + ret i32 %B } + diff --git a/test/Transforms/IndVarsSimplify/2003-09-23-NotAtTop.ll b/test/Transforms/IndVarsSimplify/2003-09-23-NotAtTop.ll index d715f68..da22cf2 100644 --- a/test/Transforms/IndVarsSimplify/2003-09-23-NotAtTop.ll +++ b/test/Transforms/IndVarsSimplify/2003-09-23-NotAtTop.ll @@ -1,16 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | %prcontext Loop: 1 | grep %indvar +; RUN: llvm-as < %s | opt -indvars | llvm-dis | %prcontext Loop: 1 | grep %indvar ; The indvar simplification code should ensure that the first PHI in the block ; is the canonical one! -int %test() { - br label %Loop -Loop: - %NonIndvar = phi int [200, %0], [%NonIndvarNext, %Loop] - %Canonical = phi int [0, %0], [%CanonicalNext, %Loop] +define i32 @test() { +; <label>:0 + br label %Loop - %NonIndvarNext = div int %NonIndvar, 2 - %CanonicalNext = add int %Canonical, 1 - br label %Loop +Loop: ; preds = %Loop, %0 + %NonIndvar = phi i32 [ 200, %0 ], [ %NonIndvarNext, %Loop ] ; <i32> [#uses=1] + %Canonical = phi i32 [ 0, %0 ], [ %CanonicalNext, %Loop ] ; <i32> [#uses=1] + %NonIndvarNext = sdiv i32 %NonIndvar, 2 ; <i32> [#uses=1] + %CanonicalNext = add i32 %Canonical, 1 ; <i32> [#uses=1] + br label %Loop } diff --git a/test/Transforms/IndVarsSimplify/2003-12-10-IndVarDeadCode.ll b/test/Transforms/IndVarsSimplify/2003-12-10-IndVarDeadCode.ll index ba67989..bd9d1ef 100644 --- a/test/Transforms/IndVarsSimplify/2003-12-10-IndVarDeadCode.ll +++ b/test/Transforms/IndVarsSimplify/2003-12-10-IndVarDeadCode.ll @@ -1,24 +1,25 @@ ; The induction variable canonicalization pass shouldn't leave dead ; instructions laying around! ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | \ +; RUN: llvm-as < %s | opt -indvars | llvm-dis | \ ; RUN: not grep {#uses=0} -int %mul(int %x, int %y) { +define i32 @mul(i32 %x, i32 %y) { entry: - br label %tailrecurse + br label %tailrecurse -tailrecurse: ; preds = %entry, %endif - %accumulator.tr = phi int [ %x, %entry ], [ %tmp.9, %endif ] ; <int> [#uses=2] - %y.tr = phi int [ %y, %entry ], [ %tmp.8, %endif ] ; <int> [#uses=2] - %tmp.1 = seteq int %y.tr, 0 ; <bool> [#uses=1] - br bool %tmp.1, label %return, label %endif +tailrecurse: ; preds = %endif, %entry + %accumulator.tr = phi i32 [ %x, %entry ], [ %tmp.9, %endif ] ; <i32> [#uses=2] + %y.tr = phi i32 [ %y, %entry ], [ %tmp.8, %endif ] ; <i32> [#uses=2] + %tmp.1 = icmp eq i32 %y.tr, 0 ; <i1> [#uses=1] + br i1 %tmp.1, label %return, label %endif -endif: ; preds = %tailrecurse - %tmp.8 = add int %y.tr, -1 ; <int> [#uses=1] - %tmp.9 = add int %accumulator.tr, %x ; <int> [#uses=1] - br label %tailrecurse +endif: ; preds = %tailrecurse + %tmp.8 = add i32 %y.tr, -1 ; <i32> [#uses=1] + %tmp.9 = add i32 %accumulator.tr, %x ; <i32> [#uses=1] + br label %tailrecurse -return: ; preds = %tailrecurse - ret int %accumulator.tr +return: ; preds = %tailrecurse + ret i32 %accumulator.tr } + diff --git a/test/Transforms/IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx b/test/Transforms/IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx index 09d384e..11af997 100644 --- a/test/Transforms/IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx +++ b/test/Transforms/IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx @@ -1,17 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -void %test() { +define void @test() { entry: - %inc.2 = add int 1, 1 ; <int> [#uses=1] - br bool false, label %no_exit, label %loopexit + %inc.2 = add i32 1, 1 ; <i32> [#uses=1] + br i1 false, label %no_exit, label %loopexit -no_exit: ; preds = %entry, %no_exit - %j.0.pn = phi int [ %inc.3, %no_exit ], [ %inc.2, %entry ] ; <int> [#uses=1] - %k.0.pn = phi int [ %inc.4, %no_exit ], [ 1, %entry ] ; <int> [#uses=1] - %inc.3 = add int %j.0.pn, 1 ; <int> [#uses=1] - %inc.4 = add int %k.0.pn, 1 ; <int> [#uses=1] - br bool false, label %no_exit, label %loopexit +no_exit: ; preds = %no_exit, %entry + %j.0.pn = phi i32 [ %inc.3, %no_exit ], [ %inc.2, %entry ] ; <i32> [#uses=1] + %k.0.pn = phi i32 [ %inc.4, %no_exit ], [ 1, %entry ] ; <i32> [#uses=1] + %inc.3 = add i32 %j.0.pn, 1 ; <i32> [#uses=1] + %inc.4 = add i32 %k.0.pn, 1 ; <i32> [#uses=1] + br i1 false, label %no_exit, label %loopexit -loopexit: ; preds = %entry, %no_exit - ret void +loopexit: ; preds = %no_exit, %entry + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2003-12-15-Crash.llx b/test/Transforms/IndVarsSimplify/2003-12-15-Crash.llx index 3724728..b964d78 100644 --- a/test/Transforms/IndVarsSimplify/2003-12-15-Crash.llx +++ b/test/Transforms/IndVarsSimplify/2003-12-15-Crash.llx @@ -1,23 +1,24 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output -void %_ZN17CoinFactorization7cleanupEv() { +; RUN: llvm-as < %s | opt -indvars -disable-output +define void @_ZN17CoinFactorization7cleanupEv() { entry: - br bool false, label %loopexit.14, label %cond_continue.3 + br i1 false, label %loopexit.14, label %cond_continue.3 -cond_continue.3: ; preds = %entry - ret void +cond_continue.3: ; preds = %entry + ret void -loopexit.14: ; preds = %entry - %tmp.738 = sub int 0, 0 ; <int> [#uses=1] - br bool false, label %no_exit.15.preheader, label %loopexit.15 +loopexit.14: ; preds = %entry + %tmp.738 = sub i32 0, 0 ; <i32> [#uses=1] + br i1 false, label %no_exit.15.preheader, label %loopexit.15 -no_exit.15.preheader: ; preds = %loopexit.14 - br label %no_exit.15 +no_exit.15.preheader: ; preds = %loopexit.14 + br label %no_exit.15 -no_exit.15: ; preds = %no_exit.15.preheader, %no_exit.15 - %highC.0 = phi int [ %tmp.738, %no_exit.15.preheader ], [ %dec.0, %no_exit.15 ] ; <int> [#uses=1] - %dec.0 = add int %highC.0, -1 ; <int> [#uses=1] - br bool false, label %no_exit.15, label %loopexit.15 +no_exit.15: ; preds = %no_exit.15, %no_exit.15.preheader + %highC.0 = phi i32 [ %tmp.738, %no_exit.15.preheader ], [ %dec.0, %no_exit.15 ] ; <i32> [#uses=1] + %dec.0 = add i32 %highC.0, -1 ; <i32> [#uses=1] + br i1 false, label %no_exit.15, label %loopexit.15 -loopexit.15: ; preds = %loopexit.14, %no_exit.15 - ret void +loopexit.15: ; preds = %no_exit.15, %loopexit.14 + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2003-12-21-IndVarSize.ll b/test/Transforms/IndVarsSimplify/2003-12-21-IndVarSize.ll index 26fecf4..a0ddd41 100644 --- a/test/Transforms/IndVarsSimplify/2003-12-21-IndVarSize.ll +++ b/test/Transforms/IndVarsSimplify/2003-12-21-IndVarSize.ll @@ -1,12 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep indvar | not grep uint +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar | not grep uint -%G = global long 0 +@G = global i64 0 ; <i64*> [#uses=1] -void %test() { - br label %Loop -Loop: - %X = phi long [1, %0], [%X.next, %Loop] - %X.next = add long %X, 1 - store long %X, long* %G - br label %Loop +define void @test() { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %X = phi i64 [ 1, %0 ], [ %X.next, %Loop ] ; <i64> [#uses=2] + %X.next = add i64 %X, 1 ; <i64> [#uses=1] + store i64 %X, i64* @G + br label %Loop } + diff --git a/test/Transforms/IndVarsSimplify/2004-03-10-PHIInsertionBug.ll b/test/Transforms/IndVarsSimplify/2004-03-10-PHIInsertionBug.ll index 88c393e..248b29b 100644 --- a/test/Transforms/IndVarsSimplify/2004-03-10-PHIInsertionBug.ll +++ b/test/Transforms/IndVarsSimplify/2004-03-10-PHIInsertionBug.ll @@ -1,27 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -implementation ; Functions: - -void %test() { +define void @test() { br label %endif.0.i -endif.0.i: ; preds = %then.0.i - br bool false, label %then.3.i, label %endif.3.i +endif.0.i: ; preds = %0 + br i1 false, label %then.3.i, label %endif.3.i -then.3.i: ; preds = %endif.0.i - br label %endif.3.i +then.3.i: ; preds = %endif.0.i + br label %endif.3.i -endif.3.i: ; preds = %endif.0.i, %then.3.i - %inxm.0.i = phi int [ 8, %then.3.i ], [ 0, %endif.0.i ] - %doinner.1.i = phi int [ 0, %then.3.i ], [ 0, %endif.0.i ] - br label %loopentry.2.i +endif.3.i: ; preds = %then.3.i, %endif.0.i + %inxm.0.i = phi i32 [ 8, %then.3.i ], [ 0, %endif.0.i ] ; <i32> [#uses=1] + %doinner.1.i = phi i32 [ 0, %then.3.i ], [ 0, %endif.0.i ] ; <i32> [#uses=0] + br label %loopentry.2.i -loopentry.2.i: ; preds = %endif.3.i, %no_exit.2.i - %inxk.0.i = phi int [ %tmp.210.i, %no_exit.2.i ], [ 0, %endif.3.i ] - br label %no_exit.2.i +loopentry.2.i: ; preds = %no_exit.2.i, %endif.3.i + %inxk.0.i = phi i32 [ %tmp.210.i, %no_exit.2.i ], [ 0, %endif.3.i ] ; <i32> [#uses=1] + br label %no_exit.2.i -no_exit.2.i: ; preds = %loopentry.2.i - %tmp.210.i = sub int %inxk.0.i, %inxm.0.i - %tmp.213.i = add int %tmp.210.i, 0 - br label %loopentry.2.i +no_exit.2.i: ; preds = %loopentry.2.i + %tmp.210.i = sub i32 %inxk.0.i, %inxm.0.i ; <i32> [#uses=2] + %tmp.213.i = add i32 %tmp.210.i, 0 ; <i32> [#uses=0] + br label %loopentry.2.i } + diff --git a/test/Transforms/IndVarsSimplify/2004-04-05-InvokeCastCrash.llx b/test/Transforms/IndVarsSimplify/2004-04-05-InvokeCastCrash.llx index c0d8410..6933ee7 100644 --- a/test/Transforms/IndVarsSimplify/2004-04-05-InvokeCastCrash.llx +++ b/test/Transforms/IndVarsSimplify/2004-04-05-InvokeCastCrash.llx @@ -1,286 +1,283 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output - - %struct.__false_type = type { ubyte } - "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"*, "struct.llvm::Constant"* } - "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"*, "struct.std::pair<const llvm::Value* const,int>" } - "struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { "struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" } - "struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { "struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" } - "struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, "struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >", uint } - "struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, "struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >", uint } - "struct.llvm::AbstractTypeUser" = type { int (...)** } - "struct.llvm::Annotable" = type { int (...)**, "struct.llvm::Annotation"* } - "struct.llvm::Annotation" = type { int (...)**, "struct.llvm::AnnotationID", "struct.llvm::Annotation"* } - "struct.llvm::AnnotationID" = type { uint } - "struct.llvm::Argument" = type { "struct.llvm::Value", "struct.llvm::Function"*, "struct.llvm::Argument"*, "struct.llvm::Argument"* } - "struct.llvm::BasicBlock" = type { "struct.llvm::Value", "struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", "struct.llvm::BasicBlock"*, "struct.llvm::BasicBlock"* } - "struct.llvm::Constant" = type opaque - "struct.llvm::DerivedType" = type { "struct.llvm::Type", "struct.llvm::AbstractTypeUser", "struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" } - "struct.llvm::Function" = type { "struct.llvm::GlobalValue", "struct.llvm::Annotable", "struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", "struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", "struct.llvm::SymbolTable"*, "struct.llvm::Function"*, "struct.llvm::Function"* } - "struct.llvm::FunctionPass" = type { "struct.llvm::Pass" } - "struct.llvm::FunctionType" = type { "struct.llvm::DerivedType", bool } - "struct.llvm::GlobalValue" = type { "struct.llvm::User", uint, "struct.llvm::Module"* } - "struct.llvm::Instruction" = type { "struct.llvm::User", "struct.llvm::Annotable", "struct.llvm::BasicBlock"*, "struct.llvm::Instruction"*, "struct.llvm::Instruction"*, uint } - "struct.llvm::IntrinsicLowering" = type opaque - "struct.llvm::MachineBasicBlock" = type { "struct.llvm::ilist<llvm::MachineInstr>", "struct.llvm::MachineBasicBlock"*, "struct.llvm::MachineBasicBlock"*, "struct.llvm::BasicBlock"* } - "struct.llvm::MachineConstantPool" = type opaque - "struct.llvm::MachineFrameInfo" = type opaque - "struct.llvm::MachineFunction" = type { "struct.llvm::Annotation", "struct.llvm::Function"*, "struct.llvm::TargetMachine"*, "struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", "struct.llvm::SSARegMap"*, "struct.llvm::MachineFunctionInfo"*, "struct.llvm::MachineFrameInfo"*, "struct.llvm::MachineConstantPool"* } - "struct.llvm::MachineFunctionInfo" = type { "struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >", "struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >", uint, uint, uint, uint, uint, uint, uint, bool, bool, bool, "struct.llvm::MachineFunction"* } - "struct.llvm::MachineFunctionPass" = type { "struct.llvm::FunctionPass" } - "struct.llvm::MachineInstr" = type { short, ubyte, "struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", "struct.llvm::MachineInstr"*, "struct.llvm::MachineInstr"*, "struct.llvm::MachineBasicBlock"* } - "struct.llvm::MachineInstrBuilder" = type { "struct.llvm::MachineInstr"* } - "struct.llvm::MachineOperand" = type { "union.llvm::MachineOperand::._65", int, int } - "struct.llvm::Module" = type opaque - "struct.llvm::PATypeHandle" = type { "struct.llvm::Type"*, "struct.llvm::AbstractTypeUser"* } - "struct.llvm::PATypeHolder" = type { "struct.llvm::Type"* } - "struct.llvm::Pass" = type { int (...)**, "struct.llvm::AbstractTypeUser"*, "struct.llvm::PassInfo"*, "struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } - "struct.llvm::PassInfo" = type { sbyte*, sbyte*, "struct.std::type_info"*, ubyte, "struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", "struct.llvm::Pass"* ()*, "struct.llvm::Pass"* ("struct.llvm::TargetMachine"*)* } - "struct.llvm::SSARegMap" = type opaque - "struct.llvm::SymbolTable" = type opaque - "struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" = type { "struct.llvm::Function"*, "struct.llvm::Function"* } - "struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { "struct.llvm::Function"*, "struct.llvm::BasicBlock"* } - "struct.llvm::TargetData" = type { "struct.llvm::FunctionPass", bool, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte } - "struct.llvm::TargetFrameInfo" = type { int (...)**, uint, uint, int } - "struct.llvm::TargetInstrDescriptor" = type { sbyte*, int, int, uint, bool, uint, uint, uint, uint, uint, uint*, uint* } - "struct.llvm::TargetInstrInfo" = type { int (...)**, "struct.llvm::TargetInstrDescriptor"*, uint, uint } - "struct.llvm::TargetMachine" = type { int (...)**, "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", "struct.llvm::TargetData", "struct.llvm::IntrinsicLowering"* } - "struct.llvm::TargetRegClassInfo" = type { int (...)**, uint, uint, uint } - "struct.llvm::TargetRegInfo" = type { int (...)**, "struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", "struct.llvm::TargetMachine"* } - "struct.llvm::Type" = type { "struct.llvm::Value", uint, uint, bool, uint, "struct.llvm::Type"*, "struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" } - "struct.llvm::Use" = type { "struct.llvm::Value"*, "struct.llvm::User"*, "struct.llvm::Use"*, "struct.llvm::Use"* } - "struct.llvm::User" = type { "struct.llvm::Value", "struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" } - "struct.llvm::Value" = type { int (...)**, "struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >", "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", "struct.llvm::PATypeHolder", uint } - "struct.llvm::_GLOBAL__N_::InsertPrologEpilogCode" = type { "struct.llvm::MachineFunctionPass" } - "struct.llvm::ilist<llvm::MachineInstr>" = type { "struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" } - "struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>" = type { "struct.llvm::MachineBasicBlock"* } - "struct.llvm::ilist_traits<llvm::Argument>" = type { "struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" } - "struct.llvm::ilist_traits<llvm::Instruction>" = type { "struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" } - "struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { "struct.llvm::ilist_traits<llvm::Argument>", "struct.llvm::Argument"*, "struct.llvm::Argument"* } - "struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { "struct.llvm::ilist_traits<llvm::Argument>", "struct.llvm::BasicBlock"*, "struct.llvm::BasicBlock"* } - "struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { "struct.llvm::ilist_traits<llvm::Instruction>", "struct.llvm::Instruction"*, "struct.llvm::Instruction"* } - "struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { "struct.llvm::MachineBasicBlock"*, "struct.llvm::MachineBasicBlock"* } - "struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { "struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", "struct.llvm::MachineInstr"*, "struct.llvm::MachineInstr"* } - "struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { "struct.llvm::Use"*, "struct.llvm::Use"* } - "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" = type { "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"** } - "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"** } - "struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { "struct.llvm::PassInfo"**, "struct.llvm::PassInfo"**, "struct.llvm::PassInfo"** } - "struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { "struct.llvm::TargetRegClassInfo"**, "struct.llvm::TargetRegClassInfo"**, "struct.llvm::TargetRegClassInfo"** } - "struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { "struct.llvm::AbstractTypeUser"**, "struct.llvm::AbstractTypeUser"**, "struct.llvm::AbstractTypeUser"** } - "struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { "struct.llvm::MachineInstr"**, "struct.llvm::MachineInstr"**, "struct.llvm::MachineInstr"** } - "struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { "struct.llvm::MachineOperand"*, "struct.llvm::MachineOperand"*, "struct.llvm::MachineOperand"* } - "struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { "struct.llvm::PATypeHandle"*, "struct.llvm::PATypeHandle"*, "struct.llvm::PATypeHandle"* } - "struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { "struct.llvm::Use"*, "struct.llvm::Use"*, "struct.llvm::Use"* } - "struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* } - "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" } - "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" } - "struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { "struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" } - "struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { "struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" } - "struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { "struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" } - "struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { "struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" } - "struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { "struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" } - "struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { "struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" } - "struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" = type { "struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" } - "struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { "struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { sbyte* } - "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { "struct.llvm::PassInfo"*, "struct.llvm::Pass"* } - "struct.std::pair<const llvm::Value* const,int>" = type { "struct.llvm::Value"*, int } - "struct.std::type_info" = type { int (...)**, sbyte* } - "struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" } - "struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" } - "struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { "struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" } - "struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { "struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" } - "struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { "struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" } - "struct.std::vector<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { "struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" } - "struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { "struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" } - "struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { "struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" } - "struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" = type { "struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" } - "struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { "struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } - "union.llvm::MachineOperand::._65" = type { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* } - -implementation ; Functions: - -declare void %_Znwj() - -declare void %_ZN4llvm12MachineInstrC1Esjbb() - -declare void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_() - -declare void %_ZNK4llvm8Function15getFunctionTypeEv() - -declare void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE() - -declare void %_ZNK4llvm19MachineInstrBuilder7addSImmEi() - -void %_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE("struct.llvm::MachineFunction"* %F) { +; RUN: llvm-as < %s | opt -indvars -disable-output +; ModuleID = '2004-04-05-InvokeCastCrash.llx' + %struct.__false_type = type { i8 } + %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"*, %"struct.llvm::Constant"* } + %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"*, %"struct.std::pair<const llvm::Value* const,int>" } + %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" } + %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" } + %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >", i32 } + %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >", i32 } + %"struct.llvm::AbstractTypeUser" = type { i32 (...)** } + %"struct.llvm::Annotable" = type { i32 (...)**, %"struct.llvm::Annotation"* } + %"struct.llvm::Annotation" = type { i32 (...)**, %"struct.llvm::AnnotationID", %"struct.llvm::Annotation"* } + %"struct.llvm::AnnotationID" = type { i32 } + %"struct.llvm::Argument" = type { %"struct.llvm::Value", %"struct.llvm::Function"*, %"struct.llvm::Argument"*, %"struct.llvm::Argument"* } + %"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* } + %"struct.llvm::Constant" = type opaque + %"struct.llvm::DerivedType" = type { %"struct.llvm::Type", %"struct.llvm::AbstractTypeUser", %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" } + %"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", %"struct.llvm::SymbolTable"*, %"struct.llvm::Function"*, %"struct.llvm::Function"* } + %"struct.llvm::FunctionPass" = type { %"struct.llvm::Pass" } + %"struct.llvm::FunctionType" = type { %"struct.llvm::DerivedType", i1 } + %"struct.llvm::GlobalValue" = type { %"struct.llvm::User", i32, %"struct.llvm::Module"* } + %"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::Annotable", %"struct.llvm::BasicBlock"*, %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"*, i32 } + %"struct.llvm::IntrinsicLowering" = type opaque + %"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist<llvm::MachineInstr>", %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::BasicBlock"* } + %"struct.llvm::MachineConstantPool" = type opaque + %"struct.llvm::MachineFrameInfo" = type opaque + %"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", %"struct.llvm::Function"*, %"struct.llvm::TargetMachine"*, %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", %"struct.llvm::SSARegMap"*, %"struct.llvm::MachineFunctionInfo"*, %"struct.llvm::MachineFrameInfo"*, %"struct.llvm::MachineConstantPool"* } + %"struct.llvm::MachineFunctionInfo" = type { %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >", %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >", i32, i32, i32, i32, i32, i32, i32, i1, i1, i1, %"struct.llvm::MachineFunction"* } + %"struct.llvm::MachineFunctionPass" = type { %"struct.llvm::FunctionPass" } + %"struct.llvm::MachineInstr" = type { i16, i8, %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineBasicBlock"* } + %"struct.llvm::MachineInstrBuilder" = type { %"struct.llvm::MachineInstr"* } + %"struct.llvm::MachineOperand" = type { %"union.llvm::MachineOperand::._65", i32, i32 } + %"struct.llvm::Module" = type opaque + %"struct.llvm::PATypeHandle" = type { %"struct.llvm::Type"*, %"struct.llvm::AbstractTypeUser"* } + %"struct.llvm::PATypeHolder" = type { %"struct.llvm::Type"* } + %"struct.llvm::Pass" = type { i32 (...)**, %"struct.llvm::AbstractTypeUser"*, %"struct.llvm::PassInfo"*, %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } + %"struct.llvm::PassInfo" = type { i8*, i8*, %"struct.std::type_info"*, i8, %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", %"struct.llvm::Pass"* ()*, %"struct.llvm::Pass"* (%"struct.llvm::TargetMachine"*)* } + %"struct.llvm::SSARegMap" = type opaque + %"struct.llvm::SymbolTable" = type opaque + %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::Function"*, %"struct.llvm::Function"* } + %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::Function"*, %"struct.llvm::BasicBlock"* } + %"struct.llvm::TargetData" = type { %"struct.llvm::FunctionPass", i1, i8, i8, i8, i8, i8, i8, i8, i8 } + %"struct.llvm::TargetFrameInfo" = type { i32 (...)**, i32, i32, i32 } + %"struct.llvm::TargetInstrDescriptor" = type { i8*, i32, i32, i32, i1, i32, i32, i32, i32, i32, i32*, i32* } + %"struct.llvm::TargetInstrInfo" = type { i32 (...)**, %"struct.llvm::TargetInstrDescriptor"*, i32, i32 } + %"struct.llvm::TargetMachine" = type { i32 (...)**, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::TargetData", %"struct.llvm::IntrinsicLowering"* } + %"struct.llvm::TargetRegClassInfo" = type { i32 (...)**, i32, i32, i32 } + %"struct.llvm::TargetRegInfo" = type { i32 (...)**, %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", %"struct.llvm::TargetMachine"* } + %"struct.llvm::Type" = type { %"struct.llvm::Value", i32, i32, i1, i32, %"struct.llvm::Type"*, %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" } + %"struct.llvm::Use" = type { %"struct.llvm::Value"*, %"struct.llvm::User"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* } + %"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" } + %"struct.llvm::Value" = type { i32 (...)**, %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::PATypeHolder", i32 } + %"struct.llvm::_GLOBAL__N_::InsertPrologEpilogCode" = type { %"struct.llvm::MachineFunctionPass" } + %"struct.llvm::ilist<llvm::MachineInstr>" = type { %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" } + %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>" = type { %"struct.llvm::MachineBasicBlock"* } + %"struct.llvm::ilist_traits<llvm::Argument>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" } + %"struct.llvm::ilist_traits<llvm::Instruction>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" } + %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::Argument"*, %"struct.llvm::Argument"* } + %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* } + %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::ilist_traits<llvm::Instruction>", %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"* } + %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"* } + %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"* } + %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"* } + %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"** } + %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"** } + %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"** } + %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"** } + %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"** } + %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"** } + %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"* } + %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"* } + %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* } + %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* } + %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" } + %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" } + %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" } + %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" } + %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" } + %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" } + %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" } + %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" } + %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" } + %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* } + %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { %"struct.llvm::PassInfo"*, %"struct.llvm::Pass"* } + %"struct.std::pair<const llvm::Value* const,int>" = type { %"struct.llvm::Value"*, i32 } + %"struct.std::type_info" = type { i32 (...)**, i8* } + %"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" } + %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" } + %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" } + %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" } + %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" } + %"struct.std::vector<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" } + %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" } + %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" } + %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" } + %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" } + %"union.llvm::MachineOperand::._65" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* } + +declare void @_Znwj() + +declare void @_ZN4llvm12MachineInstrC1Esjbb() + +declare void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_() + +declare void @_ZNK4llvm8Function15getFunctionTypeEv() + +declare void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE() + +declare void @_ZNK4llvm19MachineInstrBuilder7addSImmEi() + +define void @_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE(%"struct.llvm::MachineFunction"* %F) { entry: - %tmp.8.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.0.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetFrameInfo"*> [#uses=0] + %tmp.8.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.0.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=0] -invoke_catch.0.i: ; preds = %entry, %invoke_cont.0.i, %tmp.7.i.noexc.i, %endif.0.i.i, %invoke_cont.1.i, %invoke_cont.2.i, %invoke_cont.3.i, %invoke_cont.4.i, %then.0.i, %invoke_cont.i.i, %invoke_cont.7.i, %invoke_cont.8.i, %invoke_cont.9.i, %endif.0.i, %then.1.i, %invoke_cont.34.i, %invoke_cont.35.i, %then.2.i, %invoke_cont.37.i, %invoke_cont.38.i, %invoke_cont.39.i, %invoke_cont.40.i, %invoke_cont.41.i, %invoke_cont.42.i, %invoke_cont.43.i, %invoke_cont.44.i, %no_exit.i, %invoke_cont.i53.i, %invoke_cont.47.i, %invoke_cont.48.i, %invoke_cont.49.i +invoke_catch.0.i: ; preds = %invoke_cont.49.i, %invoke_cont.48.i, %invoke_cont.47.i, %invoke_cont.i53.i, %no_exit.i, %invoke_cont.44.i, %invoke_cont.43.i, %invoke_cont.42.i, %invoke_cont.41.i, %invoke_cont.40.i, %invoke_cont.39.i, %invoke_cont.38.i, %invoke_cont.37.i, %then.2.i, %invoke_cont.35.i, %invoke_cont.34.i, %then.1.i, %endif.0.i, %invoke_cont.9.i, %invoke_cont.8.i, %invoke_cont.7.i, %invoke_cont.i.i, %then.0.i, %invoke_cont.4.i, %invoke_cont.3.i, %invoke_cont.2.i, %invoke_cont.1.i, %endif.0.i.i, %tmp.7.i.noexc.i, %invoke_cont.0.i, %entry ret void invoke_cont.0.i: ; preds = %entry - %tmp.7.i1.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetFrameInfo"*> [#uses=2] + %tmp.7.i1.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=2] tmp.7.i.noexc.i: ; preds = %invoke_cont.0.i - %tmp.17.i2.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.7.i1.i ) - to label %endif.0.i.i unwind label %invoke_catch.0.i ; <int> [#uses=0] + %tmp.17.i2.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i ) + to label %endif.0.i.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] endif.0.i.i: ; preds = %tmp.7.i.noexc.i - %tmp.38.i4.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.7.i1.i ) - to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i ; <int> [#uses=0] + %tmp.38.i4.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i ) + to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] tmp.38.i.noexc.i: ; preds = %endif.0.i.i - br bool false, label %invoke_cont.1.i, label %then.1.i.i + br i1 false, label %invoke_cont.1.i, label %then.1.i.i then.1.i.i: ; preds = %tmp.38.i.noexc.i ret void invoke_cont.1.i: ; preds = %tmp.38.i.noexc.i - %tmp.21.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.2.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetRegInfo"*> [#uses=1] + %tmp.21.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.2.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1] invoke_cont.2.i: ; preds = %invoke_cont.1.i - %tmp.28.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.21.i ) - to label %invoke_cont.3.i unwind label %invoke_catch.0.i ; <uint> [#uses=0] + %tmp.28.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.21.i ) + to label %invoke_cont.3.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] invoke_cont.3.i: ; preds = %invoke_cont.2.i - %tmp.36.i = invoke "struct.llvm::TargetInstrInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.4.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetInstrInfo"*> [#uses=1] + %tmp.36.i = invoke %"struct.llvm::TargetInstrInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.4.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetInstrInfo"*> [#uses=1] invoke_cont.4.i: ; preds = %invoke_cont.3.i - %tmp.43.i = invoke bool null( "struct.llvm::TargetInstrInfo"* %tmp.36.i, short 383, long 0 ) - to label %invoke_cont.5.i unwind label %invoke_catch.0.i ; <bool> [#uses=1] + %tmp.43.i = invoke i1 null( %"struct.llvm::TargetInstrInfo"* %tmp.36.i, i16 383, i64 0 ) + to label %invoke_cont.5.i unwind label %invoke_catch.0.i ; <i1> [#uses=1] invoke_cont.5.i: ; preds = %invoke_cont.4.i - br bool %tmp.43.i, label %then.0.i, label %else.i + br i1 %tmp.43.i, label %then.0.i, label %else.i then.0.i: ; preds = %invoke_cont.5.i - invoke void %_Znwj( ) + invoke void @_Znwj( ) to label %tmp.0.i.noexc.i unwind label %invoke_catch.0.i tmp.0.i.noexc.i: ; preds = %then.0.i - invoke void %_ZN4llvm12MachineInstrC1Esjbb( ) + invoke void @_ZN4llvm12MachineInstrC1Esjbb( ) to label %invoke_cont.i.i unwind label %cond_true.i.i cond_true.i.i: ; preds = %tmp.0.i.noexc.i ret void invoke_cont.i.i: ; preds = %tmp.0.i.noexc.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) to label %invoke_cont.7.i unwind label %invoke_catch.0.i invoke_cont.7.i: ; preds = %invoke_cont.i.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addSImmEi( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( ) to label %invoke_cont.8.i unwind label %invoke_catch.0.i invoke_cont.8.i: ; preds = %invoke_cont.7.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) to label %invoke_cont.9.i unwind label %invoke_catch.0.i invoke_cont.9.i: ; preds = %invoke_cont.8.i - invoke void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( ) + invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( ) to label %endif.0.i unwind label %invoke_catch.0.i else.i: ; preds = %invoke_cont.5.i ret void endif.0.i: ; preds = %invoke_cont.9.i - invoke void %_ZNK4llvm8Function15getFunctionTypeEv( ) + invoke void @_ZNK4llvm8Function15getFunctionTypeEv( ) to label %invoke_cont.33.i unwind label %invoke_catch.0.i invoke_cont.33.i: ; preds = %endif.0.i - 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 = %invoke_cont.33.i - invoke void %_ZNK4llvm8Function15getFunctionTypeEv( ) + invoke void @_ZNK4llvm8Function15getFunctionTypeEv( ) to label %invoke_cont.34.i unwind label %invoke_catch.0.i invoke_cont.34.i: ; preds = %then.1.i - %tmp.121.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.35.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetRegInfo"*> [#uses=1] + %tmp.121.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.35.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1] invoke_cont.35.i: ; preds = %invoke_cont.34.i - %tmp.128.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.121.i ) - to label %invoke_cont.36.i unwind label %invoke_catch.0.i ; <uint> [#uses=0] + %tmp.128.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.121.i ) + to label %invoke_cont.36.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] invoke_cont.36.i: ; preds = %invoke_cont.35.i - br bool false, label %then.2.i, label %endif.1.i + br i1 false, label %then.2.i, label %endif.1.i then.2.i: ; preds = %invoke_cont.36.i - %tmp.140.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.37.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetRegInfo"*> [#uses=0] + %tmp.140.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.37.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=0] invoke_cont.37.i: ; preds = %then.2.i - %tmp.148.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.38.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetRegInfo"*> [#uses=1] + %tmp.148.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.38.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1] invoke_cont.38.i: ; preds = %invoke_cont.37.i - %tmp.155.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.148.i, "struct.llvm::Type"* null, bool false ) - to label %invoke_cont.39.i unwind label %invoke_catch.0.i ; <uint> [#uses=0] + %tmp.155.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.148.i, %"struct.llvm::Type"* null, i1 false ) + to label %invoke_cont.39.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] invoke_cont.39.i: ; preds = %invoke_cont.38.i - %tmp.163.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.40.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetFrameInfo"*> [#uses=1] + %tmp.163.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.40.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1] invoke_cont.40.i: ; preds = %invoke_cont.39.i - %tmp.170.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.163.i ) - to label %invoke_cont.41.i unwind label %invoke_catch.0.i ; <int> [#uses=0] + %tmp.170.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.163.i ) + to label %invoke_cont.41.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] invoke_cont.41.i: ; preds = %invoke_cont.40.i - %tmp.177.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.42.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetFrameInfo"*> [#uses=1] + %tmp.177.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.42.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1] invoke_cont.42.i: ; preds = %invoke_cont.41.i - %tmp.184.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.177.i ) - to label %invoke_cont.43.i unwind label %invoke_catch.0.i ; <int> [#uses=1] + %tmp.184.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.177.i ) + to label %invoke_cont.43.i unwind label %invoke_catch.0.i ; <i32> [#uses=1] invoke_cont.43.i: ; preds = %invoke_cont.42.i - %tmp.191.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null ) - to label %invoke_cont.44.i unwind label %invoke_catch.0.i ; <"struct.llvm::TargetFrameInfo"*> [#uses=1] + %tmp.191.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null ) + to label %invoke_cont.44.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1] invoke_cont.44.i: ; preds = %invoke_cont.43.i - %tmp.198.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.191.i, "struct.llvm::MachineFunction"* %F, bool* null ) - to label %invoke_cont.45.i unwind label %invoke_catch.0.i ; <int> [#uses=0] + %tmp.198.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.191.i, %"struct.llvm::MachineFunction"* %F, i1* null ) + to label %invoke_cont.45.i unwind label %invoke_catch.0.i ; <i32> [#uses=0] invoke_cont.45.i: ; preds = %invoke_cont.44.i - br bool false, label %no_exit.i, label %endif.1.i + br i1 false, label %no_exit.i, label %endif.1.i -no_exit.i: ; preds = %invoke_cont.45.i, %invoke_cont.50.i - %nextArgOffset.0.i.1 = phi int [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ] ; <int> [#uses=1] - invoke void %_Znwj( ) +no_exit.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i + %nextArgOffset.0.i.1 = phi i32 [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ] ; <i32> [#uses=1] + invoke void @_Znwj( ) to label %tmp.0.i.noexc55.i unwind label %invoke_catch.0.i tmp.0.i.noexc55.i: ; preds = %no_exit.i - invoke void %_ZN4llvm12MachineInstrC1Esjbb( ) + invoke void @_ZN4llvm12MachineInstrC1Esjbb( ) to label %invoke_cont.i53.i unwind label %cond_true.i52.i cond_true.i52.i: ; preds = %tmp.0.i.noexc55.i ret void invoke_cont.i53.i: ; preds = %tmp.0.i.noexc55.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) to label %invoke_cont.47.i unwind label %invoke_catch.0.i invoke_cont.47.i: ; preds = %invoke_cont.i53.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( ) to label %invoke_cont.48.i unwind label %invoke_catch.0.i invoke_cont.48.i: ; preds = %invoke_cont.47.i - invoke void %_ZNK4llvm19MachineInstrBuilder7addSImmEi( ) + invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( ) to label %invoke_cont.49.i unwind label %invoke_catch.0.i invoke_cont.49.i: ; preds = %invoke_cont.48.i - invoke void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( ) + invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( ) to label %invoke_cont.50.i unwind label %invoke_catch.0.i invoke_cont.50.i: ; preds = %invoke_cont.49.i - %tmp.221.i = add int %nextArgOffset.0.i.1, %tmp.184.i ; <int> [#uses=1] - br bool false, label %no_exit.i, label %endif.1.i + %tmp.221.i = add i32 %nextArgOffset.0.i.1, %tmp.184.i ; <i32> [#uses=1] + br i1 false, label %no_exit.i, label %endif.1.i -endif.1.i: ; preds = %invoke_cont.33.i, %invoke_cont.36.i, %invoke_cont.45.i, %invoke_cont.50.i +endif.1.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i, %invoke_cont.36.i, %invoke_cont.33.i ret void } - diff --git a/test/Transforms/IndVarsSimplify/2004-04-07-ScalarEvolutionCrash.llx b/test/Transforms/IndVarsSimplify/2004-04-07-ScalarEvolutionCrash.llx index 82212d5..b4eb3db 100644 --- a/test/Transforms/IndVarsSimplify/2004-04-07-ScalarEvolutionCrash.llx +++ b/test/Transforms/IndVarsSimplify/2004-04-07-ScalarEvolutionCrash.llx @@ -1,26 +1,27 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -void %.outPlank_21() { +define void @.outPlank_21() { entry: - br bool false, label %loopexit.0, label %no_exit.0 + br i1 false, label %loopexit.0, label %no_exit.0 -no_exit.0: ; preds = %entry - ret void +no_exit.0: ; preds = %entry + ret void -loopexit.0: ; preds = %entry - br bool false, label %no_exit.1, label %loopexit.1 +loopexit.0: ; preds = %entry + br i1 false, label %no_exit.1, label %loopexit.1 -no_exit.1: ; preds = %loopexit.0, %loopexit.2 - %i.0.0 = phi int [ %inc, %loopexit.2 ], [ 0, %loopexit.0 ] ; <int> [#uses=1] - br bool false, label %loopexit.2, label %no_exit.2 +no_exit.1: ; preds = %loopexit.2, %loopexit.0 + %i.0.0 = phi i32 [ %inc, %loopexit.2 ], [ 0, %loopexit.0 ] ; <i32> [#uses=1] + br i1 false, label %loopexit.2, label %no_exit.2 -no_exit.2: ; preds = %no_exit.1 - ret void +no_exit.2: ; preds = %no_exit.1 + ret void -loopexit.2: ; preds = %no_exit.1 - %inc = add int %i.0.0, 1 ; <int> [#uses=1] - br bool false, label %no_exit.1, label %loopexit.1 +loopexit.2: ; preds = %no_exit.1 + %inc = add i32 %i.0.0, 1 ; <i32> [#uses=1] + br i1 false, label %no_exit.1, label %loopexit.1 -loopexit.1: ; preds = %loopexit.0, %loopexit.2 - ret void +loopexit.1: ; preds = %loopexit.2, %loopexit.0 + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll b/test/Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll index 92a4830..afee7e1 100644 --- a/test/Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll +++ b/test/Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll @@ -1,22 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -void %_ZN5ArrayISt7complexIdEEC2ERK10dim_vector() { +define void @_ZN5ArrayISt7complexIdEEC2ERK10dim_vector() { entry: - %tmp.7 = invoke int %_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector( ) - to label %invoke_cont.0 unwind label %cond_true.1 ; <int> [#uses=2] + %tmp.7 = invoke i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector( ) + to label %invoke_cont.0 unwind label %cond_true.1 ; <i32> [#uses=2] -cond_true.1: ; preds = %entry - unwind +cond_true.1: ; preds = %entry + unwind -invoke_cont.0: ; preds = %entry - %tmp.4.i = cast int %tmp.7 to uint ; <uint> [#uses=0] - %tmp.14.0.i5 = add int %tmp.7, -1 ; <int> [#uses=1] - br label %no_exit.i +invoke_cont.0: ; preds = %entry + %tmp.4.i = bitcast i32 %tmp.7 to i32 ; <i32> [#uses=0] + %tmp.14.0.i5 = add i32 %tmp.7, -1 ; <i32> [#uses=1] + br label %no_exit.i -no_exit.i: ; preds = %no_exit.i, %invoke_cont.0 - %tmp.14.0.i.0 = phi int [ %tmp.14.0.i, %no_exit.i ], [ %tmp.14.0.i5, %invoke_cont.0 ] ; <int> [#uses=1] - %tmp.14.0.i = add int %tmp.14.0.i.0, -1 ; <int> [#uses=1] - br label %no_exit.i +no_exit.i: ; preds = %no_exit.i, %invoke_cont.0 + %tmp.14.0.i.0 = phi i32 [ %tmp.14.0.i, %no_exit.i ], [ %tmp.14.0.i5, %invoke_cont.0 ] ; <i32> [#uses=1] + %tmp.14.0.i = add i32 %tmp.14.0.i.0, -1 ; <i32> [#uses=1] + br label %no_exit.i } -declare int %_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector() +declare i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector() + diff --git a/test/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll b/test/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll index 5ba8bdb..a1beec6 100644 --- a/test/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll +++ b/test/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll @@ -1,61 +1,59 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -implementation ; Functions: +declare void @q_atomic_increment() -declare void %q_atomic_increment() +declare void @_Z9qt_assertPKcS0_i() -declare void %_Z9qt_assertPKcS0_i() - -void %_ZN13QMetaResourceC1EPKh() { +define void @_ZN13QMetaResourceC1EPKh() { entry: - invoke void %_Z9qt_assertPKcS0_i( ) + invoke void @_Z9qt_assertPKcS0_i( ) to label %endif.1 unwind label %then.i.i551 then.i.i551: ; preds = %entry ret void endif.1: ; preds = %entry - br bool false, label %then.2, label %then.i.i + br i1 false, label %then.2, label %then.i.i then.2: ; preds = %endif.1 - invoke void %q_atomic_increment( ) + invoke void @q_atomic_increment( ) to label %loopentry.0 unwind label %invoke_catch.6 invoke_catch.6: ; preds = %then.2 ret void loopentry.0: ; preds = %then.2 - br bool false, label %shortcirc_next.i, label %endif.3 + br i1 false, label %shortcirc_next.i, label %endif.3 endif.3: ; preds = %loopentry.0 ret void shortcirc_next.i: ; preds = %loopentry.0 - br bool false, label %_ZNK7QString2atEi.exit, label %then.i + br i1 false, label %_ZNK7QString2atEi.exit, label %then.i then.i: ; preds = %shortcirc_next.i ret void _ZNK7QString2atEi.exit: ; preds = %shortcirc_next.i - br bool false, label %endif.4, label %then.4 + br i1 false, label %endif.4, label %then.4 then.4: ; preds = %_ZNK7QString2atEi.exit ret void endif.4: ; preds = %_ZNK7QString2atEi.exit - %tmp.115 = load ubyte* null ; <ubyte> [#uses=1] - br bool false, label %loopexit.1, label %no_exit.0 + %tmp.115 = load i8* null ; <i8> [#uses=1] + br i1 false, label %loopexit.1, label %no_exit.0 no_exit.0: ; preds = %no_exit.0, %endif.4 - %bytes_in_len.4.5 = phi ubyte [ %dec, %no_exit.0 ], [ %tmp.115, %endif.4 ] ; <ubyte> [#uses=1] - %off.5.5.in = phi int [ %off.5.5, %no_exit.0 ], [ 0, %endif.4 ] ; <int> [#uses=1] - %off.5.5 = add int %off.5.5.in, 1 ; <int> [#uses=2] - %dec = add ubyte %bytes_in_len.4.5, 255 ; <ubyte> [#uses=2] - %tmp.123631 = seteq ubyte %dec, 0 ; <bool> [#uses=1] - br bool %tmp.123631, label %loopexit.1, label %no_exit.0 + %bytes_in_len.4.5 = phi i8 [ %dec, %no_exit.0 ], [ %tmp.115, %endif.4 ] ; <i8> [#uses=1] + %off.5.5.in = phi i32 [ %off.5.5, %no_exit.0 ], [ 0, %endif.4 ] ; <i32> [#uses=1] + %off.5.5 = add i32 %off.5.5.in, 1 ; <i32> [#uses=2] + %dec = add i8 %bytes_in_len.4.5, -1 ; <i8> [#uses=2] + %tmp.123631 = icmp eq i8 %dec, 0 ; <i1> [#uses=1] + br i1 %tmp.123631, label %loopexit.1, label %no_exit.0 loopexit.1: ; preds = %no_exit.0, %endif.4 - %off.5.in.6 = phi int [ 0, %endif.4 ], [ %off.5.5, %no_exit.0 ] ; <int> [#uses=0] + %off.5.in.6 = phi i32 [ 0, %endif.4 ], [ %off.5.5, %no_exit.0 ] ; <i32> [#uses=0] ret void then.i.i: ; preds = %endif.1 diff --git a/test/Transforms/IndVarsSimplify/2005-02-26-ExitValueCompute.ll b/test/Transforms/IndVarsSimplify/2005-02-26-ExitValueCompute.ll index 1356266..853d5ad 100644 --- a/test/Transforms/IndVarsSimplify/2005-02-26-ExitValueCompute.ll +++ b/test/Transforms/IndVarsSimplify/2005-02-26-ExitValueCompute.ll @@ -1,20 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | \ +; RUN: llvm-as < %s | opt -indvars | llvm-dis | \ ; RUN: grep {ret i32 152} -int %main() { +define i32 @main() { entry: - br label %no_exit + br label %no_exit -no_exit: ; preds = %no_exit, %entry - %i.1.0 = phi int [ 0, %entry ], [ %inc, %no_exit ] ; <int> [#uses=2] - %tmp.4 = setgt int %i.1.0, 50 ; <bool> [#uses=1] - %tmp.7 = select bool %tmp.4, int 100, int 0 ; <int> [#uses=1] - %i.0 = add int %i.1.0, 1 ; <int> [#uses=1] - %inc = add int %i.0, %tmp.7 ; <int> [#uses=3] - %tmp.1 = setlt int %inc, 100 ; <bool> [#uses=1] - br bool %tmp.1, label %no_exit, label %loopexit +no_exit: ; preds = %no_exit, %entry + %i.1.0 = phi i32 [ 0, %entry ], [ %inc, %no_exit ] ; <i32> [#uses=2] + %tmp.4 = icmp sgt i32 %i.1.0, 50 ; <i1> [#uses=1] + %tmp.7 = select i1 %tmp.4, i32 100, i32 0 ; <i32> [#uses=1] + %i.0 = add i32 %i.1.0, 1 ; <i32> [#uses=1] + %inc = add i32 %i.0, %tmp.7 ; <i32> [#uses=3] + %tmp.1 = icmp slt i32 %inc, 100 ; <i1> [#uses=1] + br i1 %tmp.1, label %no_exit, label %loopexit -loopexit: ; preds = %no_exit - ret int %inc +loopexit: ; preds = %no_exit + ret i32 %inc } diff --git a/test/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll b/test/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll index 896482c..ba4db9f 100644 --- a/test/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll +++ b/test/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll @@ -1,36 +1,37 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -void %main() { +define void @main() { entry: - br label %no_exit.1.outer + br label %no_exit.1.outer -no_exit.1.outer: ; preds = %endif.0, %entry - %l_14237116.1.0.ph = phi sbyte [ -46, %entry ], [ 0, %endif.0 ] ; <sbyte> [#uses=1] - %i.0.0.0.ph = phi int [ 0, %entry ], [ %inc.1, %endif.0 ] ; <int> [#uses=1] - br label %no_exit.1 +no_exit.1.outer: ; preds = %endif.0, %entry + %l_14237116.1.0.ph = phi i8 [ -46, %entry ], [ 0, %endif.0 ] ; <i8> [#uses=1] + %i.0.0.0.ph = phi i32 [ 0, %entry ], [ %inc.1, %endif.0 ] ; <i32> [#uses=1] + br label %no_exit.1 -no_exit.1: ; preds = %_Z13func_47880058cc.exit, %no_exit.1.outer - br bool false, label %_Z13func_47880058cc.exit, label %then.i +no_exit.1: ; preds = %_Z13func_47880058cc.exit, %no_exit.1.outer + br i1 false, label %_Z13func_47880058cc.exit, label %then.i -then.i: ; preds = %no_exit.1 - br label %_Z13func_47880058cc.exit +then.i: ; preds = %no_exit.1 + br label %_Z13func_47880058cc.exit -_Z13func_47880058cc.exit: ; preds = %then.i, %no_exit.1 - br bool false, label %then.0, label %no_exit.1 +_Z13func_47880058cc.exit: ; preds = %then.i, %no_exit.1 + br i1 false, label %then.0, label %no_exit.1 -then.0: ; preds = %_Z13func_47880058cc.exit - %tmp.6 = cast sbyte %l_14237116.1.0.ph to ubyte ; <ubyte> [#uses=1] - br bool false, label %endif.0, label %then.1 +then.0: ; preds = %_Z13func_47880058cc.exit + %tmp.6 = bitcast i8 %l_14237116.1.0.ph to i8 ; <i8> [#uses=1] + br i1 false, label %endif.0, label %then.1 -then.1: ; preds = %then.0 - br label %endif.0 +then.1: ; preds = %then.0 + br label %endif.0 -endif.0: ; preds = %then.1, %then.0 - %inc.1 = add int %i.0.0.0.ph, 1 ; <int> [#uses=2] - %tmp.2 = setgt int %inc.1, 99 ; <bool> [#uses=1] - br bool %tmp.2, label %loopexit.0, label %no_exit.1.outer +endif.0: ; preds = %then.1, %then.0 + %inc.1 = add i32 %i.0.0.0.ph, 1 ; <i32> [#uses=2] + %tmp.2 = icmp sgt i32 %inc.1, 99 ; <i1> [#uses=1] + br i1 %tmp.2, label %loopexit.0, label %no_exit.1.outer -loopexit.0: ; preds = %endif.0 - %tmp.28 = cast ubyte %tmp.6 to uint ; <uint> [#uses=0] - ret void +loopexit.0: ; preds = %endif.0 + %tmp.28 = zext i8 %tmp.6 to i32 ; <i32> [#uses=0] + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2005-11-18-Crash.ll b/test/Transforms/IndVarsSimplify/2005-11-18-Crash.ll index 9960e5c..5ee8cea 100644 --- a/test/Transforms/IndVarsSimplify/2005-11-18-Crash.ll +++ b/test/Transforms/IndVarsSimplify/2005-11-18-Crash.ll @@ -1,18 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -%fixtab = external global [29 x [29 x [2 x uint]]] ; <[29 x [29 x [2 x uint]]]*> [#uses=1] +@fixtab = external global [29 x [29 x [2 x i32]]] ; <[29 x [29 x [2 x i32]]]*> [#uses=1] -implementation ; Functions: - -void %init_optabs() { +define void @init_optabs() { entry: - br label %no_exit.0 + br label %no_exit.0 -no_exit.0: ; preds = %no_exit.0, %entry - %p.0.0 = phi uint* [ getelementptr ([29 x [29 x [2 x uint]]]* %fixtab, int 0, int 0, int 0, int 0), %entry ], [ %inc.0, %no_exit.0 ] ; <uint*> [#uses=1] - %inc.0 = getelementptr uint* %p.0.0, int 1 ; <uint*> [#uses=1] - br bool false, label %no_exit.0, label %no_exit.1 +no_exit.0: ; preds = %no_exit.0, %entry + %p.0.0 = phi i32* [ getelementptr ([29 x [29 x [2 x i32]]]* @fixtab, i32 0, i32 0, i32 0, i32 0), %entry ], [ %inc.0, %no_exit.0 ] ; <i32*> [#uses=1] + %inc.0 = getelementptr i32* %p.0.0, i32 1 ; <i32*> [#uses=1] + br i1 false, label %no_exit.0, label %no_exit.1 -no_exit.1: ; preds = %no_exit.0 - ret void +no_exit.1: ; preds = %no_exit.0 + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll b/test/Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll index b2860fd..32abee9 100644 --- a/test/Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll +++ b/test/Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll @@ -1,22 +1,22 @@ ; PR726 -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | \ +; RUN: llvm-as < %s | opt -indvars | llvm-dis | \ ; RUN: grep {ret i32 27} ; Make sure to compute the right exit value based on negative strides. -int %test() { +define i32 @test() { entry: br label %cond_true cond_true: ; preds = %cond_true, %entry - %a.0.0 = phi int [ 10, %entry ], [ %tmp4, %cond_true ] ; <int> [#uses=2] - %b.0.0 = phi int [ 0, %entry ], [ %tmp2, %cond_true ] ; <int> [#uses=1] - %tmp2 = add int %b.0.0, %a.0.0 ; <int> [#uses=2] - %tmp4 = add int %a.0.0, -1 ; <int> [#uses=2] - %tmp = setgt int %tmp4, 7 ; <bool> [#uses=1] - br bool %tmp, label %cond_true, label %bb7 + %a.0.0 = phi i32 [ 10, %entry ], [ %tmp4, %cond_true ] ; <i32> [#uses=2] + %b.0.0 = phi i32 [ 0, %entry ], [ %tmp2, %cond_true ] ; <i32> [#uses=1] + %tmp2 = add i32 %b.0.0, %a.0.0 ; <i32> [#uses=2] + %tmp4 = add i32 %a.0.0, -1 ; <i32> [#uses=2] + %tmp = icmp sgt i32 %tmp4, 7 ; <i1> [#uses=1] + br i1 %tmp, label %cond_true, label %bb7 bb7: ; preds = %cond_true - ret int %tmp2 + ret i32 %tmp2 } diff --git a/test/Transforms/IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll b/test/Transforms/IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll index 1fe8026..986831b 100644 --- a/test/Transforms/IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll +++ b/test/Transforms/IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll @@ -1,21 +1,22 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output -void %get_block() { -endif.0: ; preds = %entry - br label %no_exit.30 +define void @get_block() { +endif.0: + br label %no_exit.30 -no_exit.30: ; preds = %no_exit.30, %endif.0 - %x.12.0 = phi int [ %inc.28, %no_exit.30 ], [ -2, %endif.0 ] ; <int> [#uses=1] - %tmp.583 = load ushort* null ; <ushort> [#uses=1] - %tmp.584 = cast ushort %tmp.583 to int ; <int> [#uses=1] - %tmp.588 = load int* null ; <int> [#uses=1] - %tmp.589 = mul int %tmp.584, %tmp.588 ; <int> [#uses=1] - %tmp.591 = add int %tmp.589, 0 ; <int> [#uses=1] - %inc.28 = add int %x.12.0, 1 ; <int> [#uses=2] - %tmp.565 = setgt int %inc.28, 3 ; <bool> [#uses=1] - br bool %tmp.565, label %loopexit.30, label %no_exit.30 +no_exit.30: ; preds = %no_exit.30, %endif.0 + %x.12.0 = phi i32 [ %inc.28, %no_exit.30 ], [ -2, %endif.0 ] ; <i32> [#uses=1] + %tmp.583 = load i16* null ; <i16> [#uses=1] + %tmp.584 = zext i16 %tmp.583 to i32 ; <i32> [#uses=1] + %tmp.588 = load i32* null ; <i32> [#uses=1] + %tmp.589 = mul i32 %tmp.584, %tmp.588 ; <i32> [#uses=1] + %tmp.591 = add i32 %tmp.589, 0 ; <i32> [#uses=1] + %inc.28 = add i32 %x.12.0, 1 ; <i32> [#uses=2] + %tmp.565 = icmp sgt i32 %inc.28, 3 ; <i1> [#uses=1] + br i1 %tmp.565, label %loopexit.30, label %no_exit.30 -loopexit.30: ; preds = %no_exit.30 - %tmp.591.lcssa = phi int [ %tmp.591, %no_exit.30 ] ; <int> [#uses=0] - ret void +loopexit.30: ; preds = %no_exit.30 + %tmp.591.lcssa = phi i32 [ %tmp.591, %no_exit.30 ] ; <i32> [#uses=0] + ret void } + diff --git a/test/Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll b/test/Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll index 88872f6..6a478ab 100644 --- a/test/Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll +++ b/test/Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll @@ -1,18 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output +; RUN: llvm-as < %s | opt -indvars -disable-output +; ModuleID = '2006-09-20-LFTR-Crash.ll' + %struct.p7prior_s = type { i32, i32, [200 x float], [200 x [7 x float]], i32, [200 x float], [200 x [20 x float]], i32, [200 x float], [200 x [20 x float]] } - %struct.p7prior_s = type { int, int, [200 x float], [200 x [7 x float]], int, [200 x float], [200 x [20 x float]], int, [200 x float], [200 x [20 x float]] } - -implementation ; Functions: - -void %P7DefaultPrior() { +define void @P7DefaultPrior() { entry: - switch int 0, label %UnifiedReturnBlock [ - int 2, label %bb160 - int 3, label %bb + switch i32 0, label %UnifiedReturnBlock [ + i32 2, label %bb160 + i32 3, label %bb ] bb: ; preds = %entry - br bool false, label %cond_true.i, label %sre_malloc.exit + br i1 false, label %cond_true.i, label %sre_malloc.exit cond_true.i: ; preds = %bb unreachable @@ -21,18 +19,18 @@ sre_malloc.exit: ; preds = %bb br label %cond_true cond_true: ; preds = %cond_true66, %cond_true, %sre_malloc.exit - %tmp59 = phi int [ 1, %sre_malloc.exit ], [ %phitmp, %cond_true66 ], [ %tmp59, %cond_true ] ; <int> [#uses=2] - %indvar245.0.ph = phi uint [ 0, %sre_malloc.exit ], [ %indvar.next246, %cond_true66 ], [ %indvar245.0.ph, %cond_true ] ; <uint> [#uses=2] - br bool false, label %bb57, label %cond_true + %tmp59 = phi i32 [ 1, %sre_malloc.exit ], [ %phitmp, %cond_true66 ], [ %tmp59, %cond_true ] ; <i32> [#uses=2] + %indvar245.0.ph = phi i32 [ 0, %sre_malloc.exit ], [ %indvar.next246, %cond_true66 ], [ %indvar245.0.ph, %cond_true ] ; <i32> [#uses=2] + br i1 false, label %bb57, label %cond_true bb57: ; preds = %cond_true - %tmp65 = setgt int 0, %tmp59 ; <bool> [#uses=1] - %indvar.next246 = add uint %indvar245.0.ph, 1 ; <uint> [#uses=2] - br bool %tmp65, label %cond_true66, label %bb69 + %tmp65 = icmp sgt i32 0, %tmp59 ; <i1> [#uses=1] + %indvar.next246 = add i32 %indvar245.0.ph, 1 ; <i32> [#uses=2] + br i1 %tmp65, label %cond_true66, label %bb69 cond_true66: ; preds = %bb57 - %q.1.0 = cast uint %indvar.next246 to int ; <int> [#uses=1] - %phitmp = add int %q.1.0, 1 ; <int> [#uses=1] + %q.1.0 = bitcast i32 %indvar.next246 to i32 ; <i32> [#uses=1] + %phitmp = add i32 %q.1.0, 1 ; <i32> [#uses=1] br label %cond_true bb69: ; preds = %bb57 diff --git a/test/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll b/test/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll index 4d2a29b..903e81d 100644 --- a/test/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll +++ b/test/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll @@ -1,31 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output - +; RUN: llvm-as < %s | opt -indvars -disable-output target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-apple-darwin8" - %struct.vorbis_dsp_state = type { int, %struct.vorbis_info*, float**, float**, int, int, int, int, int, int, int, int, int, long, long, long, long, long, long, sbyte* } - %struct.vorbis_info = type { int, int, int, int, int, int, int, sbyte* } - -implementation ; Functions: + %struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* } + %struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* } -void %_ve_envelope_search() { +define void @_ve_envelope_search() { entry: - br bool false, label %cond_true27, label %bb137 + br i1 false, label %cond_true27, label %bb137 cond_true27: ; preds = %entry - br bool false, label %cond_true52, label %bb80 + br i1 false, label %cond_true52, label %bb80 cond_true52: ; preds = %cond_true27 - %tmp152.i = bitcast float 0.000000e+00 to uint ; <uint> [#uses=1] + %tmp152.i = bitcast float 0.000000e+00 to i32 ; <i32> [#uses=1] br label %cond_next182.i cond_next182.i: ; preds = %cond_next182.i, %cond_true52 - %decay.i.0 = phi uint [ %tmp195.i, %cond_next182.i ], [ %tmp152.i, %cond_true52 ] ; <uint> [#uses=1] - %tmp194.i53 = bitcast uint %decay.i.0 to float ; <float> [#uses=1] + %decay.i.0 = phi i32 [ %tmp195.i.upgrd.1, %cond_next182.i ], [ %tmp152.i, %cond_true52 ] ; <i32> [#uses=1] + %tmp194.i53 = bitcast i32 %decay.i.0 to float ; <float> [#uses=1] %tmp195.i = sub float %tmp194.i53, 8.000000e+00 ; <float> [#uses=1] - %tmp195.i = bitcast float %tmp195.i to uint ; <uint> [#uses=1] - br bool false, label %cond_next182.i, label %bb418.i.preheader + %tmp195.i.upgrd.1 = bitcast float %tmp195.i to i32 ; <i32> [#uses=1] + br i1 false, label %cond_next182.i, label %bb418.i.preheader bb418.i.preheader: ; preds = %cond_next182.i ret void diff --git a/test/Transforms/IndVarsSimplify/complex-scev.ll b/test/Transforms/IndVarsSimplify/complex-scev.ll index 7d7e8a3..4bfc4e9 100644 --- a/test/Transforms/IndVarsSimplify/complex-scev.ll +++ b/test/Transforms/IndVarsSimplify/complex-scev.ll @@ -1,28 +1,29 @@ ; The i induction variable looks like a wrap-around, but it really is just ; a simple affine IV. Make sure that indvars eliminates it. -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep phi | count 1 +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep phi | count 1 -void %foo() { +define void @foo() { entry: - br label %bb6 - -bb6: ; preds = %cond_true, %entry - %j.0 = phi int [ 1, %entry ], [ %tmp5, %cond_true ] ; <int> [#uses=3] - %i.0 = phi int [ 0, %entry ], [ %j.0, %cond_true ] ; <int> [#uses=1] - %tmp7 = call int (...)* %foo2( ) ; <int> [#uses=1] - %tmp = setne int %tmp7, 0 ; <bool> [#uses=1] - br bool %tmp, label %cond_true, label %return - -cond_true: ; preds = %bb6 - %tmp2 = call int (...)* %bar( int %i.0, int %j.0 ) ; <int> [#uses=0] - %tmp5 = add int %j.0, 1 ; <int> [#uses=1] - br label %bb6 - -return: ; preds = %bb6 - ret void + br label %bb6 + +bb6: ; preds = %cond_true, %entry + %j.0 = phi i32 [ 1, %entry ], [ %tmp5, %cond_true ] ; <i32> [#uses=3] + %i.0 = phi i32 [ 0, %entry ], [ %j.0, %cond_true ] ; <i32> [#uses=1] + %tmp7 = call i32 (...)* @foo2( ) ; <i32> [#uses=1] + %tmp = icmp ne i32 %tmp7, 0 ; <i1> [#uses=1] + br i1 %tmp, label %cond_true, label %return + +cond_true: ; preds = %bb6 + %tmp2 = call i32 (...)* @bar( i32 %i.0, i32 %j.0 ) ; <i32> [#uses=0] + %tmp5 = add i32 %j.0, 1 ; <i32> [#uses=1] + br label %bb6 + +return: ; preds = %bb6 + ret void } -declare int %bar(...) +declare i32 @bar(...) + +declare i32 @foo2(...) -declare int %foo2(...) diff --git a/test/Transforms/IndVarsSimplify/exit_value_tests.llx b/test/Transforms/IndVarsSimplify/exit_value_tests.llx index 4e15fc3..5e26ea2 100644 --- a/test/Transforms/IndVarsSimplify/exit_value_tests.llx +++ b/test/Transforms/IndVarsSimplify/exit_value_tests.llx @@ -2,102 +2,113 @@ ; these loops all have predictable exit values we can replace the use outside ; of the loop with a closed-form computation, making the loop dead. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -adce -simplifycfg | \ +; RUN: llvm-as < %s | opt -indvars -adce -simplifycfg | \ ; RUN: llvm-dis | not grep br -int %polynomial_constant() { - br label %Loop -Loop: - %A1 = phi int [0, %0], [%A2, %Loop] - %B1 = phi int [0, %0], [%B2, %Loop] - %A2 = add int %A1, 1 - %B2 = add int %B1, %A1 - - %C = seteq int %A1, 1000 - br bool %C, label %Out, label %Loop -Out: - ret int %B2 +define i32 @polynomial_constant() { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ] ; <i32> [#uses=3] + %B1 = phi i32 [ 0, %0 ], [ %B2, %Loop ] ; <i32> [#uses=1] + %A2 = add i32 %A1, 1 ; <i32> [#uses=1] + %B2 = add i32 %B1, %A1 ; <i32> [#uses=2] + %C = icmp eq i32 %A1, 1000 ; <i1> [#uses=1] + br i1 %C, label %Out, label %Loop + +Out: ; preds = %Loop + ret i32 %B2 } -int %NSquare(int %N) { +define i32 @NSquare(i32 %N) { +; <label>:0 br label %Loop -Loop: - %X = phi int [0, %0], [%X2, %Loop] - %X2 = add int %X, 1 - %c = seteq int %X, %N - br bool %c, label %Out, label %Loop -Out: - %Y = mul int %X, %X - ret int %Y + +Loop: ; preds = %Loop, %0 + %X = phi i32 [ 0, %0 ], [ %X2, %Loop ] ; <i32> [#uses=4] + %X2 = add i32 %X, 1 ; <i32> [#uses=1] + %c = icmp eq i32 %X, %N ; <i1> [#uses=1] + br i1 %c, label %Out, label %Loop + +Out: ; preds = %Loop + %Y = mul i32 %X, %X ; <i32> [#uses=1] + ret i32 %Y } -int %NSquareOver2(int %N) { +define i32 @NSquareOver2(i32 %N) { +; <label>:0 br label %Loop -Loop: - %X = phi int [0, %0], [%X2, %Loop] - %Y = phi int [15, %0], [%Y2, %Loop] ;; include offset of 15 for yuks - %Y2 = add int %Y, %X +Loop: ; preds = %Loop, %0 + %X = phi i32 [ 0, %0 ], [ %X2, %Loop ] ; <i32> [#uses=3] + %Y = phi i32 [ 15, %0 ], [ %Y2, %Loop ] ; <i32> [#uses=1] + %Y2 = add i32 %Y, %X ; <i32> [#uses=2] + %X2 = add i32 %X, 1 ; <i32> [#uses=1] + %c = icmp eq i32 %X, %N ; <i1> [#uses=1] + br i1 %c, label %Out, label %Loop - %X2 = add int %X, 1 - %c = seteq int %X, %N - br bool %c, label %Out, label %Loop -Out: - ret int %Y2 +Out: ; preds = %Loop + ret i32 %Y2 } -int %strength_reduced() { - br label %Loop -Loop: - %A1 = phi int [0, %0], [%A2, %Loop] - %B1 = phi int [0, %0], [%B2, %Loop] - %A2 = add int %A1, 1 - %B2 = add int %B1, %A1 - - %C = seteq int %A1, 1000 - br bool %C, label %Out, label %Loop -Out: - ret int %B2 +define i32 @strength_reduced() { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ] ; <i32> [#uses=3] + %B1 = phi i32 [ 0, %0 ], [ %B2, %Loop ] ; <i32> [#uses=1] + %A2 = add i32 %A1, 1 ; <i32> [#uses=1] + %B2 = add i32 %B1, %A1 ; <i32> [#uses=2] + %C = icmp eq i32 %A1, 1000 ; <i1> [#uses=1] + br i1 %C, label %Out, label %Loop + +Out: ; preds = %Loop + ret i32 %B2 } -int %chrec_equals() { +define i32 @chrec_equals() { entry: - br label %no_exit -no_exit: - %i0 = phi int [ 0, %entry ], [ %i1, %no_exit ] - %ISq = mul int %i0, %i0 - %i1 = add int %i0, 1 - %tmp.1 = setne int %ISq, 10000 ; while (I*I != 1000) - br bool %tmp.1, label %no_exit, label %loopexit -loopexit: - ret int %i1 + br label %no_exit + +no_exit: ; preds = %no_exit, %entry + %i0 = phi i32 [ 0, %entry ], [ %i1, %no_exit ] ; <i32> [#uses=3] + %ISq = mul i32 %i0, %i0 ; <i32> [#uses=1] + %i1 = add i32 %i0, 1 ; <i32> [#uses=2] + %tmp.1 = icmp ne i32 %ISq, 10000 ; <i1> [#uses=1] + br i1 %tmp.1, label %no_exit, label %loopexit + +loopexit: ; preds = %no_exit + ret i32 %i1 } -;; We should recognize B1 as being a recurrence, allowing us to compute the -;; trip count and eliminate the loop. -short %cast_chrec_test() { - br label %Loop -Loop: - %A1 = phi int [0, %0], [%A2, %Loop] - %B1 = cast int %A1 to short - %A2 = add int %A1, 1 - - %C = seteq short %B1, 1000 - br bool %C, label %Out, label %Loop -Out: - ret short %B1 +define i16 @cast_chrec_test() { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ] ; <i32> [#uses=2] + %B1 = trunc i32 %A1 to i16 ; <i16> [#uses=2] + %A2 = add i32 %A1, 1 ; <i32> [#uses=1] + %C = icmp eq i16 %B1, 1000 ; <i1> [#uses=1] + br i1 %C, label %Out, label %Loop + +Out: ; preds = %Loop + ret i16 %B1 } -uint %linear_div_fold() { ;; for (i = 4; i != 68; i += 8) (exit with i/2) +define i32 @linear_div_fold() { entry: - br label %loop -loop: - %i = phi uint [ 4, %entry ], [ %i.next, %loop ] - %i.next = add uint %i, 8 - %RV = div uint %i, 2 - %c = setne uint %i, 68 - br bool %c, label %loop, label %loopexit -loopexit: - ret uint %RV -} + br label %loop +loop: ; preds = %loop, %entry + %i = phi i32 [ 4, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 8 ; <i32> [#uses=1] + %RV = udiv i32 %i, 2 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 68 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %RV +} diff --git a/test/Transforms/IndVarsSimplify/lftr_simple.llx b/test/Transforms/IndVarsSimplify/lftr_simple.llx index 2265e57..3f7c289 100644 --- a/test/Transforms/IndVarsSimplify/lftr_simple.llx +++ b/test/Transforms/IndVarsSimplify/lftr_simple.llx @@ -1,23 +1,22 @@ ; LFTR should eliminate the need for the computation of i*i completely. It ; is only used to compute the exit value. -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -dce | llvm-dis | not grep mul +; RUN: llvm-as < %s | opt -indvars -dce | llvm-dis | not grep mul -%A = external global int +@A = external global i32 ; <i32*> [#uses=1] -implementation - -int %quadratic_setlt() { ;; for (i = 7; i*i < 1000; ++i) +define i32 @quadratic_setlt() { entry: br label %loop -loop: - %i = phi int [ 7, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 1 - store int %i, int* %A - - %i2 = mul int %i, %i - %c = setlt int %i2, 1000 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 7, %entry ], [ %i.next, %loop ] ; <i32> [#uses=5] + %i.next = add i32 %i, 1 ; <i32> [#uses=1] + store i32 %i, i32* @A + %i2 = mul i32 %i, %i ; <i32> [#uses=1] + %c = icmp slt i32 %i2, 1000 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } diff --git a/test/Transforms/IndVarsSimplify/loop_evaluate_1.ll b/test/Transforms/IndVarsSimplify/loop_evaluate_1.ll index ead9b91..ffff30a 100644 --- a/test/Transforms/IndVarsSimplify/loop_evaluate_1.ll +++ b/test/Transforms/IndVarsSimplify/loop_evaluate_1.ll @@ -1,21 +1,21 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -adce -simplifycfg | llvm-dis | not grep br +; RUN: llvm-as < %s | opt -indvars -adce -simplifycfg | llvm-dis | not grep br ; ; Testcase distilled from 256.bzip2 -int %main() { +define i32 @main() { entry: br label %loopentry -loopentry: ; preds = %entry, %loopentry - %indvar1 = phi uint [ 0, %entry ], [ %indvar.next2, %loopentry ] ; <uint> [#uses=1] - %h.0 = phi int [ %tmp.2, %loopentry ], [ 4, %entry ] ; <int> [#uses=1] - %tmp.1 = mul int %h.0, 3 ; <int> [#uses=1] - %tmp.2 = add int %tmp.1, 1 ; <int> [#uses=1] - %indvar.next2 = add uint %indvar1, 1 ; <uint> [#uses=2] - %exitcond3 = setne uint %indvar.next2, 4 ; <bool> [#uses=1] - br bool %exitcond3, label %loopentry, label %loopexit +loopentry: ; preds = %loopentry, %entry + %indvar1 = phi i32 [ 0, %entry ], [ %indvar.next2, %loopentry ] ; <i32> [#uses=1] + %h.0 = phi i32 [ %tmp.2, %loopentry ], [ 4, %entry ] ; <i32> [#uses=1] + %tmp.1 = mul i32 %h.0, 3 ; <i32> [#uses=1] + %tmp.2 = add i32 %tmp.1, 1 ; <i32> [#uses=2] + %indvar.next2 = add i32 %indvar1, 1 ; <i32> [#uses=2] + %exitcond3 = icmp ne i32 %indvar.next2, 4 ; <i1> [#uses=1] + br i1 %exitcond3, label %loopentry, label %loopexit loopexit: ; preds = %loopentry - ret int %tmp.2 + ret i32 %tmp.2 } diff --git a/test/Transforms/IndVarsSimplify/pointer-indvars.ll b/test/Transforms/IndVarsSimplify/pointer-indvars.ll index 57f7d24..c9da157 100644 --- a/test/Transforms/IndVarsSimplify/pointer-indvars.ll +++ b/test/Transforms/IndVarsSimplify/pointer-indvars.ll @@ -1,14 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep indvar +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar +@G = global i32* null ; <i32**> [#uses=1] +@Array = external global [40 x i32] ; <[40 x i32]*> [#uses=1] -%G = global int* null +define void @test() { +; <label>:0 + br label %Loop -%Array = external global [40 x int] - -void %test() { - br label %Loop -Loop: - %X = phi int* [getelementptr ([40 x int]* %Array, long 0, long 0), %0], [%X.next, %Loop] - %X.next = getelementptr int* %X, long 1 - store int* %X, int** %G - br label %Loop +Loop: ; preds = %Loop, %0 + %X = phi i32* [ getelementptr ([40 x i32]* @Array, i64 0, i64 0), %0 ], [ %X.next, %Loop ] ; <i32*> [#uses=2] + %X.next = getelementptr i32* %X, i64 1 ; <i32*> [#uses=1] + store i32* %X, i32** @G + br label %Loop } + diff --git a/test/Transforms/IndVarsSimplify/subtract.ll b/test/Transforms/IndVarsSimplify/subtract.ll index 9cff198..51065cc 100644 --- a/test/Transforms/IndVarsSimplify/subtract.ll +++ b/test/Transforms/IndVarsSimplify/subtract.ll @@ -1,12 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars | llvm-dis | grep indvar +; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar -%G = global long 0 +@G = global i64 0 ; <i64*> [#uses=1] -void %test(long %V) { - br label %Loop -Loop: - %X = phi long [1, %0], [%X.next, %Loop] - %X.next = sub long %X, %V - store long %X, long* %G - br label %Loop +define void @test(i64 %V) { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %X = phi i64 [ 1, %0 ], [ %X.next, %Loop ] ; <i64> [#uses=2] + %X.next = sub i64 %X, %V ; <i64> [#uses=1] + store i64 %X, i64* @G + br label %Loop } + diff --git a/test/Transforms/IndVarsSimplify/tripcount_compute.llx b/test/Transforms/IndVarsSimplify/tripcount_compute.llx index 733fa1d..1abc82d 100644 --- a/test/Transforms/IndVarsSimplify/tripcount_compute.llx +++ b/test/Transforms/IndVarsSimplify/tripcount_compute.llx @@ -1,90 +1,100 @@ -; These tests ensure that we can compute the trip count of various forms of +; These tests ensure that we can compute the trip count of various forms of ; loops. If the trip count of the loop is computable, then we will know what ; the exit value of the loop will be for some value, allowing us to substitute ; it directly into users outside of the loop, making the loop dead. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -adce -simplifycfg | llvm-dis | not grep br +; RUN: llvm-as < %s | opt -indvars -adce -simplifycfg | llvm-dis | not grep br -int %linear_setne() { ;; for (i = 0; i != 100; ++i) +define i32 @linear_setne() { entry: br label %loop -loop: - %i = phi int [ 0, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 1 - %c = setne int %i, 100 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 0, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 1 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 100 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } -int %linear_setne_2() { ;; for (i = 0; i != 100; i += 2) +define i32 @linear_setne_2() { entry: br label %loop -loop: - %i = phi int [ 0, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 2 - %c = setne int %i, 100 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i -} +loop: ; preds = %loop, %entry + %i = phi i32 [ 0, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 2 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 100 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i +} -int %linear_setne_overflow() { ;; for (i = 1024; i != 0; i += 1024) +define i32 @linear_setne_overflow() { entry: br label %loop -loop: - %i = phi int [ 1024, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 1024 - %c = setne int %i, 0 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 1024, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 1024 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 0 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } -int %linear_setlt() { ;; for (i = 0; i < 100; ++i) +define i32 @linear_setlt() { entry: br label %loop -loop: - %i = phi int [ 0, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 1 - %c = setlt int %i, 100 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 0, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 1 ; <i32> [#uses=1] + %c = icmp slt i32 %i, 100 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } -int %quadratic_setlt() { ;; for (i = 7; i*i < 1000; i+=3) +define i32 @quadratic_setlt() { entry: - br label %loop -loop: - %i = phi int [ 7, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 3 - %i2 = mul int %i, %i - %c = setlt int %i2, 1000 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + br label %loop + +loop: ; preds = %loop, %entry + %i = phi i32 [ 7, %entry ], [ %i.next, %loop ] ; <i32> [#uses=4] + %i.next = add i32 %i, 3 ; <i32> [#uses=1] + %i2 = mul i32 %i, %i ; <i32> [#uses=1] + %c = icmp slt i32 %i2, 1000 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } -;; Chained loop test - The exit value of the second loop depends on the exit -;; value of the first being computed. -int %chained() { +define i32 @chained() { entry: br label %loop -loop: ;; for (i = 0; i != 100; ++i) - %i = phi int [ 0, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 1 - %c = setne int %i, 100 - br bool %c, label %loop, label %loopexit -loopexit: + +loop: ; preds = %loop, %entry + %i = phi i32 [ 0, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 1 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 100 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop br label %loop2 -loop2: ;; for (j = i; j != 200; ++j) - %j = phi int [ %i, %loopexit ], [ %j.next, %loop2 ] - %j.next = add int %j, 1 - %c2 = setne int %j, 200 - br bool %c2, label %loop2, label %loopexit2 -loopexit2: - ret int %j -} +loop2: ; preds = %loop2, %loopexit + %j = phi i32 [ %i, %loopexit ], [ %j.next, %loop2 ] ; <i32> [#uses=3] + %j.next = add i32 %j, 1 ; <i32> [#uses=1] + %c2 = icmp ne i32 %j, 200 ; <i1> [#uses=1] + br i1 %c2, label %loop2, label %loopexit2 + +loopexit2: ; preds = %loop2 + ret i32 %j +} diff --git a/test/Transforms/IndVarsSimplify/tripcount_infinite.llx b/test/Transforms/IndVarsSimplify/tripcount_infinite.llx index 8a7b27c..d5965f4 100644 --- a/test/Transforms/IndVarsSimplify/tripcount_infinite.llx +++ b/test/Transforms/IndVarsSimplify/tripcount_infinite.llx @@ -1,32 +1,38 @@ ; These tests have an infinite trip count. We obviously shouldn't remove the ; loops! :) ; -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -adce -simplifycfg | llvm-dis | grep icmp | wc -l > %t2 -; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep icmp | wc -l > %t1 +; RUN: llvm-as < %s | opt -indvars -adce -simplifycfg | llvm-dis | grep icmp | wc -l > %t2 +; RUN: llvm-as < %s | llvm-dis | grep icmp | wc -l > %t1 ; RUN: diff %t1 %t2 -int %infinite_linear() { ;; test for (i = 1; i != 100; i += 2) +;; test for (i = 1; i != 100; i += 2) +define i32 @infinite_linear() { entry: br label %loop -loop: - %i = phi int [ 1, %entry ], [ %i.next, %loop ] - %i.next = add int %i, 2 - %c = setne int %i, 100 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 1, %entry ], [ %i.next, %loop ] ; <i32> [#uses=3] + %i.next = add i32 %i, 2 ; <i32> [#uses=1] + %c = icmp ne i32 %i, 100 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } -int %infinite_quadratic() { ;; test for (i = 1; i*i != 63; ++i) +;; test for (i = 1; i*i != 63; ++i) +define i32 @infinite_quadratic() { entry: br label %loop -loop: - %i = phi int [ 1, %entry ], [ %i.next, %loop ] - %isquare = mul int %i, %i - %i.next = add int %i, 1 - %c = setne int %isquare, 63 - br bool %c, label %loop, label %loopexit -loopexit: - ret int %i + +loop: ; preds = %loop, %entry + %i = phi i32 [ 1, %entry ], [ %i.next, %loop ] ; <i32> [#uses=4] + %isquare = mul i32 %i, %i ; <i32> [#uses=1] + %i.next = add i32 %i, 1 ; <i32> [#uses=1] + %c = icmp ne i32 %isquare, 63 ; <i1> [#uses=1] + br i1 %c, label %loop, label %loopexit + +loopexit: ; preds = %loop + ret i32 %i } diff --git a/test/Transforms/IndVarsSimplify/variable-stride-ivs.ll b/test/Transforms/IndVarsSimplify/variable-stride-ivs.ll index e112757..dc86f1e 100644 --- a/test/Transforms/IndVarsSimplify/variable-stride-ivs.ll +++ b/test/Transforms/IndVarsSimplify/variable-stride-ivs.ll @@ -1,38 +1,37 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -instcombine | llvm-dis | \ +; RUN: llvm-as < %s | opt -indvars -instcombine | llvm-dis | \ ; RUN: grep {store i32 0} -; END. ; Test that -indvars can reduce variable stride IVs. If it can reduce variable ; stride iv's, it will make %iv. and %m.0.0 isomorphic to each other without ; cycles, allowing the tmp.21 subtraction to be eliminated. -void %vnum_test8(int* %data) { +define void @vnum_test8(i32* %data) { entry: - %tmp.1 = getelementptr int* %data, int 3 ; <int*> [#uses=1] - %tmp.2 = load int* %tmp.1 ; <int> [#uses=2] - %tmp.4 = getelementptr int* %data, int 4 ; <int*> [#uses=1] - %tmp.5 = load int* %tmp.4 ; <int> [#uses=2] - %tmp.8 = getelementptr int* %data, int 2 ; <int*> [#uses=1] - %tmp.9 = load int* %tmp.8 ; <int> [#uses=3] - %tmp.125 = setgt int %tmp.2, 0 ; <bool> [#uses=1] - br bool %tmp.125, label %no_exit.preheader, label %return + %tmp.1 = getelementptr i32* %data, i32 3 ; <i32*> [#uses=1] + %tmp.2 = load i32* %tmp.1 ; <i32> [#uses=2] + %tmp.4 = getelementptr i32* %data, i32 4 ; <i32*> [#uses=1] + %tmp.5 = load i32* %tmp.4 ; <i32> [#uses=2] + %tmp.8 = getelementptr i32* %data, i32 2 ; <i32*> [#uses=1] + %tmp.9 = load i32* %tmp.8 ; <i32> [#uses=3] + %tmp.125 = icmp sgt i32 %tmp.2, 0 ; <i1> [#uses=1] + br i1 %tmp.125, label %no_exit.preheader, label %return no_exit.preheader: ; preds = %entry - %tmp.16 = getelementptr int* %data, int %tmp.9 ; <int*> [#uses=1] + %tmp.16 = getelementptr i32* %data, i32 %tmp.9 ; <i32*> [#uses=1] br label %no_exit no_exit: ; preds = %no_exit, %no_exit.preheader - %iv.ui = phi uint [ 0, %no_exit.preheader ], [ %iv..inc.ui, %no_exit ] ; <uint> [#uses=1] - %iv. = phi int [ %tmp.5, %no_exit.preheader ], [ %iv..inc, %no_exit ] ; <int> [#uses=2] - %m.0.0 = phi int [ %tmp.5, %no_exit.preheader ], [ %tmp.24, %no_exit ] ; <int> [#uses=2] - store int 2, int* %tmp.16 - %tmp.21 = sub int %m.0.0, %iv. ; <int> [#uses=1] - store int %tmp.21, int* %data - %tmp.24 = add int %m.0.0, %tmp.9 ; <int> [#uses=1] - %iv..inc = add int %tmp.9, %iv. ; <int> [#uses=1] - %iv..inc.ui = add uint %iv.ui, 1 ; <uint> [#uses=2] - %iv..inc1 = cast uint %iv..inc.ui to int ; <int> [#uses=1] - %tmp.12 = setlt int %iv..inc1, %tmp.2 ; <bool> [#uses=1] - br bool %tmp.12, label %no_exit, label %return.loopexit + %iv.ui = phi i32 [ 0, %no_exit.preheader ], [ %iv..inc.ui, %no_exit ] ; <i32> [#uses=1] + %iv. = phi i32 [ %tmp.5, %no_exit.preheader ], [ %iv..inc, %no_exit ] ; <i32> [#uses=2] + %m.0.0 = phi i32 [ %tmp.5, %no_exit.preheader ], [ %tmp.24, %no_exit ] ; <i32> [#uses=2] + store i32 2, i32* %tmp.16 + %tmp.21 = sub i32 %m.0.0, %iv. ; <i32> [#uses=1] + store i32 %tmp.21, i32* %data + %tmp.24 = add i32 %m.0.0, %tmp.9 ; <i32> [#uses=1] + %iv..inc = add i32 %tmp.9, %iv. ; <i32> [#uses=1] + %iv..inc.ui = add i32 %iv.ui, 1 ; <i32> [#uses=2] + %iv..inc1 = bitcast i32 %iv..inc.ui to i32 ; <i32> [#uses=1] + %tmp.12 = icmp slt i32 %iv..inc1, %tmp.2 ; <i1> [#uses=1] + br i1 %tmp.12, label %no_exit, label %return.loopexit return.loopexit: ; preds = %no_exit br label %return diff --git a/test/Transforms/Inline/2003-09-14-InlineValue.ll b/test/Transforms/Inline/2003-09-14-InlineValue.ll index 48d5633..edc9b47 100644 --- a/test/Transforms/Inline/2003-09-14-InlineValue.ll +++ b/test/Transforms/Inline/2003-09-14-InlineValue.ll @@ -1,20 +1,21 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output -declare int %External() +declare i32 @External() -implementation - -internal int %Callee() { - %I = call int %External() - %J = add int %I, %I - ret int %J +define internal i32 @Callee() { + %I = call i32 @External( ) ; <i32> [#uses=2] + %J = add i32 %I, %I ; <i32> [#uses=1] + ret i32 %J } -int %Caller() { - %V = invoke int %Callee() to label %Ok except label %Bad -Ok: - ret int %V -Bad: - ret int 0 +define i32 @Caller() { + %V = invoke i32 @Callee( ) + to label %Ok unwind label %Bad ; <i32> [#uses=1] + +Ok: ; preds = %0 + ret i32 %V + +Bad: ; preds = %0 + ret i32 0 } diff --git a/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll b/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll index 6e4d1b3..d57aee0 100644 --- a/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll +++ b/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll @@ -1,17 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output -implementation +; RUN: llvm-as < %s | opt -inline -disable-output -int %main() { +define i32 @main() { entry: - invoke void %__main( ) - to label %LongJmpBlkPre except label %LongJmpBlkPre + invoke void @__main( ) + to label %LongJmpBlkPre unwind label %LongJmpBlkPre -LongJmpBlkPre: - %i.3 = phi uint [ 0, %entry ], [ 0, %entry] - ret int 0 +LongJmpBlkPre: ; preds = %entry, %entry + %i.3 = phi i32 [ 0, %entry ], [ 0, %entry ] ; <i32> [#uses=0] + ret i32 0 } -void %__main() { - ret void +define void @__main() { + ret void } diff --git a/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll b/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll index e73199c..d75999b 100644 --- a/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll +++ b/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll @@ -1,26 +1,25 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output -implementation - -int %main() { +define i32 @main() { entry: - invoke void %__main( ) - to label %Call2Invoke except label %LongJmpBlkPre + invoke void @__main( ) + to label %Call2Invoke unwind label %LongJmpBlkPre -Call2Invoke: - br label %LongJmpBlkPre +Call2Invoke: ; preds = %entry + br label %LongJmpBlkPre -LongJmpBlkPre: - %i.3 = phi uint [ 0, %entry ], [ 0, %Call2Invoke ] ; <uint> [#uses=0] - ret int 0 +LongJmpBlkPre: ; preds = %Call2Invoke, %entry + %i.3 = phi i32 [ 0, %entry ], [ 0, %Call2Invoke ] ; <i32> [#uses=0] + ret i32 0 } -void %__main() { - call void %__llvm_getGlobalCtors( ) - call void %__llvm_getGlobalDtors( ) - ret void +define void @__main() { + call void @__llvm_getGlobalCtors( ) + call void @__llvm_getGlobalDtors( ) + ret void } -declare void %__llvm_getGlobalCtors() +declare void @__llvm_getGlobalCtors() + +declare void @__llvm_getGlobalDtors() -declare void %__llvm_getGlobalDtors() diff --git a/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll b/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll index 774639b..09d516f 100644 --- a/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll +++ b/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll @@ -1,24 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output -implementation +; RUN: llvm-as < %s | opt -inline -disable-output -int %main() { +define i32 @main() { entry: - invoke void %__main( ) - to label %else except label %RethrowExcept + invoke void @__main( ) + to label %else unwind label %RethrowExcept -else: - %i.2 = phi int [ 36, %entry ], [ %i.2, %LJDecisionBB ] - br label %LJDecisionBB +else: ; preds = %LJDecisionBB, %entry + %i.2 = phi i32 [ 36, %entry ], [ %i.2, %LJDecisionBB ] ; <i32> [#uses=1] + br label %LJDecisionBB -LJDecisionBB: - br label %else +LJDecisionBB: ; preds = %else + br label %else -RethrowExcept: - ret int 0 +RethrowExcept: ; preds = %entry + ret i32 0 } -void %__main() { - ret void +define void @__main() { + ret void } diff --git a/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll b/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll index ca163ed..6b6cf06 100644 --- a/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll +++ b/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll @@ -1,19 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output -implementation ; Functions: - -int %reload() { +define i32 @reload() { reloadentry: - br label %A -A: - call void %callee( ) - ret int 0 + br label %A + +A: ; preds = %reloadentry + call void @callee( ) + ret i32 0 } -internal void %callee() { +define internal void @callee() { entry: - %X = alloca sbyte, uint 0 - %Y = cast int 0 to uint - %Z = alloca sbyte, uint %Y - ret void + %X = alloca i8, i32 0 ; <i8*> [#uses=0] + %Y = bitcast i32 0 to i32 ; <i32> [#uses=1] + %Z = alloca i8, i32 %Y ; <i8*> [#uses=0] + ret void } + diff --git a/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll b/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll index 785a425..675454e 100644 --- a/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll +++ b/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll @@ -2,18 +2,19 @@ ; node in the exception destination, and the inlined function contains an ; unwind instruction. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output -implementation - -linkonce void %foo() { - unwind +define linkonce void @foo() { + unwind } -int %test() { +define i32 @test() { BB1: - invoke void %foo() to label %Cont except label %Cont -Cont: - %A = phi int [ 0, %BB1], [0, %BB1] - ret int %A + invoke void @foo( ) + to label %Cont unwind label %Cont + +Cont: ; preds = %BB1, %BB1 + %A = phi i32 [ 0, %BB1 ], [ 0, %BB1 ] ; <i32> [#uses=1] + ret i32 %A } + diff --git a/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll b/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll index e1ecaed..8a2f8e2 100644 --- a/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll +++ b/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll @@ -1,21 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output ; Inlining the first call caused the inliner function to delete the second ; call. Then the inliner tries to inline the second call, which no longer ; exists. -implementation - -internal void %Callee1() { - unwind +define internal void @Callee1() { + unwind } -void %Callee2() { - ret void +define void @Callee2() { + ret void } -void %caller() { - call void %Callee1() - call void %Callee2() - ret void +define void @caller() { + call void @Callee1( ) + call void @Callee2( ) + ret void } + diff --git a/test/Transforms/Inline/2004-04-20-InlineLinkOnce.llx b/test/Transforms/Inline/2004-04-20-InlineLinkOnce.llx index 4fab1c9..d9f09a0 100644 --- a/test/Transforms/Inline/2004-04-20-InlineLinkOnce.llx +++ b/test/Transforms/Inline/2004-04-20-InlineLinkOnce.llx @@ -1,12 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -prune-eh -disable-output +; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output -implementation - -linkonce void %caller() { - call void %callee() - ret void +define linkonce void @caller() { + call void @callee( ) + ret void } -linkonce void %callee() { - ret void +define linkonce void @callee() { + ret void } + diff --git a/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll b/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll index 016fc5a..09666ec 100644 --- a/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll +++ b/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output +; RUN: llvm-as < %s | opt -inline -disable-output -int %test() { - unwind +define i32 @test() { + unwind } -int %caller() { - %X = call int %test() - ret int %X +define i32 @caller() { + %X = call i32 @test( ) ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll b/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll index cb92411..acdf6ab 100644 --- a/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll +++ b/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll @@ -1,26 +1,25 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -prune-eh -disable-output +; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output - "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { "struct.std::locale::facet" } - "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { int (...)**, int*, int*, int*, int*, int*, int*, "struct.std::locale" } - "struct.std::ios_base" = type { int (...)**, int, int, uint, uint, uint, "struct.std::ios_base::_Callback_list"*, "struct.std::ios_base::_Words", [8 x "struct.std::ios_base::_Words"], int, "struct.std::ios_base::_Words"*, "struct.std::locale" } - "struct.std::ios_base::_Callback_list" = type { "struct.std::ios_base::_Callback_list"*, void (uint, "struct.std::ios_base"*, int)*, int, int } - "struct.std::ios_base::_Words" = type { sbyte*, int } - "struct.std::locale" = type { "struct.std::locale::_Impl"* } - "struct.std::locale::_Impl" = type { int, "struct.std::locale::facet"**, uint, "struct.std::locale::facet"**, sbyte** } - "struct.std::locale::facet" = type { int (...)**, int } - "struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, int } + %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" } + %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, i32*, i32*, i32*, i32*, i32*, i32*, %"struct.std::locale" } + %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" } + %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } + %"struct.std::ios_base::_Words" = type { i8*, i32 } + %"struct.std::locale" = type { %"struct.std::locale::_Impl"* } + %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } + %"struct.std::locale::facet" = type { i32 (...)**, i32 } + %"struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, i32 } -implementation ; Functions: - -void %_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl("struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >"* %agg.result, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* %this, "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"* %__s.0__, int %__s.1__, "struct.std::ios_base"* %__io, int %__fill, int %__v) { +define void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl(%"struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >"* %agg.result, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* %this, %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"* %__s.0__, i32 %__s.1__, %"struct.std::ios_base"* %__io, i32 %__fill, i32 %__v) { entry: - tail call fastcc void %_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_( ) - ret void + tail call fastcc void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_( ) + ret void } -fastcc void %_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_() { +define fastcc void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_() { entry: - %tmp.38 = shl uint 0, ubyte 3 ; <uint> [#uses=1] - %tmp.39 = alloca sbyte, uint %tmp.38 ; <sbyte*> [#uses=0] - ret void + %tmp.38 = shl i32 0, 3 ; <i32> [#uses=1] + %tmp.39 = alloca i8, i32 %tmp.38 ; <i8*> [#uses=0] + ret void } + diff --git a/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll b/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll index 8429e7c..5215bec 100644 --- a/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll +++ b/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll @@ -1,13 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -prune-eh -disable-output +; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output ; PR827 +@_ZTV8CRjii = internal global [1 x i32 (...)*] [ i32 (...)* @_ZN8CRjii12NlFeeEPN5Jr7sE ] ; <[1 x i32 (...)*]*> [#uses=0] -%_ZTV8CRjii = internal global [1 x int (...)*] [ int (...)* %_ZN8CRjii12NlFeeEPN5Jr7sE ] ; <[1 x int (...)*]*> [#uses=0] - -implementation ; Functions: - -internal int %_ZN8CRjii12NlFeeEPN5Jr7sE(...) { +define internal i32 @_ZN8CRjii12NlFeeEPN5Jr7sE(...) { entry: - br bool false, label %cond_true, label %cond_false179 + br i1 false, label %cond_true, label %cond_false179 cond_true: ; preds = %entry br label %bb9 @@ -16,7 +13,7 @@ bb: ; preds = %cond_true14 br label %bb9 bb9: ; preds = %bb, %cond_true - br bool false, label %cond_true14, label %cond_false + br i1 false, label %cond_true14, label %cond_false cond_true14: ; preds = %bb9 br label %bb @@ -34,7 +31,7 @@ bb17: ; preds = %cond_true29 br label %bb24 bb24: ; preds = %bb17, %bb15 - br bool false, label %cond_true29, label %cond_false30 + br i1 false, label %cond_true29, label %cond_false30 cond_true29: ; preds = %bb24 br label %bb17 @@ -52,7 +49,7 @@ bb34: ; preds = %cond_true46 br label %bb41 bb41: ; preds = %bb34, %bb32 - br bool false, label %cond_true46, label %cond_false47 + br i1 false, label %cond_true46, label %cond_false47 cond_true46: ; preds = %bb41 br label %bb34 @@ -70,7 +67,7 @@ bb51: ; preds = %cond_true63 br label %bb58 bb58: ; preds = %bb51, %bb49 - br bool false, label %cond_true63, label %cond_false64 + br i1 false, label %cond_true63, label %cond_false64 cond_true63: ; preds = %bb58 br label %bb51 @@ -88,7 +85,7 @@ bb68: ; preds = %cond_true81 br label %bb76 bb76: ; preds = %bb68, %bb66 - br bool false, label %cond_true81, label %cond_false82 + br i1 false, label %cond_true81, label %cond_false82 cond_true81: ; preds = %bb76 br label %bb68 @@ -106,7 +103,7 @@ bb86: ; preds = %cond_true99 br label %bb94 bb94: ; preds = %bb86, %bb84 - br bool false, label %cond_true99, label %cond_false100 + br i1 false, label %cond_true99, label %cond_false100 cond_true99: ; preds = %bb94 br label %bb86 @@ -124,7 +121,7 @@ bb104: ; preds = %cond_true117 br label %bb112 bb112: ; preds = %bb104, %bb102 - br bool false, label %cond_true117, label %cond_false118 + br i1 false, label %cond_true117, label %cond_false118 cond_true117: ; preds = %bb112 br label %bb104 @@ -142,7 +139,7 @@ bb122: ; preds = %cond_true135 br label %bb130 bb130: ; preds = %bb122, %bb120 - br bool false, label %cond_true135, label %cond_false136 + br i1 false, label %cond_true135, label %cond_false136 cond_true135: ; preds = %bb130 br label %bb122 @@ -157,11 +154,11 @@ bb138: ; preds = %cond_next137, %cond_false136 br label %bb148 bb140: ; preds = %cond_true153 - call fastcc void %_Zjrf1( ) + call fastcc void @_Zjrf1( ) br label %bb148 bb148: ; preds = %bb140, %bb138 - br bool false, label %cond_true153, label %cond_false154 + br i1 false, label %cond_true153, label %cond_false154 cond_true153: ; preds = %bb148 br label %bb140 @@ -179,7 +176,7 @@ bb158: ; preds = %cond_true171 br label %bb166 bb166: ; preds = %bb158, %bb156 - br bool false, label %cond_true171, label %cond_false172 + br i1 false, label %cond_true171, label %cond_false172 cond_true171: ; preds = %bb166 br label %bb158 @@ -206,10 +203,10 @@ cond_next180: ; preds = %cond_false179, %finally br label %return return: ; preds = %cond_next180 - ret int 0 + ret i32 0 } -internal fastcc void %_Zjrf2() { +define internal fastcc void @_Zjrf2() { entry: br label %bb3 @@ -217,9 +214,9 @@ bb: ; preds = %cond_true br label %bb3 bb3: ; preds = %bb, %entry - %tmp5 = load ubyte** null ; <ubyte*> [#uses=1] - %tmp = setne ubyte* null, %tmp5 ; <bool> [#uses=1] - br bool %tmp, label %cond_true, label %cond_false + %tmp5 = load i8** null ; <i8*> [#uses=1] + %tmp = icmp ne i8* null, %tmp5 ; <i1> [#uses=1] + br i1 %tmp, label %cond_true, label %cond_false cond_true: ; preds = %bb3 br label %bb @@ -237,16 +234,16 @@ return: ; preds = %bb6 ret void } -internal fastcc void %_Zjrf3() { +define internal fastcc void @_Zjrf3() { entry: - call fastcc void %_Zjrf2( ) + call fastcc void @_Zjrf2( ) br label %return return: ; preds = %entry ret void } -internal fastcc void %_Zjrf4() { +define internal fastcc void @_Zjrf4() { entry: br label %bb6 @@ -254,7 +251,7 @@ bb: ; preds = %cond_true br label %bb6 bb6: ; preds = %bb, %entry - br bool false, label %cond_true, label %cond_false + br i1 false, label %cond_true, label %cond_false cond_true: ; preds = %bb6 br label %bb @@ -266,10 +263,10 @@ cond_next: ; No predecessors! br label %bb8 bb8: ; preds = %cond_next, %cond_false - br bool false, label %cond_true9, label %cond_false12 + br i1 false, label %cond_true9, label %cond_false12 cond_true9: ; preds = %bb8 - call fastcc void %_Zjrf3( ) + call fastcc void @_Zjrf3( ) br label %cond_next13 cond_false12: ; preds = %bb8 @@ -282,25 +279,25 @@ return: ; preds = %cond_next13 ret void } -internal fastcc void %_Zjrf5() { +define internal fastcc void @_Zjrf5() { entry: - call fastcc void %_Zjrf4( ) + call fastcc void @_Zjrf4( ) br label %return return: ; preds = %entry ret void } -internal fastcc void %_Zjrf6() { +define internal fastcc void @_Zjrf6() { entry: - call fastcc void %_Zjrf5( ) + call fastcc void @_Zjrf5( ) br label %return return: ; preds = %entry ret void } -internal fastcc void %_Zjrf7() { +define internal fastcc void @_Zjrf7() { entry: br label %cleanup @@ -308,7 +305,7 @@ cleanup: ; preds = %entry br label %finally finally: ; preds = %cleanup - call fastcc void %_Zjrf6( ) + call fastcc void @_Zjrf6( ) br label %cleanup9 cleanup9: ; preds = %finally @@ -330,7 +327,7 @@ return: ; preds = %finally23 ret void } -internal fastcc void %_Zjrf11() { +define internal fastcc void @_Zjrf11() { entry: br label %bb7 @@ -338,7 +335,7 @@ bb: ; preds = %cond_true br label %bb7 bb7: ; preds = %bb, %entry - br bool false, label %cond_true, label %cond_false + br i1 false, label %cond_true, label %cond_false cond_true: ; preds = %bb7 br label %bb @@ -352,10 +349,10 @@ cond_next: ; No predecessors! bb9: ; preds = %cond_next, %cond_false br label %return ; No predecessors! - br bool false, label %cond_true12, label %cond_false15 + br i1 false, label %cond_true12, label %cond_false15 cond_true12: ; preds = %0 - call fastcc void %_Zjrf3( ) + call fastcc void @_Zjrf3( ) br label %cond_next16 cond_false15: ; preds = %0 @@ -368,30 +365,30 @@ return: ; preds = %cond_next16, %bb9 ret void } -internal fastcc void %_Zjrf9() { +define internal fastcc void @_Zjrf9() { entry: - call fastcc void %_Zjrf11( ) + call fastcc void @_Zjrf11( ) br label %return return: ; preds = %entry ret void } -internal fastcc void %_Zjrf10() { +define internal fastcc void @_Zjrf10() { entry: - call fastcc void %_Zjrf9( ) + call fastcc void @_Zjrf9( ) br label %return return: ; preds = %entry ret void } -internal fastcc void %_Zjrf8() { +define internal fastcc void @_Zjrf8() { entry: - br bool false, label %cond_true, label %cond_false201 + br i1 false, label %cond_true, label %cond_false201 cond_true: ; preds = %entry - br bool false, label %cond_true36, label %cond_false + br i1 false, label %cond_true36, label %cond_false cond_true36: ; preds = %cond_true br label %cleanup @@ -403,7 +400,7 @@ finally: ; preds = %cleanup br label %cond_next189 cond_false: ; preds = %cond_true - br bool false, label %cond_true99, label %cond_false137 + br i1 false, label %cond_true99, label %cond_false137 cond_true99: ; preds = %cond_false br label %cleanup136 @@ -415,7 +412,7 @@ finally135: ; preds = %cleanup136 br label %cond_next cond_false137: ; preds = %cond_false - call fastcc void %_Zjrf10( ) + call fastcc void @_Zjrf10( ) br label %cleanup188 cleanup188: ; preds = %cond_false137 @@ -440,7 +437,7 @@ return: ; preds = %cond_next202 ret void } -internal fastcc void %_Zjrf1() { +define internal fastcc void @_Zjrf1() { entry: br label %bb492 @@ -457,7 +454,7 @@ cleanup11: ; preds = %finally br label %finally10 finally10: ; preds = %cleanup11 - br bool false, label %cond_true, label %cond_false286 + br i1 false, label %cond_true, label %cond_false286 cond_true: ; preds = %finally10 br label %cleanup26 @@ -472,7 +469,7 @@ bb27: ; preds = %cond_true37 br label %bb30 bb30: ; preds = %bb27, %finally25 - br bool false, label %cond_true37, label %cond_false + br i1 false, label %cond_true37, label %cond_false cond_true37: ; preds = %bb30 br label %bb27 @@ -490,7 +487,7 @@ bb40: ; preds = %cond_true156 br label %bb139 bb41: ; preds = %cond_true142 - call fastcc void %_Zjrf7( ) + call fastcc void @_Zjrf7( ) br label %bb105 bb44: ; preds = %cond_true112 @@ -500,7 +497,7 @@ bb66: ; preds = %cond_true80 br label %bb74 bb74: ; preds = %bb66, %bb44 - br bool false, label %cond_true80, label %cond_false81 + br i1 false, label %cond_true80, label %cond_false81 cond_true80: ; preds = %bb74 br label %bb66 @@ -527,7 +524,7 @@ finally98: ; preds = %cleanup99 br label %bb105 bb105: ; preds = %finally98, %bb41 - br bool false, label %cond_true112, label %cond_false113 + br i1 false, label %cond_true112, label %cond_false113 cond_true112: ; preds = %bb105 br label %bb44 @@ -539,17 +536,17 @@ cond_next114: ; No predecessors! br label %bb115 bb115: ; preds = %cond_next114, %cond_false113 - br bool false, label %cond_true119, label %cond_false123 + br i1 false, label %cond_true119, label %cond_false123 cond_true119: ; preds = %bb115 - call fastcc void %_Zjrf8( ) + call fastcc void @_Zjrf8( ) br label %cond_next124 cond_false123: ; preds = %bb115 br label %cond_next124 cond_next124: ; preds = %cond_false123, %cond_true119 - br bool false, label %cond_true131, label %cond_false132 + br i1 false, label %cond_true131, label %cond_false132 cond_true131: ; preds = %cond_next124 br label %cleanup135 @@ -570,7 +567,7 @@ finally134: ; preds = %cleanup136 br label %bb139 bb139: ; preds = %finally134, %bb40 - br bool false, label %cond_true142, label %cond_false143 + br i1 false, label %cond_true142, label %cond_false143 cond_true142: ; preds = %bb139 br label %bb41 @@ -585,7 +582,7 @@ bb145: ; preds = %cond_next144, %cond_false143 br label %bb148 bb148: ; preds = %bb145, %bb38 - br bool false, label %cond_true156, label %cond_false157 + br i1 false, label %cond_true156, label %cond_false157 cond_true156: ; preds = %bb148 br label %bb40 @@ -603,7 +600,7 @@ done: ; preds = %bb159, %cleanup135 br label %bb214 bb185: ; preds = %cond_true218 - br bool false, label %cond_true193, label %cond_false206 + br i1 false, label %cond_true193, label %cond_false206 cond_true193: ; preds = %bb185 br label %cond_next211 @@ -615,7 +612,7 @@ cond_next211: ; preds = %cond_false206, %cond_true193 br label %bb214 bb214: ; preds = %cond_next211, %done - br bool false, label %cond_true218, label %cond_false219 + br i1 false, label %cond_true218, label %cond_false219 cond_true218: ; preds = %bb214 br label %bb185 @@ -627,7 +624,7 @@ cond_next220: ; No predecessors! br label %bb221 bb221: ; preds = %cond_next220, %cond_false219 - br bool false, label %cond_true236, label %cond_false245 + br i1 false, label %cond_true236, label %cond_false245 cond_true236: ; preds = %bb221 br label %cond_next249 @@ -636,7 +633,7 @@ cond_false245: ; preds = %bb221 br label %cond_next249 cond_next249: ; preds = %cond_false245, %cond_true236 - br bool false, label %cond_true272, label %cond_false277 + br i1 false, label %cond_true272, label %cond_false277 cond_true272: ; preds = %cond_next249 br label %cond_next278 @@ -657,7 +654,7 @@ cond_false286: ; preds = %finally10 br label %cond_next287 cond_next287: ; preds = %cond_false286, %finally284 - br bool false, label %cond_true317, label %cond_false319 + br i1 false, label %cond_true317, label %cond_false319 cond_true317: ; preds = %cond_next287 br label %cond_next321 @@ -672,7 +669,7 @@ bb335: ; preds = %cond_true355 br label %bb348 bb348: ; preds = %bb335, %cond_next321 - br bool false, label %cond_true355, label %cond_false356 + br i1 false, label %cond_true355, label %cond_false356 cond_true355: ; preds = %bb348 br label %bb335 @@ -684,7 +681,7 @@ cond_next357: ; No predecessors! br label %bb358 bb358: ; preds = %cond_next357, %cond_false356 - br bool false, label %cond_true363, label %cond_false364 + br i1 false, label %cond_true363, label %cond_false364 cond_true363: ; preds = %bb358 br label %bb388 @@ -693,7 +690,7 @@ cond_false364: ; preds = %bb358 br label %cond_next365 cond_next365: ; preds = %cond_false364 - br bool false, label %cond_true370, label %cond_false371 + br i1 false, label %cond_true370, label %cond_false371 cond_true370: ; preds = %cond_next365 br label %bb388 @@ -702,7 +699,7 @@ cond_false371: ; preds = %cond_next365 br label %cond_next372 cond_next372: ; preds = %cond_false371 - br bool false, label %cond_true385, label %cond_false386 + br i1 false, label %cond_true385, label %cond_false386 cond_true385: ; preds = %cond_next372 br label %bb388 @@ -717,13 +714,13 @@ bb388: ; preds = %cond_true385, %cond_true370, %cond_true363 br label %bb389 bb389: ; preds = %bb388, %cond_next387 - br bool false, label %cond_true392, label %cond_false443 + br i1 false, label %cond_true392, label %cond_false443 cond_true392: ; preds = %bb389 br label %bb419 bb402: ; preds = %cond_true425 - br bool false, label %cond_true406, label %cond_false412 + br i1 false, label %cond_true406, label %cond_false412 cond_true406: ; preds = %bb402 br label %cond_next416 @@ -735,7 +732,7 @@ cond_next416: ; preds = %cond_false412, %cond_true406 br label %bb419 bb419: ; preds = %cond_next416, %cond_true392 - br bool false, label %cond_true425, label %cond_false426 + br i1 false, label %cond_true425, label %cond_false426 cond_true425: ; preds = %bb419 br label %bb402 @@ -756,7 +753,7 @@ bb450: ; preds = %cond_true466 br label %bb460 bb460: ; preds = %bb450, %cond_false443 - br bool false, label %cond_true466, label %cond_false467 + br i1 false, label %cond_true466, label %cond_false467 cond_true466: ; preds = %bb460 br label %bb450 @@ -792,7 +789,7 @@ finally488: ; preds = %cleanup489 br label %bb492 bb492: ; preds = %finally488, %entry - br bool false, label %cond_true499, label %cond_false500 + br i1 false, label %cond_true499, label %cond_false500 cond_true499: ; preds = %bb492 br label %bb @@ -810,7 +807,7 @@ return: ; preds = %bb502 ret void } -internal fastcc void %_ZSt26__unguarded_insertion_sortIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEEvT_S7_() { +define internal fastcc void @_ZSt26__unguarded_insertion_sortIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEEvT_S7_() { entry: br label %bb12 @@ -824,7 +821,7 @@ finally: ; preds = %cleanup br label %bb12 bb12: ; preds = %finally, %entry - br bool false, label %cond_true, label %cond_false + br i1 false, label %cond_true, label %cond_false cond_true: ; preds = %bb12 br label %bb diff --git a/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll b/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll index 705961b..bd2885d 100644 --- a/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll +++ b/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll @@ -1,138 +1,135 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -prune-eh -disable-output +; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output ; PR993 -target endian = little -target pointersize = 32 +target datalayout = "e-p:32:32" target triple = "i386-unknown-openbsd3.9" deplibs = [ "stdc++", "c", "crtend" ] - "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { sbyte* } - "struct.__gnu_cxx::char_producer<char>" = type { int (...)** } - %struct.__sFILE = type { ubyte*, int, int, short, short, %struct.__sbuf, int, sbyte*, int (sbyte*)*, int (sbyte*, sbyte*, int)*, long (sbyte*, long, int)*, int (sbyte*, sbyte*, int)*, %struct.__sbuf, ubyte*, int, [3 x ubyte], [1 x ubyte], %struct.__sbuf, int, long } - %struct.__sbuf = type { ubyte*, int } - "struct.std::__basic_file<char>" = type { %struct.__sFILE*, bool } - "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { "struct.std::locale::facet" } - "struct.std::bad_alloc" = type { "struct.__gnu_cxx::char_producer<char>" } - "struct.std::basic_filebuf<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >", int, "struct.std::__basic_file<char>", uint, %union.__mbstate_t, %union.__mbstate_t, sbyte*, uint, bool, bool, bool, bool, sbyte, sbyte*, sbyte*, bool, "struct.std::codecvt<char,char,__mbstate_t>"*, sbyte*, int, sbyte*, sbyte* } - "struct.std::basic_ios<char,std::char_traits<char> >" = type { "struct.std::ios_base", "struct.std::basic_ostream<char,std::char_traits<char> >"*, sbyte, bool, "struct.std::basic_streambuf<char,std::char_traits<char> >"*, "struct.std::ctype<char>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } - "struct.std::basic_iostream<char,std::char_traits<char> >" = type { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_ios<char,std::char_traits<char> >" } - "struct.std::basic_ofstream<char,std::char_traits<char> >" = type { "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_filebuf<char,std::char_traits<char> >", "struct.std::basic_ios<char,std::char_traits<char> >" } - "struct.std::basic_ostream<char,std::char_traits<char> >" = type { int (...)**, "struct.std::basic_ios<char,std::char_traits<char> >" } - "struct.std::basic_streambuf<char,std::char_traits<char> >" = type { int (...)**, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, "struct.std::locale" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { uint, uint, int } - "struct.std::codecvt<char,char,__mbstate_t>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", int* } - "struct.std::ctype<char>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", int*, bool, int*, int*, uint* } - "struct.std::domain_error" = type { "struct.std::logic_error" } - "struct.std::ios_base" = type { int (...)**, int, int, uint, uint, uint, "struct.std::ios_base::_Callback_list"*, "struct.std::ios_base::_Words", [8 x "struct.std::ios_base::_Words"], int, "struct.std::ios_base::_Words"*, "struct.std::locale" } - "struct.std::ios_base::_Callback_list" = type { "struct.std::ios_base::_Callback_list"*, void (uint, "struct.std::ios_base"*, int)*, int, int } - "struct.std::ios_base::_Words" = type { sbyte*, int } - "struct.std::locale" = type { "struct.std::locale::_Impl"* } - "struct.std::locale::_Impl" = type { int, "struct.std::locale::facet"**, uint, "struct.std::locale::facet"**, sbyte** } - "struct.std::locale::facet" = type { int (...)**, int } - "struct.std::logic_error" = type { "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" } - %union.__mbstate_t = type { long, [120 x ubyte] } -%.str_1 = external global [17 x sbyte] ; <[17 x sbyte]*> [#uses=0] -%.str_9 = external global [24 x sbyte] ; <[24 x sbyte]*> [#uses=0] - -implementation ; Functions: - -void %main() { -entry: - call fastcc void %_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode( ) - ret void -} - -fastcc void %_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode() { -entry: - %tmp.6 = seteq "struct.std::basic_filebuf<char,std::char_traits<char> >"* null, null ; <bool> [#uses=1] - br bool %tmp.6, label %then, label %UnifiedReturnBlock + %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* } + %"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** } + %struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } + %struct.__sbuf = type { i8*, i32 } + %"struct.std::__basic_file<char>" = type { %struct.__sFILE*, i1 } + %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" } + %"struct.std::bad_alloc" = type { %"struct.__gnu_cxx::char_producer<char>" } + %"struct.std::basic_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::__basic_file<char>", i32, %union.__mbstate_t, %union.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* } + %"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i1, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } + %"struct.std::basic_iostream<char,std::char_traits<char> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<char,std::char_traits<char> >" } + %"struct.std::basic_ofstream<char,std::char_traits<char> >" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" } + %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" } + %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 } + %"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32* } + %"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32*, i1, i32*, i32*, i32* } + %"struct.std::domain_error" = type { %"struct.std::logic_error" } + %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %struct.__sbuf, [8 x %struct.__sbuf], i32, %struct.__sbuf*, %"struct.std::locale" } + %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } + %"struct.std::ios_base::_Words" = type { i8*, i32 } + %"struct.std::locale" = type { %"struct.std::locale::_Impl"* } + %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } + %"struct.std::locale::facet" = type { i32 (...)**, i32 } + %"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" } + %union.__mbstate_t = type { i64, [120 x i8] } +@.str_1 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] +@.str_9 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] + +define void @main() { +entry: + call fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode( ) + ret void +} + +define fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode() { +entry: + %tmp.6 = icmp eq %"struct.std::basic_filebuf<char,std::char_traits<char> >"* null, null ; <i1> [#uses=1] + br i1 %tmp.6, label %then, label %UnifiedReturnBlock then: ; preds = %entry - tail call fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( ) + tail call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( ) ret void UnifiedReturnBlock: ; preds = %entry ret void } -fastcc void %_ZN10__cxxabiv111__terminateEPFvvE() { +define fastcc void @_ZN10__cxxabiv111__terminateEPFvvE() { entry: unreachable } -void %_ZNSdD0Ev() { +define void @_ZNSdD0Ev() { entry: unreachable } -void %_ZThn8_NSdD1Ev() { +define void @_ZThn8_NSdD1Ev() { entry: ret void } -void %_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev() { +define void @_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev() { entry: ret void } -void %_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi() { +define void @_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi() { entry: unreachable } -fastcc void %_ZNSoD2Ev() { +define fastcc void @_ZNSoD2Ev() { entry: unreachable } -fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev() { +define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev() { entry: unreachable } -fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() { +define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() { entry: - tail call fastcc void %_ZSt19__throw_ios_failurePKc( ) + tail call fastcc void @_ZSt19__throw_ios_failurePKc( ) ret void } -declare fastcc void %_ZNSaIcED1Ev() +declare fastcc void @_ZNSaIcED1Ev() -fastcc void %_ZNSsC1EPKcRKSaIcE() { +define fastcc void @_ZNSsC1EPKcRKSaIcE() { entry: - tail call fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( ) + tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( ) unreachable } -fastcc void %_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii() { +define fastcc void @_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii() { entry: ret void } -fastcc void %_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() { +define fastcc void @_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() { entry: ret void } -fastcc void %_ZSt19__throw_ios_failurePKc() { +define fastcc void @_ZSt19__throw_ios_failurePKc() { entry: - call fastcc void %_ZNSsC1EPKcRKSaIcE( ) + call fastcc void @_ZNSsC1EPKcRKSaIcE( ) unwind } -void %_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() { +define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() { entry: ret void } -void %_ZNSt9bad_allocD1Ev() { +define void @_ZNSt9bad_allocD1Ev() { entry: unreachable } -fastcc void %_ZSt19__throw_logic_errorPKc() { +define fastcc void @_ZSt19__throw_logic_errorPKc() { entry: - invoke fastcc void %_ZNSt11logic_errorC1ERKSs( ) + invoke fastcc void @_ZNSt11logic_errorC1ERKSs( ) to label %try_exit.0 unwind label %try_catch.0 try_catch.0: ; preds = %entry @@ -142,26 +139,26 @@ try_exit.0: ; preds = %entry unwind } -fastcc void %_ZNSt11logic_errorC1ERKSs() { +define fastcc void @_ZNSt11logic_errorC1ERKSs() { entry: - call fastcc void %_ZNSsC1ERKSs( ) + call fastcc void @_ZNSsC1ERKSs( ) ret void } -void %_ZNSt12domain_errorD1Ev() { +define void @_ZNSt12domain_errorD1Ev() { entry: unreachable } -fastcc void %_ZSt20__throw_length_errorPKc() { +define fastcc void @_ZSt20__throw_length_errorPKc() { entry: - call fastcc void %_ZNSt12length_errorC1ERKSs( ) + call fastcc void @_ZNSt12length_errorC1ERKSs( ) unwind } -fastcc void %_ZNSt12length_errorC1ERKSs() { +define fastcc void @_ZNSt12length_errorC1ERKSs() { entry: - invoke fastcc void %_ZNSsC1ERKSs( ) + invoke fastcc void @_ZNSsC1ERKSs( ) to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i invoke_catch.i: ; preds = %entry @@ -171,78 +168,78 @@ _ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry ret void } -fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE() { +define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() { entry: - call fastcc void %_ZSt20__throw_length_errorPKc( ) + call fastcc void @_ZSt20__throw_length_errorPKc( ) unreachable } -fastcc void %_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag() { +define fastcc void @_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag() { entry: unreachable } -fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { +define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { entry: - 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 = %entry - call fastcc void %_ZSt19__throw_logic_errorPKc( ) + call fastcc void @_ZSt19__throw_logic_errorPKc( ) br label %endif.1.i endif.1.i: ; preds = %then.1.i, %entry - call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( ) + call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) unreachable } -fastcc void %_ZNSsC1ERKSs() { +define fastcc void @_ZNSsC1ERKSs() { entry: - call fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_( ) - invoke fastcc void %_ZNSaIcEC1ERKS_( ) + call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( ) + invoke fastcc void @_ZNSaIcEC1ERKS_( ) to label %invoke_cont.1 unwind label %invoke_catch.1 invoke_catch.1: ; preds = %entry - call fastcc void %_ZNSaIcED1Ev( ) + call fastcc void @_ZNSaIcED1Ev( ) unwind invoke_cont.1: ; preds = %entry - call fastcc void %_ZNSaIcEC2ERKS_( ) + call fastcc void @_ZNSaIcEC2ERKS_( ) ret void } -fastcc void %_ZNSaIcEC1ERKS_() { +define fastcc void @_ZNSaIcEC1ERKS_() { entry: ret void } -fastcc void %_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc() { +define fastcc void @_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc() { entry: ret void } -fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_() { +define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() { entry: - br bool false, label %else.i, label %cond_true + br i1 false, label %else.i, label %cond_true cond_true: ; preds = %entry ret void else.i: ; preds = %entry - tail call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( ) + tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) unreachable } -fastcc void %_ZNSaIcEC2ERKS_() { +define fastcc void @_ZNSaIcEC2ERKS_() { entry: ret void } -fastcc void %_ZN9__gnu_cxx12__pool_allocILb1ELi0EE8allocateEj() { +define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE8allocateEj() { entry: ret void } -fastcc void %_ZN9__gnu_cxx12__pool_allocILb1ELi0EE9_S_refillEj() { +define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE9_S_refillEj() { entry: unreachable } diff --git a/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll b/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll index 1b137cf..05096f4 100644 --- a/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll +++ b/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll @@ -1,312 +1,308 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -prune-eh -disable-output +; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output ; PR992 target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-pc-linux-gnu" deplibs = [ "stdc++", "c", "crtend" ] - %struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] } - %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int } - "struct.__cxxabiv1::__array_type_info" = type { "struct.std::type_info" } - "struct.__cxxabiv1::__si_class_type_info" = type { "struct.__cxxabiv1::__array_type_info", "struct.__cxxabiv1::__array_type_info"* } - "struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" = type { uint } - "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { sbyte* } - "struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" = type { int* } - "struct.__gnu_cxx::char_producer<char>" = type { int (...)** } - "struct.__gnu_cxx::stdio_sync_filebuf<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >", %struct._IO_FILE*, int } - "struct.__gnu_cxx::stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", %struct._IO_FILE*, uint } - %struct.__locale_struct = type { [13 x %struct.locale_data*], ushort*, int*, int*, [13 x sbyte*] } - %struct.__mbstate_t = type { int, "struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" } + %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] } + %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 } + %"struct.__cxxabiv1::__array_type_info" = type { %"struct.std::type_info" } + %"struct.__cxxabiv1::__si_class_type_info" = type { %"struct.__cxxabiv1::__array_type_info", %"struct.__cxxabiv1::__array_type_info"* } + %"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" = type { i32 } + %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* } + %"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" = type { i32* } + %"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** } + %"struct.__gnu_cxx::stdio_sync_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", %struct._IO_FILE*, i32 } + %"struct.__gnu_cxx::stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", %struct._IO_FILE*, i32 } + %struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] } + %struct.__mbstate_t = type { i32, %"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" } %struct.locale_data = type opaque - "struct.std::__basic_file<char>" = type { %struct._IO_FILE*, bool } - "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { "struct.std::locale::facet" } - "struct.std::basic_filebuf<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >", int, "struct.std::__basic_file<char>", uint, %struct.__mbstate_t, %struct.__mbstate_t, sbyte*, uint, bool, bool, bool, bool, sbyte, sbyte*, sbyte*, bool, "struct.std::codecvt<char,char,__mbstate_t>"*, sbyte*, int, sbyte*, sbyte* } - "struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", int, "struct.std::__basic_file<char>", uint, %struct.__mbstate_t, %struct.__mbstate_t, int*, uint, bool, bool, bool, bool, int, int*, int*, bool, "struct.std::codecvt<char,char,__mbstate_t>"*, sbyte*, int, sbyte*, sbyte* } - "struct.std::basic_fstream<char,std::char_traits<char> >" = type { { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>" }, "struct.std::basic_filebuf<char,std::char_traits<char> >", "struct.std::basic_ios<char,std::char_traits<char> >" } - "struct.std::basic_fstream<wchar_t,std::char_traits<wchar_t> >" = type { { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>" }, "struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >", "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } - "struct.std::basic_ios<char,std::char_traits<char> >" = type { "struct.std::ios_base", "struct.std::basic_ostream<char,std::char_traits<char> >"*, sbyte, bool, "struct.std::basic_streambuf<char,std::char_traits<char> >"*, "struct.std::ctype<char>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } - "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::ios_base", "struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >"*, int, bool, "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, "struct.std::codecvt<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } - "struct.std::basic_iostream<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } - "struct.std::basic_ostream<char,std::char_traits<char> >" = type { int (...)**, "struct.std::basic_ios<char,std::char_traits<char> >" } - "struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >" = type { int (...)**, "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } - "struct.std::basic_streambuf<char,std::char_traits<char> >" = type { int (...)**, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, "struct.std::locale" } - "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { int (...)**, int*, int*, int*, int*, int*, int*, "struct.std::locale" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" } - "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { uint, uint, int } - "struct.std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >" = type { "struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" } - "struct.std::codecvt<char,char,__mbstate_t>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct* } - "struct.std::collate<char>" = type { "struct.std::locale::facet", %struct.__locale_struct* } - "struct.std::collate_byname<char>" = type { "struct.std::collate<char>" } - "struct.std::ctype<char>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct*, bool, int*, int*, ushort* } - "struct.std::ctype_byname<char>" = type { "struct.std::ctype<char>" } - "struct.std::domain_error" = type { "struct.std::logic_error" } - "struct.std::ios_base" = type { int (...)**, int, int, uint, uint, uint, "struct.std::ios_base::_Callback_list"*, "struct.std::ios_base::_Words", [8 x "struct.std::ios_base::_Words"], int, "struct.std::ios_base::_Words"*, "struct.std::locale" } - "struct.std::ios_base::_Callback_list" = type { "struct.std::ios_base::_Callback_list"*, void (uint, "struct.std::ios_base"*, int)*, int, int } - "struct.std::ios_base::_Words" = type { sbyte*, int } - "struct.std::istreambuf_iterator<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >"*, int } - "struct.std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, uint } - "struct.std::locale" = type { "struct.std::locale::_Impl"* } - "struct.std::locale::_Impl" = type { int, "struct.std::locale::facet"**, uint, "struct.std::locale::facet"**, sbyte** } - "struct.std::locale::facet" = type { int (...)**, int } - "struct.std::logic_error" = type { "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" } - "struct.std::type_info" = type { int (...)**, sbyte* } -%.str_11 = external global [42 x sbyte] ; <[42 x sbyte]*> [#uses=0] -%.str_9 = external global [24 x sbyte] ; <[24 x sbyte]*> [#uses=0] -%.str_1 = external global [17 x sbyte] ; <[17 x sbyte]*> [#uses=0] - -implementation ; Functions: - -void %main() { -entry: - tail call fastcc void %_ZNSolsEi( ) - ret void -} - -fastcc void %_ZNSolsEi() { -entry: - %tmp.22 = seteq uint 0, 0 ; <bool> [#uses=1] - br bool %tmp.22, label %else, label %then + %"struct.std::__basic_file<char>" = type { %struct._IO_FILE*, i1 } + %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" } + %"struct.std::basic_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* } + %"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i32*, i32, i1, i1, i1, i1, i32, i32*, i32*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* } + %"struct.std::basic_fstream<char,std::char_traits<char> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" } + %"struct.std::basic_fstream<wchar_t,std::char_traits<wchar_t> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } + %"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i1, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } + %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >"*, i32, i1, %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, %"struct.std::codecvt<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* } + %"struct.std::basic_iostream<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } + %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" } + %"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" } + %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" } + %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, i32*, i32*, i32*, i32*, i32*, i32*, %"struct.std::locale" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" } + %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 } + %"struct.std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >" = type { %"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" } + %"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct* } + %"struct.std::collate<char>" = type { %"struct.std::locale::facet", %struct.__locale_struct* } + %"struct.std::collate_byname<char>" = type { %"struct.std::collate<char>" } + %"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct*, i1, i32*, i32*, i16* } + %"struct.std::ctype_byname<char>" = type { %"struct.std::ctype<char>" } + %"struct.std::domain_error" = type { %"struct.std::logic_error" } + %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" } + %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 } + %"struct.std::ios_base::_Words" = type { i8*, i32 } + %"struct.std::istreambuf_iterator<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, i32 } + %"struct.std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, i32 } + %"struct.std::locale" = type { %"struct.std::locale::_Impl"* } + %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** } + %"struct.std::locale::facet" = type { i32 (...)**, i32 } + %"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" } + %"struct.std::type_info" = type { i32 (...)**, i8* } +@.str_11 = external global [42 x i8] ; <[42 x i8]*> [#uses=0] +@.str_9 = external global [24 x i8] ; <[24 x i8]*> [#uses=0] +@.str_1 = external global [17 x i8] ; <[17 x i8]*> [#uses=0] + +define void @main() { +entry: + tail call fastcc void @_ZNSolsEi( ) + ret void +} + +define fastcc void @_ZNSolsEi() { +entry: + %tmp.22 = icmp eq i32 0, 0 ; <i1> [#uses=1] + br i1 %tmp.22, label %else, label %then then: ; preds = %entry ret void else: ; preds = %entry - tail call fastcc void %_ZNSolsEl( ) + tail call fastcc void @_ZNSolsEl( ) ret void } -void %_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_() { +define void @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_() { entry: ret void } -fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() { +define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() { entry: - tail call fastcc void %_ZSt19__throw_ios_failurePKc( ) + tail call fastcc void @_ZSt19__throw_ios_failurePKc( ) ret void } -fastcc void %_ZNSo3putEc() { +define fastcc void @_ZNSo3putEc() { entry: ret void } -fastcc void %_ZNSolsEl() { +define fastcc void @_ZNSolsEl() { entry: - %tmp.21.i = seteq "struct.std::basic_ostream<char,std::char_traits<char> >"* null, null ; <bool> [#uses=1] - br bool %tmp.21.i, label %endif.0.i, label %shortcirc_next.i + %tmp.21.i = icmp eq %"struct.std::basic_ostream<char,std::char_traits<char> >"* null, null ; <i1> [#uses=1] + br i1 %tmp.21.i, label %endif.0.i, label %shortcirc_next.i shortcirc_next.i: ; preds = %entry ret void endif.0.i: ; preds = %entry - call fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( ) + call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( ) ret void } -fastcc void %_ZSt19__throw_ios_failurePKc() { +define fastcc void @_ZSt19__throw_ios_failurePKc() { entry: - call fastcc void %_ZNSsC1EPKcRKSaIcE( ) + call fastcc void @_ZNSsC1EPKcRKSaIcE( ) ret void } -fastcc void %_ZNSt8ios_baseD2Ev() { +define fastcc void @_ZNSt8ios_baseD2Ev() { entry: unreachable } -void %_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv() { +define void @_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv() { entry: unreachable } -void %_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev() { +define void @_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev() { entry: unreachable } -void %_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci() { +define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci() { entry: ret void } -fastcc void %_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale() { +define fastcc void @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale() { entry: ret void } -declare fastcc void %_ZNSaIcED1Ev() +declare fastcc void @_ZNSaIcED1Ev() -fastcc void %_ZSt19__throw_logic_errorPKc() { +define fastcc void @_ZSt19__throw_logic_errorPKc() { entry: - call fastcc void %_ZNSt11logic_errorC1ERKSs( ) + call fastcc void @_ZNSt11logic_errorC1ERKSs( ) ret void } -fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE() { +define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() { entry: - br bool false, label %then.0, label %endif.0 + br i1 false, label %then.0, label %endif.0 then.0: ; preds = %entry - call fastcc void %_ZSt20__throw_length_errorPKc( ) + call fastcc void @_ZSt20__throw_length_errorPKc( ) ret void endif.0: ; preds = %entry ret void } -fastcc void %_ZSt20__throw_length_errorPKc() { +define fastcc void @_ZSt20__throw_length_errorPKc() { entry: - call fastcc void %_ZNSt12length_errorC1ERKSs( ) + call fastcc void @_ZNSt12length_errorC1ERKSs( ) unwind } -fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { +define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { entry: - 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 = %entry - call fastcc void %_ZSt19__throw_logic_errorPKc( ) + call fastcc void @_ZSt19__throw_logic_errorPKc( ) ret void endif.1.i: ; preds = %entry - call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( ) + call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) unreachable } -fastcc void %_ZNSsC1ERKSs() { +define fastcc void @_ZNSsC1ERKSs() { entry: - call fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_( ) - invoke fastcc void %_ZNSaIcEC1ERKS_( ) + call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( ) + invoke fastcc void @_ZNSaIcEC1ERKS_( ) to label %invoke_cont.1 unwind label %invoke_catch.1 invoke_catch.1: ; preds = %entry - call fastcc void %_ZNSaIcED1Ev( ) + call fastcc void @_ZNSaIcED1Ev( ) unwind invoke_cont.1: ; preds = %entry - call fastcc void %_ZNSaIcEC2ERKS_( ) + call fastcc void @_ZNSaIcEC2ERKS_( ) ret void } -fastcc void %_ZNSs7reserveEj() { +define fastcc void @_ZNSs7reserveEj() { entry: ret void } -fastcc void %_ZNSaIcEC1ERKS_() { +define fastcc void @_ZNSaIcEC1ERKS_() { entry: ret void } -fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_() { +define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() { entry: - br bool false, label %else.i, label %cond_true + br i1 false, label %else.i, label %cond_true cond_true: ; preds = %entry ret void else.i: ; preds = %entry - tail call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( ) + tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( ) ret void } -fastcc void %_ZNSsC1EPKcRKSaIcE() { +define fastcc void @_ZNSsC1EPKcRKSaIcE() { entry: - tail call fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( ) + tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( ) unreachable } -fastcc void %_ZNSaIcEC2ERKS_() { +define fastcc void @_ZNSaIcEC2ERKS_() { entry: ret void } -void %_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev() { +define void @_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev() { entry: unreachable } -void %_ZNSt14collate_bynameIcED1Ev() { +define void @_ZNSt14collate_bynameIcED1Ev() { entry: unreachable } -void %_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy() { +define void @_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy() { entry: ret void } -void %_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED1Ev() { +define void @_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED1Ev() { entry: unreachable } -void %_ZNSt12ctype_bynameIcED0Ev() { +define void @_ZNSt12ctype_bynameIcED0Ev() { entry: unreachable } -fastcc void %_ZNSt8messagesIwEC1Ej() { +define fastcc void @_ZNSt8messagesIwEC1Ej() { entry: ret void } -fastcc void %_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi() { +define fastcc void @_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi() { entry: ret void } -fastcc void %_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej() { +define fastcc void @_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej() { entry: ret void } -fastcc void %_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() { +define fastcc void @_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() { entry: ret void } -fastcc void %_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs() { +define fastcc void @_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs() { entry: unreachable } -fastcc void %_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_() { +define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_() { entry: ret void } -void %_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev() { +define void @_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev() { entry: unreachable } -void %_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv() { +define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv() { entry: ret void } -void %_ZNSt9exceptionD0Ev() { +define void @_ZNSt9exceptionD0Ev() { entry: unreachable } -fastcc void %_ZNSt11logic_errorC1ERKSs() { +define fastcc void @_ZNSt11logic_errorC1ERKSs() { entry: - call fastcc void %_ZNSsC1ERKSs( ) + call fastcc void @_ZNSsC1ERKSs( ) ret void } -fastcc void %_ZNSt11logic_errorD2Ev() { +define fastcc void @_ZNSt11logic_errorD2Ev() { entry: unreachable } -fastcc void %_ZNSt12length_errorC1ERKSs() { +define fastcc void @_ZNSt12length_errorC1ERKSs() { entry: - invoke fastcc void %_ZNSsC1ERKSs( ) + invoke fastcc void @_ZNSsC1ERKSs( ) to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i invoke_catch.i: ; preds = %entry @@ -316,27 +312,27 @@ _ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry ret void } -void %_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_() { +define void @_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_() { entry: ret void } -fastcc void %_ZNSbIwSt11char_traitsIwESaIwEE16_S_construct_auxIPKwEEPwT_S7_RKS1_12__false_type() { +define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE16_S_construct_auxIPKwEEPwT_S7_RKS1_12__false_type() { entry: ret void } -void %_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev() { +define void @_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev() { entry: ret void } -void %_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev() { +define void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev() { entry: unreachable } -fastcc void %_ZNSt5ctypeIcEC1EPKtbj() { +define fastcc void @_ZNSt5ctypeIcEC1EPKtbj() { entry: ret void } diff --git a/test/Transforms/Inline/alloca_test.ll b/test/Transforms/Inline/alloca_test.ll index 35ded4f..1fbd095 100644 --- a/test/Transforms/Inline/alloca_test.ll +++ b/test/Transforms/Inline/alloca_test.ll @@ -1,20 +1,21 @@ ; This test ensures that alloca instructions in the entry block for an inlined ; function are moved to the top of the function they are inlined into. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | %prcontext alloca 1 | grep Entry: +; RUN: llvm-as < %s | opt -inline | llvm-dis | %prcontext alloca 1 | grep Entry: -int %func(int %i) { - %X = alloca int - store int %i, int* %X - ret int %i +define i32 @func(i32 %i) { + %X = alloca i32 ; <i32*> [#uses=1] + store i32 %i, i32* %X + ret i32 %i } -declare void %bar() +declare void @bar() -int %main(int %argc) { +define i32 @main(i32 %argc) { Entry: - call void %bar() - %X = call int %func(int 7) - %Y = add int %X, %argc - ret int %Y + call void @bar( ) + %X = call i32 @func( i32 7 ) ; <i32> [#uses=1] + %Y = add i32 %X, %argc ; <i32> [#uses=1] + ret i32 %Y } + diff --git a/test/Transforms/Inline/basictest.ll b/test/Transforms/Inline/basictest.ll index 30d87b2..f34d164 100644 --- a/test/Transforms/Inline/basictest.ll +++ b/test/Transforms/Inline/basictest.ll @@ -1,11 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -disable-output -print +; RUN: llvm-as < %s | opt -inline -disable-output -print -int %func(int %i) { - ret int %i +define i32 @func(i32 %i) { + ret i32 %i } -int %main(int %argc) { - %X = call int %func(int 7) - %Y = add int %X, %argc - ret int %Y +define i32 @main(i32 %argc) { + %X = call i32 @func( i32 7 ) ; <i32> [#uses=1] + %Y = add i32 %X, %argc ; <i32> [#uses=1] + ret i32 %Y } + diff --git a/test/Transforms/Inline/casts.ll b/test/Transforms/Inline/casts.ll index 340b978..029d309 100644 --- a/test/Transforms/Inline/casts.ll +++ b/test/Transforms/Inline/casts.ll @@ -1,20 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | grep {ret i32 1} +; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {ret i32 1} ; ModuleID = 'short.opt.bc' -implementation ; Functions: - -int %testBool(bool %X) { - %tmp = zext bool %X to int ; <int> [#uses=1] - ret int %tmp +define i32 @testBool(i1 %X) { + %tmp = zext i1 %X to i32 ; <i32> [#uses=1] + ret i32 %tmp } -int %testByte(sbyte %X) { - %tmp = setne sbyte %X, 0 ; <bool> [#uses=1] - %tmp.i = zext bool %tmp to int ; <int> [#uses=1] - ret int %tmp.i +define i32 @testByte(i8 %X) { + %tmp = icmp ne i8 %X, 0 ; <i1> [#uses=1] + %tmp.i = zext i1 %tmp to i32 ; <i32> [#uses=1] + ret i32 %tmp.i } -int %main() { - %rslt = call int %testByte( sbyte 123) - ret int %rslt +define i32 @main() { + %rslt = call i32 @testByte( i8 123 ) ; <i32> [#uses=1] + ret i32 %rslt } + diff --git a/test/Transforms/Inline/cfg_preserve_test.ll b/test/Transforms/Inline/cfg_preserve_test.ll index c444f3a..6b6ff18 100644 --- a/test/Transforms/Inline/cfg_preserve_test.ll +++ b/test/Transforms/Inline/cfg_preserve_test.ll @@ -1,15 +1,16 @@ ; This test ensures that inlining an "empty" function does not destroy the CFG ; -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep br +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep br -int %func(int %i) { - ret int %i +define i32 @func(i32 %i) { + ret i32 %i } -declare void %bar() +declare void @bar() -int %main(int %argc) { +define i32 @main(i32 %argc) { Entry: - %X = call int %func(int 7) - ret int %X + %X = call i32 @func( i32 7 ) ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/Inline/dynamic_alloca_test.ll b/test/Transforms/Inline/dynamic_alloca_test.ll index cccf2d9..8770712 100644 --- a/test/Transforms/Inline/dynamic_alloca_test.ll +++ b/test/Transforms/Inline/dynamic_alloca_test.ll @@ -1,28 +1,31 @@ ; Test that functions with dynamic allocas get inlined in a case where ; naively inlining it would result in a miscompilation. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: grep llvm.stacksave -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep callee +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee -declare void %ext(int*) -implementation -internal void %callee(uint %N) { - %P = alloca int, uint %N ;; dynamic alloca - call void %ext(int* %P) - ret void +declare void @ext(i32*) + +define internal void @callee(i32 %N) { + %P = alloca i32, i32 %N ; <i32*> [#uses=1] + call void @ext( i32* %P ) + ret void } -void %foo(uint %N) { - br label %Loop -Loop: - %count = phi uint [0, %0], [%next, %Loop] - %next = add uint %count, 1 - call void %callee(uint %N) - %cond = seteq uint %count, 100000 - br bool %cond, label %out, label %Loop -out: - ret void +define void @foo(i32 %N) { +; <label>:0 + br label %Loop + +Loop: ; preds = %Loop, %0 + %count = phi i32 [ 0, %0 ], [ %next, %Loop ] ; <i32> [#uses=2] + %next = add i32 %count, 1 ; <i32> [#uses=1] + call void @callee( i32 %N ) + %cond = icmp eq i32 %count, 100000 ; <i1> [#uses=1] + br i1 %cond, label %out, label %Loop + +out: ; preds = %Loop + ret void } diff --git a/test/Transforms/Inline/inline-tail.ll b/test/Transforms/Inline/inline-tail.ll index 31e036f..5921655 100644 --- a/test/Transforms/Inline/inline-tail.ll +++ b/test/Transforms/Inline/inline-tail.ll @@ -1,16 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep tail +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep tail -implementation +declare void @bar(i32*) -declare void %bar(int*) - -internal void %foo(int* %P) { ;; to be inlined - tail call void %bar(int* %P) - ret void +define internal void @foo(i32* %P) { + tail call void @bar( i32* %P ) + ret void } -void %caller() { - %A = alloca int - call void %foo(int* %A) ;; not a tail call - ret void +define void @caller() { + %A = alloca i32 ; <i32*> [#uses=1] + call void @foo( i32* %A ) + ret void } + diff --git a/test/Transforms/Inline/inline_cleanup.ll b/test/Transforms/Inline/inline_cleanup.ll index 2ec67ff..89b3a82 100644 --- a/test/Transforms/Inline/inline_cleanup.ll +++ b/test/Transforms/Inline/inline_cleanup.ll @@ -1,66 +1,63 @@ ; Test that the inliner doesn't leave around dead allocas, and that it folds ; uncond branches away after it is done specializing. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: not grep {alloca.*uses=0} -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: not grep {br label} +@A = weak global i32 0 ; <i32*> [#uses=1] +@B = weak global i32 0 ; <i32*> [#uses=1] +@C = weak global i32 0 ; <i32*> [#uses=1] -%A = weak global int 0 ; <int*> [#uses=1] -%B = weak global int 0 ; <int*> [#uses=1] -%C = weak global int 0 ; <int*> [#uses=1] - -implementation ; Functions: - -internal fastcc void %foo(int %X) { +define internal fastcc void @foo(i32 %X) { entry: - %ALL = alloca int, align 4 ; <int*> [#uses=1] - %tmp1 = and int %X, 1 ; <int> [#uses=1] - %tmp1 = seteq int %tmp1, 0 ; <bool> [#uses=1] - br bool %tmp1, label %cond_next, label %cond_true + %ALL = alloca i32, align 4 ; <i32*> [#uses=1] + %tmp1 = and i32 %X, 1 ; <i32> [#uses=1] + %tmp1.upgrd.1 = icmp eq i32 %tmp1, 0 ; <i1> [#uses=1] + br i1 %tmp1.upgrd.1, label %cond_next, label %cond_true cond_true: ; preds = %entry - store int 1, int* %A + store i32 1, i32* @A br label %cond_next -cond_next: ; preds = %entry, %cond_true - %tmp4 = and int %X, 2 ; <int> [#uses=1] - %tmp4 = seteq int %tmp4, 0 ; <bool> [#uses=1] - br bool %tmp4, label %cond_next7, label %cond_true5 +cond_next: ; preds = %cond_true, %entry + %tmp4 = and i32 %X, 2 ; <i32> [#uses=1] + %tmp4.upgrd.2 = icmp eq i32 %tmp4, 0 ; <i1> [#uses=1] + br i1 %tmp4.upgrd.2, label %cond_next7, label %cond_true5 cond_true5: ; preds = %cond_next - store int 1, int* %B + store i32 1, i32* @B br label %cond_next7 -cond_next7: ; preds = %cond_next, %cond_true5 - %tmp10 = and int %X, 4 ; <int> [#uses=1] - %tmp10 = seteq int %tmp10, 0 ; <bool> [#uses=1] - br bool %tmp10, label %cond_next13, label %cond_true11 +cond_next7: ; preds = %cond_true5, %cond_next + %tmp10 = and i32 %X, 4 ; <i32> [#uses=1] + %tmp10.upgrd.3 = icmp eq i32 %tmp10, 0 ; <i1> [#uses=1] + br i1 %tmp10.upgrd.3, label %cond_next13, label %cond_true11 cond_true11: ; preds = %cond_next7 - store int 1, int* %C + store i32 1, i32* @C br label %cond_next13 -cond_next13: ; preds = %cond_next7, %cond_true11 - %tmp16 = and int %X, 8 ; <int> [#uses=1] - %tmp16 = seteq int %tmp16, 0 ; <bool> [#uses=1] - br bool %tmp16, label %UnifiedReturnBlock, label %cond_true17 +cond_next13: ; preds = %cond_true11, %cond_next7 + %tmp16 = and i32 %X, 8 ; <i32> [#uses=1] + %tmp16.upgrd.4 = icmp eq i32 %tmp16, 0 ; <i1> [#uses=1] + br i1 %tmp16.upgrd.4, label %UnifiedReturnBlock, label %cond_true17 cond_true17: ; preds = %cond_next13 - call void %ext( int* %ALL ) + call void @ext( i32* %ALL ) ret void UnifiedReturnBlock: ; preds = %cond_next13 ret void } -declare void %ext(int*) +declare void @ext(i32*) -void %test() { +define void @test() { entry: - tail call fastcc void %foo( int 1 ) - tail call fastcc void %foo( int 2 ) - tail call fastcc void %foo( int 3 ) - tail call fastcc void %foo( int 8 ) + tail call fastcc void @foo( i32 1 ) + tail call fastcc void @foo( i32 2 ) + tail call fastcc void @foo( i32 3 ) + tail call fastcc void @foo( i32 8 ) ret void } diff --git a/test/Transforms/Inline/inline_constprop.ll b/test/Transforms/Inline/inline_constprop.ll index 4b183e2..4744c86 100644 --- a/test/Transforms/Inline/inline_constprop.ll +++ b/test/Transforms/Inline/inline_constprop.ll @@ -1,14 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep callee -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep div +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep div -implementation -internal int %callee(int %A, int %B) { - %C = div int %A, %B - ret int %C +define internal i32 @callee(i32 %A, i32 %B) { + %C = sdiv i32 %A, %B ; <i32> [#uses=1] + ret i32 %C } -int %test() { - %X = call int %callee(int 10, int 3) - ret int %X +define i32 @test() { + %X = call i32 @callee( i32 10, i32 3 ) ; <i32> [#uses=1] + ret i32 %X } + diff --git a/test/Transforms/Inline/inline_dce.ll b/test/Transforms/Inline/inline_dce.ll index 5cb118f..b48a9a7 100644 --- a/test/Transforms/Inline/inline_dce.ll +++ b/test/Transforms/Inline/inline_dce.ll @@ -1,26 +1,25 @@ ; This checks to ensure that the inline pass deletes functions if they get ; inlined into all of their callers. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: not grep %reallysmall -implementation - -internal int %reallysmall(int %A) { - ret int %A +define internal i32 @reallysmall(i32 %A) { + ret i32 %A } -void %caller1() { - call int %reallysmall(int 5) - ret void +define void @caller1() { + call i32 @reallysmall( i32 5 ) ; <i32>:1 [#uses=0] + ret void } -void %caller2(int %A) { - call int %reallysmall(int %A) - ret void +define void @caller2(i32 %A) { + call i32 @reallysmall( i32 %A ) ; <i32>:1 [#uses=0] + ret void } -int %caller3(int %A) { - %B = call int %reallysmall(int %A) - ret int %B +define i32 @caller3(i32 %A) { + %B = call i32 @reallysmall( i32 %A ) ; <i32> [#uses=1] + ret i32 %B } + diff --git a/test/Transforms/Inline/inline_prune.ll b/test/Transforms/Inline/inline_prune.ll index 85a6343..fcd8321 100644 --- a/test/Transforms/Inline/inline_prune.ll +++ b/test/Transforms/Inline/inline_prune.ll @@ -1,40 +1,45 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: not grep {callee\[12\](} -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep mul - -implementation - -internal int %callee1(int %A, int %B) { - %cond = seteq int %A, 123 - br bool %cond, label %T, label %F -T: - %C = mul int %B, %B - ret int %C -F: - ret int 0 +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep mul + +define internal i32 @callee1(i32 %A, i32 %B) { + %cond = icmp eq i32 %A, 123 ; <i1> [#uses=1] + br i1 %cond, label %T, label %F + +T: ; preds = %0 + %C = mul i32 %B, %B ; <i32> [#uses=1] + ret i32 %C + +F: ; preds = %0 + ret i32 0 } -internal int %callee2(int %A, int %B) { - switch int %A, label %T [ - int 10, label %F - int 1234, label %G +define internal i32 @callee2(i32 %A, i32 %B) { + switch i32 %A, label %T [ + i32 10, label %F + i32 1234, label %G ] - %cond = seteq int %A, 123 - br bool %cond, label %T, label %F -T: - %C = mul int %B, %B - ret int %C -F: - ret int 0 -G: - %D = mul int %B, %B - %E = mul int %D, %B - ret int %E + ; No predecessors! + %cond = icmp eq i32 %A, 123 ; <i1> [#uses=1] + br i1 %cond, label %T, label %F + +T: ; preds = %1, %0 + %C = mul i32 %B, %B ; <i32> [#uses=1] + ret i32 %C + +F: ; preds = %1, %0 + ret i32 0 + +G: ; preds = %0 + %D = mul i32 %B, %B ; <i32> [#uses=1] + %E = mul i32 %D, %B ; <i32> [#uses=1] + ret i32 %E } -int %test(int %A) { - %X = call int %callee1(int 10, int %A) - %Y = call int %callee2(int 10, int %A) - %Z = add int %X, %Y - ret int %Z +define i32 @test(i32 %A) { + %X = call i32 @callee1( i32 10, i32 %A ) ; <i32> [#uses=1] + %Y = call i32 @callee2( i32 10, i32 %A ) ; <i32> [#uses=1] + %Z = add i32 %X, %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/Inline/invoke_test-1.ll b/test/Transforms/Inline/invoke_test-1.ll index 9e69018..1fd3317 100644 --- a/test/Transforms/Inline/invoke_test-1.ll +++ b/test/Transforms/Inline/invoke_test-1.ll @@ -1,23 +1,24 @@ ; Test that we can inline a simple function, turning the calls in it into invoke ; instructions -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline | llvm-dis | \ ; RUN: not grep {call\[^e\]} -declare void %might_throw() +declare void @might_throw() -implementation - -internal void %callee() { - call void %might_throw() - ret void +define internal void @callee() { + call void @might_throw( ) + ret void } ; caller returns true if might_throw throws an exception... -int %caller() { - invoke void %callee() to label %cont except label %exc -cont: - ret int 0 -exc: - ret int 1 +define i32 @caller() { + invoke void @callee( ) + to label %cont unwind label %exc + +cont: ; preds = %0 + ret i32 0 + +exc: ; preds = %0 + ret i32 1 } diff --git a/test/Transforms/Inline/invoke_test-2.ll b/test/Transforms/Inline/invoke_test-2.ll index 9262090..68b8bd8 100644 --- a/test/Transforms/Inline/invoke_test-2.ll +++ b/test/Transforms/Inline/invoke_test-2.ll @@ -1,28 +1,30 @@ ; Test that if an invoked function is inlined, and if that function cannot ; throw, that the dead handler is now unreachable. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline -simplifycfg | llvm-dis | \ +; RUN: llvm-as < %s | opt -inline -simplifycfg | llvm-dis | \ ; RUN: not grep UnreachableExceptionHandler -declare void %might_throw() +declare void @might_throw() -implementation +define internal i32 @callee() { + invoke void @might_throw( ) + to label %cont unwind label %exc -internal int %callee() { - invoke void %might_throw() to label %cont except label %exc -cont: - ret int 0 -exc: - ; This just consumes the exception! - ret int 1 +cont: ; preds = %0 + ret i32 0 + +exc: ; preds = %0 + ret i32 1 } ; caller returns true if might_throw throws an exception... callee cannot throw. -int %caller() { - %X = invoke int %callee() to label %cont - except label %UnreachableExceptionHandler -cont: - ret int %X -UnreachableExceptionHandler: - ret int -1 ; This is dead! +define i32 @caller() { + %X = invoke i32 @callee( ) + to label %cont unwind label %UnreachableExceptionHandler ; <i32> [#uses=1] + +cont: ; preds = %0 + ret i32 %X + +UnreachableExceptionHandler: ; preds = %0 + ret i32 -1 } diff --git a/test/Transforms/Inline/invoke_test-3.ll b/test/Transforms/Inline/invoke_test-3.ll index b471afe..a5deec6 100644 --- a/test/Transforms/Inline/invoke_test-3.ll +++ b/test/Transforms/Inline/invoke_test-3.ll @@ -1,28 +1,32 @@ ; Test that any rethrown exceptions in an inlined function are automatically ; turned into branches to the invoke destination. -; RUN: llvm-upgrade < %s | llvm-as | opt -inline | llvm-dis | not grep unwind$ +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep unwind$ -declare void %might_throw() +declare void @might_throw() -implementation +define internal i32 @callee() { + invoke void @might_throw( ) + to label %cont unwind label %exc -internal int %callee() { - invoke void %might_throw() to label %cont except label %exc -cont: - ret int 0 -exc: ; This just rethrows the exception! - unwind +cont: ; preds = %0 + ret i32 0 + +exc: ; preds = %0a + ; This just rethrows the exception! + unwind } -; caller returns true if might_throw throws an exception... which gets +; caller returns true if might_throw throws an exception... which gets ; propagated by callee. -int %caller() { - %X = invoke int %callee() to label %cont - except label %Handler -cont: - ret int %X -Handler: - ; This consumes an exception thrown by might_throw - ret int 1 +define i32 @caller() { + %X = invoke i32 @callee( ) + to label %cont unwind label %Handler ; <i32> [#uses=1] + +cont: ; preds = %0 + ret i32 %X + +Handler: ; preds = %0 +; This consumes an exception thrown by might_throw + ret i32 1 } diff --git a/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll b/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll index dd683a3..94ce68e 100644 --- a/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll +++ b/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll @@ -1,11 +1,9 @@ ; This testcase causes instcombine to hang. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine +; RUN: llvm-as < %s | opt -instcombine -implementation +define void @test(i32 %X) { + %reg117 = add i32 %X, 0 ; <i32> [#uses=0] + ret void +} -void "test"(int %X) -begin - %reg117 = add int %X, 0 - ret void -end diff --git a/test/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll b/test/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll index 5e6d63b..1c93d24 100644 --- a/test/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll +++ b/test/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll @@ -1,510 +1,506 @@ -; This testcase, obviously distilled from a large program (bzip2 from -; Specint2000) caused instcombine to fail because it got the same instruction -; on it's worklist more than once (which is ok), but then deleted the -; instruction. Since the inst stayed on the worklist, as soon as it came back +; This testcase, obviously distilled from a large program (bzip2 from +; Specint2000) caused instcombine to fail because it got the same instruction +; on it's worklist more than once (which is ok), but then deleted the +; instruction. Since the inst stayed on the worklist, as soon as it came back ; up to be processed, bad things happened, and opt asserted. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -; END. +; RUN: llvm-as < %s | opt -instcombine ; - -%.LC0 = internal global [21 x sbyte] c"hbMakeCodeLengths(1)\00" ; <[21 x sbyte]*> [#uses=1] -%.LC1 = internal global [21 x sbyte] c"hbMakeCodeLengths(2)\00" ; <[21 x sbyte]*> [#uses=1] - -implementation ; Functions: - -void %hbMakeCodeLengths(ubyte* %len, int* %freq, int %alphaSize, int %maxLen) { -bb0: ;[#uses=0] - %len = alloca ubyte* ; <ubyte**> [#uses=2] - store ubyte* %len, ubyte** %len - %freq = alloca int* ; <int**> [#uses=2] - store int* %freq, int** %freq - %alphaSize = alloca int ; <int*> [#uses=2] - store int %alphaSize, int* %alphaSize - %maxLen = alloca int ; <int*> [#uses=2] - store int %maxLen, int* %maxLen - %heap = alloca int, uint 260 ; <int*> [#uses=27] - %weight = alloca int, uint 516 ; <int*> [#uses=18] - %parent = alloca int, uint 516 ; <int*> [#uses=7] +@.LC0 = internal global [21 x i8] c"hbMakeCodeLengths(1)\00" ; <[21 x i8]*> [#uses=1] +@.LC1 = internal global [21 x i8] c"hbMakeCodeLengths(2)\00" ; <[21 x i8]*> [#uses=1] + +define void @hbMakeCodeLengths(i8* %len, i32* %freq, i32 %alphaSize, i32 %maxLen) { +bb0: + %len.upgrd.1 = alloca i8* ; <i8**> [#uses=2] + store i8* %len, i8** %len.upgrd.1 + %freq.upgrd.2 = alloca i32* ; <i32**> [#uses=2] + store i32* %freq, i32** %freq.upgrd.2 + %alphaSize.upgrd.3 = alloca i32 ; <i32*> [#uses=2] + store i32 %alphaSize, i32* %alphaSize.upgrd.3 + %maxLen.upgrd.4 = alloca i32 ; <i32*> [#uses=2] + store i32 %maxLen, i32* %maxLen.upgrd.4 + %heap = alloca i32, i32 260 ; <i32*> [#uses=27] + %weight = alloca i32, i32 516 ; <i32*> [#uses=18] + %parent = alloca i32, i32 516 ; <i32*> [#uses=7] br label %bb1 -bb1: ;[#uses=2] - %reg107 = load ubyte** %len ; <ubyte*> [#uses=1] - %reg108 = load int** %freq ; <int*> [#uses=1] - %reg109 = load int* %alphaSize ; <int> [#uses=10] - %reg110 = load int* %maxLen ; <int> [#uses=1] - %cond747 = setge int 0, %reg109 ; <bool> [#uses=1] - br bool %cond747, label %bb6, label %bb2 - -bb2: ;[#uses=2] - %reg591 = phi int [ %reg594, %bb5 ], [ 0, %bb1 ] ; <int> [#uses=3] - %reg591-idxcast1 = cast int %reg591 to uint ; <uint> [#uses=1] - %reg591-idxcast1-offset = add uint %reg591-idxcast1, 1 ; <uint> [#uses=1] - %reg591-idxcast1-offset = cast uint %reg591-idxcast1-offset to long ; <long> [#uses=1] - %reg126 = getelementptr int* %weight, long %reg591-idxcast1-offset ; <int*> [#uses=1] - %reg591-idxcast = cast int %reg591 to long ; <long> [#uses=1] - %reg132 = getelementptr int* %reg108, long %reg591-idxcast ; <int*> [#uses=1] - %reg133 = load int* %reg132 ; <int> [#uses=2] - %cond748 = seteq int %reg133, 0 ; <bool> [#uses=1] - br bool %cond748, label %bb4, label %bb3 - -bb3: ;[#uses=2] - %reg127 = shl int %reg133, ubyte 8 ; <int> [#uses=1] +bb1: ; preds = %bb0 + %reg107 = load i8** %len.upgrd.1 ; <i8*> [#uses=1] + %reg108 = load i32** %freq.upgrd.2 ; <i32*> [#uses=1] + %reg109 = load i32* %alphaSize.upgrd.3 ; <i32> [#uses=10] + %reg110 = load i32* %maxLen.upgrd.4 ; <i32> [#uses=1] + %cond747 = icmp sge i32 0, %reg109 ; <i1> [#uses=1] + br i1 %cond747, label %bb6, label %bb2 + +bb2: ; preds = %bb5, %bb1 + %reg591 = phi i32 [ %reg594, %bb5 ], [ 0, %bb1 ] ; <i32> [#uses=3] + %reg591-idxcast1 = bitcast i32 %reg591 to i32 ; <i32> [#uses=1] + %reg591-idxcast1-offset = add i32 %reg591-idxcast1, 1 ; <i32> [#uses=1] + %reg591-idxcast1-offset.upgrd.5 = zext i32 %reg591-idxcast1-offset to i64 ; <i64> [#uses=1] + %reg126 = getelementptr i32* %weight, i64 %reg591-idxcast1-offset.upgrd.5 ; <i32*> [#uses=1] + %reg591-idxcast = sext i32 %reg591 to i64 ; <i64> [#uses=1] + %reg132 = getelementptr i32* %reg108, i64 %reg591-idxcast ; <i32*> [#uses=1] + %reg133 = load i32* %reg132 ; <i32> [#uses=2] + %cond748 = icmp eq i32 %reg133, 0 ; <i1> [#uses=1] + br i1 %cond748, label %bb4, label %bb3 + +bb3: ; preds = %bb2 + %reg127 = shl i32 %reg133, 8 ; <i32> [#uses=1] br label %bb5 -bb4: ;[#uses=2] +bb4: ; preds = %bb2 br label %bb5 -bb5: ;[#uses=3] - %reg593 = phi int [ 256, %bb4 ], [ %reg127, %bb3 ] ; <int> [#uses=1] - store int %reg593, int* %reg126 - %reg594 = add int %reg591, 1 ; <int> [#uses=2] - %cond749 = setlt int %reg594, %reg109 ; <bool> [#uses=1] - br bool %cond749, label %bb2, label %bb6 - -bb6: ;[#uses=6] - store int 0, int* %heap - store int 0, int* %weight - store int -2, int* %parent - %cond750 = setgt int 1, %reg109 ; <bool> [#uses=1] - br bool %cond750, label %bb11, label %bb7 - -bb7: ;[#uses=3] - %reg597 = phi uint [ %reg598, %bb10 ], [ 0, %bb6 ] ; <uint> [#uses=5] - %reg597-casted = cast uint %reg597 to int ; <int> [#uses=1] - %reg596 = add int %reg597-casted, 1 ; <int> [#uses=3] - %reg597-offset = add uint %reg597, 1 ; <uint> [#uses=1] - %reg597-offset = cast uint %reg597-offset to long ; <long> [#uses=1] - %reg149 = getelementptr int* %parent, long %reg597-offset ; <int*> [#uses=1] - store int -1, int* %reg149 - %reg598 = add uint %reg597, 1 ; <uint> [#uses=3] - %reg597-offset1 = add uint %reg597, 1 ; <uint> [#uses=1] - %reg597-offset1 = cast uint %reg597-offset1 to long ; <long> [#uses=1] - %reg157 = getelementptr int* %heap, long %reg597-offset1 ; <int*> [#uses=1] - store int %reg596, int* %reg157 +bb5: ; preds = %bb4, %bb3 + %reg593 = phi i32 [ 256, %bb4 ], [ %reg127, %bb3 ] ; <i32> [#uses=1] + store i32 %reg593, i32* %reg126 + %reg594 = add i32 %reg591, 1 ; <i32> [#uses=2] + %cond749 = icmp slt i32 %reg594, %reg109 ; <i1> [#uses=1] + br i1 %cond749, label %bb2, label %bb6 + +bb6: ; preds = %bb43, %bb41, %bb5, %bb1 + store i32 0, i32* %heap + store i32 0, i32* %weight + store i32 -2, i32* %parent + %cond750 = icmp sgt i32 1, %reg109 ; <i1> [#uses=1] + br i1 %cond750, label %bb11, label %bb7 + +bb7: ; preds = %bb10, %bb6 + %reg597 = phi i32 [ %reg598, %bb10 ], [ 0, %bb6 ] ; <i32> [#uses=5] + %reg597-casted = bitcast i32 %reg597 to i32 ; <i32> [#uses=1] + %reg596 = add i32 %reg597-casted, 1 ; <i32> [#uses=3] + %reg597-offset = add i32 %reg597, 1 ; <i32> [#uses=1] + %reg597-offset.upgrd.6 = zext i32 %reg597-offset to i64 ; <i64> [#uses=1] + %reg149 = getelementptr i32* %parent, i64 %reg597-offset.upgrd.6 ; <i32*> [#uses=1] + store i32 -1, i32* %reg149 + %reg598 = add i32 %reg597, 1 ; <i32> [#uses=3] + %reg597-offset1 = add i32 %reg597, 1 ; <i32> [#uses=1] + %reg597-offset1.upgrd.7 = zext i32 %reg597-offset1 to i64 ; <i64> [#uses=1] + %reg157 = getelementptr i32* %heap, i64 %reg597-offset1.upgrd.7 ; <i32*> [#uses=1] + store i32 %reg596, i32* %reg157 br label %bb9 -bb8: ;[#uses=2] - %reg599 = cast uint %reg599 to long ; <long> [#uses=1] - %reg198 = getelementptr int* %heap, long %reg599 ; <int*> [#uses=1] - store int %reg182, int* %reg198 - %cast938 = cast int %reg174 to uint ; <uint> [#uses=1] +bb8: ; preds = %bb9 + %reg599 = zext i32 %reg599.upgrd.8 to i64 ; <i64> [#uses=1] + %reg198 = getelementptr i32* %heap, i64 %reg599 ; <i32*> [#uses=1] + store i32 %reg182, i32* %reg198 + %cast938 = bitcast i32 %reg174 to i32 ; <i32> [#uses=1] br label %bb9 -bb9: ;[#uses=2] - %reg599 = phi uint [ %cast938, %bb8 ], [ %reg598, %bb7 ] ; <uint> [#uses=3] - %cast807 = cast uint %reg599 to int ; <int> [#uses=1] - %reg597-offset2 = add uint %reg597, 1 ; <uint> [#uses=1] - %reg597-offset2 = cast uint %reg597-offset2 to long ; <long> [#uses=1] - %reg173 = getelementptr int* %weight, long %reg597-offset2 ; <int*> [#uses=1] - %reg174 = shr int %cast807, ubyte 1 ; <int> [#uses=2] - %reg174-idxcast = cast int %reg174 to uint ; <uint> [#uses=1] - cast uint %reg174-idxcast to long ; <long>:0 [#uses=1] - %reg181 = getelementptr int* %heap, long %0 ; <int*> [#uses=1] - %reg182 = load int* %reg181 ; <int> [#uses=2] - %reg182-idxcast = cast int %reg182 to uint ; <uint> [#uses=1] - cast uint %reg182-idxcast to long ; <long>:1 [#uses=1] - %reg189 = getelementptr int* %weight, long %1 ; <int*> [#uses=1] - %reg190 = load int* %reg173 ; <int> [#uses=1] - %reg191 = load int* %reg189 ; <int> [#uses=1] - %cond751 = setlt int %reg190, %reg191 ; <bool> [#uses=1] - br bool %cond751, label %bb8, label %bb10 - -bb10: ;[#uses=3] - cast uint %reg599 to long ; <long>:2 [#uses=1] - %reg214 = getelementptr int* %heap, long %2 ; <int*> [#uses=1] - store int %reg596, int* %reg214 - %reg601 = add int %reg596, 1 ; <int> [#uses=1] - %cond752 = setle int %reg601, %reg109 ; <bool> [#uses=1] - br bool %cond752, label %bb7, label %bb11 - -bb11: ;[#uses=2] - %reg602 = phi uint [ %reg598, %bb10 ], [ 0, %bb6 ] ; <uint> [#uses=3] - %cast819 = cast uint %reg602 to int ; <int> [#uses=1] - %cast818 = cast uint %reg602 to int ; <int> [#uses=1] - %cond753 = setle int %cast818, 259 ; <bool> [#uses=1] - br bool %cond753, label %bb13, label %bb12 - -bb12: ;[#uses=1] - cast uint 0 to long ; <long>:3 [#uses=1] - cast uint 0 to long ; <long>:4 [#uses=1] - %cast784 = getelementptr [21 x sbyte]* %.LC0, long %3, long %4 ; <sbyte*> [#uses=1] - call void %panic( sbyte* %cast784 ) +bb9: ; preds = %bb8, %bb7 + %reg599.upgrd.8 = phi i32 [ %cast938, %bb8 ], [ %reg598, %bb7 ] ; <i32> [#uses=3] + %cast807 = bitcast i32 %reg599.upgrd.8 to i32 ; <i32> [#uses=1] + %reg597-offset2 = add i32 %reg597, 1 ; <i32> [#uses=1] + %reg597-offset2.upgrd.9 = zext i32 %reg597-offset2 to i64 ; <i64> [#uses=1] + %reg173 = getelementptr i32* %weight, i64 %reg597-offset2.upgrd.9 ; <i32*> [#uses=1] + %reg174 = ashr i32 %cast807, 1 ; <i32> [#uses=2] + %reg174-idxcast = bitcast i32 %reg174 to i32 ; <i32> [#uses=1] + zext i32 %reg174-idxcast to i64 ; <i64>:0 [#uses=1] + %reg181 = getelementptr i32* %heap, i64 %0 ; <i32*> [#uses=1] + %reg182 = load i32* %reg181 ; <i32> [#uses=2] + %reg182-idxcast = bitcast i32 %reg182 to i32 ; <i32> [#uses=1] + zext i32 %reg182-idxcast to i64 ; <i64>:1 [#uses=1] + %reg189 = getelementptr i32* %weight, i64 %1 ; <i32*> [#uses=1] + %reg190 = load i32* %reg173 ; <i32> [#uses=1] + %reg191 = load i32* %reg189 ; <i32> [#uses=1] + %cond751 = icmp slt i32 %reg190, %reg191 ; <i1> [#uses=1] + br i1 %cond751, label %bb8, label %bb10 + +bb10: ; preds = %bb9 + zext i32 %reg599.upgrd.8 to i64 ; <i64>:2 [#uses=1] + %reg214 = getelementptr i32* %heap, i64 %2 ; <i32*> [#uses=1] + store i32 %reg596, i32* %reg214 + %reg601 = add i32 %reg596, 1 ; <i32> [#uses=1] + %cond752 = icmp sle i32 %reg601, %reg109 ; <i1> [#uses=1] + br i1 %cond752, label %bb7, label %bb11 + +bb11: ; preds = %bb10, %bb6 + %reg602 = phi i32 [ %reg598, %bb10 ], [ 0, %bb6 ] ; <i32> [#uses=3] + %cast819 = bitcast i32 %reg602 to i32 ; <i32> [#uses=1] + %cast818 = bitcast i32 %reg602 to i32 ; <i32> [#uses=1] + %cond753 = icmp sle i32 %cast818, 259 ; <i1> [#uses=1] + br i1 %cond753, label %bb13, label %bb12 + +bb12: ; preds = %bb11 + zext i32 0 to i64 ; <i64>:3 [#uses=1] + zext i32 0 to i64 ; <i64>:4 [#uses=1] + %cast784 = getelementptr [21 x i8]* @.LC0, i64 %3, i64 %4 ; <i8*> [#uses=1] + call void @panic( i8* %cast784 ) br label %bb13 -bb13: ;[#uses=4] - %cond754 = setle int %cast819, 1 ; <bool> [#uses=1] - %cast918 = cast int %reg109 to uint ; <uint> [#uses=1] - %cast940 = cast uint %reg602 to int ; <int> [#uses=1] - %cast942 = cast int %reg109 to uint ; <uint> [#uses=1] - br bool %cond754, label %bb32, label %bb14 - -bb14: ;[#uses=5] - %cann-indvar1 = phi uint [ 0, %bb13 ], [ %add1-indvar1, %bb31 ] ; <uint> [#uses=3] - %cann-indvar1-casted = cast uint %cann-indvar1 to int ; <int> [#uses=1] - %reg603-scale = mul int %cann-indvar1-casted, -1 ; <int> [#uses=1] - %reg603 = add int %reg603-scale, %cast940 ; <int> [#uses=4] - %reg604 = add uint %cann-indvar1, %cast942 ; <uint> [#uses=4] - %add1-indvar1 = add uint %cann-indvar1, 1 ; <uint> [#uses=1] - cast uint 1 to long ; <long>:5 [#uses=1] - %reg7551 = getelementptr int* %heap, long %5 ; <int*> [#uses=1] - %reg113 = load int* %reg7551 ; <int> [#uses=2] - %reg603-idxcast = cast int %reg603 to uint ; <uint> [#uses=1] - cast uint %reg603-idxcast to long ; <long>:6 [#uses=1] - %reg222 = getelementptr int* %heap, long %6 ; <int*> [#uses=1] - %reg223 = load int* %reg222 ; <int> [#uses=1] - cast uint 1 to long ; <long>:7 [#uses=1] - %reg7561 = getelementptr int* %heap, long %7 ; <int*> [#uses=1] - store int %reg223, int* %reg7561 - %reg605 = add int %reg603, -1 ; <int> [#uses=4] - cast uint 1 to long ; <long>:8 [#uses=1] - %reg757 = getelementptr int* %heap, long %8 ; <int*> [#uses=1] - %reg226 = load int* %reg757 ; <int> [#uses=2] - %cond758 = setgt int 2, %reg605 ; <bool> [#uses=1] - br bool %cond758, label %bb20, label %bb15 - -bb15: ;[#uses=3] - %reg606 = phi int [ %reg611, %bb19 ], [ 2, %bb14 ] ; <int> [#uses=6] - %reg607 = phi int [ %reg609, %bb19 ], [ 1, %bb14 ] ; <int> [#uses=2] - %cond759 = setge int %reg606, %reg605 ; <bool> [#uses=1] - br bool %cond759, label %bb18, label %bb16 - -bb16: ;[#uses=2] - %reg606-idxcast = cast int %reg606 to uint ; <uint> [#uses=1] - %reg606-idxcast-offset = add uint %reg606-idxcast, 1 ; <uint> [#uses=1] - cast uint %reg606-idxcast-offset to long ; <long>:9 [#uses=1] - %reg241 = getelementptr int* %heap, long %9 ; <int*> [#uses=1] - %reg242 = load int* %reg241 ; <int> [#uses=1] - %reg242-idxcast = cast int %reg242 to uint ; <uint> [#uses=1] - cast uint %reg242-idxcast to long ; <long>:10 [#uses=1] - %reg249 = getelementptr int* %weight, long %10 ; <int*> [#uses=1] - %reg606-idxcast1 = cast int %reg606 to uint ; <uint> [#uses=1] - cast uint %reg606-idxcast1 to long ; <long>:11 [#uses=1] - %reg256 = getelementptr int* %heap, long %11 ; <int*> [#uses=1] - %reg257 = load int* %reg256 ; <int> [#uses=1] - %reg257-idxcast = cast int %reg257 to uint ; <uint> [#uses=1] - cast uint %reg257-idxcast to long ; <long>:12 [#uses=1] - %reg264 = getelementptr int* %weight, long %12 ; <int*> [#uses=1] - %reg265 = load int* %reg249 ; <int> [#uses=1] - %reg266 = load int* %reg264 ; <int> [#uses=1] - %cond760 = setge int %reg265, %reg266 ; <bool> [#uses=1] - br bool %cond760, label %bb18, label %bb17 - -bb17: ;[#uses=2] - %reg608 = add int %reg606, 1 ; <int> [#uses=1] +bb13: ; preds = %bb12, %bb11 + %cond754 = icmp sle i32 %cast819, 1 ; <i1> [#uses=1] + %cast918 = bitcast i32 %reg109 to i32 ; <i32> [#uses=1] + %cast940 = bitcast i32 %reg602 to i32 ; <i32> [#uses=1] + %cast942 = bitcast i32 %reg109 to i32 ; <i32> [#uses=1] + br i1 %cond754, label %bb32, label %bb14 + +bb14: ; preds = %bb31, %bb13 + %cann-indvar1 = phi i32 [ 0, %bb13 ], [ %add1-indvar1, %bb31 ] ; <i32> [#uses=3] + %cann-indvar1-casted = bitcast i32 %cann-indvar1 to i32 ; <i32> [#uses=1] + %reg603-scale = mul i32 %cann-indvar1-casted, -1 ; <i32> [#uses=1] + %reg603 = add i32 %reg603-scale, %cast940 ; <i32> [#uses=4] + %reg604 = add i32 %cann-indvar1, %cast942 ; <i32> [#uses=4] + %add1-indvar1 = add i32 %cann-indvar1, 1 ; <i32> [#uses=1] + zext i32 1 to i64 ; <i64>:5 [#uses=1] + %reg7551 = getelementptr i32* %heap, i64 %5 ; <i32*> [#uses=1] + %reg113 = load i32* %reg7551 ; <i32> [#uses=2] + %reg603-idxcast = bitcast i32 %reg603 to i32 ; <i32> [#uses=1] + zext i32 %reg603-idxcast to i64 ; <i64>:6 [#uses=1] + %reg222 = getelementptr i32* %heap, i64 %6 ; <i32*> [#uses=1] + %reg223 = load i32* %reg222 ; <i32> [#uses=1] + zext i32 1 to i64 ; <i64>:7 [#uses=1] + %reg7561 = getelementptr i32* %heap, i64 %7 ; <i32*> [#uses=1] + store i32 %reg223, i32* %reg7561 + %reg605 = add i32 %reg603, -1 ; <i32> [#uses=4] + zext i32 1 to i64 ; <i64>:8 [#uses=1] + %reg757 = getelementptr i32* %heap, i64 %8 ; <i32*> [#uses=1] + %reg226 = load i32* %reg757 ; <i32> [#uses=2] + %cond758 = icmp sgt i32 2, %reg605 ; <i1> [#uses=1] + br i1 %cond758, label %bb20, label %bb15 + +bb15: ; preds = %bb19, %bb14 + %reg606 = phi i32 [ %reg611, %bb19 ], [ 2, %bb14 ] ; <i32> [#uses=6] + %reg607 = phi i32 [ %reg609, %bb19 ], [ 1, %bb14 ] ; <i32> [#uses=2] + %cond759 = icmp sge i32 %reg606, %reg605 ; <i1> [#uses=1] + br i1 %cond759, label %bb18, label %bb16 + +bb16: ; preds = %bb15 + %reg606-idxcast = bitcast i32 %reg606 to i32 ; <i32> [#uses=1] + %reg606-idxcast-offset = add i32 %reg606-idxcast, 1 ; <i32> [#uses=1] + zext i32 %reg606-idxcast-offset to i64 ; <i64>:9 [#uses=1] + %reg241 = getelementptr i32* %heap, i64 %9 ; <i32*> [#uses=1] + %reg242 = load i32* %reg241 ; <i32> [#uses=1] + %reg242-idxcast = bitcast i32 %reg242 to i32 ; <i32> [#uses=1] + zext i32 %reg242-idxcast to i64 ; <i64>:10 [#uses=1] + %reg249 = getelementptr i32* %weight, i64 %10 ; <i32*> [#uses=1] + %reg606-idxcast1 = bitcast i32 %reg606 to i32 ; <i32> [#uses=1] + zext i32 %reg606-idxcast1 to i64 ; <i64>:11 [#uses=1] + %reg256 = getelementptr i32* %heap, i64 %11 ; <i32*> [#uses=1] + %reg257 = load i32* %reg256 ; <i32> [#uses=1] + %reg257-idxcast = bitcast i32 %reg257 to i32 ; <i32> [#uses=1] + zext i32 %reg257-idxcast to i64 ; <i64>:12 [#uses=1] + %reg264 = getelementptr i32* %weight, i64 %12 ; <i32*> [#uses=1] + %reg265 = load i32* %reg249 ; <i32> [#uses=1] + %reg266 = load i32* %reg264 ; <i32> [#uses=1] + %cond760 = icmp sge i32 %reg265, %reg266 ; <i1> [#uses=1] + br i1 %cond760, label %bb18, label %bb17 + +bb17: ; preds = %bb16 + %reg608 = add i32 %reg606, 1 ; <i32> [#uses=1] br label %bb18 -bb18: ;[#uses=4] - %reg609 = phi int [ %reg608, %bb17 ], [ %reg606, %bb16 ], [ %reg606, %bb15 ] ; <int> [#uses=4] - %reg226-idxcast = cast int %reg226 to uint ; <uint> [#uses=1] - cast uint %reg226-idxcast to long ; <long>:13 [#uses=1] - %reg273 = getelementptr int* %weight, long %13 ; <int*> [#uses=1] - %reg609-idxcast = cast int %reg609 to uint ; <uint> [#uses=1] - cast uint %reg609-idxcast to long ; <long>:14 [#uses=1] - %reg280 = getelementptr int* %heap, long %14 ; <int*> [#uses=1] - %reg281 = load int* %reg280 ; <int> [#uses=2] - %reg281-idxcast = cast int %reg281 to uint ; <uint> [#uses=1] - cast uint %reg281-idxcast to long ; <long>:15 [#uses=1] - %reg288 = getelementptr int* %weight, long %15 ; <int*> [#uses=1] - %reg289 = load int* %reg273 ; <int> [#uses=1] - %reg290 = load int* %reg288 ; <int> [#uses=1] - %cond761 = setlt int %reg289, %reg290 ; <bool> [#uses=1] - br bool %cond761, label %bb20, label %bb19 - -bb19: ;[#uses=4] - %reg607-idxcast = cast int %reg607 to uint ; <uint> [#uses=1] - cast uint %reg607-idxcast to long ; <long>:16 [#uses=1] - %reg297 = getelementptr int* %heap, long %16 ; <int*> [#uses=1] - store int %reg281, int* %reg297 - %reg611 = shl int %reg609, ubyte 1 ; <int> [#uses=2] - %cond762 = setle int %reg611, %reg605 ; <bool> [#uses=1] - br bool %cond762, label %bb15, label %bb20 - -bb20: ;[#uses=6] - %reg612 = phi int [ %reg609, %bb19 ], [ %reg607, %bb18 ], [ 1, %bb14 ] ; <int> [#uses=1] - %reg612-idxcast = cast int %reg612 to uint ; <uint> [#uses=1] - cast uint %reg612-idxcast to long ; <long>:17 [#uses=1] - %reg312 = getelementptr int* %heap, long %17 ; <int*> [#uses=1] - store int %reg226, int* %reg312 - cast uint 1 to long ; <long>:18 [#uses=1] - %reg7631 = getelementptr int* %heap, long %18 ; <int*> [#uses=1] - %reg114 = load int* %reg7631 ; <int> [#uses=2] - %reg603-idxcast1 = cast int %reg603 to uint ; <uint> [#uses=1] - %reg603-idxcast1-offset = add uint %reg603-idxcast1, 1073741823 ; <uint> [#uses=1] - cast uint %reg603-idxcast1-offset to long ; <long>:19 [#uses=1] - %reg319 = getelementptr int* %heap, long %19 ; <int*> [#uses=1] - %reg320 = load int* %reg319 ; <int> [#uses=1] - cast uint 1 to long ; <long>:20 [#uses=1] - %reg7641 = getelementptr int* %heap, long %20 ; <int*> [#uses=1] - store int %reg320, int* %reg7641 - %reg613 = add int %reg605, -1 ; <int> [#uses=4] - cast uint 1 to long ; <long>:21 [#uses=1] - %reg765 = getelementptr int* %heap, long %21 ; <int*> [#uses=1] - %reg323 = load int* %reg765 ; <int> [#uses=2] - %cond766 = setgt int 2, %reg613 ; <bool> [#uses=1] - br bool %cond766, label %bb26, label %bb21 - -bb21: ;[#uses=3] - %reg614 = phi int [ %reg619, %bb25 ], [ 2, %bb20 ] ; <int> [#uses=6] - %reg615 = phi int [ %reg617, %bb25 ], [ 1, %bb20 ] ; <int> [#uses=2] - %cond767 = setge int %reg614, %reg613 ; <bool> [#uses=1] - br bool %cond767, label %bb24, label %bb22 - -bb22: ;[#uses=2] - %reg614-idxcast = cast int %reg614 to uint ; <uint> [#uses=1] - %reg614-idxcast-offset = add uint %reg614-idxcast, 1 ; <uint> [#uses=1] - cast uint %reg614-idxcast-offset to long ; <long>:22 [#uses=1] - %reg338 = getelementptr int* %heap, long %22 ; <int*> [#uses=1] - %reg339 = load int* %reg338 ; <int> [#uses=1] - %reg339-idxcast = cast int %reg339 to uint ; <uint> [#uses=1] - cast uint %reg339-idxcast to long ; <long>:23 [#uses=1] - %reg346 = getelementptr int* %weight, long %23 ; <int*> [#uses=1] - %reg614-idxcast1 = cast int %reg614 to uint ; <uint> [#uses=1] - cast uint %reg614-idxcast1 to long ; <long>:24 [#uses=1] - %reg353 = getelementptr int* %heap, long %24 ; <int*> [#uses=1] - %reg354 = load int* %reg353 ; <int> [#uses=1] - %reg354-idxcast = cast int %reg354 to uint ; <uint> [#uses=1] - cast uint %reg354-idxcast to long ; <long>:25 [#uses=1] - %reg361 = getelementptr int* %weight, long %25 ; <int*> [#uses=1] - %reg362 = load int* %reg346 ; <int> [#uses=1] - %reg363 = load int* %reg361 ; <int> [#uses=1] - %cond768 = setge int %reg362, %reg363 ; <bool> [#uses=1] - br bool %cond768, label %bb24, label %bb23 - -bb23: ;[#uses=2] - %reg616 = add int %reg614, 1 ; <int> [#uses=1] +bb18: ; preds = %bb17, %bb16, %bb15 + %reg609 = phi i32 [ %reg608, %bb17 ], [ %reg606, %bb16 ], [ %reg606, %bb15 ] ; <i32> [#uses=4] + %reg226-idxcast = bitcast i32 %reg226 to i32 ; <i32> [#uses=1] + zext i32 %reg226-idxcast to i64 ; <i64>:13 [#uses=1] + %reg273 = getelementptr i32* %weight, i64 %13 ; <i32*> [#uses=1] + %reg609-idxcast = bitcast i32 %reg609 to i32 ; <i32> [#uses=1] + zext i32 %reg609-idxcast to i64 ; <i64>:14 [#uses=1] + %reg280 = getelementptr i32* %heap, i64 %14 ; <i32*> [#uses=1] + %reg281 = load i32* %reg280 ; <i32> [#uses=2] + %reg281-idxcast = bitcast i32 %reg281 to i32 ; <i32> [#uses=1] + zext i32 %reg281-idxcast to i64 ; <i64>:15 [#uses=1] + %reg288 = getelementptr i32* %weight, i64 %15 ; <i32*> [#uses=1] + %reg289 = load i32* %reg273 ; <i32> [#uses=1] + %reg290 = load i32* %reg288 ; <i32> [#uses=1] + %cond761 = icmp slt i32 %reg289, %reg290 ; <i1> [#uses=1] + br i1 %cond761, label %bb20, label %bb19 + +bb19: ; preds = %bb18 + %reg607-idxcast = bitcast i32 %reg607 to i32 ; <i32> [#uses=1] + zext i32 %reg607-idxcast to i64 ; <i64>:16 [#uses=1] + %reg297 = getelementptr i32* %heap, i64 %16 ; <i32*> [#uses=1] + store i32 %reg281, i32* %reg297 + %reg611 = shl i32 %reg609, 1 ; <i32> [#uses=2] + %cond762 = icmp sle i32 %reg611, %reg605 ; <i1> [#uses=1] + br i1 %cond762, label %bb15, label %bb20 + +bb20: ; preds = %bb19, %bb18, %bb14 + %reg612 = phi i32 [ %reg609, %bb19 ], [ %reg607, %bb18 ], [ 1, %bb14 ] ; <i32> [#uses=1] + %reg612-idxcast = bitcast i32 %reg612 to i32 ; <i32> [#uses=1] + zext i32 %reg612-idxcast to i64 ; <i64>:17 [#uses=1] + %reg312 = getelementptr i32* %heap, i64 %17 ; <i32*> [#uses=1] + store i32 %reg226, i32* %reg312 + zext i32 1 to i64 ; <i64>:18 [#uses=1] + %reg7631 = getelementptr i32* %heap, i64 %18 ; <i32*> [#uses=1] + %reg114 = load i32* %reg7631 ; <i32> [#uses=2] + %reg603-idxcast1 = bitcast i32 %reg603 to i32 ; <i32> [#uses=1] + %reg603-idxcast1-offset = add i32 %reg603-idxcast1, 1073741823 ; <i32> [#uses=1] + zext i32 %reg603-idxcast1-offset to i64 ; <i64>:19 [#uses=1] + %reg319 = getelementptr i32* %heap, i64 %19 ; <i32*> [#uses=1] + %reg320 = load i32* %reg319 ; <i32> [#uses=1] + zext i32 1 to i64 ; <i64>:20 [#uses=1] + %reg7641 = getelementptr i32* %heap, i64 %20 ; <i32*> [#uses=1] + store i32 %reg320, i32* %reg7641 + %reg613 = add i32 %reg605, -1 ; <i32> [#uses=4] + zext i32 1 to i64 ; <i64>:21 [#uses=1] + %reg765 = getelementptr i32* %heap, i64 %21 ; <i32*> [#uses=1] + %reg323 = load i32* %reg765 ; <i32> [#uses=2] + %cond766 = icmp sgt i32 2, %reg613 ; <i1> [#uses=1] + br i1 %cond766, label %bb26, label %bb21 + +bb21: ; preds = %bb25, %bb20 + %reg614 = phi i32 [ %reg619, %bb25 ], [ 2, %bb20 ] ; <i32> [#uses=6] + %reg615 = phi i32 [ %reg617, %bb25 ], [ 1, %bb20 ] ; <i32> [#uses=2] + %cond767 = icmp sge i32 %reg614, %reg613 ; <i1> [#uses=1] + br i1 %cond767, label %bb24, label %bb22 + +bb22: ; preds = %bb21 + %reg614-idxcast = bitcast i32 %reg614 to i32 ; <i32> [#uses=1] + %reg614-idxcast-offset = add i32 %reg614-idxcast, 1 ; <i32> [#uses=1] + zext i32 %reg614-idxcast-offset to i64 ; <i64>:22 [#uses=1] + %reg338 = getelementptr i32* %heap, i64 %22 ; <i32*> [#uses=1] + %reg339 = load i32* %reg338 ; <i32> [#uses=1] + %reg339-idxcast = bitcast i32 %reg339 to i32 ; <i32> [#uses=1] + zext i32 %reg339-idxcast to i64 ; <i64>:23 [#uses=1] + %reg346 = getelementptr i32* %weight, i64 %23 ; <i32*> [#uses=1] + %reg614-idxcast1 = bitcast i32 %reg614 to i32 ; <i32> [#uses=1] + zext i32 %reg614-idxcast1 to i64 ; <i64>:24 [#uses=1] + %reg353 = getelementptr i32* %heap, i64 %24 ; <i32*> [#uses=1] + %reg354 = load i32* %reg353 ; <i32> [#uses=1] + %reg354-idxcast = bitcast i32 %reg354 to i32 ; <i32> [#uses=1] + zext i32 %reg354-idxcast to i64 ; <i64>:25 [#uses=1] + %reg361 = getelementptr i32* %weight, i64 %25 ; <i32*> [#uses=1] + %reg362 = load i32* %reg346 ; <i32> [#uses=1] + %reg363 = load i32* %reg361 ; <i32> [#uses=1] + %cond768 = icmp sge i32 %reg362, %reg363 ; <i1> [#uses=1] + br i1 %cond768, label %bb24, label %bb23 + +bb23: ; preds = %bb22 + %reg616 = add i32 %reg614, 1 ; <i32> [#uses=1] br label %bb24 -bb24: ;[#uses=4] - %reg617 = phi int [ %reg616, %bb23 ], [ %reg614, %bb22 ], [ %reg614, %bb21 ] ; <int> [#uses=4] - %reg323-idxcast = cast int %reg323 to uint ; <uint> [#uses=1] - cast uint %reg323-idxcast to long ; <long>:26 [#uses=1] - %reg370 = getelementptr int* %weight, long %26 ; <int*> [#uses=1] - %reg617-idxcast = cast int %reg617 to uint ; <uint> [#uses=1] - cast uint %reg617-idxcast to long ; <long>:27 [#uses=1] - %reg377 = getelementptr int* %heap, long %27 ; <int*> [#uses=1] - %reg378 = load int* %reg377 ; <int> [#uses=2] - %reg378-idxcast = cast int %reg378 to uint ; <uint> [#uses=1] - cast uint %reg378-idxcast to long ; <long>:28 [#uses=1] - %reg385 = getelementptr int* %weight, long %28 ; <int*> [#uses=1] - %reg386 = load int* %reg370 ; <int> [#uses=1] - %reg387 = load int* %reg385 ; <int> [#uses=1] - %cond769 = setlt int %reg386, %reg387 ; <bool> [#uses=1] - br bool %cond769, label %bb26, label %bb25 - -bb25: ;[#uses=4] - %reg615-idxcast = cast int %reg615 to uint ; <uint> [#uses=1] - cast uint %reg615-idxcast to long ; <long>:29 [#uses=1] - %reg394 = getelementptr int* %heap, long %29 ; <int*> [#uses=1] - store int %reg378, int* %reg394 - %reg619 = shl int %reg617, ubyte 1 ; <int> [#uses=2] - %cond770 = setle int %reg619, %reg613 ; <bool> [#uses=1] - br bool %cond770, label %bb21, label %bb26 - -bb26: ;[#uses=4] - %reg620 = phi int [ %reg617, %bb25 ], [ %reg615, %bb24 ], [ 1, %bb20 ] ; <int> [#uses=1] - %reg620-idxcast = cast int %reg620 to uint ; <uint> [#uses=1] - cast uint %reg620-idxcast to long ; <long>:30 [#uses=1] - %reg409 = getelementptr int* %heap, long %30 ; <int*> [#uses=1] - store int %reg323, int* %reg409 - %reg621 = add uint %reg604, 1 ; <uint> [#uses=5] - %reg113-idxcast = cast int %reg113 to uint ; <uint> [#uses=1] - cast uint %reg113-idxcast to long ; <long>:31 [#uses=1] - %reg416 = getelementptr int* %parent, long %31 ; <int*> [#uses=1] - %reg114-idxcast = cast int %reg114 to uint ; <uint> [#uses=1] - cast uint %reg114-idxcast to long ; <long>:32 [#uses=1] - %reg423 = getelementptr int* %parent, long %32 ; <int*> [#uses=1] - %cast889 = cast uint %reg621 to int ; <int> [#uses=1] - store int %cast889, int* %reg423 - %cast890 = cast uint %reg621 to int ; <int> [#uses=1] - store int %cast890, int* %reg416 - %reg604-offset = add uint %reg604, 1 ; <uint> [#uses=1] - cast uint %reg604-offset to long ; <long>:33 [#uses=1] - %reg431 = getelementptr int* %weight, long %33 ; <int*> [#uses=1] - %reg113-idxcast2 = cast int %reg113 to uint ; <uint> [#uses=1] - cast uint %reg113-idxcast2 to long ; <long>:34 [#uses=1] - %reg4381 = getelementptr int* %weight, long %34 ; <int*> [#uses=1] - %reg439 = load int* %reg4381 ; <int> [#uses=2] - %reg440 = and int %reg439, -256 ; <int> [#uses=1] - %reg114-idxcast2 = cast int %reg114 to uint ; <uint> [#uses=1] - cast uint %reg114-idxcast2 to long ; <long>:35 [#uses=1] - %reg4471 = getelementptr int* %weight, long %35 ; <int*> [#uses=1] - %reg448 = load int* %reg4471 ; <int> [#uses=2] - %reg449 = and int %reg448, -256 ; <int> [#uses=1] - %reg450 = add int %reg440, %reg449 ; <int> [#uses=1] - %reg460 = and int %reg439, 255 ; <int> [#uses=2] - %reg451 = and int %reg448, 255 ; <int> [#uses=2] - %cond771 = setge int %reg451, %reg460 ; <bool> [#uses=1] - br bool %cond771, label %bb28, label %bb27 - -bb27: ;[#uses=2] +bb24: ; preds = %bb23, %bb22, %bb21 + %reg617 = phi i32 [ %reg616, %bb23 ], [ %reg614, %bb22 ], [ %reg614, %bb21 ] ; <i32> [#uses=4] + %reg323-idxcast = bitcast i32 %reg323 to i32 ; <i32> [#uses=1] + zext i32 %reg323-idxcast to i64 ; <i64>:26 [#uses=1] + %reg370 = getelementptr i32* %weight, i64 %26 ; <i32*> [#uses=1] + %reg617-idxcast = bitcast i32 %reg617 to i32 ; <i32> [#uses=1] + zext i32 %reg617-idxcast to i64 ; <i64>:27 [#uses=1] + %reg377 = getelementptr i32* %heap, i64 %27 ; <i32*> [#uses=1] + %reg378 = load i32* %reg377 ; <i32> [#uses=2] + %reg378-idxcast = bitcast i32 %reg378 to i32 ; <i32> [#uses=1] + zext i32 %reg378-idxcast to i64 ; <i64>:28 [#uses=1] + %reg385 = getelementptr i32* %weight, i64 %28 ; <i32*> [#uses=1] + %reg386 = load i32* %reg370 ; <i32> [#uses=1] + %reg387 = load i32* %reg385 ; <i32> [#uses=1] + %cond769 = icmp slt i32 %reg386, %reg387 ; <i1> [#uses=1] + br i1 %cond769, label %bb26, label %bb25 + +bb25: ; preds = %bb24 + %reg615-idxcast = bitcast i32 %reg615 to i32 ; <i32> [#uses=1] + zext i32 %reg615-idxcast to i64 ; <i64>:29 [#uses=1] + %reg394 = getelementptr i32* %heap, i64 %29 ; <i32*> [#uses=1] + store i32 %reg378, i32* %reg394 + %reg619 = shl i32 %reg617, 1 ; <i32> [#uses=2] + %cond770 = icmp sle i32 %reg619, %reg613 ; <i1> [#uses=1] + br i1 %cond770, label %bb21, label %bb26 + +bb26: ; preds = %bb25, %bb24, %bb20 + %reg620 = phi i32 [ %reg617, %bb25 ], [ %reg615, %bb24 ], [ 1, %bb20 ] ; <i32> [#uses=1] + %reg620-idxcast = bitcast i32 %reg620 to i32 ; <i32> [#uses=1] + zext i32 %reg620-idxcast to i64 ; <i64>:30 [#uses=1] + %reg409 = getelementptr i32* %heap, i64 %30 ; <i32*> [#uses=1] + store i32 %reg323, i32* %reg409 + %reg621 = add i32 %reg604, 1 ; <i32> [#uses=5] + %reg113-idxcast = bitcast i32 %reg113 to i32 ; <i32> [#uses=1] + zext i32 %reg113-idxcast to i64 ; <i64>:31 [#uses=1] + %reg416 = getelementptr i32* %parent, i64 %31 ; <i32*> [#uses=1] + %reg114-idxcast = bitcast i32 %reg114 to i32 ; <i32> [#uses=1] + zext i32 %reg114-idxcast to i64 ; <i64>:32 [#uses=1] + %reg423 = getelementptr i32* %parent, i64 %32 ; <i32*> [#uses=1] + %cast889 = bitcast i32 %reg621 to i32 ; <i32> [#uses=1] + store i32 %cast889, i32* %reg423 + %cast890 = bitcast i32 %reg621 to i32 ; <i32> [#uses=1] + store i32 %cast890, i32* %reg416 + %reg604-offset = add i32 %reg604, 1 ; <i32> [#uses=1] + zext i32 %reg604-offset to i64 ; <i64>:33 [#uses=1] + %reg431 = getelementptr i32* %weight, i64 %33 ; <i32*> [#uses=1] + %reg113-idxcast2 = bitcast i32 %reg113 to i32 ; <i32> [#uses=1] + zext i32 %reg113-idxcast2 to i64 ; <i64>:34 [#uses=1] + %reg4381 = getelementptr i32* %weight, i64 %34 ; <i32*> [#uses=1] + %reg439 = load i32* %reg4381 ; <i32> [#uses=2] + %reg440 = and i32 %reg439, -256 ; <i32> [#uses=1] + %reg114-idxcast2 = bitcast i32 %reg114 to i32 ; <i32> [#uses=1] + zext i32 %reg114-idxcast2 to i64 ; <i64>:35 [#uses=1] + %reg4471 = getelementptr i32* %weight, i64 %35 ; <i32*> [#uses=1] + %reg448 = load i32* %reg4471 ; <i32> [#uses=2] + %reg449 = and i32 %reg448, -256 ; <i32> [#uses=1] + %reg450 = add i32 %reg440, %reg449 ; <i32> [#uses=1] + %reg460 = and i32 %reg439, 255 ; <i32> [#uses=2] + %reg451 = and i32 %reg448, 255 ; <i32> [#uses=2] + %cond771 = icmp sge i32 %reg451, %reg460 ; <i1> [#uses=1] + br i1 %cond771, label %bb28, label %bb27 + +bb27: ; preds = %bb26 br label %bb28 -bb28: ;[#uses=3] - %reg623 = phi int [ %reg460, %bb27 ], [ %reg451, %bb26 ] ; <int> [#uses=1] - %reg469 = add int %reg623, 1 ; <int> [#uses=1] - %reg470 = or int %reg450, %reg469 ; <int> [#uses=1] - store int %reg470, int* %reg431 - %reg604-offset1 = add uint %reg604, 1 ; <uint> [#uses=1] - cast uint %reg604-offset1 to long ; <long>:36 [#uses=1] - %reg4771 = getelementptr int* %parent, long %36 ; <int*> [#uses=1] - store int -1, int* %reg4771 - %reg624 = add int %reg613, 1 ; <int> [#uses=2] - %reg603-idxcast2 = cast int %reg603 to uint ; <uint> [#uses=1] - %reg603-idxcast2-offset = add uint %reg603-idxcast2, 1073741823 ; <uint> [#uses=1] - cast uint %reg603-idxcast2-offset to long ; <long>:37 [#uses=1] - %reg485 = getelementptr int* %heap, long %37 ; <int*> [#uses=1] - %cast902 = cast uint %reg621 to int ; <int> [#uses=1] - store int %cast902, int* %reg485 +bb28: ; preds = %bb27, %bb26 + %reg623 = phi i32 [ %reg460, %bb27 ], [ %reg451, %bb26 ] ; <i32> [#uses=1] + %reg469 = add i32 %reg623, 1 ; <i32> [#uses=1] + %reg470 = or i32 %reg450, %reg469 ; <i32> [#uses=1] + store i32 %reg470, i32* %reg431 + %reg604-offset1 = add i32 %reg604, 1 ; <i32> [#uses=1] + zext i32 %reg604-offset1 to i64 ; <i64>:36 [#uses=1] + %reg4771 = getelementptr i32* %parent, i64 %36 ; <i32*> [#uses=1] + store i32 -1, i32* %reg4771 + %reg624 = add i32 %reg613, 1 ; <i32> [#uses=2] + %reg603-idxcast2 = bitcast i32 %reg603 to i32 ; <i32> [#uses=1] + %reg603-idxcast2-offset = add i32 %reg603-idxcast2, 1073741823 ; <i32> [#uses=1] + zext i32 %reg603-idxcast2-offset to i64 ; <i64>:37 [#uses=1] + %reg485 = getelementptr i32* %heap, i64 %37 ; <i32*> [#uses=1] + %cast902 = bitcast i32 %reg621 to i32 ; <i32> [#uses=1] + store i32 %cast902, i32* %reg485 br label %bb30 -bb29: ;[#uses=2] - %reg625-idxcast = cast int %reg625 to uint ; <uint> [#uses=1] - cast uint %reg625-idxcast to long ; <long>:38 [#uses=1] - %reg526 = getelementptr int* %heap, long %38 ; <int*> [#uses=1] - store int %reg510, int* %reg526 +bb29: ; preds = %bb30 + %reg625-idxcast = bitcast i32 %reg625 to i32 ; <i32> [#uses=1] + zext i32 %reg625-idxcast to i64 ; <i64>:38 [#uses=1] + %reg526 = getelementptr i32* %heap, i64 %38 ; <i32*> [#uses=1] + store i32 %reg510, i32* %reg526 br label %bb30 -bb30: ;[#uses=2] - %reg625 = phi int [ %reg502, %bb29 ], [ %reg624, %bb28 ] ; <int> [#uses=3] - %reg604-offset2 = add uint %reg604, 1 ; <uint> [#uses=1] - cast uint %reg604-offset2 to long ; <long>:39 [#uses=1] - %reg501 = getelementptr int* %weight, long %39 ; <int*> [#uses=1] - %reg502 = shr int %reg625, ubyte 1 ; <int> [#uses=2] - %reg502-idxcast = cast int %reg502 to uint ; <uint> [#uses=1] - cast uint %reg502-idxcast to long ; <long>:40 [#uses=1] - %reg509 = getelementptr int* %heap, long %40 ; <int*> [#uses=1] - %reg510 = load int* %reg509 ; <int> [#uses=2] - %reg510-idxcast = cast int %reg510 to uint ; <uint> [#uses=1] - cast uint %reg510-idxcast to long ; <long>:41 [#uses=1] - %reg517 = getelementptr int* %weight, long %41 ; <int*> [#uses=1] - %reg518 = load int* %reg501 ; <int> [#uses=1] - %reg519 = load int* %reg517 ; <int> [#uses=1] - %cond772 = setlt int %reg518, %reg519 ; <bool> [#uses=1] - br bool %cond772, label %bb29, label %bb31 - -bb31: ;[#uses=3] - %reg625-idxcast1 = cast int %reg625 to uint ; <uint> [#uses=1] - cast uint %reg625-idxcast1 to long ; <long>:42 [#uses=1] - %reg542 = getelementptr int* %heap, long %42 ; <int*> [#uses=1] - %cast916 = cast uint %reg621 to int ; <int> [#uses=1] - store int %cast916, int* %reg542 - %cond773 = setgt int %reg624, 1 ; <bool> [#uses=1] - br bool %cond773, label %bb14, label %bb32 - -bb32: ;[#uses=2] - %reg627 = phi uint [ %reg621, %bb31 ], [ %cast918, %bb13 ] ; <uint> [#uses=1] - %cast919 = cast uint %reg627 to int ; <int> [#uses=1] - %cond774 = setle int %cast919, 515 ; <bool> [#uses=1] - br bool %cond774, label %bb34, label %bb33 - -bb33: ;[#uses=1] - cast uint 0 to long ; <long>:43 [#uses=1] - cast uint 0 to long ; <long>:44 [#uses=1] - %cast785 = getelementptr [21 x sbyte]* %.LC1, long %43, long %44 ; <sbyte*> [#uses=1] - call void %panic( sbyte* %cast785 ) +bb30: ; preds = %bb29, %bb28 + %reg625 = phi i32 [ %reg502, %bb29 ], [ %reg624, %bb28 ] ; <i32> [#uses=3] + %reg604-offset2 = add i32 %reg604, 1 ; <i32> [#uses=1] + zext i32 %reg604-offset2 to i64 ; <i64>:39 [#uses=1] + %reg501 = getelementptr i32* %weight, i64 %39 ; <i32*> [#uses=1] + %reg502 = ashr i32 %reg625, 1 ; <i32> [#uses=2] + %reg502-idxcast = bitcast i32 %reg502 to i32 ; <i32> [#uses=1] + zext i32 %reg502-idxcast to i64 ; <i64>:40 [#uses=1] + %reg509 = getelementptr i32* %heap, i64 %40 ; <i32*> [#uses=1] + %reg510 = load i32* %reg509 ; <i32> [#uses=2] + %reg510-idxcast = bitcast i32 %reg510 to i32 ; <i32> [#uses=1] + zext i32 %reg510-idxcast to i64 ; <i64>:41 [#uses=1] + %reg517 = getelementptr i32* %weight, i64 %41 ; <i32*> [#uses=1] + %reg518 = load i32* %reg501 ; <i32> [#uses=1] + %reg519 = load i32* %reg517 ; <i32> [#uses=1] + %cond772 = icmp slt i32 %reg518, %reg519 ; <i1> [#uses=1] + br i1 %cond772, label %bb29, label %bb31 + +bb31: ; preds = %bb30 + %reg625-idxcast1 = bitcast i32 %reg625 to i32 ; <i32> [#uses=1] + zext i32 %reg625-idxcast1 to i64 ; <i64>:42 [#uses=1] + %reg542 = getelementptr i32* %heap, i64 %42 ; <i32*> [#uses=1] + %cast916 = bitcast i32 %reg621 to i32 ; <i32> [#uses=1] + store i32 %cast916, i32* %reg542 + %cond773 = icmp sgt i32 %reg624, 1 ; <i1> [#uses=1] + br i1 %cond773, label %bb14, label %bb32 + +bb32: ; preds = %bb31, %bb13 + %reg627 = phi i32 [ %reg621, %bb31 ], [ %cast918, %bb13 ] ; <i32> [#uses=1] + %cast919 = bitcast i32 %reg627 to i32 ; <i32> [#uses=1] + %cond774 = icmp sle i32 %cast919, 515 ; <i1> [#uses=1] + br i1 %cond774, label %bb34, label %bb33 + +bb33: ; preds = %bb32 + zext i32 0 to i64 ; <i64>:43 [#uses=1] + zext i32 0 to i64 ; <i64>:44 [#uses=1] + %cast785 = getelementptr [21 x i8]* @.LC1, i64 %43, i64 %44 ; <i8*> [#uses=1] + call void @panic( i8* %cast785 ) br label %bb34 -bb34: ;[#uses=5] - %cond775 = setgt int 1, %reg109 ; <bool> [#uses=1] - br bool %cond775, label %bb40, label %bb35 - -bb35: ;[#uses=5] - %reg629 = phi ubyte [ %reg639, %bb39 ], [ 0, %bb34 ] ; <ubyte> [#uses=1] - %cann-indvar = phi uint [ 0, %bb34 ], [ %add1-indvar, %bb39 ] ; <uint> [#uses=4] - %cann-indvar-casted = cast uint %cann-indvar to int ; <int> [#uses=1] - %reg630 = add int %cann-indvar-casted, 1 ; <int> [#uses=2] - %add1-indvar = add uint %cann-indvar, 1 ; <uint> [#uses=1] - %cann-indvar-offset1 = add uint %cann-indvar, 1 ; <uint> [#uses=1] - cast uint %cann-indvar-offset1 to long ; <long>:45 [#uses=1] - %reg589 = getelementptr int* %parent, long %45 ; <int*> [#uses=1] - %reg590 = load int* %reg589 ; <int> [#uses=1] - %cond776 = setlt int %reg590, 0 ; <bool> [#uses=1] - %parent-idxcast = cast int* %parent to uint ; <uint> [#uses=1] - %cast948 = cast int %reg630 to uint ; <uint> [#uses=1] - br bool %cond776, label %bb37, label %bb36 - -bb36: ;[#uses=5] - %reg632 = phi uint [ %reg634, %bb36 ], [ %cast948, %bb35 ] ; <uint> [#uses=1] - %reg633 = phi uint [ %reg635, %bb36 ], [ 0, %bb35 ] ; <uint> [#uses=3] - %reg633-casted = cast uint %reg633 to sbyte* ; <sbyte*> [#uses=0] - %reg631-scale = mul uint %reg633, 0 ; <uint> [#uses=1] - %reg631-scale = cast uint %reg631-scale to sbyte* ; <sbyte*> [#uses=1] - cast uint %parent-idxcast to long ; <long>:46 [#uses=1] - %reg6311 = getelementptr sbyte* %reg631-scale, long %46 ; <sbyte*> [#uses=2] - %reg632-scale = mul uint %reg632, 4 ; <uint> [#uses=1] - cast uint %reg632-scale to long ; <long>:47 [#uses=1] - %reg5581 = getelementptr sbyte* %reg6311, long %47 ; <sbyte*> [#uses=1] - %cast924 = cast sbyte* %reg5581 to uint* ; <uint*> [#uses=1] - %reg634 = load uint* %cast924 ; <uint> [#uses=2] - %reg635 = add uint %reg633, 1 ; <uint> [#uses=2] - %reg634-scale = mul uint %reg634, 4 ; <uint> [#uses=1] - cast uint %reg634-scale to long ; <long>:48 [#uses=1] - %reg5501 = getelementptr sbyte* %reg6311, long %48 ; <sbyte*> [#uses=1] - %cast925 = cast sbyte* %reg5501 to int* ; <int*> [#uses=1] - %reg551 = load int* %cast925 ; <int> [#uses=1] - %cond777 = setge int %reg551, 0 ; <bool> [#uses=1] - br bool %cond777, label %bb36, label %bb37 - -bb37: ;[#uses=3] - %reg637 = phi uint [ %reg635, %bb36 ], [ 0, %bb35 ] ; <uint> [#uses=2] - %cast928 = cast uint %reg637 to int ; <int> [#uses=1] - %cann-indvar-offset = add uint %cann-indvar, 1 ; <uint> [#uses=1] - cast uint %cann-indvar-offset to long ; <long>:49 [#uses=1] - %reg561 = getelementptr ubyte* %reg107, long %49 ; <ubyte*> [#uses=1] - cast uint 4294967295 to long ; <long>:50 [#uses=1] - %reg778 = getelementptr ubyte* %reg561, long %50 ; <ubyte*> [#uses=1] - %cast788 = cast uint %reg637 to ubyte ; <ubyte> [#uses=1] - store ubyte %cast788, ubyte* %reg778 - %cond779 = setle int %cast928, %reg110 ; <bool> [#uses=1] - br bool %cond779, label %bb39, label %bb38 - -bb38: ;[#uses=2] +bb34: ; preds = %bb33, %bb32 + %cond775 = icmp sgt i32 1, %reg109 ; <i1> [#uses=1] + br i1 %cond775, label %bb40, label %bb35 + +bb35: ; preds = %bb39, %bb34 + %reg629 = phi i8 [ %reg639, %bb39 ], [ 0, %bb34 ] ; <i8> [#uses=1] + %cann-indvar = phi i32 [ 0, %bb34 ], [ %add1-indvar, %bb39 ] ; <i32> [#uses=4] + %cann-indvar-casted = bitcast i32 %cann-indvar to i32 ; <i32> [#uses=1] + %reg630 = add i32 %cann-indvar-casted, 1 ; <i32> [#uses=2] + %add1-indvar = add i32 %cann-indvar, 1 ; <i32> [#uses=1] + %cann-indvar-offset1 = add i32 %cann-indvar, 1 ; <i32> [#uses=1] + zext i32 %cann-indvar-offset1 to i64 ; <i64>:45 [#uses=1] + %reg589 = getelementptr i32* %parent, i64 %45 ; <i32*> [#uses=1] + %reg590 = load i32* %reg589 ; <i32> [#uses=1] + %cond776 = icmp slt i32 %reg590, 0 ; <i1> [#uses=1] + %parent-idxcast = ptrtoint i32* %parent to i32 ; <i32> [#uses=1] + %cast948 = bitcast i32 %reg630 to i32 ; <i32> [#uses=1] + br i1 %cond776, label %bb37, label %bb36 + +bb36: ; preds = %bb36, %bb35 + %reg632 = phi i32 [ %reg634, %bb36 ], [ %cast948, %bb35 ] ; <i32> [#uses=1] + %reg633 = phi i32 [ %reg635, %bb36 ], [ 0, %bb35 ] ; <i32> [#uses=3] + %reg633-casted = inttoptr i32 %reg633 to i8* ; <i8*> [#uses=0] + %reg631-scale = mul i32 %reg633, 0 ; <i32> [#uses=1] + %reg631-scale.upgrd.10 = inttoptr i32 %reg631-scale to i8* ; <i8*> [#uses=1] + zext i32 %parent-idxcast to i64 ; <i64>:46 [#uses=1] + %reg6311 = getelementptr i8* %reg631-scale.upgrd.10, i64 %46 ; <i8*> [#uses=2] + %reg632-scale = mul i32 %reg632, 4 ; <i32> [#uses=1] + zext i32 %reg632-scale to i64 ; <i64>:47 [#uses=1] + %reg5581 = getelementptr i8* %reg6311, i64 %47 ; <i8*> [#uses=1] + %cast924 = bitcast i8* %reg5581 to i32* ; <i32*> [#uses=1] + %reg634 = load i32* %cast924 ; <i32> [#uses=2] + %reg635 = add i32 %reg633, 1 ; <i32> [#uses=2] + %reg634-scale = mul i32 %reg634, 4 ; <i32> [#uses=1] + zext i32 %reg634-scale to i64 ; <i64>:48 [#uses=1] + %reg5501 = getelementptr i8* %reg6311, i64 %48 ; <i8*> [#uses=1] + %cast925 = bitcast i8* %reg5501 to i32* ; <i32*> [#uses=1] + %reg551 = load i32* %cast925 ; <i32> [#uses=1] + %cond777 = icmp sge i32 %reg551, 0 ; <i1> [#uses=1] + br i1 %cond777, label %bb36, label %bb37 + +bb37: ; preds = %bb36, %bb35 + %reg637 = phi i32 [ %reg635, %bb36 ], [ 0, %bb35 ] ; <i32> [#uses=2] + %cast928 = bitcast i32 %reg637 to i32 ; <i32> [#uses=1] + %cann-indvar-offset = add i32 %cann-indvar, 1 ; <i32> [#uses=1] + zext i32 %cann-indvar-offset to i64 ; <i64>:49 [#uses=1] + %reg561 = getelementptr i8* %reg107, i64 %49 ; <i8*> [#uses=1] + zext i32 -1 to i64 ; <i64>:50 [#uses=1] + %reg778 = getelementptr i8* %reg561, i64 %50 ; <i8*> [#uses=1] + %cast788 = trunc i32 %reg637 to i8 ; <i8> [#uses=1] + store i8 %cast788, i8* %reg778 + %cond779 = icmp sle i32 %cast928, %reg110 ; <i1> [#uses=1] + br i1 %cond779, label %bb39, label %bb38 + +bb38: ; preds = %bb37 br label %bb39 -bb39: ;[#uses=5] - %reg639 = phi ubyte [ 1, %bb38 ], [ %reg629, %bb37 ] ; <ubyte> [#uses=2] - %reg640 = add int %reg630, 1 ; <int> [#uses=1] - %cond780 = setle int %reg640, %reg109 ; <bool> [#uses=1] - br bool %cond780, label %bb35, label %bb40 - -bb40: ;[#uses=2] - %reg641 = phi ubyte [ %reg639, %bb39 ], [ 0, %bb34 ] ; <ubyte> [#uses=1] - %cond781 = seteq ubyte %reg641, 0 ; <bool> [#uses=1] - br bool %cond781, label %bb44, label %bb41 - -bb41: ;[#uses=2] - %cond782 = setge int 1, %reg109 ; <bool> [#uses=1] - br bool %cond782, label %bb6, label %bb42 - -bb42: ;[#uses=3] - %cann-indvar2 = phi int [ 0, %bb41 ], [ %add1-indvar2, %bb42 ] ; <int> [#uses=3] - %reg643 = add int %cann-indvar2, 1 ; <int> [#uses=1] - %add1-indvar2 = add int %cann-indvar2, 1 ; <int> [#uses=1] - %cann-indvar2-idxcast = cast int %cann-indvar2 to uint ; <uint> [#uses=1] - %cann-indvar2-idxcast-offset = add uint %cann-indvar2-idxcast, 1 ; <uint> [#uses=1] - cast uint %cann-indvar2-idxcast-offset to long ; <long>:51 [#uses=1] - %reg569 = getelementptr int* %weight, long %51 ; <int*> [#uses=2] - %reg570 = load int* %reg569 ; <int> [#uses=2] - %reg644 = shr int %reg570, ubyte 8 ; <int> [#uses=1] - %reg572 = shr int %reg570, ubyte 31 ; <int> [#uses=1] - %cast933 = cast int %reg572 to uint ; <uint> [#uses=1] - %reg573 = shr uint %cast933, ubyte 31 ; <uint> [#uses=1] - %cast934 = cast uint %reg573 to int ; <int> [#uses=1] - %reg574 = add int %reg644, %cast934 ; <int> [#uses=1] - %reg571 = shr int %reg574, ubyte 1 ; <int> [#uses=1] - %reg645 = add int %reg571, 1 ; <int> [#uses=1] - %reg582 = shl int %reg645, ubyte 8 ; <int> [#uses=1] - store int %reg582, int* %reg569 - %reg646 = add int %reg643, 1 ; <int> [#uses=1] - %cond783 = setlt int %reg646, %reg109 ; <bool> [#uses=1] - br bool %cond783, label %bb42, label %bb43 - -bb43: ;[#uses=1] +bb39: ; preds = %bb38, %bb37 + %reg639 = phi i8 [ 1, %bb38 ], [ %reg629, %bb37 ] ; <i8> [#uses=2] + %reg640 = add i32 %reg630, 1 ; <i32> [#uses=1] + %cond780 = icmp sle i32 %reg640, %reg109 ; <i1> [#uses=1] + br i1 %cond780, label %bb35, label %bb40 + +bb40: ; preds = %bb39, %bb34 + %reg641 = phi i8 [ %reg639, %bb39 ], [ 0, %bb34 ] ; <i8> [#uses=1] + %cond781 = icmp eq i8 %reg641, 0 ; <i1> [#uses=1] + br i1 %cond781, label %bb44, label %bb41 + +bb41: ; preds = %bb40 + %cond782 = icmp sge i32 1, %reg109 ; <i1> [#uses=1] + br i1 %cond782, label %bb6, label %bb42 + +bb42: ; preds = %bb42, %bb41 + %cann-indvar2 = phi i32 [ 0, %bb41 ], [ %add1-indvar2, %bb42 ] ; <i32> [#uses=3] + %reg643 = add i32 %cann-indvar2, 1 ; <i32> [#uses=1] + %add1-indvar2 = add i32 %cann-indvar2, 1 ; <i32> [#uses=1] + %cann-indvar2-idxcast = bitcast i32 %cann-indvar2 to i32 ; <i32> [#uses=1] + %cann-indvar2-idxcast-offset = add i32 %cann-indvar2-idxcast, 1 ; <i32> [#uses=1] + zext i32 %cann-indvar2-idxcast-offset to i64 ; <i64>:51 [#uses=1] + %reg569 = getelementptr i32* %weight, i64 %51 ; <i32*> [#uses=2] + %reg570 = load i32* %reg569 ; <i32> [#uses=2] + %reg644 = ashr i32 %reg570, 8 ; <i32> [#uses=1] + %reg572 = ashr i32 %reg570, 31 ; <i32> [#uses=1] + %cast933 = bitcast i32 %reg572 to i32 ; <i32> [#uses=1] + %reg573 = lshr i32 %cast933, 31 ; <i32> [#uses=1] + %cast934 = bitcast i32 %reg573 to i32 ; <i32> [#uses=1] + %reg574 = add i32 %reg644, %cast934 ; <i32> [#uses=1] + %reg571 = ashr i32 %reg574, 1 ; <i32> [#uses=1] + %reg645 = add i32 %reg571, 1 ; <i32> [#uses=1] + %reg582 = shl i32 %reg645, 8 ; <i32> [#uses=1] + store i32 %reg582, i32* %reg569 + %reg646 = add i32 %reg643, 1 ; <i32> [#uses=1] + %cond783 = icmp slt i32 %reg646, %reg109 ; <i1> [#uses=1] + br i1 %cond783, label %bb42, label %bb43 + +bb43: ; preds = %bb42 br label %bb6 -bb44: ;[#uses=1] +bb44: ; preds = %bb40 ret void } -declare void %panic(sbyte*) +declare void @panic(i8*) diff --git a/test/Transforms/InstCombine/2002-08-02-CastTest.ll b/test/Transforms/InstCombine/2002-08-02-CastTest.ll index 23284a6..54c836c 100644 --- a/test/Transforms/InstCombine/2002-08-02-CastTest.ll +++ b/test/Transforms/InstCombine/2002-08-02-CastTest.ll @@ -1,11 +1,11 @@ ; This testcase is incorrectly getting completely eliminated. There should be ; SOME instruction named %c here, even if it's a bitwise and. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep %c +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep %c ; -ulong %test3(ulong %A) { - %c1 = cast ulong %A to ubyte - %c2 = cast ubyte %c1 to ulong - ret ulong %c2 +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 } diff --git a/test/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll b/test/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll index 69bec19..5b127d7 100644 --- a/test/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll +++ b/test/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll @@ -1,12 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine +; RUN: llvm-as < %s | opt -instcombine -%bob = type { int } + %bob = type { i32 } -int %alias() { - %pbob1 = alloca %bob - %pbob2 = getelementptr %bob* %pbob1 - %pbobel = getelementptr %bob* %pbob2, long 0, uint 0 - %rval = load int* %pbobel - ret int %rval +define i32 @alias() { + %pbob1 = alloca %bob ; <%bob*> [#uses=1] + %pbob2 = getelementptr %bob* %pbob1 ; <%bob*> [#uses=1] + %pbobel = getelementptr %bob* %pbob2, i64 0, i32 0 ; <i32*> [#uses=1] + %rval = load i32* %pbobel ; <i32> [#uses=1] + ret i32 %rval } diff --git a/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll b/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll index 6233e50..e7bd6a8 100644 --- a/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll +++ b/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep add +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep add -int %test(int %A) { - %A.neg = sub int 0, %A - %.neg = sub int 0, 1 - %X = add int %.neg, 1 - %Y.neg.ra = add int %A, %X - %r = add int %A.neg, %Y.neg.ra - ret int %r +define i32 @test(i32 %A) { + %A.neg = sub i32 0, %A ; <i32> [#uses=1] + %.neg = sub i32 0, 1 ; <i32> [#uses=1] + %X = add i32 %.neg, 1 ; <i32> [#uses=1] + %Y.neg.ra = add i32 %A, %X ; <i32> [#uses=1] + %r = add i32 %A.neg, %Y.neg.ra ; <i32> [#uses=1] + ret i32 %r } + diff --git a/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll b/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll index 4532589..e7e7848 100644 --- a/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll +++ b/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll @@ -1,7 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep 4294967295 +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 4294967295 -ulong %test(ulong %Val) { - %tmp.3 = cast ulong %Val to uint ; <uint> [#uses=1] - %tmp.8 = cast uint %tmp.3 to ulong ; <ulong> [#uses=1] - ret ulong %tmp.8 +define i64 @test(i64 %Val) { + %tmp.3 = trunc i64 %Val to i32 ; <i32> [#uses=1] + %tmp.8 = zext i32 %tmp.3 to i64 ; <i64> [#uses=1] + ret i64 %tmp.8 } + diff --git a/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll b/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll index 6222169..214fa4d 100644 --- a/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll +++ b/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll @@ -1,8 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -%X = global int 5 -long %test() { - %C = add long 1, 2 - %V = add long cast(int* %X to long), %C - ret long %V +@X = global i32 5 ; <i32*> [#uses=1] + +define i64 @test() { + %C = add i64 1, 2 ; <i64> [#uses=1] + %V = add i64 ptrtoint (i32* @X to i64), %C ; <i64> [#uses=1] + ret i64 %V } + diff --git a/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll b/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll index ae823d6..724f30f 100644 --- a/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll +++ b/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll @@ -2,13 +2,15 @@ ; because it things that the constant value is a not expression... and ; constantly inverts the branch back and forth. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output - -ubyte %test19(bool %c) { - br bool true, label %True, label %False -True: - ret ubyte 1 -False: - ret ubyte 3 +; RUN: llvm-as < %s | opt -instcombine -disable-output + +define i8 @test19(i1 %c) { + br i1 true, label %True, label %False + +True: ; preds = %0 + ret i8 1 + +False: ; preds = %0 + ret i8 3 } diff --git a/test/Transforms/InstCombine/2003-06-22-ConstantExprCrash.ll b/test/Transforms/InstCombine/2003-06-22-ConstantExprCrash.ll index 92a32d5..d6cacec 100644 --- a/test/Transforms/InstCombine/2003-06-22-ConstantExprCrash.ll +++ b/test/Transforms/InstCombine/2003-06-22-ConstantExprCrash.ll @@ -1,12 +1,13 @@ ; This is a bug in the VMcode library, not instcombine, it's just convenient ; to expose it here. -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -%A = global int 1 -%B = global int 2 +@A = global i32 1 ; <i32*> [#uses=1] +@B = global i32 2 ; <i32*> [#uses=1] -bool %test() { - %C = setlt int* getelementptr (int* %A, long 1), getelementptr (int* %B, long 2) ; Will get promoted to constantexpr - ret bool %C +define i1 @test() { + %C = icmp ult i32* getelementptr (i32* @A, i64 1), getelementptr (i32* @B, i64 2) ; <i1> [#uses=1] + ret i1 %C } + diff --git a/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll b/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll index a3c30a8..1414001 100644 --- a/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll +++ b/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll @@ -10,38 +10,35 @@ ; should pass through the optimizer without failure. ; ; Extra code: -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -; END. +; RUN: llvm-as < %s | opt -instcombine ; -target endian = little -target pointersize = 32 -%silly = external constant int ; <int*> [#uses=1] +target datalayout = "e-p:32:32" +@silly = external constant i32 ; <i32*> [#uses=1] -implementation ; Functions: +declare void @bzero(i8*, i32) -declare void %bzero(sbyte*, uint) +declare void @bcopy(i8*, i8*, i32) -declare void %bcopy(sbyte*, sbyte*, uint) +declare i32 @bcmp(i8*, i8*, i32) -declare int %bcmp(sbyte*, sbyte*, uint) +declare i32 @fputs(i8*, i8*) -declare int %fputs(sbyte*, sbyte*) +declare i32 @fputs_unlocked(i8*, i8*) -declare int %fputs_unlocked(sbyte*, sbyte*) +define i32 @function(i32 %a.1) { +entry: + %a.0 = alloca i32 ; <i32*> [#uses=2] + %result = alloca i32 ; <i32*> [#uses=2] + store i32 %a.1, i32* %a.0 + %tmp.0 = load i32* %a.0 ; <i32> [#uses=1] + %tmp.1 = load i32* @silly ; <i32> [#uses=1] + %tmp.2 = add i32 %tmp.0, %tmp.1 ; <i32> [#uses=1] + store i32 %tmp.2, i32* %result + br label %return -int %function(int %a.1) { -entry: ; No predecessors! - %a.0 = alloca int ; <int*> [#uses=2] - %result = alloca int ; <int*> [#uses=2] - store int %a.1, int* %a.0 - %tmp.0 = load int* %a.0 ; <int> [#uses=1] - %tmp.1 = load int* %silly ; <int> [#uses=1] - %tmp.2 = add int %tmp.0, %tmp.1 ; <int> [#uses=1] - store int %tmp.2, int* %result - br label %return - -return: ; preds = %entry - %tmp.3 = load int* %result ; <int> [#uses=1] - ret int %tmp.3 +return: ; preds = %entry + %tmp.3 = load i32* %result ; <i32> [#uses=1] + ret i32 %tmp.3 } + diff --git a/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll b/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll index 81594db..209ab1b 100644 --- a/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll +++ b/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll @@ -1,23 +1,21 @@ ; This testcase can be simplified by "realizing" that alloca can never return ; null. -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -simplifycfg | \ +; RUN: llvm-as < %s | opt -instcombine -simplifycfg | \ ; RUN: llvm-dis | not grep br -implementation ; Functions: +declare i32 @bitmap_clear(...) -declare int %bitmap_clear(...) - -int %oof() { +define i32 @oof() { entry: - %live_head = alloca int ; <int*> [#uses=2] - %tmp.1 = setne int* %live_head, null ; <bool> [#uses=1] - br bool %tmp.1, label %then, label %UnifiedExitNode + %live_head = alloca i32 ; <i32*> [#uses=2] + %tmp.1 = icmp ne i32* %live_head, null ; <i1> [#uses=1] + br i1 %tmp.1, label %then, label %UnifiedExitNode -then: - %tmp.4 = call int (...)* %bitmap_clear( int* %live_head ) ; <int> [#uses=0] +then: ; preds = %entry + %tmp.4 = call i32 (...)* @bitmap_clear( i32* %live_head ) ; <i32> [#uses=0] br label %UnifiedExitNode -UnifiedExitNode: - ret int 0 +UnifiedExitNode: ; preds = %then, %entry + ret i32 0 } diff --git a/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll b/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll index adb1474..9779f21 100644 --- a/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll +++ b/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll @@ -1,5 +1,7 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep load -void %test(int* %P) { - %X = volatile load int* %P ; Dead but not deletable! - ret void +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep load + +define void @test(i32* %P) { + ; Dead but not deletable! + %X = volatile load i32* %P ; <i32> [#uses=0] + ret void } diff --git a/test/Transforms/InstCombine/2003-10-23-InstcombineNullFail.ll b/test/Transforms/InstCombine/2003-10-23-InstcombineNullFail.ll index 837494f..7daf7cb 100644 --- a/test/Transforms/InstCombine/2003-10-23-InstcombineNullFail.ll +++ b/test/Transforms/InstCombine/2003-10-23-InstcombineNullFail.ll @@ -1,13 +1,12 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep false +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep false ; ; This actually looks like a constant propagation bug -%X = type { [10 x int], float } +%X = type { [10 x i32], float } -implementation - -bool %test() { - %A = getelementptr %X* null, long 0, uint 0, long 0 - %B = setne int* %A, null - ret bool %B +define i1 @test() { + %A = getelementptr %X* null, i64 0, i32 0, i64 0 ; <i32*> [#uses=1] + %B = icmp ne i32* %A, null ; <i1> [#uses=1] + ret i1 %B } + diff --git a/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll b/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll index d23dc32..7d219cb 100644 --- a/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll +++ b/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll @@ -1,13 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -declare int* %bar() +declare i32* @bar() -float* %foo() { - %tmp.11 = invoke float* cast (int* ()* %bar to float* ()*)() - to label %invoke_cont except label %X +define float* @foo() { + %tmp.11 = invoke float* bitcast (i32* ()* @bar to float* ()*)( ) + to label %invoke_cont unwind label %X ; <float*> [#uses=1] -invoke_cont: - ret float *%tmp.11 -X: - ret float *null +invoke_cont: ; preds = %0 + ret float* %tmp.11 + +X: ; preds = %0 + ret float* null } + diff --git a/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll b/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll index a2e28d9..71585d4 100644 --- a/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll +++ b/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll @@ -1,13 +1,13 @@ ; The cast in this testcase is not eliminable on a 32-bit target! -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep inttoptr +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep inttoptr -target endian = little -target pointersize = 32 +target datalayout = "e-p:32:32" -declare void %foo(...) +declare void @foo(...) -void %test(long %X) { - %Y = cast long %X to int* - call void (...)* %foo(int* %Y) - ret void +define void @test(i64 %X) { + %Y = inttoptr i64 %X to i32* ; <i32*> [#uses=1] + call void (...)* @foo( i32* %Y ) + ret void } + diff --git a/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll b/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll index d257286..23fe07d 100644 --- a/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll +++ b/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep call | notcast +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep call | notcast -declare void %free(sbyte*) +declare void @free(i8*) -void %test(int* %X) { - call int (...)* cast (void (sbyte*)* %free to int (...)*)(int * %X) - ret void +define void @test(i32* %X) { + call i32 (...)* bitcast (void (i8*)* @free to i32 (...)*)( i32* %X ) ; <i32>:1 [#uses=0] + ret void } diff --git a/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll b/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll index ff90c32..c6a6b6a 100644 --- a/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll +++ b/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll @@ -5,20 +5,24 @@ ; invoke instruction, we really cannot perform this transformation at all at ; least without splitting the critical edge. ; -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -declare sbyte* %test() +declare i8* @test() -int %foo() { +define i32 @foo() { entry: - br bool true, label %cont, label %call -call: - %P = invoke int*()* cast (sbyte*()* %test to int*()*)() - to label %cont except label %N -cont: - %P2 = phi int* [%P, %call], [null, %entry] - %V = load int* %P2 - ret int %V -N: - ret int 0 + br i1 true, label %cont, label %call + +call: ; preds = %entry + %P = invoke i32* bitcast (i8* ()* @test to i32* ()*)( ) + to label %cont unwind label %N ; <i32*> [#uses=1] + +cont: ; preds = %call, %entry + %P2 = phi i32* [ %P, %call ], [ null, %entry ] ; <i32*> [#uses=1] + %V = load i32* %P2 ; <i32> [#uses=1] + ret i32 %V + +N: ; preds = %call + ret i32 0 } + diff --git a/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll b/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll index 85095bf..3a4b661 100644 --- a/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll +++ b/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll @@ -1,15 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep 34 +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep 34 -int %test(int %X) { - ; Do not fold into shr X, 34, as this uses undefined behavior! - %Y = shr int %X, ubyte 17 - %Z = shr int %Y, ubyte 17 - ret int %Z +define i32 @test(i32 %X) { + ; Do not fold into shr X, 34, as this uses undefined behavior! + %Y = ashr i32 %X, 17 ; <i32> [#uses=1] + %Z = ashr i32 %Y, 17 ; <i32> [#uses=1] + ret i32 %Z } -int %test2(int %X) { - ; Do not fold into shl X, 34, as this uses undefined behavior! - %Y = shl int %X, ubyte 17 - %Z = shl int %Y, ubyte 17 - ret int %Z +define i32 @test2(i32 %X) { + ; Do not fold into shl X, 34, as this uses undefined behavior! + %Y = shl i32 %X, 17 ; <i32> [#uses=1] + %Z = shl i32 %Y, 17 ; <i32> [#uses=1] + ret i32 %Z } diff --git a/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll b/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll index fd7a2e3..2b5481b 100644 --- a/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll +++ b/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll @@ -1,13 +1,13 @@ ; This testcase caused the combiner to go into an infinite loop, moving the ; cast back and forth, changing the seteq to operate on int vs uint and back. -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -bool %test(uint %A, int %B) { - %C = sub uint 0, %A - %Cc = cast uint %C to int - %D = sub int 0, %B - %E = seteq int %Cc, %D - ret bool %E +define i1 @test(i32 %A, i32 %B) { + %C = sub i32 0, %A ; <i32> [#uses=1] + %Cc = bitcast i32 %C to i32 ; <i32> [#uses=1] + %D = sub i32 0, %B ; <i32> [#uses=1] + %E = icmp eq i32 %Cc, %D ; <i1> [#uses=1] + ret i1 %E } diff --git a/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll b/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll index 4c6ff1b..0b93eb2 100644 --- a/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll +++ b/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll @@ -1,8 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -int %test() { - ret int 0 -Loop: - %X = add int %X, 1 - br label %Loop +define i32 @test() { + ret i32 0 + +Loop: ; preds = %Loop + %X = add i32 %X, 1 ; <i32> [#uses=1] + br label %Loop } + diff --git a/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll b/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll index 8e8f019..66a5a4d 100644 --- a/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll +++ b/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output %Ty = type opaque -int %test(%Ty *%X) { - %Y = cast %Ty* %X to int* - %Z = load int* %Y - ret int %Z +define i32 @test(%Ty* %X) { + %Y = bitcast %Ty* %X to i32* ; <i32*> [#uses=1] + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } + diff --git a/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll b/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll index 7994d45..82eecbb 100644 --- a/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll +++ b/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -%p = weak global int 0 +@p = weak global i32 0 ; <i32*> [#uses=1] -int %test(int %x) { - %y = mul int %x, cast (int* %p to int) - ret int %y +define i32 @test(i32 %x) { + %y = mul i32 %x, ptrtoint (i32* @p to i32) ; <i32> [#uses=1] + ret i32 %y } + diff --git a/test/Transforms/InstCombine/2004-08-09-RemInfLoop.llx b/test/Transforms/InstCombine/2004-08-09-RemInfLoop.llx index 98b35fe..9fc48de 100644 --- a/test/Transforms/InstCombine/2004-08-09-RemInfLoop.llx +++ b/test/Transforms/InstCombine/2004-08-09-RemInfLoop.llx @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine +; RUN: llvm-as < %s | opt -instcombine ; This testcase should not send the instcombiner into an infinite loop! -int %test(int %X) { - %Y = rem int %X, 0 - ret int %Y +define i32 @test(i32 %X) { + %Y = srem i32 %X, 0 ; <i32> [#uses=1] + ret i32 %Y } + diff --git a/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll b/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll index e87e42c..5d2ed0b 100644 --- a/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll +++ b/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll @@ -1,7 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ ; RUN: grep {ret i1 false} -bool %test(bool %V) { - %Y = setlt bool %V, false - ret bool %Y + +define i1 @test(i1 %V) { + %Y = icmp ult i1 %V, false ; <i1> [#uses=1] + ret i1 %Y } diff --git a/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx b/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx index ddc4039..e56c390 100644 --- a/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx +++ b/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx @@ -1,21 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -mem2reg | llvm-dis | \ -; RUN: not grep {int 1} +; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | \ +; RUN: not grep {i32 1} ; When propagating the load through the select, make sure that the load is ; inserted where the original load was, not where the select is. Not doing ; so could produce incorrect results! -implementation - -int %test(bool %C) { - %X = alloca int - %X2 = alloca int - store int 1, int* %X - store int 2, int* %X2 - - %Y = select bool %C, int* %X, int* %X2 - store int 3, int* %X - %Z = load int* %Y - ret int %Z +define i32 @test(i1 %C) { + %X = alloca i32 ; <i32*> [#uses=3] + %X2 = alloca i32 ; <i32*> [#uses=2] + store i32 1, i32* %X + store i32 2, i32* %X2 + %Y = select i1 %C, i32* %X, i32* %X2 ; <i32*> [#uses=1] + store i32 3, i32* %X + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } diff --git a/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.llx b/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.llx index c3478a8..3585659 100644 --- a/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.llx +++ b/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.llx @@ -1,24 +1,25 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -mem2reg -simplifycfg | \ +; RUN: llvm-as < %s | opt -instcombine -mem2reg -simplifycfg | \ ; RUN: llvm-dis | grep -v store | not grep {int 1} ; Test to make sure that instcombine does not accidentally propagate the load ; into the PHI, which would break the program. -int %test(bool %C) { +define i32 @test(i1 %C) { entry: - %X = alloca int - %X2 = alloca int - store int 1, int* %X - store int 2, int* %X2 - br bool %C, label %cond_true.i, label %cond_continue.i + %X = alloca i32 ; <i32*> [#uses=3] + %X2 = alloca i32 ; <i32*> [#uses=2] + store i32 1, i32* %X + store i32 2, i32* %X2 + br i1 %C, label %cond_true.i, label %cond_continue.i -cond_true.i: +cond_true.i: ; preds = %entry br label %cond_continue.i -cond_continue.i: - %mem_tmp.i.0 = phi int* [ %X, %cond_true.i ], [ %X2, %entry ] - store int 3, int* %X - %tmp.3 = load int* %mem_tmp.i.0 - ret int %tmp.3 +cond_continue.i: ; preds = %cond_true.i, %entry + %mem_tmp.i.0 = phi i32* [ %X, %cond_true.i ], [ %X2, %entry ] ; <i32*> [#uses=1] + store i32 3, i32* %X + %tmp.3 = load i32* %mem_tmp.i.0 ; <i32> [#uses=1] + ret i32 %tmp.3 } + diff --git a/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx b/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx index bb55b5c..ee4f62c 100644 --- a/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx +++ b/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep -- -65536 +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep -- -65536 -bool %test(int %tmp.124) { - %tmp.125 = shl int %tmp.124, ubyte 8 - %tmp.126.mask = and int %tmp.125, -16777216 ; <int> [#uses=1] - %tmp.128 = seteq int %tmp.126.mask, 167772160 ; <bool> [#uses=1] - ret bool %tmp.128 +define i1 @test(i32 %tmp.124) { + %tmp.125 = shl i32 %tmp.124, 8 ; <i32> [#uses=1] + %tmp.126.mask = and i32 %tmp.125, -16777216 ; <i32> [#uses=1] + %tmp.128 = icmp eq i32 %tmp.126.mask, 167772160 ; <i1> [#uses=1] + ret i1 %tmp.128 } diff --git a/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll b/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll index 1a741c9..766ba48 100644 --- a/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll +++ b/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll @@ -1,8 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | not grep and +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and -sbyte %test21(sbyte %A) { - %C = shr sbyte %A, ubyte 7 ;; sign extend - %D = and sbyte %C, 1 ;; chop off sign - ret sbyte %D +define i8 @test21(i8 %A) { + ;; sign extend + %C = ashr i8 %A, 7 ; <i8> [#uses=1] + ;; chop off sign + %D = and i8 %C, 1 ; <i8> [#uses=1] + ret i8 %D } diff --git a/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll b/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll index 7e12bbf..836d1eb 100644 --- a/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll +++ b/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll @@ -1,136 +1,132 @@ ; This test case tests the InstructionCombining optimization that ; reduces things like: -; %Y = cast sbyte %X to uint -; %C = setlt uint %Y, 1024 +; %Y = sext i8 %X to i32 +; %C = icmp ult i32 %Y, 1024 ; to -; %C = bool true +; %C = i1 true ; It includes test cases for different constant values, signedness of the ; cast operands, and types of setCC operators. In all cases, the cast should ; be eliminated. In many cases the setCC is also eliminated based on the ; constant value and the range of the casted value. ; -; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s -o - | opt -instcombine | llvm-dis | \ ; RUN: notcast .*int -; END. -implementation ; Functions: - -bool %lt_signed_to_large_unsigned(sbyte %SB) { - %Y = cast sbyte %SB to uint ; <uint> [#uses=1] - %C = setlt uint %Y, 1024 ; <bool> [#uses=1] - ret bool %C +define i1 @lt_signed_to_large_unsigned(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ult i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_signed_to_large_signed(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setlt int %Y, 1024 - ret bool %C +define i1 @lt_signed_to_large_signed(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_signed_to_large_negative(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setlt int %Y, -1024 - ret bool %C +define i1 @lt_signed_to_large_negative(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, -1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_signed_to_small_signed(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setlt int %Y, 17 - ret bool %C +define i1 @lt_signed_to_small_signed(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, 17 ; <i1> [#uses=1] + ret i1 %C } - -bool %lt_signed_to_small_negative(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setlt int %Y, -17 - ret bool %C +define i1 @lt_signed_to_small_negative(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, -17 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_unsigned_to_large_unsigned(ubyte %SB) { - %Y = cast ubyte %SB to uint ; <uint> [#uses=1] - %C = setlt uint %Y, 1024 ; <bool> [#uses=1] - ret bool %C +define i1 @lt_unsigned_to_large_unsigned(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ult i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_unsigned_to_large_signed(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setlt int %Y, 1024 - ret bool %C +define i1 @lt_unsigned_to_large_signed(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_unsigned_to_large_negative(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setlt int %Y, -1024 - ret bool %C +define i1 @lt_unsigned_to_large_negative(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, -1024 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_unsigned_to_small_unsigned(ubyte %SB) { - %Y = cast ubyte %SB to uint ; <uint> [#uses=1] - %C = setlt uint %Y, 17 ; <bool> [#uses=1] - ret bool %C +define i1 @lt_unsigned_to_small_unsigned(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ult i32 %Y, 17 ; <i1> [#uses=1] + ret i1 %C } -bool %lt_unsigned_to_small_negative(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setlt int %Y, -17 - ret bool %C +define i1 @lt_unsigned_to_small_negative(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp slt i32 %Y, -17 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_signed_to_large_unsigned(sbyte %SB) { - %Y = cast sbyte %SB to uint ; <uint> [#uses=1] - %C = setgt uint %Y, 1024 ; <bool> [#uses=1] - ret bool %C +define i1 @gt_signed_to_large_unsigned(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ugt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_signed_to_large_signed(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setgt int %Y, 1024 - ret bool %C +define i1 @gt_signed_to_large_signed(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_signed_to_large_negative(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setgt int %Y, -1024 - ret bool %C +define i1 @gt_signed_to_large_negative(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, -1024 ; <i1> [#uses=1] + ret i1 %C } - -bool %gt_signed_to_small_signed(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setgt int %Y, 17 - ret bool %C +define i1 @gt_signed_to_small_signed(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, 17 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_signed_to_small_negative(sbyte %SB) { - %Y = cast sbyte %SB to int - %C = setgt int %Y, -17 - ret bool %C +define i1 @gt_signed_to_small_negative(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, -17 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_unsigned_to_large_unsigned(ubyte %SB) { - %Y = cast ubyte %SB to uint ; <uint> [#uses=1] - %C = setgt uint %Y, 1024 ; <bool> [#uses=1] - ret bool %C +define i1 @gt_unsigned_to_large_unsigned(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ugt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_unsigned_to_large_signed(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setgt int %Y, 1024 - ret bool %C +define i1 @gt_unsigned_to_large_signed(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, 1024 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_unsigned_to_large_negative(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setgt int %Y, -1024 - ret bool %C +define i1 @gt_unsigned_to_large_negative(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, -1024 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_unsigned_to_small_unsigned(ubyte %SB) { - %Y = cast ubyte %SB to uint ; <uint> [#uses=1] - %C = setgt uint %Y, 17 ; <bool> [#uses=1] - ret bool %C +define i1 @gt_unsigned_to_small_unsigned(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp ugt i32 %Y, 17 ; <i1> [#uses=1] + ret i1 %C } -bool %gt_unsigned_to_small_negative(ubyte %SB) { - %Y = cast ubyte %SB to int - %C = setgt int %Y, -17 - ret bool %C +define i1 @gt_unsigned_to_small_negative(i8 %SB) { + %Y = zext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp sgt i32 %Y, -17 ; <i1> [#uses=1] + ret i1 %C } + diff --git a/test/Transforms/InstCombine/2004-12-08-InstCombineCrash.ll b/test/Transforms/InstCombine/2004-12-08-InstCombineCrash.ll index 6e241f4..5908205 100644 --- a/test/Transforms/InstCombine/2004-12-08-InstCombineCrash.ll +++ b/test/Transforms/InstCombine/2004-12-08-InstCombineCrash.ll @@ -1,14 +1,14 @@ -; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine +; RUN: llvm-as %s -o - | opt -instcombine - %struct.llvm_java_object_base = type opaque - "java/lang/Object" = type { %struct.llvm_java_object_base } - "java/lang/StringBuffer" = type { "java/lang/Object", int, { "java/lang/Object", uint, [0 x ushort] }*, bool } -implementation ; Functions: +%"java/lang/Object" = type { %struct.llvm_java_object_base } +%"java/lang/StringBuffer" = type { %"java/lang/Object", i32, { %"java/lang/Object", i32, [0 x i16] }*, i1 } +%struct.llvm_java_object_base = type opaque -void "java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer;"() { +define void @"java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer;"() { bc0: - %tmp53 = getelementptr "java/lang/StringBuffer"* null, int 0, uint 1 ; <int*> [#uses=1] - store int 0, int* %tmp53 - ret void + %tmp53 = getelementptr %"java/lang/StringBuffer"* null, i32 0, i32 1 ; <i32*> [#uses=1] + store i32 0, i32* %tmp53 + ret void } + diff --git a/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll b/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll index fb18ea2..4ea0b5c 100644 --- a/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll +++ b/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll @@ -1,6 +1,7 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine +; RUN: llvm-as < %s | opt -instcombine -int %test(int %X) { - %Y = rem int %X, undef - ret int %Y +define i32 @test(i32 %X) { + %Y = srem i32 %X, undef ; <i32> [#uses=1] + ret i32 %Y } + diff --git a/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll b/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll index 9a754d8..ffaa005 100644 --- a/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll +++ b/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll @@ -1,9 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \ -; RUN: not grep {ret bool false} +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ +; RUN: not grep {ret i1 false} -bool %test(ulong %tmp.169) { - %tmp.1710 = shr ulong %tmp.169, ubyte 1 - %tmp.1912 = setgt ulong %tmp.1710, 0 - ret bool %tmp.1912 +define i1 @test(i64 %tmp.169) { + %tmp.1710 = lshr i64 %tmp.169, 1 ; <i64> [#uses=1] + %tmp.1912 = icmp ugt i64 %tmp.1710, 0 ; <i1> [#uses=1] + ret i1 %tmp.1912 } diff --git a/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll b/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll index 8e523d3..8b2aa35 100644 --- a/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll +++ b/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll @@ -1,7 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -uint %test(bool %C, uint %tmp.15) { - %tmp.16 = select bool %C, uint 8, uint 1 - %tmp.18 = div uint %tmp.15, %tmp.16 - ret uint %tmp.18 +define i32 @test(i1 %C, i32 %tmp.15) { + %tmp.16 = select i1 %C, i32 8, i32 1 ; <i32> [#uses=1] + %tmp.18 = udiv i32 %tmp.15, %tmp.16 ; <i32> [#uses=1] + ret i32 %tmp.18 } + diff --git a/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll b/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll index fa862fe..53585f9 100644 --- a/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll +++ b/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -int %_Z13func_31585107li(int %l_39521025, int %l_59244666) { - %shortcirc_val = select bool false, uint 1, uint 0 ; <uint> [#uses=1] - %tmp.8 = div uint 0, %shortcirc_val ; <uint> [#uses=1] - %tmp.9 = seteq uint %tmp.8, 0 ; <bool> [#uses=1] - %retval = select bool %tmp.9, int %l_59244666, int -1621308501 ; <int> [#uses=1] - ret int %retval +define i32 @_Z13func_31585107li(i32 %l_39521025, i32 %l_59244666) { + %shortcirc_val = select i1 false, i32 1, i32 0 ; <i32> [#uses=1] + %tmp.8 = udiv i32 0, %shortcirc_val ; <i32> [#uses=1] + %tmp.9 = icmp eq i32 %tmp.8, 0 ; <i1> [#uses=1] + %retval = select i1 %tmp.9, i32 %l_59244666, i32 -1621308501 ; <i32> [#uses=1] + ret i32 %retval } + diff --git a/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll b/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll index deb6124..64bfec1 100644 --- a/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll +++ b/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll @@ -1,8 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output ; PR577 -bool %test() { - %tmp.3 = shl int 0, ubyte 41 ; <int> [#uses=1] - %tmp.4 = setne int %tmp.3, 0 ; <bool> [#uses=1] - ret bool %tmp.4 +define i1 @test() { + %tmp.3 = shl i32 0, 41 ; <i32> [#uses=1] + %tmp.4 = icmp ne i32 %tmp.3, 0 ; <i1> [#uses=1] + ret i1 %tmp.4 } + diff --git a/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll b/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll index ef44301..10dbfec 100644 --- a/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll +++ b/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll @@ -1,7 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output ; PR585 -bool %test() { - %tmp.26 = div int 0, -2147483648 ; <int> [#uses=1] - %tmp.27 = seteq int %tmp.26, 0 ; <bool> [#uses=1] - ret bool %tmp.27 + +define i1 @test() { + %tmp.26 = sdiv i32 0, -2147483648 ; <i32> [#uses=1] + %tmp.27 = icmp eq i32 %tmp.26, 0 ; <i1> [#uses=1] + ret i1 %tmp.27 } + diff --git a/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll b/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll index 764b035..010087b 100644 --- a/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll +++ b/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll @@ -1,16 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ ; RUN: grep {ret i1 true} ; PR586 -%g_07918478 = external global uint ; <uint*> [#uses=1] +@g_07918478 = external global i32 ; <i32*> [#uses=1] -implementation ; Functions: - -bool %test() { - %tmp.0 = load uint* %g_07918478 ; <uint> [#uses=2] - %tmp.1 = setne uint %tmp.0, 0 ; <bool> [#uses=1] - %tmp.4 = setlt uint %tmp.0, 4111 ; <bool> [#uses=1] - %bothcond = or bool %tmp.1, %tmp.4 ; <bool> [#uses=1] - ret bool %bothcond +define i1 @test() { + %tmp.0 = load i32* @g_07918478 ; <i32> [#uses=2] + %tmp.1 = icmp ne i32 %tmp.0, 0 ; <i1> [#uses=1] + %tmp.4 = icmp ult i32 %tmp.0, 4111 ; <i1> [#uses=1] + %bothcond = or i1 %tmp.1, %tmp.4 ; <i1> [#uses=1] + ret i1 %bothcond } diff --git a/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll b/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll index be9837d..c58234a 100644 --- a/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll +++ b/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll @@ -1,13 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output ; This example caused instcombine to spin into an infinite loop. -void %test(int *%P) { - ret void -Dead: - %X = phi int [%Y, %Dead] - %Y = div int %X, 10 - store int %Y, int* %P - br label %Dead +define void @test(i32* %P) { + ret void + +Dead: ; preds = %Dead + %X = phi i32 [ %Y, %Dead ] ; <i32> [#uses=1] + %Y = sdiv i32 %X, 10 ; <i32> [#uses=2] + store i32 %Y, i32* %P + br label %Dead } diff --git a/test/Transforms/InstCombine/2006-02-07-SextZextCrash.ll b/test/Transforms/InstCombine/2006-02-07-SextZextCrash.ll index e06dca9..d7df5a0 100644 --- a/test/Transforms/InstCombine/2006-02-07-SextZextCrash.ll +++ b/test/Transforms/InstCombine/2006-02-07-SextZextCrash.ll @@ -1,22 +1,21 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output - %struct.rtx_const = type { uint, { %union.real_extract } } - %struct.rtx_def = type { int, [1 x %union.rtunion_def] } - %union.real_extract = type { double } - %union.rtunion_def = type { uint } + %struct.rtx_const = type { i32, { %union.real_extract } } + %struct.rtx_def = type { i32, [1 x %union.rtunion_def] } + %union.real_extract = type { double } + %union.rtunion_def = type { i32 } -implementation ; Functions: - -fastcc void %decode_rtx_const(%struct.rtx_def* %x, %struct.rtx_const* %value) { - %tmp.54 = getelementptr %struct.rtx_const* %value, int 0, uint 0 ; <uint*> [#uses=1] - %tmp.56 = getelementptr %struct.rtx_def* %x, int 0, uint 0 ; <int*> [#uses=1] - %tmp.57 = load int* %tmp.56 ; <int> [#uses=1] - %tmp.58 = shl int %tmp.57, ubyte 8 ; <int> [#uses=1] - %tmp.59 = shr int %tmp.58, ubyte 24 ; <int> [#uses=1] - %tmp.60 = cast int %tmp.59 to ushort ; <ushort> [#uses=1] - %tmp.61 = cast ushort %tmp.60 to uint ; <uint> [#uses=1] - %tmp.62 = shl uint %tmp.61, ubyte 16 ; <uint> [#uses=1] - %tmp.65 = or uint 0, %tmp.62 ; <uint> [#uses=1] - store uint %tmp.65, uint* %tmp.54 - ret void +define fastcc void @decode_rtx_const(%struct.rtx_def* %x, %struct.rtx_const* %value) { + %tmp.54 = getelementptr %struct.rtx_const* %value, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp.56 = getelementptr %struct.rtx_def* %x, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp.57 = load i32* %tmp.56 ; <i32> [#uses=1] + %tmp.58 = shl i32 %tmp.57, 8 ; <i32> [#uses=1] + %tmp.59 = ashr i32 %tmp.58, 24 ; <i32> [#uses=1] + %tmp.60 = trunc i32 %tmp.59 to i16 ; <i16> [#uses=1] + %tmp.61 = zext i16 %tmp.60 to i32 ; <i32> [#uses=1] + %tmp.62 = shl i32 %tmp.61, 16 ; <i32> [#uses=1] + %tmp.65 = or i32 0, %tmp.62 ; <i32> [#uses=1] + store i32 %tmp.65, i32* %tmp.54 + ret void } + diff --git a/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll b/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll index 73ad700..c89b0d5 100644 --- a/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll +++ b/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll @@ -1,9 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ ; RUN: not grep undef -int %test(sbyte %A) { - %B = cast sbyte %A to int - %C = shr int %B, ubyte 8 - ret int %C +define i32 @test(i8 %A) { + %B = sext i8 %A to i32 ; <i32> [#uses=1] + %C = ashr i32 %B, 8 ; <i32> [#uses=1] + ret i32 %C } + diff --git a/test/Transforms/InstCombine/2006-02-28-Crash.ll b/test/Transforms/InstCombine/2006-02-28-Crash.ll index 241c254..1f3c9e8 100644 --- a/test/Transforms/InstCombine/2006-02-28-Crash.ll +++ b/test/Transforms/InstCombine/2006-02-28-Crash.ll @@ -1,6 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -int %test() { - %tmp203 = seteq uint 1, 2 ; <bool> [#uses=1] - %tmp203 = cast bool %tmp203 to int ; <int> [#uses=1] - ret int %tmp203 +; RUN: llvm-as < %s | opt -instcombine -disable-output + +define i32 @test() { + %tmp203 = icmp eq i32 1, 2 ; <i1> [#uses=1] + %tmp203.upgrd.1 = zext i1 %tmp203 to i32 ; <i32> [#uses=1] + ret i32 %tmp203.upgrd.1 } + diff --git a/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll b/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll index 3149460..e4b2b39 100644 --- a/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll +++ b/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll @@ -1,7 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output +; RUN: llvm-as < %s | opt -instcombine -disable-output -float %test(<4 x float> %V) { - %V2 = insertelement <4 x float> %V, float 1.0, uint 3 - %R = extractelement <4 x float> %V2, uint 2 - ret float %R +define float @test(<4 x float> %V) { + %V2 = insertelement <4 x float> %V, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=1] + %R = extractelement <4 x float> %V2, i32 2 ; <float> [#uses=1] + ret float %R } + diff --git a/test/Transforms/InstCombine/2006-04-01-InfLoop.ll b/test/Transforms/InstCombine/2006-04-01-InfLoop.ll index 81c1690..1a26b63 100644 --- a/test/Transforms/InstCombine/2006-04-01-InfLoop.ll +++ b/test/Transforms/InstCombine/2006-04-01-InfLoop.ll @@ -1,78 +1,74 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -; END. - - %struct.DecRefPicMarking_s = type { int, int, int, int, int, %struct.DecRefPicMarking_s* } - %struct.datapartition = type { %typedef.Bitstream*, %typedef.DecodingEnvironment, int (%struct.syntaxelement*, %struct.img_par*, %struct.inp_par*, %struct.datapartition*)* } - %struct.img_par = type { int, uint, uint, int, int*, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, [16 x [16 x ushort]], [6 x [32 x int]], [16 x [16 x int]], [4 x [12 x [4 x [4 x int]]]], [16 x int], int**, int*, int***, int**, int, int, int, int, %typedef.Slice*, %struct.macroblock*, int, int, int, int, int, int, int**, %struct.DecRefPicMarking_s*, int, int, int, int, int, int, int, uint, int, int, int, uint, uint, uint, uint, int, [3 x int], int, uint, int, uint, int, int, int, uint, uint, int, int, int, int, uint, uint, int***, int***, int****, int, int, uint, int, int, int, int, uint, uint, uint, uint, uint, uint, uint, int, int, int, int, int, int, int, int, int, int, int, uint, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, %struct.timeb, %struct.timeb, int, int, int, int, int, uint, int, int } - %struct.inp_par = type { [100 x sbyte], [100 x sbyte], [100 x sbyte], int, int, int, int, int, int, int } - %struct.macroblock = type { int, int, int, %struct.macroblock*, %struct.macroblock*, int, [2 x [4 x [4 x [2 x int]]]], int, long, long, int, int, [4 x int], [4 x int], int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int } - %struct.pix_pos = type { int, int, int, int, int, int } - %struct.storable_picture = type { uint, int, int, int, int, [50 x [6 x [33 x long]]], [50 x [6 x [33 x long]]], [50 x [6 x [33 x long]]], [50 x [6 x [33 x long]]], uint, int, int, int, int, int, int, int, short, int, int, int, int, int, int, int, uint, uint, ushort**, ushort***, ubyte*, short**, sbyte***, long***, long***, short****, ubyte**, ubyte**, %struct.storable_picture*, %struct.storable_picture*, %struct.storable_picture*, int, int, int, int, int, int, int, int, int, int, int, int, int, [2 x int], int, %struct.DecRefPicMarking_s*, int } - %struct.syntaxelement = type { int, int, int, int, int, uint, int, int, void (int, int, int*, int*)*, void (%struct.syntaxelement*, %struct.inp_par*, %struct.img_par*, %typedef.DecodingEnvironment*)* } - %struct.timeb = type { int, ushort, short, short } - %typedef.BiContextType = type { ushort, ubyte } - %typedef.Bitstream = type { int, int, int, int, ubyte*, int } - %typedef.DecodingEnvironment = type { uint, uint, uint, uint, int, ubyte*, int* } +; RUN: llvm-as < %s | opt -instcombine -disable-output + %struct.DecRefPicMarking_s = type { i32, i32, i32, i32, i32, %struct.DecRefPicMarking_s* } + %struct.datapartition = type { %typedef.Bitstream*, %typedef.DecodingEnvironment, i32 (%struct.syntaxelement*, %struct.img_par*, %struct.inp_par*, %struct.datapartition*)* } + %struct.img_par = type { i32, i32, i32, i32, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [16 x [16 x i16]], [6 x [32 x i32]], [16 x [16 x i32]], [4 x [12 x [4 x [4 x i32]]]], [16 x i32], i32**, i32*, i32***, i32**, i32, i32, i32, i32, %typedef.Slice*, %struct.macroblock*, i32, i32, i32, i32, i32, i32, i32**, %struct.DecRefPicMarking_s*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32***, i32***, i32****, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.timeb, %struct.timeb, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.inp_par = type { [100 x i8], [100 x i8], [100 x i8], i32, i32, i32, i32, i32, i32, i32 } + %struct.macroblock = type { i32, i32, i32, %struct.macroblock*, %struct.macroblock*, i32, [2 x [4 x [4 x [2 x i32]]]], i32, i64, i64, i32, i32, [4 x i32], [4 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.pix_pos = type { i32, i32, i32, i32, i32, i32 } + %struct.storable_picture = type { i32, i32, i32, i32, i32, [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], i32, i32, i32, i32, i32, i32, i32, i32, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16**, i16***, i8*, i16**, i8***, i64***, i64***, i16****, i8**, i8**, %struct.storable_picture*, %struct.storable_picture*, %struct.storable_picture*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x i32], i32, %struct.DecRefPicMarking_s*, i32 } + %struct.syntaxelement = type { i32, i32, i32, i32, i32, i32, i32, i32, void (i32, i32, i32*, i32*)*, void (%struct.syntaxelement*, %struct.inp_par*, %struct.img_par*, %typedef.DecodingEnvironment*)* } + %struct.timeb = type { i32, i16, i16, i16 } + %typedef.BiContextType = type { i16, i8 } + %typedef.Bitstream = type { i32, i32, i32, i32, i8*, i32 } + %typedef.DecodingEnvironment = type { i32, i32, i32, i32, i32, i8*, i32* } %typedef.MotionInfoContexts = type { [4 x [11 x %typedef.BiContextType]], [2 x [9 x %typedef.BiContextType]], [2 x [10 x %typedef.BiContextType]], [2 x [6 x %typedef.BiContextType]], [4 x %typedef.BiContextType], [4 x %typedef.BiContextType], [3 x %typedef.BiContextType] } - %typedef.Slice = type { int, int, int, int, uint, int, int, int, int, %struct.datapartition*, %typedef.MotionInfoContexts*, %typedef.TextureInfoContexts*, int, int*, int*, int*, int, int*, int*, int*, int (%struct.img_par*, %struct.inp_par*)*, int, int, int, int } + %typedef.Slice = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.datapartition*, %typedef.MotionInfoContexts*, %typedef.TextureInfoContexts*, i32, i32*, i32*, i32*, i32, i32*, i32*, i32*, i32 (%struct.img_par*, %struct.inp_par*)*, i32, i32, i32, i32 } %typedef.TextureInfoContexts = type { [2 x %typedef.BiContextType], [4 x %typedef.BiContextType], [3 x [4 x %typedef.BiContextType]], [10 x [4 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [5 x %typedef.BiContextType]], [10 x [5 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]] } -%dec_picture = external global %struct.storable_picture* ; <%struct.storable_picture**> [#uses=1] -%last_dquant = external global int ; <int*> [#uses=1] +@dec_picture = external global %struct.storable_picture* ; <%struct.storable_picture**> [#uses=1] +@last_dquant = external global i32 ; <i32*> [#uses=1] -implementation ; Functions: - -void %readCBP_CABAC(%struct.syntaxelement* %se, %struct.inp_par* %inp, %struct.img_par* %img.1, %typedef.DecodingEnvironment* %dep_dp) { +define void @readCBP_CABAC(%struct.syntaxelement* %se, %struct.inp_par* %inp, %struct.img_par* %img.1, %typedef.DecodingEnvironment* %dep_dp) { entry: %block_a = alloca %struct.pix_pos ; <%struct.pix_pos*> [#uses=5] - %tmp.1 = getelementptr %struct.img_par* %img.1, int 0, uint 37 ; <%typedef.Slice**> [#uses=1] + %tmp.1 = getelementptr %struct.img_par* %img.1, i32 0, i32 37 ; <%typedef.Slice**> [#uses=1] %tmp.2 = load %typedef.Slice** %tmp.1 ; <%typedef.Slice*> [#uses=1] - %tmp.3 = getelementptr %typedef.Slice* %tmp.2, int 0, uint 11 ; <%typedef.TextureInfoContexts**> [#uses=1] + %tmp.3 = getelementptr %typedef.Slice* %tmp.2, i32 0, i32 11 ; <%typedef.TextureInfoContexts**> [#uses=1] %tmp.4 = load %typedef.TextureInfoContexts** %tmp.3 ; <%typedef.TextureInfoContexts*> [#uses=3] - %tmp.6 = getelementptr %struct.img_par* %img.1, int 0, uint 38 ; <%struct.macroblock**> [#uses=1] + %tmp.6 = getelementptr %struct.img_par* %img.1, i32 0, i32 38 ; <%struct.macroblock**> [#uses=1] %tmp.7 = load %struct.macroblock** %tmp.6 ; <%struct.macroblock*> [#uses=1] - %tmp.9 = getelementptr %struct.img_par* %img.1, int 0, uint 1 ; <uint*> [#uses=1] - %tmp.10 = load uint* %tmp.9 ; <uint> [#uses=1] - %tmp.11 = cast uint %tmp.10 to int ; <int> [#uses=1] - %tmp.12 = getelementptr %struct.macroblock* %tmp.7, int %tmp.11 ; <%struct.macroblock*> [#uses=18] + %tmp.9 = getelementptr %struct.img_par* %img.1, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.10 = load i32* %tmp.9 ; <i32> [#uses=1] + %tmp.11 = bitcast i32 %tmp.10 to i32 ; <i32> [#uses=1] + %tmp.12 = getelementptr %struct.macroblock* %tmp.7, i32 %tmp.11 ; <%struct.macroblock*> [#uses=18] br label %loopentry.0 loopentry.0: ; preds = %loopexit.1, %entry - %mask.1 = phi int [ undef, %entry ], [ %mask.0, %loopexit.1 ] ; <int> [#uses=1] - %cbp_bit.1 = phi int [ undef, %entry ], [ %cbp_bit.0, %loopexit.1 ] ; <int> [#uses=1] - %cbp.2 = phi int [ 0, %entry ], [ %cbp.1, %loopexit.1 ] ; <int> [#uses=5] - %curr_cbp_ctx.1 = phi int [ undef, %entry ], [ %curr_cbp_ctx.0, %loopexit.1 ] ; <int> [#uses=1] - %b.2 = phi int [ undef, %entry ], [ %b.1, %loopexit.1 ] ; <int> [#uses=1] - %a.2 = phi int [ undef, %entry ], [ %a.1, %loopexit.1 ] ; <int> [#uses=1] - %mb_y.0 = phi int [ 0, %entry ], [ %tmp.152, %loopexit.1 ] ; <int> [#uses=7] - %mb_x.0 = phi int [ undef, %entry ], [ %mb_x.1, %loopexit.1 ] ; <int> [#uses=0] - %tmp.14 = setle int %mb_y.0, 3 ; <bool> [#uses=2] - %tmp.15 = cast bool %tmp.14 to int ; <int> [#uses=0] - br bool %tmp.14, label %no_exit.0, label %loopexit.0 + %mask.1 = phi i32 [ undef, %entry ], [ %mask.0, %loopexit.1 ] ; <i32> [#uses=1] + %cbp_bit.1 = phi i32 [ undef, %entry ], [ %cbp_bit.0, %loopexit.1 ] ; <i32> [#uses=1] + %cbp.2 = phi i32 [ 0, %entry ], [ %cbp.1, %loopexit.1 ] ; <i32> [#uses=5] + %curr_cbp_ctx.1 = phi i32 [ undef, %entry ], [ %curr_cbp_ctx.0, %loopexit.1 ] ; <i32> [#uses=1] + %b.2 = phi i32 [ undef, %entry ], [ %b.1, %loopexit.1 ] ; <i32> [#uses=1] + %a.2 = phi i32 [ undef, %entry ], [ %a.1, %loopexit.1 ] ; <i32> [#uses=1] + %mb_y.0 = phi i32 [ 0, %entry ], [ %tmp.152, %loopexit.1 ] ; <i32> [#uses=7] + %mb_x.0 = phi i32 [ undef, %entry ], [ %mb_x.1, %loopexit.1 ] ; <i32> [#uses=0] + %tmp.14 = icmp sle i32 %mb_y.0, 3 ; <i1> [#uses=2] + %tmp.15 = zext i1 %tmp.14 to i32 ; <i32> [#uses=0] + br i1 %tmp.14, label %no_exit.0, label %loopexit.0 no_exit.0: ; preds = %loopentry.0 br label %loopentry.1 loopentry.1: ; preds = %endif.7, %no_exit.0 - %mask.0 = phi int [ %mask.1, %no_exit.0 ], [ %tmp.131, %endif.7 ] ; <int> [#uses=1] - %cbp_bit.0 = phi int [ %cbp_bit.1, %no_exit.0 ], [ %tmp.142, %endif.7 ] ; <int> [#uses=1] - %cbp.1 = phi int [ %cbp.2, %no_exit.0 ], [ %cbp.0, %endif.7 ] ; <int> [#uses=5] - %curr_cbp_ctx.0 = phi int [ %curr_cbp_ctx.1, %no_exit.0 ], [ %tmp.125, %endif.7 ] ; <int> [#uses=1] - %b.1 = phi int [ %b.2, %no_exit.0 ], [ %b.0, %endif.7 ] ; <int> [#uses=1] - %a.1 = phi int [ %a.2, %no_exit.0 ], [ %a.0, %endif.7 ] ; <int> [#uses=1] - %mb_x.1 = phi int [ 0, %no_exit.0 ], [ %tmp.150, %endif.7 ] ; <int> [#uses=9] - %tmp.17 = setle int %mb_x.1, 3 ; <bool> [#uses=2] - %tmp.18 = cast bool %tmp.17 to int ; <int> [#uses=0] - br bool %tmp.17, label %no_exit.1, label %loopexit.1 + %mask.0 = phi i32 [ %mask.1, %no_exit.0 ], [ %tmp.131, %endif.7 ] ; <i32> [#uses=1] + %cbp_bit.0 = phi i32 [ %cbp_bit.1, %no_exit.0 ], [ %tmp.142, %endif.7 ] ; <i32> [#uses=1] + %cbp.1 = phi i32 [ %cbp.2, %no_exit.0 ], [ %cbp.0, %endif.7 ] ; <i32> [#uses=5] + %curr_cbp_ctx.0 = phi i32 [ %curr_cbp_ctx.1, %no_exit.0 ], [ %tmp.125, %endif.7 ] ; <i32> [#uses=1] + %b.1 = phi i32 [ %b.2, %no_exit.0 ], [ %b.0, %endif.7 ] ; <i32> [#uses=1] + %a.1 = phi i32 [ %a.2, %no_exit.0 ], [ %a.0, %endif.7 ] ; <i32> [#uses=1] + %mb_x.1 = phi i32 [ 0, %no_exit.0 ], [ %tmp.150, %endif.7 ] ; <i32> [#uses=9] + %tmp.17 = icmp sle i32 %mb_x.1, 3 ; <i1> [#uses=2] + %tmp.18 = zext i1 %tmp.17 to i32 ; <i32> [#uses=0] + br i1 %tmp.17, label %no_exit.1, label %loopexit.1 no_exit.1: ; preds = %loopentry.1 - %tmp.20 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 12 ; <[4 x int]*> [#uses=1] - %tmp.22 = div int %mb_x.1, 2 ; <int> [#uses=1] - %tmp.24 = add int %tmp.22, %mb_y.0 ; <int> [#uses=1] - %tmp.25 = getelementptr [4 x int]* %tmp.20, int 0, int %tmp.24 ; <int*> [#uses=1] - %tmp.26 = load int* %tmp.25 ; <int> [#uses=1] - %tmp.27 = seteq int %tmp.26, 11 ; <bool> [#uses=2] - %tmp.28 = cast bool %tmp.27 to int ; <int> [#uses=0] - br bool %tmp.27, label %then.0, label %else.0 + %tmp.20 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 12 ; <[4 x i32]*> [#uses=1] + %tmp.22 = sdiv i32 %mb_x.1, 2 ; <i32> [#uses=1] + %tmp.24 = add i32 %tmp.22, %mb_y.0 ; <i32> [#uses=1] + %tmp.25 = getelementptr [4 x i32]* %tmp.20, i32 0, i32 %tmp.24 ; <i32*> [#uses=1] + %tmp.26 = load i32* %tmp.25 ; <i32> [#uses=1] + %tmp.27 = icmp eq i32 %tmp.26, 11 ; <i1> [#uses=2] + %tmp.28 = zext i1 %tmp.27 to i32 ; <i32> [#uses=0] + br i1 %tmp.27, label %then.0, label %else.0 then.0: ; preds = %no_exit.1 br label %endif.0 @@ -81,362 +77,367 @@ else.0: ; preds = %no_exit.1 br label %endif.0 endif.0: ; preds = %else.0, %then.0 - %tmp.30 = seteq int %mb_y.0, 0 ; <bool> [#uses=2] - %tmp.31 = cast bool %tmp.30 to int ; <int> [#uses=0] - br bool %tmp.30, label %then.1, label %else.1 + %tmp.30 = icmp eq i32 %mb_y.0, 0 ; <i1> [#uses=2] + %tmp.31 = zext i1 %tmp.30 to i32 ; <i32> [#uses=0] + br i1 %tmp.30, label %then.1, label %else.1 then.1: ; preds = %endif.0 - %tmp.33 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.33 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.34 = load %struct.macroblock** %tmp.33 ; <%struct.macroblock*> [#uses=1] - %tmp.35 = cast %struct.macroblock* %tmp.34 to sbyte* ; <sbyte*> [#uses=1] - %tmp.36 = seteq sbyte* %tmp.35, null ; <bool> [#uses=2] - %tmp.37 = cast bool %tmp.36 to int ; <int> [#uses=0] - br bool %tmp.36, label %then.2, label %else.2 + %tmp.35 = bitcast %struct.macroblock* %tmp.34 to i8* ; <i8*> [#uses=1] + %tmp.36 = icmp eq i8* %tmp.35, null ; <i1> [#uses=2] + %tmp.37 = zext i1 %tmp.36 to i32 ; <i32> [#uses=0] + br i1 %tmp.36, label %then.2, label %else.2 then.2: ; preds = %then.1 br label %endif.1 else.2: ; preds = %then.1 - %tmp.39 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.39 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.40 = load %struct.macroblock** %tmp.39 ; <%struct.macroblock*> [#uses=1] - %tmp.41 = getelementptr %struct.macroblock* %tmp.40, int 0, uint 5 ; <int*> [#uses=1] - %tmp.42 = load int* %tmp.41 ; <int> [#uses=1] - %tmp.43 = seteq int %tmp.42, 14 ; <bool> [#uses=2] - %tmp.44 = cast bool %tmp.43 to int ; <int> [#uses=0] - br bool %tmp.43, label %then.3, label %else.3 + %tmp.41 = getelementptr %struct.macroblock* %tmp.40, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.42 = load i32* %tmp.41 ; <i32> [#uses=1] + %tmp.43 = icmp eq i32 %tmp.42, 14 ; <i1> [#uses=2] + %tmp.44 = zext i1 %tmp.43 to i32 ; <i32> [#uses=0] + br i1 %tmp.43, label %then.3, label %else.3 then.3: ; preds = %else.2 br label %endif.1 else.3: ; preds = %else.2 - %tmp.46 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.46 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.47 = load %struct.macroblock** %tmp.46 ; <%struct.macroblock*> [#uses=1] - %tmp.48 = getelementptr %struct.macroblock* %tmp.47, int 0, uint 7 ; <int*> [#uses=1] - %tmp.49 = load int* %tmp.48 ; <int> [#uses=1] - %tmp.51 = div int %mb_x.1, 2 ; <int> [#uses=1] - %tmp.52 = add int %tmp.51, 2 ; <int> [#uses=1] - %tmp.53 = cast int %tmp.52 to ubyte ; <ubyte> [#uses=1] - %tmp.54 = shr int %tmp.49, ubyte %tmp.53 ; <int> [#uses=1] - %tmp.55 = cast int %tmp.54 to uint ; <uint> [#uses=1] - %tmp.57 = xor uint %tmp.55, 1 ; <uint> [#uses=1] - %tmp.58 = cast uint %tmp.57 to int ; <int> [#uses=1] - %tmp.59 = and int %tmp.58, 1 ; <int> [#uses=1] + %tmp.48 = getelementptr %struct.macroblock* %tmp.47, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.49 = load i32* %tmp.48 ; <i32> [#uses=1] + %tmp.51 = sdiv i32 %mb_x.1, 2 ; <i32> [#uses=1] + %tmp.52 = add i32 %tmp.51, 2 ; <i32> [#uses=1] + %tmp.53 = trunc i32 %tmp.52 to i8 ; <i8> [#uses=1] + %shift.upgrd.1 = zext i8 %tmp.53 to i32 ; <i32> [#uses=1] + %tmp.54 = ashr i32 %tmp.49, %shift.upgrd.1 ; <i32> [#uses=1] + %tmp.55 = bitcast i32 %tmp.54 to i32 ; <i32> [#uses=1] + %tmp.57 = xor i32 %tmp.55, 1 ; <i32> [#uses=1] + %tmp.58 = bitcast i32 %tmp.57 to i32 ; <i32> [#uses=1] + %tmp.59 = and i32 %tmp.58, 1 ; <i32> [#uses=1] br label %endif.1 else.1: ; preds = %endif.0 - %tmp.62 = div int %mb_x.1, 2 ; <int> [#uses=1] - %tmp.63 = cast int %tmp.62 to ubyte ; <ubyte> [#uses=1] - %tmp.64 = shr int %cbp.1, ubyte %tmp.63 ; <int> [#uses=1] - %tmp.65 = cast int %tmp.64 to uint ; <uint> [#uses=1] - %tmp.67 = xor uint %tmp.65, 1 ; <uint> [#uses=1] - %tmp.68 = cast uint %tmp.67 to int ; <int> [#uses=1] - %tmp.69 = and int %tmp.68, 1 ; <int> [#uses=1] + %tmp.62 = sdiv i32 %mb_x.1, 2 ; <i32> [#uses=1] + %tmp.63 = trunc i32 %tmp.62 to i8 ; <i8> [#uses=1] + %shift.upgrd.2 = zext i8 %tmp.63 to i32 ; <i32> [#uses=1] + %tmp.64 = ashr i32 %cbp.1, %shift.upgrd.2 ; <i32> [#uses=1] + %tmp.65 = bitcast i32 %tmp.64 to i32 ; <i32> [#uses=1] + %tmp.67 = xor i32 %tmp.65, 1 ; <i32> [#uses=1] + %tmp.68 = bitcast i32 %tmp.67 to i32 ; <i32> [#uses=1] + %tmp.69 = and i32 %tmp.68, 1 ; <i32> [#uses=1] br label %endif.1 endif.1: ; preds = %else.1, %else.3, %then.3, %then.2 - %b.0 = phi int [ 0, %then.2 ], [ 0, %then.3 ], [ %tmp.59, %else.3 ], [ %tmp.69, %else.1 ] ; <int> [#uses=2] - %tmp.71 = seteq int %mb_x.1, 0 ; <bool> [#uses=2] - %tmp.72 = cast bool %tmp.71 to int ; <int> [#uses=0] - br bool %tmp.71, label %then.4, label %else.4 + %b.0 = phi i32 [ 0, %then.2 ], [ 0, %then.3 ], [ %tmp.59, %else.3 ], [ %tmp.69, %else.1 ] ; <i32> [#uses=2] + %tmp.71 = icmp eq i32 %mb_x.1, 0 ; <i1> [#uses=2] + %tmp.72 = zext i1 %tmp.71 to i32 ; <i32> [#uses=0] + br i1 %tmp.71, label %then.4, label %else.4 then.4: ; preds = %endif.1 - %tmp.74 = getelementptr %struct.img_par* %img.1, int 0, uint 1 ; <uint*> [#uses=1] - %tmp.75 = load uint* %tmp.74 ; <uint> [#uses=1] - %tmp.76 = cast uint %tmp.75 to int ; <int> [#uses=1] - call void %getLuma4x4Neighbour( int %tmp.76, int %mb_x.1, int %mb_y.0, int -1, int 0, %struct.pix_pos* %block_a ) - %tmp.79 = getelementptr %struct.pix_pos* %block_a, int 0, uint 0 ; <int*> [#uses=1] - %tmp.80 = load int* %tmp.79 ; <int> [#uses=1] - %tmp.81 = setne int %tmp.80, 0 ; <bool> [#uses=2] - %tmp.82 = cast bool %tmp.81 to int ; <int> [#uses=0] - br bool %tmp.81, label %then.5, label %else.5 + %tmp.74 = getelementptr %struct.img_par* %img.1, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.75 = load i32* %tmp.74 ; <i32> [#uses=1] + %tmp.76 = bitcast i32 %tmp.75 to i32 ; <i32> [#uses=1] + call void @getLuma4x4Neighbour( i32 %tmp.76, i32 %mb_x.1, i32 %mb_y.0, i32 -1, i32 0, %struct.pix_pos* %block_a ) + %tmp.79 = getelementptr %struct.pix_pos* %block_a, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp.80 = load i32* %tmp.79 ; <i32> [#uses=1] + %tmp.81 = icmp ne i32 %tmp.80, 0 ; <i1> [#uses=2] + %tmp.82 = zext i1 %tmp.81 to i32 ; <i32> [#uses=0] + br i1 %tmp.81, label %then.5, label %else.5 then.5: ; preds = %then.4 - %tmp.84 = getelementptr %struct.img_par* %img.1, int 0, uint 38 ; <%struct.macroblock**> [#uses=1] + %tmp.84 = getelementptr %struct.img_par* %img.1, i32 0, i32 38 ; <%struct.macroblock**> [#uses=1] %tmp.85 = load %struct.macroblock** %tmp.84 ; <%struct.macroblock*> [#uses=1] - %tmp.86 = getelementptr %struct.pix_pos* %block_a, int 0, uint 1 ; <int*> [#uses=1] - %tmp.87 = load int* %tmp.86 ; <int> [#uses=1] - %tmp.88 = getelementptr %struct.macroblock* %tmp.85, int %tmp.87 ; <%struct.macroblock*> [#uses=1] - %tmp.89 = getelementptr %struct.macroblock* %tmp.88, int 0, uint 5 ; <int*> [#uses=1] - %tmp.90 = load int* %tmp.89 ; <int> [#uses=1] - %tmp.91 = seteq int %tmp.90, 14 ; <bool> [#uses=2] - %tmp.92 = cast bool %tmp.91 to int ; <int> [#uses=0] - br bool %tmp.91, label %then.6, label %else.6 + %tmp.86 = getelementptr %struct.pix_pos* %block_a, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.87 = load i32* %tmp.86 ; <i32> [#uses=1] + %tmp.88 = getelementptr %struct.macroblock* %tmp.85, i32 %tmp.87 ; <%struct.macroblock*> [#uses=1] + %tmp.89 = getelementptr %struct.macroblock* %tmp.88, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.90 = load i32* %tmp.89 ; <i32> [#uses=1] + %tmp.91 = icmp eq i32 %tmp.90, 14 ; <i1> [#uses=2] + %tmp.92 = zext i1 %tmp.91 to i32 ; <i32> [#uses=0] + br i1 %tmp.91, label %then.6, label %else.6 then.6: ; preds = %then.5 br label %endif.4 else.6: ; preds = %then.5 - %tmp.94 = getelementptr %struct.img_par* %img.1, int 0, uint 38 ; <%struct.macroblock**> [#uses=1] + %tmp.94 = getelementptr %struct.img_par* %img.1, i32 0, i32 38 ; <%struct.macroblock**> [#uses=1] %tmp.95 = load %struct.macroblock** %tmp.94 ; <%struct.macroblock*> [#uses=1] - %tmp.96 = getelementptr %struct.pix_pos* %block_a, int 0, uint 1 ; <int*> [#uses=1] - %tmp.97 = load int* %tmp.96 ; <int> [#uses=1] - %tmp.98 = getelementptr %struct.macroblock* %tmp.95, int %tmp.97 ; <%struct.macroblock*> [#uses=1] - %tmp.99 = getelementptr %struct.macroblock* %tmp.98, int 0, uint 7 ; <int*> [#uses=1] - %tmp.100 = load int* %tmp.99 ; <int> [#uses=1] - %tmp.101 = getelementptr %struct.pix_pos* %block_a, int 0, uint 3 ; <int*> [#uses=1] - %tmp.102 = load int* %tmp.101 ; <int> [#uses=1] - %tmp.103 = div int %tmp.102, 2 ; <int> [#uses=1] - %tmp.104 = mul int %tmp.103, 2 ; <int> [#uses=1] - %tmp.105 = add int %tmp.104, 1 ; <int> [#uses=1] - %tmp.106 = cast int %tmp.105 to ubyte ; <ubyte> [#uses=1] - %tmp.107 = shr int %tmp.100, ubyte %tmp.106 ; <int> [#uses=1] - %tmp.108 = cast int %tmp.107 to uint ; <uint> [#uses=1] - %tmp.110 = xor uint %tmp.108, 1 ; <uint> [#uses=1] - %tmp.111 = cast uint %tmp.110 to int ; <int> [#uses=1] - %tmp.112 = and int %tmp.111, 1 ; <int> [#uses=1] + %tmp.96 = getelementptr %struct.pix_pos* %block_a, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.97 = load i32* %tmp.96 ; <i32> [#uses=1] + %tmp.98 = getelementptr %struct.macroblock* %tmp.95, i32 %tmp.97 ; <%struct.macroblock*> [#uses=1] + %tmp.99 = getelementptr %struct.macroblock* %tmp.98, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.100 = load i32* %tmp.99 ; <i32> [#uses=1] + %tmp.101 = getelementptr %struct.pix_pos* %block_a, i32 0, i32 3 ; <i32*> [#uses=1] + %tmp.102 = load i32* %tmp.101 ; <i32> [#uses=1] + %tmp.103 = sdiv i32 %tmp.102, 2 ; <i32> [#uses=1] + %tmp.104 = mul i32 %tmp.103, 2 ; <i32> [#uses=1] + %tmp.105 = add i32 %tmp.104, 1 ; <i32> [#uses=1] + %tmp.106 = trunc i32 %tmp.105 to i8 ; <i8> [#uses=1] + %shift.upgrd.3 = zext i8 %tmp.106 to i32 ; <i32> [#uses=1] + %tmp.107 = ashr i32 %tmp.100, %shift.upgrd.3 ; <i32> [#uses=1] + %tmp.108 = bitcast i32 %tmp.107 to i32 ; <i32> [#uses=1] + %tmp.110 = xor i32 %tmp.108, 1 ; <i32> [#uses=1] + %tmp.111 = bitcast i32 %tmp.110 to i32 ; <i32> [#uses=1] + %tmp.112 = and i32 %tmp.111, 1 ; <i32> [#uses=1] br label %endif.4 else.5: ; preds = %then.4 br label %endif.4 else.4: ; preds = %endif.1 - %tmp.115 = cast int %mb_y.0 to ubyte ; <ubyte> [#uses=1] - %tmp.116 = shr int %cbp.1, ubyte %tmp.115 ; <int> [#uses=1] - %tmp.117 = cast int %tmp.116 to uint ; <uint> [#uses=1] - %tmp.119 = xor uint %tmp.117, 1 ; <uint> [#uses=1] - %tmp.120 = cast uint %tmp.119 to int ; <int> [#uses=1] - %tmp.121 = and int %tmp.120, 1 ; <int> [#uses=1] + %tmp.115 = trunc i32 %mb_y.0 to i8 ; <i8> [#uses=1] + %shift.upgrd.4 = zext i8 %tmp.115 to i32 ; <i32> [#uses=1] + %tmp.116 = ashr i32 %cbp.1, %shift.upgrd.4 ; <i32> [#uses=1] + %tmp.117 = bitcast i32 %tmp.116 to i32 ; <i32> [#uses=1] + %tmp.119 = xor i32 %tmp.117, 1 ; <i32> [#uses=1] + %tmp.120 = bitcast i32 %tmp.119 to i32 ; <i32> [#uses=1] + %tmp.121 = and i32 %tmp.120, 1 ; <i32> [#uses=1] br label %endif.4 endif.4: ; preds = %else.4, %else.5, %else.6, %then.6 - %a.0 = phi int [ 0, %then.6 ], [ %tmp.112, %else.6 ], [ 0, %else.5 ], [ %tmp.121, %else.4 ] ; <int> [#uses=2] - %tmp.123 = mul int %b.0, 2 ; <int> [#uses=1] - %tmp.125 = add int %tmp.123, %a.0 ; <int> [#uses=2] - %tmp.127 = div int %mb_x.1, 2 ; <int> [#uses=1] - %tmp.129 = add int %tmp.127, %mb_y.0 ; <int> [#uses=1] - %tmp.130 = cast int %tmp.129 to ubyte ; <ubyte> [#uses=1] - %tmp.131 = shl int 1, ubyte %tmp.130 ; <int> [#uses=2] - %tmp.135 = getelementptr %typedef.TextureInfoContexts* %tmp.4, int 0, uint 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] - %tmp.136 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.135, int 0, int 0 ; <[4 x %typedef.BiContextType]*> [#uses=1] - %tmp.137 = getelementptr [4 x %typedef.BiContextType]* %tmp.136, int 0, int 0 ; <%typedef.BiContextType*> [#uses=1] - %tmp.139 = cast int %tmp.125 to uint ; <uint> [#uses=1] - %tmp.140 = cast uint %tmp.139 to int ; <int> [#uses=1] - %tmp.141 = getelementptr %typedef.BiContextType* %tmp.137, int %tmp.140 ; <%typedef.BiContextType*> [#uses=1] - %tmp.132 = call uint %biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.141 ) ; <uint> [#uses=1] - %tmp.142 = cast uint %tmp.132 to int ; <int> [#uses=2] - %tmp.144 = setne int %tmp.142, 0 ; <bool> [#uses=2] - %tmp.145 = cast bool %tmp.144 to int ; <int> [#uses=0] - br bool %tmp.144, label %then.7, label %endif.7 + %a.0 = phi i32 [ 0, %then.6 ], [ %tmp.112, %else.6 ], [ 0, %else.5 ], [ %tmp.121, %else.4 ] ; <i32> [#uses=2] + %tmp.123 = mul i32 %b.0, 2 ; <i32> [#uses=1] + %tmp.125 = add i32 %tmp.123, %a.0 ; <i32> [#uses=2] + %tmp.127 = sdiv i32 %mb_x.1, 2 ; <i32> [#uses=1] + %tmp.129 = add i32 %tmp.127, %mb_y.0 ; <i32> [#uses=1] + %tmp.130 = trunc i32 %tmp.129 to i8 ; <i8> [#uses=1] + %shift.upgrd.5 = zext i8 %tmp.130 to i32 ; <i32> [#uses=1] + %tmp.131 = shl i32 1, %shift.upgrd.5 ; <i32> [#uses=2] + %tmp.135 = getelementptr %typedef.TextureInfoContexts* %tmp.4, i32 0, i32 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] + %tmp.136 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.135, i32 0, i32 0 ; <[4 x %typedef.BiContextType]*> [#uses=1] + %tmp.137 = getelementptr [4 x %typedef.BiContextType]* %tmp.136, i32 0, i32 0 ; <%typedef.BiContextType*> [#uses=1] + %tmp.139 = bitcast i32 %tmp.125 to i32 ; <i32> [#uses=1] + %tmp.140 = bitcast i32 %tmp.139 to i32 ; <i32> [#uses=1] + %tmp.141 = getelementptr %typedef.BiContextType* %tmp.137, i32 %tmp.140 ; <%typedef.BiContextType*> [#uses=1] + %tmp.132 = call i32 @biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.141 ) ; <i32> [#uses=1] + %tmp.142 = bitcast i32 %tmp.132 to i32 ; <i32> [#uses=2] + %tmp.144 = icmp ne i32 %tmp.142, 0 ; <i1> [#uses=2] + %tmp.145 = zext i1 %tmp.144 to i32 ; <i32> [#uses=0] + br i1 %tmp.144, label %then.7, label %endif.7 then.7: ; preds = %endif.4 - %tmp.148 = add int %cbp.1, %tmp.131 ; <int> [#uses=1] + %tmp.148 = add i32 %cbp.1, %tmp.131 ; <i32> [#uses=1] br label %endif.7 endif.7: ; preds = %then.7, %endif.4 - %cbp.0 = phi int [ %tmp.148, %then.7 ], [ %cbp.1, %endif.4 ] ; <int> [#uses=1] - %tmp.150 = add int %mb_x.1, 2 ; <int> [#uses=1] + %cbp.0 = phi i32 [ %tmp.148, %then.7 ], [ %cbp.1, %endif.4 ] ; <i32> [#uses=1] + %tmp.150 = add i32 %mb_x.1, 2 ; <i32> [#uses=1] br label %loopentry.1 loopexit.1: ; preds = %loopentry.1 - %tmp.152 = add int %mb_y.0, 2 ; <int> [#uses=1] + %tmp.152 = add i32 %mb_y.0, 2 ; <i32> [#uses=1] br label %loopentry.0 loopexit.0: ; preds = %loopentry.0 - %tmp.153 = load %struct.storable_picture** %dec_picture ; <%struct.storable_picture*> [#uses=1] - %tmp.154 = getelementptr %struct.storable_picture* %tmp.153, int 0, uint 45 ; <int*> [#uses=1] - %tmp.155 = load int* %tmp.154 ; <int> [#uses=1] - %tmp.156 = setne int %tmp.155, 0 ; <bool> [#uses=2] - %tmp.157 = cast bool %tmp.156 to int ; <int> [#uses=0] - br bool %tmp.156, label %then.8, label %endif.8 + %tmp.153 = load %struct.storable_picture** @dec_picture ; <%struct.storable_picture*> [#uses=1] + %tmp.154 = getelementptr %struct.storable_picture* %tmp.153, i32 0, i32 45 ; <i32*> [#uses=1] + %tmp.155 = load i32* %tmp.154 ; <i32> [#uses=1] + %tmp.156 = icmp ne i32 %tmp.155, 0 ; <i1> [#uses=2] + %tmp.157 = zext i1 %tmp.156 to i32 ; <i32> [#uses=0] + br i1 %tmp.156, label %then.8, label %endif.8 then.8: ; preds = %loopexit.0 - %tmp.159 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.159 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.160 = load %struct.macroblock** %tmp.159 ; <%struct.macroblock*> [#uses=1] - %tmp.161 = cast %struct.macroblock* %tmp.160 to sbyte* ; <sbyte*> [#uses=1] - %tmp.162 = setne sbyte* %tmp.161, null ; <bool> [#uses=2] - %tmp.163 = cast bool %tmp.162 to int ; <int> [#uses=0] - br bool %tmp.162, label %then.9, label %endif.9 + %tmp.161 = bitcast %struct.macroblock* %tmp.160 to i8* ; <i8*> [#uses=1] + %tmp.162 = icmp ne i8* %tmp.161, null ; <i1> [#uses=2] + %tmp.163 = zext i1 %tmp.162 to i32 ; <i32> [#uses=0] + br i1 %tmp.162, label %then.9, label %endif.9 then.9: ; preds = %then.8 - %tmp.165 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.165 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.166 = load %struct.macroblock** %tmp.165 ; <%struct.macroblock*> [#uses=1] - %tmp.167 = getelementptr %struct.macroblock* %tmp.166, int 0, uint 5 ; <int*> [#uses=1] - %tmp.168 = load int* %tmp.167 ; <int> [#uses=1] - %tmp.169 = seteq int %tmp.168, 14 ; <bool> [#uses=2] - %tmp.170 = cast bool %tmp.169 to int ; <int> [#uses=0] - br bool %tmp.169, label %then.10, label %else.7 + %tmp.167 = getelementptr %struct.macroblock* %tmp.166, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.168 = load i32* %tmp.167 ; <i32> [#uses=1] + %tmp.169 = icmp eq i32 %tmp.168, 14 ; <i1> [#uses=2] + %tmp.170 = zext i1 %tmp.169 to i32 ; <i32> [#uses=0] + br i1 %tmp.169, label %then.10, label %else.7 then.10: ; preds = %then.9 br label %endif.9 else.7: ; preds = %then.9 - %tmp.172 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.172 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.173 = load %struct.macroblock** %tmp.172 ; <%struct.macroblock*> [#uses=1] - %tmp.174 = getelementptr %struct.macroblock* %tmp.173, int 0, uint 7 ; <int*> [#uses=1] - %tmp.175 = load int* %tmp.174 ; <int> [#uses=1] - %tmp.176 = setgt int %tmp.175, 15 ; <bool> [#uses=1] - %tmp.177 = cast bool %tmp.176 to int ; <int> [#uses=1] + %tmp.174 = getelementptr %struct.macroblock* %tmp.173, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.175 = load i32* %tmp.174 ; <i32> [#uses=1] + %tmp.176 = icmp sgt i32 %tmp.175, 15 ; <i1> [#uses=1] + %tmp.177 = zext i1 %tmp.176 to i32 ; <i32> [#uses=1] br label %endif.9 endif.9: ; preds = %else.7, %then.10, %then.8 - %b.4 = phi int [ 1, %then.10 ], [ %tmp.177, %else.7 ], [ 0, %then.8 ] ; <int> [#uses=1] - %tmp.179 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %b.4 = phi i32 [ 1, %then.10 ], [ %tmp.177, %else.7 ], [ 0, %then.8 ] ; <i32> [#uses=1] + %tmp.179 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.180 = load %struct.macroblock** %tmp.179 ; <%struct.macroblock*> [#uses=1] - %tmp.181 = cast %struct.macroblock* %tmp.180 to sbyte* ; <sbyte*> [#uses=1] - %tmp.182 = setne sbyte* %tmp.181, null ; <bool> [#uses=2] - %tmp.183 = cast bool %tmp.182 to int ; <int> [#uses=0] - br bool %tmp.182, label %then.11, label %endif.11 + %tmp.181 = bitcast %struct.macroblock* %tmp.180 to i8* ; <i8*> [#uses=1] + %tmp.182 = icmp ne i8* %tmp.181, null ; <i1> [#uses=2] + %tmp.183 = zext i1 %tmp.182 to i32 ; <i32> [#uses=0] + br i1 %tmp.182, label %then.11, label %endif.11 then.11: ; preds = %endif.9 - %tmp.185 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %tmp.185 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.186 = load %struct.macroblock** %tmp.185 ; <%struct.macroblock*> [#uses=1] - %tmp.187 = getelementptr %struct.macroblock* %tmp.186, int 0, uint 5 ; <int*> [#uses=1] - %tmp.188 = load int* %tmp.187 ; <int> [#uses=1] - %tmp.189 = seteq int %tmp.188, 14 ; <bool> [#uses=2] - %tmp.190 = cast bool %tmp.189 to int ; <int> [#uses=0] - br bool %tmp.189, label %then.12, label %else.8 + %tmp.187 = getelementptr %struct.macroblock* %tmp.186, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.188 = load i32* %tmp.187 ; <i32> [#uses=1] + %tmp.189 = icmp eq i32 %tmp.188, 14 ; <i1> [#uses=2] + %tmp.190 = zext i1 %tmp.189 to i32 ; <i32> [#uses=0] + br i1 %tmp.189, label %then.12, label %else.8 then.12: ; preds = %then.11 br label %endif.11 else.8: ; preds = %then.11 - %tmp.192 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %tmp.192 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.193 = load %struct.macroblock** %tmp.192 ; <%struct.macroblock*> [#uses=1] - %tmp.194 = getelementptr %struct.macroblock* %tmp.193, int 0, uint 7 ; <int*> [#uses=1] - %tmp.195 = load int* %tmp.194 ; <int> [#uses=1] - %tmp.196 = setgt int %tmp.195, 15 ; <bool> [#uses=1] - %tmp.197 = cast bool %tmp.196 to int ; <int> [#uses=1] + %tmp.194 = getelementptr %struct.macroblock* %tmp.193, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.195 = load i32* %tmp.194 ; <i32> [#uses=1] + %tmp.196 = icmp sgt i32 %tmp.195, 15 ; <i1> [#uses=1] + %tmp.197 = zext i1 %tmp.196 to i32 ; <i32> [#uses=1] br label %endif.11 endif.11: ; preds = %else.8, %then.12, %endif.9 - %a.4 = phi int [ 1, %then.12 ], [ %tmp.197, %else.8 ], [ 0, %endif.9 ] ; <int> [#uses=1] - %tmp.199 = mul int %b.4, 2 ; <int> [#uses=1] - %tmp.201 = add int %tmp.199, %a.4 ; <int> [#uses=1] - %tmp.205 = getelementptr %typedef.TextureInfoContexts* %tmp.4, int 0, uint 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] - %tmp.206 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.205, int 0, int 1 ; <[4 x %typedef.BiContextType]*> [#uses=1] - %tmp.207 = getelementptr [4 x %typedef.BiContextType]* %tmp.206, int 0, int 0 ; <%typedef.BiContextType*> [#uses=1] - %tmp.209 = cast int %tmp.201 to uint ; <uint> [#uses=1] - %tmp.210 = cast uint %tmp.209 to int ; <int> [#uses=1] - %tmp.211 = getelementptr %typedef.BiContextType* %tmp.207, int %tmp.210 ; <%typedef.BiContextType*> [#uses=1] - %tmp.202 = call uint %biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.211 ) ; <uint> [#uses=1] - %tmp.212 = cast uint %tmp.202 to int ; <int> [#uses=1] - %tmp.214 = setne int %tmp.212, 0 ; <bool> [#uses=2] - %tmp.215 = cast bool %tmp.214 to int ; <int> [#uses=0] - br bool %tmp.214, label %then.13, label %endif.8 + %a.4 = phi i32 [ 1, %then.12 ], [ %tmp.197, %else.8 ], [ 0, %endif.9 ] ; <i32> [#uses=1] + %tmp.199 = mul i32 %b.4, 2 ; <i32> [#uses=1] + %tmp.201 = add i32 %tmp.199, %a.4 ; <i32> [#uses=1] + %tmp.205 = getelementptr %typedef.TextureInfoContexts* %tmp.4, i32 0, i32 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] + %tmp.206 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.205, i32 0, i32 1 ; <[4 x %typedef.BiContextType]*> [#uses=1] + %tmp.207 = getelementptr [4 x %typedef.BiContextType]* %tmp.206, i32 0, i32 0 ; <%typedef.BiContextType*> [#uses=1] + %tmp.209 = bitcast i32 %tmp.201 to i32 ; <i32> [#uses=1] + %tmp.210 = bitcast i32 %tmp.209 to i32 ; <i32> [#uses=1] + %tmp.211 = getelementptr %typedef.BiContextType* %tmp.207, i32 %tmp.210 ; <%typedef.BiContextType*> [#uses=1] + %tmp.202 = call i32 @biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.211 ) ; <i32> [#uses=1] + %tmp.212 = bitcast i32 %tmp.202 to i32 ; <i32> [#uses=1] + %tmp.214 = icmp ne i32 %tmp.212, 0 ; <i1> [#uses=2] + %tmp.215 = zext i1 %tmp.214 to i32 ; <i32> [#uses=0] + br i1 %tmp.214, label %then.13, label %endif.8 then.13: ; preds = %endif.11 - %tmp.217 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.217 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.218 = load %struct.macroblock** %tmp.217 ; <%struct.macroblock*> [#uses=1] - %tmp.219 = cast %struct.macroblock* %tmp.218 to sbyte* ; <sbyte*> [#uses=1] - %tmp.220 = setne sbyte* %tmp.219, null ; <bool> [#uses=2] - %tmp.221 = cast bool %tmp.220 to int ; <int> [#uses=0] - br bool %tmp.220, label %then.14, label %endif.14 + %tmp.219 = bitcast %struct.macroblock* %tmp.218 to i8* ; <i8*> [#uses=1] + %tmp.220 = icmp ne i8* %tmp.219, null ; <i1> [#uses=2] + %tmp.221 = zext i1 %tmp.220 to i32 ; <i32> [#uses=0] + br i1 %tmp.220, label %then.14, label %endif.14 then.14: ; preds = %then.13 - %tmp.223 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.223 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.224 = load %struct.macroblock** %tmp.223 ; <%struct.macroblock*> [#uses=1] - %tmp.225 = getelementptr %struct.macroblock* %tmp.224, int 0, uint 5 ; <int*> [#uses=1] - %tmp.226 = load int* %tmp.225 ; <int> [#uses=1] - %tmp.227 = seteq int %tmp.226, 14 ; <bool> [#uses=2] - %tmp.228 = cast bool %tmp.227 to int ; <int> [#uses=0] - br bool %tmp.227, label %then.15, label %else.9 + %tmp.225 = getelementptr %struct.macroblock* %tmp.224, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.226 = load i32* %tmp.225 ; <i32> [#uses=1] + %tmp.227 = icmp eq i32 %tmp.226, 14 ; <i1> [#uses=2] + %tmp.228 = zext i1 %tmp.227 to i32 ; <i32> [#uses=0] + br i1 %tmp.227, label %then.15, label %else.9 then.15: ; preds = %then.14 br label %endif.14 else.9: ; preds = %then.14 - %tmp.230 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.230 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.231 = load %struct.macroblock** %tmp.230 ; <%struct.macroblock*> [#uses=1] - %tmp.232 = getelementptr %struct.macroblock* %tmp.231, int 0, uint 7 ; <int*> [#uses=1] - %tmp.233 = load int* %tmp.232 ; <int> [#uses=1] - %tmp.234 = setgt int %tmp.233, 15 ; <bool> [#uses=2] - %tmp.235 = cast bool %tmp.234 to int ; <int> [#uses=0] - br bool %tmp.234, label %then.16, label %endif.14 + %tmp.232 = getelementptr %struct.macroblock* %tmp.231, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.233 = load i32* %tmp.232 ; <i32> [#uses=1] + %tmp.234 = icmp sgt i32 %tmp.233, 15 ; <i1> [#uses=2] + %tmp.235 = zext i1 %tmp.234 to i32 ; <i32> [#uses=0] + br i1 %tmp.234, label %then.16, label %endif.14 then.16: ; preds = %else.9 - %tmp.237 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 3 ; <%struct.macroblock**> [#uses=1] + %tmp.237 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 3 ; <%struct.macroblock**> [#uses=1] %tmp.238 = load %struct.macroblock** %tmp.237 ; <%struct.macroblock*> [#uses=1] - %tmp.239 = getelementptr %struct.macroblock* %tmp.238, int 0, uint 7 ; <int*> [#uses=1] - %tmp.240 = load int* %tmp.239 ; <int> [#uses=1] - %tmp.242 = shr int %tmp.240, ubyte 4 ; <int> [#uses=1] - %tmp.243 = seteq int %tmp.242, 2 ; <bool> [#uses=1] - %tmp.244 = cast bool %tmp.243 to int ; <int> [#uses=1] + %tmp.239 = getelementptr %struct.macroblock* %tmp.238, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.240 = load i32* %tmp.239 ; <i32> [#uses=1] + %tmp.242 = ashr i32 %tmp.240, 4 ; <i32> [#uses=1] + %tmp.243 = icmp eq i32 %tmp.242, 2 ; <i1> [#uses=1] + %tmp.244 = zext i1 %tmp.243 to i32 ; <i32> [#uses=1] br label %endif.14 endif.14: ; preds = %then.16, %else.9, %then.15, %then.13 - %b.5 = phi int [ 1, %then.15 ], [ %tmp.244, %then.16 ], [ 0, %else.9 ], [ 0, %then.13 ] ; <int> [#uses=1] - %tmp.246 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %b.5 = phi i32 [ 1, %then.15 ], [ %tmp.244, %then.16 ], [ 0, %else.9 ], [ 0, %then.13 ] ; <i32> [#uses=1] + %tmp.246 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.247 = load %struct.macroblock** %tmp.246 ; <%struct.macroblock*> [#uses=1] - %tmp.248 = cast %struct.macroblock* %tmp.247 to sbyte* ; <sbyte*> [#uses=1] - %tmp.249 = setne sbyte* %tmp.248, null ; <bool> [#uses=2] - %tmp.250 = cast bool %tmp.249 to int ; <int> [#uses=0] - br bool %tmp.249, label %then.17, label %endif.17 + %tmp.248 = bitcast %struct.macroblock* %tmp.247 to i8* ; <i8*> [#uses=1] + %tmp.249 = icmp ne i8* %tmp.248, null ; <i1> [#uses=2] + %tmp.250 = zext i1 %tmp.249 to i32 ; <i32> [#uses=0] + br i1 %tmp.249, label %then.17, label %endif.17 then.17: ; preds = %endif.14 - %tmp.252 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %tmp.252 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.253 = load %struct.macroblock** %tmp.252 ; <%struct.macroblock*> [#uses=1] - %tmp.254 = getelementptr %struct.macroblock* %tmp.253, int 0, uint 5 ; <int*> [#uses=1] - %tmp.255 = load int* %tmp.254 ; <int> [#uses=1] - %tmp.256 = seteq int %tmp.255, 14 ; <bool> [#uses=2] - %tmp.257 = cast bool %tmp.256 to int ; <int> [#uses=0] - br bool %tmp.256, label %then.18, label %else.10 + %tmp.254 = getelementptr %struct.macroblock* %tmp.253, i32 0, i32 5 ; <i32*> [#uses=1] + %tmp.255 = load i32* %tmp.254 ; <i32> [#uses=1] + %tmp.256 = icmp eq i32 %tmp.255, 14 ; <i1> [#uses=2] + %tmp.257 = zext i1 %tmp.256 to i32 ; <i32> [#uses=0] + br i1 %tmp.256, label %then.18, label %else.10 then.18: ; preds = %then.17 br label %endif.17 else.10: ; preds = %then.17 - %tmp.259 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %tmp.259 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.260 = load %struct.macroblock** %tmp.259 ; <%struct.macroblock*> [#uses=1] - %tmp.261 = getelementptr %struct.macroblock* %tmp.260, int 0, uint 7 ; <int*> [#uses=1] - %tmp.262 = load int* %tmp.261 ; <int> [#uses=1] - %tmp.263 = setgt int %tmp.262, 15 ; <bool> [#uses=2] - %tmp.264 = cast bool %tmp.263 to int ; <int> [#uses=0] - br bool %tmp.263, label %then.19, label %endif.17 + %tmp.261 = getelementptr %struct.macroblock* %tmp.260, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.262 = load i32* %tmp.261 ; <i32> [#uses=1] + %tmp.263 = icmp sgt i32 %tmp.262, 15 ; <i1> [#uses=2] + %tmp.264 = zext i1 %tmp.263 to i32 ; <i32> [#uses=0] + br i1 %tmp.263, label %then.19, label %endif.17 then.19: ; preds = %else.10 - %tmp.266 = getelementptr %struct.macroblock* %tmp.12, int 0, uint 4 ; <%struct.macroblock**> [#uses=1] + %tmp.266 = getelementptr %struct.macroblock* %tmp.12, i32 0, i32 4 ; <%struct.macroblock**> [#uses=1] %tmp.267 = load %struct.macroblock** %tmp.266 ; <%struct.macroblock*> [#uses=1] - %tmp.268 = getelementptr %struct.macroblock* %tmp.267, int 0, uint 7 ; <int*> [#uses=1] - %tmp.269 = load int* %tmp.268 ; <int> [#uses=1] - %tmp.271 = shr int %tmp.269, ubyte 4 ; <int> [#uses=1] - %tmp.272 = seteq int %tmp.271, 2 ; <bool> [#uses=1] - %tmp.273 = cast bool %tmp.272 to int ; <int> [#uses=1] + %tmp.268 = getelementptr %struct.macroblock* %tmp.267, i32 0, i32 7 ; <i32*> [#uses=1] + %tmp.269 = load i32* %tmp.268 ; <i32> [#uses=1] + %tmp.271 = ashr i32 %tmp.269, 4 ; <i32> [#uses=1] + %tmp.272 = icmp eq i32 %tmp.271, 2 ; <i1> [#uses=1] + %tmp.273 = zext i1 %tmp.272 to i32 ; <i32> [#uses=1] br label %endif.17 endif.17: ; preds = %then.19, %else.10, %then.18, %endif.14 - %a.5 = phi int [ 1, %then.18 ], [ %tmp.273, %then.19 ], [ 0, %else.10 ], [ 0, %endif.14 ] ; <int> [#uses=1] - %tmp.275 = mul int %b.5, 2 ; <int> [#uses=1] - %tmp.277 = add int %tmp.275, %a.5 ; <int> [#uses=1] - %tmp.281 = getelementptr %typedef.TextureInfoContexts* %tmp.4, int 0, uint 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] - %tmp.282 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.281, int 0, int 2 ; <[4 x %typedef.BiContextType]*> [#uses=1] - %tmp.283 = getelementptr [4 x %typedef.BiContextType]* %tmp.282, int 0, int 0 ; <%typedef.BiContextType*> [#uses=1] - %tmp.285 = cast int %tmp.277 to uint ; <uint> [#uses=1] - %tmp.286 = cast uint %tmp.285 to int ; <int> [#uses=1] - %tmp.287 = getelementptr %typedef.BiContextType* %tmp.283, int %tmp.286 ; <%typedef.BiContextType*> [#uses=1] - %tmp.278 = call uint %biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.287 ) ; <uint> [#uses=1] - %tmp.288 = cast uint %tmp.278 to int ; <int> [#uses=1] - %tmp.290 = seteq int %tmp.288, 1 ; <bool> [#uses=2] - %tmp.291 = cast bool %tmp.290 to int ; <int> [#uses=0] - br bool %tmp.290, label %cond_true, label %cond_false + %a.5 = phi i32 [ 1, %then.18 ], [ %tmp.273, %then.19 ], [ 0, %else.10 ], [ 0, %endif.14 ] ; <i32> [#uses=1] + %tmp.275 = mul i32 %b.5, 2 ; <i32> [#uses=1] + %tmp.277 = add i32 %tmp.275, %a.5 ; <i32> [#uses=1] + %tmp.281 = getelementptr %typedef.TextureInfoContexts* %tmp.4, i32 0, i32 2 ; <[3 x [4 x %typedef.BiContextType]]*> [#uses=1] + %tmp.282 = getelementptr [3 x [4 x %typedef.BiContextType]]* %tmp.281, i32 0, i32 2 ; <[4 x %typedef.BiContextType]*> [#uses=1] + %tmp.283 = getelementptr [4 x %typedef.BiContextType]* %tmp.282, i32 0, i32 0 ; <%typedef.BiContextType*> [#uses=1] + %tmp.285 = bitcast i32 %tmp.277 to i32 ; <i32> [#uses=1] + %tmp.286 = bitcast i32 %tmp.285 to i32 ; <i32> [#uses=1] + %tmp.287 = getelementptr %typedef.BiContextType* %tmp.283, i32 %tmp.286 ; <%typedef.BiContextType*> [#uses=1] + %tmp.278 = call i32 @biari_decode_symbol( %typedef.DecodingEnvironment* %dep_dp, %typedef.BiContextType* %tmp.287 ) ; <i32> [#uses=1] + %tmp.288 = bitcast i32 %tmp.278 to i32 ; <i32> [#uses=1] + %tmp.290 = icmp eq i32 %tmp.288, 1 ; <i1> [#uses=2] + %tmp.291 = zext i1 %tmp.290 to i32 ; <i32> [#uses=0] + br i1 %tmp.290, label %cond_true, label %cond_false cond_true: ; preds = %endif.17 - %tmp.293 = add int %cbp.2, 32 ; <int> [#uses=1] + %tmp.293 = add i32 %cbp.2, 32 ; <i32> [#uses=1] br label %cond_continue cond_false: ; preds = %endif.17 - %tmp.295 = add int %cbp.2, 16 ; <int> [#uses=1] + %tmp.295 = add i32 %cbp.2, 16 ; <i32> [#uses=1] br label %cond_continue cond_continue: ; preds = %cond_false, %cond_true - %mem_tmp.0 = phi int [ %tmp.293, %cond_true ], [ %tmp.295, %cond_false ] ; <int> [#uses=1] + %mem_tmp.0 = phi i32 [ %tmp.293, %cond_true ], [ %tmp.295, %cond_false ] ; <i32> [#uses=1] br label %endif.8 endif.8: ; preds = %cond_continue, %endif.11, %loopexit.0 - %cbp.3 = phi int [ %mem_tmp.0, %cond_continue ], [ %cbp.2, %endif.11 ], [ %cbp.2, %loopexit.0 ] ; <int> [#uses=2] - %tmp.298 = getelementptr %struct.syntaxelement* %se, int 0, uint 1 ; <int*> [#uses=1] - store int %cbp.3, int* %tmp.298 - %tmp.301 = seteq int %cbp.3, 0 ; <bool> [#uses=2] - %tmp.302 = cast bool %tmp.301 to int ; <int> [#uses=0] - br bool %tmp.301, label %then.20, label %return + %cbp.3 = phi i32 [ %mem_tmp.0, %cond_continue ], [ %cbp.2, %endif.11 ], [ %cbp.2, %loopexit.0 ] ; <i32> [#uses=2] + %tmp.298 = getelementptr %struct.syntaxelement* %se, i32 0, i32 1 ; <i32*> [#uses=1] + store i32 %cbp.3, i32* %tmp.298 + %tmp.301 = icmp eq i32 %cbp.3, 0 ; <i1> [#uses=2] + %tmp.302 = zext i1 %tmp.301 to i32 ; <i32> [#uses=0] + br i1 %tmp.301, label %then.20, label %return then.20: ; preds = %endif.8 - store int 0, int* %last_dquant + store i32 0, i32* @last_dquant ret void return: ; preds = %endif.8 ret void } -declare uint %biari_decode_symbol(%typedef.DecodingEnvironment*, %typedef.BiContextType*) +declare i32 @biari_decode_symbol(%typedef.DecodingEnvironment*, %typedef.BiContextType*) -declare void %getLuma4x4Neighbour(int, int, int, int, int, %struct.pix_pos*) +declare void @getLuma4x4Neighbour(i32, i32, i32, i32, i32, %struct.pix_pos*) diff --git a/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll b/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll index 6e25d79..2541eb7 100644 --- a/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll +++ b/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep shl -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | notcast +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast ; This cannot be turned into a sign extending cast! -long %test(long %X) { - %Y = shl long %X, ubyte 16 - %Z = shr long %Y, ubyte 16 - ret long %Z +define i64 @test(i64 %X) { + %Y = shl i64 %X, 16 ; <i64> [#uses=1] + %Z = ashr i64 %Y, 16 ; <i64> [#uses=1] + ret i64 %Z } + diff --git a/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll b/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll index 3e72a18..4506bf0 100644 --- a/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll +++ b/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll @@ -1,49 +1,48 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -; END. +; RUN: llvm-as < %s | opt -instcombine -disable-output -void %test() { +define void @test() { bb38.i: - %varspec.0.i1014 = cast long 123814269237067777 to ulong ; <ulong> [#uses=1] - %locspec.0.i1015 = cast int 1 to uint ; <uint> [#uses=2] - %tmp51391.i1018 = shr ulong %varspec.0.i1014, ubyte 16 ; <ulong> [#uses=1] - %tmp51392.i1019 = cast ulong %tmp51391.i1018 to uint ; <uint> [#uses=2] - %tmp51392.mask.i1020 = shr uint %tmp51392.i1019, ubyte 29 ; <uint> [#uses=1] - %tmp7.i1021 = and uint %tmp51392.mask.i1020, 1 ; <uint> [#uses=2] - %tmp18.i1026 = shr uint %tmp51392.i1019, ubyte 31 ; <uint> [#uses=2] - %tmp18.i1027 = cast uint %tmp18.i1026 to ubyte ; <ubyte> [#uses=1] - br bool false, label %cond_false1148.i1653, label %bb377.i1259 + %varspec.0.i1014 = bitcast i64 123814269237067777 to i64 ; <i64> [#uses=1] + %locspec.0.i1015 = bitcast i32 1 to i32 ; <i32> [#uses=2] + %tmp51391.i1018 = lshr i64 %varspec.0.i1014, 16 ; <i64> [#uses=1] + %tmp51392.i1019 = trunc i64 %tmp51391.i1018 to i32 ; <i32> [#uses=2] + %tmp51392.mask.i1020 = lshr i32 %tmp51392.i1019, 29 ; <i32> [#uses=1] + %tmp7.i1021 = and i32 %tmp51392.mask.i1020, 1 ; <i32> [#uses=2] + %tmp18.i1026 = lshr i32 %tmp51392.i1019, 31 ; <i32> [#uses=2] + %tmp18.i1027 = trunc i32 %tmp18.i1026 to i8 ; <i8> [#uses=1] + br i1 false, label %cond_false1148.i1653, label %bb377.i1259 bb377.i1259: ; preds = %bb38.i - br bool false, label %cond_true541.i1317, label %cond_false1148.i1653 + br i1 false, label %cond_true541.i1317, label %cond_false1148.i1653 cond_true541.i1317: ; preds = %bb377.i1259 - %tmp545.i1318 = shr uint %locspec.0.i1015, ubyte 10 ; <uint> [#uses=1] - %tmp550.i1319 = shr uint %locspec.0.i1015, ubyte 4 ; <uint> [#uses=1] - %tmp550551.i1320 = and uint %tmp550.i1319, 63 ; <uint> [#uses=1] - %tmp553.i1321 = setlt uint %tmp550551.i1320, 4 ; <bool> [#uses=1] - %tmp558.i1322 = seteq uint %tmp7.i1021, 0 ; <bool> [#uses=1] - %bothcond.i1326 = or bool %tmp553.i1321, false ; <bool> [#uses=1] - %bothcond1.i1327 = or bool %bothcond.i1326, false ; <bool> [#uses=1] - %bothcond2.not.i1328 = or bool %bothcond1.i1327, false ; <bool> [#uses=1] - %bothcond3.i1329 = or bool %bothcond2.not.i1328, %tmp558.i1322 ; <bool> [#uses=0] - br bool false, label %cond_true583.i1333, label %cond_next592.i1337 + %tmp545.i1318 = lshr i32 %locspec.0.i1015, 10 ; <i32> [#uses=1] + %tmp550.i1319 = lshr i32 %locspec.0.i1015, 4 ; <i32> [#uses=1] + %tmp550551.i1320 = and i32 %tmp550.i1319, 63 ; <i32> [#uses=1] + %tmp553.i1321 = icmp ult i32 %tmp550551.i1320, 4 ; <i1> [#uses=1] + %tmp558.i1322 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] + %bothcond.i1326 = or i1 %tmp553.i1321, false ; <i1> [#uses=1] + %bothcond1.i1327 = or i1 %bothcond.i1326, false ; <i1> [#uses=1] + %bothcond2.not.i1328 = or i1 %bothcond1.i1327, false ; <i1> [#uses=1] + %bothcond3.i1329 = or i1 %bothcond2.not.i1328, %tmp558.i1322 ; <i1> [#uses=0] + br i1 false, label %cond_true583.i1333, label %cond_next592.i1337 cond_true583.i1333: ; preds = %cond_true541.i1317 - br bool false, label %cond_true586.i1335, label %cond_next592.i1337 + br i1 false, label %cond_true586.i1335, label %cond_next592.i1337 cond_true586.i1335: ; preds = %cond_true583.i1333 br label %cond_true.i cond_next592.i1337: ; preds = %cond_true583.i1333, %cond_true541.i1317 - %mask_z.0.i1339 = phi uint [ %tmp18.i1026, %cond_true541.i1317 ], [ 0, %cond_true583.i1333 ] ; <uint> [#uses=0] - %tmp594.i1340 = and uint %tmp545.i1318, 15 ; <uint> [#uses=0] + %mask_z.0.i1339 = phi i32 [ %tmp18.i1026, %cond_true541.i1317 ], [ 0, %cond_true583.i1333 ] ; <i32> [#uses=0] + %tmp594.i1340 = and i32 %tmp545.i1318, 15 ; <i32> [#uses=0] br label %cond_true.i cond_false1148.i1653: ; preds = %bb377.i1259, %bb38.i - %tmp1150.i1654 = seteq uint %tmp7.i1021, 0 ; <bool> [#uses=1] - %tmp1160.i1656 = seteq ubyte %tmp18.i1027, 0 ; <bool> [#uses=1] - %bothcond8.i1658 = or bool %tmp1150.i1654, %tmp1160.i1656 ; <bool> [#uses=1] - %bothcond9.i1659 = or bool %bothcond8.i1658, false ; <bool> [#uses=0] + %tmp1150.i1654 = icmp eq i32 %tmp7.i1021, 0 ; <i1> [#uses=1] + %tmp1160.i1656 = icmp eq i8 %tmp18.i1027, 0 ; <i1> [#uses=1] + %bothcond8.i1658 = or i1 %tmp1150.i1654, %tmp1160.i1656 ; <i1> [#uses=1] + %bothcond9.i1659 = or i1 %bothcond8.i1658, false ; <i1> [#uses=0] br label %cond_true.i cond_true.i: ; preds = %cond_false1148.i1653, %cond_next592.i1337, %cond_true586.i1335 diff --git a/test/Transforms/InstCombine/2006-05-06-Infloop.ll b/test/Transforms/InstCombine/2006-05-06-Infloop.ll index 4458d97..b1c48ec 100644 --- a/test/Transforms/InstCombine/2006-05-06-Infloop.ll +++ b/test/Transforms/InstCombine/2006-05-06-Infloop.ll @@ -1,301 +1,296 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -; END. - - %struct.gs_matrix = type { float, int, float, int, float, int, float, int, float, int, float, int } - %struct.gx_bitmap = type { ubyte*, int, int, int } - %struct.gx_device = type { int, %struct.gx_device_procs*, sbyte*, int, int, float, float, int, ushort, int, int } - %struct.gx_device_memory = type { int, %struct.gx_device_procs*, sbyte*, int, int, float, float, int, ushort, int, int, %struct.gs_matrix, int, ubyte*, ubyte**, int (%struct.gx_device_memory*, int, int, int, int, int)*, int, int, ubyte* } - %struct.gx_device_procs = type { int (%struct.gx_device*)*, void (%struct.gx_device*, %struct.gs_matrix*)*, int (%struct.gx_device*)*, int (%struct.gx_device*)*, int (%struct.gx_device*)*, uint (%struct.gx_device*, ushort, ushort, ushort)*, int (%struct.gx_device*, uint, ushort*)*, int (%struct.gx_device*, int, int, int, int, uint)*, int (%struct.gx_device*, %struct.gx_bitmap*, int, int, int, int, uint, uint)*, int (%struct.gx_device*, ubyte*, int, int, int, int, int, int, uint, uint)*, int (%struct.gx_device*, ubyte*, int, int, int, int, int, int)*, int (%struct.gx_device*, int, int, int, int, uint)*, int (%struct.gx_device*, int, int, int, int, int, int, uint)*, int (%struct.gx_device*, %struct.gx_bitmap*, int, int, int, int, int, int, uint, uint)* } - -implementation ; Functions: - -int %mem_mono_copy_mono(%struct.gx_device* %dev, ubyte* %base, int %sourcex, int %raster, int %x, int %y, int %w, int %h, uint %zero, uint %one) { +; RUN: llvm-as < %s | opt -instcombine -disable-output + %struct.gs_matrix = type { float, i32, float, i32, float, i32, float, i32, float, i32, float, i32 } + %struct.gx_bitmap = type { i8*, i32, i32, i32 } + %struct.gx_device = type { i32, %struct.gx_device_procs*, i8*, i32, i32, float, float, i32, i16, i32, i32 } + %struct.gx_device_memory = type { i32, %struct.gx_device_procs*, i8*, i32, i32, float, float, i32, i16, i32, i32, %struct.gs_matrix, i32, i8*, i8**, i32 (%struct.gx_device_memory*, i32, i32, i32, i32, i32)*, i32, i32, i8* } + %struct.gx_device_procs = type { i32 (%struct.gx_device*)*, void (%struct.gx_device*, %struct.gs_matrix*)*, i32 (%struct.gx_device*)*, i32 (%struct.gx_device*)*, i32 (%struct.gx_device*)*, i32 (%struct.gx_device*, i16, i16, i16)*, i32 (%struct.gx_device*, i32, i16*)*, i32 (%struct.gx_device*, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, %struct.gx_bitmap*, i32, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, i8*, i32, i32, i32, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, i8*, i32, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, i32, i32, i32, i32, i32, i32, i32)*, i32 (%struct.gx_device*, %struct.gx_bitmap*, i32, i32, i32, i32, i32, i32, i32, i32)* } + +define i32 @mem_mono_copy_mono(%struct.gx_device* %dev, i8* %base, i32 %sourcex, i32 %raster, i32 %x, i32 %y, i32 %w, i32 %h, i32 %zero, i32 %one) { entry: - %raster = cast int %raster to uint ; <uint> [#uses=3] - %tmp = seteq uint %one, %zero ; <bool> [#uses=1] - br bool %tmp, label %cond_true, label %cond_next + %tmp = icmp eq i32 %one, %zero ; <i1> [#uses=1] + br i1 %tmp, label %cond_true, label %cond_next cond_true: ; preds = %entry - %tmp6 = tail call int %mem_mono_fill_rectangle( %struct.gx_device* %dev, int %x, int %y, int %w, int %h, uint %zero ) ; <int> [#uses=1] - ret int %tmp6 + %tmp6 = tail call i32 @mem_mono_fill_rectangle( %struct.gx_device* %dev, i32 %x, i32 %y, i32 %w, i32 %h, i32 %zero ) ; <i32> [#uses=1] + ret i32 %tmp6 cond_next: ; preds = %entry - %tmp8 = cast %struct.gx_device* %dev to %struct.gx_device_memory* ; <%struct.gx_device_memory*> [#uses=6] - %tmp = getelementptr %struct.gx_device_memory* %tmp8, int 0, uint 15 ; <int (%struct.gx_device_memory*, int, int, int, int, int)**> [#uses=1] - %tmp = load int (%struct.gx_device_memory*, int, int, int, int, int)** %tmp ; <int (%struct.gx_device_memory*, int, int, int, int, int)*> [#uses=2] - %tmp9 = seteq int (%struct.gx_device_memory*, int, int, int, int, int)* %tmp, %mem_no_fault_proc ; <bool> [#uses=1] - br bool %tmp9, label %cond_next46, label %cond_true10 + %tmp8 = bitcast %struct.gx_device* %dev to %struct.gx_device_memory* ; <%struct.gx_device_memory*> [#uses=6] + %tmp.upgrd.1 = getelementptr %struct.gx_device_memory* %tmp8, i32 0, i32 15 ; <i32 (%struct.gx_device_memory*, i32, i32, i32, i32, i32)**> [#uses=1] + %tmp.upgrd.2 = load i32 (%struct.gx_device_memory*, i32, i32, i32, i32, i32)** %tmp.upgrd.1 ; <i32 (%struct.gx_device_memory*, i32, i32, i32, i32, i32)*> [#uses=2] + %tmp9 = icmp eq i32 (%struct.gx_device_memory*, i32, i32, i32, i32, i32)* %tmp.upgrd.2, @mem_no_fault_proc ; <i1> [#uses=1] + br i1 %tmp9, label %cond_next46, label %cond_true10 cond_true10: ; preds = %cond_next - %tmp16 = add int %x, 7 ; <int> [#uses=1] - %tmp17 = add int %tmp16, %w ; <int> [#uses=1] - %tmp18 = shr int %tmp17, ubyte 3 ; <int> [#uses=1] - %tmp20 = shr int %x, ubyte 3 ; <int> [#uses=2] - %tmp21 = sub int %tmp18, %tmp20 ; <int> [#uses=1] - %tmp27 = tail call int %tmp( %struct.gx_device_memory* %tmp8, int %tmp20, int %y, int %tmp21, int %h, int 1 ) ; <int> [#uses=2] - %tmp29 = setlt int %tmp27, 0 ; <bool> [#uses=1] - br bool %tmp29, label %cond_true30, label %cond_next46 + %tmp16 = add i32 %x, 7 ; <i32> [#uses=1] + %tmp17 = add i32 %tmp16, %w ; <i32> [#uses=1] + %tmp18 = ashr i32 %tmp17, 3 ; <i32> [#uses=1] + %tmp20 = ashr i32 %x, 3 ; <i32> [#uses=2] + %tmp21 = sub i32 %tmp18, %tmp20 ; <i32> [#uses=1] + %tmp27 = tail call i32 %tmp.upgrd.2( %struct.gx_device_memory* %tmp8, i32 %tmp20, i32 %y, i32 %tmp21, i32 %h, i32 1 ) ; <i32> [#uses=2] + %tmp29 = icmp slt i32 %tmp27, 0 ; <i1> [#uses=1] + br i1 %tmp29, label %cond_true30, label %cond_next46 cond_true30: ; preds = %cond_true10 - %tmp41 = tail call int %mem_copy_mono_recover( %struct.gx_device* %dev, ubyte* %base, int %sourcex, int %raster, int %x, int %y, int %w, int %h, uint %zero, uint %one, int %tmp27 ) ; <int> [#uses=1] - ret int %tmp41 + %tmp41 = tail call i32 @mem_copy_mono_recover( %struct.gx_device* %dev, i8* %base, i32 %sourcex, i32 %raster, i32 %x, i32 %y, i32 %w, i32 %h, i32 %zero, i32 %one, i32 %tmp27 ) ; <i32> [#uses=1] + ret i32 %tmp41 cond_next46: ; preds = %cond_true10, %cond_next - %tmp48 = setgt int %w, 0 ; <bool> [#uses=1] - %tmp53 = setgt int %h, 0 ; <bool> [#uses=1] - %bothcond = and bool %tmp53, %tmp48 ; <bool> [#uses=1] - br bool %bothcond, label %bb58, label %return + %tmp48 = icmp sgt i32 %w, 0 ; <i1> [#uses=1] + %tmp53 = icmp sgt i32 %h, 0 ; <i1> [#uses=1] + %bothcond = and i1 %tmp53, %tmp48 ; <i1> [#uses=1] + br i1 %bothcond, label %bb58, label %return bb58: ; preds = %cond_next46 - %tmp60 = setlt int %x, 0 ; <bool> [#uses=1] - br bool %tmp60, label %return, label %cond_next63 + %tmp60 = icmp slt i32 %x, 0 ; <i1> [#uses=1] + br i1 %tmp60, label %return, label %cond_next63 cond_next63: ; preds = %bb58 - %tmp65 = getelementptr %struct.gx_device_memory* %tmp8, int 0, uint 3 ; <int*> [#uses=1] - %tmp66 = load int* %tmp65 ; <int> [#uses=1] - %tmp68 = sub int %tmp66, %w ; <int> [#uses=1] - %tmp70 = setlt int %tmp68, %x ; <bool> [#uses=1] - %tmp75 = setlt int %y, 0 ; <bool> [#uses=1] - %bothcond1 = or bool %tmp70, %tmp75 ; <bool> [#uses=1] - br bool %bothcond1, label %return, label %cond_next78 + %tmp65 = getelementptr %struct.gx_device_memory* %tmp8, i32 0, i32 3 ; <i32*> [#uses=1] + %tmp66 = load i32* %tmp65 ; <i32> [#uses=1] + %tmp68 = sub i32 %tmp66, %w ; <i32> [#uses=1] + %tmp70 = icmp slt i32 %tmp68, %x ; <i1> [#uses=1] + %tmp75 = icmp slt i32 %y, 0 ; <i1> [#uses=1] + %bothcond1 = or i1 %tmp70, %tmp75 ; <i1> [#uses=1] + br i1 %bothcond1, label %return, label %cond_next78 cond_next78: ; preds = %cond_next63 - %tmp80 = getelementptr %struct.gx_device_memory* %tmp8, int 0, uint 4 ; <int*> [#uses=1] - %tmp81 = load int* %tmp80 ; <int> [#uses=1] - %tmp83 = sub int %tmp81, %h ; <int> [#uses=1] - %tmp85 = setlt int %tmp83, %y ; <bool> [#uses=1] - br bool %tmp85, label %return, label %bb91 + %tmp80 = getelementptr %struct.gx_device_memory* %tmp8, i32 0, i32 4 ; <i32*> [#uses=1] + %tmp81 = load i32* %tmp80 ; <i32> [#uses=1] + %tmp83 = sub i32 %tmp81, %h ; <i32> [#uses=1] + %tmp85 = icmp slt i32 %tmp83, %y ; <i1> [#uses=1] + br i1 %tmp85, label %return, label %bb91 bb91: ; preds = %cond_next78 - %tmp93 = shr int %x, ubyte 3 ; <int> [#uses=4] - %tmp = getelementptr %struct.gx_device_memory* %tmp8, int 0, uint 14 ; <ubyte***> [#uses=1] - %tmp = load ubyte*** %tmp ; <ubyte**> [#uses=1] - %tmp96 = getelementptr ubyte** %tmp, int %y ; <ubyte**> [#uses=4] - %tmp98 = load ubyte** %tmp96 ; <ubyte*> [#uses=1] - %tmp100 = getelementptr ubyte* %tmp98, int %tmp93 ; <ubyte*> [#uses=3] - %tmp102 = shr int %sourcex, ubyte 3 ; <int> [#uses=3] - %tmp106 = and int %sourcex, 7 ; <int> [#uses=1] - %tmp107 = sub int 8, %tmp106 ; <int> [#uses=4] - %tmp109 = and int %x, 7 ; <int> [#uses=3] - %tmp110 = sub int 8, %tmp109 ; <int> [#uses=8] - %tmp112 = sub int 8, %tmp110 ; <int> [#uses=1] - %tmp112 = cast int %tmp112 to ubyte ; <ubyte> [#uses=1] - %tmp113464 = shr uint 255, ubyte %tmp112 ; <uint> [#uses=4] - %tmp116 = setgt int %tmp110, %w ; <bool> [#uses=1] - %tmp132 = getelementptr %struct.gx_device_memory* %tmp8, int 0, uint 16 ; <int*> [#uses=2] - br bool %tmp116, label %cond_true117, label %cond_false123 + %tmp93 = ashr i32 %x, 3 ; <i32> [#uses=4] + %tmp.upgrd.3 = getelementptr %struct.gx_device_memory* %tmp8, i32 0, i32 14 ; <i8***> [#uses=1] + %tmp.upgrd.4 = load i8*** %tmp.upgrd.3 ; <i8**> [#uses=1] + %tmp96 = getelementptr i8** %tmp.upgrd.4, i32 %y ; <i8**> [#uses=4] + %tmp98 = load i8** %tmp96 ; <i8*> [#uses=1] + %tmp100 = getelementptr i8* %tmp98, i32 %tmp93 ; <i8*> [#uses=3] + %tmp102 = ashr i32 %sourcex, 3 ; <i32> [#uses=3] + %tmp106 = and i32 %sourcex, 7 ; <i32> [#uses=1] + %tmp107 = sub i32 8, %tmp106 ; <i32> [#uses=4] + %tmp109 = and i32 %x, 7 ; <i32> [#uses=3] + %tmp110 = sub i32 8, %tmp109 ; <i32> [#uses=8] + %tmp112 = sub i32 8, %tmp110 ; <i32> [#uses=1] + %tmp112.upgrd.5 = trunc i32 %tmp112 to i8 ; <i8> [#uses=1] + %shift.upgrd.6 = zext i8 %tmp112.upgrd.5 to i32 ; <i32> [#uses=1] + %tmp113464 = lshr i32 255, %shift.upgrd.6 ; <i32> [#uses=4] + %tmp116 = icmp sgt i32 %tmp110, %w ; <i1> [#uses=1] + %tmp132 = getelementptr %struct.gx_device_memory* %tmp8, i32 0, i32 16 ; <i32*> [#uses=2] + br i1 %tmp116, label %cond_true117, label %cond_false123 cond_true117: ; preds = %bb91 - %tmp119 = cast int %w to ubyte ; <ubyte> [#uses=1] - %tmp120 = shr uint %tmp113464, ubyte %tmp119 ; <uint> [#uses=1] - %tmp122 = sub uint %tmp113464, %tmp120 ; <uint> [#uses=2] - %tmp13315 = load int* %tmp132 ; <int> [#uses=1] - %tmp13416 = seteq int %tmp13315, 0 ; <bool> [#uses=1] - br bool %tmp13416, label %cond_next151, label %cond_true135 + %tmp119 = trunc i32 %w to i8 ; <i8> [#uses=1] + %shift.upgrd.7 = zext i8 %tmp119 to i32 ; <i32> [#uses=1] + %tmp120 = lshr i32 %tmp113464, %shift.upgrd.7 ; <i32> [#uses=1] + %tmp122 = sub i32 %tmp113464, %tmp120 ; <i32> [#uses=2] + %tmp13315 = load i32* %tmp132 ; <i32> [#uses=1] + %tmp13416 = icmp eq i32 %tmp13315, 0 ; <i1> [#uses=1] + br i1 %tmp13416, label %cond_next151, label %cond_true135 cond_false123: ; preds = %bb91 - %tmp126 = sub int %w, %tmp110 ; <int> [#uses=1] - %tmp126 = cast int %tmp126 to ubyte ; <ubyte> [#uses=1] - %tmp127 = and ubyte %tmp126, 7 ; <ubyte> [#uses=1] - %tmp128 = shr uint 255, ubyte %tmp127 ; <uint> [#uses=1] - %tmp1295 = sub uint 255, %tmp128 ; <uint> [#uses=2] - %tmp133 = load int* %tmp132 ; <int> [#uses=1] - %tmp134 = seteq int %tmp133, 0 ; <bool> [#uses=1] - br bool %tmp134, label %cond_next151, label %cond_true135 + %tmp126 = sub i32 %w, %tmp110 ; <i32> [#uses=1] + %tmp126.upgrd.8 = trunc i32 %tmp126 to i8 ; <i8> [#uses=1] + %tmp127 = and i8 %tmp126.upgrd.8, 7 ; <i8> [#uses=1] + %shift.upgrd.9 = zext i8 %tmp127 to i32 ; <i32> [#uses=1] + %tmp128 = lshr i32 255, %shift.upgrd.9 ; <i32> [#uses=1] + %tmp1295 = sub i32 255, %tmp128 ; <i32> [#uses=2] + %tmp133 = load i32* %tmp132 ; <i32> [#uses=1] + %tmp134 = icmp eq i32 %tmp133, 0 ; <i1> [#uses=1] + br i1 %tmp134, label %cond_next151, label %cond_true135 cond_true135: ; preds = %cond_false123, %cond_true117 - %rmask.0.0 = phi uint [ undef, %cond_true117 ], [ %tmp1295, %cond_false123 ] ; <uint> [#uses=2] - %mask.1.0 = phi uint [ %tmp122, %cond_true117 ], [ %tmp113464, %cond_false123 ] ; <uint> [#uses=2] - %not.tmp137 = setne uint %zero, 4294967295 ; <bool> [#uses=1] - %tmp140 = cast bool %not.tmp137 to uint ; <uint> [#uses=1] - %zero_addr.0 = xor uint %tmp140, %zero ; <uint> [#uses=2] - %tmp144 = seteq uint %one, 4294967295 ; <bool> [#uses=1] - br bool %tmp144, label %cond_next151, label %cond_true145 + %rmask.0.0 = phi i32 [ undef, %cond_true117 ], [ %tmp1295, %cond_false123 ] ; <i32> [#uses=2] + %mask.1.0 = phi i32 [ %tmp122, %cond_true117 ], [ %tmp113464, %cond_false123 ] ; <i32> [#uses=2] + %not.tmp137 = icmp ne i32 %zero, -1 ; <i1> [#uses=1] + %tmp140 = zext i1 %not.tmp137 to i32 ; <i32> [#uses=1] + %zero_addr.0 = xor i32 %tmp140, %zero ; <i32> [#uses=2] + %tmp144 = icmp eq i32 %one, -1 ; <i1> [#uses=1] + br i1 %tmp144, label %cond_next151, label %cond_true145 cond_true145: ; preds = %cond_true135 - %tmp147 = xor uint %one, 1 ; <uint> [#uses=1] + %tmp147 = xor i32 %one, 1 ; <i32> [#uses=1] br label %cond_next151 cond_next151: ; preds = %cond_true145, %cond_true135, %cond_false123, %cond_true117 - %rmask.0.1 = phi uint [ %rmask.0.0, %cond_true145 ], [ undef, %cond_true117 ], [ %tmp1295, %cond_false123 ], [ %rmask.0.0, %cond_true135 ] ; <uint> [#uses=4] - %mask.1.1 = phi uint [ %mask.1.0, %cond_true145 ], [ %tmp122, %cond_true117 ], [ %tmp113464, %cond_false123 ], [ %mask.1.0, %cond_true135 ] ; <uint> [#uses=4] - %one_addr.0 = phi uint [ %tmp147, %cond_true145 ], [ %one, %cond_true117 ], [ %one, %cond_false123 ], [ %one, %cond_true135 ] ; <uint> [#uses=2] - %zero_addr.1 = phi uint [ %zero_addr.0, %cond_true145 ], [ %zero, %cond_true117 ], [ %zero, %cond_false123 ], [ %zero_addr.0, %cond_true135 ] ; <uint> [#uses=2] - %tmp153 = seteq uint %zero_addr.1, 1 ; <bool> [#uses=2] - %tmp158 = seteq uint %one_addr.0, 0 ; <bool> [#uses=2] - %bothcond2 = or bool %tmp153, %tmp158 ; <bool> [#uses=1] - %iftmp.35.0 = select bool %bothcond2, uint 4294967295, uint 0 ; <uint> [#uses=8] - %tmp167 = seteq uint %zero_addr.1, 0 ; <bool> [#uses=1] - %bothcond3 = or bool %tmp167, %tmp158 ; <bool> [#uses=1] - %iftmp.36.0 = select bool %bothcond3, uint 0, uint 4294967295 ; <uint> [#uses=4] - %tmp186 = seteq uint %one_addr.0, 1 ; <bool> [#uses=1] - %bothcond4 = or bool %tmp153, %tmp186 ; <bool> [#uses=1] - %iftmp.37.0 = select bool %bothcond4, uint 4294967295, uint 0 ; <uint> [#uses=6] - %tmp196 = seteq int %tmp107, %tmp110 ; <bool> [#uses=1] - br bool %tmp196, label %cond_true197, label %cond_false299 + %rmask.0.1 = phi i32 [ %rmask.0.0, %cond_true145 ], [ undef, %cond_true117 ], [ %tmp1295, %cond_false123 ], [ %rmask.0.0, %cond_true135 ] ; <i32> [#uses=4] + %mask.1.1 = phi i32 [ %mask.1.0, %cond_true145 ], [ %tmp122, %cond_true117 ], [ %tmp113464, %cond_false123 ], [ %mask.1.0, %cond_true135 ] ; <i32> [#uses=4] + %one_addr.0 = phi i32 [ %tmp147, %cond_true145 ], [ %one, %cond_true117 ], [ %one, %cond_false123 ], [ %one, %cond_true135 ] ; <i32> [#uses=2] + %zero_addr.1 = phi i32 [ %zero_addr.0, %cond_true145 ], [ %zero, %cond_true117 ], [ %zero, %cond_false123 ], [ %zero_addr.0, %cond_true135 ] ; <i32> [#uses=2] + %tmp153 = icmp eq i32 %zero_addr.1, 1 ; <i1> [#uses=2] + %tmp158 = icmp eq i32 %one_addr.0, 0 ; <i1> [#uses=2] + %bothcond2 = or i1 %tmp153, %tmp158 ; <i1> [#uses=1] + %iftmp.35.0 = select i1 %bothcond2, i32 -1, i32 0 ; <i32> [#uses=9] + %tmp167 = icmp eq i32 %zero_addr.1, 0 ; <i1> [#uses=1] + %bothcond3 = or i1 %tmp167, %tmp158 ; <i1> [#uses=1] + %iftmp.36.0 = select i1 %bothcond3, i32 0, i32 -1 ; <i32> [#uses=4] + %tmp186 = icmp eq i32 %one_addr.0, 1 ; <i1> [#uses=1] + %bothcond4 = or i1 %tmp153, %tmp186 ; <i1> [#uses=1] + %iftmp.37.0 = select i1 %bothcond4, i32 -1, i32 0 ; <i32> [#uses=6] + %tmp196 = icmp eq i32 %tmp107, %tmp110 ; <i1> [#uses=1] + br i1 %tmp196, label %cond_true197, label %cond_false299 cond_true197: ; preds = %cond_next151 - %tmp29222 = add int %h, -1 ; <int> [#uses=3] - %tmp29424 = setlt int %tmp29222, 0 ; <bool> [#uses=1] - br bool %tmp29424, label %return, label %cond_true295.preheader + %tmp29222 = add i32 %h, -1 ; <i32> [#uses=3] + %tmp29424 = icmp slt i32 %tmp29222, 0 ; <i1> [#uses=1] + br i1 %tmp29424, label %return, label %cond_true295.preheader cond_true249.preheader: ; preds = %cond_true295 br label %cond_true249 cond_true249: ; preds = %cond_true249, %cond_true249.preheader - %indvar = phi uint [ 0, %cond_true249.preheader ], [ %indvar.next, %cond_true249 ] ; <uint> [#uses=2] - %optr.3.2 = phi ubyte* [ %tmp232, %cond_true249 ], [ %dest.1.0, %cond_true249.preheader ] ; <ubyte*> [#uses=1] - %bptr.3.2 = phi ubyte* [ %tmp226, %cond_true249 ], [ %line.1.0, %cond_true249.preheader ] ; <ubyte*> [#uses=1] - %tmp. = add int %tmp109, %w ; <int> [#uses=1] - %indvar = cast uint %indvar to int ; <int> [#uses=1] - %tmp.58 = mul int %indvar, -8 ; <int> [#uses=1] - %tmp.57 = add int %tmp., -16 ; <int> [#uses=1] - %tmp246.2 = add int %tmp.58, %tmp.57 ; <int> [#uses=1] - %tmp225 = cast ubyte* %bptr.3.2 to uint ; <uint> [#uses=1] - %tmp226 = add uint %tmp225, 1 ; <uint> [#uses=1] - %tmp226 = cast uint %tmp226 to ubyte* ; <ubyte*> [#uses=3] - %tmp228 = load ubyte* %tmp226 ; <ubyte> [#uses=1] - %tmp228 = cast ubyte %tmp228 to uint ; <uint> [#uses=1] - %tmp230 = xor uint %tmp228, %iftmp.35.0 ; <uint> [#uses=2] - %tmp231 = cast ubyte* %optr.3.2 to uint ; <uint> [#uses=1] - %tmp232 = add uint %tmp231, 1 ; <uint> [#uses=1] - %tmp232 = cast uint %tmp232 to ubyte* ; <ubyte*> [#uses=4] - %tmp235 = or uint %tmp230, %iftmp.36.0 ; <uint> [#uses=1] - %tmp235 = cast uint %tmp235 to ubyte ; <ubyte> [#uses=1] - %tmp237 = load ubyte* %tmp232 ; <ubyte> [#uses=1] - %tmp238 = and ubyte %tmp235, %tmp237 ; <ubyte> [#uses=1] - %tmp241 = and uint %tmp230, %iftmp.37.0 ; <uint> [#uses=1] - %tmp241 = cast uint %tmp241 to ubyte ; <ubyte> [#uses=1] - %tmp242 = or ubyte %tmp238, %tmp241 ; <ubyte> [#uses=1] - store ubyte %tmp242, ubyte* %tmp232 - %tmp24629 = add int %tmp246.2, -8 ; <int> [#uses=2] - %tmp24831 = setlt int %tmp24629, 0 ; <bool> [#uses=1] - %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1] - br bool %tmp24831, label %bb252.loopexit, label %cond_true249 + %indvar = phi i32 [ 0, %cond_true249.preheader ], [ %indvar.next, %cond_true249 ] ; <i32> [#uses=3] + %optr.3.2 = phi i8* [ %tmp232.upgrd.12, %cond_true249 ], [ %dest.1.0, %cond_true249.preheader ] ; <i8*> [#uses=1] + %bptr.3.2 = phi i8* [ %tmp226.upgrd.10, %cond_true249 ], [ %line.1.0, %cond_true249.preheader ] ; <i8*> [#uses=1] + %tmp. = add i32 %tmp109, %w ; <i32> [#uses=1] + %tmp.58 = mul i32 %indvar, -8 ; <i32> [#uses=1] + %tmp.57 = add i32 %tmp., -16 ; <i32> [#uses=1] + %tmp246.2 = add i32 %tmp.58, %tmp.57 ; <i32> [#uses=1] + %tmp225 = ptrtoint i8* %bptr.3.2 to i32 ; <i32> [#uses=1] + %tmp226 = add i32 %tmp225, 1 ; <i32> [#uses=1] + %tmp226.upgrd.10 = inttoptr i32 %tmp226 to i8* ; <i8*> [#uses=3] + %tmp228 = load i8* %tmp226.upgrd.10 ; <i8> [#uses=1] + %tmp228.upgrd.11 = zext i8 %tmp228 to i32 ; <i32> [#uses=1] + %tmp230 = xor i32 %tmp228.upgrd.11, %iftmp.35.0 ; <i32> [#uses=2] + %tmp231 = ptrtoint i8* %optr.3.2 to i32 ; <i32> [#uses=1] + %tmp232 = add i32 %tmp231, 1 ; <i32> [#uses=1] + %tmp232.upgrd.12 = inttoptr i32 %tmp232 to i8* ; <i8*> [#uses=4] + %tmp235 = or i32 %tmp230, %iftmp.36.0 ; <i32> [#uses=1] + %tmp235.upgrd.13 = trunc i32 %tmp235 to i8 ; <i8> [#uses=1] + %tmp237 = load i8* %tmp232.upgrd.12 ; <i8> [#uses=1] + %tmp238 = and i8 %tmp235.upgrd.13, %tmp237 ; <i8> [#uses=1] + %tmp241 = and i32 %tmp230, %iftmp.37.0 ; <i32> [#uses=1] + %tmp241.upgrd.14 = trunc i32 %tmp241 to i8 ; <i8> [#uses=1] + %tmp242 = or i8 %tmp238, %tmp241.upgrd.14 ; <i8> [#uses=1] + store i8 %tmp242, i8* %tmp232.upgrd.12 + %tmp24629 = add i32 %tmp246.2, -8 ; <i32> [#uses=2] + %tmp24831 = icmp slt i32 %tmp24629, 0 ; <i1> [#uses=1] + %indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1] + br i1 %tmp24831, label %bb252.loopexit, label %cond_true249 bb252.loopexit: ; preds = %cond_true249 br label %bb252 bb252: ; preds = %cond_true295, %bb252.loopexit - %optr.3.3 = phi ubyte* [ %dest.1.0, %cond_true295 ], [ %tmp232, %bb252.loopexit ] ; <ubyte*> [#uses=1] - %bptr.3.3 = phi ubyte* [ %line.1.0, %cond_true295 ], [ %tmp226, %bb252.loopexit ] ; <ubyte*> [#uses=1] - %tmp246.3 = phi int [ %tmp246, %cond_true295 ], [ %tmp24629, %bb252.loopexit ] ; <int> [#uses=1] - %tmp254 = setgt int %tmp246.3, -8 ; <bool> [#uses=1] - br bool %tmp254, label %cond_true255, label %cond_next280 + %optr.3.3 = phi i8* [ %dest.1.0, %cond_true295 ], [ %tmp232.upgrd.12, %bb252.loopexit ] ; <i8*> [#uses=1] + %bptr.3.3 = phi i8* [ %line.1.0, %cond_true295 ], [ %tmp226.upgrd.10, %bb252.loopexit ] ; <i8*> [#uses=1] + %tmp246.3 = phi i32 [ %tmp246, %cond_true295 ], [ %tmp24629, %bb252.loopexit ] ; <i32> [#uses=1] + %tmp254 = icmp sgt i32 %tmp246.3, -8 ; <i1> [#uses=1] + br i1 %tmp254, label %cond_true255, label %cond_next280 cond_true255: ; preds = %bb252 - %tmp256 = cast ubyte* %bptr.3.3 to uint ; <uint> [#uses=1] - %tmp257 = add uint %tmp256, 1 ; <uint> [#uses=1] - %tmp257 = cast uint %tmp257 to ubyte* ; <ubyte*> [#uses=1] - %tmp259 = load ubyte* %tmp257 ; <ubyte> [#uses=1] - %tmp259 = cast ubyte %tmp259 to uint ; <uint> [#uses=1] - %tmp261 = xor uint %tmp259, %iftmp.35.0 ; <uint> [#uses=2] - %tmp262 = cast ubyte* %optr.3.3 to uint ; <uint> [#uses=1] - %tmp263 = add uint %tmp262, 1 ; <uint> [#uses=1] - %tmp263 = cast uint %tmp263 to ubyte* ; <ubyte*> [#uses=2] - %tmp265 = cast uint %tmp261 to ubyte ; <ubyte> [#uses=1] - %tmp268 = or ubyte %tmp266, %tmp265 ; <ubyte> [#uses=1] - %tmp270 = load ubyte* %tmp263 ; <ubyte> [#uses=1] - %tmp271 = and ubyte %tmp268, %tmp270 ; <ubyte> [#uses=1] - %tmp276 = and uint %tmp274, %tmp261 ; <uint> [#uses=1] - %tmp276 = cast uint %tmp276 to ubyte ; <ubyte> [#uses=1] - %tmp277 = or ubyte %tmp271, %tmp276 ; <ubyte> [#uses=1] - store ubyte %tmp277, ubyte* %tmp263 + %tmp256 = ptrtoint i8* %bptr.3.3 to i32 ; <i32> [#uses=1] + %tmp257 = add i32 %tmp256, 1 ; <i32> [#uses=1] + %tmp257.upgrd.15 = inttoptr i32 %tmp257 to i8* ; <i8*> [#uses=1] + %tmp259 = load i8* %tmp257.upgrd.15 ; <i8> [#uses=1] + %tmp259.upgrd.16 = zext i8 %tmp259 to i32 ; <i32> [#uses=1] + %tmp261 = xor i32 %tmp259.upgrd.16, %iftmp.35.0 ; <i32> [#uses=2] + %tmp262 = ptrtoint i8* %optr.3.3 to i32 ; <i32> [#uses=1] + %tmp263 = add i32 %tmp262, 1 ; <i32> [#uses=1] + %tmp263.upgrd.17 = inttoptr i32 %tmp263 to i8* ; <i8*> [#uses=2] + %tmp265 = trunc i32 %tmp261 to i8 ; <i8> [#uses=1] + %tmp268 = or i8 %tmp266, %tmp265 ; <i8> [#uses=1] + %tmp270 = load i8* %tmp263.upgrd.17 ; <i8> [#uses=1] + %tmp271 = and i8 %tmp268, %tmp270 ; <i8> [#uses=1] + %tmp276 = and i32 %tmp274, %tmp261 ; <i32> [#uses=1] + %tmp276.upgrd.18 = trunc i32 %tmp276 to i8 ; <i8> [#uses=1] + %tmp277 = or i8 %tmp271, %tmp276.upgrd.18 ; <i8> [#uses=1] + store i8 %tmp277, i8* %tmp263.upgrd.17 br label %cond_next280 cond_next280: ; preds = %cond_true255, %bb252 - %tmp281 = cast ubyte** %dest_line.1.0 to uint ; <uint> [#uses=1] - %tmp282 = add uint %tmp281, 4 ; <uint> [#uses=1] - %tmp282 = cast uint %tmp282 to ubyte** ; <ubyte**> [#uses=2] - %tmp284 = load ubyte** %tmp282 ; <ubyte*> [#uses=1] - %tmp286 = getelementptr ubyte* %tmp284, int %tmp93 ; <ubyte*> [#uses=1] - %tmp292 = add int %tmp292.0, -1 ; <int> [#uses=1] - %tmp294 = setlt int %tmp292, 0 ; <bool> [#uses=1] - %indvar.next61 = add uint %indvar60, 1 ; <uint> [#uses=1] - br bool %tmp294, label %return.loopexit, label %cond_true295 + %tmp281 = ptrtoint i8** %dest_line.1.0 to i32 ; <i32> [#uses=1] + %tmp282 = add i32 %tmp281, 4 ; <i32> [#uses=1] + %tmp282.upgrd.19 = inttoptr i32 %tmp282 to i8** ; <i8**> [#uses=2] + %tmp284 = load i8** %tmp282.upgrd.19 ; <i8*> [#uses=1] + %tmp286 = getelementptr i8* %tmp284, i32 %tmp93 ; <i8*> [#uses=1] + %tmp292 = add i32 %tmp292.0, -1 ; <i32> [#uses=1] + %tmp294 = icmp slt i32 %tmp292, 0 ; <i1> [#uses=1] + %indvar.next61 = add i32 %indvar60, 1 ; <i32> [#uses=1] + br i1 %tmp294, label %return.loopexit, label %cond_true295 cond_true295.preheader: ; preds = %cond_true197 - %tmp200 = sub int %w, %tmp110 ; <int> [#uses=1] - %tmp209 = cast uint %mask.1.1 to ubyte ; <ubyte> [#uses=1] - %tmp209not = xor ubyte %tmp209, 255 ; <ubyte> [#uses=1] - %tmp212 = cast uint %iftmp.36.0 to ubyte ; <ubyte> [#uses=2] - %tmp211 = or ubyte %tmp212, %tmp209not ; <ubyte> [#uses=2] - %tmp219 = and uint %iftmp.37.0, %mask.1.1 ; <uint> [#uses=2] - %tmp246 = add int %tmp200, -8 ; <int> [#uses=3] - %tmp248 = setlt int %tmp246, 0 ; <bool> [#uses=1] - %tmp264 = cast uint %rmask.0.1 to ubyte ; <ubyte> [#uses=1] - %tmp264not = xor ubyte %tmp264, 255 ; <ubyte> [#uses=1] - %tmp266 = or ubyte %tmp212, %tmp264not ; <ubyte> [#uses=2] - %tmp274 = and uint %iftmp.37.0, %rmask.0.1 ; <uint> [#uses=2] - br bool %tmp248, label %cond_true295.preheader.split.us, label %cond_true295.preheader.split + %tmp200 = sub i32 %w, %tmp110 ; <i32> [#uses=1] + %tmp209 = trunc i32 %mask.1.1 to i8 ; <i8> [#uses=1] + %tmp209not = xor i8 %tmp209, -1 ; <i8> [#uses=1] + %tmp212 = trunc i32 %iftmp.36.0 to i8 ; <i8> [#uses=2] + %tmp211 = or i8 %tmp212, %tmp209not ; <i8> [#uses=2] + %tmp219 = and i32 %iftmp.37.0, %mask.1.1 ; <i32> [#uses=2] + %tmp246 = add i32 %tmp200, -8 ; <i32> [#uses=3] + %tmp248 = icmp slt i32 %tmp246, 0 ; <i1> [#uses=1] + %tmp264 = trunc i32 %rmask.0.1 to i8 ; <i8> [#uses=1] + %tmp264not = xor i8 %tmp264, -1 ; <i8> [#uses=1] + %tmp266 = or i8 %tmp212, %tmp264not ; <i8> [#uses=2] + %tmp274 = and i32 %iftmp.37.0, %rmask.0.1 ; <i32> [#uses=2] + br i1 %tmp248, label %cond_true295.preheader.split.us, label %cond_true295.preheader.split cond_true295.preheader.split.us: ; preds = %cond_true295.preheader br label %cond_true295.us cond_true295.us: ; preds = %cond_next280.us, %cond_true295.preheader.split.us - %indvar86 = phi uint [ 0, %cond_true295.preheader.split.us ], [ %indvar.next87, %cond_next280.us ] ; <uint> [#uses=3] - %dest.1.0.us = phi ubyte* [ %tmp286.us, %cond_next280.us ], [ %tmp100, %cond_true295.preheader.split.us ] ; <ubyte*> [#uses=3] - %dest_line.1.0.us = phi ubyte** [ %tmp282.us, %cond_next280.us ], [ %tmp96, %cond_true295.preheader.split.us ] ; <ubyte**> [#uses=1] - %tmp.89 = sub uint 0, %indvar86 ; <uint> [#uses=1] - %tmp.89 = cast uint %tmp.89 to int ; <int> [#uses=1] - %tmp292.0.us = add int %tmp.89, %tmp29222 ; <int> [#uses=1] - %tmp.91 = mul uint %indvar86, %raster ; <uint> [#uses=1] - %tmp.91 = cast uint %tmp.91 to int ; <int> [#uses=1] - %tmp104.sum101 = add int %tmp102, %tmp.91 ; <int> [#uses=1] - %line.1.0.us = getelementptr ubyte* %base, int %tmp104.sum101 ; <ubyte*> [#uses=2] - %tmp.us = load ubyte* %line.1.0.us ; <ubyte> [#uses=1] - %tmp206.us = cast ubyte %tmp.us to uint ; <uint> [#uses=1] - %tmp208.us = xor uint %tmp206.us, %iftmp.35.0 ; <uint> [#uses=2] - %tmp210.us = cast uint %tmp208.us to ubyte ; <ubyte> [#uses=1] - %tmp213.us = or ubyte %tmp211, %tmp210.us ; <ubyte> [#uses=1] - %tmp215.us = load ubyte* %dest.1.0.us ; <ubyte> [#uses=1] - %tmp216.us = and ubyte %tmp213.us, %tmp215.us ; <ubyte> [#uses=1] - %tmp221.us = and uint %tmp219, %tmp208.us ; <uint> [#uses=1] - %tmp221.us = cast uint %tmp221.us to ubyte ; <ubyte> [#uses=1] - %tmp222.us = or ubyte %tmp216.us, %tmp221.us ; <ubyte> [#uses=1] - store ubyte %tmp222.us, ubyte* %dest.1.0.us - br bool true, label %bb252.us, label %cond_true249.preheader.us + %indvar86 = phi i32 [ 0, %cond_true295.preheader.split.us ], [ %indvar.next87, %cond_next280.us ] ; <i32> [#uses=3] + %dest.1.0.us = phi i8* [ %tmp286.us, %cond_next280.us ], [ %tmp100, %cond_true295.preheader.split.us ] ; <i8*> [#uses=3] + %dest_line.1.0.us = phi i8** [ %tmp282.us.upgrd.21, %cond_next280.us ], [ %tmp96, %cond_true295.preheader.split.us ] ; <i8**> [#uses=1] + %tmp.89 = sub i32 0, %indvar86 ; <i32> [#uses=2] + %tmp292.0.us = add i32 %tmp.89, %tmp29222 ; <i32> [#uses=1] + %tmp.91 = mul i32 %indvar86, %raster ; <i32> [#uses=2] + %tmp104.sum101 = add i32 %tmp102, %tmp.91 ; <i32> [#uses=1] + %line.1.0.us = getelementptr i8* %base, i32 %tmp104.sum101 ; <i8*> [#uses=2] + %tmp.us = load i8* %line.1.0.us ; <i8> [#uses=1] + %tmp206.us = zext i8 %tmp.us to i32 ; <i32> [#uses=1] + %tmp208.us = xor i32 %tmp206.us, %iftmp.35.0 ; <i32> [#uses=2] + %tmp210.us = trunc i32 %tmp208.us to i8 ; <i8> [#uses=1] + %tmp213.us = or i8 %tmp211, %tmp210.us ; <i8> [#uses=1] + %tmp215.us = load i8* %dest.1.0.us ; <i8> [#uses=1] + %tmp216.us = and i8 %tmp213.us, %tmp215.us ; <i8> [#uses=1] + %tmp221.us = and i32 %tmp219, %tmp208.us ; <i32> [#uses=1] + %tmp221.us.upgrd.20 = trunc i32 %tmp221.us to i8 ; <i8> [#uses=1] + %tmp222.us = or i8 %tmp216.us, %tmp221.us.upgrd.20 ; <i8> [#uses=1] + store i8 %tmp222.us, i8* %dest.1.0.us + br i1 true, label %bb252.us, label %cond_true249.preheader.us cond_next280.us: ; preds = %bb252.us, %cond_true255.us - %tmp281.us = cast ubyte** %dest_line.1.0.us to uint ; <uint> [#uses=1] - %tmp282.us = add uint %tmp281.us, 4 ; <uint> [#uses=1] - %tmp282.us = cast uint %tmp282.us to ubyte** ; <ubyte**> [#uses=2] - %tmp284.us = load ubyte** %tmp282.us ; <ubyte*> [#uses=1] - %tmp286.us = getelementptr ubyte* %tmp284.us, int %tmp93 ; <ubyte*> [#uses=1] - %tmp292.us = add int %tmp292.0.us, -1 ; <int> [#uses=1] - %tmp294.us = setlt int %tmp292.us, 0 ; <bool> [#uses=1] - %indvar.next87 = add uint %indvar86, 1 ; <uint> [#uses=1] - br bool %tmp294.us, label %return.loopexit.us, label %cond_true295.us + %tmp281.us = ptrtoint i8** %dest_line.1.0.us to i32 ; <i32> [#uses=1] + %tmp282.us = add i32 %tmp281.us, 4 ; <i32> [#uses=1] + %tmp282.us.upgrd.21 = inttoptr i32 %tmp282.us to i8** ; <i8**> [#uses=2] + %tmp284.us = load i8** %tmp282.us.upgrd.21 ; <i8*> [#uses=1] + %tmp286.us = getelementptr i8* %tmp284.us, i32 %tmp93 ; <i8*> [#uses=1] + %tmp292.us = add i32 %tmp292.0.us, -1 ; <i32> [#uses=1] + %tmp294.us = icmp slt i32 %tmp292.us, 0 ; <i1> [#uses=1] + %indvar.next87 = add i32 %indvar86, 1 ; <i32> [#uses=1] + br i1 %tmp294.us, label %return.loopexit.us, label %cond_true295.us cond_true255.us: ; preds = %bb252.us - %tmp256.us = cast ubyte* %bptr.3.3.us to uint ; <uint> [#uses=1] - %tmp257.us = add uint %tmp256.us, 1 ; <uint> [#uses=1] - %tmp257.us = cast uint %tmp257.us to ubyte* ; <ubyte*> [#uses=1] - %tmp259.us = load ubyte* %tmp257.us ; <ubyte> [#uses=1] - %tmp259.us = cast ubyte %tmp259.us to uint ; <uint> [#uses=1] - %tmp261.us = xor uint %tmp259.us, %iftmp.35.0 ; <uint> [#uses=2] - %tmp262.us = cast ubyte* %optr.3.3.us to uint ; <uint> [#uses=1] - %tmp263.us = add uint %tmp262.us, 1 ; <uint> [#uses=1] - %tmp263.us = cast uint %tmp263.us to ubyte* ; <ubyte*> [#uses=2] - %tmp265.us = cast uint %tmp261.us to ubyte ; <ubyte> [#uses=1] - %tmp268.us = or ubyte %tmp266, %tmp265.us ; <ubyte> [#uses=1] - %tmp270.us = load ubyte* %tmp263.us ; <ubyte> [#uses=1] - %tmp271.us = and ubyte %tmp268.us, %tmp270.us ; <ubyte> [#uses=1] - %tmp276.us = and uint %tmp274, %tmp261.us ; <uint> [#uses=1] - %tmp276.us = cast uint %tmp276.us to ubyte ; <ubyte> [#uses=1] - %tmp277.us = or ubyte %tmp271.us, %tmp276.us ; <ubyte> [#uses=1] - store ubyte %tmp277.us, ubyte* %tmp263.us + %tmp256.us = ptrtoint i8* %bptr.3.3.us to i32 ; <i32> [#uses=1] + %tmp257.us = add i32 %tmp256.us, 1 ; <i32> [#uses=1] + %tmp257.us.upgrd.22 = inttoptr i32 %tmp257.us to i8* ; <i8*> [#uses=1] + %tmp259.us = load i8* %tmp257.us.upgrd.22 ; <i8> [#uses=1] + %tmp259.us.upgrd.23 = zext i8 %tmp259.us to i32 ; <i32> [#uses=1] + %tmp261.us = xor i32 %tmp259.us.upgrd.23, %iftmp.35.0 ; <i32> [#uses=2] + %tmp262.us = ptrtoint i8* %optr.3.3.us to i32 ; <i32> [#uses=1] + %tmp263.us = add i32 %tmp262.us, 1 ; <i32> [#uses=1] + %tmp263.us.upgrd.24 = inttoptr i32 %tmp263.us to i8* ; <i8*> [#uses=2] + %tmp265.us = trunc i32 %tmp261.us to i8 ; <i8> [#uses=1] + %tmp268.us = or i8 %tmp266, %tmp265.us ; <i8> [#uses=1] + %tmp270.us = load i8* %tmp263.us.upgrd.24 ; <i8> [#uses=1] + %tmp271.us = and i8 %tmp268.us, %tmp270.us ; <i8> [#uses=1] + %tmp276.us = and i32 %tmp274, %tmp261.us ; <i32> [#uses=1] + %tmp276.us.upgrd.25 = trunc i32 %tmp276.us to i8 ; <i8> [#uses=1] + %tmp277.us = or i8 %tmp271.us, %tmp276.us.upgrd.25 ; <i8> [#uses=1] + store i8 %tmp277.us, i8* %tmp263.us.upgrd.24 br label %cond_next280.us bb252.us: ; preds = %bb252.loopexit.us, %cond_true295.us - %optr.3.3.us = phi ubyte* [ %dest.1.0.us, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <ubyte*> [#uses=1] - %bptr.3.3.us = phi ubyte* [ %line.1.0.us, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <ubyte*> [#uses=1] - %tmp246.3.us = phi int [ %tmp246, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <int> [#uses=1] - %tmp254.us = setgt int %tmp246.3.us, -8 ; <bool> [#uses=1] - br bool %tmp254.us, label %cond_true255.us, label %cond_next280.us + %optr.3.3.us = phi i8* [ %dest.1.0.us, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <i8*> [#uses=1] + %bptr.3.3.us = phi i8* [ %line.1.0.us, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <i8*> [#uses=1] + %tmp246.3.us = phi i32 [ %tmp246, %cond_true295.us ], [ undef, %bb252.loopexit.us ] ; <i32> [#uses=1] + %tmp254.us = icmp sgt i32 %tmp246.3.us, -8 ; <i1> [#uses=1] + br i1 %tmp254.us, label %cond_true255.us, label %cond_next280.us cond_true249.us: ; preds = %cond_true249.preheader.us, %cond_true249.us - br bool undef, label %bb252.loopexit.us, label %cond_true249.us + br i1 undef, label %bb252.loopexit.us, label %cond_true249.us cond_true249.preheader.us: ; preds = %cond_true295.us br label %cond_true249.us @@ -310,197 +305,197 @@ cond_true295.preheader.split: ; preds = %cond_true295.preheader br label %cond_true295 cond_true295: ; preds = %cond_true295.preheader.split, %cond_next280 - %indvar60 = phi uint [ 0, %cond_true295.preheader.split ], [ %indvar.next61, %cond_next280 ] ; <uint> [#uses=3] - %dest.1.0 = phi ubyte* [ %tmp286, %cond_next280 ], [ %tmp100, %cond_true295.preheader.split ] ; <ubyte*> [#uses=4] - %dest_line.1.0 = phi ubyte** [ %tmp282, %cond_next280 ], [ %tmp96, %cond_true295.preheader.split ] ; <ubyte**> [#uses=1] - %tmp.63 = sub uint 0, %indvar60 ; <uint> [#uses=1] - %tmp.63 = cast uint %tmp.63 to int ; <int> [#uses=1] - %tmp292.0 = add int %tmp.63, %tmp29222 ; <int> [#uses=1] - %tmp.65 = mul uint %indvar60, %raster ; <uint> [#uses=1] - %tmp.65 = cast uint %tmp.65 to int ; <int> [#uses=1] - %tmp104.sum97 = add int %tmp102, %tmp.65 ; <int> [#uses=1] - %line.1.0 = getelementptr ubyte* %base, int %tmp104.sum97 ; <ubyte*> [#uses=3] - %tmp = load ubyte* %line.1.0 ; <ubyte> [#uses=1] - %tmp206 = cast ubyte %tmp to uint ; <uint> [#uses=1] - %tmp208 = xor uint %tmp206, %iftmp.35.0 ; <uint> [#uses=2] - %tmp210 = cast uint %tmp208 to ubyte ; <ubyte> [#uses=1] - %tmp213 = or ubyte %tmp211, %tmp210 ; <ubyte> [#uses=1] - %tmp215 = load ubyte* %dest.1.0 ; <ubyte> [#uses=1] - %tmp216 = and ubyte %tmp213, %tmp215 ; <ubyte> [#uses=1] - %tmp221 = and uint %tmp219, %tmp208 ; <uint> [#uses=1] - %tmp221 = cast uint %tmp221 to ubyte ; <ubyte> [#uses=1] - %tmp222 = or ubyte %tmp216, %tmp221 ; <ubyte> [#uses=1] - store ubyte %tmp222, ubyte* %dest.1.0 - br bool false, label %bb252, label %cond_true249.preheader + %indvar60 = phi i32 [ 0, %cond_true295.preheader.split ], [ %indvar.next61, %cond_next280 ] ; <i32> [#uses=3] + %dest.1.0 = phi i8* [ %tmp286, %cond_next280 ], [ %tmp100, %cond_true295.preheader.split ] ; <i8*> [#uses=4] + %dest_line.1.0 = phi i8** [ %tmp282.upgrd.19, %cond_next280 ], [ %tmp96, %cond_true295.preheader.split ] ; <i8**> [#uses=1] + %tmp.63 = sub i32 0, %indvar60 ; <i32> [#uses=2] + %tmp292.0 = add i32 %tmp.63, %tmp29222 ; <i32> [#uses=1] + %tmp.65 = mul i32 %indvar60, %raster ; <i32> [#uses=2] + %tmp104.sum97 = add i32 %tmp102, %tmp.65 ; <i32> [#uses=1] + %line.1.0 = getelementptr i8* %base, i32 %tmp104.sum97 ; <i8*> [#uses=3] + %tmp.upgrd.26 = load i8* %line.1.0 ; <i8> [#uses=1] + %tmp206 = zext i8 %tmp.upgrd.26 to i32 ; <i32> [#uses=1] + %tmp208 = xor i32 %tmp206, %iftmp.35.0 ; <i32> [#uses=2] + %tmp210 = trunc i32 %tmp208 to i8 ; <i8> [#uses=1] + %tmp213 = or i8 %tmp211, %tmp210 ; <i8> [#uses=1] + %tmp215 = load i8* %dest.1.0 ; <i8> [#uses=1] + %tmp216 = and i8 %tmp213, %tmp215 ; <i8> [#uses=1] + %tmp221 = and i32 %tmp219, %tmp208 ; <i32> [#uses=1] + %tmp221.upgrd.27 = trunc i32 %tmp221 to i8 ; <i8> [#uses=1] + %tmp222 = or i8 %tmp216, %tmp221.upgrd.27 ; <i8> [#uses=1] + store i8 %tmp222, i8* %dest.1.0 + br i1 false, label %bb252, label %cond_true249.preheader cond_false299: ; preds = %cond_next151 - %tmp302 = sub int %tmp107, %tmp110 ; <int> [#uses=1] - %tmp303 = and int %tmp302, 7 ; <int> [#uses=3] - %tmp305 = sub int 8, %tmp303 ; <int> [#uses=1] - %tmp45438 = add int %h, -1 ; <int> [#uses=2] - %tmp45640 = setlt int %tmp45438, 0 ; <bool> [#uses=1] - br bool %tmp45640, label %return, label %cond_true457.preheader + %tmp302 = sub i32 %tmp107, %tmp110 ; <i32> [#uses=1] + %tmp303 = and i32 %tmp302, 7 ; <i32> [#uses=3] + %tmp305 = sub i32 8, %tmp303 ; <i32> [#uses=1] + %tmp45438 = add i32 %h, -1 ; <i32> [#uses=2] + %tmp45640 = icmp slt i32 %tmp45438, 0 ; <i1> [#uses=1] + br i1 %tmp45640, label %return, label %cond_true457.preheader cond_true316: ; preds = %cond_true457 - %tmp318 = cast ubyte %tmp318 to uint ; <uint> [#uses=1] - %tmp320 = shr uint %tmp318, ubyte %tmp319 ; <uint> [#uses=1] + %tmp318 = zext i8 %tmp318.upgrd.48 to i32 ; <i32> [#uses=1] + %shift.upgrd.28 = zext i8 %tmp319 to i32 ; <i32> [#uses=1] + %tmp320 = lshr i32 %tmp318, %shift.upgrd.28 ; <i32> [#uses=1] br label %cond_next340 cond_false321: ; preds = %cond_true457 - %tmp3188 = cast ubyte %tmp318 to uint ; <uint> [#uses=1] - %tmp325 = shl uint %tmp3188, ubyte %tmp324 ; <uint> [#uses=2] - %tmp326 = cast ubyte* %line.3.0 to uint ; <uint> [#uses=1] - %tmp327 = add uint %tmp326, 1 ; <uint> [#uses=1] - %tmp327 = cast uint %tmp327 to ubyte* ; <ubyte*> [#uses=3] - br bool %tmp330, label %cond_true331, label %cond_next340 + %tmp3188 = zext i8 %tmp318.upgrd.48 to i32 ; <i32> [#uses=1] + %shift.upgrd.29 = zext i8 %tmp324 to i32 ; <i32> [#uses=1] + %tmp325 = shl i32 %tmp3188, %shift.upgrd.29 ; <i32> [#uses=2] + %tmp326 = ptrtoint i8* %line.3.0 to i32 ; <i32> [#uses=1] + %tmp327 = add i32 %tmp326, 1 ; <i32> [#uses=1] + %tmp327.upgrd.30 = inttoptr i32 %tmp327 to i8* ; <i8*> [#uses=3] + br i1 %tmp330, label %cond_true331, label %cond_next340 cond_true331: ; preds = %cond_false321 - %tmp333 = load ubyte* %tmp327 ; <ubyte> [#uses=1] - %tmp333 = cast ubyte %tmp333 to uint ; <uint> [#uses=1] - %tmp335 = shr uint %tmp333, ubyte %tmp319 ; <uint> [#uses=1] - %tmp337 = add uint %tmp335, %tmp325 ; <uint> [#uses=1] + %tmp333 = load i8* %tmp327.upgrd.30 ; <i8> [#uses=1] + %tmp333.upgrd.31 = zext i8 %tmp333 to i32 ; <i32> [#uses=1] + %shift.upgrd.32 = zext i8 %tmp319 to i32 ; <i32> [#uses=1] + %tmp335 = lshr i32 %tmp333.upgrd.31, %shift.upgrd.32 ; <i32> [#uses=1] + %tmp337 = add i32 %tmp335, %tmp325 ; <i32> [#uses=1] br label %cond_next340 cond_next340: ; preds = %cond_true331, %cond_false321, %cond_true316 - %bits.0 = phi uint [ %tmp320, %cond_true316 ], [ %tmp337, %cond_true331 ], [ %tmp325, %cond_false321 ] ; <uint> [#uses=1] - %bptr307.3 = phi ubyte* [ %line.3.0, %cond_true316 ], [ %tmp327, %cond_true331 ], [ %tmp327, %cond_false321 ] ; <ubyte*> [#uses=2] - %tmp343 = xor uint %bits.0, %iftmp.35.0 ; <uint> [#uses=2] - %tmp345 = cast uint %tmp343 to ubyte ; <ubyte> [#uses=1] - %tmp348 = or ubyte %tmp346, %tmp345 ; <ubyte> [#uses=1] - %tmp350 = load ubyte* %dest.3.0 ; <ubyte> [#uses=1] - %tmp351 = and ubyte %tmp348, %tmp350 ; <ubyte> [#uses=1] - %tmp356 = and uint %tmp354, %tmp343 ; <uint> [#uses=1] - %tmp356 = cast uint %tmp356 to ubyte ; <ubyte> [#uses=1] - %tmp357 = or ubyte %tmp351, %tmp356 ; <ubyte> [#uses=1] - store ubyte %tmp357, ubyte* %dest.3.0 - %tmp362 = cast ubyte* %dest.3.0 to uint ; <uint> [#uses=1] - %optr309.3.in51 = add uint %tmp362, 1 ; <uint> [#uses=2] - %optr309.353 = cast uint %optr309.3.in51 to ubyte* ; <ubyte*> [#uses=2] - br bool %tmp39755, label %cond_true398.preheader, label %bb401 + %bits.0 = phi i32 [ %tmp320, %cond_true316 ], [ %tmp337, %cond_true331 ], [ %tmp325, %cond_false321 ] ; <i32> [#uses=1] + %bptr307.3 = phi i8* [ %line.3.0, %cond_true316 ], [ %tmp327.upgrd.30, %cond_true331 ], [ %tmp327.upgrd.30, %cond_false321 ] ; <i8*> [#uses=2] + %tmp343 = xor i32 %bits.0, %iftmp.35.0 ; <i32> [#uses=2] + %tmp345 = trunc i32 %tmp343 to i8 ; <i8> [#uses=1] + %tmp348 = or i8 %tmp346, %tmp345 ; <i8> [#uses=1] + %tmp350 = load i8* %dest.3.0 ; <i8> [#uses=1] + %tmp351 = and i8 %tmp348, %tmp350 ; <i8> [#uses=1] + %tmp356 = and i32 %tmp354, %tmp343 ; <i32> [#uses=1] + %tmp356.upgrd.33 = trunc i32 %tmp356 to i8 ; <i8> [#uses=1] + %tmp357 = or i8 %tmp351, %tmp356.upgrd.33 ; <i8> [#uses=1] + store i8 %tmp357, i8* %dest.3.0 + %tmp362 = ptrtoint i8* %dest.3.0 to i32 ; <i32> [#uses=1] + %optr309.3.in51 = add i32 %tmp362, 1 ; <i32> [#uses=2] + %optr309.353 = inttoptr i32 %optr309.3.in51 to i8* ; <i8*> [#uses=2] + br i1 %tmp39755, label %cond_true398.preheader, label %bb401 cond_true398.preheader: ; preds = %cond_next340 br label %cond_true398 cond_true398: ; preds = %cond_true398, %cond_true398.preheader - %indvar66 = phi uint [ 0, %cond_true398.preheader ], [ %indvar.next67, %cond_true398 ] ; <uint> [#uses=3] - %bptr307.4.0 = phi ubyte* [ %tmp370, %cond_true398 ], [ %bptr307.3, %cond_true398.preheader ] ; <ubyte*> [#uses=2] - %optr309.3.0 = phi ubyte* [ %optr309.3, %cond_true398 ], [ %optr309.353, %cond_true398.preheader ] ; <ubyte*> [#uses=2] - %optr309.3.in.0 = add uint %indvar66, %optr309.3.in51 ; <uint> [#uses=1] - %tmp.70 = add int %tmp109, %w ; <int> [#uses=1] - %indvar66 = cast uint %indvar66 to int ; <int> [#uses=1] - %tmp.72 = mul int %indvar66, -8 ; <int> [#uses=1] - %tmp.71 = add int %tmp.70, -8 ; <int> [#uses=1] - %count308.3.0 = add int %tmp.72, %tmp.71 ; <int> [#uses=1] - %tmp366 = load ubyte* %bptr307.4.0 ; <ubyte> [#uses=1] - %tmp366 = cast ubyte %tmp366 to uint ; <uint> [#uses=1] - %tmp369 = cast ubyte* %bptr307.4.0 to uint ; <uint> [#uses=1] - %tmp370 = add uint %tmp369, 1 ; <uint> [#uses=1] - %tmp370 = cast uint %tmp370 to ubyte* ; <ubyte*> [#uses=3] - %tmp372 = load ubyte* %tmp370 ; <ubyte> [#uses=1] - %tmp372 = cast ubyte %tmp372 to uint ; <uint> [#uses=1] - %tmp374463 = shr uint %tmp372, ubyte %tmp319 ; <uint> [#uses=1] - %tmp368 = shl uint %tmp366, ubyte %tmp324 ; <uint> [#uses=1] - %tmp377 = add uint %tmp374463, %tmp368 ; <uint> [#uses=1] - %tmp379 = xor uint %tmp377, %iftmp.35.0 ; <uint> [#uses=2] - %tmp382 = or uint %tmp379, %iftmp.36.0 ; <uint> [#uses=1] - %tmp382 = cast uint %tmp382 to ubyte ; <ubyte> [#uses=1] - %tmp384 = load ubyte* %optr309.3.0 ; <ubyte> [#uses=1] - %tmp385 = and ubyte %tmp382, %tmp384 ; <ubyte> [#uses=1] - %tmp388 = and uint %tmp379, %iftmp.37.0 ; <uint> [#uses=1] - %tmp388 = cast uint %tmp388 to ubyte ; <ubyte> [#uses=1] - %tmp389 = or ubyte %tmp385, %tmp388 ; <ubyte> [#uses=1] - store ubyte %tmp389, ubyte* %optr309.3.0 - %tmp392 = add int %count308.3.0, -8 ; <int> [#uses=2] - %optr309.3.in = add uint %optr309.3.in.0, 1 ; <uint> [#uses=1] - %optr309.3 = cast uint %optr309.3.in to ubyte* ; <ubyte*> [#uses=2] - %tmp397 = setgt int %tmp392, 7 ; <bool> [#uses=1] - %indvar.next67 = add uint %indvar66, 1 ; <uint> [#uses=1] - br bool %tmp397, label %cond_true398, label %bb401.loopexit + %indvar66 = phi i32 [ 0, %cond_true398.preheader ], [ %indvar.next67, %cond_true398 ] ; <i32> [#uses=4] + %bptr307.4.0 = phi i8* [ %tmp370.upgrd.35, %cond_true398 ], [ %bptr307.3, %cond_true398.preheader ] ; <i8*> [#uses=2] + %optr309.3.0 = phi i8* [ %optr309.3, %cond_true398 ], [ %optr309.353, %cond_true398.preheader ] ; <i8*> [#uses=2] + %optr309.3.in.0 = add i32 %indvar66, %optr309.3.in51 ; <i32> [#uses=1] + %tmp.70 = add i32 %tmp109, %w ; <i32> [#uses=1] + %tmp.72 = mul i32 %indvar66, -8 ; <i32> [#uses=1] + %tmp.71 = add i32 %tmp.70, -8 ; <i32> [#uses=1] + %count308.3.0 = add i32 %tmp.72, %tmp.71 ; <i32> [#uses=1] + %tmp366 = load i8* %bptr307.4.0 ; <i8> [#uses=1] + %tmp366.upgrd.34 = zext i8 %tmp366 to i32 ; <i32> [#uses=1] + %tmp369 = ptrtoint i8* %bptr307.4.0 to i32 ; <i32> [#uses=1] + %tmp370 = add i32 %tmp369, 1 ; <i32> [#uses=1] + %tmp370.upgrd.35 = inttoptr i32 %tmp370 to i8* ; <i8*> [#uses=3] + %tmp372 = load i8* %tmp370.upgrd.35 ; <i8> [#uses=1] + %tmp372.upgrd.36 = zext i8 %tmp372 to i32 ; <i32> [#uses=1] + %shift.upgrd.37 = zext i8 %tmp319 to i32 ; <i32> [#uses=1] + %tmp374463 = lshr i32 %tmp372.upgrd.36, %shift.upgrd.37 ; <i32> [#uses=1] + %shift.upgrd.38 = zext i8 %tmp324 to i32 ; <i32> [#uses=1] + %tmp368 = shl i32 %tmp366.upgrd.34, %shift.upgrd.38 ; <i32> [#uses=1] + %tmp377 = add i32 %tmp374463, %tmp368 ; <i32> [#uses=1] + %tmp379 = xor i32 %tmp377, %iftmp.35.0 ; <i32> [#uses=2] + %tmp382 = or i32 %tmp379, %iftmp.36.0 ; <i32> [#uses=1] + %tmp382.upgrd.39 = trunc i32 %tmp382 to i8 ; <i8> [#uses=1] + %tmp384 = load i8* %optr309.3.0 ; <i8> [#uses=1] + %tmp385 = and i8 %tmp382.upgrd.39, %tmp384 ; <i8> [#uses=1] + %tmp388 = and i32 %tmp379, %iftmp.37.0 ; <i32> [#uses=1] + %tmp388.upgrd.40 = trunc i32 %tmp388 to i8 ; <i8> [#uses=1] + %tmp389 = or i8 %tmp385, %tmp388.upgrd.40 ; <i8> [#uses=1] + store i8 %tmp389, i8* %optr309.3.0 + %tmp392 = add i32 %count308.3.0, -8 ; <i32> [#uses=2] + %optr309.3.in = add i32 %optr309.3.in.0, 1 ; <i32> [#uses=1] + %optr309.3 = inttoptr i32 %optr309.3.in to i8* ; <i8*> [#uses=2] + %tmp397 = icmp sgt i32 %tmp392, 7 ; <i1> [#uses=1] + %indvar.next67 = add i32 %indvar66, 1 ; <i32> [#uses=1] + br i1 %tmp397, label %cond_true398, label %bb401.loopexit bb401.loopexit: ; preds = %cond_true398 br label %bb401 bb401: ; preds = %bb401.loopexit, %cond_next340 - %count308.3.1 = phi int [ %tmp361, %cond_next340 ], [ %tmp392, %bb401.loopexit ] ; <int> [#uses=2] - %bptr307.4.1 = phi ubyte* [ %bptr307.3, %cond_next340 ], [ %tmp370, %bb401.loopexit ] ; <ubyte*> [#uses=2] - %optr309.3.1 = phi ubyte* [ %optr309.353, %cond_next340 ], [ %optr309.3, %bb401.loopexit ] ; <ubyte*> [#uses=2] - %tmp403 = setgt int %count308.3.1, 0 ; <bool> [#uses=1] - br bool %tmp403, label %cond_true404, label %cond_next442 + %count308.3.1 = phi i32 [ %tmp361, %cond_next340 ], [ %tmp392, %bb401.loopexit ] ; <i32> [#uses=2] + %bptr307.4.1 = phi i8* [ %bptr307.3, %cond_next340 ], [ %tmp370.upgrd.35, %bb401.loopexit ] ; <i8*> [#uses=2] + %optr309.3.1 = phi i8* [ %optr309.353, %cond_next340 ], [ %optr309.3, %bb401.loopexit ] ; <i8*> [#uses=2] + %tmp403 = icmp sgt i32 %count308.3.1, 0 ; <i1> [#uses=1] + br i1 %tmp403, label %cond_true404, label %cond_next442 cond_true404: ; preds = %bb401 - %tmp406 = load ubyte* %bptr307.4.1 ; <ubyte> [#uses=1] - %tmp406 = cast ubyte %tmp406 to int ; <int> [#uses=1] - %tmp408 = shl int %tmp406, ubyte %tmp324 ; <int> [#uses=2] - %tmp413 = setgt int %count308.3.1, %tmp303 ; <bool> [#uses=1] - br bool %tmp413, label %cond_true414, label %cond_next422 + %tmp406 = load i8* %bptr307.4.1 ; <i8> [#uses=1] + %tmp406.upgrd.41 = zext i8 %tmp406 to i32 ; <i32> [#uses=1] + %shift.upgrd.42 = zext i8 %tmp324 to i32 ; <i32> [#uses=1] + %tmp408 = shl i32 %tmp406.upgrd.41, %shift.upgrd.42 ; <i32> [#uses=2] + %tmp413 = icmp sgt i32 %count308.3.1, %tmp303 ; <i1> [#uses=1] + br i1 %tmp413, label %cond_true414, label %cond_next422 cond_true414: ; preds = %cond_true404 - %tmp409 = cast ubyte* %bptr307.4.1 to uint ; <uint> [#uses=1] - %tmp410 = add uint %tmp409, 1 ; <uint> [#uses=1] - %tmp410 = cast uint %tmp410 to ubyte* ; <ubyte*> [#uses=1] - %tmp416 = load ubyte* %tmp410 ; <ubyte> [#uses=1] - %tmp416 = cast ubyte %tmp416 to uint ; <uint> [#uses=1] - %tmp418 = shr uint %tmp416, ubyte %tmp319 ; <uint> [#uses=1] - %tmp418 = cast uint %tmp418 to int ; <int> [#uses=1] - %tmp420 = add int %tmp418, %tmp408 ; <int> [#uses=1] + %tmp409 = ptrtoint i8* %bptr307.4.1 to i32 ; <i32> [#uses=1] + %tmp410 = add i32 %tmp409, 1 ; <i32> [#uses=1] + %tmp410.upgrd.43 = inttoptr i32 %tmp410 to i8* ; <i8*> [#uses=1] + %tmp416 = load i8* %tmp410.upgrd.43 ; <i8> [#uses=1] + %tmp416.upgrd.44 = zext i8 %tmp416 to i32 ; <i32> [#uses=1] + %shift.upgrd.45 = zext i8 %tmp319 to i32 ; <i32> [#uses=1] + %tmp418 = lshr i32 %tmp416.upgrd.44, %shift.upgrd.45 ; <i32> [#uses=2] + %tmp420 = add i32 %tmp418, %tmp408 ; <i32> [#uses=1] br label %cond_next422 cond_next422: ; preds = %cond_true414, %cond_true404 - %bits.6 = phi int [ %tmp420, %cond_true414 ], [ %tmp408, %cond_true404 ] ; <int> [#uses=1] - %tmp425 = xor int %bits.6, %iftmp.35.0 ; <int> [#uses=1] - %tmp427 = cast int %tmp425 to ubyte ; <ubyte> [#uses=2] - %tmp430 = or ubyte %tmp428, %tmp427 ; <ubyte> [#uses=1] - %tmp432 = load ubyte* %optr309.3.1 ; <ubyte> [#uses=1] - %tmp433 = and ubyte %tmp430, %tmp432 ; <ubyte> [#uses=1] - %tmp438 = and ubyte %tmp436, %tmp427 ; <ubyte> [#uses=1] - %tmp439 = or ubyte %tmp433, %tmp438 ; <ubyte> [#uses=1] - store ubyte %tmp439, ubyte* %optr309.3.1 + %bits.6 = phi i32 [ %tmp420, %cond_true414 ], [ %tmp408, %cond_true404 ] ; <i32> [#uses=1] + %tmp425 = xor i32 %bits.6, %iftmp.35.0 ; <i32> [#uses=1] + %tmp427 = trunc i32 %tmp425 to i8 ; <i8> [#uses=2] + %tmp430 = or i8 %tmp428, %tmp427 ; <i8> [#uses=1] + %tmp432 = load i8* %optr309.3.1 ; <i8> [#uses=1] + %tmp433 = and i8 %tmp430, %tmp432 ; <i8> [#uses=1] + %tmp438 = and i8 %tmp436.upgrd.47, %tmp427 ; <i8> [#uses=1] + %tmp439 = or i8 %tmp433, %tmp438 ; <i8> [#uses=1] + store i8 %tmp439, i8* %optr309.3.1 br label %cond_next442 cond_next442: ; preds = %cond_next422, %bb401 - %tmp443 = cast ubyte** %dest_line.3.0 to uint ; <uint> [#uses=1] - %tmp444 = add uint %tmp443, 4 ; <uint> [#uses=1] - %tmp444 = cast uint %tmp444 to ubyte** ; <ubyte**> [#uses=2] - %tmp446 = load ubyte** %tmp444 ; <ubyte*> [#uses=1] - %tmp448 = getelementptr ubyte* %tmp446, int %tmp93 ; <ubyte*> [#uses=1] - %tmp454 = add int %tmp454.0, -1 ; <int> [#uses=1] - %tmp456 = setlt int %tmp454, 0 ; <bool> [#uses=1] - %indvar.next75 = add uint %indvar74, 1 ; <uint> [#uses=1] - br bool %tmp456, label %return.loopexit56, label %cond_true457 + %tmp443 = ptrtoint i8** %dest_line.3.0 to i32 ; <i32> [#uses=1] + %tmp444 = add i32 %tmp443, 4 ; <i32> [#uses=1] + %tmp444.upgrd.46 = inttoptr i32 %tmp444 to i8** ; <i8**> [#uses=2] + %tmp446 = load i8** %tmp444.upgrd.46 ; <i8*> [#uses=1] + %tmp448 = getelementptr i8* %tmp446, i32 %tmp93 ; <i8*> [#uses=1] + %tmp454 = add i32 %tmp454.0, -1 ; <i32> [#uses=1] + %tmp456 = icmp slt i32 %tmp454, 0 ; <i1> [#uses=1] + %indvar.next75 = add i32 %indvar74, 1 ; <i32> [#uses=1] + br i1 %tmp456, label %return.loopexit56, label %cond_true457 cond_true457.preheader: ; preds = %cond_false299 - %tmp315 = setlt int %tmp107, %tmp110 ; <bool> [#uses=1] - %tmp319 = cast int %tmp303 to ubyte ; <ubyte> [#uses=4] - %tmp324 = cast int %tmp305 to ubyte ; <ubyte> [#uses=3] - %tmp330 = setlt int %tmp107, %w ; <bool> [#uses=1] - %tmp344 = cast uint %mask.1.1 to ubyte ; <ubyte> [#uses=1] - %tmp344not = xor ubyte %tmp344, 255 ; <ubyte> [#uses=1] - %tmp347 = cast uint %iftmp.36.0 to ubyte ; <ubyte> [#uses=2] - %tmp346 = or ubyte %tmp347, %tmp344not ; <ubyte> [#uses=1] - %tmp354 = and uint %iftmp.37.0, %mask.1.1 ; <uint> [#uses=1] - %tmp361 = sub int %w, %tmp110 ; <int> [#uses=2] - %tmp39755 = setgt int %tmp361, 7 ; <bool> [#uses=1] - %iftmp.35.0 = cast uint %iftmp.35.0 to int ; <int> [#uses=1] - %tmp426 = cast uint %rmask.0.1 to ubyte ; <ubyte> [#uses=1] - %tmp426not = xor ubyte %tmp426, 255 ; <ubyte> [#uses=1] - %tmp428 = or ubyte %tmp347, %tmp426not ; <ubyte> [#uses=1] - %tmp436 = and uint %iftmp.37.0, %rmask.0.1 ; <uint> [#uses=1] - %tmp436 = cast uint %tmp436 to ubyte ; <ubyte> [#uses=1] + %tmp315 = icmp slt i32 %tmp107, %tmp110 ; <i1> [#uses=1] + %tmp319 = trunc i32 %tmp303 to i8 ; <i8> [#uses=4] + %tmp324 = trunc i32 %tmp305 to i8 ; <i8> [#uses=3] + %tmp330 = icmp slt i32 %tmp107, %w ; <i1> [#uses=1] + %tmp344 = trunc i32 %mask.1.1 to i8 ; <i8> [#uses=1] + %tmp344not = xor i8 %tmp344, -1 ; <i8> [#uses=1] + %tmp347 = trunc i32 %iftmp.36.0 to i8 ; <i8> [#uses=2] + %tmp346 = or i8 %tmp347, %tmp344not ; <i8> [#uses=1] + %tmp354 = and i32 %iftmp.37.0, %mask.1.1 ; <i32> [#uses=1] + %tmp361 = sub i32 %w, %tmp110 ; <i32> [#uses=2] + %tmp39755 = icmp sgt i32 %tmp361, 7 ; <i1> [#uses=1] + %tmp426 = trunc i32 %rmask.0.1 to i8 ; <i8> [#uses=1] + %tmp426not = xor i8 %tmp426, -1 ; <i8> [#uses=1] + %tmp428 = or i8 %tmp347, %tmp426not ; <i8> [#uses=1] + %tmp436 = and i32 %iftmp.37.0, %rmask.0.1 ; <i32> [#uses=1] + %tmp436.upgrd.47 = trunc i32 %tmp436 to i8 ; <i8> [#uses=1] br label %cond_true457 cond_true457: ; preds = %cond_true457.preheader, %cond_next442 - %indvar74 = phi uint [ 0, %cond_true457.preheader ], [ %indvar.next75, %cond_next442 ] ; <uint> [#uses=3] - %dest.3.0 = phi ubyte* [ %tmp448, %cond_next442 ], [ %tmp100, %cond_true457.preheader ] ; <ubyte*> [#uses=3] - %dest_line.3.0 = phi ubyte** [ %tmp444, %cond_next442 ], [ %tmp96, %cond_true457.preheader ] ; <ubyte**> [#uses=1] - %tmp.77 = sub uint 0, %indvar74 ; <uint> [#uses=1] - %tmp.77 = cast uint %tmp.77 to int ; <int> [#uses=1] - %tmp454.0 = add int %tmp.77, %tmp45438 ; <int> [#uses=1] - %tmp.79 = mul uint %indvar74, %raster ; <uint> [#uses=1] - %tmp.79 = cast uint %tmp.79 to int ; <int> [#uses=1] - %tmp104.sum = add int %tmp102, %tmp.79 ; <int> [#uses=1] - %line.3.0 = getelementptr ubyte* %base, int %tmp104.sum ; <ubyte*> [#uses=3] - %tmp318 = load ubyte* %line.3.0 ; <ubyte> [#uses=2] - br bool %tmp315, label %cond_false321, label %cond_true316 + %indvar74 = phi i32 [ 0, %cond_true457.preheader ], [ %indvar.next75, %cond_next442 ] ; <i32> [#uses=3] + %dest.3.0 = phi i8* [ %tmp448, %cond_next442 ], [ %tmp100, %cond_true457.preheader ] ; <i8*> [#uses=3] + %dest_line.3.0 = phi i8** [ %tmp444.upgrd.46, %cond_next442 ], [ %tmp96, %cond_true457.preheader ] ; <i8**> [#uses=1] + %tmp.77 = sub i32 0, %indvar74 ; <i32> [#uses=2] + %tmp454.0 = add i32 %tmp.77, %tmp45438 ; <i32> [#uses=1] + %tmp.79 = mul i32 %indvar74, %raster ; <i32> [#uses=2] + %tmp104.sum = add i32 %tmp102, %tmp.79 ; <i32> [#uses=1] + %line.3.0 = getelementptr i8* %base, i32 %tmp104.sum ; <i8*> [#uses=3] + %tmp318.upgrd.48 = load i8* %line.3.0 ; <i8> [#uses=2] + br i1 %tmp315, label %cond_false321, label %cond_true316 return.loopexit: ; preds = %cond_next280 br label %return.loopexit.split @@ -512,12 +507,12 @@ return.loopexit56: ; preds = %cond_next442 br label %return return: ; preds = %return.loopexit56, %return.loopexit.split, %cond_false299, %cond_true197, %cond_next78, %cond_next63, %bb58, %cond_next46 - %retval.0 = phi int [ 0, %cond_next46 ], [ -1, %bb58 ], [ -1, %cond_next63 ], [ -1, %cond_next78 ], [ 0, %cond_true197 ], [ 0, %cond_false299 ], [ 0, %return.loopexit.split ], [ 0, %return.loopexit56 ] ; <int> [#uses=1] - ret int %retval.0 + %retval.0 = phi i32 [ 0, %cond_next46 ], [ -1, %bb58 ], [ -1, %cond_next63 ], [ -1, %cond_next78 ], [ 0, %cond_true197 ], [ 0, %cond_false299 ], [ 0, %return.loopexit.split ], [ 0, %return.loopexit56 ] ; <i32> [#uses=1] + ret i32 %retval.0 } -declare int %mem_no_fault_proc(%struct.gx_device_memory*, int, int, int, int, int) +declare i32 @mem_no_fault_proc(%struct.gx_device_memory*, i32, i32, i32, i32, i32) -declare int %mem_mono_fill_rectangle(%struct.gx_device*, int, int, int, int, uint) +declare i32 @mem_mono_fill_rectangle(%struct.gx_device*, i32, i32, i32, i32, i32) -declare int %mem_copy_mono_recover(%struct.gx_device*, ubyte*, int, int, int, int, int, int, uint, uint, int) +declare i32 @mem_copy_mono_recover(%struct.gx_device*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32) diff --git a/test/Transforms/InstCombine/2006-06-28-infloop.ll b/test/Transforms/InstCombine/2006-06-28-infloop.ll index bd1dbd0..84e7510 100644 --- a/test/Transforms/InstCombine/2006-06-28-infloop.ll +++ b/test/Transforms/InstCombine/2006-06-28-infloop.ll @@ -1,21 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -target endian = big -target pointersize = 32 -target triple = "powerpc-apple-darwin8" +; RUN: llvm-as < %s | opt -instcombine -disable-output -implementation ; Functions: +target datalayout = "E-p:32:32" +target triple = "powerpc-apple-darwin8" -void %test() { +define void @test() { entry: - %tmp = getelementptr { long, long, long, long }* null, int 0, uint 3 - %tmp = load long* %tmp ; <long> [#uses=1] - %tmp8.ui = load ulong* null ; <ulong> [#uses=1] - %tmp8 = cast ulong %tmp8.ui to long ; <long> [#uses=1] - %tmp9 = and long %tmp8, %tmp ; <long> [#uses=1] - %sext = cast long %tmp9 to int ; <int> [#uses=1] - %tmp27.i = cast int %sext to long ; <long> [#uses=1] - tail call void %foo( uint 0, long %tmp27.i ) - unreachable + %tmp = getelementptr { i64, i64, i64, i64 }* null, i32 0, i32 3 ; <i64*> [#uses=1] + %tmp.upgrd.1 = load i64* %tmp ; <i64> [#uses=1] + %tmp8.ui = load i64* null ; <i64> [#uses=1] + %tmp8 = bitcast i64 %tmp8.ui to i64 ; <i64> [#uses=1] + %tmp9 = and i64 %tmp8, %tmp.upgrd.1 ; <i64> [#uses=1] + %sext = trunc i64 %tmp9 to i32 ; <i32> [#uses=1] + %tmp27.i = sext i32 %sext to i64 ; <i64> [#uses=1] + tail call void @foo( i32 0, i64 %tmp27.i ) + unreachable } -declare void %foo(uint, long) +declare void @foo(i32, i64) + diff --git a/test/Transforms/InstCombine/2006-09-11-EmptyStructCrash.ll b/test/Transforms/InstCombine/2006-09-11-EmptyStructCrash.ll index 61f01ce..7ed59c2 100644 --- a/test/Transforms/InstCombine/2006-09-11-EmptyStructCrash.ll +++ b/test/Transforms/InstCombine/2006-09-11-EmptyStructCrash.ll @@ -1,28 +1,25 @@ ; PR905 -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -disable-output -; END. +; RUN: llvm-as < %s | opt -instcombine -disable-output + +%RPYTHON_EXCEPTION = type { %RPYTHON_EXCEPTION_VTABLE* } +%RPYTHON_EXCEPTION_VTABLE = type { %RPYTHON_EXCEPTION_VTABLE*, i32, i32, %RPyOpaque_RuntimeTypeInfo*, %arraytype_Char*, %functiontype_12* } +%RPyOpaque_RuntimeTypeInfo = type opaque* +%arraytype_Char = type { i32, [0 x i8] } +%fixarray_array1019 = type [1019 x i8*] +%functiontype_12 = type %RPYTHON_EXCEPTION* () +%functiontype_14 = type void (%structtype_pypy.rpython.memory.gc.MarkSweepGC*) +%structtype_AddressLinkedListChunk = type { %structtype_AddressLinkedListChunk*, i32, %fixarray_array1019 } +%structtype_exceptions.Exception = type { %RPYTHON_EXCEPTION } +%structtype_gc_pool = type { } +%structtype_gc_pool_node = type { %structtype_header*, %structtype_gc_pool_node* } +%structtype_header = type { i32, %structtype_header* } +%structtype_pypy.rpython.memory.gc.MarkSweepGC = type { %structtype_exceptions.Exception, i32, i32, i1, %structtype_gc_pool*, i32, %structtype_header*, %structtype_header*, %structtype_gc_pool_node*, double, double } - %RPYTHON_EXCEPTION = type { %RPYTHON_EXCEPTION_VTABLE* } - %RPYTHON_EXCEPTION_VTABLE = type { %RPYTHON_EXCEPTION_VTABLE*, int, int, %RPyOpaque_RuntimeTypeInfo*, %arraytype_Char*, %functiontype_12* } - %RPyOpaque_RuntimeTypeInfo = type opaque* - %arraytype_Char = type { int, [0 x sbyte] } - %fixarray_array1019 = type [1019 x sbyte*] - %functiontype_12 = type %RPYTHON_EXCEPTION* () - %functiontype_14 = type void (%structtype_pypy.rpython.memory.gc.MarkSweepGC*) - %structtype_AddressLinkedListChunk = type { %structtype_AddressLinkedListChunk*, int, %fixarray_array1019 } - %structtype_exceptions.Exception = type { %RPYTHON_EXCEPTION } - %structtype_gc_pool = type { } - %structtype_gc_pool_node = type { %structtype_header*, %structtype_gc_pool_node* } - %structtype_header = type { int, %structtype_header* } - %structtype_pypy.rpython.memory.gc.MarkSweepGC = type { %structtype_exceptions.Exception, int, int, bool, %structtype_gc_pool*, int, %structtype_header*, %structtype_header*, %structtype_gc_pool_node*, double, double } - -implementation ; Functions: - -fastcc void %pypy_MarkSweepGC.collect() { +define fastcc void @pypy_MarkSweepGC.collect() { block0: %v1221 = load %structtype_AddressLinkedListChunk** null ; <%structtype_AddressLinkedListChunk*> [#uses=1] - %v1222 = setne %structtype_AddressLinkedListChunk* %v1221, null ; <bool> [#uses=1] - br bool %v1222, label %block79, label %block4 + %v1222 = icmp ne %structtype_AddressLinkedListChunk* %v1221, null ; <i1> [#uses=1] + br i1 %v1222, label %block79, label %block4 block4: ; preds = %block0 ret void @@ -32,17 +29,17 @@ block22: ; preds = %block79 block67: ; preds = %block79 %v1459 = load %structtype_gc_pool** null ; <%structtype_gc_pool*> [#uses=1] - %v1460 = cast %structtype_gc_pool* %v1459 to sbyte* ; <sbyte*> [#uses=1] - %tmp_873 = cast sbyte* %v1460 to int ; <int> [#uses=1] - %tmp_874 = sub int %tmp_873, 0 ; <int> [#uses=1] - %v1461 = cast int %tmp_874 to sbyte* ; <sbyte*> [#uses=1] - %v1462 = cast sbyte* %v1461 to %structtype_header* ; <%structtype_header*> [#uses=1] - %tmp_876 = getelementptr %structtype_header* %v1462, int 0, uint 0 ; <int*> [#uses=1] - store int 0, int* %tmp_876 + %v1460 = bitcast %structtype_gc_pool* %v1459 to i8* ; <i8*> [#uses=1] + %tmp_873 = ptrtoint i8* %v1460 to i32 ; <i32> [#uses=1] + %tmp_874 = sub i32 %tmp_873, 0 ; <i32> [#uses=1] + %v1461 = inttoptr i32 %tmp_874 to i8* ; <i8*> [#uses=1] + %v1462 = bitcast i8* %v1461 to %structtype_header* ; <%structtype_header*> [#uses=1] + %tmp_876 = getelementptr %structtype_header* %v1462, i32 0, i32 0 ; <i32*> [#uses=1] + store i32 0, i32* %tmp_876 ret void block79: ; preds = %block0 %v1291 = load %structtype_gc_pool** null ; <%structtype_gc_pool*> [#uses=1] - %v1292 = setne %structtype_gc_pool* %v1291, null ; <bool> [#uses=1] - br bool %v1292, label %block67, label %block22 + %v1292 = icmp ne %structtype_gc_pool* %v1291, null ; <i1> [#uses=1] + br i1 %v1292, label %block67, label %block22 } diff --git a/test/Transforms/InstCombine/2006-09-15-CastToBool.ll b/test/Transforms/InstCombine/2006-09-15-CastToBool.ll index 051d91f..043b598 100644 --- a/test/Transforms/InstCombine/2006-09-15-CastToBool.ll +++ b/test/Transforms/InstCombine/2006-09-15-CastToBool.ll @@ -1,14 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine | llvm-dis | grep and +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and ; PR913 -int %test(int* %tmp1) { - %tmp.i = load int* %tmp1 ; <int> [#uses=1] - %tmp = cast int %tmp.i to uint ; <uint> [#uses=1] - %tmp2.ui = shr uint %tmp, ubyte 5 ; <uint> [#uses=1] - %tmp2 = cast uint %tmp2.ui to int ; <int> [#uses=1] - %tmp3 = and int %tmp2, 1 ; <int> [#uses=1] - %tmp3 = cast int %tmp3 to bool ; <bool> [#uses=1] - %tmp34 = cast bool %tmp3 to int ; <int> [#uses=1] - ret int %tmp34 +define i32 @test(i32* %tmp1) { + %tmp.i = load i32* %tmp1 ; <i32> [#uses=1] + %tmp = bitcast i32 %tmp.i to i32 ; <i32> [#uses=1] + %tmp2.ui = lshr i32 %tmp, 5 ; <i32> [#uses=1] + %tmp2 = bitcast i32 %tmp2.ui to i32 ; <i32> [#uses=1] + %tmp3 = and i32 %tmp2, 1 ; <i32> [#uses=1] + %tmp3.upgrd.1 = icmp ne i32 %tmp3, 0 ; <i1> [#uses=1] + %tmp34 = zext i1 %tmp3.upgrd.1 to i32 ; <i32> [#uses=1] + ret i32 %tmp34 } diff --git a/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll b/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll index 58c847f..eca315f 100644 --- a/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll +++ b/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll @@ -1,10 +1,10 @@ ; The optimizer should be able to remove cast operation here. -; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as < %s -o - | opt -instcombine | llvm-dis | \ ; RUN: not grep sext.*i32 -bool %eq_signed_to_small_unsigned(sbyte %SB) { - %Y = cast sbyte %SB to uint ; <uint> [#uses=1] - %C = seteq uint %Y, 17 ; <bool> [#uses=1] - ret bool %C - } +define i1 @eq_signed_to_small_unsigned(i8 %SB) { + %Y = sext i8 %SB to i32 ; <i32> [#uses=1] + %C = icmp eq i32 %Y, 17 ; <i1> [#uses=1] + ret i1 %C +} diff --git a/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll b/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll index 3ada90d..8678a85 100644 --- a/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll +++ b/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll @@ -1,10 +1,12 @@ ; This test case is reduced from llvmAsmParser.cpp ; The optimizer should not remove the cast here. -; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \ ; RUN: grep sext.*i32 -bool %test(short %X) { - %A = cast short %X to uint - %B = setgt uint %A, 1330 - ret bool %B + +define i1 @test(i16 %X) { + %A = sext i16 %X to i32 ; <i32> [#uses=1] + %B = icmp ugt i32 %A, 1330 ; <i1> [#uses=1] + ret i1 %B } + diff --git a/test/Transforms/InstCombine/2006-10-20-mask.ll b/test/Transforms/InstCombine/2006-10-20-mask.ll index 8e829a7..a5864f1 100644 --- a/test/Transforms/InstCombine/2006-10-20-mask.ll +++ b/test/Transforms/InstCombine/2006-10-20-mask.ll @@ -1,9 +1,11 @@ -; RUN: llvm-upgrade %s -o - | llvm-as | opt -instcombine | llvm-dis | \ +; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \ ; RUN: grep and -ulong %foo(ulong %tmp, ulong %tmp2) { - %tmp = cast ulong %tmp to uint - %tmp2 = cast ulong %tmp2 to uint - %tmp3 = and uint %tmp, %tmp2 - %tmp4 = cast uint %tmp3 to ulong - ret ulong %tmp4 + +define i64 @foo(i64 %tmp, i64 %tmp2) { + %tmp.upgrd.1 = trunc i64 %tmp to i32 ; <i32> [#uses=1] + %tmp2.upgrd.2 = trunc i64 %tmp2 to i32 ; <i32> [#uses=1] + %tmp3 = and i32 %tmp.upgrd.1, %tmp2.upgrd.2 ; <i32> [#uses=1] + %tmp4 = zext i32 %tmp3 to i64 ; <i64> [#uses=1] + ret i64 %tmp4 } + diff --git a/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll b/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll index 2c41a37..5ad0af4 100644 --- a/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll +++ b/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/2006-11-03-Memmove64.ll b/test/Transforms/InstCombine/2006-11-03-Memmove64.ll index 550c2eb..23e805a 100644 --- a/test/Transforms/InstCombine/2006-11-03-Memmove64.ll +++ b/test/Transforms/InstCombine/2006-11-03-Memmove64.ll @@ -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] +@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) + diff --git a/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll b/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll index 1809d3c..8c48d43 100644 --- a/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll +++ b/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/2006-11-27-XorBug.ll b/test/Transforms/InstCombine/2006-11-27-XorBug.ll index 7cbd18e..631b43f 100644 --- a/test/Transforms/InstCombine/2006-11-27-XorBug.ll +++ b/test/Transforms/InstCombine/2006-11-27-XorBug.ll @@ -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 } diff --git a/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll b/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll index e2cdf31..60ee503 100644 --- a/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll +++ b/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll @@ -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 } diff --git a/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll b/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll index 4661dfe..2c3313e 100644 --- a/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll +++ b/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll b/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll index db4b9e2..ddfb88c 100644 --- a/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll +++ b/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll b/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll index 0965623..16dbd21 100644 --- a/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll +++ b/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll @@ -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) diff --git a/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll b/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll index 466fa60..cc36d64 100644 --- a/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll +++ b/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll @@ -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) + diff --git a/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll b/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll index 1343a4f..08ebe6a 100644 --- a/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll +++ b/test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll @@ -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 } +@qsz = external global i32 ; <i32*> [#uses=12] +@thresh = external global i32 ; <i32*> [#uses=2] +@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 - -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 - -return: ; preds = %bb115, %entry - ret int undef + %tmp = icmp sgt i32 %n, 1 ; <i1> [#uses=1] + br i1 %tmp, label %cond_next, 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 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*) diff --git a/test/Transforms/InstCombine/2006-12-15-Range-Test.ll b/test/Transforms/InstCombine/2006-12-15-Range-Test.ll index 4767558..585257c 100644 --- a/test/Transforms/InstCombine/2006-12-15-Range-Test.ll +++ b/test/Transforms/InstCombine/2006-12-15-Range-Test.ll @@ -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] +@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 } diff --git a/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll b/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll index 044b945..e653aa1 100644 --- a/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll +++ b/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll @@ -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, uint, uint, uint, uint, sbyte, sbyte, sbyte, sbyte, int, int, sbyte*, uint, 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 ()*, void ()*, 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 diff --git a/test/Transforms/InstCombine/2007-02-07-PointerCast.ll b/test/Transforms/InstCombine/2007-02-07-PointerCast.ll index f38b4c1..ce9eb3c 100644 --- a/test/Transforms/InstCombine/2007-02-07-PointerCast.ll +++ b/test/Transforms/InstCombine/2007-02-07-PointerCast.ll @@ -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 +@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 } + diff --git a/test/Transforms/InstCombine/narrow.ll b/test/Transforms/InstCombine/narrow.ll index 02d7e31..41106e7 100644 --- a/test/Transforms/InstCombine/narrow.ll +++ b/test/Transforms/InstCombine/narrow.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/not.ll b/test/Transforms/InstCombine/not.ll index 3e85692..757e1de 100644 --- a/test/Transforms/InstCombine/not.ll +++ b/test/Transforms/InstCombine/not.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/or.ll b/test/Transforms/InstCombine/or.ll index 3fc225a..e70fb1c 100644 --- a/test/Transforms/InstCombine/or.ll +++ b/test/Transforms/InstCombine/or.ll @@ -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 } diff --git a/test/Transforms/InstCombine/phi.ll b/test/Transforms/InstCombine/phi.ll index a51e90e..6f0ef6b 100644 --- a/test/Transforms/InstCombine/phi.ll +++ b/test/Transforms/InstCombine/phi.ll @@ -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: - %B = phi int [%B, %L2], [%B, %Loop] ; PHI has same value always. - br bool %b, label %L2, label %Loop -L2: - br label %Loop +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 + +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 +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 -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 +Exit: ; preds = %Loop + ret i32 0 } + diff --git a/test/Transforms/InstCombine/rem.ll b/test/Transforms/InstCombine/rem.ll index 987d3c3..c0e0fa4 100644 --- a/test/Transforms/InstCombine/rem.ll +++ b/test/Transforms/InstCombine/rem.ll @@ -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 } - diff --git a/test/Transforms/InstCombine/select.ll b/test/Transforms/InstCombine/select.ll index aac7603..15083f2 100644 --- a/test/Transforms/InstCombine/select.ll +++ b/test/Transforms/InstCombine/select.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/set.ll b/test/Transforms/InstCombine/set.ll index 51cffbe..76e606b 100644 --- a/test/Transforms/InstCombine/set.ll +++ b/test/Transforms/InstCombine/set.ll @@ -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 + +@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 } + diff --git a/test/Transforms/InstCombine/setcc-cast-cast.ll b/test/Transforms/InstCombine/setcc-cast-cast.ll index 903f0b4..79f40ac 100644 --- a/test/Transforms/InstCombine/setcc-cast-cast.ll +++ b/test/Transforms/InstCombine/setcc-cast-cast.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/setcc-strength-reduce.ll b/test/Transforms/InstCombine/setcc-strength-reduce.ll index b5ea837..4c420ab 100644 --- a/test/Transforms/InstCombine/setcc-strength-reduce.ll +++ b/test/Transforms/InstCombine/setcc-strength-reduce.ll @@ -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 } diff --git a/test/Transforms/InstCombine/shift-sra.ll b/test/Transforms/InstCombine/shift-sra.ll index 1339edd..6058bd6 100644 --- a/test/Transforms/InstCombine/shift-sra.ll +++ b/test/Transforms/InstCombine/shift-sra.ll @@ -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 +} diff --git a/test/Transforms/InstCombine/shift.ll b/test/Transforms/InstCombine/shift.ll index 5ce8070..feb7c64 100644 --- a/test/Transforms/InstCombine/shift.ll +++ b/test/Transforms/InstCombine/shift.ll @@ -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 } diff --git a/test/Transforms/InstCombine/shl-trunc.ll b/test/Transforms/InstCombine/shl-trunc.ll index bfd41a8..ffef298 100644 --- a/test/Transforms/InstCombine/shl-trunc.ll +++ b/test/Transforms/InstCombine/shl-trunc.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/signext.ll b/test/Transforms/InstCombine/signext.ll index f69cbc0..4828937 100644 --- a/test/Transforms/InstCombine/signext.ll +++ b/test/Transforms/InstCombine/signext.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/sink_instruction.ll b/test/Transforms/InstCombine/sink_instruction.ll index 93519ff..cb8a090 100644 --- a/test/Transforms/InstCombine/sink_instruction.ll +++ b/test/Transforms/InstCombine/sink_instruction.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/store.ll b/test/Transforms/InstCombine/store.ll index 0b7d12f..337b2cc 100644 --- a/test/Transforms/InstCombine/store.ll +++ b/test/Transforms/InstCombine/store.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/sub.ll b/test/Transforms/InstCombine/sub.ll index dfee312..9ee8b06 100644 --- a/test/Transforms/InstCombine/sub.ll +++ b/test/Transforms/InstCombine/sub.ll @@ -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 } - diff --git a/test/Transforms/InstCombine/vec_insert_to_shuffle.ll b/test/Transforms/InstCombine/vec_insert_to_shuffle.ll index 04d3ee5..5f0ce65 100644 --- a/test/Transforms/InstCombine/vec_insert_to_shuffle.ll +++ b/test/Transforms/InstCombine/vec_insert_to_shuffle.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/vec_narrow.ll b/test/Transforms/InstCombine/vec_narrow.ll index ca94b08..9063148 100644 --- a/test/Transforms/InstCombine/vec_narrow.ll +++ b/test/Transforms/InstCombine/vec_narrow.ll @@ -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 } diff --git a/test/Transforms/InstCombine/xor.ll b/test/Transforms/InstCombine/xor.ll index e201149..87e2cef 100644 --- a/test/Transforms/InstCombine/xor.ll +++ b/test/Transforms/InstCombine/xor.ll @@ -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. +@G1 = global i32 0 ; <i32*> [#uses=1] +@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 } - diff --git a/test/Transforms/InstCombine/zeroext-and-reduce.ll b/test/Transforms/InstCombine/zeroext-and-reduce.ll index aac8c3b..2b4950a 100644 --- a/test/Transforms/InstCombine/zeroext-and-reduce.ll +++ b/test/Transforms/InstCombine/zeroext-and-reduce.ll @@ -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 } + diff --git a/test/Transforms/InstCombine/zext.ll b/test/Transforms/InstCombine/zext.ll index cd1f1f8..ceb8deb 100644 --- a/test/Transforms/InstCombine/zext.ll +++ b/test/Transforms/InstCombine/zext.ll @@ -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 } + |