int show_compresults(maxvalue, poserror, negerror, error2, norm2, error1, norm1,
                     errorlog10, nonexactnumber, size, SNR_ptr, typesize, sum)
double maxvalue;
double poserror;
double negerror;
double error2;
double norm2;
double error1;
double norm1;
double errorlog10;
int nonexactnumber;
int size;
float *SNR_ptr;
int typesize;
double sum;
{
  double varians;
  double mean;
  printf("\nSize of data set:%d pixels on %d bytes\n", size, size * typesize);
  error2 /= size;
  norm2 /= size;
  mean = sum / size;
  varians = norm2 - mean * mean;
  error2 += 1.0e-45;
  norm2 += 1.0e-45;
  varians += 1.0e-45;
  *SNR_ptr = (-10 * log10((double)error2 / norm2));
  *SNR_ptr = (-10 * log10((double)error2 / norm2));
  printf("Max value: %e \n", maxvalue);
  printf("Mean value: %e\n", mean);
  printf("Norm2^2/Size =%e\n", norm2);
  printf("Varians = %e\n", varians);
  printf("Max positiv error: %e\nMax negativ error: %e\n", poserror, negerror);
  printf("Error2 ^2 /SIZE = %e\n", error2);
  printf("(Error2/Norm2) ^2 = %e\n", (double)error2 / norm2);
  printf("(Error2^2/Varianse)  = %e\n", (double)error2 / varians);
  printf("(Error2/(Max))^2/SIZE = %e\n", error2 / (maxvalue * maxvalue));
  printf("SignaltoNoise rate %f decibel\n",
         (-10.0 * log10((double)error2 / norm2)));
  printf("     PSNR   = %f decibel\n",
         (-10.0 * log10(error2 / (maxvalue * maxvalue))));
  printf("VariansetoNoise rate %f decibel\n",
         (-10.0 * log10((double)error2 / varians)));
  return 0;
}


x86 assembly (clang, -O0):
<show_compresults>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
movsd  0x10(%rbp),%xmm8
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  %xmm3,-0x20(%rbp)
movsd  %xmm4,-0x28(%rbp)
movsd  %xmm5,-0x30(%rbp)
movsd  %xmm6,-0x38(%rbp)
movsd  %xmm7,-0x40(%rbp)
mov    %edi,-0x44(%rbp)
mov    %esi,-0x48(%rbp)
mov    %rdx,-0x50(%rbp)
mov    %ecx,-0x54(%rbp)
mov    -0x48(%rbp),%esi
mov    -0x48(%rbp),%edx
imul   -0x54(%rbp),%edx
lea    0xe9c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cvtsi2sdl -0x48(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
cvtsi2sdl -0x48(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0x10(%rbp),%xmm0
cvtsi2sdl -0x48(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  -0x68(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xe19(%rip),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xe07(%rip),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xdf5(%rip),%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1040 <log10@plt>
movaps %xmm0,%xmm1
movsd  0xdc9(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x50(%rbp),%rax
movss  %xmm0,(%rax)
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1040 <log10@plt>
movaps %xmm0,%xmm1
movsd  0xd9f(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x50(%rbp),%rax
movss  %xmm0,(%rax)
movsd  -0x8(%rbp),%xmm0
lea    0xdbc(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x68(%rbp),%xmm0
lea    0xdb9(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x28(%rbp),%xmm0
lea    0xdb6(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x60(%rbp),%xmm0
lea    0xdb5(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    0xdab(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
lea    0xdc5(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
lea    0xdc3(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
lea    0xdc3(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
divsd  %xmm1,%xmm0
lea    0xdbd(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
call   1040 <log10@plt>
movaps %xmm0,%xmm1
movsd  0xcad(%rip),%xmm0
mulsd  %xmm1,%xmm0
lea    0xdad(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
mulsd  -0x8(%rbp),%xmm1
divsd  %xmm1,%xmm0
call   1040 <log10@plt>
movaps %xmm0,%xmm1
movsd  0xc78(%rip),%xmm0
mulsd  %xmm1,%xmm0
lea    0xd97(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x20(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
call   1040 <log10@plt>
movaps %xmm0,%xmm1
movsd  0xc4c(%rip),%xmm0
mulsd  %xmm1,%xmm0
lea    0xd85(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<show_compresults>:
push   %rbp
push   %rbx
sub    $0x78,%rsp
mov    %rdx,%rbx
mov    %esi,%ebp
movaps %xmm4,0x10(%rsp)
movaps %xmm3,(%rsp)
movsd  %xmm2,0x58(%rsp)
movsd  %xmm1,0x50(%rsp)
movsd  %xmm0,0x28(%rsp)
imul   %esi,%ecx
lea    0xed0(%rip),%rdi
mov    %ecx,%edx
xor    %eax,%eax
call   1030 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
movapd (%rsp),%xmm2
unpcklpd 0x10(%rsp),%xmm2
movsd  0x90(%rsp),%xmm3
divsd  %xmm0,%xmm3
unpcklpd %xmm0,%xmm0
divpd  %xmm0,%xmm2
movapd %xmm2,%xmm1
unpckhpd %xmm2,%xmm1
movsd  %xmm3,0x48(%rsp)
movapd %xmm3,%xmm0
mulsd  %xmm3,%xmm0
addpd  0xe62(%rip),%xmm2
subsd  %xmm0,%xmm1
addsd  0xe66(%rip),%xmm1
movapd %xmm1,0x30(%rsp)
movapd %xmm2,%xmm1
unpckhpd %xmm2,%xmm1
movapd %xmm2,(%rsp)
movapd %xmm2,%xmm0
movapd %xmm1,0x60(%rsp)
divsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
movapd %xmm0,0x10(%rsp)
jae    1331 <show_compresults+0x211>
call   1040 <log10@plt>
mulsd  0xe2c(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,(%rbx)
lea    0xe4e(%rip),%rdi
movsd  0x28(%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xe4a(%rip),%rdi
movsd  0x48(%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xe46(%rip),%rdi
movaps 0x60(%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xe45(%rip),%rdi
movaps 0x30(%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xe40(%rip),%rdi
movsd  0x50(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
mov    $0x2,%al
call   1030 <printf@plt>
lea    0xe53(%rip),%rdi
movaps (%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xe57(%rip),%rdi
movaps 0x10(%rsp),%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
movapd (%rsp),%xmm0
divsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
lea    0xe4b(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x28(%rsp),%xmm1
mulsd  %xmm1,%xmm1
movapd (%rsp),%xmm0
divsd  %xmm1,%xmm0
movapd %xmm0,(%rsp)
lea    0xe40(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movapd 0x10(%rsp),%xmm0
call   1040 <log10@plt>
mulsd  0xd3f(%rip),%xmm0
lea    0xe3b(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movapd (%rsp),%xmm0
call   1040 <log10@plt>
mulsd  0xd1f(%rip),%xmm0
lea    0xe3a(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x30(%rsp),%xmm0
call   1040 <log10@plt>
mulsd  0xcfe(%rip),%xmm0
lea    0xe33(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x78,%rsp
pop    %rbx
pop    %rbp
ret
call   1040 <log10@plt>
movapd 0x10(%rsp),%xmm0
jmp    11df <show_compresults+0xbf>

LLVM IR (-O0):
@.str = [41 x i8] c"\0ASize of data set:%d pixels on %d bytes\0A\00"
@.str.1 = [16 x i8] c"Max value: %e \0A\00"
@.str.2 = [16 x i8] c"Mean value: %e\0A\00"
@.str.3 = [18 x i8] c"Norm2^2/Size =%e\0A\00"
@.str.4 = [14 x i8] c"Varians = %e\0A\00"
@.str.5 = [45 x i8] c"Max positiv error: %e\0AMax negativ error: %e\0A\00"
@.str.6 = [22 x i8] c"Error2 ^2 /SIZE = %e\0A\00"
@.str.7 = [24 x i8] c"(Error2/Norm2) ^2 = %e\0A\00"
@.str.8 = [27 x i8] c"(Error2^2/Varianse) = %e\0A\00"
@.str.9 = [28 x i8] c"(Error2/(Max))^2/SIZE = %e\0A\00"
@.str.10 = [31 x i8] c"SignaltoNoise rate %f decibel\0A\00"
@.str.11 = [26 x i8] c" PSNR = %f decibel\0A\00"
@.str.12 = [33 x i8] c"VariansetoNoise rate %f decibel\0A\00"
define i32 @show_compresults(double %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i32 %8, i32 %9, float* %10, i32 %11, double %12) {
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca i32
%23 = alloca i32
%24 = alloca float*
%25 = alloca i32
%26 = alloca double
%27 = alloca double
%28 = alloca double
store double %0, double* %14
store double %1, double* %15
store double %2, double* %16
store double %3, double* %17
store double %4, double* %18
store double %5, double* %19
store double %6, double* %20
store double %7, double* %21
store i32 %8, i32* %22
store i32 %9, i32* %23
store float* %10, float** %24
store i32 %11, i32* %25
store double %12, double* %26
%29 = load i32, i32* %23
%30 = load i32, i32* %23
%31 = load i32, i32* %25
%32 = mul nsw i32 %30, %31
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 %29, i32 %32)
%34 = load i32, i32* %23
%35 = sitofp i32 %34 to double
%36 = load double, double* %17
%37 = fdiv double %36, %35
store double %37, double* %17
%38 = load i32, i32* %23
%39 = sitofp i32 %38 to double
%40 = load double, double* %18
%41 = fdiv double %40, %39
store double %41, double* %18
%42 = load double, double* %26
%43 = load i32, i32* %23
%44 = sitofp i32 %43 to double
%45 = fdiv double %42, %44
store double %45, double* %28
%46 = load double, double* %18
%47 = load double, double* %28
%48 = load double, double* %28
%49 = fneg double %47
%50 = call double @llvm.fmuladd.f64(double %49, double %48, double %46)
store double %50, double* %27
%51 = load double, double* %17
%52 = fadd double %51, 0x3696D601AD376AB9
store double %52, double* %17
%53 = load double, double* %18
%54 = fadd double %53, 0x3696D601AD376AB9
store double %54, double* %18
%55 = load double, double* %27
%56 = fadd double %55, 0x3696D601AD376AB9
store double %56, double* %27
%57 = load double, double* %17
%58 = load double, double* %18
%59 = fdiv double %57, %58
%60 = call double @log10(double %59)
%61 = fmul double -1.000000e+01, %60
%62 = fptrunc double %61 to float
%63 = load float*, float** %24
store float %62, float* %63
%64 = load double, double* %17
%65 = load double, double* %18
%66 = fdiv double %64, %65
%67 = call double @log10(double %66)
%68 = fmul double -1.000000e+01, %67
%69 = fptrunc double %68 to float
%70 = load float*, float** %24
store float %69, float* %70
%71 = load double, double* %14
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1, i64 0, i64 0), double %71)
%73 = load double, double* %28
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), double %73)
%75 = load double, double* %18
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), double %75)
%77 = load double, double* %27
%78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0), double %77)
%79 = load double, double* %15
%80 = load double, double* %16
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.5, i64 0, i64 0), double %79, double %80)
%82 = load double, double* %17
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.6, i64 0, i64 0), double %82)
%84 = load double, double* %17
%85 = load double, double* %18
%86 = fdiv double %84, %85
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), double %86)
%88 = load double, double* %17
%89 = load double, double* %27
%90 = fdiv double %88, %89
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), double %90)
%92 = load double, double* %17
%93 = load double, double* %14
%94 = load double, double* %14
%95 = fmul double %93, %94
%96 = fdiv double %92, %95
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.9, i64 0, i64 0), double %96)
%98 = load double, double* %17
%99 = load double, double* %18
%100 = fdiv double %98, %99
%101 = call double @log10(double %100)
%102 = fmul double -1.000000e+01, %101
%103 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0), double %102)
%104 = load double, double* %17
%105 = load double, double* %14
%106 = load double, double* %14
%107 = fmul double %105, %106
%108 = fdiv double %104, %107
%109 = call double @log10(double %108)
%110 = fmul double -1.000000e+01, %109
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0), double %110)
%112 = load double, double* %17
%113 = load double, double* %27
%114 = fdiv double %112, %113
%115 = call double @log10(double %114)
%116 = fmul double -1.000000e+01, %115
%117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.12, i64 0, i64 0), double %116)
ret i32 0
}

LLVM IR (-O2):
@.str = [41 x i8] c"\0ASize of data set:%d pixels on %d bytes\0A\00"
@.str.1 = [16 x i8] c"Max value: %e \0A\00"
@.str.2 = [16 x i8] c"Mean value: %e\0A\00"
@.str.3 = [18 x i8] c"Norm2^2/Size =%e\0A\00"
@.str.4 = [14 x i8] c"Varians = %e\0A\00"
@.str.5 = [45 x i8] c"Max positiv error: %e\0AMax negativ error: %e\0A\00"
@.str.6 = [22 x i8] c"Error2 ^2 /SIZE = %e\0A\00"
@.str.7 = [24 x i8] c"(Error2/Norm2) ^2 = %e\0A\00"
@.str.8 = [27 x i8] c"(Error2^2/Varianse) = %e\0A\00"
@.str.9 = [28 x i8] c"(Error2/(Max))^2/SIZE = %e\0A\00"
@.str.10 = [31 x i8] c"SignaltoNoise rate %f decibel\0A\00"
@.str.11 = [26 x i8] c" PSNR = %f decibel\0A\00"
@.str.12 = [33 x i8] c"VariansetoNoise rate %f decibel\0A\00"
define i32 @show_compresults(double %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i32 %8, i32 %9, float* nocapture writeonly %10, i32 %11, double %12) {
%14 = mul nsw i32 %11, %9
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 %9, i32 %14)
%16 = sitofp i32 %9 to double
%17 = insertelement <2 x double> poison, double %3, i64 0
%18 = insertelement <2 x double> %17, double %4, i64 1
%19 = insertelement <2 x double> poison, double %16, i64 0
%20 = shufflevector <2 x double> %19, <2 x double> poison, <2 x i32> zeroinitializer
%21 = fdiv <2 x double> %18, %20
%22 = fdiv double %12, %16
%23 = fneg double %22
%24 = extractelement <2 x double> %21, i64 1
%25 = tail call double @llvm.fmuladd.f64(double %23, double %22, double %24)
%26 = fadd <2 x double> %21, <double 0x3696D601AD376AB9, double 0x3696D601AD376AB9>
%27 = fadd double %25, 0x3696D601AD376AB9
%28 = extractelement <2 x double> %26, i64 0
%29 = extractelement <2 x double> %26, i64 1
%30 = fdiv double %28, %29
%31 = fcmp ugt double %30, 0.000000e+00
br i1 %31, label %34, label %32
32: ; preds = %13
%33 = tail call double @log10(double %30)
br label %34
34: ; preds = %13, %32
%35 = tail call double @log10(double %30)
%36 = fmul double %35, -1.000000e+01
%37 = fptrunc double %36 to float
store float %37, float* %10
%38 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1, i64 0, i64 0), double %0)
%39 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), double %22)
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), double %29)
%41 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0), double %27)
%42 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.5, i64 0, i64 0), double %1, double %2)
%43 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.6, i64 0, i64 0), double %28)
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), double %30)
%45 = fdiv double %28, %27
%46 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), double %45)
%47 = fmul double %0, %0
%48 = fdiv double %28, %47
%49 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.9, i64 0, i64 0), double %48)
%50 = tail call double @log10(double %30)
%51 = fmul double %50, -1.000000e+01
%52 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0), double %51)
%53 = tail call double @log10(double %48)
%54 = fmul double %53, -1.000000e+01
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0), double %54)
%56 = tail call double @log10(double %45)
%57 = fmul double %56, -1.000000e+01
%58 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.12, i64 0, i64 0), double %57)
ret i32 0
}