; LLVM IR from OpenDiS/OpenDiS :: core/pydis/c/calforce (SegSegForce)

; 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"

@__const.SpecialSegSegForceHalf.alt1 = external hidden unnamed_addr constant [3 x i32], align 4
@__const.SpecialSegSegForceHalf.alt2 = external hidden unnamed_addr constant [3 x i32], align 4

; Function Attrs: nounwind uwtable
define dso_local void @SpecialSegSegForceHalf(double noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double 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, double noundef %17, double noundef %18, double noundef %19, double noundef %20, double noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) #0 {
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %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 double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca [3 x i32], align 4
  %60 = alloca [3 x i32], align 4
  %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 [3 x double], align 16
  %68 = alloca [3 x double], align 16
  %69 = alloca [3 x double], align 16
  %70 = alloca [3 x double], align 16
  %71 = alloca [3 x double], align 16
  %72 = alloca [3 x double], align 16
  %73 = alloca [3 x double], align 16
  %74 = alloca [3 x double], align 16
  %75 = alloca [3 x double], align 16
  %76 = alloca [3 x double], align 16
  %77 = alloca [3 x double], align 16
  %78 = alloca [3 x double], align 16
  %79 = alloca double, align 8
  %80 = alloca [3 x double], align 16
  %81 = alloca double, align 8
  %82 = alloca [3 x double], align 16
  %83 = alloca [3 x double], align 16
  %84 = alloca double, align 8
  %85 = alloca [2 x double], align 16
  %86 = alloca [2 x double], align 16
  %87 = alloca [4 x double], align 16
  %88 = alloca [4 x double], align 16
  %89 = alloca [4 x double], align 16
  %90 = alloca [4 x double], align 16
  %91 = alloca [4 x double], align 16
  %92 = alloca [4 x double], align 16
  %93 = alloca [4 x double], align 16
  %94 = alloca double, align 8
  %95 = alloca [8 x double], align 16
  %96 = alloca [4 x double], align 16
  %97 = alloca [3 x double], align 16
  %98 = alloca [3 x double], align 16
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %108 = alloca double, align 8
  %109 = alloca double, align 8
  %110 = alloca double, align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca double, align 8
  %114 = alloca double, align 8
  %115 = alloca [4 x double], align 16
  %116 = alloca [4 x double], align 16
  %117 = alloca [4 x double], align 16
  %118 = alloca [4 x double], align 16
  %119 = alloca [4 x double], align 16
  %120 = alloca [4 x double], align 16
  %121 = alloca [4 x double], align 16
  %122 = alloca [4 x double], align 16
  %123 = alloca double, align 8
  %124 = alloca double, align 8
  %125 = alloca double, align 8
  %126 = alloca double, align 8
  %127 = alloca double, align 8
  %128 = alloca double, align 8
  %129 = alloca double, align 8
  %130 = alloca double, align 8
  %131 = alloca double, align 8
  %132 = alloca double, align 8
  %133 = alloca double, align 8
  %134 = alloca double, align 8
  %135 = alloca [3 x double], align 16
  %136 = alloca [3 x double], align 16
  %137 = alloca [3 x double], align 16
  %138 = alloca [3 x double], align 16
  %139 = alloca double, align 8
  %140 = alloca double, align 8
  %141 = alloca double, align 8
  %142 = alloca double, align 8
  %143 = alloca double, align 8
  %144 = alloca double, align 8
  %145 = alloca double, align 8
  %146 = alloca double, align 8
  %147 = alloca double, align 8
  %148 = alloca double, align 8
  %149 = alloca [3 x double], align 16
  %150 = alloca [3 x double], align 16
  %151 = alloca [3 x double], align 16
  %152 = alloca [3 x double], align 16
  %153 = alloca double, align 8
  %154 = alloca double, align 8
  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 double %4, ptr %33, align 8, !tbaa !5
  store double %5, ptr %34, align 8, !tbaa !5
  store double %6, ptr %35, align 8, !tbaa !5
  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 double %17, ptr %46, align 8, !tbaa !5
  store double %18, ptr %47, align 8, !tbaa !5
  store double %19, ptr %48, align 8, !tbaa !5
  store double %20, ptr %49, align 8, !tbaa !5
  store double %21, ptr %50, align 8, !tbaa !5
  store ptr %22, ptr %51, align 8, !tbaa !9
  store ptr %23, ptr %52, align 8, !tbaa !9
  store ptr %24, ptr %53, align 8, !tbaa !9
  store ptr %25, ptr %54, align 8, !tbaa !9
  store ptr %26, ptr %55, align 8, !tbaa !9
  store ptr %27, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %59) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %59, ptr align 4 @__const.SpecialSegSegForceHalf.alt1, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %60) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %60, ptr align 4 @__const.SpecialSegSegForceHalf.alt2, i64 12, i1 false)
  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 24, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %97) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %135) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %136) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %137) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %138) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %149) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %150) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %151) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %152) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #5
  store double 0x400921FB54442D18, ptr %154, align 8, !tbaa !5
  %155 = load double, ptr %50, align 8, !tbaa !5
  %156 = fneg double %155
  %157 = call double @llvm.fmuladd.f64(double %156, double 1.010000e+00, double 1.000000e+00)
  %158 = load double, ptr %50, align 8, !tbaa !5
  %159 = fmul double %158, 1.010000e+00
  %160 = fdiv double %157, %159
  %161 = call double @sqrt(double noundef %160) #5
  store double %161, ptr %153, align 8, !tbaa !5
  store double 0x3D719799812DEA11, ptr %61, align 8, !tbaa !5
  %162 = load double, ptr %47, align 8, !tbaa !5
  %163 = load double, ptr %47, align 8, !tbaa !5
  %164 = fmul double %162, %163
  store double %164, ptr %63, align 8, !tbaa !5
  %165 = load double, ptr %48, align 8, !tbaa !5
  %166 = fmul double 2.500000e-01, %165
  %167 = load double, ptr %154, align 8, !tbaa !5
  %168 = fdiv double %166, %167
  store double %168, ptr %139, align 8, !tbaa !5
  %169 = load double, ptr %139, align 8, !tbaa !5
  %170 = fmul double 5.000000e-01, %169
  store double %170, ptr %140, align 8, !tbaa !5
  %171 = load double, ptr %139, align 8, !tbaa !5
  %172 = load double, ptr %49, align 8, !tbaa !5
  %173 = fsub double 1.000000e+00, %172
  %174 = fdiv double %171, %173
  store double %174, ptr %141, align 8, !tbaa !5
  %175 = load double, ptr %63, align 8, !tbaa !5
  %176 = load double, ptr %141, align 8, !tbaa !5
  %177 = fmul double %175, %176
  store double %177, ptr %142, align 8, !tbaa !5
  %178 = load double, ptr %63, align 8, !tbaa !5
  %179 = load double, ptr %140, align 8, !tbaa !5
  %180 = fmul double %178, %179
  store double %180, ptr %143, align 8, !tbaa !5
  %181 = load ptr, ptr %51, align 8, !tbaa !9
  store double 0.000000e+00, ptr %181, align 8, !tbaa !5
  %182 = load ptr, ptr %52, align 8, !tbaa !9
  store double 0.000000e+00, ptr %182, align 8, !tbaa !5
  %183 = load ptr, ptr %53, align 8, !tbaa !9
  store double 0.000000e+00, ptr %183, align 8, !tbaa !5
  %184 = load ptr, ptr %54, align 8, !tbaa !9
  store double 0.000000e+00, ptr %184, align 8, !tbaa !5
  %185 = load ptr, ptr %55, align 8, !tbaa !9
  store double 0.000000e+00, ptr %185, align 8, !tbaa !5
  %186 = load ptr, ptr %56, align 8, !tbaa !9
  store double 0.000000e+00, ptr %186, align 8, !tbaa !5
  %187 = load double, ptr %29, align 8, !tbaa !5
  %188 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 0
  store double %187, ptr %188, align 16, !tbaa !5
  %189 = load double, ptr %30, align 8, !tbaa !5
  %190 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 1
  store double %189, ptr %190, align 8, !tbaa !5
  %191 = load double, ptr %31, align 8, !tbaa !5
  %192 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 2
  store double %191, ptr %192, align 16, !tbaa !5
  %193 = load double, ptr %32, align 8, !tbaa !5
  %194 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 0
  store double %193, ptr %194, align 16, !tbaa !5
  %195 = load double, ptr %33, align 8, !tbaa !5
  %196 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 1
  store double %195, ptr %196, align 8, !tbaa !5
  %197 = load double, ptr %34, align 8, !tbaa !5
  %198 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 2
  store double %197, ptr %198, align 16, !tbaa !5
  %199 = load double, ptr %35, align 8, !tbaa !5
  %200 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 0
  store double %199, ptr %200, align 16, !tbaa !5
  %201 = load double, ptr %36, align 8, !tbaa !5
  %202 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 1
  store double %201, ptr %202, align 8, !tbaa !5
  %203 = load double, ptr %37, align 8, !tbaa !5
  %204 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 2
  store double %203, ptr %204, align 16, !tbaa !5
  %205 = load double, ptr %38, align 8, !tbaa !5
  %206 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 0
  store double %205, ptr %206, align 16, !tbaa !5
  %207 = load double, ptr %39, align 8, !tbaa !5
  %208 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 1
  store double %207, ptr %208, align 8, !tbaa !5
  %209 = load double, ptr %40, align 8, !tbaa !5
  %210 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 2
  store double %209, ptr %210, align 16, !tbaa !5
  %211 = load double, ptr %44, align 8, !tbaa !5
  %212 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 0
  store double %211, ptr %212, align 16, !tbaa !5
  %213 = load double, ptr %45, align 8, !tbaa !5
  %214 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 1
  store double %213, ptr %214, align 8, !tbaa !5
  %215 = load double, ptr %46, align 8, !tbaa !5
  %216 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 2
  store double %215, ptr %216, align 16, !tbaa !5
  %217 = load double, ptr %41, align 8, !tbaa !5
  %218 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 0
  store double %217, ptr %218, align 16, !tbaa !5
  %219 = load double, ptr %42, align 8, !tbaa !5
  %220 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 1
  store double %219, ptr %220, align 8, !tbaa !5
  %221 = load double, ptr %43, align 8, !tbaa !5
  %222 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 2
  store double %221, ptr %222, align 16, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %223

223:                                              ; preds = %251, %28
  %224 = load i32, ptr %57, align 4, !tbaa !11
  %225 = icmp slt i32 %224, 3
  br i1 %225, label %226, label %254

226:                                              ; preds = %223
  %227 = load i32, ptr %57, align 4, !tbaa !11
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 %228
  %230 = load double, ptr %229, align 8, !tbaa !5
  %231 = load i32, ptr %57, align 4, !tbaa !11
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 %232
  %234 = load double, ptr %233, align 8, !tbaa !5
  %235 = fsub double %230, %234
  %236 = load i32, ptr %57, align 4, !tbaa !11
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %237
  store double %235, ptr %238, align 8, !tbaa !5
  %239 = load i32, ptr %57, align 4, !tbaa !11
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 %240
  %242 = load double, ptr %241, align 8, !tbaa !5
  %243 = load i32, ptr %57, align 4, !tbaa !11
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 %244
  %246 = load double, ptr %245, align 8, !tbaa !5
  %247 = fsub double %242, %246
  %248 = load i32, ptr %57, align 4, !tbaa !11
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %249
  store double %247, ptr %250, align 8, !tbaa !5
  br label %251

251:                                              ; preds = %226
  %252 = load i32, ptr %57, align 4, !tbaa !11
  %253 = add nsw i32 %252, 1
  store i32 %253, ptr %57, align 4, !tbaa !11
  br label %223, !llvm.loop !13

254:                                              ; preds = %223
  store double 0.000000e+00, ptr %79, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %255

255:                                              ; preds = %269, %254
  %256 = load i32, ptr %57, align 4, !tbaa !11
  %257 = icmp slt i32 %256, 3
  br i1 %257, label %258, label %272

258:                                              ; preds = %255
  %259 = load i32, ptr %57, align 4, !tbaa !11
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %260
  %262 = load double, ptr %261, align 8, !tbaa !5
  %263 = load i32, ptr %57, align 4, !tbaa !11
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %264
  %266 = load double, ptr %265, align 8, !tbaa !5
  %267 = load double, ptr %79, align 8, !tbaa !5
  %268 = call double @llvm.fmuladd.f64(double %262, double %266, double %267)
  store double %268, ptr %79, align 8, !tbaa !5
  br label %269

269:                                              ; preds = %258
  %270 = load i32, ptr %57, align 4, !tbaa !11
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr %57, align 4, !tbaa !11
  br label %255, !llvm.loop !15

272:                                              ; preds = %255
  %273 = load double, ptr %79, align 8, !tbaa !5
  %274 = call double @sqrt(double noundef %273) #5
  %275 = fdiv double 1.000000e+00, %274
  store double %275, ptr %84, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %276

276:                                              ; preds = %289, %272
  %277 = load i32, ptr %57, align 4, !tbaa !11
  %278 = icmp slt i32 %277, 3
  br i1 %278, label %279, label %292

279:                                              ; preds = %276
  %280 = load i32, ptr %57, align 4, !tbaa !11
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !5
  %284 = load double, ptr %84, align 8, !tbaa !5
  %285 = fmul double %283, %284
  %286 = load i32, ptr %57, align 4, !tbaa !11
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %287
  store double %285, ptr %288, align 8, !tbaa !5
  br label %289

289:                                              ; preds = %279
  %290 = load i32, ptr %57, align 4, !tbaa !11
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %57, align 4, !tbaa !11
  br label %276, !llvm.loop !16

292:                                              ; preds = %276
  store double 0.000000e+00, ptr %62, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %293

293:                                              ; preds = %307, %292
  %294 = load i32, ptr %57, align 4, !tbaa !11
  %295 = icmp slt i32 %294, 3
  br i1 %295, label %296, label %310

296:                                              ; preds = %293
  %297 = load i32, ptr %57, align 4, !tbaa !11
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !5
  %301 = load i32, ptr %57, align 4, !tbaa !11
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %302
  %304 = load double, ptr %303, align 8, !tbaa !5
  %305 = load double, ptr %62, align 8, !tbaa !5
  %306 = call double @llvm.fmuladd.f64(double %300, double %304, double %305)
  store double %306, ptr %62, align 8, !tbaa !5
  br label %307

307:                                              ; preds = %296
  %308 = load i32, ptr %57, align 4, !tbaa !11
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr %57, align 4, !tbaa !11
  br label %293, !llvm.loop !17

310:                                              ; preds = %293
  %311 = load double, ptr %62, align 8, !tbaa !5
  %312 = fcmp olt double %311, 0.000000e+00
  br i1 %312, label %313, label %353

313:                                              ; preds = %310
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %314

314:                                              ; preds = %349, %313
  %315 = load i32, ptr %57, align 4, !tbaa !11
  %316 = icmp slt i32 %315, 3
  br i1 %316, label %317, label %352

317:                                              ; preds = %314
  %318 = load i32, ptr %57, align 4, !tbaa !11
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 %319
  %321 = load double, ptr %320, align 8, !tbaa !5
  store double %321, ptr %94, align 8, !tbaa !5
  %322 = load i32, ptr %57, align 4, !tbaa !11
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 %323
  %325 = load double, ptr %324, align 8, !tbaa !5
  %326 = load i32, ptr %57, align 4, !tbaa !11
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 %327
  store double %325, ptr %328, align 8, !tbaa !5
  %329 = load double, ptr %94, align 8, !tbaa !5
  %330 = load i32, ptr %57, align 4, !tbaa !11
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 %331
  store double %329, ptr %332, align 8, !tbaa !5
  %333 = load i32, ptr %57, align 4, !tbaa !11
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %334
  %336 = load double, ptr %335, align 8, !tbaa !5
  %337 = fneg double %336
  %338 = load i32, ptr %57, align 4, !tbaa !11
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %339
  store double %337, ptr %340, align 8, !tbaa !5
  %341 = load i32, ptr %57, align 4, !tbaa !11
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %342
  %344 = load double, ptr %343, align 8, !tbaa !5
  %345 = fneg double %344
  %346 = load i32, ptr %57, align 4, !tbaa !11
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %347
  store double %345, ptr %348, align 8, !tbaa !5
  br label %349

349:                                              ; preds = %317
  %350 = load i32, ptr %57, align 4, !tbaa !11
  %351 = add nsw i32 %350, 1
  store i32 %351, ptr %57, align 4, !tbaa !11
  br label %314, !llvm.loop !18

352:                                              ; preds = %314
  br label %353

353:                                              ; preds = %352, %310
  store double 0.000000e+00, ptr %94, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %354

354:                                              ; preds = %368, %353
  %355 = load i32, ptr %57, align 4, !tbaa !11
  %356 = icmp slt i32 %355, 3
  br i1 %356, label %357, label %371

357:                                              ; preds = %354
  %358 = load i32, ptr %57, align 4, !tbaa !11
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %359
  %361 = load double, ptr %360, align 8, !tbaa !5
  %362 = load i32, ptr %57, align 4, !tbaa !11
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %363
  %365 = load double, ptr %364, align 8, !tbaa !5
  %366 = load double, ptr %94, align 8, !tbaa !5
  %367 = call double @llvm.fmuladd.f64(double %361, double %365, double %366)
  store double %367, ptr %94, align 8, !tbaa !5
  br label %368

368:                                              ; preds = %357
  %369 = load i32, ptr %57, align 4, !tbaa !11
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %57, align 4, !tbaa !11
  br label %354, !llvm.loop !19

371:                                              ; preds = %354
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %389, %371
  %373 = load i32, ptr %57, align 4, !tbaa !11
  %374 = icmp slt i32 %373, 3
  br i1 %374, label %375, label %392

375:                                              ; preds = %372
  %376 = load i32, ptr %57, align 4, !tbaa !11
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 %377
  %379 = load double, ptr %378, align 8, !tbaa !5
  %380 = load double, ptr %94, align 8, !tbaa !5
  %381 = load i32, ptr %57, align 4, !tbaa !11
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %382
  %384 = load double, ptr %383, align 8, !tbaa !5
  %385 = call double @llvm.fmuladd.f64(double %380, double %384, double %379)
  %386 = load i32, ptr %57, align 4, !tbaa !11
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %387
  store double %385, ptr %388, align 8, !tbaa !5
  br label %389

389:                                              ; preds = %375
  %390 = load i32, ptr %57, align 4, !tbaa !11
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr %57, align 4, !tbaa !11
  br label %372, !llvm.loop !20

392:                                              ; preds = %372
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %393

393:                                              ; preds = %409, %392
  %394 = load i32, ptr %57, align 4, !tbaa !11
  %395 = icmp slt i32 %394, 3
  br i1 %395, label %396, label %412

396:                                              ; preds = %393
  %397 = load i32, ptr %57, align 4, !tbaa !11
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 %398
  %400 = load double, ptr %399, align 8, !tbaa !5
  %401 = load i32, ptr %57, align 4, !tbaa !11
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %402
  %404 = load double, ptr %403, align 8, !tbaa !5
  %405 = fsub double %400, %404
  %406 = load i32, ptr %57, align 4, !tbaa !11
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %407
  store double %405, ptr %408, align 8, !tbaa !5
  br label %409

409:                                              ; preds = %396
  %410 = load i32, ptr %57, align 4, !tbaa !11
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr %57, align 4, !tbaa !11
  br label %393, !llvm.loop !21

412:                                              ; preds = %393
  store double 0.000000e+00, ptr %94, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %413

413:                                              ; preds = %427, %412
  %414 = load i32, ptr %57, align 4, !tbaa !11
  %415 = icmp slt i32 %414, 3
  br i1 %415, label %416, label %430

416:                                              ; preds = %413
  %417 = load i32, ptr %57, align 4, !tbaa !11
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %418
  %420 = load double, ptr %419, align 8, !tbaa !5
  %421 = load i32, ptr %57, align 4, !tbaa !11
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %422
  %424 = load double, ptr %423, align 8, !tbaa !5
  %425 = load double, ptr %94, align 8, !tbaa !5
  %426 = call double @llvm.fmuladd.f64(double %420, double %424, double %425)
  store double %426, ptr %94, align 8, !tbaa !5
  br label %427

427:                                              ; preds = %416
  %428 = load i32, ptr %57, align 4, !tbaa !11
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr %57, align 4, !tbaa !11
  br label %413, !llvm.loop !22

430:                                              ; preds = %413
  %431 = load double, ptr %94, align 8, !tbaa !5
  %432 = call double @sqrt(double noundef %431) #5
  store double %432, ptr %99, align 8, !tbaa !5
  %433 = load double, ptr %99, align 8, !tbaa !5
  %434 = fmul double %433, 5.000000e-01
  %435 = load double, ptr %153, align 8, !tbaa !5
  %436 = fmul double %434, %435
  store double %436, ptr %94, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %437

437:                                              ; preds = %450, %430
  %438 = load i32, ptr %57, align 4, !tbaa !11
  %439 = icmp slt i32 %438, 3
  br i1 %439, label %440, label %453

440:                                              ; preds = %437
  %441 = load double, ptr %94, align 8, !tbaa !5
  %442 = load i32, ptr %57, align 4, !tbaa !11
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %443
  %445 = load double, ptr %444, align 8, !tbaa !5
  %446 = fmul double %441, %445
  %447 = load i32, ptr %57, align 4, !tbaa !11
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %448
  store double %446, ptr %449, align 8, !tbaa !5
  br label %450

450:                                              ; preds = %440
  %451 = load i32, ptr %57, align 4, !tbaa !11
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr %57, align 4, !tbaa !11
  br label %437, !llvm.loop !23

453:                                              ; preds = %437
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %454

454:                                              ; preds = %490, %453
  %455 = load i32, ptr %57, align 4, !tbaa !11
  %456 = icmp slt i32 %455, 3
  br i1 %456, label %457, label %493

457:                                              ; preds = %454
  %458 = load i32, ptr %57, align 4, !tbaa !11
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 %459
  %461 = load double, ptr %460, align 8, !tbaa !5
  %462 = load i32, ptr %57, align 4, !tbaa !11
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %463
  %465 = load double, ptr %464, align 8, !tbaa !5
  %466 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %465, double %461)
  %467 = load i32, ptr %57, align 4, !tbaa !11
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %468
  %470 = load double, ptr %469, align 8, !tbaa !5
  %471 = fadd double %466, %470
  %472 = load i32, ptr %57, align 4, !tbaa !11
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 %473
  store double %471, ptr %474, align 8, !tbaa !5
  %475 = load i32, ptr %57, align 4, !tbaa !11
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds [3 x double], ptr %76, i64 0, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !5
  %479 = load i32, ptr %57, align 4, !tbaa !11
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds [3 x double], ptr %75, i64 0, i64 %480
  %482 = load double, ptr %481, align 8, !tbaa !5
  %483 = fneg double %482
  %484 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %478, double %483)
  %485 = load i32, ptr %57, align 4, !tbaa !11
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %486
  %488 = load double, ptr %487, align 8, !tbaa !5
  %489 = fadd double %488, %484
  store double %489, ptr %487, align 8, !tbaa !5
  br label %490

490:                                              ; preds = %457
  %491 = load i32, ptr %57, align 4, !tbaa !11
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr %57, align 4, !tbaa !11
  br label %454, !llvm.loop !24

493:                                              ; preds = %454
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %494

494:                                              ; preds = %521, %493
  %495 = load i32, ptr %57, align 4, !tbaa !11
  %496 = icmp slt i32 %495, 3
  br i1 %496, label %497, label %524

497:                                              ; preds = %494
  %498 = load i32, ptr %57, align 4, !tbaa !11
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 %499
  %501 = load double, ptr %500, align 8, !tbaa !5
  %502 = load i32, ptr %57, align 4, !tbaa !11
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 %503
  %505 = load double, ptr %504, align 8, !tbaa !5
  %506 = fadd double %501, %505
  %507 = load i32, ptr %57, align 4, !tbaa !11
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !5
  %511 = load i32, ptr %57, align 4, !tbaa !11
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %512
  %514 = load double, ptr %513, align 8, !tbaa !5
  %515 = fadd double %510, %514
  %516 = fsub double %506, %515
  %517 = fmul double 5.000000e-01, %516
  %518 = load i32, ptr %57, align 4, !tbaa !11
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds [3 x double], ptr %80, i64 0, i64 %519
  store double %517, ptr %520, align 8, !tbaa !5
  br label %521

521:                                              ; preds = %497
  %522 = load i32, ptr %57, align 4, !tbaa !11
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr %57, align 4, !tbaa !11
  br label %494, !llvm.loop !25

524:                                              ; preds = %494
  store double 0.000000e+00, ptr %81, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %525

525:                                              ; preds = %539, %524
  %526 = load i32, ptr %57, align 4, !tbaa !11
  %527 = icmp slt i32 %526, 3
  br i1 %527, label %528, label %542

528:                                              ; preds = %525
  %529 = load i32, ptr %57, align 4, !tbaa !11
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds [3 x double], ptr %80, i64 0, i64 %530
  %532 = load double, ptr %531, align 8, !tbaa !5
  %533 = load i32, ptr %57, align 4, !tbaa !11
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %534
  %536 = load double, ptr %535, align 8, !tbaa !5
  %537 = load double, ptr %81, align 8, !tbaa !5
  %538 = call double @llvm.fmuladd.f64(double %532, double %536, double %537)
  store double %538, ptr %81, align 8, !tbaa !5
  br label %539

539:                                              ; preds = %528
  %540 = load i32, ptr %57, align 4, !tbaa !11
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr %57, align 4, !tbaa !11
  br label %525, !llvm.loop !26

542:                                              ; preds = %525
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %543

543:                                              ; preds = %561, %542
  %544 = load i32, ptr %57, align 4, !tbaa !11
  %545 = icmp slt i32 %544, 3
  br i1 %545, label %546, label %564

546:                                              ; preds = %543
  %547 = load i32, ptr %57, align 4, !tbaa !11
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds [3 x double], ptr %80, i64 0, i64 %548
  %550 = load double, ptr %549, align 8, !tbaa !5
  %551 = load double, ptr %81, align 8, !tbaa !5
  %552 = load i32, ptr %57, align 4, !tbaa !11
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %553
  %555 = load double, ptr %554, align 8, !tbaa !5
  %556 = fneg double %551
  %557 = call double @llvm.fmuladd.f64(double %556, double %555, double %550)
  %558 = load i32, ptr %57, align 4, !tbaa !11
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %559
  store double %557, ptr %560, align 8, !tbaa !5
  br label %561

561:                                              ; preds = %546
  %562 = load i32, ptr %57, align 4, !tbaa !11
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %57, align 4, !tbaa !11
  br label %543, !llvm.loop !27

564:                                              ; preds = %543
  store double 0.000000e+00, ptr %64, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %565

565:                                              ; preds = %579, %564
  %566 = load i32, ptr %57, align 4, !tbaa !11
  %567 = icmp slt i32 %566, 3
  br i1 %567, label %568, label %582

568:                                              ; preds = %565
  %569 = load i32, ptr %57, align 4, !tbaa !11
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %570
  %572 = load double, ptr %571, align 8, !tbaa !5
  %573 = load i32, ptr %57, align 4, !tbaa !11
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %574
  %576 = load double, ptr %575, align 8, !tbaa !5
  %577 = load double, ptr %64, align 8, !tbaa !5
  %578 = call double @llvm.fmuladd.f64(double %572, double %576, double %577)
  store double %578, ptr %64, align 8, !tbaa !5
  br label %579

579:                                              ; preds = %568
  %580 = load i32, ptr %57, align 4, !tbaa !11
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr %57, align 4, !tbaa !11
  br label %565, !llvm.loop !28

582:                                              ; preds = %565
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %583

583:                                              ; preds = %593, %582
  %584 = load i32, ptr %58, align 4, !tbaa !11
  %585 = icmp slt i32 %584, 2
  br i1 %585, label %586, label %596

586:                                              ; preds = %583
  %587 = load i32, ptr %58, align 4, !tbaa !11
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 %588
  store double 0.000000e+00, ptr %589, align 8, !tbaa !5
  %590 = load i32, ptr %58, align 4, !tbaa !11
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds [2 x double], ptr %86, i64 0, i64 %591
  store double 0.000000e+00, ptr %592, align 8, !tbaa !5
  br label %593

593:                                              ; preds = %586
  %594 = load i32, ptr %58, align 4, !tbaa !11
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr %58, align 4, !tbaa !11
  br label %583, !llvm.loop !29

596:                                              ; preds = %583
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %597

597:                                              ; preds = %647, %596
  %598 = load i32, ptr %57, align 4, !tbaa !11
  %599 = icmp slt i32 %598, 3
  br i1 %599, label %600, label %650

600:                                              ; preds = %597
  %601 = load i32, ptr %57, align 4, !tbaa !11
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 %602
  %604 = load double, ptr %603, align 8, !tbaa !5
  %605 = load i32, ptr %57, align 4, !tbaa !11
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %606
  %608 = load double, ptr %607, align 8, !tbaa !5
  %609 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 0
  %610 = load double, ptr %609, align 16, !tbaa !5
  %611 = call double @llvm.fmuladd.f64(double %604, double %608, double %610)
  store double %611, ptr %609, align 16, !tbaa !5
  %612 = load i32, ptr %57, align 4, !tbaa !11
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 %613
  %615 = load double, ptr %614, align 8, !tbaa !5
  %616 = load i32, ptr %57, align 4, !tbaa !11
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %617
  %619 = load double, ptr %618, align 8, !tbaa !5
  %620 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 1
  %621 = load double, ptr %620, align 8, !tbaa !5
  %622 = call double @llvm.fmuladd.f64(double %615, double %619, double %621)
  store double %622, ptr %620, align 8, !tbaa !5
  %623 = load i32, ptr %57, align 4, !tbaa !11
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 %624
  %626 = load double, ptr %625, align 8, !tbaa !5
  %627 = fneg double %626
  %628 = load i32, ptr %57, align 4, !tbaa !11
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %629
  %631 = load double, ptr %630, align 8, !tbaa !5
  %632 = getelementptr inbounds [2 x double], ptr %86, i64 0, i64 0
  %633 = load double, ptr %632, align 16, !tbaa !5
  %634 = call double @llvm.fmuladd.f64(double %627, double %631, double %633)
  store double %634, ptr %632, align 16, !tbaa !5
  %635 = load i32, ptr %57, align 4, !tbaa !11
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %636
  %638 = load double, ptr %637, align 8, !tbaa !5
  %639 = fneg double %638
  %640 = load i32, ptr %57, align 4, !tbaa !11
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %641
  %643 = load double, ptr %642, align 8, !tbaa !5
  %644 = getelementptr inbounds [2 x double], ptr %86, i64 0, i64 1
  %645 = load double, ptr %644, align 8, !tbaa !5
  %646 = call double @llvm.fmuladd.f64(double %639, double %643, double %645)
  store double %646, ptr %644, align 8, !tbaa !5
  br label %647

647:                                              ; preds = %600
  %648 = load i32, ptr %57, align 4, !tbaa !11
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr %57, align 4, !tbaa !11
  br label %597, !llvm.loop !30

650:                                              ; preds = %597
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %651

651:                                              ; preds = %687, %650
  %652 = load i32, ptr %58, align 4, !tbaa !11
  %653 = icmp slt i32 %652, 2
  br i1 %653, label %654, label %690

654:                                              ; preds = %651
  %655 = load i32, ptr %58, align 4, !tbaa !11
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 %656
  %658 = load double, ptr %657, align 8, !tbaa !5
  %659 = load i32, ptr %58, align 4, !tbaa !11
  %660 = mul nsw i32 2, %659
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds [4 x double], ptr %87, i64 0, i64 %661
  store double %658, ptr %662, align 8, !tbaa !5
  %663 = load i32, ptr %58, align 4, !tbaa !11
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 %664
  %666 = load double, ptr %665, align 8, !tbaa !5
  %667 = load i32, ptr %58, align 4, !tbaa !11
  %668 = mul nsw i32 2, %667
  %669 = add nsw i32 %668, 1
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds [4 x double], ptr %87, i64 0, i64 %670
  store double %666, ptr %671, align 8, !tbaa !5
  %672 = load i32, ptr %58, align 4, !tbaa !11
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds [2 x double], ptr %86, i64 0, i64 %673
  %675 = load double, ptr %674, align 8, !tbaa !5
  %676 = load i32, ptr %58, align 4, !tbaa !11
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %677
  store double %675, ptr %678, align 8, !tbaa !5
  %679 = load i32, ptr %58, align 4, !tbaa !11
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds [2 x double], ptr %86, i64 0, i64 %680
  %682 = load double, ptr %681, align 8, !tbaa !5
  %683 = load i32, ptr %58, align 4, !tbaa !11
  %684 = add nsw i32 %683, 2
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %685
  store double %682, ptr %686, align 8, !tbaa !5
  br label %687

687:                                              ; preds = %654
  %688 = load i32, ptr %58, align 4, !tbaa !11
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr %58, align 4, !tbaa !11
  br label %651, !llvm.loop !31

690:                                              ; preds = %651
  %691 = load double, ptr %63, align 8, !tbaa !5
  %692 = load double, ptr %64, align 8, !tbaa !5
  %693 = fadd double %691, %692
  store double %693, ptr %65, align 8, !tbaa !5
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %694

694:                                              ; preds = %722, %690
  %695 = load i32, ptr %58, align 4, !tbaa !11
  %696 = icmp slt i32 %695, 4
  br i1 %696, label %697, label %725

697:                                              ; preds = %694
  %698 = load i32, ptr %58, align 4, !tbaa !11
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds [4 x double], ptr %87, i64 0, i64 %699
  %701 = load double, ptr %700, align 8, !tbaa !5
  %702 = load i32, ptr %58, align 4, !tbaa !11
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %703
  %705 = load double, ptr %704, align 8, !tbaa !5
  %706 = fadd double %701, %705
  %707 = load i32, ptr %58, align 4, !tbaa !11
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %708
  store double %706, ptr %709, align 8, !tbaa !5
  %710 = load i32, ptr %58, align 4, !tbaa !11
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds [4 x double], ptr %87, i64 0, i64 %711
  %713 = load double, ptr %712, align 8, !tbaa !5
  %714 = load i32, ptr %58, align 4, !tbaa !11
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %715
  %717 = load double, ptr %716, align 8, !tbaa !5
  %718 = fsub double %713, %717
  %719 = load i32, ptr %58, align 4, !tbaa !11
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds [4 x double], ptr %90, i64 0, i64 %720
  store double %718, ptr %721, align 8, !tbaa !5
  br label %722

722:                                              ; preds = %697
  %723 = load i32, ptr %58, align 4, !tbaa !11
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %58, align 4, !tbaa !11
  br label %694, !llvm.loop !32

725:                                              ; preds = %694
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %726

726:                                              ; preds = %743, %725
  %727 = load i32, ptr %58, align 4, !tbaa !11
  %728 = icmp slt i32 %727, 4
  br i1 %728, label %729, label %746

729:                                              ; preds = %726
  %730 = load double, ptr %65, align 8, !tbaa !5
  %731 = load i32, ptr %58, align 4, !tbaa !11
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %732
  %734 = load double, ptr %733, align 8, !tbaa !5
  %735 = load i32, ptr %58, align 4, !tbaa !11
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %736
  %738 = load double, ptr %737, align 8, !tbaa !5
  %739 = call double @llvm.fmuladd.f64(double %734, double %738, double %730)
  %740 = load i32, ptr %58, align 4, !tbaa !11
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %741
  store double %739, ptr %742, align 8, !tbaa !5
  br label %743

743:                                              ; preds = %729
  %744 = load i32, ptr %58, align 4, !tbaa !11
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr %58, align 4, !tbaa !11
  br label %726, !llvm.loop !33

746:                                              ; preds = %726
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %747

747:                                              ; preds = %759, %746
  %748 = load i32, ptr %58, align 4, !tbaa !11
  %749 = icmp slt i32 %748, 4
  br i1 %749, label %750, label %762

750:                                              ; preds = %747
  %751 = load i32, ptr %58, align 4, !tbaa !11
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %752
  %754 = load double, ptr %753, align 8, !tbaa !5
  %755 = call double @sqrt(double noundef %754) #5
  %756 = load i32, ptr %58, align 4, !tbaa !11
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %757
  store double %755, ptr %758, align 8, !tbaa !5
  br label %759

759:                                              ; preds = %750
  %760 = load i32, ptr %58, align 4, !tbaa !11
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr %58, align 4, !tbaa !11
  br label %747, !llvm.loop !34

762:                                              ; preds = %747
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %763

763:                                              ; preds = %775, %762
  %764 = load i32, ptr %58, align 4, !tbaa !11
  %765 = icmp slt i32 %764, 4
  br i1 %765, label %766, label %778

766:                                              ; preds = %763
  %767 = load i32, ptr %58, align 4, !tbaa !11
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %768
  %770 = load double, ptr %769, align 8, !tbaa !5
  %771 = fdiv double 1.000000e+00, %770
  %772 = load i32, ptr %58, align 4, !tbaa !11
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds [4 x double], ptr %92, i64 0, i64 %773
  store double %771, ptr %774, align 8, !tbaa !5
  br label %775

775:                                              ; preds = %766
  %776 = load i32, ptr %58, align 4, !tbaa !11
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr %58, align 4, !tbaa !11
  br label %763, !llvm.loop !35

778:                                              ; preds = %763
  %779 = load double, ptr %65, align 8, !tbaa !5
  %780 = fdiv double 1.000000e+00, %779
  store double %780, ptr %66, align 8, !tbaa !5
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %781

781:                                              ; preds = %810, %778
  %782 = load i32, ptr %58, align 4, !tbaa !11
  %783 = icmp slt i32 %782, 4
  br i1 %783, label %784, label %813

784:                                              ; preds = %781
  %785 = load i32, ptr %58, align 4, !tbaa !11
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %786
  %788 = load double, ptr %787, align 8, !tbaa !5
  %789 = load i32, ptr %58, align 4, !tbaa !11
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %790
  %792 = load double, ptr %791, align 8, !tbaa !5
  %793 = fadd double %788, %792
  %794 = load i32, ptr %58, align 4, !tbaa !11
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %795
  store double %793, ptr %796, align 8, !tbaa !5
  %797 = load i32, ptr %58, align 4, !tbaa !11
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %798
  %800 = load double, ptr %799, align 8, !tbaa !5
  %801 = load i32, ptr %58, align 4, !tbaa !11
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %802
  %804 = load double, ptr %803, align 8, !tbaa !5
  %805 = fsub double %800, %804
  %806 = load i32, ptr %58, align 4, !tbaa !11
  %807 = add nsw i32 %806, 4
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %808
  store double %805, ptr %809, align 8, !tbaa !5
  br label %810

810:                                              ; preds = %784
  %811 = load i32, ptr %58, align 4, !tbaa !11
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr %58, align 4, !tbaa !11
  br label %781, !llvm.loop !36

813:                                              ; preds = %781
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %814

814:                                              ; preds = %834, %813
  %815 = load i32, ptr %58, align 4, !tbaa !11
  %816 = icmp slt i32 %815, 4
  br i1 %816, label %817, label %837

817:                                              ; preds = %814
  %818 = load i32, ptr %58, align 4, !tbaa !11
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %819
  %821 = load double, ptr %820, align 8, !tbaa !5
  %822 = call double @log(double noundef %821) #5
  %823 = load i32, ptr %58, align 4, !tbaa !11
  %824 = add nsw i32 %823, 4
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 %825
  %827 = load double, ptr %826, align 8, !tbaa !5
  %828 = call double @log(double noundef %827) #5
  %829 = fsub double %822, %828
  %830 = fmul double 5.000000e-01, %829
  %831 = load i32, ptr %58, align 4, !tbaa !11
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds [4 x double], ptr %93, i64 0, i64 %832
  store double %830, ptr %833, align 8, !tbaa !5
  br label %834

834:                                              ; preds = %817
  %835 = load i32, ptr %58, align 4, !tbaa !11
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr %58, align 4, !tbaa !11
  br label %814, !llvm.loop !37

837:                                              ; preds = %814
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %838

838:                                              ; preds = %871, %837
  %839 = load i32, ptr %58, align 4, !tbaa !11
  %840 = icmp slt i32 %839, 4
  br i1 %840, label %841, label %874

841:                                              ; preds = %838
  %842 = load i32, ptr %58, align 4, !tbaa !11
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds [4 x double], ptr %90, i64 0, i64 %843
  %845 = load double, ptr %844, align 8, !tbaa !5
  %846 = load i32, ptr %58, align 4, !tbaa !11
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %847
  %849 = load double, ptr %848, align 8, !tbaa !5
  %850 = fmul double %845, %849
  %851 = load double, ptr %66, align 8, !tbaa !5
  %852 = fmul double %850, %851
  %853 = load i32, ptr %58, align 4, !tbaa !11
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds [4 x double], ptr %96, i64 0, i64 %854
  store double %852, ptr %855, align 8, !tbaa !5
  %856 = load double, ptr %66, align 8, !tbaa !5
  %857 = fneg double %856
  %858 = load i32, ptr %58, align 4, !tbaa !11
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds [4 x double], ptr %89, i64 0, i64 %859
  %861 = load double, ptr %860, align 8, !tbaa !5
  %862 = fmul double %857, %861
  %863 = load i32, ptr %58, align 4, !tbaa !11
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds [4 x double], ptr %92, i64 0, i64 %864
  %866 = load double, ptr %865, align 8, !tbaa !5
  %867 = fmul double %862, %866
  %868 = load i32, ptr %58, align 4, !tbaa !11
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds [4 x double], ptr %121, i64 0, i64 %869
  store double %867, ptr %870, align 8, !tbaa !5
  br label %871

871:                                              ; preds = %841
  %872 = load i32, ptr %58, align 4, !tbaa !11
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr %58, align 4, !tbaa !11
  br label %838, !llvm.loop !38

874:                                              ; preds = %838
  %875 = load double, ptr %66, align 8, !tbaa !5
  %876 = fmul double 2.000000e+00, %875
  store double %876, ptr %94, align 8, !tbaa !5
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %877

877:                                              ; preds = %973, %874
  %878 = load i32, ptr %58, align 4, !tbaa !11
  %879 = icmp slt i32 %878, 4
  br i1 %879, label %880, label %976

880:                                              ; preds = %877
  %881 = load i32, ptr %58, align 4, !tbaa !11
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %882
  %884 = load double, ptr %883, align 8, !tbaa !5
  %885 = load i32, ptr %58, align 4, !tbaa !11
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds [4 x double], ptr %115, i64 0, i64 %886
  store double %884, ptr %887, align 8, !tbaa !5
  %888 = load i32, ptr %58, align 4, !tbaa !11
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds [4 x double], ptr %93, i64 0, i64 %889
  %891 = load double, ptr %890, align 8, !tbaa !5
  %892 = load i32, ptr %58, align 4, !tbaa !11
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds [4 x double], ptr %96, i64 0, i64 %893
  %895 = load double, ptr %894, align 8, !tbaa !5
  %896 = fsub double %891, %895
  %897 = load i32, ptr %58, align 4, !tbaa !11
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds [4 x double], ptr %116, i64 0, i64 %898
  store double %896, ptr %899, align 8, !tbaa !5
  %900 = load i32, ptr %58, align 4, !tbaa !11
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds [4 x double], ptr %93, i64 0, i64 %901
  %903 = load double, ptr %902, align 8, !tbaa !5
  %904 = fneg double %903
  %905 = load i32, ptr %58, align 4, !tbaa !11
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds [4 x double], ptr %117, i64 0, i64 %906
  store double %904, ptr %907, align 8, !tbaa !5
  %908 = load i32, ptr %58, align 4, !tbaa !11
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %909
  %911 = load double, ptr %910, align 8, !tbaa !5
  %912 = load i32, ptr %58, align 4, !tbaa !11
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds [4 x double], ptr %93, i64 0, i64 %913
  %915 = load double, ptr %914, align 8, !tbaa !5
  %916 = load i32, ptr %58, align 4, !tbaa !11
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %917
  %919 = load double, ptr %918, align 8, !tbaa !5
  %920 = fneg double %919
  %921 = call double @llvm.fmuladd.f64(double %911, double %915, double %920)
  %922 = load i32, ptr %58, align 4, !tbaa !11
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds [4 x double], ptr %118, i64 0, i64 %923
  store double %921, ptr %924, align 8, !tbaa !5
  %925 = load double, ptr %94, align 8, !tbaa !5
  %926 = load i32, ptr %58, align 4, !tbaa !11
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 %927
  %929 = load double, ptr %928, align 8, !tbaa !5
  %930 = load i32, ptr %58, align 4, !tbaa !11
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds [4 x double], ptr %92, i64 0, i64 %931
  %933 = load double, ptr %932, align 8, !tbaa !5
  %934 = fneg double %933
  %935 = call double @llvm.fmuladd.f64(double %925, double %929, double %934)
  %936 = load i32, ptr %58, align 4, !tbaa !11
  %937 = sext i32 %936 to i64
  %938 = getelementptr inbounds [4 x double], ptr %119, i64 0, i64 %937
  store double %935, ptr %938, align 8, !tbaa !5
  %939 = load i32, ptr %58, align 4, !tbaa !11
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds [4 x double], ptr %96, i64 0, i64 %940
  %942 = load double, ptr %941, align 8, !tbaa !5
  %943 = load i32, ptr %58, align 4, !tbaa !11
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds [4 x double], ptr %87, i64 0, i64 %944
  %946 = load double, ptr %945, align 8, !tbaa !5
  %947 = load i32, ptr %58, align 4, !tbaa !11
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds [4 x double], ptr %92, i64 0, i64 %948
  %950 = load double, ptr %949, align 8, !tbaa !5
  %951 = fneg double %946
  %952 = call double @llvm.fmuladd.f64(double %951, double %950, double %942)
  %953 = load i32, ptr %58, align 4, !tbaa !11
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds [4 x double], ptr %120, i64 0, i64 %954
  store double %952, ptr %955, align 8, !tbaa !5
  %956 = load i32, ptr %58, align 4, !tbaa !11
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds [4 x double], ptr %92, i64 0, i64 %957
  %959 = load double, ptr %958, align 8, !tbaa !5
  %960 = load i32, ptr %58, align 4, !tbaa !11
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds [4 x double], ptr %88, i64 0, i64 %961
  %963 = load double, ptr %962, align 8, !tbaa !5
  %964 = load i32, ptr %58, align 4, !tbaa !11
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds [4 x double], ptr %121, i64 0, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !5
  %968 = fneg double %963
  %969 = call double @llvm.fmuladd.f64(double %968, double %967, double %959)
  %970 = load i32, ptr %58, align 4, !tbaa !11
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds [4 x double], ptr %122, i64 0, i64 %971
  store double %969, ptr %972, align 8, !tbaa !5
  br label %973

973:                                              ; preds = %880
  %974 = load i32, ptr %58, align 4, !tbaa !11
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr %58, align 4, !tbaa !11
  br label %877, !llvm.loop !39

976:                                              ; preds = %877
  store double 0.000000e+00, ptr %123, align 8, !tbaa !5
  store double 0.000000e+00, ptr %124, align 8, !tbaa !5
  store double 0.000000e+00, ptr %125, align 8, !tbaa !5
  store double 0.000000e+00, ptr %126, align 8, !tbaa !5
  store double 0.000000e+00, ptr %127, align 8, !tbaa !5
  store double 0.000000e+00, ptr %128, align 8, !tbaa !5
  store double 0.000000e+00, ptr %129, align 8, !tbaa !5
  store double 0.000000e+00, ptr %130, align 8, !tbaa !5
  store i32 1, ptr %58, align 4, !tbaa !11
  br label %977

977:                                              ; preds = %1045, %976
  %978 = load i32, ptr %58, align 4, !tbaa !11
  %979 = icmp slt i32 %978, 3
  br i1 %979, label %980, label %1048

980:                                              ; preds = %977
  %981 = load i32, ptr %58, align 4, !tbaa !11
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds [4 x double], ptr %115, i64 0, i64 %982
  %984 = load double, ptr %983, align 8, !tbaa !5
  %985 = fneg double %984
  %986 = load i32, ptr %58, align 4, !tbaa !11
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds [4 x double], ptr %115, i64 0, i64 %987
  store double %985, ptr %988, align 8, !tbaa !5
  %989 = load i32, ptr %58, align 4, !tbaa !11
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds [4 x double], ptr %116, i64 0, i64 %990
  %992 = load double, ptr %991, align 8, !tbaa !5
  %993 = fneg double %992
  %994 = load i32, ptr %58, align 4, !tbaa !11
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds [4 x double], ptr %116, i64 0, i64 %995
  store double %993, ptr %996, align 8, !tbaa !5
  %997 = load i32, ptr %58, align 4, !tbaa !11
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds [4 x double], ptr %117, i64 0, i64 %998
  %1000 = load double, ptr %999, align 8, !tbaa !5
  %1001 = fneg double %1000
  %1002 = load i32, ptr %58, align 4, !tbaa !11
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds [4 x double], ptr %117, i64 0, i64 %1003
  store double %1001, ptr %1004, align 8, !tbaa !5
  %1005 = load i32, ptr %58, align 4, !tbaa !11
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds [4 x double], ptr %118, i64 0, i64 %1006
  %1008 = load double, ptr %1007, align 8, !tbaa !5
  %1009 = fneg double %1008
  %1010 = load i32, ptr %58, align 4, !tbaa !11
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds [4 x double], ptr %118, i64 0, i64 %1011
  store double %1009, ptr %1012, align 8, !tbaa !5
  %1013 = load i32, ptr %58, align 4, !tbaa !11
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds [4 x double], ptr %119, i64 0, i64 %1014
  %1016 = load double, ptr %1015, align 8, !tbaa !5
  %1017 = fneg double %1016
  %1018 = load i32, ptr %58, align 4, !tbaa !11
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds [4 x double], ptr %119, i64 0, i64 %1019
  store double %1017, ptr %1020, align 8, !tbaa !5
  %1021 = load i32, ptr %58, align 4, !tbaa !11
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds [4 x double], ptr %120, i64 0, i64 %1022
  %1024 = load double, ptr %1023, align 8, !tbaa !5
  %1025 = fneg double %1024
  %1026 = load i32, ptr %58, align 4, !tbaa !11
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds [4 x double], ptr %120, i64 0, i64 %1027
  store double %1025, ptr %1028, align 8, !tbaa !5
  %1029 = load i32, ptr %58, align 4, !tbaa !11
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds [4 x double], ptr %121, i64 0, i64 %1030
  %1032 = load double, ptr %1031, align 8, !tbaa !5
  %1033 = fneg double %1032
  %1034 = load i32, ptr %58, align 4, !tbaa !11
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds [4 x double], ptr %121, i64 0, i64 %1035
  store double %1033, ptr %1036, align 8, !tbaa !5
  %1037 = load i32, ptr %58, align 4, !tbaa !11
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds [4 x double], ptr %122, i64 0, i64 %1038
  %1040 = load double, ptr %1039, align 8, !tbaa !5
  %1041 = fneg double %1040
  %1042 = load i32, ptr %58, align 4, !tbaa !11
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds [4 x double], ptr %122, i64 0, i64 %1043
  store double %1041, ptr %1044, align 8, !tbaa !5
  br label %1045

1045:                                             ; preds = %980
  %1046 = load i32, ptr %58, align 4, !tbaa !11
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr %58, align 4, !tbaa !11
  br label %977, !llvm.loop !40

1048:                                             ; preds = %977
  store i32 0, ptr %58, align 4, !tbaa !11
  br label %1049

1049:                                             ; preds = %1101, %1048
  %1050 = load i32, ptr %58, align 4, !tbaa !11
  %1051 = icmp slt i32 %1050, 4
  br i1 %1051, label %1052, label %1104

1052:                                             ; preds = %1049
  %1053 = load i32, ptr %58, align 4, !tbaa !11
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds [4 x double], ptr %115, i64 0, i64 %1054
  %1056 = load double, ptr %1055, align 8, !tbaa !5
  %1057 = load double, ptr %123, align 8, !tbaa !5
  %1058 = fadd double %1057, %1056
  store double %1058, ptr %123, align 8, !tbaa !5
  %1059 = load i32, ptr %58, align 4, !tbaa !11
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds [4 x double], ptr %116, i64 0, i64 %1060
  %1062 = load double, ptr %1061, align 8, !tbaa !5
  %1063 = load double, ptr %124, align 8, !tbaa !5
  %1064 = fadd double %1063, %1062
  store double %1064, ptr %124, align 8, !tbaa !5
  %1065 = load i32, ptr %58, align 4, !tbaa !11
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds [4 x double], ptr %117, i64 0, i64 %1066
  %1068 = load double, ptr %1067, align 8, !tbaa !5
  %1069 = load double, ptr %125, align 8, !tbaa !5
  %1070 = fadd double %1069, %1068
  store double %1070, ptr %125, align 8, !tbaa !5
  %1071 = load i32, ptr %58, align 4, !tbaa !11
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds [4 x double], ptr %118, i64 0, i64 %1072
  %1074 = load double, ptr %1073, align 8, !tbaa !5
  %1075 = load double, ptr %126, align 8, !tbaa !5
  %1076 = fadd double %1075, %1074
  store double %1076, ptr %126, align 8, !tbaa !5
  %1077 = load i32, ptr %58, align 4, !tbaa !11
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds [4 x double], ptr %119, i64 0, i64 %1078
  %1080 = load double, ptr %1079, align 8, !tbaa !5
  %1081 = load double, ptr %127, align 8, !tbaa !5
  %1082 = fadd double %1081, %1080
  store double %1082, ptr %127, align 8, !tbaa !5
  %1083 = load i32, ptr %58, align 4, !tbaa !11
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds [4 x double], ptr %120, i64 0, i64 %1084
  %1086 = load double, ptr %1085, align 8, !tbaa !5
  %1087 = load double, ptr %128, align 8, !tbaa !5
  %1088 = fadd double %1087, %1086
  store double %1088, ptr %128, align 8, !tbaa !5
  %1089 = load i32, ptr %58, align 4, !tbaa !11
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds [4 x double], ptr %121, i64 0, i64 %1090
  %1092 = load double, ptr %1091, align 8, !tbaa !5
  %1093 = load double, ptr %129, align 8, !tbaa !5
  %1094 = fadd double %1093, %1092
  store double %1094, ptr %129, align 8, !tbaa !5
  %1095 = load i32, ptr %58, align 4, !tbaa !11
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds [4 x double], ptr %122, i64 0, i64 %1096
  %1098 = load double, ptr %1097, align 8, !tbaa !5
  %1099 = load double, ptr %130, align 8, !tbaa !5
  %1100 = fadd double %1099, %1098
  store double %1100, ptr %130, align 8, !tbaa !5
  br label %1101

1101:                                             ; preds = %1052
  %1102 = load i32, ptr %58, align 4, !tbaa !11
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr %58, align 4, !tbaa !11
  br label %1049, !llvm.loop !41

1104:                                             ; preds = %1049
  %1105 = load double, ptr %124, align 8, !tbaa !5
  %1106 = fmul double %1105, -5.000000e-01
  store double %1106, ptr %124, align 8, !tbaa !5
  %1107 = load double, ptr %66, align 8, !tbaa !5
  %1108 = load double, ptr %123, align 8, !tbaa !5
  %1109 = fmul double %1108, %1107
  store double %1109, ptr %123, align 8, !tbaa !5
  %1110 = load double, ptr %66, align 8, !tbaa !5
  %1111 = load double, ptr %127, align 8, !tbaa !5
  %1112 = fmul double %1111, %1110
  store double %1112, ptr %127, align 8, !tbaa !5
  %1113 = load double, ptr %66, align 8, !tbaa !5
  %1114 = load double, ptr %128, align 8, !tbaa !5
  %1115 = fmul double %1114, %1113
  store double %1115, ptr %128, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1116

1116:                                             ; preds = %1222, %1104
  %1117 = load i32, ptr %57, align 4, !tbaa !11
  %1118 = icmp slt i32 %1117, 3
  br i1 %1118, label %1119, label %1225

1119:                                             ; preds = %1116
  %1120 = load i32, ptr %57, align 4, !tbaa !11
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1121
  %1123 = load i32, ptr %1122, align 4, !tbaa !11
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 %1124
  %1126 = load double, ptr %1125, align 8, !tbaa !5
  %1127 = load i32, ptr %57, align 4, !tbaa !11
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1128
  %1130 = load i32, ptr %1129, align 4, !tbaa !11
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1131
  %1133 = load double, ptr %1132, align 8, !tbaa !5
  %1134 = load i32, ptr %57, align 4, !tbaa !11
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1135
  %1137 = load i32, ptr %1136, align 4, !tbaa !11
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 %1138
  %1140 = load double, ptr %1139, align 8, !tbaa !5
  %1141 = load i32, ptr %57, align 4, !tbaa !11
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1142
  %1144 = load i32, ptr %1143, align 4, !tbaa !11
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1145
  %1147 = load double, ptr %1146, align 8, !tbaa !5
  %1148 = fmul double %1140, %1147
  %1149 = fneg double %1148
  %1150 = call double @llvm.fmuladd.f64(double %1126, double %1133, double %1149)
  %1151 = load i32, ptr %57, align 4, !tbaa !11
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds [3 x double], ptr %149, i64 0, i64 %1152
  store double %1150, ptr %1153, align 8, !tbaa !5
  %1154 = load i32, ptr %57, align 4, !tbaa !11
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1155
  %1157 = load i32, ptr %1156, align 4, !tbaa !11
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %1158
  %1160 = load double, ptr %1159, align 8, !tbaa !5
  %1161 = load i32, ptr %57, align 4, !tbaa !11
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1162
  %1164 = load i32, ptr %1163, align 4, !tbaa !11
  %1165 = sext i32 %1164 to i64
  %1166 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1165
  %1167 = load double, ptr %1166, align 8, !tbaa !5
  %1168 = load i32, ptr %57, align 4, !tbaa !11
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1169
  %1171 = load i32, ptr %1170, align 4, !tbaa !11
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %1172
  %1174 = load double, ptr %1173, align 8, !tbaa !5
  %1175 = load i32, ptr %57, align 4, !tbaa !11
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1176
  %1178 = load i32, ptr %1177, align 4, !tbaa !11
  %1179 = sext i32 %1178 to i64
  %1180 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1179
  %1181 = load double, ptr %1180, align 8, !tbaa !5
  %1182 = fmul double %1174, %1181
  %1183 = fneg double %1182
  %1184 = call double @llvm.fmuladd.f64(double %1160, double %1167, double %1183)
  %1185 = load i32, ptr %57, align 4, !tbaa !11
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds [3 x double], ptr %150, i64 0, i64 %1186
  store double %1184, ptr %1187, align 8, !tbaa !5
  %1188 = load i32, ptr %57, align 4, !tbaa !11
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1189
  %1191 = load i32, ptr %1190, align 4, !tbaa !11
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %1192
  %1194 = load double, ptr %1193, align 8, !tbaa !5
  %1195 = load i32, ptr %57, align 4, !tbaa !11
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1196
  %1198 = load i32, ptr %1197, align 4, !tbaa !11
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1199
  %1201 = load double, ptr %1200, align 8, !tbaa !5
  %1202 = load i32, ptr %57, align 4, !tbaa !11
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds [3 x i32], ptr %60, i64 0, i64 %1203
  %1205 = load i32, ptr %1204, align 4, !tbaa !11
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %1206
  %1208 = load double, ptr %1207, align 8, !tbaa !5
  %1209 = load i32, ptr %57, align 4, !tbaa !11
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds [3 x i32], ptr %59, i64 0, i64 %1210
  %1212 = load i32, ptr %1211, align 4, !tbaa !11
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1213
  %1215 = load double, ptr %1214, align 8, !tbaa !5
  %1216 = fmul double %1208, %1215
  %1217 = fneg double %1216
  %1218 = call double @llvm.fmuladd.f64(double %1194, double %1201, double %1217)
  %1219 = load i32, ptr %57, align 4, !tbaa !11
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds [3 x double], ptr %151, i64 0, i64 %1220
  store double %1218, ptr %1221, align 8, !tbaa !5
  br label %1222

1222:                                             ; preds = %1119
  %1223 = load i32, ptr %57, align 4, !tbaa !11
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr %57, align 4, !tbaa !11
  br label %1116, !llvm.loop !42

1225:                                             ; preds = %1116
  store double 0.000000e+00, ptr %144, align 8, !tbaa !5
  store double 0.000000e+00, ptr %145, align 8, !tbaa !5
  store double 0.000000e+00, ptr %146, align 8, !tbaa !5
  store double 0.000000e+00, ptr %147, align 8, !tbaa !5
  store double 0.000000e+00, ptr %148, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1226

1226:                                             ; preds = %1280, %1225
  %1227 = load i32, ptr %57, align 4, !tbaa !11
  %1228 = icmp slt i32 %1227, 3
  br i1 %1228, label %1229, label %1283

1229:                                             ; preds = %1226
  %1230 = load i32, ptr %57, align 4, !tbaa !11
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1231
  %1233 = load double, ptr %1232, align 8, !tbaa !5
  %1234 = load i32, ptr %57, align 4, !tbaa !11
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 %1235
  %1237 = load double, ptr %1236, align 8, !tbaa !5
  %1238 = load double, ptr %144, align 8, !tbaa !5
  %1239 = call double @llvm.fmuladd.f64(double %1233, double %1237, double %1238)
  store double %1239, ptr %144, align 8, !tbaa !5
  %1240 = load i32, ptr %57, align 4, !tbaa !11
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1241
  %1243 = load double, ptr %1242, align 8, !tbaa !5
  %1244 = load i32, ptr %57, align 4, !tbaa !11
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %1245
  %1247 = load double, ptr %1246, align 8, !tbaa !5
  %1248 = load double, ptr %145, align 8, !tbaa !5
  %1249 = call double @llvm.fmuladd.f64(double %1243, double %1247, double %1248)
  store double %1249, ptr %145, align 8, !tbaa !5
  %1250 = load i32, ptr %57, align 4, !tbaa !11
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %1251
  %1253 = load double, ptr %1252, align 8, !tbaa !5
  %1254 = load i32, ptr %57, align 4, !tbaa !11
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 %1255
  %1257 = load double, ptr %1256, align 8, !tbaa !5
  %1258 = load double, ptr %146, align 8, !tbaa !5
  %1259 = call double @llvm.fmuladd.f64(double %1253, double %1257, double %1258)
  store double %1259, ptr %146, align 8, !tbaa !5
  %1260 = load i32, ptr %57, align 4, !tbaa !11
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds [3 x double], ptr %150, i64 0, i64 %1261
  %1263 = load double, ptr %1262, align 8, !tbaa !5
  %1264 = load i32, ptr %57, align 4, !tbaa !11
  %1265 = sext i32 %1264 to i64
  %1266 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 %1265
  %1267 = load double, ptr %1266, align 8, !tbaa !5
  %1268 = load double, ptr %147, align 8, !tbaa !5
  %1269 = call double @llvm.fmuladd.f64(double %1263, double %1267, double %1268)
  store double %1269, ptr %147, align 8, !tbaa !5
  %1270 = load i32, ptr %57, align 4, !tbaa !11
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds [3 x double], ptr %150, i64 0, i64 %1271
  %1273 = load double, ptr %1272, align 8, !tbaa !5
  %1274 = load i32, ptr %57, align 4, !tbaa !11
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %1275
  %1277 = load double, ptr %1276, align 8, !tbaa !5
  %1278 = load double, ptr %148, align 8, !tbaa !5
  %1279 = call double @llvm.fmuladd.f64(double %1273, double %1277, double %1278)
  store double %1279, ptr %148, align 8, !tbaa !5
  br label %1280

1280:                                             ; preds = %1229
  %1281 = load i32, ptr %57, align 4, !tbaa !11
  %1282 = add nsw i32 %1281, 1
  store i32 %1282, ptr %57, align 4, !tbaa !11
  br label %1226, !llvm.loop !43

1283:                                             ; preds = %1226
  %1284 = load double, ptr %144, align 8, !tbaa !5
  %1285 = load double, ptr %145, align 8, !tbaa !5
  %1286 = fmul double %1284, %1285
  store double %1286, ptr %94, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1287

1287:                                             ; preds = %1323, %1283
  %1288 = load i32, ptr %57, align 4, !tbaa !11
  %1289 = icmp slt i32 %1288, 3
  br i1 %1289, label %1290, label %1326

1290:                                             ; preds = %1287
  %1291 = load double, ptr %145, align 8, !tbaa !5
  %1292 = load i32, ptr %57, align 4, !tbaa !11
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds [3 x double], ptr %77, i64 0, i64 %1293
  %1295 = load double, ptr %1294, align 8, !tbaa !5
  %1296 = load i32, ptr %57, align 4, !tbaa !11
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 %1297
  %1299 = load double, ptr %1298, align 8, !tbaa !5
  %1300 = fneg double %1299
  %1301 = call double @llvm.fmuladd.f64(double %1291, double %1295, double %1300)
  %1302 = load i32, ptr %57, align 4, !tbaa !11
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds [3 x double], ptr %152, i64 0, i64 %1303
  store double %1301, ptr %1304, align 8, !tbaa !5
  %1305 = load double, ptr %94, align 8, !tbaa !5
  %1306 = load i32, ptr %57, align 4, !tbaa !11
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds [3 x double], ptr %78, i64 0, i64 %1307
  %1309 = load double, ptr %1308, align 8, !tbaa !5
  %1310 = fmul double %1305, %1309
  %1311 = load i32, ptr %57, align 4, !tbaa !11
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds [3 x double], ptr %97, i64 0, i64 %1312
  store double %1310, ptr %1313, align 8, !tbaa !5
  %1314 = load double, ptr %148, align 8, !tbaa !5
  %1315 = load i32, ptr %57, align 4, !tbaa !11
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds [3 x double], ptr %149, i64 0, i64 %1316
  %1318 = load double, ptr %1317, align 8, !tbaa !5
  %1319 = fmul double %1314, %1318
  %1320 = load i32, ptr %57, align 4, !tbaa !11
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds [3 x double], ptr %98, i64 0, i64 %1321
  store double %1319, ptr %1322, align 8, !tbaa !5
  br label %1323

1323:                                             ; preds = %1290
  %1324 = load i32, ptr %57, align 4, !tbaa !11
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr %57, align 4, !tbaa !11
  br label %1287, !llvm.loop !44

1326:                                             ; preds = %1287
  %1327 = load double, ptr %141, align 8, !tbaa !5
  %1328 = load double, ptr %139, align 8, !tbaa !5
  %1329 = fsub double %1327, %1328
  %1330 = load double, ptr %144, align 8, !tbaa !5
  %1331 = fmul double %1329, %1330
  %1332 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 0
  store double %1331, ptr %1332, align 16, !tbaa !5
  %1333 = load double, ptr %141, align 8, !tbaa !5
  %1334 = load double, ptr %148, align 8, !tbaa !5
  %1335 = fmul double %1333, %1334
  %1336 = load double, ptr %146, align 8, !tbaa !5
  %1337 = fmul double %1335, %1336
  %1338 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 1
  store double %1337, ptr %1338, align 8, !tbaa !5
  %1339 = load double, ptr %143, align 8, !tbaa !5
  %1340 = load double, ptr %144, align 8, !tbaa !5
  %1341 = fmul double %1339, %1340
  %1342 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 2
  store double %1341, ptr %1342, align 16, !tbaa !5
  %1343 = load double, ptr %141, align 8, !tbaa !5
  %1344 = load double, ptr %148, align 8, !tbaa !5
  %1345 = fmul double %1343, %1344
  %1346 = load double, ptr %144, align 8, !tbaa !5
  %1347 = fmul double %1345, %1346
  %1348 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 3
  store double %1347, ptr %1348, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1349

1349:                                             ; preds = %1436, %1326
  %1350 = load i32, ptr %57, align 4, !tbaa !11
  %1351 = icmp slt i32 %1350, 3
  br i1 %1351, label %1352, label %1439

1352:                                             ; preds = %1349
  %1353 = load double, ptr %141, align 8, !tbaa !5
  %1354 = load double, ptr %146, align 8, !tbaa !5
  %1355 = load i32, ptr %57, align 4, !tbaa !11
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds [3 x double], ptr %152, i64 0, i64 %1356
  %1358 = load double, ptr %1357, align 8, !tbaa !5
  %1359 = load double, ptr %147, align 8, !tbaa !5
  %1360 = load i32, ptr %57, align 4, !tbaa !11
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds [3 x double], ptr %151, i64 0, i64 %1361
  %1363 = load double, ptr %1362, align 8, !tbaa !5
  %1364 = fmul double %1359, %1363
  %1365 = call double @llvm.fmuladd.f64(double %1354, double %1358, double %1364)
  %1366 = load i32, ptr %57, align 4, !tbaa !11
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds [3 x double], ptr %98, i64 0, i64 %1367
  %1369 = load double, ptr %1368, align 8, !tbaa !5
  %1370 = fsub double %1365, %1369
  %1371 = load double, ptr %139, align 8, !tbaa !5
  %1372 = load i32, ptr %57, align 4, !tbaa !11
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds [3 x double], ptr %97, i64 0, i64 %1373
  %1375 = load double, ptr %1374, align 8, !tbaa !5
  %1376 = fmul double %1371, %1375
  %1377 = fneg double %1376
  %1378 = call double @llvm.fmuladd.f64(double %1353, double %1370, double %1377)
  %1379 = load i32, ptr %57, align 4, !tbaa !11
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds [3 x double], ptr %135, i64 0, i64 %1380
  store double %1378, ptr %1381, align 8, !tbaa !5
  %1382 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 0
  %1383 = load double, ptr %1382, align 16, !tbaa !5
  %1384 = load i32, ptr %57, align 4, !tbaa !11
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds [3 x double], ptr %152, i64 0, i64 %1385
  %1387 = load double, ptr %1386, align 8, !tbaa !5
  %1388 = fmul double %1383, %1387
  %1389 = load i32, ptr %57, align 4, !tbaa !11
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds [3 x double], ptr %136, i64 0, i64 %1390
  store double %1388, ptr %1391, align 8, !tbaa !5
  %1392 = load double, ptr %143, align 8, !tbaa !5
  %1393 = fneg double %1392
  %1394 = load i32, ptr %57, align 4, !tbaa !11
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds [3 x double], ptr %97, i64 0, i64 %1395
  %1397 = load double, ptr %1396, align 8, !tbaa !5
  %1398 = load double, ptr %142, align 8, !tbaa !5
  %1399 = load i32, ptr %57, align 4, !tbaa !11
  %1400 = sext i32 %1399 to i64
  %1401 = getelementptr inbounds [3 x double], ptr %98, i64 0, i64 %1400
  %1402 = load double, ptr %1401, align 8, !tbaa !5
  %1403 = fmul double %1398, %1402
  %1404 = fneg double %1403
  %1405 = call double @llvm.fmuladd.f64(double %1393, double %1397, double %1404)
  %1406 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 1
  %1407 = load double, ptr %1406, align 8, !tbaa !5
  %1408 = load i32, ptr %57, align 4, !tbaa !11
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds [3 x double], ptr %151, i64 0, i64 %1409
  %1411 = load double, ptr %1410, align 8, !tbaa !5
  %1412 = fneg double %1407
  %1413 = call double @llvm.fmuladd.f64(double %1412, double %1411, double %1405)
  %1414 = load i32, ptr %57, align 4, !tbaa !11
  %1415 = sext i32 %1414 to i64
  %1416 = getelementptr inbounds [3 x double], ptr %137, i64 0, i64 %1415
  store double %1413, ptr %1416, align 8, !tbaa !5
  %1417 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 2
  %1418 = load double, ptr %1417, align 16, !tbaa !5
  %1419 = fneg double %1418
  %1420 = load i32, ptr %57, align 4, !tbaa !11
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds [3 x double], ptr %152, i64 0, i64 %1421
  %1423 = load double, ptr %1422, align 8, !tbaa !5
  %1424 = getelementptr inbounds [8 x double], ptr %95, i64 0, i64 3
  %1425 = load double, ptr %1424, align 8, !tbaa !5
  %1426 = load i32, ptr %57, align 4, !tbaa !11
  %1427 = sext i32 %1426 to i64
  %1428 = getelementptr inbounds [3 x double], ptr %151, i64 0, i64 %1427
  %1429 = load double, ptr %1428, align 8, !tbaa !5
  %1430 = fmul double %1425, %1429
  %1431 = fneg double %1430
  %1432 = call double @llvm.fmuladd.f64(double %1419, double %1423, double %1431)
  %1433 = load i32, ptr %57, align 4, !tbaa !11
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds [3 x double], ptr %138, i64 0, i64 %1434
  store double %1432, ptr %1435, align 8, !tbaa !5
  br label %1436

1436:                                             ; preds = %1352
  %1437 = load i32, ptr %57, align 4, !tbaa !11
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr %57, align 4, !tbaa !11
  br label %1349, !llvm.loop !45

1439:                                             ; preds = %1349
  %1440 = load double, ptr %124, align 8, !tbaa !5
  %1441 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 0
  %1442 = load double, ptr %1441, align 16, !tbaa !5
  %1443 = load double, ptr %123, align 8, !tbaa !5
  %1444 = fneg double %1442
  %1445 = call double @llvm.fmuladd.f64(double %1444, double %1443, double %1440)
  store double %1445, ptr %131, align 8, !tbaa !5
  %1446 = load double, ptr %126, align 8, !tbaa !5
  %1447 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 0
  %1448 = load double, ptr %1447, align 16, !tbaa !5
  %1449 = load double, ptr %125, align 8, !tbaa !5
  %1450 = fneg double %1448
  %1451 = call double @llvm.fmuladd.f64(double %1450, double %1449, double %1446)
  store double %1451, ptr %132, align 8, !tbaa !5
  %1452 = load double, ptr %128, align 8, !tbaa !5
  %1453 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 0
  %1454 = load double, ptr %1453, align 16, !tbaa !5
  %1455 = load double, ptr %127, align 8, !tbaa !5
  %1456 = fneg double %1454
  %1457 = call double @llvm.fmuladd.f64(double %1456, double %1455, double %1452)
  store double %1457, ptr %133, align 8, !tbaa !5
  %1458 = load double, ptr %130, align 8, !tbaa !5
  %1459 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 0
  %1460 = load double, ptr %1459, align 16, !tbaa !5
  %1461 = load double, ptr %129, align 8, !tbaa !5
  %1462 = fneg double %1460
  %1463 = call double @llvm.fmuladd.f64(double %1462, double %1461, double %1458)
  store double %1463, ptr %134, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1464

1464:                                             ; preds = %1497, %1439
  %1465 = load i32, ptr %57, align 4, !tbaa !11
  %1466 = icmp slt i32 %1465, 3
  br i1 %1466, label %1467, label %1500

1467:                                             ; preds = %1464
  %1468 = load i32, ptr %57, align 4, !tbaa !11
  %1469 = sext i32 %1468 to i64
  %1470 = getelementptr inbounds [3 x double], ptr %135, i64 0, i64 %1469
  %1471 = load double, ptr %1470, align 8, !tbaa !5
  %1472 = load double, ptr %131, align 8, !tbaa !5
  %1473 = load i32, ptr %57, align 4, !tbaa !11
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds [3 x double], ptr %136, i64 0, i64 %1474
  %1476 = load double, ptr %1475, align 8, !tbaa !5
  %1477 = load double, ptr %132, align 8, !tbaa !5
  %1478 = fmul double %1476, %1477
  %1479 = call double @llvm.fmuladd.f64(double %1471, double %1472, double %1478)
  %1480 = load i32, ptr %57, align 4, !tbaa !11
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds [3 x double], ptr %137, i64 0, i64 %1481
  %1483 = load double, ptr %1482, align 8, !tbaa !5
  %1484 = load double, ptr %133, align 8, !tbaa !5
  %1485 = call double @llvm.fmuladd.f64(double %1483, double %1484, double %1479)
  %1486 = load i32, ptr %57, align 4, !tbaa !11
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds [3 x double], ptr %138, i64 0, i64 %1487
  %1489 = load double, ptr %1488, align 8, !tbaa !5
  %1490 = load double, ptr %134, align 8, !tbaa !5
  %1491 = call double @llvm.fmuladd.f64(double %1489, double %1490, double %1485)
  %1492 = load double, ptr %84, align 8, !tbaa !5
  %1493 = fmul double %1491, %1492
  %1494 = load i32, ptr %57, align 4, !tbaa !11
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds [3 x double], ptr %74, i64 0, i64 %1495
  store double %1493, ptr %1496, align 8, !tbaa !5
  br label %1497

1497:                                             ; preds = %1467
  %1498 = load i32, ptr %57, align 4, !tbaa !11
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr %57, align 4, !tbaa !11
  br label %1464, !llvm.loop !46

1500:                                             ; preds = %1464
  %1501 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 1
  %1502 = load double, ptr %1501, align 8, !tbaa !5
  %1503 = load double, ptr %123, align 8, !tbaa !5
  %1504 = load double, ptr %124, align 8, !tbaa !5
  %1505 = fneg double %1504
  %1506 = call double @llvm.fmuladd.f64(double %1502, double %1503, double %1505)
  store double %1506, ptr %131, align 8, !tbaa !5
  %1507 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 1
  %1508 = load double, ptr %1507, align 8, !tbaa !5
  %1509 = load double, ptr %125, align 8, !tbaa !5
  %1510 = load double, ptr %126, align 8, !tbaa !5
  %1511 = fneg double %1510
  %1512 = call double @llvm.fmuladd.f64(double %1508, double %1509, double %1511)
  store double %1512, ptr %132, align 8, !tbaa !5
  %1513 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 1
  %1514 = load double, ptr %1513, align 8, !tbaa !5
  %1515 = load double, ptr %127, align 8, !tbaa !5
  %1516 = load double, ptr %128, align 8, !tbaa !5
  %1517 = fneg double %1516
  %1518 = call double @llvm.fmuladd.f64(double %1514, double %1515, double %1517)
  store double %1518, ptr %133, align 8, !tbaa !5
  %1519 = getelementptr inbounds [2 x double], ptr %85, i64 0, i64 1
  %1520 = load double, ptr %1519, align 8, !tbaa !5
  %1521 = load double, ptr %129, align 8, !tbaa !5
  %1522 = load double, ptr %130, align 8, !tbaa !5
  %1523 = fneg double %1522
  %1524 = call double @llvm.fmuladd.f64(double %1520, double %1521, double %1523)
  store double %1524, ptr %134, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1525

1525:                                             ; preds = %1558, %1500
  %1526 = load i32, ptr %57, align 4, !tbaa !11
  %1527 = icmp slt i32 %1526, 3
  br i1 %1527, label %1528, label %1561

1528:                                             ; preds = %1525
  %1529 = load i32, ptr %57, align 4, !tbaa !11
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds [3 x double], ptr %135, i64 0, i64 %1530
  %1532 = load double, ptr %1531, align 8, !tbaa !5
  %1533 = load double, ptr %131, align 8, !tbaa !5
  %1534 = load i32, ptr %57, align 4, !tbaa !11
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds [3 x double], ptr %136, i64 0, i64 %1535
  %1537 = load double, ptr %1536, align 8, !tbaa !5
  %1538 = load double, ptr %132, align 8, !tbaa !5
  %1539 = fmul double %1537, %1538
  %1540 = call double @llvm.fmuladd.f64(double %1532, double %1533, double %1539)
  %1541 = load i32, ptr %57, align 4, !tbaa !11
  %1542 = sext i32 %1541 to i64
  %1543 = getelementptr inbounds [3 x double], ptr %137, i64 0, i64 %1542
  %1544 = load double, ptr %1543, align 8, !tbaa !5
  %1545 = load double, ptr %133, align 8, !tbaa !5
  %1546 = call double @llvm.fmuladd.f64(double %1544, double %1545, double %1540)
  %1547 = load i32, ptr %57, align 4, !tbaa !11
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds [3 x double], ptr %138, i64 0, i64 %1548
  %1550 = load double, ptr %1549, align 8, !tbaa !5
  %1551 = load double, ptr %134, align 8, !tbaa !5
  %1552 = call double @llvm.fmuladd.f64(double %1550, double %1551, double %1546)
  %1553 = load double, ptr %84, align 8, !tbaa !5
  %1554 = fmul double %1552, %1553
  %1555 = load i32, ptr %57, align 4, !tbaa !11
  %1556 = sext i32 %1555 to i64
  %1557 = getelementptr inbounds [3 x double], ptr %73, i64 0, i64 %1556
  store double %1554, ptr %1557, align 8, !tbaa !5
  br label %1558

1558:                                             ; preds = %1528
  %1559 = load i32, ptr %57, align 4, !tbaa !11
  %1560 = add nsw i32 %1559, 1
  store i32 %1560, ptr %57, align 4, !tbaa !11
  br label %1525, !llvm.loop !47

1561:                                             ; preds = %1525
  %1562 = getelementptr inbounds [3 x double], ptr %73, i64 0, i64 0
  %1563 = load double, ptr %1562, align 16, !tbaa !5
  %1564 = load ptr, ptr %51, align 8, !tbaa !9
  store double %1563, ptr %1564, align 8, !tbaa !5
  %1565 = getelementptr inbounds [3 x double], ptr %73, i64 0, i64 1
  %1566 = load double, ptr %1565, align 8, !tbaa !5
  %1567 = load ptr, ptr %52, align 8, !tbaa !9
  store double %1566, ptr %1567, align 8, !tbaa !5
  %1568 = getelementptr inbounds [3 x double], ptr %73, i64 0, i64 2
  %1569 = load double, ptr %1568, align 16, !tbaa !5
  %1570 = load ptr, ptr %53, align 8, !tbaa !9
  store double %1569, ptr %1570, align 8, !tbaa !5
  %1571 = getelementptr inbounds [3 x double], ptr %74, i64 0, i64 0
  %1572 = load double, ptr %1571, align 16, !tbaa !5
  %1573 = load ptr, ptr %54, align 8, !tbaa !9
  store double %1572, ptr %1573, align 8, !tbaa !5
  %1574 = getelementptr inbounds [3 x double], ptr %74, i64 0, i64 1
  %1575 = load double, ptr %1574, align 8, !tbaa !5
  %1576 = load ptr, ptr %55, align 8, !tbaa !9
  store double %1575, ptr %1576, align 8, !tbaa !5
  %1577 = getelementptr inbounds [3 x double], ptr %74, i64 0, i64 2
  %1578 = load double, ptr %1577, align 16, !tbaa !5
  %1579 = load ptr, ptr %56, align 8, !tbaa !9
  store double %1578, ptr %1579, align 8, !tbaa !5
  store double 0.000000e+00, ptr %101, align 8, !tbaa !5
  store double 0.000000e+00, ptr %102, align 8, !tbaa !5
  store i32 0, ptr %57, align 4, !tbaa !11
  br label %1580

1580:                                             ; preds = %1604, %1561
  %1581 = load i32, ptr %57, align 4, !tbaa !11
  %1582 = icmp slt i32 %1581, 3
  br i1 %1582, label %1583, label %1607

1583:                                             ; preds = %1580
  %1584 = load i32, ptr %57, align 4, !tbaa !11
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 %1585
  %1587 = load double, ptr %1586, align 8, !tbaa !5
  %1588 = load i32, ptr %57, align 4, !tbaa !11
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 %1589
  %1591 = load double, ptr %1590, align 8, !tbaa !5
  %1592 = load double, ptr %101, align 8, !tbaa !5
  %1593 = call double @llvm.fmuladd.f64(double %1587, double %1591, double %1592)
  store double %1593, ptr %101, align 8, !tbaa !5
  %1594 = load i32, ptr %57, align 4, !tbaa !11
  %1595 = sext i32 %1594 to i64
  %1596 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %1595
  %1597 = load double, ptr %1596, align 8, !tbaa !5
  %1598 = load i32, ptr %57, align 4, !tbaa !11
  %1599 = sext i32 %1598 to i64
  %1600 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 %1599
  %1601 = load double, ptr %1600, align 8, !tbaa !5
  %1602 = load double, ptr %102, align 8, !tbaa !5
  %1603 = call double @llvm.fmuladd.f64(double %1597, double %1601, double %1602)
  store double %1603, ptr %102, align 8, !tbaa !5
  br label %1604

1604:                                             ; preds = %1583
  %1605 = load i32, ptr %57, align 4, !tbaa !11
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr %57, align 4, !tbaa !11
  br label %1580, !llvm.loop !48

1607:                                             ; preds = %1580
  %1608 = load double, ptr %99, align 8, !tbaa !5
  %1609 = load double, ptr %99, align 8, !tbaa !5
  %1610 = fmul double %1608, %1609
  store double %1610, ptr %100, align 8, !tbaa !5
  %1611 = load double, ptr %100, align 8, !tbaa !5
  %1612 = load double, ptr %61, align 8, !tbaa !5
  %1613 = load double, ptr %101, align 8, !tbaa !5
  %1614 = load double, ptr %102, align 8, !tbaa !5
  %1615 = fadd double %1613, %1614
  %1616 = fmul double %1612, %1615
  %1617 = fcmp ogt double %1611, %1616
  br i1 %1617, label %1618, label %1745

1618:                                             ; preds = %1607
  %1619 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 0
  %1620 = load double, ptr %1619, align 16, !tbaa !5
  %1621 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 1
  %1622 = load double, ptr %1621, align 8, !tbaa !5
  %1623 = getelementptr inbounds [3 x double], ptr %67, i64 0, i64 2
  %1624 = load double, ptr %1623, align 16, !tbaa !5
  %1625 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 0
  %1626 = load double, ptr %1625, align 16, !tbaa !5
  %1627 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 1
  %1628 = load double, ptr %1627, align 8, !tbaa !5
  %1629 = getelementptr inbounds [3 x double], ptr %82, i64 0, i64 2
  %1630 = load double, ptr %1629, align 16, !tbaa !5
  %1631 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 0
  %1632 = load double, ptr %1631, align 16, !tbaa !5
  %1633 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 1
  %1634 = load double, ptr %1633, align 8, !tbaa !5
  %1635 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 2
  %1636 = load double, ptr %1635, align 16, !tbaa !5
  %1637 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 0
  %1638 = load double, ptr %1637, align 16, !tbaa !5
  %1639 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 1
  %1640 = load double, ptr %1639, align 8, !tbaa !5
  %1641 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 2
  %1642 = load double, ptr %1641, align 16, !tbaa !5
  %1643 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 0
  %1644 = load double, ptr %1643, align 16, !tbaa !5
  %1645 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 1
  %1646 = load double, ptr %1645, align 8, !tbaa !5
  %1647 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 2
  %1648 = load double, ptr %1647, align 16, !tbaa !5
  %1649 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 0
  %1650 = load double, ptr %1649, align 16, !tbaa !5
  %1651 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 1
  %1652 = load double, ptr %1651, align 8, !tbaa !5
  %1653 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 2
  %1654 = load double, ptr %1653, align 16, !tbaa !5
  %1655 = load double, ptr %47, align 8, !tbaa !5
  %1656 = load double, ptr %48, align 8, !tbaa !5
  %1657 = load double, ptr %49, align 8, !tbaa !5
  call void @SegSegForce(double noundef %1620, double noundef %1622, double noundef %1624, double noundef %1626, double noundef %1628, double noundef %1630, double noundef %1632, double noundef %1634, double noundef %1636, double noundef %1638, double noundef %1640, double noundef %1642, double noundef %1644, double noundef %1646, double noundef %1648, double noundef %1650, double noundef %1652, double noundef %1654, double noundef %1655, double noundef %1656, double noundef %1657, i32 noundef 0, i32 noundef 1, ptr noundef %103, ptr noundef %104, ptr noundef %105, ptr noundef %106, ptr noundef %107, ptr noundef %108, ptr noundef %109, ptr noundef %110, ptr noundef %111, ptr noundef %112, ptr noundef %113, ptr noundef %114)
  %1658 = load double, ptr %109, align 8, !tbaa !5
  %1659 = load ptr, ptr %51, align 8, !tbaa !9
  %1660 = load double, ptr %1659, align 8, !tbaa !5
  %1661 = fadd double %1660, %1658
  store double %1661, ptr %1659, align 8, !tbaa !5
  %1662 = load double, ptr %110, align 8, !tbaa !5
  %1663 = load ptr, ptr %52, align 8, !tbaa !9
  %1664 = load double, ptr %1663, align 8, !tbaa !5
  %1665 = fadd double %1664, %1662
  store double %1665, ptr %1663, align 8, !tbaa !5
  %1666 = load double, ptr %111, align 8, !tbaa !5
  %1667 = load ptr, ptr %53, align 8, !tbaa !9
  %1668 = load double, ptr %1667, align 8, !tbaa !5
  %1669 = fadd double %1668, %1666
  store double %1669, ptr %1667, align 8, !tbaa !5
  %1670 = load double, ptr %112, align 8, !tbaa !5
  %1671 = load ptr, ptr %54, align 8, !tbaa !9
  %1672 = load double, ptr %1671, align 8, !tbaa !5
  %1673 = fadd double %1672, %1670
  store double %1673, ptr %1671, align 8, !tbaa !5
  %1674 = load double, ptr %113, align 8, !tbaa !5
  %1675 = load ptr, ptr %55, align 8, !tbaa !9
  %1676 = load double, ptr %1675, align 8, !tbaa !5
  %1677 = fadd double %1676, %1674
  store double %1677, ptr %1675, align 8, !tbaa !5
  %1678 = load double, ptr %114, align 8, !tbaa !5
  %1679 = load ptr, ptr %56, align 8, !tbaa !9
  %1680 = load double, ptr %1679, align 8, !tbaa !5
  %1681 = fadd double %1680, %1678
  store double %1681, ptr %1679, align 8, !tbaa !5
  %1682 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 0
  %1683 = load double, ptr %1682, align 16, !tbaa !5
  %1684 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 1
  %1685 = load double, ptr %1684, align 8, !tbaa !5
  %1686 = getelementptr inbounds [3 x double], ptr %83, i64 0, i64 2
  %1687 = load double, ptr %1686, align 16, !tbaa !5
  %1688 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 0
  %1689 = load double, ptr %1688, align 16, !tbaa !5
  %1690 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 1
  %1691 = load double, ptr %1690, align 8, !tbaa !5
  %1692 = getelementptr inbounds [3 x double], ptr %68, i64 0, i64 2
  %1693 = load double, ptr %1692, align 16, !tbaa !5
  %1694 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 0
  %1695 = load double, ptr %1694, align 16, !tbaa !5
  %1696 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 1
  %1697 = load double, ptr %1696, align 8, !tbaa !5
  %1698 = getelementptr inbounds [3 x double], ptr %69, i64 0, i64 2
  %1699 = load double, ptr %1698, align 16, !tbaa !5
  %1700 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 0
  %1701 = load double, ptr %1700, align 16, !tbaa !5
  %1702 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 1
  %1703 = load double, ptr %1702, align 8, !tbaa !5
  %1704 = getelementptr inbounds [3 x double], ptr %70, i64 0, i64 2
  %1705 = load double, ptr %1704, align 16, !tbaa !5
  %1706 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 0
  %1707 = load double, ptr %1706, align 16, !tbaa !5
  %1708 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 1
  %1709 = load double, ptr %1708, align 8, !tbaa !5
  %1710 = getelementptr inbounds [3 x double], ptr %72, i64 0, i64 2
  %1711 = load double, ptr %1710, align 16, !tbaa !5
  %1712 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 0
  %1713 = load double, ptr %1712, align 16, !tbaa !5
  %1714 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 1
  %1715 = load double, ptr %1714, align 8, !tbaa !5
  %1716 = getelementptr inbounds [3 x double], ptr %71, i64 0, i64 2
  %1717 = load double, ptr %1716, align 16, !tbaa !5
  %1718 = load double, ptr %47, align 8, !tbaa !5
  %1719 = load double, ptr %48, align 8, !tbaa !5
  %1720 = load double, ptr %49, align 8, !tbaa !5
  call void @SegSegForce(double noundef %1683, double noundef %1685, double noundef %1687, double noundef %1689, double noundef %1691, double noundef %1693, double noundef %1695, double noundef %1697, double noundef %1699, double noundef %1701, double noundef %1703, double noundef %1705, double noundef %1707, double noundef %1709, double noundef %1711, double noundef %1713, double noundef %1715, double noundef %1717, double noundef %1718, double noundef %1719, double noundef %1720, i32 noundef 0, i32 noundef 1, ptr noundef %103, ptr noundef %104, ptr noundef %105, ptr noundef %106, ptr noundef %107, ptr noundef %108, ptr noundef %109, ptr noundef %110, ptr noundef %111, ptr noundef %112, ptr noundef %113, ptr noundef %114)
  %1721 = load double, ptr %109, align 8, !tbaa !5
  %1722 = load ptr, ptr %51, align 8, !tbaa !9
  %1723 = load double, ptr %1722, align 8, !tbaa !5
  %1724 = fadd double %1723, %1721
  store double %1724, ptr %1722, align 8, !tbaa !5
  %1725 = load double, ptr %110, align 8, !tbaa !5
  %1726 = load ptr, ptr %52, align 8, !tbaa !9
  %1727 = load double, ptr %1726, align 8, !tbaa !5
  %1728 = fadd double %1727, %1725
  store double %1728, ptr %1726, align 8, !tbaa !5
  %1729 = load double, ptr %111, align 8, !tbaa !5
  %1730 = load ptr, ptr %53, align 8, !tbaa !9
  %1731 = load double, ptr %1730, align 8, !tbaa !5
  %1732 = fadd double %1731, %1729
  store double %1732, ptr %1730, align 8, !tbaa !5
  %1733 = load double, ptr %112, align 8, !tbaa !5
  %1734 = load ptr, ptr %54, align 8, !tbaa !9
  %1735 = load double, ptr %1734, align 8, !tbaa !5
  %1736 = fadd double %1735, %1733
  store double %1736, ptr %1734, align 8, !tbaa !5
  %1737 = load double, ptr %113, align 8, !tbaa !5
  %1738 = load ptr, ptr %55, align 8, !tbaa !9
  %1739 = load double, ptr %1738, align 8, !tbaa !5
  %1740 = fadd double %1739, %1737
  store double %1740, ptr %1738, align 8, !tbaa !5
  %1741 = load double, ptr %114, align 8, !tbaa !5
  %1742 = load ptr, ptr %56, align 8, !tbaa !9
  %1743 = load double, ptr %1742, align 8, !tbaa !5
  %1744 = fadd double %1743, %1741
  store double %1744, ptr %1742, align 8, !tbaa !5
  br label %1745

1745:                                             ; preds = %1618, %1607
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %152) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %151) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %150) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %149) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %136) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %135) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 24, 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 12, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  ret void
}

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

; Function Attrs: nounwind
declare double @log(double noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local void @SegSegForce(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double 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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}


; 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"

@__const.SpecialSegSegForceHalf.alt1 = external hidden unnamed_addr constant [3 x i32], align 4
@__const.SpecialSegSegForceHalf.alt2 = external hidden unnamed_addr constant [3 x i32], align 4

; Function Attrs: nounwind uwtable
define dso_local void @SpecialSegSegForceHalf(double noundef %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, double 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, double noundef %17, double noundef %18, double noundef %19, double noundef %20, double noundef %21, ptr nocapture noundef %22, ptr nocapture noundef %23, ptr nocapture noundef %24, ptr nocapture noundef %25, ptr nocapture noundef %26, ptr nocapture noundef %27) local_unnamed_addr #0 {
.preheader486.preheader:
  %28 = alloca [3 x double], align 16
  %29 = alloca [3 x double], align 16
  %30 = alloca [3 x double], align 16
  %31 = alloca [3 x double], align 16
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %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
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  %44 = fneg double %21
  %45 = tail call double @llvm.fmuladd.f64(double %44, double 1.010000e+00, double 1.000000e+00)
  %46 = fmul double %21, 1.010000e+00
  %47 = fdiv double %45, %46
  %48 = tail call double @sqrt(double noundef %47) #5
  %49 = fmul double %19, 2.500000e-01
  %50 = fdiv double %49, 0x400921FB54442D18
  %51 = fsub double 1.000000e+00, %20
  %52 = fdiv double %50, %51
  store double 0.000000e+00, ptr %22, align 8, !tbaa !5
  store double 0.000000e+00, ptr %23, align 8, !tbaa !5
  store double %15, ptr %28, align 16, !tbaa !5
  %53 = getelementptr inbounds i8, ptr %28, i64 8
  store double %16, ptr %53, align 8, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %28, i64 16
  store double %17, ptr %54, align 16, !tbaa !5
  store double %12, ptr %29, align 16, !tbaa !5
  %55 = getelementptr inbounds i8, ptr %29, i64 8
  store double %13, ptr %55, align 8, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %29, i64 16
  store double %14, ptr %56, align 16, !tbaa !5
  %57 = insertelement <2 x double> poison, double %9, i64 0
  %58 = insertelement <2 x double> %57, double %10, i64 1
  %59 = insertelement <2 x double> poison, double %6, i64 0
  %60 = insertelement <2 x double> %59, double %7, i64 1
  %61 = fsub <2 x double> %58, %60
  %62 = fsub double %3, %0
  %63 = fsub double %4, %1
  %64 = fsub double %11, %8
  %65 = fsub double %5, %2
  %66 = fmul double %50, 5.000000e-01
  %67 = extractelement <2 x double> %61, i64 0
  %68 = tail call double @llvm.fmuladd.f64(double %67, double %67, double 0.000000e+00)
  %69 = extractelement <2 x double> %61, i64 1
  %70 = tail call double @llvm.fmuladd.f64(double %69, double %69, double %68)
  %71 = tail call double @llvm.fmuladd.f64(double %64, double %64, double %70)
  %72 = fmul double %18, %18
  %73 = tail call double @sqrt(double noundef %71) #5
  %74 = fdiv double 1.000000e+00, %73
  %75 = insertelement <2 x double> poison, double %74, i64 0
  %76 = shufflevector <2 x double> %75, <2 x double> poison, <2 x i32> zeroinitializer
  %77 = fmul <2 x double> %76, %61
  %78 = getelementptr inbounds i8, ptr %30, i64 8
  store <2 x double> %77, ptr %30, align 16, !tbaa !5
  %79 = fmul double %74, %64
  %80 = getelementptr inbounds i8, ptr %30, i64 16
  store double %79, ptr %80, align 16, !tbaa !5
  %81 = extractelement <2 x double> %77, i64 0
  %82 = tail call double @llvm.fmuladd.f64(double %81, double %62, double 0.000000e+00)
  %83 = extractelement <2 x double> %77, i64 1
  %84 = tail call double @llvm.fmuladd.f64(double %83, double %63, double %82)
  %85 = tail call double @llvm.fmuladd.f64(double %79, double %65, double %84)
  %86 = fmul double %72, %66
  %87 = fcmp olt double %85, 0.000000e+00
  %88 = insertelement <2 x double> poison, double %3, i64 0
  %89 = insertelement <2 x double> %88, double %4, i64 1
  %90 = insertelement <2 x double> poison, double %0, i64 0
  %91 = insertelement <2 x double> %90, double %1, i64 1
  br i1 %87, label %.preheader484.preheader, label %.loopexit

.preheader484.preheader:                          ; preds = %.preheader486.preheader
  %92 = insertelement <2 x double> poison, double %12, i64 0
  %93 = insertelement <2 x double> %92, double %13, i64 1
  %94 = fneg <2 x double> %93
  %95 = fneg double %62
  store <2 x double> %94, ptr %29, align 16, !tbaa !5
  %96 = fneg double %63
  %97 = fneg double %14
  store double %97, ptr %56, align 16, !tbaa !5
  %98 = fneg double %65
  %.pre = tail call double @llvm.fmuladd.f64(double %95, double %81, double 0.000000e+00)
  %.pre875 = tail call double @llvm.fmuladd.f64(double %96, double %83, double %.pre)
  %.pre877 = tail call double @llvm.fmuladd.f64(double %98, double %79, double %.pre875)
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader484.preheader, %.preheader486.preheader
  %.pre-phi878 = phi double [ %.pre877, %.preheader484.preheader ], [ %85, %.preheader486.preheader ]
  %.sroa.14858.0 = phi double [ %2, %.preheader484.preheader ], [ %5, %.preheader486.preheader ]
  %.sroa.16.0 = phi double [ %5, %.preheader484.preheader ], [ %2, %.preheader486.preheader ]
  %99 = phi <2 x double> [ %91, %.preheader484.preheader ], [ %89, %.preheader486.preheader ]
  %100 = phi <2 x double> [ %89, %.preheader484.preheader ], [ %91, %.preheader486.preheader ]
  %101 = insertelement <2 x double> poison, double %.pre-phi878, i64 0
  %102 = shufflevector <2 x double> %101, <2 x double> poison, <2 x i32> zeroinitializer
  %103 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %102, <2 x double> %77, <2 x double> %100)
  %104 = tail call double @llvm.fmuladd.f64(double %.pre-phi878, double %79, double %.sroa.16.0)
  %105 = fsub double %.sroa.14858.0, %104
  %106 = fadd <2 x double> %60, %58
  %107 = fadd double %8, %11
  %108 = getelementptr inbounds i8, ptr %31, i64 8
  %109 = fsub <2 x double> %99, %103
  %110 = extractelement <2 x double> %109, i64 0
  %111 = tail call double @llvm.fmuladd.f64(double %110, double %110, double 0.000000e+00)
  %112 = extractelement <2 x double> %109, i64 1
  %113 = tail call double @llvm.fmuladd.f64(double %112, double %112, double %111)
  %114 = tail call double @llvm.fmuladd.f64(double %105, double %105, double %113)
  %115 = tail call double @sqrt(double noundef %114) #5
  %116 = fmul double %115, 5.000000e-01
  %117 = fmul double %48, %116
  %118 = insertelement <2 x double> poison, double %117, i64 0
  %119 = shufflevector <2 x double> %118, <2 x double> poison, <2 x i32> zeroinitializer
  %120 = fmul <2 x double> %119, %77
  %121 = fmul double %117, %79
  %122 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %109, <2 x double> <double 5.000000e-01, double 5.000000e-01>, <2 x double> %100)
  %123 = fadd <2 x double> %122, %120
  %124 = fneg <2 x double> %120
  %125 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %109, <2 x double> <double 5.000000e-01, double 5.000000e-01>, <2 x double> %124)
  %126 = fadd <2 x double> %125, %103
  %127 = fneg double %121
  %128 = insertelement <2 x double> poison, double %105, i64 0
  %129 = shufflevector <2 x double> %128, <2 x double> poison, <2 x i32> zeroinitializer
  %130 = insertelement <2 x double> poison, double %.sroa.16.0, i64 0
  %131 = insertelement <2 x double> %130, double %127, i64 1
  %132 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> <double 5.000000e-01, double 5.000000e-01>, <2 x double> %131)
  %133 = insertelement <2 x double> poison, double %121, i64 0
  %134 = insertelement <2 x double> %133, double %104, i64 1
  %135 = fadd <2 x double> %132, %134
  %136 = fadd <2 x double> %123, %126
  %137 = fsub <2 x double> %106, %136
  %138 = fmul <2 x double> %137, <double 5.000000e-01, double 5.000000e-01>
  %139 = extractelement <2 x double> %135, i64 0
  %140 = extractelement <2 x double> %135, i64 1
  %141 = fadd double %139, %140
  %142 = fsub double %107, %141
  %143 = fmul double %142, 5.000000e-01
  %144 = extractelement <2 x double> %138, i64 0
  %145 = tail call double @llvm.fmuladd.f64(double %144, double %81, double 0.000000e+00)
  %146 = extractelement <2 x double> %138, i64 1
  %147 = tail call double @llvm.fmuladd.f64(double %146, double %83, double %145)
  %148 = tail call double @llvm.fmuladd.f64(double %143, double %79, double %147)
  %149 = fneg double %148
  %150 = insertelement <2 x double> poison, double %149, i64 0
  %151 = shufflevector <2 x double> %150, <2 x double> poison, <2 x i32> zeroinitializer
  %152 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %151, <2 x double> %77, <2 x double> %138)
  store <2 x double> %152, ptr %31, align 16, !tbaa !5
  %153 = tail call double @llvm.fmuladd.f64(double %149, double %79, double %143)
  %154 = getelementptr inbounds i8, ptr %31, i64 16
  store double %153, ptr %154, align 16, !tbaa !5
  %155 = extractelement <2 x double> %152, i64 0
  %156 = tail call double @llvm.fmuladd.f64(double %155, double %155, double 0.000000e+00)
  %157 = extractelement <2 x double> %152, i64 1
  %158 = tail call double @llvm.fmuladd.f64(double %157, double %157, double %156)
  %159 = tail call double @llvm.fmuladd.f64(double %153, double %153, double %158)
  %160 = fadd double %72, %159
  %161 = fdiv double 1.000000e+00, %160
  %162 = fneg double %161
  %163 = shufflevector <2 x double> %123, <2 x double> %126, <2 x i32> <i32 0, i32 2>
  %164 = fneg <2 x double> %163
  %165 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> zeroinitializer
  %166 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %164, <2 x double> %165, <2 x double> zeroinitializer)
  %167 = shufflevector <2 x double> %123, <2 x double> %126, <2 x i32> <i32 1, i32 3>
  %168 = fneg <2 x double> %167
  %169 = shufflevector <2 x double> %77, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %170 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %168, <2 x double> %169, <2 x double> %166)
  %171 = fneg <2 x double> %135
  %172 = insertelement <2 x double> poison, double %79, i64 0
  %173 = shufflevector <2 x double> %172, <2 x double> poison, <2 x i32> zeroinitializer
  %174 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %171, <2 x double> %173, <2 x double> %170)
  %175 = insertelement <2 x double> poison, double %162, i64 0
  %176 = shufflevector <2 x double> %175, <2 x double> poison, <2 x i32> zeroinitializer
  %177 = fmul double %161, 2.000000e+00
  %178 = extractelement <2 x double> %174, i64 0
  %179 = fneg double %178
  %180 = extractelement <2 x double> %174, i64 1
  %181 = fneg double %180
  %182 = insertelement <2 x double> %57, double %6, i64 1
  %183 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %182, <2 x double> %165, <2 x double> zeroinitializer)
  %184 = insertelement <2 x double> poison, double %10, i64 0
  %185 = insertelement <2 x double> %184, double %7, i64 1
  %186 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %169, <2 x double> %183)
  %187 = insertelement <2 x double> poison, double %11, i64 0
  %188 = insertelement <2 x double> %187, double %8, i64 1
  %189 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %173, <2 x double> %186)
  %190 = extractelement <2 x double> %189, i64 1
  %191 = fsub double %190, %178
  %192 = fsub <2 x double> %189, %174
  %193 = shufflevector <2 x double> %189, <2 x double> poison, <2 x i32> zeroinitializer
  %194 = fadd <2 x double> %193, %174
  %195 = extractelement <2 x double> %189, i64 0
  %196 = fsub double %195, %180
  %197 = extractelement <2 x double> %194, i64 0
  %198 = tail call double @llvm.fmuladd.f64(double %197, double %197, double %160)
  %199 = extractelement <2 x double> %194, i64 1
  %200 = tail call double @llvm.fmuladd.f64(double %199, double %199, double %160)
  %201 = shufflevector <2 x double> %189, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %202 = fadd <2 x double> %201, %174
  %203 = extractelement <2 x double> %202, i64 0
  %204 = tail call double @llvm.fmuladd.f64(double %203, double %203, double %160)
  %205 = extractelement <2 x double> %202, i64 1
  %206 = tail call double @llvm.fmuladd.f64(double %205, double %205, double %160)
  %207 = tail call double @sqrt(double noundef %204) #5
  %208 = tail call double @sqrt(double noundef %206) #5
  %209 = tail call double @sqrt(double noundef %198) #5
  %210 = tail call double @sqrt(double noundef %200) #5
  %211 = insertelement <2 x double> poison, double %207, i64 0
  %212 = insertelement <2 x double> %211, double %208, i64 1
  %213 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %212
  %214 = insertelement <2 x double> poison, double %209, i64 0
  %215 = insertelement <2 x double> %214, double %210, i64 1
  %216 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %215
  %217 = fadd double %207, %203
  %218 = fsub double %207, %203
  %219 = fadd double %208, %205
  %220 = fsub double %208, %205
  %221 = fadd double %209, %197
  %222 = fsub double %209, %197
  %223 = fadd double %210, %199
  %224 = fsub double %210, %199
  %225 = tail call double @log(double noundef %217) #5
  %226 = tail call double @log(double noundef %218) #5
  %227 = tail call double @log(double noundef %219) #5
  %228 = tail call double @log(double noundef %220) #5
  %229 = insertelement <2 x double> poison, double %225, i64 0
  %230 = insertelement <2 x double> %229, double %227, i64 1
  %231 = insertelement <2 x double> poison, double %226, i64 0
  %232 = insertelement <2 x double> %231, double %228, i64 1
  %233 = fsub <2 x double> %230, %232
  %234 = fmul <2 x double> %233, <double 5.000000e-01, double 5.000000e-01>
  %235 = tail call double @log(double noundef %221) #5
  %236 = tail call double @log(double noundef %222) #5
  %237 = tail call double @log(double noundef %223) #5
  %238 = tail call double @log(double noundef %224) #5
  %239 = insertelement <2 x double> poison, double %235, i64 0
  %240 = insertelement <2 x double> %239, double %237, i64 1
  %241 = insertelement <2 x double> poison, double %236, i64 0
  %242 = insertelement <2 x double> %241, double %238, i64 1
  %243 = fsub <2 x double> %240, %242
  %244 = fmul <2 x double> %243, <double 5.000000e-01, double 5.000000e-01>
  %245 = fmul double %191, %207
  %246 = fmul double %161, %245
  %247 = fmul <2 x double> %202, %176
  %248 = fmul <2 x double> %247, %213
  %249 = insertelement <2 x double> %214, double %208, i64 1
  %250 = fmul <2 x double> %192, %249
  %251 = insertelement <2 x double> poison, double %161, i64 0
  %252 = shufflevector <2 x double> %251, <2 x double> poison, <2 x i32> zeroinitializer
  %253 = fmul <2 x double> %252, %250
  %254 = fmul double %196, %210
  %255 = fmul double %161, %254
  %256 = fmul <2 x double> %194, %176
  %257 = fmul <2 x double> %256, %216
  %258 = extractelement <2 x double> %234, i64 0
  %259 = fsub double %258, %246
  %260 = fneg double %207
  %261 = tail call double @llvm.fmuladd.f64(double %178, double %258, double %260)
  %262 = extractelement <2 x double> %213, i64 0
  %263 = fneg double %262
  %264 = tail call double @llvm.fmuladd.f64(double %177, double %207, double %263)
  %265 = fneg double %190
  %266 = tail call double @llvm.fmuladd.f64(double %265, double %262, double %246)
  %267 = extractelement <2 x double> %248, i64 0
  %268 = tail call double @llvm.fmuladd.f64(double %179, double %267, double %262)
  %269 = fneg double %208
  %270 = extractelement <2 x double> %234, i64 1
  %271 = tail call double @llvm.fmuladd.f64(double %180, double %270, double %269)
  %272 = extractelement <2 x double> %213, i64 1
  %273 = fneg double %272
  %274 = tail call double @llvm.fmuladd.f64(double %177, double %208, double %273)
  %275 = extractelement <2 x double> %253, i64 1
  %276 = tail call double @llvm.fmuladd.f64(double %265, double %272, double %275)
  %277 = extractelement <2 x double> %248, i64 1
  %278 = tail call double @llvm.fmuladd.f64(double %181, double %277, double %272)
  %279 = fneg double %209
  %280 = extractelement <2 x double> %244, i64 0
  %281 = tail call double @llvm.fmuladd.f64(double %178, double %280, double %279)
  %282 = extractelement <2 x double> %216, i64 0
  %283 = fneg double %282
  %284 = tail call double @llvm.fmuladd.f64(double %177, double %209, double %283)
  %285 = fneg double %195
  %286 = extractelement <2 x double> %253, i64 0
  %287 = tail call double @llvm.fmuladd.f64(double %285, double %282, double %286)
  %288 = extractelement <2 x double> %257, i64 0
  %289 = tail call double @llvm.fmuladd.f64(double %179, double %288, double %282)
  %290 = extractelement <2 x double> %244, i64 1
  %291 = fsub double %290, %255
  %292 = fneg double %210
  %293 = tail call double @llvm.fmuladd.f64(double %180, double %290, double %292)
  %294 = extractelement <2 x double> %216, i64 1
  %295 = fneg double %294
  %296 = tail call double @llvm.fmuladd.f64(double %177, double %210, double %295)
  %297 = tail call double @llvm.fmuladd.f64(double %285, double %294, double %255)
  %298 = extractelement <2 x double> %257, i64 1
  %299 = tail call double @llvm.fmuladd.f64(double %181, double %298, double %294)
  %300 = fadd double %259, 0.000000e+00
  %301 = fadd double %264, 0.000000e+00
  %302 = shufflevector <2 x double> %244, <2 x double> %234, <2 x i32> <i32 0, i32 3>
  %303 = fsub <2 x double> %253, %302
  %304 = extractelement <2 x double> %303, i64 1
  %305 = fadd double %300, %304
  %306 = fsub double %301, %274
  %307 = extractelement <2 x double> %303, i64 0
  %308 = fadd double %305, %307
  %309 = fsub double %306, %284
  %310 = fadd double %308, %291
  %311 = fadd double %309, %296
  %312 = fmul double %310, -5.000000e-01
  %313 = fmul double %161, %311
  %314 = load i32, ptr @__const.SpecialSegSegForceHalf.alt1, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %315
  %317 = load double, ptr %316, align 8, !tbaa !5
  %318 = load i32, ptr @__const.SpecialSegSegForceHalf.alt2, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %319
  %321 = load double, ptr %320, align 8, !tbaa !5
  %322 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %319
  %323 = load double, ptr %322, align 8, !tbaa !5
  %324 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %315
  %325 = load double, ptr %324, align 8, !tbaa !5
  %326 = fneg double %323
  %327 = fmul double %325, %326
  %328 = tail call double @llvm.fmuladd.f64(double %317, double %321, double %327)
  %329 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %315
  %330 = load double, ptr %329, align 8, !tbaa !5
  %331 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %319
  %332 = load double, ptr %331, align 8, !tbaa !5
  %333 = fneg double %332
  %334 = fmul double %325, %333
  %335 = tail call double @llvm.fmuladd.f64(double %330, double %321, double %334)
  %336 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %315
  %337 = load double, ptr %336, align 8, !tbaa !5
  %338 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %319
  %339 = load double, ptr %338, align 8, !tbaa !5
  %340 = fneg double %339
  %341 = fmul double %325, %340
  %342 = tail call double @llvm.fmuladd.f64(double %337, double %321, double %341)
  %343 = load i32, ptr getelementptr inbounds (i8, ptr @__const.SpecialSegSegForceHalf.alt1, i64 4), align 4, !tbaa !9
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !5
  %347 = load i32, ptr getelementptr inbounds (i8, ptr @__const.SpecialSegSegForceHalf.alt2, i64 4), align 4, !tbaa !9
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %348
  %350 = load double, ptr %349, align 8, !tbaa !5
  %351 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %348
  %352 = load double, ptr %351, align 8, !tbaa !5
  %353 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %344
  %354 = load double, ptr %353, align 8, !tbaa !5
  %355 = fneg double %352
  %356 = fmul double %354, %355
  %357 = tail call double @llvm.fmuladd.f64(double %346, double %350, double %356)
  %358 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %344
  %359 = load double, ptr %358, align 8, !tbaa !5
  %360 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %348
  %361 = load double, ptr %360, align 8, !tbaa !5
  %362 = fneg double %361
  %363 = fmul double %354, %362
  %364 = tail call double @llvm.fmuladd.f64(double %359, double %350, double %363)
  %365 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %344
  %366 = load double, ptr %365, align 8, !tbaa !5
  %367 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %348
  %368 = load double, ptr %367, align 8, !tbaa !5
  %369 = fneg double %368
  %370 = fmul double %354, %369
  %371 = tail call double @llvm.fmuladd.f64(double %366, double %350, double %370)
  %372 = load i32, ptr getelementptr inbounds (i8, ptr @__const.SpecialSegSegForceHalf.alt1, i64 8), align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %373
  %375 = load double, ptr %374, align 8, !tbaa !5
  %376 = load i32, ptr getelementptr inbounds (i8, ptr @__const.SpecialSegSegForceHalf.alt2, i64 8), align 4, !tbaa !9
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %377
  %379 = load double, ptr %378, align 8, !tbaa !5
  %380 = getelementptr inbounds [3 x double], ptr %28, i64 0, i64 %377
  %381 = load double, ptr %380, align 8, !tbaa !5
  %382 = getelementptr inbounds [3 x double], ptr %30, i64 0, i64 %373
  %383 = load double, ptr %382, align 8, !tbaa !5
  %384 = fneg double %381
  %385 = fmul double %383, %384
  %386 = tail call double @llvm.fmuladd.f64(double %375, double %379, double %385)
  %387 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %373
  %388 = load double, ptr %387, align 8, !tbaa !5
  %389 = getelementptr inbounds [3 x double], ptr %29, i64 0, i64 %377
  %390 = load double, ptr %389, align 8, !tbaa !5
  %391 = fneg double %390
  %392 = fmul double %383, %391
  %393 = tail call double @llvm.fmuladd.f64(double %388, double %379, double %392)
  %394 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %373
  %395 = load double, ptr %394, align 8, !tbaa !5
  %396 = getelementptr inbounds [3 x double], ptr %31, i64 0, i64 %377
  %397 = load double, ptr %396, align 8, !tbaa !5
  %398 = fneg double %397
  %399 = fmul double %383, %398
  %400 = tail call double @llvm.fmuladd.f64(double %395, double %379, double %399)
  %401 = fadd double %207, 0.000000e+00
  %402 = fadd double %261, 0.000000e+00
  %403 = fadd double %267, 0.000000e+00
  %404 = fsub double %401, %208
  %405 = fsub double %402, %271
  %406 = fsub double %403, %277
  %407 = fsub double %404, %209
  %408 = fsub double %405, %281
  %409 = fsub double %406, %288
  %410 = fadd double %407, %210
  %411 = fadd double %408, %293
  %412 = fadd double %409, %298
  %413 = fmul double %161, %410
  %414 = load double, ptr %30, align 16, !tbaa !5
  %415 = load double, ptr %28, align 16, !tbaa !5
  %416 = load double, ptr %29, align 16, !tbaa !5
  %417 = load double, ptr %31, align 16, !tbaa !5
  %418 = tail call double @llvm.fmuladd.f64(double %335, double %417, double 0.000000e+00)
  %419 = load double, ptr %78, align 8, !tbaa !5
  %420 = load double, ptr %53, align 8, !tbaa !5
  %421 = load double, ptr %55, align 8, !tbaa !5
  %422 = load double, ptr %108, align 8, !tbaa !5
  %423 = tail call double @llvm.fmuladd.f64(double %364, double %422, double %418)
  %424 = load double, ptr %80, align 16, !tbaa !5
  %425 = load double, ptr %54, align 16, !tbaa !5
  %426 = load double, ptr %56, align 16, !tbaa !5
  %427 = insertelement <2 x double> poison, double %414, i64 0
  %428 = shufflevector <2 x double> %427, <2 x double> poison, <2 x i32> zeroinitializer
  %429 = insertelement <2 x double> poison, double %415, i64 0
  %430 = insertelement <2 x double> %429, double %416, i64 1
  %431 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %428, <2 x double> %430, <2 x double> zeroinitializer)
  %432 = insertelement <2 x double> poison, double %419, i64 0
  %433 = shufflevector <2 x double> %432, <2 x double> poison, <2 x i32> zeroinitializer
  %434 = insertelement <2 x double> poison, double %420, i64 0
  %435 = insertelement <2 x double> %434, double %421, i64 1
  %436 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %433, <2 x double> %435, <2 x double> %431)
  %437 = insertelement <2 x double> poison, double %424, i64 0
  %438 = shufflevector <2 x double> %437, <2 x double> poison, <2 x i32> zeroinitializer
  %439 = insertelement <2 x double> poison, double %425, i64 0
  %440 = insertelement <2 x double> %439, double %426, i64 1
  %441 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %438, <2 x double> %440, <2 x double> %436)
  %442 = load double, ptr %154, align 16, !tbaa !5
  %443 = tail call double @llvm.fmuladd.f64(double %393, double %442, double %423)
  %444 = fsub double 0.000000e+00, %258
  %445 = fadd double %268, 0.000000e+00
  %446 = fadd double %444, %270
  %447 = fsub double %445, %278
  %448 = fadd double %446, %280
  %449 = fsub double %447, %289
  %450 = fsub double %448, %290
  %451 = fadd double %449, %299
  %452 = extractelement <2 x double> %441, i64 0
  %453 = extractelement <2 x double> %441, i64 1
  %454 = fmul double %452, %453
  %455 = fneg double %416
  %456 = tail call double @llvm.fmuladd.f64(double %453, double %414, double %455)
  %457 = fmul double %454, %417
  %458 = fmul double %443, %328
  %459 = fneg double %421
  %460 = tail call double @llvm.fmuladd.f64(double %453, double %419, double %459)
  %461 = fmul double %454, %422
  %462 = fmul double %443, %357
  %463 = fneg double %426
  %464 = tail call double @llvm.fmuladd.f64(double %453, double %424, double %463)
  %465 = fmul double %454, %442
  %466 = fmul double %443, %386
  %467 = tail call double @llvm.fmuladd.f64(double %417, double %415, double 0.000000e+00)
  %468 = tail call double @llvm.fmuladd.f64(double %335, double %415, double 0.000000e+00)
  %469 = tail call double @llvm.fmuladd.f64(double %422, double %420, double %467)
  %470 = tail call double @llvm.fmuladd.f64(double %364, double %420, double %468)
  %471 = tail call double @llvm.fmuladd.f64(double %442, double %425, double %469)
  %472 = tail call double @llvm.fmuladd.f64(double %393, double %425, double %470)
  %473 = fadd double %266, 0.000000e+00
  %474 = fsub double %473, %276
  %475 = fsub double %474, %287
  %476 = fadd double %475, %297
  %477 = fsub double %52, %50
  %478 = fmul double %477, %452
  %479 = fmul double %52, %443
  %480 = fneg double %50
  %481 = fneg double %86
  %482 = fneg double %72
  %483 = fmul double %52, %482
  %484 = fneg double %471
  %485 = fmul double %479, %484
  %486 = fneg double %86
  %487 = fmul double %452, %486
  %488 = fneg double %452
  %489 = fmul double %479, %488
  %490 = fmul double %472, %342
  %491 = tail call double @llvm.fmuladd.f64(double %471, double %456, double %490)
  %492 = fsub double %491, %458
  %493 = fmul double %457, %480
  %494 = tail call double @llvm.fmuladd.f64(double %52, double %492, double %493)
  %495 = fmul double %478, %456
  %496 = fmul double %483, %458
  %497 = tail call double @llvm.fmuladd.f64(double %481, double %457, double %496)
  %498 = tail call double @llvm.fmuladd.f64(double %485, double %342, double %497)
  %499 = fmul double %342, %489
  %500 = tail call double @llvm.fmuladd.f64(double %487, double %456, double %499)
  %501 = fmul double %472, %371
  %502 = tail call double @llvm.fmuladd.f64(double %471, double %460, double %501)
  %503 = fsub double %502, %462
  %504 = fmul double %461, %480
  %505 = tail call double @llvm.fmuladd.f64(double %52, double %503, double %504)
  %506 = fmul double %478, %460
  %507 = fmul double %483, %462
  %508 = tail call double @llvm.fmuladd.f64(double %481, double %461, double %507)
  %509 = tail call double @llvm.fmuladd.f64(double %485, double %371, double %508)
  %510 = fmul double %371, %489
  %511 = tail call double @llvm.fmuladd.f64(double %487, double %460, double %510)
  %512 = fmul double %472, %400
  %513 = tail call double @llvm.fmuladd.f64(double %471, double %464, double %512)
  %514 = fsub double %513, %466
  %515 = fmul double %465, %480
  %516 = tail call double @llvm.fmuladd.f64(double %52, double %514, double %515)
  %517 = fmul double %478, %464
  %518 = fmul double %483, %466
  %519 = tail call double @llvm.fmuladd.f64(double %481, double %465, double %518)
  %520 = tail call double @llvm.fmuladd.f64(double %485, double %400, double %519)
  %521 = fmul double %400, %489
  %522 = tail call double @llvm.fmuladd.f64(double %487, double %464, double %521)
  %523 = fmul double %161, %476
  %524 = tail call double @llvm.fmuladd.f64(double %265, double %413, double %312)
  %525 = tail call double @llvm.fmuladd.f64(double %265, double %450, double %411)
  %526 = tail call double @llvm.fmuladd.f64(double %265, double %313, double %523)
  %527 = tail call double @llvm.fmuladd.f64(double %265, double %412, double %451)
  %528 = fmul double %525, %495
  %529 = tail call double @llvm.fmuladd.f64(double %494, double %524, double %528)
  %530 = tail call double @llvm.fmuladd.f64(double %498, double %526, double %529)
  %531 = tail call double @llvm.fmuladd.f64(double %500, double %527, double %530)
  %532 = fmul double %74, %531
  %533 = fmul double %525, %506
  %534 = tail call double @llvm.fmuladd.f64(double %505, double %524, double %533)
  %535 = tail call double @llvm.fmuladd.f64(double %509, double %526, double %534)
  %536 = tail call double @llvm.fmuladd.f64(double %511, double %527, double %535)
  %537 = fmul double %74, %536
  %538 = fmul double %525, %517
  %539 = tail call double @llvm.fmuladd.f64(double %516, double %524, double %538)
  %540 = tail call double @llvm.fmuladd.f64(double %520, double %526, double %539)
  %541 = tail call double @llvm.fmuladd.f64(double %522, double %527, double %540)
  %542 = fmul double %74, %541
  %543 = fneg double %312
  %544 = tail call double @llvm.fmuladd.f64(double %195, double %413, double %543)
  %545 = fneg double %411
  %546 = tail call double @llvm.fmuladd.f64(double %195, double %450, double %545)
  %547 = fneg double %523
  %548 = tail call double @llvm.fmuladd.f64(double %195, double %313, double %547)
  %549 = fneg double %451
  %550 = tail call double @llvm.fmuladd.f64(double %195, double %412, double %549)
  %551 = fmul double %546, %495
  %552 = tail call double @llvm.fmuladd.f64(double %494, double %544, double %551)
  %553 = tail call double @llvm.fmuladd.f64(double %498, double %548, double %552)
  %554 = tail call double @llvm.fmuladd.f64(double %500, double %550, double %553)
  %555 = fmul double %74, %554
  %556 = fmul double %546, %506
  %557 = tail call double @llvm.fmuladd.f64(double %505, double %544, double %556)
  %558 = tail call double @llvm.fmuladd.f64(double %509, double %548, double %557)
  %559 = tail call double @llvm.fmuladd.f64(double %511, double %550, double %558)
  %560 = fmul double %74, %559
  %561 = fmul double %546, %517
  %562 = tail call double @llvm.fmuladd.f64(double %516, double %544, double %561)
  %563 = tail call double @llvm.fmuladd.f64(double %520, double %548, double %562)
  %564 = tail call double @llvm.fmuladd.f64(double %522, double %550, double %563)
  %565 = fmul double %74, %564
  store double %555, ptr %22, align 8, !tbaa !5
  store double %560, ptr %23, align 8, !tbaa !5
  store double %565, ptr %24, align 8, !tbaa !5
  store double %532, ptr %25, align 8, !tbaa !5
  store double %537, ptr %26, align 8, !tbaa !5
  store double %542, ptr %27, align 8, !tbaa !5
  %566 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %163, <2 x double> %163, <2 x double> zeroinitializer)
  %567 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %167, <2 x double> %167, <2 x double> %566)
  %568 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %135, <2 x double> %567)
  %569 = fmul double %115, %115
  %shift = shufflevector <2 x double> %568, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %570 = fadd <2 x double> %568, %shift
  %571 = extractelement <2 x double> %570, i64 0
  %572 = fmul double %571, 0x3D719799812DEA11
  %573 = fcmp ogt double %569, %572
  br i1 %573, label %574, label %622

574:                                              ; preds = %.loopexit
  %575 = load double, ptr %29, align 16, !tbaa !5
  %576 = load double, ptr %55, align 8, !tbaa !5
  %577 = load double, ptr %56, align 16, !tbaa !5
  %578 = extractelement <2 x double> %123, i64 0
  %579 = extractelement <2 x double> %123, i64 1
  %580 = extractelement <2 x double> %100, i64 0
  %581 = extractelement <2 x double> %100, i64 1
  call void @SegSegForce(double noundef %580, double noundef %581, double noundef %.sroa.16.0, double noundef %578, double noundef %579, double noundef %139, double noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %575, double noundef %576, double noundef %577, double noundef %15, double noundef %16, double noundef %17, double noundef %18, double noundef %19, double noundef %20, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43)
  %582 = load double, ptr %38, align 8, !tbaa !5
  %583 = load double, ptr %22, align 8, !tbaa !5
  %584 = fadd double %582, %583
  store double %584, ptr %22, align 8, !tbaa !5
  %585 = load double, ptr %39, align 8, !tbaa !5
  %586 = load double, ptr %23, align 8, !tbaa !5
  %587 = fadd double %585, %586
  store double %587, ptr %23, align 8, !tbaa !5
  %588 = load double, ptr %40, align 8, !tbaa !5
  %589 = load double, ptr %24, align 8, !tbaa !5
  %590 = fadd double %588, %589
  store double %590, ptr %24, align 8, !tbaa !5
  %591 = load double, ptr %41, align 8, !tbaa !5
  %592 = load double, ptr %25, align 8, !tbaa !5
  %593 = fadd double %591, %592
  store double %593, ptr %25, align 8, !tbaa !5
  %594 = load double, ptr %42, align 8, !tbaa !5
  %595 = load double, ptr %26, align 8, !tbaa !5
  %596 = fadd double %594, %595
  store double %596, ptr %26, align 8, !tbaa !5
  %597 = load double, ptr %43, align 8, !tbaa !5
  %598 = load double, ptr %27, align 8, !tbaa !5
  %599 = fadd double %597, %598
  store double %599, ptr %27, align 8, !tbaa !5
  %600 = extractelement <2 x double> %99, i64 0
  %601 = extractelement <2 x double> %99, i64 1
  %602 = extractelement <2 x double> %126, i64 0
  %603 = extractelement <2 x double> %126, i64 1
  call void @SegSegForce(double noundef %602, double noundef %603, double noundef %140, double noundef %600, double noundef %601, double noundef %.sroa.14858.0, double noundef %6, double noundef %7, double noundef %8, double noundef %9, double noundef %10, double noundef %11, double noundef %575, double noundef %576, double noundef %577, double noundef %15, double noundef %16, double noundef %17, double noundef %18, double noundef %19, double noundef %20, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43)
  %604 = load double, ptr %38, align 8, !tbaa !5
  %605 = load double, ptr %22, align 8, !tbaa !5
  %606 = fadd double %604, %605
  store double %606, ptr %22, align 8, !tbaa !5
  %607 = load double, ptr %39, align 8, !tbaa !5
  %608 = load double, ptr %23, align 8, !tbaa !5
  %609 = fadd double %607, %608
  store double %609, ptr %23, align 8, !tbaa !5
  %610 = load double, ptr %40, align 8, !tbaa !5
  %611 = load double, ptr %24, align 8, !tbaa !5
  %612 = fadd double %610, %611
  store double %612, ptr %24, align 8, !tbaa !5
  %613 = load double, ptr %41, align 8, !tbaa !5
  %614 = load double, ptr %25, align 8, !tbaa !5
  %615 = fadd double %613, %614
  store double %615, ptr %25, align 8, !tbaa !5
  %616 = load double, ptr %42, align 8, !tbaa !5
  %617 = load double, ptr %26, align 8, !tbaa !5
  %618 = fadd double %616, %617
  store double %618, ptr %26, align 8, !tbaa !5
  %619 = load double, ptr %43, align 8, !tbaa !5
  %620 = load double, ptr %27, align 8, !tbaa !5
  %621 = fadd double %619, %620
  store double %621, ptr %27, align 8, !tbaa !5
  br label %622

622:                                              ; preds = %574, %.loopexit
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #5
  ret void
}

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @SegSegForce(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double 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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #4

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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}


; Effective O3 passes: BDCEPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass