void build_upsample_pixelprop_table(float *x_pixel_percent1,
                                    float *x_pixel_percent2, int xstep) {
  int i;
  float sum_both;
  float mulstep = 1.0 / xstep;
  for (i = 0; i < xstep; i++) {
    x_pixel_percent1[i] = 1 - (mulstep * i);
    x_pixel_percent2[i] = mulstep * i;
  }
  for (i = 0; i < xstep; i++) {
    sum_both = x_pixel_percent1[i] + x_pixel_percent2[i];
    x_pixel_percent1[i] = x_pixel_percent1[i] / sum_both;
    x_pixel_percent2[i] = x_pixel_percent2[i] / sum_both;
    x_pixel_percent1[i] = x_pixel_percent1[i] * 0.999999999;
    x_pixel_percent2[i] = x_pixel_percent2[i] * 0.999999999;
  }
}


x86 assembly (clang, -O0):
<build_upsample_pixelprop_table>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
cvtsi2sdl -0x14(%rbp),%xmm1
movsd  0xee4(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1199 <build_upsample_pixelprop_table+0x99>
movss  -0x20(%rbp),%xmm0
cvtsi2ssl -0x18(%rbp),%xmm1
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm1,%xmm0
movss  0xeb1(%rip),%xmm1
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  -0x20(%rbp),%xmm0
cvtsi2ssl -0x18(%rbp),%xmm1
mulss  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1130 <build_upsample_pixelprop_table+0x30>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1273 <build_upsample_pixelprop_table+0x173>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
addss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
divss  -0x1c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
divss  -0x1c(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xde6(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdb8(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11a0 <build_upsample_pixelprop_table+0xa0>
pop    %rbp
ret

x86 assembly (clang, -O2):
<build_upsample_pixelprop_table>:
test   %edx,%edx
jle    131a <build_upsample_pixelprop_table+0x21a>
cvtsi2sd %edx,%xmm0
movsd  0xeec(%rip),%xmm1
divsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm11
movaps 0xeec(%rip),%xmm0
xorps  %xmm11,%xmm0
mov    %edx,%r9d
cmp    $0x8,%edx
jb     114a <build_upsample_pixelprop_table+0x4a>
lea    (%rsi,%r9,4),%rax
cmp    %rdi,%rax
jbe    11f5 <build_upsample_pixelprop_table+0xf5>
lea    (%rdi,%r9,4),%rax
cmp    %rsi,%rax
jbe    11f5 <build_upsample_pixelprop_table+0xf5>
xor    %ecx,%ecx
mov    %rcx,%rax
not    %rax
test   $0x1,%r9b
je     1181 <build_upsample_pixelprop_table+0x81>
xorps  %xmm1,%xmm1
cvtsi2ss %ecx,%xmm1
movaps %xmm0,%xmm2
mulss  %xmm1,%xmm2
addss  0xf02(%rip),%xmm2
movss  %xmm2,(%rdi,%rcx,4)
mulss  %xmm11,%xmm1
movss  %xmm1,(%rsi,%rcx,4)
or     $0x1,%rcx
add    %r9,%rax
je     1292 <build_upsample_pixelprop_table+0x192>
movss  0xede(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
xorps  %xmm1,%xmm1
cvtsi2ss %ecx,%xmm1
movaps %xmm0,%xmm3
mulss  %xmm1,%xmm3
addss  %xmm2,%xmm3
movss  %xmm3,(%rdi,%rcx,4)
mulss  %xmm11,%xmm1
lea    0x1(%rcx),%eax
xorps  %xmm3,%xmm3
cvtsi2ss %eax,%xmm3
movss  %xmm1,(%rsi,%rcx,4)
movaps %xmm0,%xmm1
mulss  %xmm3,%xmm1
addss  %xmm2,%xmm1
movss  %xmm1,0x4(%rdi,%rcx,4)
mulss  %xmm11,%xmm3
movss  %xmm3,0x4(%rsi,%rcx,4)
add    $0x2,%rcx
cmp    %r9,%rcx
jne    11a0 <build_upsample_pixelprop_table+0xa0>
jmp    1292 <build_upsample_pixelprop_table+0x192>
mov    %r9d,%ecx
and    $0xfffffff8,%ecx
movaps %xmm0,%xmm6
shufps $0x0,%xmm0,%xmm6
movaps %xmm11,%xmm3
shufps $0x0,%xmm11,%xmm3
lea    0x0(,%r9,4),%r8
and    $0xffffffffffffffe0,%r8
movdqa 0xe01(%rip),%xmm5
xor    %eax,%eax
movdqa 0xe06(%rip),%xmm8
movaps 0xe0e(%rip),%xmm10
movdqa 0xe15(%rip),%xmm9
nopl   0x0(%rax,%rax,1)
movdqa %xmm5,%xmm4
paddd  %xmm8,%xmm4
cvtdq2ps %xmm5,%xmm7
cvtdq2ps %xmm4,%xmm4
movaps %xmm6,%xmm2
mulps  %xmm7,%xmm2
addps  %xmm10,%xmm2
movaps %xmm6,%xmm1
mulps  %xmm4,%xmm1
addps  %xmm10,%xmm1
movups %xmm2,(%rdi,%rax,1)
movups %xmm1,0x10(%rdi,%rax,1)
mulps  %xmm3,%xmm7
mulps  %xmm3,%xmm4
movups %xmm7,(%rsi,%rax,1)
movups %xmm4,0x10(%rsi,%rax,1)
paddd  %xmm9,%xmm5
add    $0x20,%rax
cmp    %rax,%r8
jne    1240 <build_upsample_pixelprop_table+0x140>
cmp    %r9,%rcx
jne    114c <build_upsample_pixelprop_table+0x4c>
test   %edx,%edx
jle    131a <build_upsample_pixelprop_table+0x21a>
cmp    $0x4,%edx
jb     12b1 <build_upsample_pixelprop_table+0x1b1>
lea    (%rsi,%r9,4),%rax
cmp    %rdi,%rax
jbe    131b <build_upsample_pixelprop_table+0x21b>
lea    (%rdi,%r9,4),%rax
cmp    %rsi,%rax
jbe    131b <build_upsample_pixelprop_table+0x21b>
xor    %ecx,%ecx
movsd  0xd4d(%rip),%xmm0
nopl   0x0(%rax,%rax,1)
movss  (%rdi,%rcx,4),%xmm1
movss  (%rsi,%rcx,4),%xmm2
addss  %xmm1,%xmm2
divss  %xmm2,%xmm1
movss  %xmm1,(%rdi,%rcx,4)
movss  (%rsi,%rcx,4),%xmm1
divss  %xmm2,%xmm1
movss  %xmm1,(%rsi,%rcx,4)
movss  (%rdi,%rcx,4),%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm1
movss  %xmm1,(%rdi,%rcx,4)
movss  (%rsi,%rcx,4),%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  %xmm0,%xmm1
cvtsd2ss %xmm1,%xmm1
movss  %xmm1,(%rsi,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    12c0 <build_upsample_pixelprop_table+0x1c0>
ret
mov    %r9d,%ecx
and    $0xfffffffc,%ecx
lea    0x0(,%r9,4),%r8
and    $0xfffffffffffffff0,%r8
xor    %edx,%edx
movapd 0xd29(%rip),%xmm0
nopw   0x0(%rax,%rax,1)
movups (%rdi,%rdx,1),%xmm1
movups (%rsi,%rdx,1),%xmm2
movaps %xmm1,%xmm3
addps  %xmm2,%xmm3
divps  %xmm3,%xmm1
movups %xmm1,(%rdi,%rdx,1)
divps  %xmm3,%xmm2
movups %xmm2,(%rsi,%rdx,1)
cvtps2pd %xmm1,%xmm2
movhlps %xmm1,%xmm1
cvtps2pd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
mulpd  %xmm0,%xmm2
cvtpd2ps %xmm2,%xmm2
cvtpd2ps %xmm1,%xmm1
unpcklpd %xmm1,%xmm2
movupd %xmm2,(%rdi,%rdx,1)
cvtps2pd 0x8(%rsi,%rdx,1),%xmm1
cvtps2pd (%rsi,%rdx,1),%xmm2
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm1
cvtpd2ps %xmm1,%xmm1
cvtpd2ps %xmm2,%xmm2
unpcklpd %xmm1,%xmm2
movupd %xmm2,(%rsi,%rdx,1)
add    $0x10,%rdx
cmp    %rdx,%r8
jne    1340 <build_upsample_pixelprop_table+0x240>
cmp    %r9,%rcx
je     131a <build_upsample_pixelprop_table+0x21a>
jmp    12b3 <build_upsample_pixelprop_table+0x1b3>

LLVM IR (-O0):
define void @build_upsample_pixelprop_table(float* %0, float* %1, i32 %2) {
%4 = alloca float*
%5 = alloca float*
%6 = alloca i32
%7 = alloca i32
%8 = alloca float
%9 = alloca float
store float* %0, float** %4
store float* %1, float** %5
store i32 %2, i32* %6
%10 = load i32, i32* %6
%11 = sitofp i32 %10 to double
%12 = fdiv double 1.000000e+00, %11
%13 = fptrunc double %12 to float
store float %13, float* %9
store i32 0, i32* %7
br label %14
14: ; preds = %36, %3
%15 = load i32, i32* %7
%16 = load i32, i32* %6
%17 = icmp slt i32 %15, %16
br i1 %17, label %18, label %39
18: ; preds = %14
%19 = load float, float* %9
%20 = load i32, i32* %7
%21 = sitofp i32 %20 to float
%22 = fneg float %19
%23 = call float @llvm.fmuladd.f32(float %22, float %21, float 1.000000e+00)
%24 = load float*, float** %4
%25 = load i32, i32* %7
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds float, float* %24, i64 %26
store float %23, float* %27
%28 = load float, float* %9
%29 = load i32, i32* %7
%30 = sitofp i32 %29 to float
%31 = fmul float %28, %30
%32 = load float*, float** %5
%33 = load i32, i32* %7
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds float, float* %32, i64 %34
store float %31, float* %35
br label %36
36: ; preds = %18
%37 = load i32, i32* %7
%38 = add nsw i32 %37, 1
store i32 %38, i32* %7
br label %14
39: ; preds = %14
store i32 0, i32* %7
br label %40
40: ; preds = %102, %39
%41 = load i32, i32* %7
%42 = load i32, i32* %6
%43 = icmp slt i32 %41, %42
br i1 %43, label %44, label %105
44: ; preds = %40
%45 = load float*, float** %4
%46 = load i32, i32* %7
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds float, float* %45, i64 %47
%49 = load float, float* %48
%50 = load float*, float** %5
%51 = load i32, i32* %7
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds float, float* %50, i64 %52
%54 = load float, float* %53
%55 = fadd float %49, %54
store float %55, float* %8
%56 = load float*, float** %4
%57 = load i32, i32* %7
%58 = sext i32 %57 to i64
%59 = getelementptr inbounds float, float* %56, i64 %58
%60 = load float, float* %59
%61 = load float, float* %8
%62 = fdiv float %60, %61
%63 = load float*, float** %4
%64 = load i32, i32* %7
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds float, float* %63, i64 %65
store float %62, float* %66
%67 = load float*, float** %5
%68 = load i32, i32* %7
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds float, float* %67, i64 %69
%71 = load float, float* %70
%72 = load float, float* %8
%73 = fdiv float %71, %72
%74 = load float*, float** %5
%75 = load i32, i32* %7
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds float, float* %74, i64 %76
store float %73, float* %77
%78 = load float*, float** %4
%79 = load i32, i32* %7
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds float, float* %78, i64 %80
%82 = load float, float* %81
%83 = fpext float %82 to double
%84 = fmul double %83, 0x3FEFFFFFFF768FA1
%85 = fptrunc double %84 to float
%86 = load float*, float** %4
%87 = load i32, i32* %7
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds float, float* %86, i64 %88
store float %85, float* %89
%90 = load float*, float** %5
%91 = load i32, i32* %7
%92 = sext i32 %91 to i64
%93 = getelementptr inbounds float, float* %90, i64 %92
%94 = load float, float* %93
%95 = fpext float %94 to double
%96 = fmul double %95, 0x3FEFFFFFFF768FA1
%97 = fptrunc double %96 to float
%98 = load float*, float** %5
%99 = load i32, i32* %7
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds float, float* %98, i64 %100
store float %97, float* %101
br label %102
102: ; preds = %44
%103 = load i32, i32* %7
%104 = add nsw i32 %103, 1
store i32 %104, i32* %7
br label %40
105: ; preds = %40
ret void
}

LLVM IR (-O2):
define void @build_upsample_pixelprop_table(float* nocapture %0, float* nocapture %1, i32 %2) {
%4 = sitofp i32 %2 to double
%5 = fdiv double 1.000000e+00, %4
%6 = fptrunc double %5 to float
%7 = icmp sgt i32 %2, 0
br i1 %7, label %8, label %146
8: ; preds = %3
%9 = fneg float %6
%10 = zext i32 %2 to i64
%11 = icmp ult i32 %2, 8
br i1 %11, label %51, label %12
12: ; preds = %8
%13 = getelementptr float, float* %0, i64 %10
%14 = getelementptr float, float* %1, i64 %10
%15 = icmp ugt float* %14, %0
%16 = icmp ugt float* %13, %1
%17 = and i1 %15, %16
br i1 %17, label %51, label %18
18: ; preds = %12
%19 = and i64 %10, 4294967288
%20 = insertelement <4 x float> poison, float %9, i64 0
%21 = shufflevector <4 x float> %20, <4 x float> poison, <4 x i32> zeroinitializer
%22 = insertelement <4 x float> poison, float %9, i64 0
%23 = shufflevector <4 x float> %22, <4 x float> poison, <4 x i32> zeroinitializer
%24 = insertelement <4 x float> poison, float %6, i64 0
%25 = shufflevector <4 x float> %24, <4 x float> poison, <4 x i32> zeroinitializer
%26 = insertelement <4 x float> poison, float %6, i64 0
%27 = shufflevector <4 x float> %26, <4 x float> poison, <4 x i32> zeroinitializer
br label %28
28: ; preds = %28, %18
%29 = phi i64 [ 0, %18 ], [ %46, %28 ]
%30 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %18 ], [ %47, %28 ]
%31 = add <4 x i32> %30, <i32 4, i32 4, i32 4, i32 4>
%32 = sitofp <4 x i32> %30 to <4 x float>
%33 = sitofp <4 x i32> %31 to <4 x float>
%34 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %21, <4 x float> %32, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>)
%35 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %23, <4 x float> %33, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>)
%36 = getelementptr inbounds float, float* %0, i64 %29
%37 = bitcast float* %36 to <4 x float>*
store <4 x float> %34, <4 x float>* %37
%38 = getelementptr inbounds float, float* %36, i64 4
%39 = bitcast float* %38 to <4 x float>*
store <4 x float> %35, <4 x float>* %39
%40 = fmul <4 x float> %25, %32
%41 = fmul <4 x float> %27, %33
%42 = getelementptr inbounds float, float* %1, i64 %29
%43 = bitcast float* %42 to <4 x float>*
store <4 x float> %40, <4 x float>* %43
%44 = getelementptr inbounds float, float* %42, i64 4
%45 = bitcast float* %44 to <4 x float>*
store <4 x float> %41, <4 x float>* %45
%46 = add nuw i64 %29, 8
%47 = add <4 x i32> %30, <i32 8, i32 8, i32 8, i32 8>
%48 = icmp eq i64 %46, %19
br i1 %48, label %49, label %28
49: ; preds = %28
%50 = icmp eq i64 %19, %10
br i1 %50, label %68, label %51
51: ; preds = %12, %8, %49
%52 = phi i64 [ 0, %12 ], [ 0, %8 ], [ %19, %49 ]
%53 = xor i64 %52, -1
%54 = and i64 %10, 1
%55 = icmp eq i64 %54, 0
br i1 %55, label %64, label %56
56: ; preds = %51
%57 = trunc i64 %52 to i32
%58 = sitofp i32 %57 to float
%59 = tail call float @llvm.fmuladd.f32(float %9, float %58, float 1.000000e+00)
%60 = getelementptr inbounds float, float* %0, i64 %52
store float %59, float* %60
%61 = fmul float %6, %58
%62 = getelementptr inbounds float, float* %1, i64 %52
store float %61, float* %62
%63 = or i64 %52, 1
br label %64
64: ; preds = %56, %51
%65 = phi i64 [ %52, %51 ], [ %63, %56 ]
%66 = sub nsw i64 0, %10
%67 = icmp eq i64 %53, %66
br i1 %67, label %68, label %109
68: ; preds = %64, %109, %49
br i1 %7, label %69, label %146
69: ; preds = %68
%70 = zext i32 %2 to i64
%71 = icmp ult i32 %2, 4
br i1 %71, label %107, label %72
72: ; preds = %69
%73 = getelementptr float, float* %0, i64 %10
%74 = getelementptr float, float* %1, i64 %10
%75 = icmp ugt float* %74, %0
%76 = icmp ugt float* %73, %1
%77 = and i1 %75, %76
br i1 %77, label %107, label %78
78: ; preds = %72
%79 = and i64 %10, 4294967292
br label %80
80: ; preds = %80, %78
%81 = phi i64 [ 0, %78 ], [ %103, %80 ]
%82 = getelementptr inbounds float, float* %0, i64 %81
%83 = bitcast float* %82 to <4 x float>*
%84 = load <4 x float>, <4 x float>* %83
%85 = getelementptr inbounds float, float* %1, i64 %81
%86 = bitcast float* %85 to <4 x float>*
%87 = load <4 x float>, <4 x float>* %86
%88 = fadd <4 x float> %84, %87
%89 = fdiv <4 x float> %84, %88
%90 = bitcast float* %82 to <4 x float>*
store <4 x float> %89, <4 x float>* %90
%91 = fdiv <4 x float> %87, %88
%92 = bitcast float* %85 to <4 x float>*
store <4 x float> %91, <4 x float>* %92
%93 = fpext <4 x float> %89 to <4 x double>
%94 = fmul <4 x double> %93, <double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1>
%95 = fptrunc <4 x double> %94 to <4 x float>
%96 = bitcast float* %82 to <4 x float>*
store <4 x float> %95, <4 x float>* %96
%97 = bitcast float* %85 to <4 x float>*
%98 = load <4 x float>, <4 x float>* %97
%99 = fpext <4 x float> %98 to <4 x double>
%100 = fmul <4 x double> %99, <double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1, double 0x3FEFFFFFFF768FA1>
%101 = fptrunc <4 x double> %100 to <4 x float>
%102 = bitcast float* %85 to <4 x float>*
store <4 x float> %101, <4 x float>* %102
%103 = add nuw i64 %81, 4
%104 = icmp eq i64 %103, %79
br i1 %104, label %105, label %80
105: ; preds = %80
%106 = icmp eq i64 %79, %10
br i1 %106, label %146, label %107
107: ; preds = %72, %69, %105
%108 = phi i64 [ 0, %72 ], [ 0, %69 ], [ %79, %105 ]
br label %126
109: ; preds = %64, %109
%110 = phi i64 [ %124, %109 ], [ %65, %64 ]
%111 = trunc i64 %110 to i32
%112 = sitofp i32 %111 to float
%113 = tail call float @llvm.fmuladd.f32(float %9, float %112, float 1.000000e+00)
%114 = getelementptr inbounds float, float* %0, i64 %110
store float %113, float* %114
%115 = fmul float %6, %112
%116 = getelementptr inbounds float, float* %1, i64 %110
store float %115, float* %116
%117 = add nuw nsw i64 %110, 1
%118 = trunc i64 %117 to i32
%119 = sitofp i32 %118 to float
%120 = tail call float @llvm.fmuladd.f32(float %9, float %119, float 1.000000e+00)
%121 = getelementptr inbounds float, float* %0, i64 %117
store float %120, float* %121
%122 = fmul float %6, %119
%123 = getelementptr inbounds float, float* %1, i64 %117
store float %122, float* %123
%124 = add nuw nsw i64 %110, 2
%125 = icmp eq i64 %124, %10
br i1 %125, label %68, label %109
126: ; preds = %107, %126
%127 = phi i64 [ %144, %126 ], [ %108, %107 ]
%128 = getelementptr inbounds float, float* %0, i64 %127
%129 = load float, float* %128
%130 = getelementptr inbounds float, float* %1, i64 %127
%131 = load float, float* %130
%132 = fadd float %129, %131
%133 = fdiv float %129, %132
store float %133, float* %128
%134 = load float, float* %130
%135 = fdiv float %134, %132
store float %135, float* %130
%136 = load float, float* %128
%137 = fpext float %136 to double
%138 = fmul double %137, 0x3FEFFFFFFF768FA1
%139 = fptrunc double %138 to float
store float %139, float* %128
%140 = load float, float* %130
%141 = fpext float %140 to double
%142 = fmul double %141, 0x3FEFFFFFFF768FA1
%143 = fptrunc double %142 to float
store float %143, float* %130
%144 = add nuw nsw i64 %127, 1
%145 = icmp eq i64 %144, %70
br i1 %145, label %146, label %126
146: ; preds = %126, %105, %3, %68
ret void
}