; LLVM IR from berquist/rchem :: libpyquante2 (chgp)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
declare dso_local double @vrr(double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
define dso_local double @vrr_recursive(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26) #2 {
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca i32, align 4
  store double %0, ptr %29, align 8, !tbaa !5
  store double %1, ptr %30, align 8, !tbaa !5
  store double %2, ptr %31, align 8, !tbaa !5
  store double %3, ptr %32, align 8, !tbaa !5
  store i32 %4, ptr %33, align 4, !tbaa !9
  store i32 %5, ptr %34, align 4, !tbaa !9
  store i32 %6, ptr %35, align 4, !tbaa !9
  store double %7, ptr %36, align 8, !tbaa !5
  store double %8, ptr %37, align 8, !tbaa !5
  store double %9, ptr %38, align 8, !tbaa !5
  store double %10, ptr %39, align 8, !tbaa !5
  store double %11, ptr %40, align 8, !tbaa !5
  store double %12, ptr %41, align 8, !tbaa !5
  store double %13, ptr %42, align 8, !tbaa !5
  store double %14, ptr %43, align 8, !tbaa !5
  store double %15, ptr %44, align 8, !tbaa !5
  store double %16, ptr %45, align 8, !tbaa !5
  store i32 %17, ptr %46, align 4, !tbaa !9
  store i32 %18, ptr %47, align 4, !tbaa !9
  store i32 %19, ptr %48, align 4, !tbaa !9
  store double %20, ptr %49, align 8, !tbaa !5
  store double %21, ptr %50, align 8, !tbaa !5
  store double %22, ptr %51, align 8, !tbaa !5
  store double %23, ptr %52, align 8, !tbaa !5
  store double %24, ptr %53, align 8, !tbaa !5
  store double %25, ptr %54, align 8, !tbaa !5
  store i32 %26, ptr %55, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  %75 = load double, ptr %36, align 8, !tbaa !5
  %76 = load double, ptr %29, align 8, !tbaa !5
  %77 = load double, ptr %41, align 8, !tbaa !5
  %78 = load double, ptr %37, align 8, !tbaa !5
  %79 = call double @product_center_1D(double noundef %75, double noundef %76, double noundef %77, double noundef %78)
  store double %79, ptr %56, align 8, !tbaa !5
  %80 = load double, ptr %36, align 8, !tbaa !5
  %81 = load double, ptr %30, align 8, !tbaa !5
  %82 = load double, ptr %41, align 8, !tbaa !5
  %83 = load double, ptr %38, align 8, !tbaa !5
  %84 = call double @product_center_1D(double noundef %80, double noundef %81, double noundef %82, double noundef %83)
  store double %84, ptr %57, align 8, !tbaa !5
  %85 = load double, ptr %36, align 8, !tbaa !5
  %86 = load double, ptr %31, align 8, !tbaa !5
  %87 = load double, ptr %41, align 8, !tbaa !5
  %88 = load double, ptr %39, align 8, !tbaa !5
  %89 = call double @product_center_1D(double noundef %85, double noundef %86, double noundef %87, double noundef %88)
  store double %89, ptr %58, align 8, !tbaa !5
  %90 = load double, ptr %49, align 8, !tbaa !5
  %91 = load double, ptr %42, align 8, !tbaa !5
  %92 = load double, ptr %54, align 8, !tbaa !5
  %93 = load double, ptr %50, align 8, !tbaa !5
  %94 = call double @product_center_1D(double noundef %90, double noundef %91, double noundef %92, double noundef %93)
  store double %94, ptr %59, align 8, !tbaa !5
  %95 = load double, ptr %49, align 8, !tbaa !5
  %96 = load double, ptr %43, align 8, !tbaa !5
  %97 = load double, ptr %54, align 8, !tbaa !5
  %98 = load double, ptr %51, align 8, !tbaa !5
  %99 = call double @product_center_1D(double noundef %95, double noundef %96, double noundef %97, double noundef %98)
  store double %99, ptr %60, align 8, !tbaa !5
  %100 = load double, ptr %49, align 8, !tbaa !5
  %101 = load double, ptr %44, align 8, !tbaa !5
  %102 = load double, ptr %54, align 8, !tbaa !5
  %103 = load double, ptr %52, align 8, !tbaa !5
  %104 = call double @product_center_1D(double noundef %100, double noundef %101, double noundef %102, double noundef %103)
  store double %104, ptr %61, align 8, !tbaa !5
  %105 = load double, ptr %36, align 8, !tbaa !5
  %106 = load double, ptr %41, align 8, !tbaa !5
  %107 = fadd double %105, %106
  store double %107, ptr %62, align 8, !tbaa !5
  %108 = load double, ptr %49, align 8, !tbaa !5
  %109 = load double, ptr %54, align 8, !tbaa !5
  %110 = fadd double %108, %109
  store double %110, ptr %63, align 8, !tbaa !5
  %111 = load double, ptr %62, align 8, !tbaa !5
  %112 = load double, ptr %56, align 8, !tbaa !5
  %113 = load double, ptr %63, align 8, !tbaa !5
  %114 = load double, ptr %59, align 8, !tbaa !5
  %115 = call double @product_center_1D(double noundef %111, double noundef %112, double noundef %113, double noundef %114)
  store double %115, ptr %64, align 8, !tbaa !5
  %116 = load double, ptr %62, align 8, !tbaa !5
  %117 = load double, ptr %57, align 8, !tbaa !5
  %118 = load double, ptr %63, align 8, !tbaa !5
  %119 = load double, ptr %60, align 8, !tbaa !5
  %120 = call double @product_center_1D(double noundef %116, double noundef %117, double noundef %118, double noundef %119)
  store double %120, ptr %65, align 8, !tbaa !5
  %121 = load double, ptr %62, align 8, !tbaa !5
  %122 = load double, ptr %58, align 8, !tbaa !5
  %123 = load double, ptr %63, align 8, !tbaa !5
  %124 = load double, ptr %61, align 8, !tbaa !5
  %125 = call double @product_center_1D(double noundef %121, double noundef %122, double noundef %123, double noundef %124)
  store double %125, ptr %66, align 8, !tbaa !5
  %126 = load i32, ptr %48, align 4, !tbaa !9
  %127 = icmp sgt i32 %126, 0
  br i1 %127, label %128, label %319

128:                                              ; preds = %27
  %129 = load double, ptr %61, align 8, !tbaa !5
  %130 = load double, ptr %44, align 8, !tbaa !5
  %131 = fsub double %129, %130
  %132 = load double, ptr %29, align 8, !tbaa !5
  %133 = load double, ptr %30, align 8, !tbaa !5
  %134 = load double, ptr %31, align 8, !tbaa !5
  %135 = load double, ptr %32, align 8, !tbaa !5
  %136 = load i32, ptr %33, align 4, !tbaa !9
  %137 = load i32, ptr %34, align 4, !tbaa !9
  %138 = load i32, ptr %35, align 4, !tbaa !9
  %139 = load double, ptr %36, align 8, !tbaa !5
  %140 = load double, ptr %37, align 8, !tbaa !5
  %141 = load double, ptr %38, align 8, !tbaa !5
  %142 = load double, ptr %39, align 8, !tbaa !5
  %143 = load double, ptr %40, align 8, !tbaa !5
  %144 = load double, ptr %41, align 8, !tbaa !5
  %145 = load double, ptr %42, align 8, !tbaa !5
  %146 = load double, ptr %43, align 8, !tbaa !5
  %147 = load double, ptr %44, align 8, !tbaa !5
  %148 = load double, ptr %45, align 8, !tbaa !5
  %149 = load i32, ptr %46, align 4, !tbaa !9
  %150 = load i32, ptr %47, align 4, !tbaa !9
  %151 = load i32, ptr %48, align 4, !tbaa !9
  %152 = sub nsw i32 %151, 1
  %153 = load double, ptr %49, align 8, !tbaa !5
  %154 = load double, ptr %50, align 8, !tbaa !5
  %155 = load double, ptr %51, align 8, !tbaa !5
  %156 = load double, ptr %52, align 8, !tbaa !5
  %157 = load double, ptr %53, align 8, !tbaa !5
  %158 = load double, ptr %54, align 8, !tbaa !5
  %159 = load i32, ptr %55, align 4, !tbaa !9
  %160 = call double @vrr(double noundef %132, double noundef %133, double noundef %134, double noundef %135, i32 noundef %136, i32 noundef %137, i32 noundef %138, double noundef %139, double noundef %140, double noundef %141, double noundef %142, double noundef %143, double noundef %144, double noundef %145, double noundef %146, double noundef %147, double noundef %148, i32 noundef %149, i32 noundef %150, i32 noundef %152, double noundef %153, double noundef %154, double noundef %155, double noundef %156, double noundef %157, double noundef %158, i32 noundef %159)
  %161 = load double, ptr %66, align 8, !tbaa !5
  %162 = load double, ptr %61, align 8, !tbaa !5
  %163 = fsub double %161, %162
  %164 = load double, ptr %29, align 8, !tbaa !5
  %165 = load double, ptr %30, align 8, !tbaa !5
  %166 = load double, ptr %31, align 8, !tbaa !5
  %167 = load double, ptr %32, align 8, !tbaa !5
  %168 = load i32, ptr %33, align 4, !tbaa !9
  %169 = load i32, ptr %34, align 4, !tbaa !9
  %170 = load i32, ptr %35, align 4, !tbaa !9
  %171 = load double, ptr %36, align 8, !tbaa !5
  %172 = load double, ptr %37, align 8, !tbaa !5
  %173 = load double, ptr %38, align 8, !tbaa !5
  %174 = load double, ptr %39, align 8, !tbaa !5
  %175 = load double, ptr %40, align 8, !tbaa !5
  %176 = load double, ptr %41, align 8, !tbaa !5
  %177 = load double, ptr %42, align 8, !tbaa !5
  %178 = load double, ptr %43, align 8, !tbaa !5
  %179 = load double, ptr %44, align 8, !tbaa !5
  %180 = load double, ptr %45, align 8, !tbaa !5
  %181 = load i32, ptr %46, align 4, !tbaa !9
  %182 = load i32, ptr %47, align 4, !tbaa !9
  %183 = load i32, ptr %48, align 4, !tbaa !9
  %184 = sub nsw i32 %183, 1
  %185 = load double, ptr %49, align 8, !tbaa !5
  %186 = load double, ptr %50, align 8, !tbaa !5
  %187 = load double, ptr %51, align 8, !tbaa !5
  %188 = load double, ptr %52, align 8, !tbaa !5
  %189 = load double, ptr %53, align 8, !tbaa !5
  %190 = load double, ptr %54, align 8, !tbaa !5
  %191 = load i32, ptr %55, align 4, !tbaa !9
  %192 = add nsw i32 %191, 1
  %193 = call double @vrr(double noundef %164, double noundef %165, double noundef %166, double noundef %167, i32 noundef %168, i32 noundef %169, i32 noundef %170, double noundef %171, double noundef %172, double noundef %173, double noundef %174, double noundef %175, double noundef %176, double noundef %177, double noundef %178, double noundef %179, double noundef %180, i32 noundef %181, i32 noundef %182, i32 noundef %184, double noundef %185, double noundef %186, double noundef %187, double noundef %188, double noundef %189, double noundef %190, i32 noundef %192)
  %194 = fmul double %163, %193
  %195 = call double @llvm.fmuladd.f64(double %131, double %160, double %194)
  store double %195, ptr %73, align 8, !tbaa !5
  %196 = load i32, ptr %48, align 4, !tbaa !9
  %197 = icmp sgt i32 %196, 1
  br i1 %197, label %198, label %273

198:                                              ; preds = %128
  %199 = load i32, ptr %48, align 4, !tbaa !9
  %200 = sub nsw i32 %199, 1
  %201 = sitofp i32 %200 to double
  %202 = fmul double 5.000000e-01, %201
  %203 = load double, ptr %63, align 8, !tbaa !5
  %204 = fdiv double %202, %203
  %205 = load double, ptr %29, align 8, !tbaa !5
  %206 = load double, ptr %30, align 8, !tbaa !5
  %207 = load double, ptr %31, align 8, !tbaa !5
  %208 = load double, ptr %32, align 8, !tbaa !5
  %209 = load i32, ptr %33, align 4, !tbaa !9
  %210 = load i32, ptr %34, align 4, !tbaa !9
  %211 = load i32, ptr %35, align 4, !tbaa !9
  %212 = load double, ptr %36, align 8, !tbaa !5
  %213 = load double, ptr %37, align 8, !tbaa !5
  %214 = load double, ptr %38, align 8, !tbaa !5
  %215 = load double, ptr %39, align 8, !tbaa !5
  %216 = load double, ptr %40, align 8, !tbaa !5
  %217 = load double, ptr %41, align 8, !tbaa !5
  %218 = load double, ptr %42, align 8, !tbaa !5
  %219 = load double, ptr %43, align 8, !tbaa !5
  %220 = load double, ptr %44, align 8, !tbaa !5
  %221 = load double, ptr %45, align 8, !tbaa !5
  %222 = load i32, ptr %46, align 4, !tbaa !9
  %223 = load i32, ptr %47, align 4, !tbaa !9
  %224 = load i32, ptr %48, align 4, !tbaa !9
  %225 = sub nsw i32 %224, 2
  %226 = load double, ptr %49, align 8, !tbaa !5
  %227 = load double, ptr %50, align 8, !tbaa !5
  %228 = load double, ptr %51, align 8, !tbaa !5
  %229 = load double, ptr %52, align 8, !tbaa !5
  %230 = load double, ptr %53, align 8, !tbaa !5
  %231 = load double, ptr %54, align 8, !tbaa !5
  %232 = load i32, ptr %55, align 4, !tbaa !9
  %233 = call double @vrr(double noundef %205, double noundef %206, double noundef %207, double noundef %208, i32 noundef %209, i32 noundef %210, i32 noundef %211, double noundef %212, double noundef %213, double noundef %214, double noundef %215, double noundef %216, double noundef %217, double noundef %218, double noundef %219, double noundef %220, double noundef %221, i32 noundef %222, i32 noundef %223, i32 noundef %225, double noundef %226, double noundef %227, double noundef %228, double noundef %229, double noundef %230, double noundef %231, i32 noundef %232)
  %234 = load double, ptr %62, align 8, !tbaa !5
  %235 = load double, ptr %62, align 8, !tbaa !5
  %236 = load double, ptr %63, align 8, !tbaa !5
  %237 = fadd double %235, %236
  %238 = fdiv double %234, %237
  %239 = load double, ptr %29, align 8, !tbaa !5
  %240 = load double, ptr %30, align 8, !tbaa !5
  %241 = load double, ptr %31, align 8, !tbaa !5
  %242 = load double, ptr %32, align 8, !tbaa !5
  %243 = load i32, ptr %33, align 4, !tbaa !9
  %244 = load i32, ptr %34, align 4, !tbaa !9
  %245 = load i32, ptr %35, align 4, !tbaa !9
  %246 = load double, ptr %36, align 8, !tbaa !5
  %247 = load double, ptr %37, align 8, !tbaa !5
  %248 = load double, ptr %38, align 8, !tbaa !5
  %249 = load double, ptr %39, align 8, !tbaa !5
  %250 = load double, ptr %40, align 8, !tbaa !5
  %251 = load double, ptr %41, align 8, !tbaa !5
  %252 = load double, ptr %42, align 8, !tbaa !5
  %253 = load double, ptr %43, align 8, !tbaa !5
  %254 = load double, ptr %44, align 8, !tbaa !5
  %255 = load double, ptr %45, align 8, !tbaa !5
  %256 = load i32, ptr %46, align 4, !tbaa !9
  %257 = load i32, ptr %47, align 4, !tbaa !9
  %258 = load i32, ptr %48, align 4, !tbaa !9
  %259 = sub nsw i32 %258, 2
  %260 = load double, ptr %49, align 8, !tbaa !5
  %261 = load double, ptr %50, align 8, !tbaa !5
  %262 = load double, ptr %51, align 8, !tbaa !5
  %263 = load double, ptr %52, align 8, !tbaa !5
  %264 = load double, ptr %53, align 8, !tbaa !5
  %265 = load double, ptr %54, align 8, !tbaa !5
  %266 = load i32, ptr %55, align 4, !tbaa !9
  %267 = add nsw i32 %266, 1
  %268 = call double @vrr(double noundef %239, double noundef %240, double noundef %241, double noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %245, double noundef %246, double noundef %247, double noundef %248, double noundef %249, double noundef %250, double noundef %251, double noundef %252, double noundef %253, double noundef %254, double noundef %255, i32 noundef %256, i32 noundef %257, i32 noundef %259, double noundef %260, double noundef %261, double noundef %262, double noundef %263, double noundef %264, double noundef %265, i32 noundef %267)
  %269 = fneg double %238
  %270 = call double @llvm.fmuladd.f64(double %269, double %268, double %233)
  %271 = load double, ptr %73, align 8, !tbaa !5
  %272 = call double @llvm.fmuladd.f64(double %204, double %270, double %271)
  store double %272, ptr %73, align 8, !tbaa !5
  br label %273

273:                                              ; preds = %198, %128
  %274 = load i32, ptr %35, align 4, !tbaa !9
  %275 = icmp sgt i32 %274, 0
  br i1 %275, label %276, label %317

276:                                              ; preds = %273
  %277 = load i32, ptr %35, align 4, !tbaa !9
  %278 = sitofp i32 %277 to double
  %279 = fmul double 5.000000e-01, %278
  %280 = load double, ptr %62, align 8, !tbaa !5
  %281 = load double, ptr %63, align 8, !tbaa !5
  %282 = fadd double %280, %281
  %283 = fdiv double %279, %282
  %284 = load double, ptr %29, align 8, !tbaa !5
  %285 = load double, ptr %30, align 8, !tbaa !5
  %286 = load double, ptr %31, align 8, !tbaa !5
  %287 = load double, ptr %32, align 8, !tbaa !5
  %288 = load i32, ptr %33, align 4, !tbaa !9
  %289 = load i32, ptr %34, align 4, !tbaa !9
  %290 = load i32, ptr %35, align 4, !tbaa !9
  %291 = sub nsw i32 %290, 1
  %292 = load double, ptr %36, align 8, !tbaa !5
  %293 = load double, ptr %37, align 8, !tbaa !5
  %294 = load double, ptr %38, align 8, !tbaa !5
  %295 = load double, ptr %39, align 8, !tbaa !5
  %296 = load double, ptr %40, align 8, !tbaa !5
  %297 = load double, ptr %41, align 8, !tbaa !5
  %298 = load double, ptr %42, align 8, !tbaa !5
  %299 = load double, ptr %43, align 8, !tbaa !5
  %300 = load double, ptr %44, align 8, !tbaa !5
  %301 = load double, ptr %45, align 8, !tbaa !5
  %302 = load i32, ptr %46, align 4, !tbaa !9
  %303 = load i32, ptr %47, align 4, !tbaa !9
  %304 = load i32, ptr %48, align 4, !tbaa !9
  %305 = sub nsw i32 %304, 1
  %306 = load double, ptr %49, align 8, !tbaa !5
  %307 = load double, ptr %50, align 8, !tbaa !5
  %308 = load double, ptr %51, align 8, !tbaa !5
  %309 = load double, ptr %52, align 8, !tbaa !5
  %310 = load double, ptr %53, align 8, !tbaa !5
  %311 = load double, ptr %54, align 8, !tbaa !5
  %312 = load i32, ptr %55, align 4, !tbaa !9
  %313 = add nsw i32 %312, 1
  %314 = call double @vrr(double noundef %284, double noundef %285, double noundef %286, double noundef %287, i32 noundef %288, i32 noundef %289, i32 noundef %291, double noundef %292, double noundef %293, double noundef %294, double noundef %295, double noundef %296, double noundef %297, double noundef %298, double noundef %299, double noundef %300, double noundef %301, i32 noundef %302, i32 noundef %303, i32 noundef %305, double noundef %306, double noundef %307, double noundef %308, double noundef %309, double noundef %310, double noundef %311, i32 noundef %313)
  %315 = load double, ptr %73, align 8, !tbaa !5
  %316 = call double @llvm.fmuladd.f64(double %283, double %314, double %315)
  store double %316, ptr %73, align 8, !tbaa !5
  br label %317

317:                                              ; preds = %276, %273
  %318 = load double, ptr %73, align 8, !tbaa !5
  store double %318, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

319:                                              ; preds = %27
  %320 = load i32, ptr %47, align 4, !tbaa !9
  %321 = icmp sgt i32 %320, 0
  br i1 %321, label %322, label %513

322:                                              ; preds = %319
  %323 = load double, ptr %60, align 8, !tbaa !5
  %324 = load double, ptr %43, align 8, !tbaa !5
  %325 = fsub double %323, %324
  %326 = load double, ptr %29, align 8, !tbaa !5
  %327 = load double, ptr %30, align 8, !tbaa !5
  %328 = load double, ptr %31, align 8, !tbaa !5
  %329 = load double, ptr %32, align 8, !tbaa !5
  %330 = load i32, ptr %33, align 4, !tbaa !9
  %331 = load i32, ptr %34, align 4, !tbaa !9
  %332 = load i32, ptr %35, align 4, !tbaa !9
  %333 = load double, ptr %36, align 8, !tbaa !5
  %334 = load double, ptr %37, align 8, !tbaa !5
  %335 = load double, ptr %38, align 8, !tbaa !5
  %336 = load double, ptr %39, align 8, !tbaa !5
  %337 = load double, ptr %40, align 8, !tbaa !5
  %338 = load double, ptr %41, align 8, !tbaa !5
  %339 = load double, ptr %42, align 8, !tbaa !5
  %340 = load double, ptr %43, align 8, !tbaa !5
  %341 = load double, ptr %44, align 8, !tbaa !5
  %342 = load double, ptr %45, align 8, !tbaa !5
  %343 = load i32, ptr %46, align 4, !tbaa !9
  %344 = load i32, ptr %47, align 4, !tbaa !9
  %345 = sub nsw i32 %344, 1
  %346 = load i32, ptr %48, align 4, !tbaa !9
  %347 = load double, ptr %49, align 8, !tbaa !5
  %348 = load double, ptr %50, align 8, !tbaa !5
  %349 = load double, ptr %51, align 8, !tbaa !5
  %350 = load double, ptr %52, align 8, !tbaa !5
  %351 = load double, ptr %53, align 8, !tbaa !5
  %352 = load double, ptr %54, align 8, !tbaa !5
  %353 = load i32, ptr %55, align 4, !tbaa !9
  %354 = call double @vrr(double noundef %326, double noundef %327, double noundef %328, double noundef %329, i32 noundef %330, i32 noundef %331, i32 noundef %332, double noundef %333, double noundef %334, double noundef %335, double noundef %336, double noundef %337, double noundef %338, double noundef %339, double noundef %340, double noundef %341, double noundef %342, i32 noundef %343, i32 noundef %345, i32 noundef %346, double noundef %347, double noundef %348, double noundef %349, double noundef %350, double noundef %351, double noundef %352, i32 noundef %353)
  %355 = load double, ptr %65, align 8, !tbaa !5
  %356 = load double, ptr %60, align 8, !tbaa !5
  %357 = fsub double %355, %356
  %358 = load double, ptr %29, align 8, !tbaa !5
  %359 = load double, ptr %30, align 8, !tbaa !5
  %360 = load double, ptr %31, align 8, !tbaa !5
  %361 = load double, ptr %32, align 8, !tbaa !5
  %362 = load i32, ptr %33, align 4, !tbaa !9
  %363 = load i32, ptr %34, align 4, !tbaa !9
  %364 = load i32, ptr %35, align 4, !tbaa !9
  %365 = load double, ptr %36, align 8, !tbaa !5
  %366 = load double, ptr %37, align 8, !tbaa !5
  %367 = load double, ptr %38, align 8, !tbaa !5
  %368 = load double, ptr %39, align 8, !tbaa !5
  %369 = load double, ptr %40, align 8, !tbaa !5
  %370 = load double, ptr %41, align 8, !tbaa !5
  %371 = load double, ptr %42, align 8, !tbaa !5
  %372 = load double, ptr %43, align 8, !tbaa !5
  %373 = load double, ptr %44, align 8, !tbaa !5
  %374 = load double, ptr %45, align 8, !tbaa !5
  %375 = load i32, ptr %46, align 4, !tbaa !9
  %376 = load i32, ptr %47, align 4, !tbaa !9
  %377 = sub nsw i32 %376, 1
  %378 = load i32, ptr %48, align 4, !tbaa !9
  %379 = load double, ptr %49, align 8, !tbaa !5
  %380 = load double, ptr %50, align 8, !tbaa !5
  %381 = load double, ptr %51, align 8, !tbaa !5
  %382 = load double, ptr %52, align 8, !tbaa !5
  %383 = load double, ptr %53, align 8, !tbaa !5
  %384 = load double, ptr %54, align 8, !tbaa !5
  %385 = load i32, ptr %55, align 4, !tbaa !9
  %386 = add nsw i32 %385, 1
  %387 = call double @vrr(double noundef %358, double noundef %359, double noundef %360, double noundef %361, i32 noundef %362, i32 noundef %363, i32 noundef %364, double noundef %365, double noundef %366, double noundef %367, double noundef %368, double noundef %369, double noundef %370, double noundef %371, double noundef %372, double noundef %373, double noundef %374, i32 noundef %375, i32 noundef %377, i32 noundef %378, double noundef %379, double noundef %380, double noundef %381, double noundef %382, double noundef %383, double noundef %384, i32 noundef %386)
  %388 = fmul double %357, %387
  %389 = call double @llvm.fmuladd.f64(double %325, double %354, double %388)
  store double %389, ptr %73, align 8, !tbaa !5
  %390 = load i32, ptr %47, align 4, !tbaa !9
  %391 = icmp sgt i32 %390, 1
  br i1 %391, label %392, label %467

392:                                              ; preds = %322
  %393 = load i32, ptr %47, align 4, !tbaa !9
  %394 = sub nsw i32 %393, 1
  %395 = sitofp i32 %394 to double
  %396 = fmul double 5.000000e-01, %395
  %397 = load double, ptr %63, align 8, !tbaa !5
  %398 = fdiv double %396, %397
  %399 = load double, ptr %29, align 8, !tbaa !5
  %400 = load double, ptr %30, align 8, !tbaa !5
  %401 = load double, ptr %31, align 8, !tbaa !5
  %402 = load double, ptr %32, align 8, !tbaa !5
  %403 = load i32, ptr %33, align 4, !tbaa !9
  %404 = load i32, ptr %34, align 4, !tbaa !9
  %405 = load i32, ptr %35, align 4, !tbaa !9
  %406 = load double, ptr %36, align 8, !tbaa !5
  %407 = load double, ptr %37, align 8, !tbaa !5
  %408 = load double, ptr %38, align 8, !tbaa !5
  %409 = load double, ptr %39, align 8, !tbaa !5
  %410 = load double, ptr %40, align 8, !tbaa !5
  %411 = load double, ptr %41, align 8, !tbaa !5
  %412 = load double, ptr %42, align 8, !tbaa !5
  %413 = load double, ptr %43, align 8, !tbaa !5
  %414 = load double, ptr %44, align 8, !tbaa !5
  %415 = load double, ptr %45, align 8, !tbaa !5
  %416 = load i32, ptr %46, align 4, !tbaa !9
  %417 = load i32, ptr %47, align 4, !tbaa !9
  %418 = sub nsw i32 %417, 2
  %419 = load i32, ptr %48, align 4, !tbaa !9
  %420 = load double, ptr %49, align 8, !tbaa !5
  %421 = load double, ptr %50, align 8, !tbaa !5
  %422 = load double, ptr %51, align 8, !tbaa !5
  %423 = load double, ptr %52, align 8, !tbaa !5
  %424 = load double, ptr %53, align 8, !tbaa !5
  %425 = load double, ptr %54, align 8, !tbaa !5
  %426 = load i32, ptr %55, align 4, !tbaa !9
  %427 = call double @vrr(double noundef %399, double noundef %400, double noundef %401, double noundef %402, i32 noundef %403, i32 noundef %404, i32 noundef %405, double noundef %406, double noundef %407, double noundef %408, double noundef %409, double noundef %410, double noundef %411, double noundef %412, double noundef %413, double noundef %414, double noundef %415, i32 noundef %416, i32 noundef %418, i32 noundef %419, double noundef %420, double noundef %421, double noundef %422, double noundef %423, double noundef %424, double noundef %425, i32 noundef %426)
  %428 = load double, ptr %62, align 8, !tbaa !5
  %429 = load double, ptr %62, align 8, !tbaa !5
  %430 = load double, ptr %63, align 8, !tbaa !5
  %431 = fadd double %429, %430
  %432 = fdiv double %428, %431
  %433 = load double, ptr %29, align 8, !tbaa !5
  %434 = load double, ptr %30, align 8, !tbaa !5
  %435 = load double, ptr %31, align 8, !tbaa !5
  %436 = load double, ptr %32, align 8, !tbaa !5
  %437 = load i32, ptr %33, align 4, !tbaa !9
  %438 = load i32, ptr %34, align 4, !tbaa !9
  %439 = load i32, ptr %35, align 4, !tbaa !9
  %440 = load double, ptr %36, align 8, !tbaa !5
  %441 = load double, ptr %37, align 8, !tbaa !5
  %442 = load double, ptr %38, align 8, !tbaa !5
  %443 = load double, ptr %39, align 8, !tbaa !5
  %444 = load double, ptr %40, align 8, !tbaa !5
  %445 = load double, ptr %41, align 8, !tbaa !5
  %446 = load double, ptr %42, align 8, !tbaa !5
  %447 = load double, ptr %43, align 8, !tbaa !5
  %448 = load double, ptr %44, align 8, !tbaa !5
  %449 = load double, ptr %45, align 8, !tbaa !5
  %450 = load i32, ptr %46, align 4, !tbaa !9
  %451 = load i32, ptr %47, align 4, !tbaa !9
  %452 = sub nsw i32 %451, 2
  %453 = load i32, ptr %48, align 4, !tbaa !9
  %454 = load double, ptr %49, align 8, !tbaa !5
  %455 = load double, ptr %50, align 8, !tbaa !5
  %456 = load double, ptr %51, align 8, !tbaa !5
  %457 = load double, ptr %52, align 8, !tbaa !5
  %458 = load double, ptr %53, align 8, !tbaa !5
  %459 = load double, ptr %54, align 8, !tbaa !5
  %460 = load i32, ptr %55, align 4, !tbaa !9
  %461 = add nsw i32 %460, 1
  %462 = call double @vrr(double noundef %433, double noundef %434, double noundef %435, double noundef %436, i32 noundef %437, i32 noundef %438, i32 noundef %439, double noundef %440, double noundef %441, double noundef %442, double noundef %443, double noundef %444, double noundef %445, double noundef %446, double noundef %447, double noundef %448, double noundef %449, i32 noundef %450, i32 noundef %452, i32 noundef %453, double noundef %454, double noundef %455, double noundef %456, double noundef %457, double noundef %458, double noundef %459, i32 noundef %461)
  %463 = fneg double %432
  %464 = call double @llvm.fmuladd.f64(double %463, double %462, double %427)
  %465 = load double, ptr %73, align 8, !tbaa !5
  %466 = call double @llvm.fmuladd.f64(double %398, double %464, double %465)
  store double %466, ptr %73, align 8, !tbaa !5
  br label %467

467:                                              ; preds = %392, %322
  %468 = load i32, ptr %34, align 4, !tbaa !9
  %469 = icmp sgt i32 %468, 0
  br i1 %469, label %470, label %511

470:                                              ; preds = %467
  %471 = load i32, ptr %34, align 4, !tbaa !9
  %472 = sitofp i32 %471 to double
  %473 = fmul double 5.000000e-01, %472
  %474 = load double, ptr %62, align 8, !tbaa !5
  %475 = load double, ptr %63, align 8, !tbaa !5
  %476 = fadd double %474, %475
  %477 = fdiv double %473, %476
  %478 = load double, ptr %29, align 8, !tbaa !5
  %479 = load double, ptr %30, align 8, !tbaa !5
  %480 = load double, ptr %31, align 8, !tbaa !5
  %481 = load double, ptr %32, align 8, !tbaa !5
  %482 = load i32, ptr %33, align 4, !tbaa !9
  %483 = load i32, ptr %34, align 4, !tbaa !9
  %484 = sub nsw i32 %483, 1
  %485 = load i32, ptr %35, align 4, !tbaa !9
  %486 = load double, ptr %36, align 8, !tbaa !5
  %487 = load double, ptr %37, align 8, !tbaa !5
  %488 = load double, ptr %38, align 8, !tbaa !5
  %489 = load double, ptr %39, align 8, !tbaa !5
  %490 = load double, ptr %40, align 8, !tbaa !5
  %491 = load double, ptr %41, align 8, !tbaa !5
  %492 = load double, ptr %42, align 8, !tbaa !5
  %493 = load double, ptr %43, align 8, !tbaa !5
  %494 = load double, ptr %44, align 8, !tbaa !5
  %495 = load double, ptr %45, align 8, !tbaa !5
  %496 = load i32, ptr %46, align 4, !tbaa !9
  %497 = load i32, ptr %47, align 4, !tbaa !9
  %498 = sub nsw i32 %497, 1
  %499 = load i32, ptr %48, align 4, !tbaa !9
  %500 = load double, ptr %49, align 8, !tbaa !5
  %501 = load double, ptr %50, align 8, !tbaa !5
  %502 = load double, ptr %51, align 8, !tbaa !5
  %503 = load double, ptr %52, align 8, !tbaa !5
  %504 = load double, ptr %53, align 8, !tbaa !5
  %505 = load double, ptr %54, align 8, !tbaa !5
  %506 = load i32, ptr %55, align 4, !tbaa !9
  %507 = add nsw i32 %506, 1
  %508 = call double @vrr(double noundef %478, double noundef %479, double noundef %480, double noundef %481, i32 noundef %482, i32 noundef %484, i32 noundef %485, double noundef %486, double noundef %487, double noundef %488, double noundef %489, double noundef %490, double noundef %491, double noundef %492, double noundef %493, double noundef %494, double noundef %495, i32 noundef %496, i32 noundef %498, i32 noundef %499, double noundef %500, double noundef %501, double noundef %502, double noundef %503, double noundef %504, double noundef %505, i32 noundef %507)
  %509 = load double, ptr %73, align 8, !tbaa !5
  %510 = call double @llvm.fmuladd.f64(double %477, double %508, double %509)
  store double %510, ptr %73, align 8, !tbaa !5
  br label %511

511:                                              ; preds = %470, %467
  %512 = load double, ptr %73, align 8, !tbaa !5
  store double %512, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

513:                                              ; preds = %319
  %514 = load i32, ptr %46, align 4, !tbaa !9
  %515 = icmp sgt i32 %514, 0
  br i1 %515, label %516, label %707

516:                                              ; preds = %513
  %517 = load double, ptr %59, align 8, !tbaa !5
  %518 = load double, ptr %42, align 8, !tbaa !5
  %519 = fsub double %517, %518
  %520 = load double, ptr %29, align 8, !tbaa !5
  %521 = load double, ptr %30, align 8, !tbaa !5
  %522 = load double, ptr %31, align 8, !tbaa !5
  %523 = load double, ptr %32, align 8, !tbaa !5
  %524 = load i32, ptr %33, align 4, !tbaa !9
  %525 = load i32, ptr %34, align 4, !tbaa !9
  %526 = load i32, ptr %35, align 4, !tbaa !9
  %527 = load double, ptr %36, align 8, !tbaa !5
  %528 = load double, ptr %37, align 8, !tbaa !5
  %529 = load double, ptr %38, align 8, !tbaa !5
  %530 = load double, ptr %39, align 8, !tbaa !5
  %531 = load double, ptr %40, align 8, !tbaa !5
  %532 = load double, ptr %41, align 8, !tbaa !5
  %533 = load double, ptr %42, align 8, !tbaa !5
  %534 = load double, ptr %43, align 8, !tbaa !5
  %535 = load double, ptr %44, align 8, !tbaa !5
  %536 = load double, ptr %45, align 8, !tbaa !5
  %537 = load i32, ptr %46, align 4, !tbaa !9
  %538 = sub nsw i32 %537, 1
  %539 = load i32, ptr %47, align 4, !tbaa !9
  %540 = load i32, ptr %48, align 4, !tbaa !9
  %541 = load double, ptr %49, align 8, !tbaa !5
  %542 = load double, ptr %50, align 8, !tbaa !5
  %543 = load double, ptr %51, align 8, !tbaa !5
  %544 = load double, ptr %52, align 8, !tbaa !5
  %545 = load double, ptr %53, align 8, !tbaa !5
  %546 = load double, ptr %54, align 8, !tbaa !5
  %547 = load i32, ptr %55, align 4, !tbaa !9
  %548 = call double @vrr(double noundef %520, double noundef %521, double noundef %522, double noundef %523, i32 noundef %524, i32 noundef %525, i32 noundef %526, double noundef %527, double noundef %528, double noundef %529, double noundef %530, double noundef %531, double noundef %532, double noundef %533, double noundef %534, double noundef %535, double noundef %536, i32 noundef %538, i32 noundef %539, i32 noundef %540, double noundef %541, double noundef %542, double noundef %543, double noundef %544, double noundef %545, double noundef %546, i32 noundef %547)
  %549 = load double, ptr %64, align 8, !tbaa !5
  %550 = load double, ptr %59, align 8, !tbaa !5
  %551 = fsub double %549, %550
  %552 = load double, ptr %29, align 8, !tbaa !5
  %553 = load double, ptr %30, align 8, !tbaa !5
  %554 = load double, ptr %31, align 8, !tbaa !5
  %555 = load double, ptr %32, align 8, !tbaa !5
  %556 = load i32, ptr %33, align 4, !tbaa !9
  %557 = load i32, ptr %34, align 4, !tbaa !9
  %558 = load i32, ptr %35, align 4, !tbaa !9
  %559 = load double, ptr %36, align 8, !tbaa !5
  %560 = load double, ptr %37, align 8, !tbaa !5
  %561 = load double, ptr %38, align 8, !tbaa !5
  %562 = load double, ptr %39, align 8, !tbaa !5
  %563 = load double, ptr %40, align 8, !tbaa !5
  %564 = load double, ptr %41, align 8, !tbaa !5
  %565 = load double, ptr %42, align 8, !tbaa !5
  %566 = load double, ptr %43, align 8, !tbaa !5
  %567 = load double, ptr %44, align 8, !tbaa !5
  %568 = load double, ptr %45, align 8, !tbaa !5
  %569 = load i32, ptr %46, align 4, !tbaa !9
  %570 = sub nsw i32 %569, 1
  %571 = load i32, ptr %47, align 4, !tbaa !9
  %572 = load i32, ptr %48, align 4, !tbaa !9
  %573 = load double, ptr %49, align 8, !tbaa !5
  %574 = load double, ptr %50, align 8, !tbaa !5
  %575 = load double, ptr %51, align 8, !tbaa !5
  %576 = load double, ptr %52, align 8, !tbaa !5
  %577 = load double, ptr %53, align 8, !tbaa !5
  %578 = load double, ptr %54, align 8, !tbaa !5
  %579 = load i32, ptr %55, align 4, !tbaa !9
  %580 = add nsw i32 %579, 1
  %581 = call double @vrr(double noundef %552, double noundef %553, double noundef %554, double noundef %555, i32 noundef %556, i32 noundef %557, i32 noundef %558, double noundef %559, double noundef %560, double noundef %561, double noundef %562, double noundef %563, double noundef %564, double noundef %565, double noundef %566, double noundef %567, double noundef %568, i32 noundef %570, i32 noundef %571, i32 noundef %572, double noundef %573, double noundef %574, double noundef %575, double noundef %576, double noundef %577, double noundef %578, i32 noundef %580)
  %582 = fmul double %551, %581
  %583 = call double @llvm.fmuladd.f64(double %519, double %548, double %582)
  store double %583, ptr %73, align 8, !tbaa !5
  %584 = load i32, ptr %46, align 4, !tbaa !9
  %585 = icmp sgt i32 %584, 1
  br i1 %585, label %586, label %661

586:                                              ; preds = %516
  %587 = load i32, ptr %46, align 4, !tbaa !9
  %588 = sub nsw i32 %587, 1
  %589 = sitofp i32 %588 to double
  %590 = fmul double 5.000000e-01, %589
  %591 = load double, ptr %63, align 8, !tbaa !5
  %592 = fdiv double %590, %591
  %593 = load double, ptr %29, align 8, !tbaa !5
  %594 = load double, ptr %30, align 8, !tbaa !5
  %595 = load double, ptr %31, align 8, !tbaa !5
  %596 = load double, ptr %32, align 8, !tbaa !5
  %597 = load i32, ptr %33, align 4, !tbaa !9
  %598 = load i32, ptr %34, align 4, !tbaa !9
  %599 = load i32, ptr %35, align 4, !tbaa !9
  %600 = load double, ptr %36, align 8, !tbaa !5
  %601 = load double, ptr %37, align 8, !tbaa !5
  %602 = load double, ptr %38, align 8, !tbaa !5
  %603 = load double, ptr %39, align 8, !tbaa !5
  %604 = load double, ptr %40, align 8, !tbaa !5
  %605 = load double, ptr %41, align 8, !tbaa !5
  %606 = load double, ptr %42, align 8, !tbaa !5
  %607 = load double, ptr %43, align 8, !tbaa !5
  %608 = load double, ptr %44, align 8, !tbaa !5
  %609 = load double, ptr %45, align 8, !tbaa !5
  %610 = load i32, ptr %46, align 4, !tbaa !9
  %611 = sub nsw i32 %610, 2
  %612 = load i32, ptr %47, align 4, !tbaa !9
  %613 = load i32, ptr %48, align 4, !tbaa !9
  %614 = load double, ptr %49, align 8, !tbaa !5
  %615 = load double, ptr %50, align 8, !tbaa !5
  %616 = load double, ptr %51, align 8, !tbaa !5
  %617 = load double, ptr %52, align 8, !tbaa !5
  %618 = load double, ptr %53, align 8, !tbaa !5
  %619 = load double, ptr %54, align 8, !tbaa !5
  %620 = load i32, ptr %55, align 4, !tbaa !9
  %621 = call double @vrr(double noundef %593, double noundef %594, double noundef %595, double noundef %596, i32 noundef %597, i32 noundef %598, i32 noundef %599, double noundef %600, double noundef %601, double noundef %602, double noundef %603, double noundef %604, double noundef %605, double noundef %606, double noundef %607, double noundef %608, double noundef %609, i32 noundef %611, i32 noundef %612, i32 noundef %613, double noundef %614, double noundef %615, double noundef %616, double noundef %617, double noundef %618, double noundef %619, i32 noundef %620)
  %622 = load double, ptr %62, align 8, !tbaa !5
  %623 = load double, ptr %62, align 8, !tbaa !5
  %624 = load double, ptr %63, align 8, !tbaa !5
  %625 = fadd double %623, %624
  %626 = fdiv double %622, %625
  %627 = load double, ptr %29, align 8, !tbaa !5
  %628 = load double, ptr %30, align 8, !tbaa !5
  %629 = load double, ptr %31, align 8, !tbaa !5
  %630 = load double, ptr %32, align 8, !tbaa !5
  %631 = load i32, ptr %33, align 4, !tbaa !9
  %632 = load i32, ptr %34, align 4, !tbaa !9
  %633 = load i32, ptr %35, align 4, !tbaa !9
  %634 = load double, ptr %36, align 8, !tbaa !5
  %635 = load double, ptr %37, align 8, !tbaa !5
  %636 = load double, ptr %38, align 8, !tbaa !5
  %637 = load double, ptr %39, align 8, !tbaa !5
  %638 = load double, ptr %40, align 8, !tbaa !5
  %639 = load double, ptr %41, align 8, !tbaa !5
  %640 = load double, ptr %42, align 8, !tbaa !5
  %641 = load double, ptr %43, align 8, !tbaa !5
  %642 = load double, ptr %44, align 8, !tbaa !5
  %643 = load double, ptr %45, align 8, !tbaa !5
  %644 = load i32, ptr %46, align 4, !tbaa !9
  %645 = sub nsw i32 %644, 2
  %646 = load i32, ptr %47, align 4, !tbaa !9
  %647 = load i32, ptr %48, align 4, !tbaa !9
  %648 = load double, ptr %49, align 8, !tbaa !5
  %649 = load double, ptr %50, align 8, !tbaa !5
  %650 = load double, ptr %51, align 8, !tbaa !5
  %651 = load double, ptr %52, align 8, !tbaa !5
  %652 = load double, ptr %53, align 8, !tbaa !5
  %653 = load double, ptr %54, align 8, !tbaa !5
  %654 = load i32, ptr %55, align 4, !tbaa !9
  %655 = add nsw i32 %654, 1
  %656 = call double @vrr(double noundef %627, double noundef %628, double noundef %629, double noundef %630, i32 noundef %631, i32 noundef %632, i32 noundef %633, double noundef %634, double noundef %635, double noundef %636, double noundef %637, double noundef %638, double noundef %639, double noundef %640, double noundef %641, double noundef %642, double noundef %643, i32 noundef %645, i32 noundef %646, i32 noundef %647, double noundef %648, double noundef %649, double noundef %650, double noundef %651, double noundef %652, double noundef %653, i32 noundef %655)
  %657 = fneg double %626
  %658 = call double @llvm.fmuladd.f64(double %657, double %656, double %621)
  %659 = load double, ptr %73, align 8, !tbaa !5
  %660 = call double @llvm.fmuladd.f64(double %592, double %658, double %659)
  store double %660, ptr %73, align 8, !tbaa !5
  br label %661

661:                                              ; preds = %586, %516
  %662 = load i32, ptr %33, align 4, !tbaa !9
  %663 = icmp sgt i32 %662, 0
  br i1 %663, label %664, label %705

664:                                              ; preds = %661
  %665 = load i32, ptr %33, align 4, !tbaa !9
  %666 = sitofp i32 %665 to double
  %667 = fmul double 5.000000e-01, %666
  %668 = load double, ptr %62, align 8, !tbaa !5
  %669 = load double, ptr %63, align 8, !tbaa !5
  %670 = fadd double %668, %669
  %671 = fdiv double %667, %670
  %672 = load double, ptr %29, align 8, !tbaa !5
  %673 = load double, ptr %30, align 8, !tbaa !5
  %674 = load double, ptr %31, align 8, !tbaa !5
  %675 = load double, ptr %32, align 8, !tbaa !5
  %676 = load i32, ptr %33, align 4, !tbaa !9
  %677 = sub nsw i32 %676, 1
  %678 = load i32, ptr %34, align 4, !tbaa !9
  %679 = load i32, ptr %35, align 4, !tbaa !9
  %680 = load double, ptr %36, align 8, !tbaa !5
  %681 = load double, ptr %37, align 8, !tbaa !5
  %682 = load double, ptr %38, align 8, !tbaa !5
  %683 = load double, ptr %39, align 8, !tbaa !5
  %684 = load double, ptr %40, align 8, !tbaa !5
  %685 = load double, ptr %41, align 8, !tbaa !5
  %686 = load double, ptr %42, align 8, !tbaa !5
  %687 = load double, ptr %43, align 8, !tbaa !5
  %688 = load double, ptr %44, align 8, !tbaa !5
  %689 = load double, ptr %45, align 8, !tbaa !5
  %690 = load i32, ptr %46, align 4, !tbaa !9
  %691 = sub nsw i32 %690, 1
  %692 = load i32, ptr %47, align 4, !tbaa !9
  %693 = load i32, ptr %48, align 4, !tbaa !9
  %694 = load double, ptr %49, align 8, !tbaa !5
  %695 = load double, ptr %50, align 8, !tbaa !5
  %696 = load double, ptr %51, align 8, !tbaa !5
  %697 = load double, ptr %52, align 8, !tbaa !5
  %698 = load double, ptr %53, align 8, !tbaa !5
  %699 = load double, ptr %54, align 8, !tbaa !5
  %700 = load i32, ptr %55, align 4, !tbaa !9
  %701 = add nsw i32 %700, 1
  %702 = call double @vrr(double noundef %672, double noundef %673, double noundef %674, double noundef %675, i32 noundef %677, i32 noundef %678, i32 noundef %679, double noundef %680, double noundef %681, double noundef %682, double noundef %683, double noundef %684, double noundef %685, double noundef %686, double noundef %687, double noundef %688, double noundef %689, i32 noundef %691, i32 noundef %692, i32 noundef %693, double noundef %694, double noundef %695, double noundef %696, double noundef %697, double noundef %698, double noundef %699, i32 noundef %701)
  %703 = load double, ptr %73, align 8, !tbaa !5
  %704 = call double @llvm.fmuladd.f64(double %671, double %702, double %703)
  store double %704, ptr %73, align 8, !tbaa !5
  br label %705

705:                                              ; preds = %664, %661
  %706 = load double, ptr %73, align 8, !tbaa !5
  store double %706, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

707:                                              ; preds = %513
  %708 = load i32, ptr %35, align 4, !tbaa !9
  %709 = icmp sgt i32 %708, 0
  br i1 %709, label %710, label %857

710:                                              ; preds = %707
  %711 = load double, ptr %58, align 8, !tbaa !5
  %712 = load double, ptr %31, align 8, !tbaa !5
  %713 = fsub double %711, %712
  %714 = load double, ptr %29, align 8, !tbaa !5
  %715 = load double, ptr %30, align 8, !tbaa !5
  %716 = load double, ptr %31, align 8, !tbaa !5
  %717 = load double, ptr %32, align 8, !tbaa !5
  %718 = load i32, ptr %33, align 4, !tbaa !9
  %719 = load i32, ptr %34, align 4, !tbaa !9
  %720 = load i32, ptr %35, align 4, !tbaa !9
  %721 = sub nsw i32 %720, 1
  %722 = load double, ptr %36, align 8, !tbaa !5
  %723 = load double, ptr %37, align 8, !tbaa !5
  %724 = load double, ptr %38, align 8, !tbaa !5
  %725 = load double, ptr %39, align 8, !tbaa !5
  %726 = load double, ptr %40, align 8, !tbaa !5
  %727 = load double, ptr %41, align 8, !tbaa !5
  %728 = load double, ptr %42, align 8, !tbaa !5
  %729 = load double, ptr %43, align 8, !tbaa !5
  %730 = load double, ptr %44, align 8, !tbaa !5
  %731 = load double, ptr %45, align 8, !tbaa !5
  %732 = load i32, ptr %46, align 4, !tbaa !9
  %733 = load i32, ptr %47, align 4, !tbaa !9
  %734 = load i32, ptr %48, align 4, !tbaa !9
  %735 = load double, ptr %49, align 8, !tbaa !5
  %736 = load double, ptr %50, align 8, !tbaa !5
  %737 = load double, ptr %51, align 8, !tbaa !5
  %738 = load double, ptr %52, align 8, !tbaa !5
  %739 = load double, ptr %53, align 8, !tbaa !5
  %740 = load double, ptr %54, align 8, !tbaa !5
  %741 = load i32, ptr %55, align 4, !tbaa !9
  %742 = call double @vrr(double noundef %714, double noundef %715, double noundef %716, double noundef %717, i32 noundef %718, i32 noundef %719, i32 noundef %721, double noundef %722, double noundef %723, double noundef %724, double noundef %725, double noundef %726, double noundef %727, double noundef %728, double noundef %729, double noundef %730, double noundef %731, i32 noundef %732, i32 noundef %733, i32 noundef %734, double noundef %735, double noundef %736, double noundef %737, double noundef %738, double noundef %739, double noundef %740, i32 noundef %741)
  %743 = load double, ptr %66, align 8, !tbaa !5
  %744 = load double, ptr %58, align 8, !tbaa !5
  %745 = fsub double %743, %744
  %746 = load double, ptr %29, align 8, !tbaa !5
  %747 = load double, ptr %30, align 8, !tbaa !5
  %748 = load double, ptr %31, align 8, !tbaa !5
  %749 = load double, ptr %32, align 8, !tbaa !5
  %750 = load i32, ptr %33, align 4, !tbaa !9
  %751 = load i32, ptr %34, align 4, !tbaa !9
  %752 = load i32, ptr %35, align 4, !tbaa !9
  %753 = sub nsw i32 %752, 1
  %754 = load double, ptr %36, align 8, !tbaa !5
  %755 = load double, ptr %37, align 8, !tbaa !5
  %756 = load double, ptr %38, align 8, !tbaa !5
  %757 = load double, ptr %39, align 8, !tbaa !5
  %758 = load double, ptr %40, align 8, !tbaa !5
  %759 = load double, ptr %41, align 8, !tbaa !5
  %760 = load double, ptr %42, align 8, !tbaa !5
  %761 = load double, ptr %43, align 8, !tbaa !5
  %762 = load double, ptr %44, align 8, !tbaa !5
  %763 = load double, ptr %45, align 8, !tbaa !5
  %764 = load i32, ptr %46, align 4, !tbaa !9
  %765 = load i32, ptr %47, align 4, !tbaa !9
  %766 = load i32, ptr %48, align 4, !tbaa !9
  %767 = load double, ptr %49, align 8, !tbaa !5
  %768 = load double, ptr %50, align 8, !tbaa !5
  %769 = load double, ptr %51, align 8, !tbaa !5
  %770 = load double, ptr %52, align 8, !tbaa !5
  %771 = load double, ptr %53, align 8, !tbaa !5
  %772 = load double, ptr %54, align 8, !tbaa !5
  %773 = load i32, ptr %55, align 4, !tbaa !9
  %774 = add nsw i32 %773, 1
  %775 = call double @vrr(double noundef %746, double noundef %747, double noundef %748, double noundef %749, i32 noundef %750, i32 noundef %751, i32 noundef %753, double noundef %754, double noundef %755, double noundef %756, double noundef %757, double noundef %758, double noundef %759, double noundef %760, double noundef %761, double noundef %762, double noundef %763, i32 noundef %764, i32 noundef %765, i32 noundef %766, double noundef %767, double noundef %768, double noundef %769, double noundef %770, double noundef %771, double noundef %772, i32 noundef %774)
  %776 = fmul double %745, %775
  %777 = call double @llvm.fmuladd.f64(double %713, double %742, double %776)
  store double %777, ptr %73, align 8, !tbaa !5
  %778 = load i32, ptr %35, align 4, !tbaa !9
  %779 = icmp sgt i32 %778, 1
  br i1 %779, label %780, label %855

780:                                              ; preds = %710
  %781 = load i32, ptr %35, align 4, !tbaa !9
  %782 = sub nsw i32 %781, 1
  %783 = sitofp i32 %782 to double
  %784 = fmul double 5.000000e-01, %783
  %785 = load double, ptr %62, align 8, !tbaa !5
  %786 = fdiv double %784, %785
  %787 = load double, ptr %29, align 8, !tbaa !5
  %788 = load double, ptr %30, align 8, !tbaa !5
  %789 = load double, ptr %31, align 8, !tbaa !5
  %790 = load double, ptr %32, align 8, !tbaa !5
  %791 = load i32, ptr %33, align 4, !tbaa !9
  %792 = load i32, ptr %34, align 4, !tbaa !9
  %793 = load i32, ptr %35, align 4, !tbaa !9
  %794 = sub nsw i32 %793, 2
  %795 = load double, ptr %36, align 8, !tbaa !5
  %796 = load double, ptr %37, align 8, !tbaa !5
  %797 = load double, ptr %38, align 8, !tbaa !5
  %798 = load double, ptr %39, align 8, !tbaa !5
  %799 = load double, ptr %40, align 8, !tbaa !5
  %800 = load double, ptr %41, align 8, !tbaa !5
  %801 = load double, ptr %42, align 8, !tbaa !5
  %802 = load double, ptr %43, align 8, !tbaa !5
  %803 = load double, ptr %44, align 8, !tbaa !5
  %804 = load double, ptr %45, align 8, !tbaa !5
  %805 = load i32, ptr %46, align 4, !tbaa !9
  %806 = load i32, ptr %47, align 4, !tbaa !9
  %807 = load i32, ptr %48, align 4, !tbaa !9
  %808 = load double, ptr %49, align 8, !tbaa !5
  %809 = load double, ptr %50, align 8, !tbaa !5
  %810 = load double, ptr %51, align 8, !tbaa !5
  %811 = load double, ptr %52, align 8, !tbaa !5
  %812 = load double, ptr %53, align 8, !tbaa !5
  %813 = load double, ptr %54, align 8, !tbaa !5
  %814 = load i32, ptr %55, align 4, !tbaa !9
  %815 = call double @vrr(double noundef %787, double noundef %788, double noundef %789, double noundef %790, i32 noundef %791, i32 noundef %792, i32 noundef %794, double noundef %795, double noundef %796, double noundef %797, double noundef %798, double noundef %799, double noundef %800, double noundef %801, double noundef %802, double noundef %803, double noundef %804, i32 noundef %805, i32 noundef %806, i32 noundef %807, double noundef %808, double noundef %809, double noundef %810, double noundef %811, double noundef %812, double noundef %813, i32 noundef %814)
  %816 = load double, ptr %63, align 8, !tbaa !5
  %817 = load double, ptr %62, align 8, !tbaa !5
  %818 = load double, ptr %63, align 8, !tbaa !5
  %819 = fadd double %817, %818
  %820 = fdiv double %816, %819
  %821 = load double, ptr %29, align 8, !tbaa !5
  %822 = load double, ptr %30, align 8, !tbaa !5
  %823 = load double, ptr %31, align 8, !tbaa !5
  %824 = load double, ptr %32, align 8, !tbaa !5
  %825 = load i32, ptr %33, align 4, !tbaa !9
  %826 = load i32, ptr %34, align 4, !tbaa !9
  %827 = load i32, ptr %35, align 4, !tbaa !9
  %828 = sub nsw i32 %827, 2
  %829 = load double, ptr %36, align 8, !tbaa !5
  %830 = load double, ptr %37, align 8, !tbaa !5
  %831 = load double, ptr %38, align 8, !tbaa !5
  %832 = load double, ptr %39, align 8, !tbaa !5
  %833 = load double, ptr %40, align 8, !tbaa !5
  %834 = load double, ptr %41, align 8, !tbaa !5
  %835 = load double, ptr %42, align 8, !tbaa !5
  %836 = load double, ptr %43, align 8, !tbaa !5
  %837 = load double, ptr %44, align 8, !tbaa !5
  %838 = load double, ptr %45, align 8, !tbaa !5
  %839 = load i32, ptr %46, align 4, !tbaa !9
  %840 = load i32, ptr %47, align 4, !tbaa !9
  %841 = load i32, ptr %48, align 4, !tbaa !9
  %842 = load double, ptr %49, align 8, !tbaa !5
  %843 = load double, ptr %50, align 8, !tbaa !5
  %844 = load double, ptr %51, align 8, !tbaa !5
  %845 = load double, ptr %52, align 8, !tbaa !5
  %846 = load double, ptr %53, align 8, !tbaa !5
  %847 = load double, ptr %54, align 8, !tbaa !5
  %848 = load i32, ptr %55, align 4, !tbaa !9
  %849 = add nsw i32 %848, 1
  %850 = call double @vrr(double noundef %821, double noundef %822, double noundef %823, double noundef %824, i32 noundef %825, i32 noundef %826, i32 noundef %828, double noundef %829, double noundef %830, double noundef %831, double noundef %832, double noundef %833, double noundef %834, double noundef %835, double noundef %836, double noundef %837, double noundef %838, i32 noundef %839, i32 noundef %840, i32 noundef %841, double noundef %842, double noundef %843, double noundef %844, double noundef %845, double noundef %846, double noundef %847, i32 noundef %849)
  %851 = fneg double %820
  %852 = call double @llvm.fmuladd.f64(double %851, double %850, double %815)
  %853 = load double, ptr %73, align 8, !tbaa !5
  %854 = call double @llvm.fmuladd.f64(double %786, double %852, double %853)
  store double %854, ptr %73, align 8, !tbaa !5
  br label %855

855:                                              ; preds = %780, %710
  %856 = load double, ptr %73, align 8, !tbaa !5
  store double %856, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

857:                                              ; preds = %707
  %858 = load i32, ptr %34, align 4, !tbaa !9
  %859 = icmp sgt i32 %858, 0
  br i1 %859, label %860, label %1007

860:                                              ; preds = %857
  %861 = load double, ptr %57, align 8, !tbaa !5
  %862 = load double, ptr %30, align 8, !tbaa !5
  %863 = fsub double %861, %862
  %864 = load double, ptr %29, align 8, !tbaa !5
  %865 = load double, ptr %30, align 8, !tbaa !5
  %866 = load double, ptr %31, align 8, !tbaa !5
  %867 = load double, ptr %32, align 8, !tbaa !5
  %868 = load i32, ptr %33, align 4, !tbaa !9
  %869 = load i32, ptr %34, align 4, !tbaa !9
  %870 = sub nsw i32 %869, 1
  %871 = load i32, ptr %35, align 4, !tbaa !9
  %872 = load double, ptr %36, align 8, !tbaa !5
  %873 = load double, ptr %37, align 8, !tbaa !5
  %874 = load double, ptr %38, align 8, !tbaa !5
  %875 = load double, ptr %39, align 8, !tbaa !5
  %876 = load double, ptr %40, align 8, !tbaa !5
  %877 = load double, ptr %41, align 8, !tbaa !5
  %878 = load double, ptr %42, align 8, !tbaa !5
  %879 = load double, ptr %43, align 8, !tbaa !5
  %880 = load double, ptr %44, align 8, !tbaa !5
  %881 = load double, ptr %45, align 8, !tbaa !5
  %882 = load i32, ptr %46, align 4, !tbaa !9
  %883 = load i32, ptr %47, align 4, !tbaa !9
  %884 = load i32, ptr %48, align 4, !tbaa !9
  %885 = load double, ptr %49, align 8, !tbaa !5
  %886 = load double, ptr %50, align 8, !tbaa !5
  %887 = load double, ptr %51, align 8, !tbaa !5
  %888 = load double, ptr %52, align 8, !tbaa !5
  %889 = load double, ptr %53, align 8, !tbaa !5
  %890 = load double, ptr %54, align 8, !tbaa !5
  %891 = load i32, ptr %55, align 4, !tbaa !9
  %892 = call double @vrr(double noundef %864, double noundef %865, double noundef %866, double noundef %867, i32 noundef %868, i32 noundef %870, i32 noundef %871, double noundef %872, double noundef %873, double noundef %874, double noundef %875, double noundef %876, double noundef %877, double noundef %878, double noundef %879, double noundef %880, double noundef %881, i32 noundef %882, i32 noundef %883, i32 noundef %884, double noundef %885, double noundef %886, double noundef %887, double noundef %888, double noundef %889, double noundef %890, i32 noundef %891)
  %893 = load double, ptr %65, align 8, !tbaa !5
  %894 = load double, ptr %57, align 8, !tbaa !5
  %895 = fsub double %893, %894
  %896 = load double, ptr %29, align 8, !tbaa !5
  %897 = load double, ptr %30, align 8, !tbaa !5
  %898 = load double, ptr %31, align 8, !tbaa !5
  %899 = load double, ptr %32, align 8, !tbaa !5
  %900 = load i32, ptr %33, align 4, !tbaa !9
  %901 = load i32, ptr %34, align 4, !tbaa !9
  %902 = sub nsw i32 %901, 1
  %903 = load i32, ptr %35, align 4, !tbaa !9
  %904 = load double, ptr %36, align 8, !tbaa !5
  %905 = load double, ptr %37, align 8, !tbaa !5
  %906 = load double, ptr %38, align 8, !tbaa !5
  %907 = load double, ptr %39, align 8, !tbaa !5
  %908 = load double, ptr %40, align 8, !tbaa !5
  %909 = load double, ptr %41, align 8, !tbaa !5
  %910 = load double, ptr %42, align 8, !tbaa !5
  %911 = load double, ptr %43, align 8, !tbaa !5
  %912 = load double, ptr %44, align 8, !tbaa !5
  %913 = load double, ptr %45, align 8, !tbaa !5
  %914 = load i32, ptr %46, align 4, !tbaa !9
  %915 = load i32, ptr %47, align 4, !tbaa !9
  %916 = load i32, ptr %48, align 4, !tbaa !9
  %917 = load double, ptr %49, align 8, !tbaa !5
  %918 = load double, ptr %50, align 8, !tbaa !5
  %919 = load double, ptr %51, align 8, !tbaa !5
  %920 = load double, ptr %52, align 8, !tbaa !5
  %921 = load double, ptr %53, align 8, !tbaa !5
  %922 = load double, ptr %54, align 8, !tbaa !5
  %923 = load i32, ptr %55, align 4, !tbaa !9
  %924 = add nsw i32 %923, 1
  %925 = call double @vrr(double noundef %896, double noundef %897, double noundef %898, double noundef %899, i32 noundef %900, i32 noundef %902, i32 noundef %903, double noundef %904, double noundef %905, double noundef %906, double noundef %907, double noundef %908, double noundef %909, double noundef %910, double noundef %911, double noundef %912, double noundef %913, i32 noundef %914, i32 noundef %915, i32 noundef %916, double noundef %917, double noundef %918, double noundef %919, double noundef %920, double noundef %921, double noundef %922, i32 noundef %924)
  %926 = fmul double %895, %925
  %927 = call double @llvm.fmuladd.f64(double %863, double %892, double %926)
  store double %927, ptr %73, align 8, !tbaa !5
  %928 = load i32, ptr %34, align 4, !tbaa !9
  %929 = icmp sgt i32 %928, 1
  br i1 %929, label %930, label %1005

930:                                              ; preds = %860
  %931 = load i32, ptr %34, align 4, !tbaa !9
  %932 = sub nsw i32 %931, 1
  %933 = sitofp i32 %932 to double
  %934 = fmul double 5.000000e-01, %933
  %935 = load double, ptr %62, align 8, !tbaa !5
  %936 = fdiv double %934, %935
  %937 = load double, ptr %29, align 8, !tbaa !5
  %938 = load double, ptr %30, align 8, !tbaa !5
  %939 = load double, ptr %31, align 8, !tbaa !5
  %940 = load double, ptr %32, align 8, !tbaa !5
  %941 = load i32, ptr %33, align 4, !tbaa !9
  %942 = load i32, ptr %34, align 4, !tbaa !9
  %943 = sub nsw i32 %942, 2
  %944 = load i32, ptr %35, align 4, !tbaa !9
  %945 = load double, ptr %36, align 8, !tbaa !5
  %946 = load double, ptr %37, align 8, !tbaa !5
  %947 = load double, ptr %38, align 8, !tbaa !5
  %948 = load double, ptr %39, align 8, !tbaa !5
  %949 = load double, ptr %40, align 8, !tbaa !5
  %950 = load double, ptr %41, align 8, !tbaa !5
  %951 = load double, ptr %42, align 8, !tbaa !5
  %952 = load double, ptr %43, align 8, !tbaa !5
  %953 = load double, ptr %44, align 8, !tbaa !5
  %954 = load double, ptr %45, align 8, !tbaa !5
  %955 = load i32, ptr %46, align 4, !tbaa !9
  %956 = load i32, ptr %47, align 4, !tbaa !9
  %957 = load i32, ptr %48, align 4, !tbaa !9
  %958 = load double, ptr %49, align 8, !tbaa !5
  %959 = load double, ptr %50, align 8, !tbaa !5
  %960 = load double, ptr %51, align 8, !tbaa !5
  %961 = load double, ptr %52, align 8, !tbaa !5
  %962 = load double, ptr %53, align 8, !tbaa !5
  %963 = load double, ptr %54, align 8, !tbaa !5
  %964 = load i32, ptr %55, align 4, !tbaa !9
  %965 = call double @vrr(double noundef %937, double noundef %938, double noundef %939, double noundef %940, i32 noundef %941, i32 noundef %943, i32 noundef %944, double noundef %945, double noundef %946, double noundef %947, double noundef %948, double noundef %949, double noundef %950, double noundef %951, double noundef %952, double noundef %953, double noundef %954, i32 noundef %955, i32 noundef %956, i32 noundef %957, double noundef %958, double noundef %959, double noundef %960, double noundef %961, double noundef %962, double noundef %963, i32 noundef %964)
  %966 = load double, ptr %63, align 8, !tbaa !5
  %967 = load double, ptr %62, align 8, !tbaa !5
  %968 = load double, ptr %63, align 8, !tbaa !5
  %969 = fadd double %967, %968
  %970 = fdiv double %966, %969
  %971 = load double, ptr %29, align 8, !tbaa !5
  %972 = load double, ptr %30, align 8, !tbaa !5
  %973 = load double, ptr %31, align 8, !tbaa !5
  %974 = load double, ptr %32, align 8, !tbaa !5
  %975 = load i32, ptr %33, align 4, !tbaa !9
  %976 = load i32, ptr %34, align 4, !tbaa !9
  %977 = sub nsw i32 %976, 2
  %978 = load i32, ptr %35, align 4, !tbaa !9
  %979 = load double, ptr %36, align 8, !tbaa !5
  %980 = load double, ptr %37, align 8, !tbaa !5
  %981 = load double, ptr %38, align 8, !tbaa !5
  %982 = load double, ptr %39, align 8, !tbaa !5
  %983 = load double, ptr %40, align 8, !tbaa !5
  %984 = load double, ptr %41, align 8, !tbaa !5
  %985 = load double, ptr %42, align 8, !tbaa !5
  %986 = load double, ptr %43, align 8, !tbaa !5
  %987 = load double, ptr %44, align 8, !tbaa !5
  %988 = load double, ptr %45, align 8, !tbaa !5
  %989 = load i32, ptr %46, align 4, !tbaa !9
  %990 = load i32, ptr %47, align 4, !tbaa !9
  %991 = load i32, ptr %48, align 4, !tbaa !9
  %992 = load double, ptr %49, align 8, !tbaa !5
  %993 = load double, ptr %50, align 8, !tbaa !5
  %994 = load double, ptr %51, align 8, !tbaa !5
  %995 = load double, ptr %52, align 8, !tbaa !5
  %996 = load double, ptr %53, align 8, !tbaa !5
  %997 = load double, ptr %54, align 8, !tbaa !5
  %998 = load i32, ptr %55, align 4, !tbaa !9
  %999 = add nsw i32 %998, 1
  %1000 = call double @vrr(double noundef %971, double noundef %972, double noundef %973, double noundef %974, i32 noundef %975, i32 noundef %977, i32 noundef %978, double noundef %979, double noundef %980, double noundef %981, double noundef %982, double noundef %983, double noundef %984, double noundef %985, double noundef %986, double noundef %987, double noundef %988, i32 noundef %989, i32 noundef %990, i32 noundef %991, double noundef %992, double noundef %993, double noundef %994, double noundef %995, double noundef %996, double noundef %997, i32 noundef %999)
  %1001 = fneg double %970
  %1002 = call double @llvm.fmuladd.f64(double %1001, double %1000, double %965)
  %1003 = load double, ptr %73, align 8, !tbaa !5
  %1004 = call double @llvm.fmuladd.f64(double %936, double %1002, double %1003)
  store double %1004, ptr %73, align 8, !tbaa !5
  br label %1005

1005:                                             ; preds = %930, %860
  %1006 = load double, ptr %73, align 8, !tbaa !5
  store double %1006, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

1007:                                             ; preds = %857
  %1008 = load i32, ptr %33, align 4, !tbaa !9
  %1009 = icmp sgt i32 %1008, 0
  br i1 %1009, label %1010, label %1157

1010:                                             ; preds = %1007
  %1011 = load double, ptr %56, align 8, !tbaa !5
  %1012 = load double, ptr %29, align 8, !tbaa !5
  %1013 = fsub double %1011, %1012
  %1014 = load double, ptr %29, align 8, !tbaa !5
  %1015 = load double, ptr %30, align 8, !tbaa !5
  %1016 = load double, ptr %31, align 8, !tbaa !5
  %1017 = load double, ptr %32, align 8, !tbaa !5
  %1018 = load i32, ptr %33, align 4, !tbaa !9
  %1019 = sub nsw i32 %1018, 1
  %1020 = load i32, ptr %34, align 4, !tbaa !9
  %1021 = load i32, ptr %35, align 4, !tbaa !9
  %1022 = load double, ptr %36, align 8, !tbaa !5
  %1023 = load double, ptr %37, align 8, !tbaa !5
  %1024 = load double, ptr %38, align 8, !tbaa !5
  %1025 = load double, ptr %39, align 8, !tbaa !5
  %1026 = load double, ptr %40, align 8, !tbaa !5
  %1027 = load double, ptr %41, align 8, !tbaa !5
  %1028 = load double, ptr %42, align 8, !tbaa !5
  %1029 = load double, ptr %43, align 8, !tbaa !5
  %1030 = load double, ptr %44, align 8, !tbaa !5
  %1031 = load double, ptr %45, align 8, !tbaa !5
  %1032 = load i32, ptr %46, align 4, !tbaa !9
  %1033 = load i32, ptr %47, align 4, !tbaa !9
  %1034 = load i32, ptr %48, align 4, !tbaa !9
  %1035 = load double, ptr %49, align 8, !tbaa !5
  %1036 = load double, ptr %50, align 8, !tbaa !5
  %1037 = load double, ptr %51, align 8, !tbaa !5
  %1038 = load double, ptr %52, align 8, !tbaa !5
  %1039 = load double, ptr %53, align 8, !tbaa !5
  %1040 = load double, ptr %54, align 8, !tbaa !5
  %1041 = load i32, ptr %55, align 4, !tbaa !9
  %1042 = call double @vrr(double noundef %1014, double noundef %1015, double noundef %1016, double noundef %1017, i32 noundef %1019, i32 noundef %1020, i32 noundef %1021, double noundef %1022, double noundef %1023, double noundef %1024, double noundef %1025, double noundef %1026, double noundef %1027, double noundef %1028, double noundef %1029, double noundef %1030, double noundef %1031, i32 noundef %1032, i32 noundef %1033, i32 noundef %1034, double noundef %1035, double noundef %1036, double noundef %1037, double noundef %1038, double noundef %1039, double noundef %1040, i32 noundef %1041)
  %1043 = load double, ptr %64, align 8, !tbaa !5
  %1044 = load double, ptr %56, align 8, !tbaa !5
  %1045 = fsub double %1043, %1044
  %1046 = load double, ptr %29, align 8, !tbaa !5
  %1047 = load double, ptr %30, align 8, !tbaa !5
  %1048 = load double, ptr %31, align 8, !tbaa !5
  %1049 = load double, ptr %32, align 8, !tbaa !5
  %1050 = load i32, ptr %33, align 4, !tbaa !9
  %1051 = sub nsw i32 %1050, 1
  %1052 = load i32, ptr %34, align 4, !tbaa !9
  %1053 = load i32, ptr %35, align 4, !tbaa !9
  %1054 = load double, ptr %36, align 8, !tbaa !5
  %1055 = load double, ptr %37, align 8, !tbaa !5
  %1056 = load double, ptr %38, align 8, !tbaa !5
  %1057 = load double, ptr %39, align 8, !tbaa !5
  %1058 = load double, ptr %40, align 8, !tbaa !5
  %1059 = load double, ptr %41, align 8, !tbaa !5
  %1060 = load double, ptr %42, align 8, !tbaa !5
  %1061 = load double, ptr %43, align 8, !tbaa !5
  %1062 = load double, ptr %44, align 8, !tbaa !5
  %1063 = load double, ptr %45, align 8, !tbaa !5
  %1064 = load i32, ptr %46, align 4, !tbaa !9
  %1065 = load i32, ptr %47, align 4, !tbaa !9
  %1066 = load i32, ptr %48, align 4, !tbaa !9
  %1067 = load double, ptr %49, align 8, !tbaa !5
  %1068 = load double, ptr %50, align 8, !tbaa !5
  %1069 = load double, ptr %51, align 8, !tbaa !5
  %1070 = load double, ptr %52, align 8, !tbaa !5
  %1071 = load double, ptr %53, align 8, !tbaa !5
  %1072 = load double, ptr %54, align 8, !tbaa !5
  %1073 = load i32, ptr %55, align 4, !tbaa !9
  %1074 = add nsw i32 %1073, 1
  %1075 = call double @vrr(double noundef %1046, double noundef %1047, double noundef %1048, double noundef %1049, i32 noundef %1051, i32 noundef %1052, i32 noundef %1053, double noundef %1054, double noundef %1055, double noundef %1056, double noundef %1057, double noundef %1058, double noundef %1059, double noundef %1060, double noundef %1061, double noundef %1062, double noundef %1063, i32 noundef %1064, i32 noundef %1065, i32 noundef %1066, double noundef %1067, double noundef %1068, double noundef %1069, double noundef %1070, double noundef %1071, double noundef %1072, i32 noundef %1074)
  %1076 = fmul double %1045, %1075
  %1077 = call double @llvm.fmuladd.f64(double %1013, double %1042, double %1076)
  store double %1077, ptr %73, align 8, !tbaa !5
  %1078 = load i32, ptr %33, align 4, !tbaa !9
  %1079 = icmp sgt i32 %1078, 1
  br i1 %1079, label %1080, label %1155

1080:                                             ; preds = %1010
  %1081 = load i32, ptr %33, align 4, !tbaa !9
  %1082 = sub nsw i32 %1081, 1
  %1083 = sitofp i32 %1082 to double
  %1084 = fmul double 5.000000e-01, %1083
  %1085 = load double, ptr %62, align 8, !tbaa !5
  %1086 = fdiv double %1084, %1085
  %1087 = load double, ptr %29, align 8, !tbaa !5
  %1088 = load double, ptr %30, align 8, !tbaa !5
  %1089 = load double, ptr %31, align 8, !tbaa !5
  %1090 = load double, ptr %32, align 8, !tbaa !5
  %1091 = load i32, ptr %33, align 4, !tbaa !9
  %1092 = sub nsw i32 %1091, 2
  %1093 = load i32, ptr %34, align 4, !tbaa !9
  %1094 = load i32, ptr %35, align 4, !tbaa !9
  %1095 = load double, ptr %36, align 8, !tbaa !5
  %1096 = load double, ptr %37, align 8, !tbaa !5
  %1097 = load double, ptr %38, align 8, !tbaa !5
  %1098 = load double, ptr %39, align 8, !tbaa !5
  %1099 = load double, ptr %40, align 8, !tbaa !5
  %1100 = load double, ptr %41, align 8, !tbaa !5
  %1101 = load double, ptr %42, align 8, !tbaa !5
  %1102 = load double, ptr %43, align 8, !tbaa !5
  %1103 = load double, ptr %44, align 8, !tbaa !5
  %1104 = load double, ptr %45, align 8, !tbaa !5
  %1105 = load i32, ptr %46, align 4, !tbaa !9
  %1106 = load i32, ptr %47, align 4, !tbaa !9
  %1107 = load i32, ptr %48, align 4, !tbaa !9
  %1108 = load double, ptr %49, align 8, !tbaa !5
  %1109 = load double, ptr %50, align 8, !tbaa !5
  %1110 = load double, ptr %51, align 8, !tbaa !5
  %1111 = load double, ptr %52, align 8, !tbaa !5
  %1112 = load double, ptr %53, align 8, !tbaa !5
  %1113 = load double, ptr %54, align 8, !tbaa !5
  %1114 = load i32, ptr %55, align 4, !tbaa !9
  %1115 = call double @vrr(double noundef %1087, double noundef %1088, double noundef %1089, double noundef %1090, i32 noundef %1092, i32 noundef %1093, i32 noundef %1094, double noundef %1095, double noundef %1096, double noundef %1097, double noundef %1098, double noundef %1099, double noundef %1100, double noundef %1101, double noundef %1102, double noundef %1103, double noundef %1104, i32 noundef %1105, i32 noundef %1106, i32 noundef %1107, double noundef %1108, double noundef %1109, double noundef %1110, double noundef %1111, double noundef %1112, double noundef %1113, i32 noundef %1114)
  %1116 = load double, ptr %63, align 8, !tbaa !5
  %1117 = load double, ptr %62, align 8, !tbaa !5
  %1118 = load double, ptr %63, align 8, !tbaa !5
  %1119 = fadd double %1117, %1118
  %1120 = fdiv double %1116, %1119
  %1121 = load double, ptr %29, align 8, !tbaa !5
  %1122 = load double, ptr %30, align 8, !tbaa !5
  %1123 = load double, ptr %31, align 8, !tbaa !5
  %1124 = load double, ptr %32, align 8, !tbaa !5
  %1125 = load i32, ptr %33, align 4, !tbaa !9
  %1126 = sub nsw i32 %1125, 2
  %1127 = load i32, ptr %34, align 4, !tbaa !9
  %1128 = load i32, ptr %35, align 4, !tbaa !9
  %1129 = load double, ptr %36, align 8, !tbaa !5
  %1130 = load double, ptr %37, align 8, !tbaa !5
  %1131 = load double, ptr %38, align 8, !tbaa !5
  %1132 = load double, ptr %39, align 8, !tbaa !5
  %1133 = load double, ptr %40, align 8, !tbaa !5
  %1134 = load double, ptr %41, align 8, !tbaa !5
  %1135 = load double, ptr %42, align 8, !tbaa !5
  %1136 = load double, ptr %43, align 8, !tbaa !5
  %1137 = load double, ptr %44, align 8, !tbaa !5
  %1138 = load double, ptr %45, align 8, !tbaa !5
  %1139 = load i32, ptr %46, align 4, !tbaa !9
  %1140 = load i32, ptr %47, align 4, !tbaa !9
  %1141 = load i32, ptr %48, align 4, !tbaa !9
  %1142 = load double, ptr %49, align 8, !tbaa !5
  %1143 = load double, ptr %50, align 8, !tbaa !5
  %1144 = load double, ptr %51, align 8, !tbaa !5
  %1145 = load double, ptr %52, align 8, !tbaa !5
  %1146 = load double, ptr %53, align 8, !tbaa !5
  %1147 = load double, ptr %54, align 8, !tbaa !5
  %1148 = load i32, ptr %55, align 4, !tbaa !9
  %1149 = add nsw i32 %1148, 1
  %1150 = call double @vrr(double noundef %1121, double noundef %1122, double noundef %1123, double noundef %1124, i32 noundef %1126, i32 noundef %1127, i32 noundef %1128, double noundef %1129, double noundef %1130, double noundef %1131, double noundef %1132, double noundef %1133, double noundef %1134, double noundef %1135, double noundef %1136, double noundef %1137, double noundef %1138, i32 noundef %1139, i32 noundef %1140, i32 noundef %1141, double noundef %1142, double noundef %1143, double noundef %1144, double noundef %1145, double noundef %1146, double noundef %1147, i32 noundef %1149)
  %1151 = fneg double %1120
  %1152 = call double @llvm.fmuladd.f64(double %1151, double %1150, double %1115)
  %1153 = load double, ptr %73, align 8, !tbaa !5
  %1154 = call double @llvm.fmuladd.f64(double %1086, double %1152, double %1153)
  store double %1154, ptr %73, align 8, !tbaa !5
  br label %1155

1155:                                             ; preds = %1080, %1010
  %1156 = load double, ptr %73, align 8, !tbaa !5
  store double %1156, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

1157:                                             ; preds = %1007
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161
  %1163 = load double, ptr %29, align 8, !tbaa !5
  %1164 = load double, ptr %30, align 8, !tbaa !5
  %1165 = load double, ptr %31, align 8, !tbaa !5
  %1166 = load double, ptr %37, align 8, !tbaa !5
  %1167 = load double, ptr %38, align 8, !tbaa !5
  %1168 = load double, ptr %39, align 8, !tbaa !5
  %1169 = call double @dist2(double noundef %1163, double noundef %1164, double noundef %1165, double noundef %1166, double noundef %1167, double noundef %1168)
  store double %1169, ptr %67, align 8, !tbaa !5
  %1170 = call double @sqrt(double noundef 2.000000e+00) #5
  %1171 = call double @pow(double noundef 0x400921FB54442D18, double noundef 1.250000e+00) #5
  %1172 = fmul double %1170, %1171
  %1173 = load double, ptr %36, align 8, !tbaa !5
  %1174 = load double, ptr %41, align 8, !tbaa !5
  %1175 = fadd double %1173, %1174
  %1176 = fdiv double %1172, %1175
  %1177 = load double, ptr %36, align 8, !tbaa !5
  %1178 = fneg double %1177
  %1179 = load double, ptr %41, align 8, !tbaa !5
  %1180 = fmul double %1178, %1179
  %1181 = load double, ptr %36, align 8, !tbaa !5
  %1182 = load double, ptr %41, align 8, !tbaa !5
  %1183 = fadd double %1181, %1182
  %1184 = fdiv double %1180, %1183
  %1185 = load double, ptr %67, align 8, !tbaa !5
  %1186 = fmul double %1184, %1185
  %1187 = call double @exp(double noundef %1186) #5
  %1188 = fmul double %1176, %1187
  store double %1188, ptr %72, align 8, !tbaa !5
  %1189 = load double, ptr %42, align 8, !tbaa !5
  %1190 = load double, ptr %43, align 8, !tbaa !5
  %1191 = load double, ptr %44, align 8, !tbaa !5
  %1192 = load double, ptr %50, align 8, !tbaa !5
  %1193 = load double, ptr %51, align 8, !tbaa !5
  %1194 = load double, ptr %52, align 8, !tbaa !5
  %1195 = call double @dist2(double noundef %1189, double noundef %1190, double noundef %1191, double noundef %1192, double noundef %1193, double noundef %1194)
  store double %1195, ptr %68, align 8, !tbaa !5
  %1196 = call double @sqrt(double noundef 2.000000e+00) #5
  %1197 = call double @pow(double noundef 0x400921FB54442D18, double noundef 1.250000e+00) #5
  %1198 = fmul double %1196, %1197
  %1199 = load double, ptr %49, align 8, !tbaa !5
  %1200 = load double, ptr %54, align 8, !tbaa !5
  %1201 = fadd double %1199, %1200
  %1202 = fdiv double %1198, %1201
  %1203 = load double, ptr %49, align 8, !tbaa !5
  %1204 = fneg double %1203
  %1205 = load double, ptr %54, align 8, !tbaa !5
  %1206 = fmul double %1204, %1205
  %1207 = load double, ptr %49, align 8, !tbaa !5
  %1208 = load double, ptr %54, align 8, !tbaa !5
  %1209 = fadd double %1207, %1208
  %1210 = fdiv double %1206, %1209
  %1211 = load double, ptr %68, align 8, !tbaa !5
  %1212 = fmul double %1210, %1211
  %1213 = call double @exp(double noundef %1212) #5
  %1214 = fmul double %1202, %1213
  store double %1214, ptr %69, align 8, !tbaa !5
  %1215 = load double, ptr %56, align 8, !tbaa !5
  %1216 = load double, ptr %57, align 8, !tbaa !5
  %1217 = load double, ptr %58, align 8, !tbaa !5
  %1218 = load double, ptr %59, align 8, !tbaa !5
  %1219 = load double, ptr %60, align 8, !tbaa !5
  %1220 = load double, ptr %61, align 8, !tbaa !5
  %1221 = call double @dist2(double noundef %1215, double noundef %1216, double noundef %1217, double noundef %1218, double noundef %1219, double noundef %1220)
  store double %1221, ptr %70, align 8, !tbaa !5
  %1222 = load double, ptr %62, align 8, !tbaa !5
  %1223 = load double, ptr %63, align 8, !tbaa !5
  %1224 = fmul double %1222, %1223
  %1225 = load double, ptr %62, align 8, !tbaa !5
  %1226 = load double, ptr %63, align 8, !tbaa !5
  %1227 = fadd double %1225, %1226
  %1228 = fdiv double %1224, %1227
  %1229 = load double, ptr %70, align 8, !tbaa !5
  %1230 = fmul double %1228, %1229
  store double %1230, ptr %71, align 8, !tbaa !5
  %1231 = load double, ptr %32, align 8, !tbaa !5
  %1232 = load double, ptr %40, align 8, !tbaa !5
  %1233 = fmul double %1231, %1232
  %1234 = load double, ptr %45, align 8, !tbaa !5
  %1235 = fmul double %1233, %1234
  %1236 = load double, ptr %53, align 8, !tbaa !5
  %1237 = fmul double %1235, %1236
  %1238 = load double, ptr %72, align 8, !tbaa !5
  %1239 = fmul double %1237, %1238
  %1240 = load double, ptr %69, align 8, !tbaa !5
  %1241 = fmul double %1239, %1240
  %1242 = load double, ptr %62, align 8, !tbaa !5
  %1243 = load double, ptr %63, align 8, !tbaa !5
  %1244 = fadd double %1242, %1243
  %1245 = call double @sqrt(double noundef %1244) #5
  %1246 = fdiv double %1241, %1245
  %1247 = load i32, ptr %55, align 4, !tbaa !9
  %1248 = sitofp i32 %1247 to double
  %1249 = load double, ptr %71, align 8, !tbaa !5
  %1250 = call double @Fgamma(double noundef %1248, double noundef %1249)
  %1251 = fmul double %1246, %1250
  store double %1251, ptr %73, align 8, !tbaa !5
  %1252 = load double, ptr %73, align 8, !tbaa !5
  store double %1252, ptr %28, align 8
  store i32 1, ptr %74, align 4
  br label %1253

1253:                                             ; preds = %1162, %1155, %1005, %855, %705, %511, %317
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  %1254 = load double, ptr %28, align 8
  ret double %1254
}

declare double @product_center_1D(double noundef, double noundef, double noundef, double noundef) #3

declare double @dist2(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #3

; Function Attrs: nounwind
declare double @sqrt(double noundef) #4

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #4

; Function Attrs: nounwind
declare double @exp(double noundef) #4

declare double @Fgamma(double noundef, double noundef) #3

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #0

; Function Attrs: nounwind uwtable
declare dso_local double @vrr(double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local double @vrr_recursive(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26) local_unnamed_addr #1 {
  %28 = tail call double @product_center_1D(double noundef %7, double noundef %0, double noundef %12, double noundef %8) #4
  %29 = tail call double @product_center_1D(double noundef %7, double noundef %1, double noundef %12, double noundef %9) #4
  %30 = tail call double @product_center_1D(double noundef %7, double noundef %2, double noundef %12, double noundef %10) #4
  %31 = tail call double @product_center_1D(double noundef %20, double noundef %13, double noundef %25, double noundef %21) #4
  %32 = tail call double @product_center_1D(double noundef %20, double noundef %14, double noundef %25, double noundef %22) #4
  %33 = tail call double @product_center_1D(double noundef %20, double noundef %15, double noundef %25, double noundef %23) #4
  %34 = insertelement <2 x double> poison, double %7, i64 0
  %35 = insertelement <2 x double> %34, double %20, i64 1
  %36 = insertelement <2 x double> poison, double %12, i64 0
  %37 = insertelement <2 x double> %36, double %25, i64 1
  %38 = fadd <2 x double> %35, %37
  %39 = extractelement <2 x double> %38, i64 0
  %40 = extractelement <2 x double> %38, i64 1
  %41 = tail call double @product_center_1D(double noundef %39, double noundef %28, double noundef %40, double noundef %31) #4
  %42 = tail call double @product_center_1D(double noundef %39, double noundef %29, double noundef %40, double noundef %32) #4
  %43 = tail call double @product_center_1D(double noundef %39, double noundef %30, double noundef %40, double noundef %33) #4
  %44 = icmp sgt i32 %19, 0
  br i1 %44, label %45, label %76

45:                                               ; preds = %27
  %46 = fsub double %33, %15
  %47 = add nsw i32 %19, -1
  %48 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %47, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %49 = fsub double %43, %33
  %50 = add nsw i32 %26, 1
  %51 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %47, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %50)
  %52 = fmul double %49, %51
  %53 = tail call double @llvm.fmuladd.f64(double %46, double %48, double %52)
  %.not929 = icmp eq i32 %19, 1
  br i1 %.not929, label %66, label %54

54:                                               ; preds = %45
  %55 = uitofp nneg i32 %47 to double
  %56 = fmul double %55, 5.000000e-01
  %57 = fdiv double %56, %40
  %58 = add nsw i32 %19, -2
  %59 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %58, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %60 = fadd double %39, %40
  %61 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %58, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %50)
  %62 = fneg double %39
  %63 = fdiv double %62, %60
  %64 = tail call double @llvm.fmuladd.f64(double %63, double %61, double %59)
  %65 = tail call double @llvm.fmuladd.f64(double %57, double %64, double %53)
  br label %66

66:                                               ; preds = %54, %45
  %.0 = phi double [ %65, %54 ], [ %53, %45 ]
  %67 = icmp sgt i32 %6, 0
  br i1 %67, label %68, label %245

68:                                               ; preds = %66
  %69 = uitofp nneg i32 %6 to double
  %70 = fmul double %69, 5.000000e-01
  %71 = fadd double %39, %40
  %72 = fdiv double %70, %71
  %73 = add nsw i32 %6, -1
  %74 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %73, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %47, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %50)
  %75 = tail call double @llvm.fmuladd.f64(double %72, double %74, double %.0)
  br label %245

76:                                               ; preds = %27
  %77 = icmp sgt i32 %18, 0
  br i1 %77, label %78, label %109

78:                                               ; preds = %76
  %79 = fsub double %32, %14
  %80 = add nsw i32 %18, -1
  %81 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %80, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %82 = fsub double %42, %32
  %83 = add nsw i32 %26, 1
  %84 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %80, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %83)
  %85 = fmul double %82, %84
  %86 = tail call double @llvm.fmuladd.f64(double %79, double %81, double %85)
  %.not928 = icmp eq i32 %18, 1
  br i1 %.not928, label %99, label %87

87:                                               ; preds = %78
  %88 = uitofp nneg i32 %80 to double
  %89 = fmul double %88, 5.000000e-01
  %90 = fdiv double %89, %40
  %91 = add nsw i32 %18, -2
  %92 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %91, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %93 = fadd double %39, %40
  %94 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %91, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %83)
  %95 = fneg double %39
  %96 = fdiv double %95, %93
  %97 = tail call double @llvm.fmuladd.f64(double %96, double %94, double %92)
  %98 = tail call double @llvm.fmuladd.f64(double %90, double %97, double %86)
  br label %99

99:                                               ; preds = %87, %78
  %.2 = phi double [ %98, %87 ], [ %86, %78 ]
  %100 = icmp sgt i32 %5, 0
  br i1 %100, label %101, label %245

101:                                              ; preds = %99
  %102 = uitofp nneg i32 %5 to double
  %103 = fmul double %102, 5.000000e-01
  %104 = fadd double %39, %40
  %105 = fdiv double %103, %104
  %106 = add nsw i32 %5, -1
  %107 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %106, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %80, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %83)
  %108 = tail call double @llvm.fmuladd.f64(double %105, double %107, double %.2)
  br label %245

109:                                              ; preds = %76
  %110 = icmp sgt i32 %17, 0
  br i1 %110, label %111, label %142

111:                                              ; preds = %109
  %112 = fsub double %31, %13
  %113 = add nsw i32 %17, -1
  %114 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %113, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %115 = fsub double %41, %31
  %116 = add nsw i32 %26, 1
  %117 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %113, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %116)
  %118 = fmul double %115, %117
  %119 = tail call double @llvm.fmuladd.f64(double %112, double %114, double %118)
  %.not927 = icmp eq i32 %17, 1
  br i1 %.not927, label %132, label %120

120:                                              ; preds = %111
  %121 = uitofp nneg i32 %113 to double
  %122 = fmul double %121, 5.000000e-01
  %123 = fdiv double %122, %40
  %124 = add nsw i32 %17, -2
  %125 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %124, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %126 = fadd double %39, %40
  %127 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %124, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %116)
  %128 = fneg double %39
  %129 = fdiv double %128, %126
  %130 = tail call double @llvm.fmuladd.f64(double %129, double %127, double %125)
  %131 = tail call double @llvm.fmuladd.f64(double %123, double %130, double %119)
  br label %132

132:                                              ; preds = %120, %111
  %.4 = phi double [ %131, %120 ], [ %119, %111 ]
  %133 = icmp sgt i32 %4, 0
  br i1 %133, label %134, label %245

134:                                              ; preds = %132
  %135 = uitofp nneg i32 %4 to double
  %136 = fmul double %135, 5.000000e-01
  %137 = fadd double %39, %40
  %138 = fdiv double %136, %137
  %139 = add nsw i32 %4, -1
  %140 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %139, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %113, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %116)
  %141 = tail call double @llvm.fmuladd.f64(double %138, double %140, double %.4)
  br label %245

142:                                              ; preds = %109
  %143 = icmp sgt i32 %6, 0
  br i1 %143, label %144, label %165

144:                                              ; preds = %142
  %145 = fsub double %30, %2
  %146 = add nsw i32 %6, -1
  %147 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %146, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %148 = fsub double %43, %30
  %149 = add nsw i32 %26, 1
  %150 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %146, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %149)
  %151 = fmul double %148, %150
  %152 = tail call double @llvm.fmuladd.f64(double %145, double %147, double %151)
  %.not926 = icmp eq i32 %6, 1
  br i1 %.not926, label %245, label %153

153:                                              ; preds = %144
  %154 = uitofp nneg i32 %146 to double
  %155 = fmul double %154, 5.000000e-01
  %156 = fdiv double %155, %39
  %157 = add nsw i32 %6, -2
  %158 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %157, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %159 = fadd double %39, %40
  %160 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %157, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %149)
  %161 = fneg double %40
  %162 = fdiv double %161, %159
  %163 = tail call double @llvm.fmuladd.f64(double %162, double %160, double %158)
  %164 = tail call double @llvm.fmuladd.f64(double %156, double %163, double %152)
  br label %245

165:                                              ; preds = %142
  %166 = icmp sgt i32 %5, 0
  br i1 %166, label %167, label %188

167:                                              ; preds = %165
  %168 = fsub double %29, %1
  %169 = add nsw i32 %5, -1
  %170 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %169, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %171 = fsub double %42, %29
  %172 = add nsw i32 %26, 1
  %173 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %169, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %172)
  %174 = fmul double %171, %173
  %175 = tail call double @llvm.fmuladd.f64(double %168, double %170, double %174)
  %.not925 = icmp eq i32 %5, 1
  br i1 %.not925, label %245, label %176

176:                                              ; preds = %167
  %177 = uitofp nneg i32 %169 to double
  %178 = fmul double %177, 5.000000e-01
  %179 = fdiv double %178, %39
  %180 = add nsw i32 %5, -2
  %181 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %180, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %182 = fadd double %39, %40
  %183 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %4, i32 noundef %180, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %172)
  %184 = fneg double %40
  %185 = fdiv double %184, %182
  %186 = tail call double @llvm.fmuladd.f64(double %185, double %183, double %181)
  %187 = tail call double @llvm.fmuladd.f64(double %179, double %186, double %175)
  br label %245

188:                                              ; preds = %165
  %189 = icmp sgt i32 %4, 0
  br i1 %189, label %190, label %211

190:                                              ; preds = %188
  %191 = fsub double %28, %0
  %192 = add nsw i32 %4, -1
  %193 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %192, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %194 = fsub double %41, %28
  %195 = add nsw i32 %26, 1
  %196 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %192, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %195)
  %197 = fmul double %194, %196
  %198 = tail call double @llvm.fmuladd.f64(double %191, double %193, double %197)
  %.not = icmp eq i32 %4, 1
  br i1 %.not, label %245, label %199

199:                                              ; preds = %190
  %200 = uitofp nneg i32 %192 to double
  %201 = fmul double %200, 5.000000e-01
  %202 = fdiv double %201, %39
  %203 = add nsw i32 %4, -2
  %204 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %203, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %26)
  %205 = fadd double %39, %40
  %206 = tail call double @vrr(double noundef %0, double noundef %1, double noundef %2, double noundef %3, i32 noundef %203, i32 noundef %5, i32 noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %12, double noundef %13, double noundef %14, double noundef %15, double noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, double noundef %20, double noundef %21, double noundef %22, double noundef %23, double noundef %24, double noundef %25, i32 noundef %195)
  %207 = fneg double %40
  %208 = fdiv double %207, %205
  %209 = tail call double @llvm.fmuladd.f64(double %208, double %206, double %204)
  %210 = tail call double @llvm.fmuladd.f64(double %202, double %209, double %198)
  br label %245

211:                                              ; preds = %188
  %212 = tail call double @dist2(double noundef %0, double noundef %1, double noundef %2, double noundef %8, double noundef %9, double noundef %10) #4
  %213 = fdiv <2 x double> <double 0x4017A8ED27904870, double 0x4017A8ED27904870>, %38
  %214 = fneg double %7
  %215 = fmul double %214, %12
  %216 = fdiv double %215, %39
  %217 = fmul double %216, %212
  %218 = tail call double @exp(double noundef %217) #4
  %219 = tail call double @dist2(double noundef %13, double noundef %14, double noundef %15, double noundef %21, double noundef %22, double noundef %23) #4
  %220 = fneg double %20
  %221 = fmul double %220, %25
  %222 = fdiv double %221, %40
  %223 = fmul double %222, %219
  %224 = tail call double @exp(double noundef %223) #4
  %225 = insertelement <2 x double> poison, double %218, i64 0
  %226 = insertelement <2 x double> %225, double %224, i64 1
  %227 = fmul <2 x double> %213, %226
  %228 = tail call double @dist2(double noundef %28, double noundef %29, double noundef %30, double noundef %31, double noundef %32, double noundef %33) #4
  %229 = fmul double %39, %40
  %230 = fadd double %39, %40
  %231 = fdiv double %229, %230
  %232 = fmul double %231, %228
  %233 = fmul double %3, %11
  %234 = fmul double %233, %16
  %235 = fmul double %234, %24
  %236 = extractelement <2 x double> %227, i64 0
  %237 = fmul double %235, %236
  %238 = extractelement <2 x double> %227, i64 1
  %239 = fmul double %237, %238
  %240 = tail call double @sqrt(double noundef %230) #4
  %241 = fdiv double %239, %240
  %242 = sitofp i32 %26 to double
  %243 = tail call double @Fgamma(double noundef %242, double noundef %232) #4
  %244 = fmul double %241, %243
  br label %245

245:                                              ; preds = %190, %199, %167, %176, %144, %153, %132, %134, %99, %101, %66, %68, %211
  %.0910 = phi double [ %244, %211 ], [ %75, %68 ], [ %.0, %66 ], [ %108, %101 ], [ %.2, %99 ], [ %141, %134 ], [ %.4, %132 ], [ %164, %153 ], [ %152, %144 ], [ %187, %176 ], [ %175, %167 ], [ %210, %199 ], [ %198, %190 ]
  ret double %.0910
}

declare double @product_center_1D(double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #2

declare double @dist2(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @exp(double noundef) local_unnamed_addr #3

declare double @Fgamma(double noundef, double noundef) local_unnamed_addr #2

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass