1; RUN: llc < %s -mtriple=armv7-apple-darwin10 -mattr=+vfp3 2 3@a = external global double ; <double*> [#uses=1] 4 5declare double @llvm.exp.f64(double) nounwind readonly 6 7define void @findratio(double* nocapture %res1, double* nocapture %res2) nounwind { 8entry: 9 br label %bb 10 11bb: ; preds = %bb, %entry 12 br i1 undef, label %bb28, label %bb 13 14bb28: ; preds = %bb 15 %0 = load double, double* @a, align 4 ; <double> [#uses=2] 16 %1 = fadd double %0, undef ; <double> [#uses=2] 17 br i1 undef, label %bb59, label %bb60 18 19bb59: ; preds = %bb28 20 %2 = fsub double -0.000000e+00, undef ; <double> [#uses=2] 21 br label %bb61 22 23bb60: ; preds = %bb28 24 %3 = tail call double @llvm.exp.f64(double undef) nounwind ; <double> [#uses=1] 25 %4 = fsub double -0.000000e+00, %3 ; <double> [#uses=2] 26 %5 = fsub double -0.000000e+00, undef ; <double> [#uses=1] 27 %6 = fsub double -0.000000e+00, undef ; <double> [#uses=1] 28 br label %bb61 29 30bb61: ; preds = %bb60, %bb59 31 %.pn201 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 32 %.pn111 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 33 %.pn452 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 34 %.pn85 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 35 %.pn238 = phi double [ 0.000000e+00, %bb59 ], [ 0.000000e+00, %bb60 ] ; <double> [#uses=1] 36 %.pn39 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 37 %.pn230 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 38 %.pn228 = phi double [ 0.000000e+00, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 39 %.pn224 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 40 %.pn222 = phi double [ 0.000000e+00, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 41 %.pn218 = phi double [ %2, %bb59 ], [ %4, %bb60 ] ; <double> [#uses=1] 42 %.pn214 = phi double [ 0.000000e+00, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 43 %.pn212 = phi double [ %2, %bb59 ], [ %4, %bb60 ] ; <double> [#uses=1] 44 %.pn213 = phi double [ undef, %bb59 ], [ undef, %bb60 ] ; <double> [#uses=1] 45 %.pn210 = phi double [ undef, %bb59 ], [ %5, %bb60 ] ; <double> [#uses=1] 46 %.pn202 = phi double [ undef, %bb59 ], [ %6, %bb60 ] ; <double> [#uses=0] 47 %.pn390 = fdiv double %.pn452, undef ; <double> [#uses=0] 48 %.pn145 = fdiv double %.pn238, %1 ; <double> [#uses=0] 49 %.pn138 = fdiv double %.pn230, undef ; <double> [#uses=1] 50 %.pn139 = fdiv double %.pn228, undef ; <double> [#uses=1] 51 %.pn134 = fdiv double %.pn224, %0 ; <double> [#uses=1] 52 %.pn135 = fdiv double %.pn222, %1 ; <double> [#uses=1] 53 %.pn133 = fdiv double %.pn218, undef ; <double> [#uses=0] 54 %.pn128 = fdiv double %.pn214, undef ; <double> [#uses=1] 55 %.pn129 = fdiv double %.pn212, %.pn213 ; <double> [#uses=1] 56 %.pn126 = fdiv double %.pn210, undef ; <double> [#uses=0] 57 %.pn54.in = fmul double undef, %.pn201 ; <double> [#uses=1] 58 %.pn42.in = fmul double undef, undef ; <double> [#uses=1] 59 %.pn76 = fsub double %.pn138, %.pn139 ; <double> [#uses=1] 60 %.pn74 = fsub double %.pn134, %.pn135 ; <double> [#uses=1] 61 %.pn70 = fsub double %.pn128, %.pn129 ; <double> [#uses=1] 62 %.pn54 = fdiv double %.pn54.in, 6.000000e+00 ; <double> [#uses=1] 63 %.pn64 = fmul double undef, 0x3FE5555555555555 ; <double> [#uses=1] 64 %.pn65 = fmul double undef, undef ; <double> [#uses=1] 65 %.pn50 = fmul double undef, %.pn111 ; <double> [#uses=0] 66 %.pn42 = fdiv double %.pn42.in, 6.000000e+00 ; <double> [#uses=1] 67 %.pn40 = fmul double undef, %.pn85 ; <double> [#uses=0] 68 %.pn56 = fadd double %.pn76, undef ; <double> [#uses=1] 69 %.pn57 = fmul double %.pn74, undef ; <double> [#uses=1] 70 %.pn36 = fadd double undef, undef ; <double> [#uses=1] 71 %.pn37 = fmul double %.pn70, undef ; <double> [#uses=1] 72 %.pn33 = fmul double undef, 0x3FC5555555555555 ; <double> [#uses=1] 73 %.pn29 = fsub double %.pn64, %.pn65 ; <double> [#uses=1] 74 %.pn21 = fadd double undef, undef ; <double> [#uses=1] 75 %.pn27 = fmul double undef, 0x3FC5555555555555 ; <double> [#uses=1] 76 %.pn11 = fadd double %.pn56, %.pn57 ; <double> [#uses=1] 77 %.pn32 = fmul double %.pn54, undef ; <double> [#uses=1] 78 %.pn26 = fmul double %.pn42, undef ; <double> [#uses=1] 79 %.pn15 = fmul double 0.000000e+00, %.pn39 ; <double> [#uses=1] 80 %.pn7 = fadd double %.pn36, %.pn37 ; <double> [#uses=1] 81 %.pn30 = fsub double %.pn32, %.pn33 ; <double> [#uses=1] 82 %.pn28 = fadd double %.pn30, 0.000000e+00 ; <double> [#uses=1] 83 %.pn24 = fsub double %.pn28, %.pn29 ; <double> [#uses=1] 84 %.pn22 = fsub double %.pn26, %.pn27 ; <double> [#uses=1] 85 %.pn20 = fadd double %.pn24, undef ; <double> [#uses=1] 86 %.pn18 = fadd double %.pn22, 0.000000e+00 ; <double> [#uses=1] 87 %.pn16 = fsub double %.pn20, %.pn21 ; <double> [#uses=1] 88 %.pn14 = fsub double %.pn18, undef ; <double> [#uses=1] 89 %.pn12 = fadd double %.pn16, undef ; <double> [#uses=1] 90 %.pn10 = fadd double %.pn14, %.pn15 ; <double> [#uses=1] 91 %.pn8 = fsub double %.pn12, undef ; <double> [#uses=1] 92 %.pn6 = fsub double %.pn10, %.pn11 ; <double> [#uses=1] 93 %.pn4 = fadd double %.pn8, undef ; <double> [#uses=1] 94 %.pn2 = fadd double %.pn6, %.pn7 ; <double> [#uses=1] 95 %N1.0 = fsub double %.pn4, undef ; <double> [#uses=1] 96 %D1.0 = fsub double %.pn2, undef ; <double> [#uses=2] 97 br i1 undef, label %bb62, label %bb64 98 99bb62: ; preds = %bb61 100 %7 = fadd double %D1.0, undef ; <double> [#uses=1] 101 br label %bb64 102 103bb64: ; preds = %bb62, %bb61 104 %.pn = phi double [ undef, %bb62 ], [ %N1.0, %bb61 ] ; <double> [#uses=1] 105 %.pn1 = phi double [ %7, %bb62 ], [ %D1.0, %bb61 ] ; <double> [#uses=1] 106 %x.1 = fdiv double %.pn, %.pn1 ; <double> [#uses=0] 107 ret void 108} 109