int basisFuncs3(float basis[], float xi, const float U[], int i) {
  int order = 3;
  int iplus = i + 1;
  int pminus;
  int ipluspminusk;
  float Uiplus = U[iplus];
  float Ui = U[i];
  float Den = Uiplus - U[i];
  basis[0] = (xi - Ui) / Den;
  basis[1] = (Uiplus - xi) / Den;
  basis[2] = 0;
  basis[3] = 0;
  Den = Uiplus - U[i - 1];
  basis[2] = (Uiplus - xi) * basis[1] / Den;
  int k = 1;
  basis[1] = (xi - U[i - 1]) * basis[1] / Den;
  ipluspminusk = iplus + 2 - 1;
  Den = U[ipluspminusk] - U[iplus - 1];
  basis[1] += (U[ipluspminusk] - xi) * basis[0] / Den;
  basis[0] = (xi - Ui) * basis[0] / Den;
  Den = Uiplus - U[i - 2];
  basis[3] = (Uiplus - xi) * basis[2] / Den;
  basis[2] = (xi - U[i - 2]) * basis[2] / Den;
  ipluspminusk = iplus + 1;
  Den = U[ipluspminusk] - U[iplus - 2];
  basis[2] += (U[ipluspminusk] - xi) * basis[1] / Den;
  basis[1] = (xi - U[i - 1]) * basis[1] / Den;
  ipluspminusk = iplus + 2;
  Den = U[ipluspminusk] - U[iplus - 1];
  basis[1] += (U[ipluspminusk] - xi) * basis[0] / Den;
  basis[0] = (xi - Ui) * basis[0] / Den;
  return 0;
}


x86 assembly (clang, -O0):
<basisFuncs3>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movss  %xmm0,-0xc(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %edx,-0x1c(%rbp)
movl   $0x3,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0xc(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x30(%rbp),%xmm0
subss  -0xc(%rbp),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x4(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movss  %xmm0,0x8(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movss  %xmm0,0xc(%rax)
movss  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x30(%rbp),%xmm0
subss  -0xc(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x4(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x8(%rax)
movl   $0x1,-0x3c(%rbp)
movss  -0xc(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x4(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x4(%rax)
mov    -0x24(%rbp),%eax
add    $0x2,%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
subss  -0xc(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  (%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
addss  0x4(%rax),%xmm0
movss  %xmm0,0x4(%rax)
movss  -0xc(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  (%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x30(%rbp),%xmm0
subss  -0xc(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x8(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0xc(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x8(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x8(%rax)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
subss  -0xc(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x4(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
addss  0x8(%rax),%xmm0
movss  %xmm0,0x8(%rax)
movss  -0xc(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x8(%rbp),%rax
mulss  0x4(%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x4(%rax)
mov    -0x24(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x24(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
subss  -0xc(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  (%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
addss  0x4(%rax),%xmm0
movss  %xmm0,0x4(%rax)
movss  -0xc(%rbp),%xmm0
subss  -0x34(%rbp),%xmm0
mov    -0x8(%rbp),%rax
mulss  (%rax),%xmm0
divss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,(%rax)
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<basisFuncs3>:
movslq %edx,%rax
movss  (%rsi,%rax,4),%xmm1
movss  0x4(%rsi,%rax,4),%xmm3
movaps %xmm3,%xmm4
subss  %xmm1,%xmm4
movaps %xmm0,%xmm8
subss  %xmm1,%xmm8
movaps %xmm8,%xmm1
divss  %xmm4,%xmm1
movss  %xmm1,(%rdi)
movaps %xmm3,%xmm5
subss  %xmm0,%xmm5
movaps %xmm5,%xmm7
divss  %xmm4,%xmm7
movss  %xmm7,0x4(%rdi)
movq   $0x0,0x8(%rdi)
movaps %xmm3,%xmm4
subss  -0x4(%rsi,%rax,4),%xmm4
movaps %xmm5,%xmm6
mulss  %xmm7,%xmm6
divss  %xmm4,%xmm6
movss  %xmm6,0x8(%rdi)
movaps %xmm0,%xmm2
subss  -0x4(%rsi,%rax,4),%xmm2
mulss  %xmm7,%xmm2
divss  %xmm4,%xmm2
movss  %xmm2,0x4(%rdi)
movss  0x8(%rsi,%rax,4),%xmm4
movaps %xmm4,%xmm7
subss  (%rsi,%rax,4),%xmm7
subss  %xmm0,%xmm4
mulss  %xmm1,%xmm4
divss  %xmm7,%xmm4
addss  %xmm2,%xmm4
movss  %xmm4,0x4(%rdi)
mulss  %xmm8,%xmm1
divss  %xmm7,%xmm1
movss  %xmm1,(%rdi)
subss  -0x8(%rsi,%rax,4),%xmm3
mulss  %xmm6,%xmm5
divss  %xmm3,%xmm5
movss  %xmm5,0xc(%rdi)
movaps %xmm0,%xmm2
subss  -0x8(%rsi,%rax,4),%xmm2
mulss  %xmm6,%xmm2
divss  %xmm3,%xmm2
movss  %xmm2,0x8(%rdi)
movss  0x8(%rsi,%rax,4),%xmm3
movaps %xmm3,%xmm5
subss  -0x4(%rsi,%rax,4),%xmm5
subss  %xmm0,%xmm3
mulss  %xmm4,%xmm3
divss  %xmm5,%xmm3
addss  %xmm2,%xmm3
movss  %xmm3,0x8(%rdi)
movaps %xmm0,%xmm2
subss  -0x4(%rsi,%rax,4),%xmm2
mulss  %xmm4,%xmm2
divss  %xmm5,%xmm2
movss  %xmm2,0x4(%rdi)
movss  0xc(%rsi,%rax,4),%xmm3
movaps %xmm3,%xmm4
subss  (%rsi,%rax,4),%xmm4
subss  %xmm0,%xmm3
mulss  %xmm1,%xmm3
divss  %xmm4,%xmm3
addss  %xmm2,%xmm3
movss  %xmm3,0x4(%rdi)
mulss  %xmm8,%xmm1
divss  %xmm4,%xmm1
movss  %xmm1,(%rdi)
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @basisFuncs3(float* %0, float %1, float* %2, i32 %3) {
%5 = alloca float*
%6 = alloca float
%7 = alloca float*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca float
%14 = alloca float
%15 = alloca float
%16 = alloca i32
store float* %0, float** %5
store float %1, float* %6
store float* %2, float** %7
store i32 %3, i32* %8
store i32 3, i32* %9
%17 = load i32, i32* %8
%18 = add nsw i32 %17, 1
store i32 %18, i32* %10
%19 = load float*, float** %7
%20 = load i32, i32* %10
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds float, float* %19, i64 %21
%23 = load float, float* %22
store float %23, float* %13
%24 = load float*, float** %7
%25 = load i32, i32* %8
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds float, float* %24, i64 %26
%28 = load float, float* %27
store float %28, float* %14
%29 = load float, float* %13
%30 = load float*, float** %7
%31 = load i32, i32* %8
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds float, float* %30, i64 %32
%34 = load float, float* %33
%35 = fsub float %29, %34
store float %35, float* %15
%36 = load float, float* %6
%37 = load float, float* %14
%38 = fsub float %36, %37
%39 = load float, float* %15
%40 = fdiv float %38, %39
%41 = load float*, float** %5
%42 = getelementptr inbounds float, float* %41, i64 0
store float %40, float* %42
%43 = load float, float* %13
%44 = load float, float* %6
%45 = fsub float %43, %44
%46 = load float, float* %15
%47 = fdiv float %45, %46
%48 = load float*, float** %5
%49 = getelementptr inbounds float, float* %48, i64 1
store float %47, float* %49
%50 = load float*, float** %5
%51 = getelementptr inbounds float, float* %50, i64 2
store float 0.000000e+00, float* %51
%52 = load float*, float** %5
%53 = getelementptr inbounds float, float* %52, i64 3
store float 0.000000e+00, float* %53
%54 = load float, float* %13
%55 = load float*, float** %7
%56 = load i32, i32* %8
%57 = sub nsw i32 %56, 1
%58 = sext i32 %57 to i64
%59 = getelementptr inbounds float, float* %55, i64 %58
%60 = load float, float* %59
%61 = fsub float %54, %60
store float %61, float* %15
%62 = load float, float* %13
%63 = load float, float* %6
%64 = fsub float %62, %63
%65 = load float*, float** %5
%66 = getelementptr inbounds float, float* %65, i64 1
%67 = load float, float* %66
%68 = fmul float %64, %67
%69 = load float, float* %15
%70 = fdiv float %68, %69
%71 = load float*, float** %5
%72 = getelementptr inbounds float, float* %71, i64 2
store float %70, float* %72
store i32 1, i32* %16
%73 = load float, float* %6
%74 = load float*, float** %7
%75 = load i32, i32* %8
%76 = sub nsw i32 %75, 1
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds float, float* %74, i64 %77
%79 = load float, float* %78
%80 = fsub float %73, %79
%81 = load float*, float** %5
%82 = getelementptr inbounds float, float* %81, i64 1
%83 = load float, float* %82
%84 = fmul float %80, %83
%85 = load float, float* %15
%86 = fdiv float %84, %85
%87 = load float*, float** %5
%88 = getelementptr inbounds float, float* %87, i64 1
store float %86, float* %88
%89 = load i32, i32* %10
%90 = add nsw i32 %89, 2
%91 = sub nsw i32 %90, 1
store i32 %91, i32* %12
%92 = load float*, float** %7
%93 = load i32, i32* %12
%94 = sext i32 %93 to i64
%95 = getelementptr inbounds float, float* %92, i64 %94
%96 = load float, float* %95
%97 = load float*, float** %7
%98 = load i32, i32* %10
%99 = sub nsw i32 %98, 1
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds float, float* %97, i64 %100
%102 = load float, float* %101
%103 = fsub float %96, %102
store float %103, float* %15
%104 = load float*, float** %7
%105 = load i32, i32* %12
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds float, float* %104, i64 %106
%108 = load float, float* %107
%109 = load float, float* %6
%110 = fsub float %108, %109
%111 = load float*, float** %5
%112 = getelementptr inbounds float, float* %111, i64 0
%113 = load float, float* %112
%114 = fmul float %110, %113
%115 = load float, float* %15
%116 = fdiv float %114, %115
%117 = load float*, float** %5
%118 = getelementptr inbounds float, float* %117, i64 1
%119 = load float, float* %118
%120 = fadd float %119, %116
store float %120, float* %118
%121 = load float, float* %6
%122 = load float, float* %14
%123 = fsub float %121, %122
%124 = load float*, float** %5
%125 = getelementptr inbounds float, float* %124, i64 0
%126 = load float, float* %125
%127 = fmul float %123, %126
%128 = load float, float* %15
%129 = fdiv float %127, %128
%130 = load float*, float** %5
%131 = getelementptr inbounds float, float* %130, i64 0
store float %129, float* %131
%132 = load float, float* %13
%133 = load float*, float** %7
%134 = load i32, i32* %8
%135 = sub nsw i32 %134, 2
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds float, float* %133, i64 %136
%138 = load float, float* %137
%139 = fsub float %132, %138
store float %139, float* %15
%140 = load float, float* %13
%141 = load float, float* %6
%142 = fsub float %140, %141
%143 = load float*, float** %5
%144 = getelementptr inbounds float, float* %143, i64 2
%145 = load float, float* %144
%146 = fmul float %142, %145
%147 = load float, float* %15
%148 = fdiv float %146, %147
%149 = load float*, float** %5
%150 = getelementptr inbounds float, float* %149, i64 3
store float %148, float* %150
%151 = load float, float* %6
%152 = load float*, float** %7
%153 = load i32, i32* %8
%154 = sub nsw i32 %153, 2
%155 = sext i32 %154 to i64
%156 = getelementptr inbounds float, float* %152, i64 %155
%157 = load float, float* %156
%158 = fsub float %151, %157
%159 = load float*, float** %5
%160 = getelementptr inbounds float, float* %159, i64 2
%161 = load float, float* %160
%162 = fmul float %158, %161
%163 = load float, float* %15
%164 = fdiv float %162, %163
%165 = load float*, float** %5
%166 = getelementptr inbounds float, float* %165, i64 2
store float %164, float* %166
%167 = load i32, i32* %10
%168 = add nsw i32 %167, 1
store i32 %168, i32* %12
%169 = load float*, float** %7
%170 = load i32, i32* %12
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds float, float* %169, i64 %171
%173 = load float, float* %172
%174 = load float*, float** %7
%175 = load i32, i32* %10
%176 = sub nsw i32 %175, 2
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds float, float* %174, i64 %177
%179 = load float, float* %178
%180 = fsub float %173, %179
store float %180, float* %15
%181 = load float*, float** %7
%182 = load i32, i32* %12
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds float, float* %181, i64 %183
%185 = load float, float* %184
%186 = load float, float* %6
%187 = fsub float %185, %186
%188 = load float*, float** %5
%189 = getelementptr inbounds float, float* %188, i64 1
%190 = load float, float* %189
%191 = fmul float %187, %190
%192 = load float, float* %15
%193 = fdiv float %191, %192
%194 = load float*, float** %5
%195 = getelementptr inbounds float, float* %194, i64 2
%196 = load float, float* %195
%197 = fadd float %196, %193
store float %197, float* %195
%198 = load float, float* %6
%199 = load float*, float** %7
%200 = load i32, i32* %8
%201 = sub nsw i32 %200, 1
%202 = sext i32 %201 to i64
%203 = getelementptr inbounds float, float* %199, i64 %202
%204 = load float, float* %203
%205 = fsub float %198, %204
%206 = load float*, float** %5
%207 = getelementptr inbounds float, float* %206, i64 1
%208 = load float, float* %207
%209 = fmul float %205, %208
%210 = load float, float* %15
%211 = fdiv float %209, %210
%212 = load float*, float** %5
%213 = getelementptr inbounds float, float* %212, i64 1
store float %211, float* %213
%214 = load i32, i32* %10
%215 = add nsw i32 %214, 2
store i32 %215, i32* %12
%216 = load float*, float** %7
%217 = load i32, i32* %12
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds float, float* %216, i64 %218
%220 = load float, float* %219
%221 = load float*, float** %7
%222 = load i32, i32* %10
%223 = sub nsw i32 %222, 1
%224 = sext i32 %223 to i64
%225 = getelementptr inbounds float, float* %221, i64 %224
%226 = load float, float* %225
%227 = fsub float %220, %226
store float %227, float* %15
%228 = load float*, float** %7
%229 = load i32, i32* %12
%230 = sext i32 %229 to i64
%231 = getelementptr inbounds float, float* %228, i64 %230
%232 = load float, float* %231
%233 = load float, float* %6
%234 = fsub float %232, %233
%235 = load float*, float** %5
%236 = getelementptr inbounds float, float* %235, i64 0
%237 = load float, float* %236
%238 = fmul float %234, %237
%239 = load float, float* %15
%240 = fdiv float %238, %239
%241 = load float*, float** %5
%242 = getelementptr inbounds float, float* %241, i64 1
%243 = load float, float* %242
%244 = fadd float %243, %240
store float %244, float* %242
%245 = load float, float* %6
%246 = load float, float* %14
%247 = fsub float %245, %246
%248 = load float*, float** %5
%249 = getelementptr inbounds float, float* %248, i64 0
%250 = load float, float* %249
%251 = fmul float %247, %250
%252 = load float, float* %15
%253 = fdiv float %251, %252
%254 = load float*, float** %5
%255 = getelementptr inbounds float, float* %254, i64 0
store float %253, float* %255
ret i32 0
}

LLVM IR (-O2):
define i32 @basisFuncs3(float* nocapture %0, float %1, float* nocapture %2, i32 %3) {
%5 = add nsw i32 %3, 1
%6 = sext i32 %5 to i64
%7 = getelementptr inbounds float, float* %2, i64 %6
%8 = load float, float* %7
%9 = sext i32 %3 to i64
%10 = getelementptr inbounds float, float* %2, i64 %9
%11 = load float, float* %10
%12 = fsub float %8, %11
%13 = fsub float %1, %11
%14 = fdiv float %13, %12
store float %14, float* %0
%15 = fsub float %8, %1
%16 = fdiv float %15, %12
%17 = getelementptr inbounds float, float* %0, i64 1
store float %16, float* %17
%18 = getelementptr inbounds float, float* %0, i64 2
store float 0.000000e+00, float* %18
%19 = getelementptr inbounds float, float* %0, i64 3
store float 0.000000e+00, float* %19
%20 = add nsw i32 %3, -1
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds float, float* %2, i64 %21
%23 = load float, float* %22
%24 = fsub float %8, %23
%25 = fmul float %15, %16
%26 = fdiv float %25, %24
store float %26, float* %18
%27 = load float, float* %22
%28 = fsub float %1, %27
%29 = fmul float %16, %28
%30 = fdiv float %29, %24
store float %30, float* %17
%31 = add nsw i32 %3, 3
%32 = add nsw i32 %3, 2
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds float, float* %2, i64 %33
%35 = load float, float* %34
%36 = load float, float* %10
%37 = fsub float %35, %36
%38 = fsub float %35, %1
%39 = fmul float %14, %38
%40 = fdiv float %39, %37
%41 = fadd float %30, %40
store float %41, float* %17
%42 = fmul float %13, %14
%43 = fdiv float %42, %37
store float %43, float* %0
%44 = add nsw i32 %3, -2
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds float, float* %2, i64 %45
%47 = load float, float* %46
%48 = fsub float %8, %47
%49 = fmul float %15, %26
%50 = fdiv float %49, %48
store float %50, float* %19
%51 = load float, float* %46
%52 = fsub float %1, %51
%53 = fmul float %26, %52
%54 = fdiv float %53, %48
store float %54, float* %18
%55 = load float, float* %34
%56 = load float, float* %22
%57 = fsub float %55, %56
%58 = fsub float %55, %1
%59 = fmul float %41, %58
%60 = fdiv float %59, %57
%61 = fadd float %54, %60
store float %61, float* %18
%62 = load float, float* %22
%63 = fsub float %1, %62
%64 = fmul float %41, %63
%65 = fdiv float %64, %57
store float %65, float* %17
%66 = sext i32 %31 to i64
%67 = getelementptr inbounds float, float* %2, i64 %66
%68 = load float, float* %67
%69 = load float, float* %10
%70 = fsub float %68, %69
%71 = fsub float %68, %1
%72 = fmul float %43, %71
%73 = fdiv float %72, %70
%74 = fadd float %65, %73
store float %74, float* %17
%75 = fmul float %13, %43
%76 = fdiv float %75, %70
store float %76, float* %0
ret i32 0
}