; ModuleID = 'Moj Modul' define double @fib(double %x) { entry: %x1 = alloca double store double %x, double* %x1 %0 = load double, double* %x1 %lttmp = fcmp ult double %0, 3.000000e+00 %booltmp = uitofp i1 %lttmp 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 %1 = load double, double* %x1 %subtmp = fsub double %1, 1.000000e+00 %calltmp = call double @fib(double %subtmp) %2 = load double, double* %x1 %subtmp2 = fsub double %2, 2.000000e+00 %calltmp3 = call double @fib(double %subtmp2) %addtmp = fadd double %calltmp, %calltmp3 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 2.000000e+00, double* %i br label %loop loop: ; preds = %loop, %entry %0 = load double, double* %a %1 = load double, double* %b %addtmp = fadd double %0, %1 store double %addtmp, double* %c %2 = load double, double* %b store double %2, double* %a %3 = load double, double* %c store double %3, double* %b %4 = load double, double* %i %nextvar = fadd double %4, 1.000000e+00 store double %nextvar, double* %i %5 = load double, double* %i %6 = load double, double* %x1 %lttmp = fcmp ult double %5, %6 %booltmp = uitofp i1 %lttmp to double %loopcond = fcmp one double %booltmp, 0.000000e+00 br i1 %loopcond, label %loop, label %afterloop afterloop: ; preds = %loop %7 = load double, double* %b ret double %7 }