1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=ppc32 -mcpu=g5 2*9880d681SAndroid Build Coastguard Worker; END. 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine void @test(i8* %stack) { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker %tmp9 = icmp eq i32 0, 0 ; <i1> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker %tmp30 = icmp eq i32 0, 0 ; <i1> [#uses=1] 8*9880d681SAndroid Build Coastguard Worker br i1 %tmp30, label %cond_next54, label %cond_true31 9*9880d681SAndroid Build Coastguard Workercond_true860: ; preds = %bb855 10*9880d681SAndroid Build Coastguard Worker %tmp879 = tail call <4 x float> @llvm.ppc.altivec.vmaddfp( <4 x float> zeroinitializer, <4 x float> zeroinitializer, <4 x float> zeroinitializer ) ; <<4 x float>> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker %tmp880 = bitcast <4 x float> %tmp879 to <4 x i32> ; <<4 x i32>> [#uses=2] 12*9880d681SAndroid Build Coastguard Worker %tmp883 = shufflevector <4 x i32> %tmp880, <4 x i32> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 > ; <<4 x i32>> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker %tmp883.upgrd.1 = bitcast <4 x i32> %tmp883 to <4 x float> ; <<4 x float>> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker %tmp885 = shufflevector <4 x i32> %tmp880, <4 x i32> undef, <4 x i32> < i32 2, i32 2, i32 2, i32 2 > ; <<4 x i32>> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker %tmp885.upgrd.2 = bitcast <4 x i32> %tmp885 to <4 x float> ; <<4 x float>> [#uses=1] 16*9880d681SAndroid Build Coastguard Worker br label %cond_next905 17*9880d681SAndroid Build Coastguard Workercond_true31: ; preds = %entry 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Workercond_next54: ; preds = %entry 20*9880d681SAndroid Build Coastguard Worker br i1 %tmp9, label %cond_false385, label %bb279 21*9880d681SAndroid Build Coastguard Workerbb279: ; preds = %cond_next54 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Workercond_false385: ; preds = %cond_next54 24*9880d681SAndroid Build Coastguard Worker %tmp388 = icmp eq i32 0, 0 ; <i1> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker br i1 %tmp388, label %cond_next463, label %cond_true389 26*9880d681SAndroid Build Coastguard Workercond_true389: ; preds = %cond_false385 27*9880d681SAndroid Build Coastguard Worker ret void 28*9880d681SAndroid Build Coastguard Workercond_next463: ; preds = %cond_false385 29*9880d681SAndroid Build Coastguard Worker %tmp1208107 = icmp ugt i8* null, %stack ; <i1> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker br i1 %tmp1208107, label %cond_true1209.preheader, label %bb1212 31*9880d681SAndroid Build Coastguard Workercond_true498: ; preds = %cond_true1209.preheader 32*9880d681SAndroid Build Coastguard Worker ret void 33*9880d681SAndroid Build Coastguard Workercond_true519: ; preds = %cond_true1209.preheader 34*9880d681SAndroid Build Coastguard Worker %bothcond = or i1 false, false ; <i1> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker br i1 %bothcond, label %bb855, label %bb980 36*9880d681SAndroid Build Coastguard Workercond_false548: ; preds = %cond_true1209.preheader 37*9880d681SAndroid Build Coastguard Worker ret void 38*9880d681SAndroid Build Coastguard Workerbb855: ; preds = %cond_true519 39*9880d681SAndroid Build Coastguard Worker %tmp859 = icmp eq i32 0, 0 ; <i1> [#uses=1] 40*9880d681SAndroid Build Coastguard Worker br i1 %tmp859, label %cond_true860, label %cond_next905 41*9880d681SAndroid Build Coastguard Workercond_next905: ; preds = %bb855, %cond_true860 42*9880d681SAndroid Build Coastguard Worker %vfpw2.4 = phi <4 x float> [ %tmp885.upgrd.2, %cond_true860 ], [ undef, %bb855 ] ; <<4 x float>> [#uses=0] 43*9880d681SAndroid Build Coastguard Worker %vfpw1.4 = phi <4 x float> [ %tmp883.upgrd.1, %cond_true860 ], [ undef, %bb855 ] ; <<4 x float>> [#uses=0] 44*9880d681SAndroid Build Coastguard Worker %tmp930 = bitcast <4 x float> zeroinitializer to <4 x i32> ; <<4 x i32>> [#uses=0] 45*9880d681SAndroid Build Coastguard Worker ret void 46*9880d681SAndroid Build Coastguard Workerbb980: ; preds = %cond_true519 47*9880d681SAndroid Build Coastguard Worker ret void 48*9880d681SAndroid Build Coastguard Workercond_true1209.preheader: ; preds = %cond_next463 49*9880d681SAndroid Build Coastguard Worker %tmp496 = and i32 0, 12288 ; <i32> [#uses=1] 50*9880d681SAndroid Build Coastguard Worker switch i32 %tmp496, label %cond_false548 [ 51*9880d681SAndroid Build Coastguard Worker i32 0, label %cond_true498 52*9880d681SAndroid Build Coastguard Worker i32 4096, label %cond_true519 53*9880d681SAndroid Build Coastguard Worker ] 54*9880d681SAndroid Build Coastguard Workerbb1212: ; preds = %cond_next463 55*9880d681SAndroid Build Coastguard Worker ret void 56*9880d681SAndroid Build Coastguard Worker} 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.ppc.altivec.vmaddfp(<4 x float>, <4 x float>, <4 x float>) 59