Remove llvm-upgrade and update test cases.
authorTanya Lattner <tonic@nondot.org>
Sat, 1 Mar 2008 09:15:35 +0000 (09:15 +0000)
committerTanya Lattner <tonic@nondot.org>
Sat, 1 Mar 2008 09:15:35 +0000 (09:15 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47793 91177308-0d34-0410-b5e6-96231b3b80d8

258 files changed:
test/Transforms/ADCE/2002-05-22-PHITest.ll
test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll
test/Transforms/ADCE/2002-05-28-Crash-distilled.ll
test/Transforms/ADCE/2002-05-28-Crash.ll
test/Transforms/ADCE/2002-07-17-AssertionFailure.ll
test/Transforms/ADCE/2002-07-17-PHIAssertion.ll
test/Transforms/ADCE/2002-07-29-Segfault.ll
test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll
test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll
test/Transforms/ADCE/2003-06-11-InvalidCFG.ll
test/Transforms/ADCE/2003-06-24-BadSuccessor.ll
test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll
test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll
test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll
test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll
test/Transforms/ADCE/2003-12-19-MergeReturn.llx
test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx
test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
test/Transforms/ADCE/adcetest.ll
test/Transforms/ADCE/basictest.ll
test/Transforms/ADCE/basictest1.ll
test/Transforms/ADCE/basictest2.ll
test/Transforms/ADCE/dead-phi-edge.ll
test/Transforms/ADCE/unreachable-function.ll
test/Transforms/ArgumentPromotion/aggregate-promote.ll
test/Transforms/ArgumentPromotion/basictest.ll
test/Transforms/ArgumentPromotion/chained.ll
test/Transforms/ArgumentPromotion/control-flow.ll
test/Transforms/ArgumentPromotion/control-flow2.ll
test/Transforms/BlockPlacement/basictest.ll
test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll
test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll
test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll
test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll
test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll
test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll
test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll
test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll
test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll
test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll
test/Transforms/CondProp/basictest.ll
test/Transforms/CondProp/phisimplify.ll
test/Transforms/CondProp/phisimplify2.ll
test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll
test/Transforms/ConstProp/2002-05-03-NotOperator.ll
test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
test/Transforms/ConstProp/2003-05-12-DivideError.ll
test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll
test/Transforms/ConstProp/2006-11-30-vector-cast.ll
test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll
test/Transforms/ConstProp/2006-12-01-bool-casts.ll
test/Transforms/ConstProp/basictest.ll
test/Transforms/ConstProp/bitcast.ll
test/Transforms/ConstProp/bswap.ll
test/Transforms/ConstProp/calls.ll
test/Transforms/ConstProp/float-to-ptr-cast.ll
test/Transforms/ConstProp/logicaltest.ll
test/Transforms/ConstProp/nottest.ll
test/Transforms/ConstProp/phi.ll
test/Transforms/ConstProp/remtest.ll
test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll
test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll
test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll
test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll
test/Transforms/DeadArgElim/basictest.ll
test/Transforms/DeadArgElim/dead_vaargs.ll
test/Transforms/DeadArgElim/deadretval.ll
test/Transforms/DeadArgElim/deadretval2.ll
test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll
test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll
test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll
test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
test/Transforms/DeadStoreElimination/PartialStore.ll
test/Transforms/DeadStoreElimination/alloca.llx
test/Transforms/DeadStoreElimination/context-sensitive.llx
test/Transforms/DeadStoreElimination/free.llx
test/Transforms/DeadStoreElimination/simple.llx
test/Transforms/GCSE/2002-05-14-OperandSwap.ll
test/Transforms/GCSE/2002-05-21-NoSharedDominator.ll
test/Transforms/GCSE/2003-06-13-LoadStoreEliminate.ll
test/Transforms/GCSE/gcsetests.ll
test/Transforms/GCSE/vectorops.ll
test/Transforms/GlobalDCE/2002-07-17-CastRef.ll
test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll
test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll
test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll
test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll
test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll
test/Transforms/GlobalDCE/basicvariabletest.ll
test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx
test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
test/Transforms/GlobalOpt/2005-09-27-Crash.ll
test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
test/Transforms/GlobalOpt/basictest.llx
test/Transforms/GlobalOpt/ctor-list-opt.ll
test/Transforms/GlobalOpt/deadglobal.llx
test/Transforms/GlobalOpt/globalsra-partial.llx
test/Transforms/GlobalOpt/globalsra.llx
test/Transforms/GlobalOpt/integer-bool.ll
test/Transforms/GlobalOpt/iterate.llx
test/Transforms/GlobalOpt/load-store-global.llx
test/Transforms/GlobalOpt/malloc-promote-1.llx
test/Transforms/GlobalOpt/malloc-promote-2.llx
test/Transforms/GlobalOpt/malloc-promote-3.llx
test/Transforms/GlobalOpt/memcpy.ll
test/Transforms/GlobalOpt/memset.ll
test/Transforms/GlobalOpt/phi-select.llx
test/Transforms/GlobalOpt/storepointer-compare.llx
test/Transforms/GlobalOpt/storepointer.llx
test/Transforms/GlobalOpt/trivialstore.llx
test/Transforms/GlobalOpt/undef-init.llx
test/Transforms/IPConstantProp/deadarg.ll
test/Transforms/IPConstantProp/recursion.ll
test/Transforms/IPConstantProp/return-constant.ll
test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll
test/Transforms/IndVarsSimplify/2003-04-16-ExprAnalysis.ll
test/Transforms/IndVarsSimplify/2003-09-12-MultiplePred.ll
test/Transforms/IndVarsSimplify/2003-09-23-NotAtTop.ll
test/Transforms/IndVarsSimplify/2003-12-10-IndVarDeadCode.ll
test/Transforms/IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx
test/Transforms/IndVarsSimplify/2003-12-15-Crash.llx
test/Transforms/IndVarsSimplify/2003-12-21-IndVarSize.ll
test/Transforms/IndVarsSimplify/2004-03-10-PHIInsertionBug.ll
test/Transforms/IndVarsSimplify/2004-04-05-InvokeCastCrash.llx
test/Transforms/IndVarsSimplify/2004-04-07-ScalarEvolutionCrash.llx
test/Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll
test/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll
test/Transforms/IndVarsSimplify/2005-02-26-ExitValueCompute.ll
test/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll
test/Transforms/IndVarsSimplify/2005-11-18-Crash.ll
test/Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll
test/Transforms/IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll
test/Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll
test/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll
test/Transforms/IndVarsSimplify/complex-scev.ll
test/Transforms/IndVarsSimplify/exit_value_tests.llx
test/Transforms/IndVarsSimplify/lftr_simple.llx
test/Transforms/IndVarsSimplify/loop_evaluate_1.ll
test/Transforms/IndVarsSimplify/pointer-indvars.ll
test/Transforms/IndVarsSimplify/subtract.ll
test/Transforms/IndVarsSimplify/tripcount_compute.llx
test/Transforms/IndVarsSimplify/tripcount_infinite.llx
test/Transforms/IndVarsSimplify/variable-stride-ivs.ll
test/Transforms/Inline/2003-09-14-InlineValue.ll
test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll
test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll
test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll
test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll
test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll
test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll
test/Transforms/Inline/2004-04-20-InlineLinkOnce.llx
test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll
test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll
test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll
test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll
test/Transforms/Inline/alloca_test.ll
test/Transforms/Inline/basictest.ll
test/Transforms/Inline/casts.ll
test/Transforms/Inline/cfg_preserve_test.ll
test/Transforms/Inline/dynamic_alloca_test.ll
test/Transforms/Inline/inline-tail.ll
test/Transforms/Inline/inline_cleanup.ll
test/Transforms/Inline/inline_constprop.ll
test/Transforms/Inline/inline_dce.ll
test/Transforms/Inline/inline_prune.ll
test/Transforms/Inline/invoke_test-1.ll
test/Transforms/Inline/invoke_test-2.ll
test/Transforms/Inline/invoke_test-3.ll
test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll
test/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll
test/Transforms/InstCombine/2002-08-02-CastTest.ll
test/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll
test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll
test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll
test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll
test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll
test/Transforms/InstCombine/2003-06-22-ConstantExprCrash.ll
test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll
test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll
test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll
test/Transforms/InstCombine/2003-10-23-InstcombineNullFail.ll
test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll
test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll
test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll
test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll
test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll
test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll
test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll
test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll
test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll
test/Transforms/InstCombine/2004-08-09-RemInfLoop.llx
test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll
test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx
test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.llx
test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx
test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll
test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll
test/Transforms/InstCombine/2004-12-08-InstCombineCrash.ll
test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll
test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll
test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll
test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll
test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll
test/Transforms/InstCombine/2005-06-16-RangeCrash.ll
test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll
test/Transforms/InstCombine/2006-02-07-SextZextCrash.ll
test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll
test/Transforms/InstCombine/2006-02-28-Crash.ll
test/Transforms/InstCombine/2006-03-30-ExtractElement.ll
test/Transforms/InstCombine/2006-04-01-InfLoop.ll
test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll
test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll
test/Transforms/InstCombine/2006-05-06-Infloop.ll
test/Transforms/InstCombine/2006-06-28-infloop.ll
test/Transforms/InstCombine/2006-09-11-EmptyStructCrash.ll
test/Transforms/InstCombine/2006-09-15-CastToBool.ll
test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll
test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll
test/Transforms/InstCombine/2006-10-20-mask.ll
test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
test/Transforms/InstCombine/2006-11-03-Memmove64.ll
test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll
test/Transforms/InstCombine/2006-11-27-XorBug.ll
test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll
test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll
test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll
test/Transforms/InstCombine/2006-12-10-ICmp-GEP-GEP.ll
test/Transforms/InstCombine/2006-12-15-Range-Test.ll
test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll
test/Transforms/InstCombine/2007-02-07-PointerCast.ll
test/Transforms/InstCombine/narrow.ll
test/Transforms/InstCombine/not.ll
test/Transforms/InstCombine/or.ll
test/Transforms/InstCombine/phi.ll
test/Transforms/InstCombine/rem.ll
test/Transforms/InstCombine/select.ll
test/Transforms/InstCombine/set.ll
test/Transforms/InstCombine/setcc-cast-cast.ll
test/Transforms/InstCombine/setcc-strength-reduce.ll
test/Transforms/InstCombine/shift-sra.ll
test/Transforms/InstCombine/shift.ll
test/Transforms/InstCombine/shl-trunc.ll
test/Transforms/InstCombine/signext.ll
test/Transforms/InstCombine/sink_instruction.ll
test/Transforms/InstCombine/store.ll
test/Transforms/InstCombine/sub.ll
test/Transforms/InstCombine/vec_insert_to_shuffle.ll
test/Transforms/InstCombine/vec_narrow.ll
test/Transforms/InstCombine/xor.ll
test/Transforms/InstCombine/zeroext-and-reduce.ll
test/Transforms/InstCombine/zext.ll

index cf9872e2e1169a6b56e32b0eed0eab3aee8487be..04f0051af8dcb1ab97cbbc7e5750dd583b50d08d 100644 (file)
@@ -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
 }
+
index 999675b55af41d1425739870b8edf9243ad1aaff..911f8e678b357053dc978526ac9aced426e2adfe 100644 (file)
@@ -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
 }
+
index 0d5adf907f1f828f43193bb9688ac87d95438884..5d25ff13525e5a95da9c390d42fa1719c1ef3081 100644 (file)
@@ -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
 }
 
index b6340d540b1a35ade0fddc677c70764dc6854611..27c7205203c0e150691eec5d42538b4f3e78b901 100644 (file)
 ;  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
 }
+
index 61b140233dd41f70a0732a35b87adde1ec1b83d1..fb4fe4a8d279920afc9f9f31268c937bb1b31676 100644 (file)
@@ -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
 }
index 6d15fae8ef731157e1fcb98553eed2192f6ac2b3..42a7e4dcde4a39939b21ae501029eb1c3e313818 100644 (file)
@@ -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
 }
+
index 0c0e2afde4468231f074871ac400cd6b0be92df7..1c65b3b54434d09ab01f8aefb54c66838a04e99e 100644 (file)
@@ -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
index d8c64485709df4221d1e01c43a352c0cc87e92a0..4ec900560705cabd4a14e82c9920cc2112293990 100644 (file)
@@ -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
 }
+
index 92d7cad770dc88dd49308fcec333a1f26770450c..603b14b537d542568a92dfc64c8dd648190dd787 100644 (file)
@@ -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
 }
+
index 590089d1c9d51bfea3b588684fdc49c32d7d4443..a9657a7a37d138d4c1ce5a51ce9aa6bd8736b8de 100644 (file)
@@ -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
 }
+
index 1a730194ffd9e6a55e996d05cd0210315257b99e..e5dd0cc6d9a78574f881f7f2b38a092c7c890bb8 100644 (file)
@@ -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
 }
index ac62699863f1544af291a50b27234e9829160884..9c6764d562358f3c271d98f27562c5d46f18128e 100644 (file)
@@ -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
 }
+
index a88e04155bff9e374cda686631394f95910558e4..e6345c13eba3b306a990fdc110bde63231cfe137 100644 (file)
@@ -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
 }
+
index c61bd6d385efa6f985ef9ef5dad1fcebc3ef2644..37e077f21cb9c361ec047bf0835e745abf5b36ed 100644 (file)
@@ -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
 }
+
index cf7b08835b171fc1e7056378890350a9e6900916..6e9b17ed31315f81f58315b5347fab67022cd27c 100644 (file)
@@ -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
 }
+
index 6b8b547fc727b72e7318a1f492ea0ccfdcba73ad..b2c294b1df00012c1651ddc574d7972dea53180a 100644 (file)
@@ -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()
+
index 56f2b2b002f117e86db64b00e8043e5f7d39c4d0..87a1550e9d45e3634539a28bc892d184234fa961 100644 (file)
@@ -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
 }
+
index b7965f08787576cda64ebbfd5779e7168bcf7cc3..8ddbbbe2c50d16dd7f08078d8537c4cb96c0a9f5 100644 (file)
@@ -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
 }
+
index f0d78433af0e29f6b6b985003e808d2f95669961..cb14eea9b3e17f7a9891381a0da7e5d15edd2b6d 100644 (file)
@@ -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
 }
+
index 6be744ef5e3bf950e84e866c8b4c78312ad1af5b..22ff0f753bec5a79edd2d036bbe230e854789077 100644 (file)
@@ -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
 }
+
+
index 7d511e8f700d890713602fdd896d49c2def61e61..29f40deb9c7f2ce5541a31f817cd1ecb749b54f0 100644 (file)
-; 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*, ...)
index 75b1d952b69ab24fd9f9235c8a4b7ad3a79bc99c..120e23352dd0389d4da17a7cced316809137b63b 100644 (file)
-; 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*, ...)
index a0c0705f3339efe70982c5a700b2065d96a2de14..844560181a22e9b80ce2e40aee4146230aee4e66 100644 (file)
@@ -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
 }
+
index 0c10253300807e3846decafeafe22092e021d080..86c55f5916887c1a6ee76fcf6d71b2c9ecd281ae 100644 (file)
@@ -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
 }
index 19cbb6df2d44a76027cc2747275c5ac2bba9f96d..a74813f15fffa71a3948f693670ec54590e20409 100644 (file)
@@ -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
 }
+
index 474202727a392181eb2590f01ea794702fa92f28..99697f4c40d7290955455cb9ee66a187c74d1343 100644 (file)
@@ -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
 }
+
index d6055e2768f18bfc0da9ecfbfb59ddb5377d08ed..de5f6e527063547c9a91be8a52fe9937cb926ea2 100644 (file)
@@ -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
 }
+
index 8e47ac94d6907f934a2c6ccf33a573e6e1f1c149..bb72e08b170a65cdab6adae3bb5c4687b6ceb76c 100644 (file)
@@ -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
 }
 
index 93b02a798a3d29fe41b0793a764cf9044a3daabe..58750138567fd617ba32035ef8bb95561669d970 100644 (file)
@@ -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
 }
 
index 4dafa4f0955ece041fd210217b152c87bbcbe980..c93d129ff2a15881a4fc5b77665c42632de91bf1 100644 (file)
@@ -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
 }
+
index 3100d649ba84867527e68fd009ce414838287574..aba35642e4dc9f193e3c3fc645e5e20ef9ec958e 100644 (file)
@@ -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
 }
index 186466dc9b2334f0ede03546ef8b359e783a02bf..a41430d45d3c42fa52e3f8cb5706166722c0bfeb 100644 (file)
@@ -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()
index 3efcea56acc3078c9a479406c8588c0ee072a3f0..ded821b702f5ccb23c516f735f2fa0e2f458bade 100644 (file)
@@ -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
+        ]
 }
+
index 67756b5ab54cb2b770b71766c847d9fe1e734ae1..e2030e2db987966b880d833da2638343931bff95 100644 (file)
@@ -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
 }
index 23ca986bc7d47fcb17b0f7fc7e2863a333ea6210..9f4b273a61ead4366cf27c1ed54454d2decad847 100644 (file)
@@ -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
 }
+
index 0ff309191ad0f2b67193824a7a1d1862c0247ec8..b1b0324bca503a27a8751296bd880bd8b5fc3a1f 100644 (file)
@@ -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
 }
+
index 70d1e0aa8c10631a882ff8fbe184dda3d5884a18..48e5a768e0e58bd776e9aebd2de0a925d73f45ab 100644 (file)
@@ -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
 }
index c9c23d48e525bffe1df25536176551e759772019..0ab5498b0491d4573dc86968986742bd18bb21c4 100644 (file)
@@ -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
 }
 
index 4ada2aeb2883df72be1582b2ba779447f4dfd663..8cd6094826681d74f417ec37c822a50fff683a74 100644 (file)
@@ -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
 }
+
index e0298313904e237f47b2b1a4f3bd32c1273a1122..fa083799b9f29de23ba003654adc61a94dfb16cd 100644 (file)
@@ -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
index 5221319f9a216064b0a801f29b75c1bf6a569269..573ee6cadd392e4407948a1fb20413e3f2272016 100644 (file)
-; 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
index 1e2a93664a4885713a1da7d4eac3fee1eaed41b5..eda104d328399b1c15a40f19f5b250fa1870e522 100644 (file)
@@ -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()
+
index a4728eb191d92a8f78047fb3034a0d759ee7990b..5b5a3042eb62446d17cd8e898a0bfaeab5349563 100644 (file)
@@ -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()
index 4c83fa38a5540c89b91a13f3ff72c73244229bb6..03d12e3e4c9724de9b45be670e71bf640c15f125 100644 (file)
@@ -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()
index 331501adb3e07a2bd45c7c4bb1752561c98a0b04..1a0845c52ac087aa7fd95c9c064527e33d907b6d 100644 (file)
@@ -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
 }
+
index 51f352caab318d662dd0f5d1becec014adc4ee71..7a281aa04b67e837c3c452b789050fa5cb916170 100644 (file)
@@ -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
 }
+
index cf44346965798546f7fcca169693199718c4f58c..781d796506c85c24cbdd8ecc1374eddf91591d1a 100644 (file)
@@ -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
 }
 
index 289384bfc5dce16f6f639857fc49e53f7b3280a0..a3f239f95bd41cc264fac2a6532e29229c84af7b 100644 (file)
@@ -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
 }
 
index ee1f251b83917ec544219259f74b642f08f8cfc7..9ffbcd1b0ce1ac001bbeb3293b58defa481646c4 100644 (file)
@@ -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
 }
+
index 80f4252fb401075c60a885a5e9e15542e2ab399e..812cbcfa6277af0b8f431ee1fed49fe3e7dab0db 100644 (file)
@@ -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
 }
+
index 779f6be2da2d1c521f91696f22aafc95fc353694..889ef56bf9c6e6dbccc747231c190990bdb05cb0 100644 (file)
@@ -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
 }
+
index 2474132d355c68d11df7c451c04d1a9d000f12a3..dd1e46d8c6fcf98faa1230a31f9c1648659fae1e 100644 (file)
@@ -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
 }
 
index 178467d83ec6671a20703e0aceabd9bd790603cc..56892d93186ff0b81a0b4b9103002916f4a975c8 100644 (file)
@@ -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
 }
+
index 1fc25704a6640e65e0c4655c82f2084a34b1714f..bf943c971f3ae0e546d01f579ab3b6dc0a6b723c 100644 (file)
@@ -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]
index d31fa9d7932467fc45b478701ec26bac6907d30e..49758271046e84f4bfcf15076c64635e71077f54 100644 (file)
@@ -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
 }
+
index c4a8206506fd4e58b93771d74df4bd7a3fc697c4..126db4ca2313e9984e56082d13090f4052a0c292 100644 (file)
@@ -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
 }
+
index 239b7482bfcf673461cc4fef949e02929cf0e057..cbf84f54f0a2d5b0948feb959dc8a54af08f30ab 100644 (file)
@@ -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
 }
+
index ce311146d0a392ef29c4f7c363c656d5504502e6..81bdb950e9fcbdb9570d3c57373f821ee0ca97b7 100644 (file)
@@ -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 }
index 022a513ae42283d2ac2eed28878b1796b3e321d2..41ea1b3873046e8a9fd425ab9a7e19a0e53c7a13 100644 (file)
@@ -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
 }
 
index d7624dcacfb4ffd57c7165776b25b092f82978c1..858c0becb148f713096d7e494b0cc559f0d2458c 100644 (file)
@@ -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
 }
+
index fd56012310babefa6cff4cd0537b8ffab6203e2a..11861a4e80933892b25aa31e8c77b8399376e350 100644 (file)
@@ -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
 }
+
index 8d3d434d899cb855c4e246800b89d9fc4d33e877..658944de23f85c0ce30dc753d36dbf27db525aac 100644 (file)
@@ -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
 }
+
index 72f8ecf7d1c3d12942b25b893efff05f75e7edc0..9a9c3ddf0ab1309e252b7741b79105299f079726 100644 (file)
@@ -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]
 
index 36786d9262a62f0b15b2b2039fa44705ff9b8e6b..a621b594ca0556a5c55857dfbc2cc140b4c3b06f 100644 (file)
@@ -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
 }
+
index 2a7b3a1f0421da23a71136b20380a8afc3e0aedc..0d86800c780a098e91b34c669875bf267f4d0b9a 100644 (file)
@@ -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
 }
 
index a3a4235400e942880db8512978d1a0d3acb8b4a5..5f68f9859652bb6e821f78bddff1cfeeb5583367 100644 (file)
@@ -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
 }
+
index ecb84cc965011e3f8f00f0bc78d15c9d02e91e7e..a4444bc102af34236a845ebe1080e76b774a6a19 100644 (file)
@@ -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
 }
 
index ccfbc2f7397b4ea4d7d3f642a28310c022edeb55..5395290978b115193b4c94de9353dfb381875d0a 100644 (file)
@@ -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
 }
 
index 4f129ab1d061302777b935f59c2fac30a92d1642..76ce84dad87b451efcbcd23538edfa1c6651176e 100644 (file)
@@ -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
 }
-       
index 36afb24ff3699ee0ae0d18c33dd3fe07b47e2936..660c74fd1c0ec724aafacd2ad94b68fbcac2f480 100644 (file)
@@ -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
 }
 
index ec48e46a71e5d6e0c6e7bf09c475b4a69f813dad..3c40347f30942e861272374964cab62e33713dd1 100644 (file)
@@ -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
 }
index 58b253c9f4a551d87f100b22b18761556927fe4c..58d67870879493b9920d80a3a20c6858f446d816 100644 (file)
@@ -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
 }
 
index 5deaef46081c2d9602ca9b16bd05bc59ba46d79f..50dcf3278b8977c2a0b973bf966835abb89b93d9 100644 (file)
-; 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*)
index 14b2b0d27084457d77e208f3d88e56a8fcf30126..ce1965724f1035e7cf78a03c4f18ec5f82de29fa 100644 (file)
@@ -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
 }
+
index d7aacb5e94b3abadd0d01177115c171bf47e9f30..7a2c94ffca6238ac49fbff6654abca51be92d18d 100644 (file)
@@ -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
 }
+
index 54396d48ba1a9c9600a7a0242280cbe95b25a5a5..266fdbc647ede53761c8ac12e65571f8dd4d4cab 100644 (file)
@@ -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
 }
+
index 3f0db04f7b9e630806bf39890a5376f3fdbf22c9..e0611d310b809ebb4b5bac107d8a5a39356c1a86 100644 (file)
@@ -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
 }
index e0ce12d0ac8176ff4dd10f8fa75908b4f60f4df9..594671d0f0f1d750d497a4821494e4d752d45ec9 100644 (file)
@@ -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
 }
+
index 51183b82cf6f58bb164bed4fc10a6ab634f4411f..ca4ac201fed840aaa56814d2ee293aa610e9c208 100644 (file)
@@ -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
 }
+
index 2c78695e41efa8f537b4793749003af99b3c0985..cf288b8171fc5f48e11fe3fec12fb9a2752d570a 100644 (file)
@@ -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
 }
+
index 4ebb66c37839b9f425b4c00ef4db6420fa402e7b..d4bdc3f5a05dbcd440848e897cd070b774d7d246 100644 (file)
@@ -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
 }
 
index b866bb7eda7235a73c945f8fe092882c0f5ece3d..6fb3057acb893349aca9df7decdefbd3c3a82401 100644 (file)
@@ -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
+}
 
index 694d9d590f0e52022e1c2588169a2efdbebbd916..f52688e3acc2864fcca557a90145fc21af65a0d2 100644 (file)
@@ -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
 }
 
index 3679d516117548dc92dc2e57e46839de7d729b87..a79f6738f1907e5c307ca225a033ceaa4fb74b05 100644 (file)
@@ -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
 }
+
index 8bb6da55b9afe6b08ce005e8f34ff97e9fde2e62..2a398468beec63902b64d6e60e5fcd6f9d61a2eb 100644 (file)
@@ -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
 }
index e0af3c2c487801f45a89f285732a27555eab9a76..dac81a39990abb3960dc8d83d89bd30fbeb958dd 100644 (file)
@@ -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
 }
 
index 493e30c3090f0f462c29212912e5fa5493600865..d07f0140c46ce493e8f80c2db64558a3f0fee696 100644 (file)
@@ -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]
 
index bc650d2e89744b347cbd5179a86e176968f624b2..b49bfcc49403d6e45bd889c692465efe6acde1c4 100644 (file)
@@ -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
 }
 
index afdc1cd12d00c161f363672d479c118eaf36bf95..c6c51df94cf3beb21e098021bc5ec2d1e2e04126 100644 (file)
@@ -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
 }
+
index ff41163ce7aeb7f25c7f16acab88a3d8e62e3192..12d4736d2749de0b64289a4d39c5889a8143c9c4 100644 (file)
@@ -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
index 0b5c8b6faee1e4bea3c986ec6f6993839965fe1c..c883e58b84ce4c541d5966bfd50c473bbe153618 100644 (file)
@@ -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
 
index 8150c52bc7bb45770ef53f764437cfa271486361..5f784e065fb15ec8dc3cb1726146f284f1dbf1c8 100644 (file)
@@ -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
 }
 
index 19458c788596f1fa4836398cf1f9ad5b1fd0da97..80f82439249261f3b2cc02f5c784fdfae1634218 100644 (file)
@@ -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
 }
+
index 948687724f5d518777e14039383b9f11593fae60..5eac431d9c6484f19a6b808aeade369bb16898a6 100644 (file)
@@ -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
 }
+
index 61df34533df69ee233888000201eedfd146464a4..5559ef18b5b8af8d87e710948ee21ec6802acfa7 100644 (file)
-; 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()
index cd76681a101539a59d97159c433fa9b789e45725..39be6c40413b3d69b6344f4a76e2af856ece6d33 100644 (file)
@@ -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
 }
+
index 1f97fc03aabb126ae80d9d5b422cd67882bda4f9..1c3bdbbc495c81757a2e6c155a0aa493d7953da1 100644 (file)
@@ -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
 }
+
index 6270f4fabc119847dd8b762463bd82ca739f61f7..56aeadb3861316524c273af6fce40e5341e2ecc8 100644 (file)
@@ -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
 }
index a7397bf0fd9c19b48fbfd7dda7631323c1fe40e2..7a47b8ea30bb5807aec694531c5162f346777236 100644 (file)
@@ -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
 }
+
index e060565b114e891ba96257bb85ed892a8244c33d..e52e7feab169443540fba746e61282212de26d35 100644 (file)
@@ -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
 }
 
index a87b954988ce3ce0ff8bd81b972b7ca5100c365c..36235552ae8255c138f3d30ead1e314f30cfdbd0 100644 (file)
@@ -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
 }
+
index eef2f7220618a53b5b626f21e371d06748997e69..9fbbe357617d73c5d838806c8a1e7809852fd3d6 100644 (file)
@@ -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
 }
+
index e4e59c63a4079e7d9806ea58440af901da45c018..d764c5d31b4cbf4ead0bb092d3a5c4f6dc3f9d44 100644 (file)
@@ -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
 }
+
index bf5d3a256ac714e87863f9ac2ea1ca6f1efbc2b8..d89d2263955c5b8555eb14deee6834ecb3e3c2cf 100644 (file)
@@ -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
 }
 
index 068e96fc2c464d8a08dc5b8545302d455fb39f27..fea4dbdd65c30c6bf68e16dd87d70e8be298bb8c 100644 (file)
@@ -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
 }
+
index 12d4c6d5bb293f36bfc6f2e6e991ba16a1bd1c9a..1b33632954213922764722fbdacfc53e4bcfceae 100644 (file)
@@ -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
 }
+
index 85ce6bdbc862db6bb1af1e1e9c9471559b8c4ea3..26ce8fd6f855b5efe2093483c334f1687a954804 100644 (file)
@@ -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
 }
+
index a110d40122e04a20494e5dce5cf302b06c18a5f0..b51aedb13fbb680ec9917c81b1a747ee9c8415d1 100644 (file)
@@ -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
 }
 
 
index 336a234e4d2a0535b814cddcd59aa76c3e4c24ab..0ee851f40aefe98a1bc95e28695a74f1b8351a05 100644 (file)
@@ -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
 }
 
 
index 2389c0a8bcafdfc67cda7839e3d630a3d8618ca9..da1314f7619904275f248c3e846740c9041c7dab 100644 (file)
@@ -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
 }
 
 
index d85d97d5a7e5551623de0b6089b058526da3673d..86eff51725265b7d4c3ff9c570cf943b36a25f11 100644 (file)
@@ -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
 }
+
index a424d255bd710a35085e4ff9aef9b64323bf0d17..d57a6ac4fad90f97c3e6d490eb5e845707b416a2 100644 (file)
@@ -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
 }
+
index 8b1f1ce52504ebf663c4dfaeac7e33433c771f64..a662565cd24fb092aab2e12ddf716dba82df53b2 100644 (file)
@@ -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
 }
+
index 2f073c2ff043b8d8e8a7587ddd7f77de6a2e793b..bb483fc37690e875b40edacf4105063eee33da81 100644 (file)
@@ -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
 }
+
index 5e41ade2b63aa85916dc2ad09f825c502a96a593..18b8f7da84437820c3ec2ea4ea65bb98ba364516 100644 (file)
@@ -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
 }
+
index 10f18e591c15ec87c4986c104d3891a8bbbcc4a2..27c381af3ab39c27827dce8343e493673dd4fb81 100644 (file)
@@ -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
 }
+
index 36cd493fc17431be6e5ed53bf92a2317d73bb19a..82ad902f42173978be5cd82160f330e36830c285 100644 (file)
@@ -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
 }
+
index 4c80e4851f41f780fb04fb9f8e496bfe2538b636..228772eb82cc63a69b4d8f44bb94a5315f220b2b 100644 (file)
@@ -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
 }
+
index 2f198255ebf3422839a160e20310dd2f56037bfd..2487ea95e27d915f7a70f617e249251b79655d62 100644 (file)
@@ -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
 }
+
index ea1e585490484d313bfadb56600bf8a5b03b7d3a..96190991f73a558957de9ff961b8c413f9c29f47 100644 (file)
@@ -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
 }
+
index d715f688f1922e5a5a75c108a01c077154a26409..da22cf2e516419219fde54a43cbbd1eb28d26f5d 100644 (file)
@@ -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
 }
 
index ba679892b6ff753e092d7ba6d7ee376c67e1b999..bd9d1ef5cb9df3aa5f4d7768c438c72884ab0fee 100644 (file)
@@ -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
 }
+
index 09d384ebb979e423d5bd03721c1e900639b26b29..11af997e83bda08b88acf445b6fc5c4b80ce80de 100644 (file)
@@ -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
 }
+
index 372472811e1805bb540bbd23b2a5e1b971f9c25c..b964d78d6952cb8c3c026ea59edec42d3a4db9f2 100644 (file)
@@ -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
 }
+
index 26fecf45eeb85b22970dcfe35a2e91e8aa8e5ea5..a0ddd418f2ccc127e35fb8d8e69404760b2536dc 100644 (file)
@@ -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
 }
+
index 88c393ea39732c71fb54447cc2181896412517cd..248b29b32d2cd227039781e565ea6b681f53d7b6 100644 (file)
@@ -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
 }
+
index c0d841024ccaca3a9675e76668d61f9018d8e782..6933ee74967d65879836931a54d70e31a10f95d9 100644 (file)
-; 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
 }
-
index 82212d5c720eb55ab9f47b635f3bf5ba1dfd20e8..b4eb3db190951247d668a658c5d24bf88bee8db1 100644 (file)
@@ -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
 }
+
index 92a48308b2ad90a54026d1aedf5cdda6a78d7429..afee7e1891805c23a26f4d237cdef94d638fb5c4 100644 (file)
@@ -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()
+
index 5ba8bdb622f374081c954268772ad0564e8be072..a1beec646891455b58655afbb9da2fbaba793b23 100644 (file)
@@ -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
index 13562660c9afe50e96d202039037373ddabe7d2d..853d5ad5014686df2431ae731a0acdaf4220ed32 100644 (file)
@@ -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
 }
 
index 896482c29b2b23316955ee535eb93b074b45376d..ba4db9f95995f7d3656efadb856ec458f9591ddc 100644 (file)
@@ -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
 }
+
index 9960e5cdb2b65d30f8c13f9fc3f74e9940c92742..5ee8cea74a38f07ec0ec9907c1a126b4c125533b 100644 (file)
@@ -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
 }
+
index b2860fd554101793a23f0741c24904dcd0012cc3..32abee9d1cc81d12de3c06dcb34d41b5d85c1922 100644 (file)
@@ -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
 }
 
index 1fe8026ef43e114bbcb345d4d149b6484ea50b80..986831b9a6e4ae427251ddefaf0bbaca97d14861 100644 (file)
@@ -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
 }
+
index 88872f67c91357bb1d8051166a57854df13f377c..6a478ab5f5fd33f160b61c5f8db4fa81db42d882 100644 (file)
@@ -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
index 4d2a29b22bc7eac964b1edb0ef86c6669124ef92..903e81d3bf960e2ddeb910a8d67065f3b5d15e79 100644 (file)
@@ -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
index 7d7e8a3562f3a514f2e4da46b0f1ccbf89253a4a..4bfc4e981af5f793f46757ed3b77f5a9b726887c 100644 (file)
@@ -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(...)
index 4e15fc3de7532d2f70d93ae1b5e2e83c053320b0..5e26ea22d983ec00baddafc54ea8d69d553d65f4 100644 (file)
 ; 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
+}
index 2265e57c6a2a6a583544c3aa0c78e9cbd6490e98..3f7c289a48859d1049dcdb88e81eb0cba2a166d5 100644 (file)
@@ -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
 }
 
index ead9b916a23b59f58fb57ee0baef9269a888ddfb..ffff30ae405a3b0d3c158f8644bc9187680b905d 100644 (file)
@@ -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
 }
 
index 57f7d2470f1c38c696729046cc19a1d32817100f..c9da1579e983aedaa38de477b84800d205643ca0 100644 (file)
@@ -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
 }
+
index 9cff198ff5a9cc79c8b0e614273945e298dcdc2c..51065cc1a8a3c5b417b2b4800818c91b8ca4489d 100644 (file)
@@ -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
 }
+
index 733fa1d3ef8af9e119866dd56af21b394de60774..1abc82d635c3af12437e667cbbb21f2b50424cba 100644 (file)
-; 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
+}
index 8a7b27c3b29e7d8986a84d5e85d01a37b84d6fcd..d5965f4ed6f053fbab69ae298c2c8be8db152473 100644 (file)
@@ -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
 }
 
index e1127579e908a130cb45868bedbe5afe5ebc90ed..dc86f1eec5d40bbe52602a14a538bc1138f145c5 100644 (file)
@@ -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
index 48d563366bedb476cc7d20ea0cbbbc86267a6de3..edc9b474e0645ff009d7c86bcf71176b46be6336 100644 (file)
@@ -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
 }
 
index 6e4d1b39e7edf6d6c8f514768be6b03d77a8fb4a..d57aee01c609dabd0c3daed2118597ff3bcda290 100644 (file)
@@ -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
 }
 
index e73199c29c103d622df96437ea2c7ab833016b51..d75999b9768dec4cbe6688b74c42a8d8fdc36d63 100644 (file)
@@ -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()
index 774639b744ee9699d00b6447de53a078ceeae73f..09d516f48223be84d68aa1e78ddd9dcd4bf4678b 100644 (file)
@@ -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
 }
 
 
index ca163edc5cc545d541ce66605b82310fcefa06fa..6b6cf06abb294de8e44c3fb587812ef17b1ecfb2 100644 (file)
@@ -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
 }
+
index 785a425b12015b1a749464b60e9f63fad684c6ab..675454e13482d36bc66fef45b02949daa0f2753a 100644 (file)
@@ -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
 }
+
index e1ecaed83ed09e486f7fe9eab9c11bd512657075..8a2f8e29edff17208c674c8df99926c1f87480af 100644 (file)
@@ -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
 }
+
index 4fab1c99346a424f80ba7f01aaf895dd044f9287..d9f09a06e7dadfcc5cc31669947cc85a3e6d0548 100644 (file)
@@ -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
 }
+
index 016fc5a4ab04fc88f54c8ff67de07c010bf9e728..09666ec8e65b73603fbdd5de454d2b5d8d2618f7 100644 (file)
@@ -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
 }
+
index cb9241154e3acd99bc51f3e0ed3f8382dd789fa1..acdf6ab766b1be49eb90103ecc83f8af03ceb6c4 100644 (file)
@@ -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
 }
+
index 8429e7c45aa3fb7613688976695a6b37d9149fda..5215bec929099721b370fdbee10722fb2e663021 100644 (file)
@@ -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
index 705961b65b4c617366762be1d9c044ea3118efeb..bd2885dab425bf195d0542896e384d56d9a2f23c 100644 (file)
-; 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
 }
index 1b137cf5f020afd6709b996f3079905729b483b0..05096f425fde9e0dcde4abf3e45c7f5ecc171223 100644 (file)
-; 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
 }
index 35ded4f0d763c4c33b8c2280f59b9942027bc1da..1fbd095354a9a36c3b962f1c205507aac2e1021d 100644 (file)
@@ -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
 }
+
index 30d87b25bc33fbac6855d81c930ab3df686a3dfd..f34d1648a701ab6dfb78269d1f52b3579a96ce3a 100644 (file)
@@ -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
 }
+
index 340b9781d898e1e265522360c8d014cca29f58c1..029d309fd8e0a20efbf34c4896a050215e8b318d 100644 (file)
@@ -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
 }
+
index c444f3a2298e73b14c619539eedd51529a8d9cfa..6b6ff18ecfd0a3aabf54a506db232dee8bc628ab 100644 (file)
@@ -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
 }
+
index cccf2d9b46c9ed464e3c9836a1d556846dab822e..87707120e68755f2caffcce38d8ca010e0d54ca4 100644 (file)
@@ -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
 }
 
index 31e036fe65affc4b403cd07e02e23ac80705eff0..5921655b73642d189733912852ec2d0b43d58f58 100644 (file)
@@ -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
 }
+
index 2ec67ff5c44c27f6a83d41994f7b0a9c172b4428..89b3a8283c0658a04e90c21f77f5d112fa67080b 100644 (file)
@@ -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
 }
index 4b183e24600fcb06c7beecd873e56225f37f23b3..4744c862335b1dc9285fef261445eee3c9d36222 100644 (file)
@@ -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
 }
+
index 5cb118f7283c2b1fcefd54449bda5405beca6b43..b48a9a79e7afaebbc6797deb3d47c456f0a4db56 100644 (file)
@@ -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
 }
+
index 85a6343d47e1b70ef146ebe3a1d6ab09fa89fa6c..fcd8321d5a0f4a0b579a9ac3a70f1e109de43e56 100644 (file)
@@ -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
 }
+
index 9e690189d99b1b6b3bfce15f7f64681eef0fa86f..1fd3317fd1f24a32b0dcb4ab0de3546e89dee336 100644 (file)
@@ -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
 }
index 9262090475a9b55e82428b57103c54dc85641229..68b8bd8b65a375f9931e5af05572246140002de9 100644 (file)
@@ -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
 }
index b471afe2fb5eb9e02e636d8d7be64e24ead66e38..a5deec6aa88111adf896dbe17f190c3a532181d5 100644 (file)
@@ -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
 }
index dd683a3d99abc3e6812d6cc2f7f801b995c7419a..94ce68e989b3bde1dba7494b19fcdaa06708e54a 100644 (file)
@@ -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
index 5e6d63bdd021f5d9e90fe74ec5c5ff7431fd25e3..1c93d2457d63dffd2e2b3b20e690b81467b5aab8 100644 (file)
-; 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*)
index 23284a6312dbadbafb82559a3641c84632172656..54c836c1056c75147558ee6c110f67e453c47014 100644 (file)
@@ -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
 }
 
index 69bec19b2be62b0b555f52c3b55a6752abf7f8c3..5b127d7b793826dc016b27f2a10dce74edac8811 100644 (file)
@@ -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
 }
 
index 6233e5027b6c1e76ff38bf024581fca3efb36f16..e7bd6a8da2fbe70ee81174a79a5c7b4894b7eed3 100644 (file)
@@ -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
 }
+
index 453258980d57b94deed5cd2918c5e45f555220e7..e7e784882ab5be9566dcadf6d6ab1346e0640f5d 100644 (file)
@@ -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
 }
+
index 6222169e08d427f0a587d37a2fb4f2c9cff92457..214fa4d846dbcb224dcc2eae7200ef3c372f678d 100644 (file)
@@ -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
 }
+
index ae823d6bf6810f26eaad8ee1800677e2605c490a..724f30f4889481ef818c22aaffef5a13ea5e03cc 100644 (file)
@@ -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
 }
 
index 92a32d5d35bac8c26438b93bad0ab42ffcbc15b6..d6cacece08900c8f33d23cfd7734c753ea79cfb0 100644 (file)
@@ -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
 }
+
index a3c30a8f72752d2d2c6d963a6a02fb8e8e77e102..14140018f9f168fc9c24c39961fd075f9f832831 100644 (file)
 ;      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
 }
+
index 81594dbb6b7a97f14515e80da99b026b4df6c2a2..209ab1b33695c642039672488f0abd06c404b109 100644 (file)
@@ -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
 }
 
index adb1474a98c4d29a37503e794545c236d3a7cdb8..9779f21f925c29ba46abaf933f8de99ab59ede5b 100644 (file)
@@ -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
 }
index 837494f5301dfeca18874ba7d80975f7be4bfcd3..7daf7cb632bb5f91e4bd93ab611a1daa75717db2 100644 (file)
@@ -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
 }
+
index d23dc32a074d9cc79014778ac3e2abf7147d31c6..7d219cb358856e082218b9dd53d02629c7714e87 100644 (file)
@@ -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
 }
+
index a2e28d97a11d20f2ef499b81de8b810e102c3d10..71585d426645c1199d6dc1990e74c55fd5689509 100644 (file)
@@ -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
 }
+
index d257286d8591434881312b025c050345ba8cf6f5..23fe07d2b307b009d3a824dde2693f3dc73eced0 100644 (file)
@@ -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
 }
 
index ff90c32dafac1015dc1706663cfb44d7dd829616..c6a6b6afb81dd82a43f97c0fb8f5d787c4fe330b 100644 (file)
@@ -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
 }
+
index 85095bf00574bfec148afac440f66423c46eaa99..3a4b66157dfe99ec1b07d7408e2dbd7b86d50725 100644 (file)
@@ -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
 }
index fd7a2e346c98bacb6338ac4e1dc052b3396408e5..2b5481b0195ae1584ead2d94ad1c0db41484a1a1 100644 (file)
@@ -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
 }
 
index 4c6ff1b52bfe5c7dd88efbee13a7dbbba4f399b7..0b93eb2322eb54afaacea5649ed00b36f61fe64b 100644 (file)
@@ -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
 }
+
index 8e8f019c6618b10e49525186ba5f06e046c42596..66a5a4d78f6aab91ee5003ab637d0fb33ae1b1b1 100644 (file)
@@ -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
 }
+
index 7994d45c9f42577f97221b624353f4f755777a59..82eecbb6986bf88d03fe4b7e24a5832d7539addb 100644 (file)
@@ -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
 }
+
index 98b35fe3cba6ae1d02bc73e5fd2fdc569bd8d959..9fc48de4ec193eeaf2242dc5745d38e4168583c2 100644 (file)
@@ -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
 }
+
index e87e42c1981dcb74c56a2acf6ad311f9b717b2c3..5d2ed0b86d9db0eb588ee18cdb070dc792afde04 100644 (file)
@@ -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
 }
 
index ddc40394aa81116846aa46e487a2ba0e238b7331..e56c390d13f4a436320dddc0813fd6177fef21b6 100644 (file)
@@ -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
 }
 
index c3478a82a2b78d7402c86bab4c9e2e17c12ee459..3585659452b8f0287bc9edfda664832879d595a0 100644 (file)
@@ -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
 }
 
+
index bb55b5c67caa83abb0e7a375e70f234f5e819aa2..ee4f62c8d5ce2be29b5335c530a8d35866394e59 100644 (file)
@@ -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
 }
 
index 1a741c996fe57e1fe79efce0e1c5f5ba0654141e..766ba48be63f4720fbe9ebcd0b4e709494bba17a 100644 (file)
@@ -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
 }
 
index 7e12bbf5aee7e098dc3b7016a6104bac464a98af..836d1eb27aadc1cd4dfe154e48ae1aeb91efe29b 100644 (file)
 ; 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
 }
+
index 6e241f4e782a50a038369739eb727fe8a0a6b6bc..5908205203e80e5caa69005b0ff44b91c38c9099 100644 (file)
@@ -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
 }
+
index fb18ea24c105565f5c7213099736d6b014b0a878..4ea0b5c484bd162c086a6fb76511e5524ae0461a 100644 (file)
@@ -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
 }
+
index 9a754d842eb254d3724299e0cf70bb2150082897..ffaa0051e9f03f4c16875f3b713391373effe0a5 100644 (file)
@@ -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
 }
 
index 8e523d3faef48254c29a2cce9b11d52aa5939d04..8b2aa35bd754f660879124f716e2c7ca5a524557 100644 (file)
@@ -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
 }
+
index fa862fed2a8b8651236e5509172a6e33e0bf91a0..53585f9aa38b668d0e56997f280fa0fae296c33a 100644 (file)
@@ -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
 }
+
index deb61246cf368ce4b784f2736da1cfbd2b50fe82..64bfec18df6b3d17489adeafce1c4c55a3fc57a1 100644 (file)
@@ -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
 }
+
index ef443012252fa8d446634d2d2125523ae10363d2..10dbfec21ae315e8245ec42f93a1c8e7babfbcb5 100644 (file)
@@ -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
 }
+
index 764b035b5474aea5ed2e00ed52ea7846822a2f23..010087b4f4725b885a8c9633135d1017dceee233 100644 (file)
@@ -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
 }
 
index be9837dc43ae6bb1f519a7da63c02b1c4f099794..c58234a54995533452b523d115cf8b7a92669a7e 100644 (file)
@@ -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
 }
 
index e06dca914e098130e1ee31e86bbbb43190722003..d7df5a01fb4c58aca7772547e89eb88c680d3769 100644 (file)
@@ -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
 }
+
index 73ad700961f6a806679f4f6ff96f13ffff57ff77..c89b0d54a9ddc28e878b737f7aa3d71fc3713ec0 100644 (file)
@@ -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
 }
 
+
index 241c254dc4ad7e4f3be9e24b504bfce7398bf0c9..1f3c9e8e6740961c73a0a379ca0803cb5e5f1b13 100644 (file)
@@ -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
 }
+
index 314946085f509b702b58d2541f1ca33b1137e400..e4b2b393122413bb2669173619f124038dc04c86 100644 (file)
@@ -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
 }
+
index 81c1690a6fc2c47906c9d2bc38522e9f61ff7c1f..1a26b63c5d20ac276e92668ecab3a0d622e98842 100644 (file)
@@ -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*)
index 6e25d79ecb822ddabcfb35a7fa142df6f95156f8..2541eb7330319cd007c47473ec79fa33c637785e 100644 (file)
@@ -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
 }
+
index 3e72a182a0c67c58a023372726f56e7f0ab252fb..4506bf0a4e90e18eb593ea9e370bb90b68a73dc9 100644 (file)
@@ -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
index 4458d97f9332a434e1127a79a3505d5450f7e651..b1c48ecba77dd59f8dc7bb5eb541274275d0fd6f 100644 (file)
-; 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)
index bd1dbd009c0ab9fbad348b02a39e3a0453456769..84e751037b4d823dbc0dc9d54376b7cc7fd560e6 100644 (file)
@@ -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)
+
index 61f01ce8b70c7e8e1724776897e862b032d35f8b..7ed59c2fd582ece9d7c20f17179ec8e899e2f375 100644 (file)
@@ -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
 }
index 051d91f91fb93afb0b9b4f78f0abfa28e6449934..043b598c8966f8451986359b9c3eed1e1b213358 100644 (file)
@@ -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
 }
 
index 58c847fb92a7ae660135588da299ea0dd47d3c1a..eca315f6f8a95d86023074e7386f45027e24cdc5 100644 (file)
@@ -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
+}
 
index 3ada90ddc63c04ee2e608c90f7b379ebdb697040..8678a85c4648cfa7ee411918ba1ba54ea7b38729 100644 (file)
@@ -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
 }
+
index 8e829a79859a577300d45fe74f7a9c87e1a21fc8..a5864f1c1831f2b135d63733c965cb54a812f592 100644 (file)
@@ -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
 }
+
index 2c41a37d9a2dc89dd58f5474cc6edef1a21ce7fb..5ad0af406d48d34dca740dab399de0442db15183 100644 (file)
@@ -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
 }
+
index 550c2eb0c7d900053abf98d127a178fac8a0ba56..23e805a9360c67e4c6094cb6de99a001c8f6360b 100644 (file)
@@ -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)
+
index 1809d3ce91732162defe84a369a0c1742386f08c..8c48d4357bcaa219b4653e41c14acf7f5e71b5df 100644 (file)
@@ -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
 }
+
index 7cbd18eda7b45699151a0f87b96c74490cc36747..631b43f61f9e008ef50e6e8018c0f8a2749dfe2f 100644 (file)
@@ -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
 }
 
index e2cdf31e2f7cdc3e6b688bc5450fc9589ce5d498..60ee50327916f4b248d4ff15dc52fe1743240a42 100644 (file)
@@ -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
 }
index 4661dfe55bb9bab4fd770bafc3c6d379c6a469ec..2c3313efa2a8f4ab5b0f96af521239dd82a749da 100644 (file)
@@ -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
 }
+
index db4b9e289fbeaa380772b58e608c4b393e68c580..ddfb88c7bfbb0ae07b71035ce16cf45c3b550fc7 100644 (file)
@@ -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
 }
+
index 0965623409416bcab45406e4b43d7845877ddd9c..16dbd2196e8e247d5723db1d8dc52762a4d0462f 100644 (file)
@@ -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)
index 466fa60c08bc8ba81c2614793daf6ec249a94f78..cc36d64dfa1a3b8afd4fb853952360245d05beaa 100644 (file)
@@ -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)
+
index 1343a4f5d00ee7c8bcf35093203a6fa7427da86f..08ebe6ad3a5b540f91bd6352c67938f1cb76603d 100644 (file)
-; 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*)
index 4767558616f289d002441aa65f50e58083e82084..585257c779966805fca53c0d7b149e0233833b88 100644 (file)
@@ -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
 }
 
index 044b9451c585d0a989ac1303aa76fd254d177eed..e653aa1e2c4d3cb1f76ecaab6c5c1fd6a2407d43 100644 (file)
@@ -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
index f38b4c1d463d244788767a7ec05fe0911edbe352..ce9eb3c69d4bc2b0efc00ff293ec9f0aa0c16320 100644 (file)
@@ -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
 }
+
index 02d7e31b8addc6a8893b5cb22b1000fa0a90ef5f..41106e759ce0e3bec0762c4a5a9f06d4e2c83ba3 100644 (file)
@@ -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
 }
+
index 3e85692500e94a09013d19778ab31bf08f7a7767..757e1de940ce2db87d31d20e6fc3fa6b42963637 100644 (file)
@@ -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
 }
+
index 3fc225a302bf56ff5650acec21bdcbf8a2bd7611..e70fb1c4e0c0f24d43e245a6d54971cd706b673f 100644 (file)
 ; 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
 }
index a51e90ed0d6a6a0a868b81986319111c89d9869a..6f0ef6b549efc2de2b517ceab940b39a4a28537e 100644 (file)
 ; 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
 }
 
+
index 987d3c3db6e601068145d18107a6be71746612a4..c0e0fa4dc3c3673a0c34a0a1447bc1b031581d57 100644 (file)
@@ -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
 }
-
index aac7603e082b44ce3767a4409735e02587649c67..15083f2facd2bc2f85da35356bf888aadff193dc 100644 (file)
 ; 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
 }
+
index 51cffbeba9745bdb1d2015b4ed947f4cd861db36..76e606beafe45a53f2fd7eedad56f304ae4bce84 100644 (file)
 ; 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
 }
+
index 903f0b4917139d627592b68917cd528cf79ee041..79f40aced591b70900667322cb99bf1e00c18d35 100644 (file)
@@ -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
 }
+
index b5ea83707d4f73c2488b9dd891c748144edd2445..4c420ab421633d3c51ea1f9464ea38d1888ec8aa 100644 (file)
@@ -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
 }
index 1339eddc87905476d841eba9dd504659f1cf26e1..6058bd6dc7241fc082bfb68fec534eb4839af800 100644 (file)
@@ -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
+}
index 5ce807063d52842dc24a3392104a70edd62e3d55..feb7c64912054c82703168d84265bcf3d63b5d7c 100644 (file)
 ; 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
 }
  
index bfd41a87fc78f35e346c112ff4aa6d0cd55770fe..ffef2984f5c97ede97639ba1ffb330e1052d3e50 100644 (file)
@@ -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
 }
+
index f69cbc007245ddd0af273bf94fa513af7743ffe8..4828937e3e058760e2375dafcb58828986d7c224 100644 (file)
@@ -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
 }
+
index 93519ffdc0260f2f3f5b8a718f11ad9d4e150bee..cb8a090e5a07f37cf2ed1e708fa4895f33d380f7 100644 (file)
@@ -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
 }
+
index 0b7d12f547773364d6d9ca1e1a62ceef621eab73..337b2cce08aa3517e239ea306710fe87f951a0a2 100644 (file)
@@ -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
 }
+
index dfee31253fa3c53b8fbefc33b3a3e5ee547e8ec8..9ee8b068450ad714c5d44fea9bc10717774d295c 100644 (file)
 ; 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
 }
-
index 04d3ee56ebd8cb9bcb0f8e25b7fc417fee1c41ff..5f0ce6566d896e2bc9f99c76959213fcb3956015 100644 (file)
@@ -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
 }
+
index ca94b081d789d36d6fc23d88ab1ff5ff0bb21009..9063148424c513efdff78123a3a16ee52a0cb1c6 100644 (file)
@@ -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
 }
 
index e2011499ccba2ae1c77829a6f4eb9eb82dc4eb97..87e2cef3a1e32a53bdacd941fe723b55dbe6ad86 100644 (file)
 ; 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
 }
-
index aac8c3bd7fa7b22ddfac8c6777b922e2085d1a3d..2b4950aec97818a7be6638ef811f05da8c9d4c83 100644 (file)
@@ -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
 }
 
+
index cd1f1f827bd6c56c2cfb43b2ecb92d4dcba82272..ceb8deb6775f030d8babb486e15b0e4698a844e8 100644 (file)
@@ -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
 }
+