; ModuleID = 'Moj modul' define double @fib(double %x) { entry: %x1 = alloca double store double %x, double* %x1 %x2 = load double, double* %x1 %lesstmp = fcmp ult double %x2, 3.000000e+00 %booltmp = uitofp i1 %lesstmp to double %ifcond = fcmp one double %booltmp, 0.000000e+00 br i1 %ifcond, label %then, label %else then: ; preds = %entry br label %ifcont else: ; preds = %entry %x3 = load double, double* %x1 %subtmp = fsub double %x3, 1.000000e+00 %calltmp = call double @fib(double %subtmp) %x4 = load double, double* %x1 %subtmp5 = fsub double %x4, 2.000000e+00 %calltmp6 = call double @fib(double %subtmp5) %addtmp = fadd double %calltmp, %calltmp6 br label %ifcont ifcont: ; preds = %else, %then %iftmp = phi double [ 1.000000e+00, %then ], [ %addtmp, %else ] ret double %iftmp } 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 3.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 %currvar = load double, double* %i %nextvar = fadd double %currvar, 1.000000e+00 store double %nextvar, double* %i %i6 = load double, double* %i %x7 = load double, double* %x1 %lesstmp = fcmp ult double %i6, %x7 %booltmp = uitofp i1 %lesstmp to double %loopcond = fcmp one double %booltmp, 0.000000e+00 br i1 %loopcond, label %loop, label %afterloop afterloop: ; preds = %loop %b8 = load double, double* %b ret double %b8 }