1*9880d681SAndroid Build Coastguard Worker; RUN: opt -jump-threading -S < %s | FileCheck %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 Workertarget triple = "x86_64-apple-darwin10.0.0" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker%class.StringSwitch = type { i8*, i32, i32, i8 } 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker@.str = private constant [4 x i8] c"red\00" ; <[4 x i8]*> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker@.str1 = private constant [7 x i8] c"orange\00" ; <[7 x i8]*> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker@.str2 = private constant [7 x i8] c"yellow\00" ; <[7 x i8]*> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker@.str3 = private constant [6 x i8] c"green\00" ; <[6 x i8]*> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker@.str4 = private constant [5 x i8] c"blue\00" ; <[5 x i8]*> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker@.str5 = private constant [7 x i8] c"indigo\00" ; <[7 x i8]*> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker@.str6 = private constant [7 x i8] c"violet\00" ; <[7 x i8]*> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker@.str7 = private constant [12 x i8] c"Color = %d\0A\00" ; <[12 x i8]*> [#uses=1] 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerdefine i32 @main(i32 %argc, i8** nocapture %argv) nounwind ssp { 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %cmp142 = icmp sgt i32 %argc, 1 ; <i1> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker br i1 %cmp142, label %bb.nph, label %for.end 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerbb.nph: ; preds = %entry 23*9880d681SAndroid Build Coastguard Worker %tmp = add i32 %argc, -2 ; <i32> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %tmp144 = zext i32 %tmp to i64 ; <i64> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker %tmp145 = add i64 %tmp144, 1 ; <i64> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker br label %land.lhs.true.i 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerland.lhs.true.i: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134, %bb.nph 29*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre161 = phi i32 [ undef, %bb.nph ], [ %retval.0.i.pre, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134 ] ; <i32> [#uses=3] 30*9880d681SAndroid Build Coastguard Worker %indvar = phi i64 [ 0, %bb.nph ], [ %tmp146, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134 ] ; <i64> [#uses=1] 31*9880d681SAndroid Build Coastguard Worker %tmp146 = add i64 %indvar, 1 ; <i64> [#uses=3] 32*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr i8*, i8** %argv, i64 %tmp146 ; <i8**> [#uses=1] 33*9880d681SAndroid Build Coastguard Worker %tmp6 = load i8*, i8** %arrayidx, align 8 ; <i8*> [#uses=8] 34*9880d681SAndroid Build Coastguard Worker %call.i.i = call i64 @strlen(i8* %tmp6) nounwind ; <i64> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker %conv.i.i = trunc i64 %call.i.i to i32 ; <i32> [#uses=6]\ 36*9880d681SAndroid Build Coastguard Worker; CHECK: switch i32 %conv.i.i 37*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: if.then.i40 38*9880d681SAndroid Build Coastguard Worker; CHECK: } 39*9880d681SAndroid Build Coastguard Worker switch i32 %conv.i.i, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit [ 40*9880d681SAndroid Build Coastguard Worker i32 3, label %land.lhs.true5.i 41*9880d681SAndroid Build Coastguard Worker i32 6, label %land.lhs.true5.i37 42*9880d681SAndroid Build Coastguard Worker ] 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i: ; preds = %land.lhs.true.i 45*9880d681SAndroid Build Coastguard Worker %call.i = call i32 @memcmp(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* %tmp6, i64 4) nounwind ; <i32> [#uses=1] 46*9880d681SAndroid Build Coastguard Worker %cmp9.i = icmp eq i32 %call.i, 0 ; <i1> [#uses=1] 47*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i, label %_ZN12StringSwitchI5ColorE4CaseILj4EEERS1_RAT__KcRKS0_.exit, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj4EEERS1_RAT__KcRKS0_.exit: ; preds = %land.lhs.true5.i 50*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i37: ; preds = %land.lhs.true.i 53*9880d681SAndroid Build Coastguard Worker %call.i35 = call i32 @memcmp(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str1, i64 0, i64 0), i8* %tmp6, i64 7) nounwind ; <i32> [#uses=1] 54*9880d681SAndroid Build Coastguard Worker %cmp9.i36 = icmp eq i32 %call.i35, 0 ; <i1> [#uses=1] 55*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i36, label %if.then.i40, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerif.then.i40: ; preds = %land.lhs.true5.i37 58*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit: ; preds = %if.then.i40, %land.lhs.true5.i37, %_ZN12StringSwitchI5ColorE4CaseILj4EEERS1_RAT__KcRKS0_.exit, %land.lhs.true5.i, %land.lhs.true.i 61*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre159 = phi i32 [ 1, %_ZN12StringSwitchI5ColorE4CaseILj4EEERS1_RAT__KcRKS0_.exit ], [ %retval.0.i.pre161, %land.lhs.true5.i37 ], [ 2, %if.then.i40 ], [ %retval.0.i.pre161, %land.lhs.true5.i ], [ %retval.0.i.pre161, %land.lhs.true.i ] ; <i32> [#uses=2] 62*9880d681SAndroid Build Coastguard Worker %tmp2.i44 = phi i8 [ 1, %_ZN12StringSwitchI5ColorE4CaseILj4EEERS1_RAT__KcRKS0_.exit ], [ 0, %land.lhs.true5.i37 ], [ 1, %if.then.i40 ], [ 0, %land.lhs.true5.i ], [ 0, %land.lhs.true.i ] ; <i8> [#uses=3] 63*9880d681SAndroid Build Coastguard Worker %tobool.i46 = icmp eq i8 %tmp2.i44, 0 ; <i1> [#uses=1] 64*9880d681SAndroid Build Coastguard Worker %cmp.i49 = icmp eq i32 %conv.i.i, 6 ; <i1> [#uses=1] 65*9880d681SAndroid Build Coastguard Worker %or.cond = and i1 %tobool.i46, %cmp.i49 ; <i1> [#uses=1] 66*9880d681SAndroid Build Coastguard Worker br i1 %or.cond, label %land.lhs.true5.i55, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i55: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 69*9880d681SAndroid Build Coastguard Worker %call.i53 = call i32 @memcmp(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str2, i64 0, i64 0), i8* %tmp6, i64 7) nounwind ; <i32> [#uses=1] 70*9880d681SAndroid Build Coastguard Worker %cmp9.i54 = icmp eq i32 %call.i53, 0 ; <i1> [#uses=1] 71*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i54, label %if.then.i58, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Workerif.then.i58: ; preds = %land.lhs.true5.i55 74*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60: ; preds = %if.then.i58, %land.lhs.true5.i55, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit 77*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre158 = phi i32 [ %retval.0.i.pre159, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit ], [ %retval.0.i.pre159, %land.lhs.true5.i55 ], [ 3, %if.then.i58 ] ; <i32> [#uses=2] 78*9880d681SAndroid Build Coastguard Worker %tmp2.i63 = phi i8 [ %tmp2.i44, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit ], [ %tmp2.i44, %land.lhs.true5.i55 ], [ 1, %if.then.i58 ] ; <i8> [#uses=3] 79*9880d681SAndroid Build Coastguard Worker %tmp14.i64 = and i8 %tmp2.i63, 1 ; <i8> [#uses=1] 80*9880d681SAndroid Build Coastguard Worker %tobool.i65 = icmp eq i8 %tmp14.i64, 0 ; <i1> [#uses=1] 81*9880d681SAndroid Build Coastguard Worker %cmp.i68 = icmp eq i32 %conv.i.i, 5 ; <i1> [#uses=1] 82*9880d681SAndroid Build Coastguard Worker %or.cond168 = and i1 %tobool.i65, %cmp.i68 ; <i1> [#uses=1] 83*9880d681SAndroid Build Coastguard Worker br i1 %or.cond168, label %land.lhs.true5.i74, label %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i74: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 86*9880d681SAndroid Build Coastguard Worker %call.i72 = call i32 @memcmp(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str3, i64 0, i64 0), i8* %tmp6, i64 6) nounwind ; <i32> [#uses=1] 87*9880d681SAndroid Build Coastguard Worker %cmp9.i73 = icmp eq i32 %call.i72, 0 ; <i1> [#uses=1] 88*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i73, label %if.then.i77, label %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerif.then.i77: ; preds = %land.lhs.true5.i74 91*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit: ; preds = %if.then.i77, %land.lhs.true5.i74, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 94*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre157 = phi i32 [ %retval.0.i.pre158, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 ], [ %retval.0.i.pre158, %land.lhs.true5.i74 ], [ 4, %if.then.i77 ] ; <i32> [#uses=2] 95*9880d681SAndroid Build Coastguard Worker %tmp2.i81 = phi i8 [ %tmp2.i63, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit60 ], [ %tmp2.i63, %land.lhs.true5.i74 ], [ 1, %if.then.i77 ] ; <i8> [#uses=3] 96*9880d681SAndroid Build Coastguard Worker %tmp14.i82 = and i8 %tmp2.i81, 1 ; <i8> [#uses=1] 97*9880d681SAndroid Build Coastguard Worker %tobool.i83 = icmp eq i8 %tmp14.i82, 0 ; <i1> [#uses=1] 98*9880d681SAndroid Build Coastguard Worker %cmp.i86 = icmp eq i32 %conv.i.i, 4 ; <i1> [#uses=1] 99*9880d681SAndroid Build Coastguard Worker %or.cond169 = and i1 %tobool.i83, %cmp.i86 ; <i1> [#uses=1] 100*9880d681SAndroid Build Coastguard Worker br i1 %or.cond169, label %land.lhs.true5.i92, label %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i92: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit 103*9880d681SAndroid Build Coastguard Worker %call.i90 = call i32 @memcmp(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str4, i64 0, i64 0), i8* %tmp6, i64 5) nounwind ; <i32> [#uses=1] 104*9880d681SAndroid Build Coastguard Worker %cmp9.i91 = icmp eq i32 %call.i90, 0 ; <i1> [#uses=1] 105*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i91, label %if.then.i95, label %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerif.then.i95: ; preds = %land.lhs.true5.i92 108*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit: ; preds = %if.then.i95, %land.lhs.true5.i92, %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit 111*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre156 = phi i32 [ %retval.0.i.pre157, %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit ], [ %retval.0.i.pre157, %land.lhs.true5.i92 ], [ 5, %if.then.i95 ] ; <i32> [#uses=2] 112*9880d681SAndroid Build Coastguard Worker %tmp2.i99 = phi i8 [ %tmp2.i81, %_ZN12StringSwitchI5ColorE4CaseILj6EEERS1_RAT__KcRKS0_.exit ], [ %tmp2.i81, %land.lhs.true5.i92 ], [ 1, %if.then.i95 ] ; <i8> [#uses=3] 113*9880d681SAndroid Build Coastguard Worker %tmp14.i100 = and i8 %tmp2.i99, 1 ; <i8> [#uses=1] 114*9880d681SAndroid Build Coastguard Worker %tobool.i101 = icmp eq i8 %tmp14.i100, 0 ; <i1> [#uses=1] 115*9880d681SAndroid Build Coastguard Worker %cmp.i104 = icmp eq i32 %conv.i.i, 6 ; <i1> [#uses=1] 116*9880d681SAndroid Build Coastguard Worker %or.cond170 = and i1 %tobool.i101, %cmp.i104 ; <i1> [#uses=1] 117*9880d681SAndroid Build Coastguard Worker br i1 %or.cond170, label %land.lhs.true5.i110, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i110: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit 120*9880d681SAndroid Build Coastguard Worker %call.i108 = call i32 @memcmp(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str5, i64 0, i64 0), i8* %tmp6, i64 7) nounwind ; <i32> [#uses=1] 121*9880d681SAndroid Build Coastguard Worker %cmp9.i109 = icmp eq i32 %call.i108, 0 ; <i1> [#uses=1] 122*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i109, label %if.then.i113, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Workerif.then.i113: ; preds = %land.lhs.true5.i110 125*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115: ; preds = %if.then.i113, %land.lhs.true5.i110, %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit 128*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre155 = phi i32 [ %retval.0.i.pre156, %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit ], [ %retval.0.i.pre156, %land.lhs.true5.i110 ], [ 6, %if.then.i113 ] ; <i32> [#uses=2] 129*9880d681SAndroid Build Coastguard Worker %tmp2.i118 = phi i8 [ %tmp2.i99, %_ZN12StringSwitchI5ColorE4CaseILj5EEERS1_RAT__KcRKS0_.exit ], [ %tmp2.i99, %land.lhs.true5.i110 ], [ 1, %if.then.i113 ] ; <i8> [#uses=3] 130*9880d681SAndroid Build Coastguard Worker %tmp14.i119 = and i8 %tmp2.i118, 1 ; <i8> [#uses=1] 131*9880d681SAndroid Build Coastguard Worker %tobool.i120 = icmp eq i8 %tmp14.i119, 0 ; <i1> [#uses=1] 132*9880d681SAndroid Build Coastguard Worker %cmp.i123 = icmp eq i32 %conv.i.i, 6 ; <i1> [#uses=1] 133*9880d681SAndroid Build Coastguard Worker %or.cond171 = and i1 %tobool.i120, %cmp.i123 ; <i1> [#uses=1] 134*9880d681SAndroid Build Coastguard Worker br i1 %or.cond171, label %land.lhs.true5.i129, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Workerland.lhs.true5.i129: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 137*9880d681SAndroid Build Coastguard Worker %call.i127 = call i32 @memcmp(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str6, i64 0, i64 0), i8* %tmp6, i64 7) nounwind ; <i32> [#uses=1] 138*9880d681SAndroid Build Coastguard Worker %cmp9.i128 = icmp eq i32 %call.i127, 0 ; <i1> [#uses=1] 139*9880d681SAndroid Build Coastguard Worker br i1 %cmp9.i128, label %if.then.i132, label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Workerif.then.i132: ; preds = %land.lhs.true5.i129 142*9880d681SAndroid Build Coastguard Worker br label %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Worker_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134: ; preds = %if.then.i132, %land.lhs.true5.i129, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 145*9880d681SAndroid Build Coastguard Worker %retval.0.i.pre = phi i32 [ %retval.0.i.pre155, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 ], [ %retval.0.i.pre155, %land.lhs.true5.i129 ], [ 7, %if.then.i132 ] ; <i32> [#uses=2] 146*9880d681SAndroid Build Coastguard Worker %tmp2.i137 = phi i8 [ %tmp2.i118, %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit115 ], [ %tmp2.i118, %land.lhs.true5.i129 ], [ 1, %if.then.i132 ] ; <i8> [#uses=1] 147*9880d681SAndroid Build Coastguard Worker %tmp7.i138 = and i8 %tmp2.i137, 1 ; <i8> [#uses=1] 148*9880d681SAndroid Build Coastguard Worker %tobool.i139 = icmp eq i8 %tmp7.i138, 0 ; <i1> [#uses=1] 149*9880d681SAndroid Build Coastguard Worker %retval.0.i = select i1 %tobool.i139, i32 0, i32 %retval.0.i.pre ; <i32> [#uses=1] 150*9880d681SAndroid Build Coastguard Worker %call22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str7, i64 0, i64 0), i32 %retval.0.i) ; <i32> [#uses=0] 151*9880d681SAndroid Build Coastguard Worker %exitcond = icmp eq i64 %tmp146, %tmp145 ; <i1> [#uses=1] 152*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.end, label %land.lhs.true.i 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit134, %entry 155*9880d681SAndroid Build Coastguard Worker ret i32 0 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workerdeclare i32 @printf(i8* nocapture, ...) nounwind 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerdeclare i32 @memcmp(i8* nocapture, i8* nocapture, i64) nounwind readonly 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Workerdeclare i64 @strlen(i8* nocapture) nounwind readonly 163