1*9880d681SAndroid Build Coastguard Worker; RUN: opt -loop-deletion -disable-output < %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker%0 = type { %"class.llvm::SmallVectorImpl", [1 x %"union.llvm::SmallVectorBase::U"] } 6*9880d681SAndroid Build Coastguard Worker%"class.clang::SourceLocation" = type { i32 } 7*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::Arg" = type { %"class.clang::driver::Option"*, %"class.clang::driver::Arg"*, i32, i8, %0 } 8*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::Option" = type { i32 (...)**, i32, %"class.clang::SourceLocation", i8*, %"class.clang::driver::OptionGroup"*, %"class.clang::driver::Option"*, i8 } 9*9880d681SAndroid Build Coastguard Worker%"class.clang::driver::OptionGroup" = type { %"class.clang::driver::Option" } 10*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8*, %"union.llvm::SmallVectorBase::U" } 11*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" } 12*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" } 13*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase" } 14*9880d681SAndroid Build Coastguard Worker%"union.llvm::SmallVectorBase::U" = type { x86_fp80 } 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdefine void @_ZNK5clang6driver7ArgList20AddAllArgsTranslatedERN4llvm11SmallVectorIPKcLj16EEENS0_12OptSpecifierES5_b(i1 zeroext %Joined) nounwind align 2 { 17*9880d681SAndroid Build Coastguard Workerentry: 18*9880d681SAndroid Build Coastguard Worker br i1 undef, label %entry.split.us, label %entry.entry.split_crit_edge 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerentry.entry.split_crit_edge: ; preds = %entry 21*9880d681SAndroid Build Coastguard Worker br label %entry.split 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerentry.split.us: ; preds = %entry 24*9880d681SAndroid Build Coastguard Worker br label %for.cond.i14.us 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerfor.cond.i14.us: ; preds = %for.inc.i38.us, %entry.split.us 27*9880d681SAndroid Build Coastguard Worker br i1 true, label %for.cond.i50.us-lcssa.us, label %if.end.i23.us 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerfor.inc.i38.us: ; preds = %if.end.i23.us 30*9880d681SAndroid Build Coastguard Worker br label %for.cond.i14.us 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerif.end.i23.us: ; preds = %for.cond.i14.us 33*9880d681SAndroid Build Coastguard Worker br i1 true, label %for.cond.i50.us-lcssa.us, label %for.inc.i38.us 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerfor.cond.i50.us-lcssa.us: ; preds = %if.end.i23.us, %for.cond.i14.us 36*9880d681SAndroid Build Coastguard Worker br label %for.cond.i50 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerentry.split: ; preds = %entry.entry.split_crit_edge 39*9880d681SAndroid Build Coastguard Worker br label %for.cond.i14 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerfor.cond.i14: ; preds = %for.inc.i38, %entry.split 42*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond.i50.us-lcssa, label %if.end.i23 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerif.end.i23: ; preds = %for.cond.i14 45*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond.i50.us-lcssa, label %for.inc.i38 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerfor.inc.i38: ; preds = %if.end.i23 48*9880d681SAndroid Build Coastguard Worker br label %for.cond.i14 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerfor.cond.i50.us-lcssa: ; preds = %if.end.i23, %for.cond.i14 51*9880d681SAndroid Build Coastguard Worker br label %for.cond.i50 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerfor.cond.i50: ; preds = %for.cond.i50.us-lcssa, %for.cond.i50.us-lcssa.us 54*9880d681SAndroid Build Coastguard Worker br label %for.cond 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit.us-lcssa: ; preds = %if.end.i, %for.cond.i 57*9880d681SAndroid Build Coastguard Worker br label %for.cond.loopexit 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit: ; preds = %for.cond.loopexit.us-lcssa.us, %for.cond.loopexit.us-lcssa 60*9880d681SAndroid Build Coastguard Worker br label %for.cond 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerfor.cond: ; preds = %for.cond.loopexit, %for.cond.i50 63*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.end, label %for.body 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.cond 66*9880d681SAndroid Build Coastguard Worker br i1 %Joined, label %if.then, label %if.else 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %for.body 69*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i, label %_ZN4llvm9StringRefC1EPKc.exit 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workercond.false.i.i: ; preds = %if.then 72*9880d681SAndroid Build Coastguard Worker unreachable 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker_ZN4llvm9StringRefC1EPKc.exit: ; preds = %if.then 75*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit, label %cond.false.i.i91 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Workercond.false.i.i91: ; preds = %_ZN4llvm9StringRefC1EPKc.exit 78*9880d681SAndroid Build Coastguard Worker unreachable 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit: ; preds = %_ZN4llvm9StringRefC1EPKc.exit 81*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i.i, label %if.end13.i.i.i.i 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerif.end13.i.i.i.i: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit 84*9880d681SAndroid Build Coastguard Worker br i1 undef, label %land.lhs.true16.i.i.i.i, label %if.end19.i.i.i.i 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Workerland.lhs.true16.i.i.i.i: ; preds = %if.end13.i.i.i.i 87*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Worker_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i: ; preds = %land.lhs.true16.i.i.i.i 90*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i.i, label %if.end19.i.i.i.i 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workerif.end19.i.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %if.end13.i.i.i.i 93*9880d681SAndroid Build Coastguard Worker br i1 undef, label %land.lhs.true22.i.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Workerland.lhs.true22.i.i.i.i: ; preds = %if.end19.i.i.i.i 96*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i: ; preds = %land.lhs.true22.i.i.i.i 99*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.false.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Workercond.false.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %land.lhs.true22.i.i.i.i, %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %land.lhs.true16.i.i.i.i, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit 102*9880d681SAndroid Build Coastguard Worker unreachable 103*9880d681SAndroid Build Coastguard Worker 104*9880d681SAndroid Build Coastguard Worker_ZN4llvmplERKNS_9StringRefEPKc.exit: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %if.end19.i.i.i.i 105*9880d681SAndroid Build Coastguard Worker br i1 undef, label %Retry.i, label %if.end.i99 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard WorkerRetry.i: ; preds = %if.end.i99, %_ZN4llvmplERKNS_9StringRefEPKc.exit 108*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit, label %new.notnull.i 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workernew.notnull.i: ; preds = %Retry.i 111*9880d681SAndroid Build Coastguard Worker br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Workerif.end.i99: ; preds = %_ZN4llvmplERKNS_9StringRefEPKc.exit 114*9880d681SAndroid Build Coastguard Worker br label %Retry.i 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit: ; preds = %new.notnull.i, %Retry.i 117*9880d681SAndroid Build Coastguard Worker br label %for.cond.i.preheader 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Workerif.else: ; preds = %for.body 120*9880d681SAndroid Build Coastguard Worker br i1 undef, label %Retry.i108, label %if.end.i113 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard WorkerRetry.i108: ; preds = %if.end.i113, %if.else 123*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114, label %new.notnull.i110 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workernew.notnull.i110: ; preds = %Retry.i108 126*9880d681SAndroid Build Coastguard Worker br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Workerif.end.i113: ; preds = %if.else 129*9880d681SAndroid Build Coastguard Worker br label %Retry.i108 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114: ; preds = %new.notnull.i110, %Retry.i108 132*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125, label %cond.false.i.i123 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Workercond.false.i.i123: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114 135*9880d681SAndroid Build Coastguard Worker unreachable 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Worker_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114 138*9880d681SAndroid Build Coastguard Worker br i1 undef, label %Retry.i134, label %if.end.i139 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard WorkerRetry.i134: ; preds = %if.end.i139, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125 141*9880d681SAndroid Build Coastguard Worker br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, label %new.notnull.i136 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Workernew.notnull.i136: ; preds = %Retry.i134 144*9880d681SAndroid Build Coastguard Worker br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerif.end.i139: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125 147*9880d681SAndroid Build Coastguard Worker br label %Retry.i134 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Worker_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140: ; preds = %new.notnull.i136, %Retry.i134 150*9880d681SAndroid Build Coastguard Worker br label %for.cond.i.preheader 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit 153*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond.i.preheader.split.us, label %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.for.cond.i.preheader.split_crit_edge: ; preds = %for.cond.i.preheader 156*9880d681SAndroid Build Coastguard Worker br label %for.cond.i.preheader.split 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.split.us: ; preds = %for.cond.i.preheader 159*9880d681SAndroid Build Coastguard Worker br label %for.cond.i.us 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Workerfor.cond.i.us: ; preds = %if.end.i.us, %for.cond.i.preheader.split.us 162*9880d681SAndroid Build Coastguard Worker br i1 true, label %for.cond.loopexit.us-lcssa.us, label %if.end.i.us 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workerif.end.i.us: ; preds = %for.cond.i.us 165*9880d681SAndroid Build Coastguard Worker br i1 true, label %for.cond.loopexit.us-lcssa.us, label %for.cond.i.us 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Workerfor.cond.loopexit.us-lcssa.us: ; preds = %if.end.i.us, %for.cond.i.us 168*9880d681SAndroid Build Coastguard Worker %tmp178218.us.lcssa = phi %"class.clang::driver::Arg"** [ undef, %if.end.i.us ], [ undef, %for.cond.i.us ] 169*9880d681SAndroid Build Coastguard Worker br label %for.cond.loopexit 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Workerfor.cond.i.preheader.split: ; preds = %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge 172*9880d681SAndroid Build Coastguard Worker br label %for.cond.i 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Workerfor.cond.i: ; preds = %if.end.i, %for.cond.i.preheader.split 175*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond.loopexit.us-lcssa, label %if.end.i 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Workerif.end.i: ; preds = %for.cond.i 178*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond.loopexit.us-lcssa, label %for.cond.i 179*9880d681SAndroid Build Coastguard Worker 180*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.cond 181*9880d681SAndroid Build Coastguard Worker ret void 182*9880d681SAndroid Build Coastguard Worker} 183