; ModuleID = 'my_module' define double @fibi(double %x) { entry: %i = alloca double %c = alloca double %b = alloca double %a = alloca double %x1 = alloca double store double %x, double* %x1 store double 1.000000e+00, double* %a store double 1.000000e+00, double* %b store double 0.000000e+00, double* %c store double 1.000000e+00, double* %i br label %loop loop: ; preds = %loop, %entry %a2 = load double, double* %a %b3 = load double, double* %b %addtmp = fadd double %a2, %b3 store double %addtmp, double* %c %b4 = load double, double* %b store double %b4, double* %a %c5 = load double, double* %c store double %c5, double* %b %i6 = load double, double* %i %nextvar = fadd double %i6, 1.000000e+00 store double %nextvar, double* %i %i7 = load double, double* %i %x8 = load double, double* %x1 %lttmp = fcmp ult double %i7, %x8 %booltmp = uitofp i1 %lttmp to double %loopcond = fcmp one double %booltmp, 0.000000e+00 br i1 %loopcond, label %loop, label %afterloop afterloop: ; preds = %loop %a9 = load double, double* %a ret double %a9 }