; LLVM IR from garethcmurphy/Interstellar-Jet-MHD-Simulation :: src/hlld.ll (Z4hlldPdS_S_S_iS_iPi)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }

@__const._Z4hlldPdS_S_S_iS_iPi.outfilename = external hidden unnamed_addr constant [50 x i8], align 16
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1

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

234:                                              ; preds = %8
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %236 unwind label %246

236:                                              ; preds = %234
  %237 = load double, ptr %25, align 8, !tbaa !11
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %235, double noundef %237)
          to label %239 unwind label %246

239:                                              ; preds = %236
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %241 unwind label %246

241:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %242

242:                                              ; preds = %260, %241
  %243 = load i32, ptr %74, align 4, !tbaa !9
  %244 = icmp slt i32 %243, 8
  br i1 %244, label %250, label %245

245:                                              ; preds = %242
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %267

246:                                              ; preds = %329, %305, %302, %300, %267, %239, %236, %234
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %72, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %73, align 4
  br label %1422

250:                                              ; preds = %242
  %251 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
          to label %252 unwind label %263

252:                                              ; preds = %250
  %253 = load ptr, ptr %10, align 8, !tbaa !5
  %254 = load i32, ptr %74, align 4, !tbaa !9
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds double, ptr %253, i64 %255
  %257 = load double, ptr %256, align 8, !tbaa !11
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %251, double noundef %257)
          to label %259 unwind label %263

259:                                              ; preds = %252
  br label %260

260:                                              ; preds = %259
  %261 = load i32, ptr %74, align 4, !tbaa !9
  %262 = add nsw i32 %261, 1
  store i32 %262, ptr %74, align 4, !tbaa !9
  br label %242, !llvm.loop !13

263:                                              ; preds = %252, %250
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %72, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %1422

267:                                              ; preds = %245
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %269 unwind label %246

269:                                              ; preds = %267
  store i32 1, ptr %9, align 4
  store i32 1, ptr %75, align 4
  br label %1420

270:                                              ; preds = %8
  %271 = load double, ptr %31, align 8, !tbaa !11
  %272 = load double, ptr %31, align 8, !tbaa !11
  %273 = load double, ptr %32, align 8, !tbaa !11
  %274 = load double, ptr %32, align 8, !tbaa !11
  %275 = fmul double %273, %274
  %276 = call double @llvm.fmuladd.f64(double %271, double %272, double %275)
  %277 = load double, ptr %33, align 8, !tbaa !11
  %278 = load double, ptr %33, align 8, !tbaa !11
  %279 = call double @llvm.fmuladd.f64(double %277, double %278, double %276)
  store double %279, ptr %64, align 8, !tbaa !11
  %280 = load double, ptr %36, align 8, !tbaa !11
  %281 = load double, ptr %36, align 8, !tbaa !11
  %282 = load double, ptr %37, align 8, !tbaa !11
  %283 = load double, ptr %37, align 8, !tbaa !11
  %284 = fmul double %282, %283
  %285 = call double @llvm.fmuladd.f64(double %280, double %281, double %284)
  %286 = load double, ptr %38, align 8, !tbaa !11
  %287 = load double, ptr %38, align 8, !tbaa !11
  %288 = call double @llvm.fmuladd.f64(double %286, double %287, double %285)
  store double %288, ptr %42, align 8, !tbaa !11
  %289 = load double, ptr %34, align 8, !tbaa !11
  %290 = load double, ptr %44, align 8, !tbaa !11
  %291 = load double, ptr %30, align 8, !tbaa !11
  %292 = fmul double 5.000000e-01, %291
  %293 = load double, ptr %64, align 8, !tbaa !11
  %294 = fmul double %292, %293
  %295 = call double @llvm.fmuladd.f64(double %289, double %290, double %294)
  %296 = load double, ptr %42, align 8, !tbaa !11
  %297 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %296, double %295)
  store double %297, ptr %35, align 8, !tbaa !11
  %298 = load double, ptr %34, align 8, !tbaa !11
  %299 = fcmp olt double %298, 0.000000e+00
  br i1 %299, label %300, label %332

300:                                              ; preds = %270
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %302 unwind label %246

302:                                              ; preds = %300
  %303 = load double, ptr %34, align 8, !tbaa !11
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %301, double noundef %303)
          to label %305 unwind label %246

305:                                              ; preds = %302
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %307 unwind label %246

307:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %322, %307
  %309 = load i32, ptr %76, align 4, !tbaa !9
  %310 = icmp slt i32 %309, 8
  br i1 %310, label %312, label %311

311:                                              ; preds = %308
  store i32 5, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %329

312:                                              ; preds = %308
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
          to label %314 unwind label %325

314:                                              ; preds = %312
  %315 = load ptr, ptr %11, align 8, !tbaa !5
  %316 = load i32, ptr %76, align 4, !tbaa !9
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds double, ptr %315, i64 %317
  %319 = load double, ptr %318, align 8, !tbaa !11
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %313, double noundef %319)
          to label %321 unwind label %325

321:                                              ; preds = %314
  br label %322

322:                                              ; preds = %321
  %323 = load i32, ptr %76, align 4, !tbaa !9
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr %76, align 4, !tbaa !9
  br label %308, !llvm.loop !15

325:                                              ; preds = %314, %312
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %72, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %1422

329:                                              ; preds = %311
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %331 unwind label %246

331:                                              ; preds = %329
  store i32 1, ptr %9, align 4
  store i32 1, ptr %75, align 4
  br label %1420

332:                                              ; preds = %270
  %333 = load double, ptr %21, align 8, !tbaa !11
  %334 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 0
  store double %333, ptr %334, align 16, !tbaa !11
  %335 = load double, ptr %22, align 8, !tbaa !11
  %336 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 1
  store double %335, ptr %336, align 8, !tbaa !11
  %337 = load double, ptr %23, align 8, !tbaa !11
  %338 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 2
  store double %337, ptr %338, align 16, !tbaa !11
  %339 = load double, ptr %24, align 8, !tbaa !11
  %340 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 3
  store double %339, ptr %340, align 8, !tbaa !11
  %341 = load double, ptr %25, align 8, !tbaa !11
  %342 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 4
  store double %341, ptr %342, align 16, !tbaa !11
  %343 = load double, ptr %28, align 8, !tbaa !11
  %344 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 5
  store double %343, ptr %344, align 8, !tbaa !11
  %345 = load double, ptr %29, align 8, !tbaa !11
  %346 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 6
  store double %345, ptr %346, align 16, !tbaa !11
  %347 = load double, ptr %30, align 8, !tbaa !11
  %348 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 0
  store double %347, ptr %348, align 16, !tbaa !11
  %349 = load double, ptr %31, align 8, !tbaa !11
  %350 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 1
  store double %349, ptr %350, align 8, !tbaa !11
  %351 = load double, ptr %32, align 8, !tbaa !11
  %352 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 2
  store double %351, ptr %352, align 16, !tbaa !11
  %353 = load double, ptr %33, align 8, !tbaa !11
  %354 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 3
  store double %353, ptr %354, align 8, !tbaa !11
  %355 = load double, ptr %34, align 8, !tbaa !11
  %356 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 4
  store double %355, ptr %356, align 16, !tbaa !11
  %357 = load double, ptr %37, align 8, !tbaa !11
  %358 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 5
  store double %357, ptr %358, align 8, !tbaa !11
  %359 = load double, ptr %38, align 8, !tbaa !11
  %360 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 6
  store double %359, ptr %360, align 16, !tbaa !11
  %361 = load double, ptr %21, align 8, !tbaa !11
  store double %361, ptr %55, align 8, !tbaa !11
  %362 = load double, ptr %55, align 8, !tbaa !11
  %363 = fdiv double 1.000000e+00, %362
  store double %363, ptr %56, align 8, !tbaa !11
  %364 = load double, ptr %36, align 8, !tbaa !11
  store double %364, ptr %57, align 8, !tbaa !11
  %365 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 5
  %366 = load double, ptr %365, align 8, !tbaa !11
  store double %366, ptr %58, align 8, !tbaa !11
  %367 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 6
  %368 = load double, ptr %367, align 16, !tbaa !11
  store double %368, ptr %59, align 8, !tbaa !11
  %369 = load double, ptr %57, align 8, !tbaa !11
  %370 = load double, ptr %57, align 8, !tbaa !11
  %371 = load double, ptr %58, align 8, !tbaa !11
  %372 = load double, ptr %58, align 8, !tbaa !11
  %373 = fmul double %371, %372
  %374 = call double @llvm.fmuladd.f64(double %369, double %370, double %373)
  %375 = load double, ptr %59, align 8, !tbaa !11
  %376 = load double, ptr %59, align 8, !tbaa !11
  %377 = call double @llvm.fmuladd.f64(double %375, double %376, double %374)
  %378 = load double, ptr %56, align 8, !tbaa !11
  %379 = fmul double %377, %378
  store double %379, ptr %42, align 8, !tbaa !11
  %380 = load double, ptr %25, align 8, !tbaa !11
  store double %380, ptr %60, align 8, !tbaa !11
  %381 = load double, ptr %57, align 8, !tbaa !11
  %382 = load double, ptr %57, align 8, !tbaa !11
  %383 = fmul double %381, %382
  %384 = load double, ptr %56, align 8, !tbaa !11
  %385 = fmul double %383, %384
  %386 = call double @llvm.fabs.f64(double %385)
  store double %386, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  %387 = load double, ptr %40, align 8, !tbaa !11
  %388 = call double @sqrt(double noundef %387) #9
  store double %388, ptr %77, align 8, !tbaa !11
  %389 = load double, ptr %20, align 8, !tbaa !11
  %390 = load double, ptr %25, align 8, !tbaa !11
  %391 = fmul double %389, %390
  %392 = load double, ptr %56, align 8, !tbaa !11
  %393 = fmul double %391, %392
  store double %393, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %394 = load double, ptr %61, align 8, !tbaa !11
  %395 = call double @sqrt(double noundef %394) #9
  store double %395, ptr %78, align 8, !tbaa !11
  %396 = load double, ptr %61, align 8, !tbaa !11
  %397 = load double, ptr %42, align 8, !tbaa !11
  %398 = fadd double %396, %397
  store double %398, ptr %63, align 8, !tbaa !11
  %399 = load double, ptr %63, align 8, !tbaa !11
  %400 = load double, ptr %63, align 8, !tbaa !11
  %401 = load double, ptr %61, align 8, !tbaa !11
  %402 = fmul double 4.000000e+00, %401
  %403 = load double, ptr %40, align 8, !tbaa !11
  %404 = fmul double %402, %403
  %405 = fneg double %404
  %406 = call double @llvm.fmuladd.f64(double %399, double %400, double %405)
  %407 = call double @sqrt(double noundef %406) #9
  store double %407, ptr %62, align 8, !tbaa !11
  %408 = load double, ptr %63, align 8, !tbaa !11
  %409 = load double, ptr %62, align 8, !tbaa !11
  %410 = fadd double %408, %409
  %411 = fmul double 5.000000e-01, %410
  store double %411, ptr %41, align 8, !tbaa !11
  %412 = load double, ptr %41, align 8, !tbaa !11
  %413 = call double @sqrt(double noundef %412) #9
  store double %413, ptr %69, align 8, !tbaa !11
  %414 = load double, ptr %30, align 8, !tbaa !11
  store double %414, ptr %55, align 8, !tbaa !11
  %415 = load double, ptr %55, align 8, !tbaa !11
  %416 = fdiv double 1.000000e+00, %415
  store double %416, ptr %56, align 8, !tbaa !11
  %417 = load double, ptr %36, align 8, !tbaa !11
  store double %417, ptr %57, align 8, !tbaa !11
  %418 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 5
  %419 = load double, ptr %418, align 8, !tbaa !11
  store double %419, ptr %58, align 8, !tbaa !11
  %420 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 6
  %421 = load double, ptr %420, align 16, !tbaa !11
  store double %421, ptr %59, align 8, !tbaa !11
  %422 = load double, ptr %57, align 8, !tbaa !11
  %423 = load double, ptr %57, align 8, !tbaa !11
  %424 = load double, ptr %58, align 8, !tbaa !11
  %425 = load double, ptr %58, align 8, !tbaa !11
  %426 = fmul double %424, %425
  %427 = call double @llvm.fmuladd.f64(double %422, double %423, double %426)
  %428 = load double, ptr %59, align 8, !tbaa !11
  %429 = load double, ptr %59, align 8, !tbaa !11
  %430 = call double @llvm.fmuladd.f64(double %428, double %429, double %427)
  %431 = load double, ptr %56, align 8, !tbaa !11
  %432 = fmul double %430, %431
  store double %432, ptr %42, align 8, !tbaa !11
  %433 = load double, ptr %34, align 8, !tbaa !11
  store double %433, ptr %60, align 8, !tbaa !11
  %434 = load double, ptr %57, align 8, !tbaa !11
  %435 = load double, ptr %57, align 8, !tbaa !11
  %436 = fmul double %434, %435
  %437 = load double, ptr %56, align 8, !tbaa !11
  %438 = fmul double %436, %437
  %439 = call double @llvm.fabs.f64(double %438)
  store double %439, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %440 = load double, ptr %40, align 8, !tbaa !11
  %441 = call double @sqrt(double noundef %440) #9
  store double %441, ptr %79, align 8, !tbaa !11
  %442 = load double, ptr %20, align 8, !tbaa !11
  %443 = load double, ptr %34, align 8, !tbaa !11
  %444 = fmul double %442, %443
  %445 = load double, ptr %56, align 8, !tbaa !11
  %446 = fmul double %444, %445
  store double %446, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %447 = load double, ptr %61, align 8, !tbaa !11
  %448 = call double @sqrt(double noundef %447) #9
  store double %448, ptr %80, align 8, !tbaa !11
  %449 = load double, ptr %61, align 8, !tbaa !11
  %450 = load double, ptr %42, align 8, !tbaa !11
  %451 = fadd double %449, %450
  store double %451, ptr %63, align 8, !tbaa !11
  %452 = load double, ptr %63, align 8, !tbaa !11
  %453 = load double, ptr %63, align 8, !tbaa !11
  %454 = load double, ptr %61, align 8, !tbaa !11
  %455 = fmul double 4.000000e+00, %454
  %456 = load double, ptr %40, align 8, !tbaa !11
  %457 = fmul double %455, %456
  %458 = fneg double %457
  %459 = call double @llvm.fmuladd.f64(double %452, double %453, double %458)
  %460 = call double @sqrt(double noundef %459) #9
  store double %460, ptr %62, align 8, !tbaa !11
  %461 = load double, ptr %63, align 8, !tbaa !11
  %462 = load double, ptr %62, align 8, !tbaa !11
  %463 = fadd double %461, %462
  %464 = fmul double 5.000000e-01, %463
  store double %464, ptr %41, align 8, !tbaa !11
  %465 = load double, ptr %41, align 8, !tbaa !11
  %466 = call double @sqrt(double noundef %465) #9
  store double %466, ptr %68, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %467 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 1
  %468 = load double, ptr %467, align 8, !tbaa !11
  %469 = load double, ptr %69, align 8, !tbaa !11
  %470 = fsub double %468, %469
  store double %470, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %471 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 1
  %472 = load double, ptr %471, align 8, !tbaa !11
  %473 = load double, ptr %68, align 8, !tbaa !11
  %474 = fsub double %472, %473
  store double %474, ptr %82, align 8, !tbaa !11
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %476 unwind label %644

476:                                              ; preds = %332
  %477 = load double, ptr %475, align 8, !tbaa !11
  store double %477, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %478 = getelementptr inbounds [7 x double], ptr %45, i64 0, i64 1
  %479 = load double, ptr %478, align 8, !tbaa !11
  %480 = load double, ptr %69, align 8, !tbaa !11
  %481 = fadd double %479, %480
  store double %481, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  %482 = getelementptr inbounds [7 x double], ptr %46, i64 0, i64 1
  %483 = load double, ptr %482, align 8, !tbaa !11
  %484 = load double, ptr %68, align 8, !tbaa !11
  %485 = fadd double %483, %484
  store double %485, ptr %84, align 8, !tbaa !11
  %486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %487 unwind label %648

487:                                              ; preds = %476
  %488 = load double, ptr %486, align 8, !tbaa !11
  store double %488, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %489 = load double, ptr %22, align 8, !tbaa !11
  %490 = load double, ptr %36, align 8, !tbaa !11
  %491 = load double, ptr %23, align 8, !tbaa !11
  %492 = load double, ptr %28, align 8, !tbaa !11
  %493 = fmul double %491, %492
  %494 = call double @llvm.fmuladd.f64(double %489, double %490, double %493)
  %495 = load double, ptr %24, align 8, !tbaa !11
  %496 = load double, ptr %29, align 8, !tbaa !11
  %497 = call double @llvm.fmuladd.f64(double %495, double %496, double %494)
  store double %497, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #9
  %498 = load double, ptr %31, align 8, !tbaa !11
  %499 = load double, ptr %36, align 8, !tbaa !11
  %500 = load double, ptr %32, align 8, !tbaa !11
  %501 = load double, ptr %37, align 8, !tbaa !11
  %502 = fmul double %500, %501
  %503 = call double @llvm.fmuladd.f64(double %498, double %499, double %502)
  %504 = load double, ptr %33, align 8, !tbaa !11
  %505 = load double, ptr %38, align 8, !tbaa !11
  %506 = call double @llvm.fmuladd.f64(double %504, double %505, double %503)
  store double %506, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %507 = load double, ptr %25, align 8, !tbaa !11
  %508 = load double, ptr %70, align 8, !tbaa !11
  %509 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %508, double %507)
  store double %509, ptr %87, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %510 = load double, ptr %34, align 8, !tbaa !11
  %511 = load double, ptr %71, align 8, !tbaa !11
  %512 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %511, double %510)
  store double %512, ptr %88, align 8, !tbaa !11
  %513 = load double, ptr %21, align 8, !tbaa !11
  %514 = load double, ptr %22, align 8, !tbaa !11
  %515 = fmul double %513, %514
  %516 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 0
  store double %515, ptr %516, align 16, !tbaa !11
  %517 = load double, ptr %21, align 8, !tbaa !11
  %518 = load double, ptr %22, align 8, !tbaa !11
  %519 = fmul double %517, %518
  %520 = load double, ptr %22, align 8, !tbaa !11
  %521 = load double, ptr %87, align 8, !tbaa !11
  %522 = call double @llvm.fmuladd.f64(double %519, double %520, double %521)
  %523 = load double, ptr %36, align 8, !tbaa !11
  %524 = load double, ptr %36, align 8, !tbaa !11
  %525 = fneg double %523
  %526 = call double @llvm.fmuladd.f64(double %525, double %524, double %522)
  %527 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 1
  store double %526, ptr %527, align 8, !tbaa !11
  %528 = load double, ptr %21, align 8, !tbaa !11
  %529 = load double, ptr %22, align 8, !tbaa !11
  %530 = fmul double %528, %529
  %531 = load double, ptr %23, align 8, !tbaa !11
  %532 = load double, ptr %36, align 8, !tbaa !11
  %533 = load double, ptr %28, align 8, !tbaa !11
  %534 = fmul double %532, %533
  %535 = fneg double %534
  %536 = call double @llvm.fmuladd.f64(double %530, double %531, double %535)
  %537 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 2
  store double %536, ptr %537, align 16, !tbaa !11
  %538 = load double, ptr %21, align 8, !tbaa !11
  %539 = load double, ptr %22, align 8, !tbaa !11
  %540 = fmul double %538, %539
  %541 = load double, ptr %24, align 8, !tbaa !11
  %542 = load double, ptr %36, align 8, !tbaa !11
  %543 = load double, ptr %29, align 8, !tbaa !11
  %544 = fmul double %542, %543
  %545 = fneg double %544
  %546 = call double @llvm.fmuladd.f64(double %540, double %541, double %545)
  %547 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 3
  store double %546, ptr %547, align 8, !tbaa !11
  %548 = load double, ptr %26, align 8, !tbaa !11
  %549 = load double, ptr %87, align 8, !tbaa !11
  %550 = fadd double %548, %549
  %551 = load double, ptr %22, align 8, !tbaa !11
  %552 = load double, ptr %36, align 8, !tbaa !11
  %553 = load double, ptr %85, align 8, !tbaa !11
  %554 = fmul double %552, %553
  %555 = fneg double %554
  %556 = call double @llvm.fmuladd.f64(double %550, double %551, double %555)
  %557 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 4
  store double %556, ptr %557, align 16, !tbaa !11
  %558 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 5
  store double 0.000000e+00, ptr %558, align 8, !tbaa !11
  %559 = load double, ptr %28, align 8, !tbaa !11
  %560 = load double, ptr %22, align 8, !tbaa !11
  %561 = load double, ptr %36, align 8, !tbaa !11
  %562 = load double, ptr %23, align 8, !tbaa !11
  %563 = fmul double %561, %562
  %564 = fneg double %563
  %565 = call double @llvm.fmuladd.f64(double %559, double %560, double %564)
  %566 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 6
  store double %565, ptr %566, align 16, !tbaa !11
  %567 = load double, ptr %29, align 8, !tbaa !11
  %568 = load double, ptr %22, align 8, !tbaa !11
  %569 = load double, ptr %36, align 8, !tbaa !11
  %570 = load double, ptr %24, align 8, !tbaa !11
  %571 = fmul double %569, %570
  %572 = fneg double %571
  %573 = call double @llvm.fmuladd.f64(double %567, double %568, double %572)
  %574 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 7
  store double %573, ptr %574, align 8, !tbaa !11
  %575 = load double, ptr %30, align 8, !tbaa !11
  %576 = load double, ptr %31, align 8, !tbaa !11
  %577 = fmul double %575, %576
  %578 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 0
  store double %577, ptr %578, align 16, !tbaa !11
  %579 = load double, ptr %30, align 8, !tbaa !11
  %580 = load double, ptr %31, align 8, !tbaa !11
  %581 = fmul double %579, %580
  %582 = load double, ptr %31, align 8, !tbaa !11
  %583 = load double, ptr %88, align 8, !tbaa !11
  %584 = call double @llvm.fmuladd.f64(double %581, double %582, double %583)
  %585 = load double, ptr %36, align 8, !tbaa !11
  %586 = load double, ptr %36, align 8, !tbaa !11
  %587 = fneg double %585
  %588 = call double @llvm.fmuladd.f64(double %587, double %586, double %584)
  %589 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 1
  store double %588, ptr %589, align 8, !tbaa !11
  %590 = load double, ptr %30, align 8, !tbaa !11
  %591 = load double, ptr %31, align 8, !tbaa !11
  %592 = fmul double %590, %591
  %593 = load double, ptr %32, align 8, !tbaa !11
  %594 = load double, ptr %36, align 8, !tbaa !11
  %595 = load double, ptr %37, align 8, !tbaa !11
  %596 = fmul double %594, %595
  %597 = fneg double %596
  %598 = call double @llvm.fmuladd.f64(double %592, double %593, double %597)
  %599 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 2
  store double %598, ptr %599, align 16, !tbaa !11
  %600 = load double, ptr %30, align 8, !tbaa !11
  %601 = load double, ptr %31, align 8, !tbaa !11
  %602 = fmul double %600, %601
  %603 = load double, ptr %33, align 8, !tbaa !11
  %604 = load double, ptr %36, align 8, !tbaa !11
  %605 = load double, ptr %38, align 8, !tbaa !11
  %606 = fmul double %604, %605
  %607 = fneg double %606
  %608 = call double @llvm.fmuladd.f64(double %602, double %603, double %607)
  %609 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 3
  store double %608, ptr %609, align 8, !tbaa !11
  %610 = load double, ptr %35, align 8, !tbaa !11
  %611 = load double, ptr %88, align 8, !tbaa !11
  %612 = fadd double %610, %611
  %613 = load double, ptr %31, align 8, !tbaa !11
  %614 = load double, ptr %36, align 8, !tbaa !11
  %615 = load double, ptr %86, align 8, !tbaa !11
  %616 = fmul double %614, %615
  %617 = fneg double %616
  %618 = call double @llvm.fmuladd.f64(double %612, double %613, double %617)
  %619 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 4
  store double %618, ptr %619, align 16, !tbaa !11
  %620 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 5
  store double 0.000000e+00, ptr %620, align 8, !tbaa !11
  %621 = load double, ptr %37, align 8, !tbaa !11
  %622 = load double, ptr %31, align 8, !tbaa !11
  %623 = load double, ptr %36, align 8, !tbaa !11
  %624 = load double, ptr %32, align 8, !tbaa !11
  %625 = fmul double %623, %624
  %626 = fneg double %625
  %627 = call double @llvm.fmuladd.f64(double %621, double %622, double %626)
  %628 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 6
  store double %627, ptr %628, align 16, !tbaa !11
  %629 = load double, ptr %38, align 8, !tbaa !11
  %630 = load double, ptr %31, align 8, !tbaa !11
  %631 = load double, ptr %36, align 8, !tbaa !11
  %632 = load double, ptr %33, align 8, !tbaa !11
  %633 = fmul double %631, %632
  %634 = fneg double %633
  %635 = call double @llvm.fmuladd.f64(double %629, double %630, double %634)
  %636 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 7
  store double %635, ptr %636, align 8, !tbaa !11
  %637 = load double, ptr %65, align 8, !tbaa !11
  %638 = fcmp ogt double %637, 0.000000e+00
  br i1 %638, label %639, label %665

639:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  store i32 0, ptr %89, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %661, %639
  %641 = load i32, ptr %89, align 4, !tbaa !9
  %642 = icmp slt i32 %641, 8
  br i1 %642, label %652, label %643

643:                                              ; preds = %640
  store i32 8, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %664

644:                                              ; preds = %332
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %72, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1419

648:                                              ; preds = %476
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %72, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  br label %1419

652:                                              ; preds = %640
  %653 = load i32, ptr %89, align 4, !tbaa !9
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !11
  %657 = load ptr, ptr %12, align 8, !tbaa !5
  %658 = load i32, ptr %89, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds double, ptr %657, i64 %659
  store double %656, ptr %660, align 8, !tbaa !11
  br label %661

661:                                              ; preds = %652
  %662 = load i32, ptr %89, align 4, !tbaa !9
  %663 = add nsw i32 %662, 1
  store i32 %663, ptr %89, align 4, !tbaa !9
  br label %640, !llvm.loop !16

664:                                              ; preds = %643
  store i32 0, ptr %9, align 4
  store i32 1, ptr %75, align 4
  br label %1418

665:                                              ; preds = %487
  %666 = load double, ptr %67, align 8, !tbaa !11
  %667 = fcmp olt double %666, 0.000000e+00
  br i1 %667, label %668, label %686

668:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  store i32 0, ptr %90, align 4, !tbaa !9
  br label %669

669:                                              ; preds = %682, %668
  %670 = load i32, ptr %90, align 4, !tbaa !9
  %671 = icmp slt i32 %670, 8
  br i1 %671, label %673, label %672

672:                                              ; preds = %669
  store i32 11, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %685

673:                                              ; preds = %669
  %674 = load i32, ptr %90, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 %675
  %677 = load double, ptr %676, align 8, !tbaa !11
  %678 = load ptr, ptr %12, align 8, !tbaa !5
  %679 = load i32, ptr %90, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds double, ptr %678, i64 %680
  store double %677, ptr %681, align 8, !tbaa !11
  br label %682

682:                                              ; preds = %673
  %683 = load i32, ptr %90, align 4, !tbaa !9
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr %90, align 4, !tbaa !9
  br label %669, !llvm.loop !17

685:                                              ; preds = %672
  store i32 0, ptr %9, align 4
  store i32 1, ptr %75, align 4
  br label %1418

686:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %687 = load double, ptr %67, align 8, !tbaa !11
  %688 = load double, ptr %31, align 8, !tbaa !11
  %689 = fsub double %687, %688
  %690 = load double, ptr %30, align 8, !tbaa !11
  %691 = fmul double %689, %690
  store double %691, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  %692 = load double, ptr %65, align 8, !tbaa !11
  %693 = load double, ptr %22, align 8, !tbaa !11
  %694 = fsub double %692, %693
  %695 = load double, ptr %21, align 8, !tbaa !11
  %696 = fmul double %694, %695
  store double %696, ptr %92, align 8, !tbaa !11
  %697 = load double, ptr %91, align 8, !tbaa !11
  %698 = load double, ptr %31, align 8, !tbaa !11
  %699 = load double, ptr %92, align 8, !tbaa !11
  %700 = load double, ptr %22, align 8, !tbaa !11
  %701 = fmul double %699, %700
  %702 = fneg double %701
  %703 = call double @llvm.fmuladd.f64(double %697, double %698, double %702)
  %704 = load double, ptr %88, align 8, !tbaa !11
  %705 = fsub double %703, %704
  %706 = load double, ptr %87, align 8, !tbaa !11
  %707 = fadd double %705, %706
  store double %707, ptr %66, align 8, !tbaa !11
  %708 = load double, ptr %66, align 8, !tbaa !11
  %709 = load double, ptr %91, align 8, !tbaa !11
  %710 = load double, ptr %92, align 8, !tbaa !11
  %711 = fsub double %709, %710
  %712 = fdiv double %708, %711
  store double %712, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #9
  %713 = load double, ptr %66, align 8, !tbaa !11
  store double %713, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  %714 = load double, ptr %66, align 8, !tbaa !11
  store double %714, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %715 = load double, ptr %66, align 8, !tbaa !11
  store double %715, ptr %95, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #9
  %716 = load double, ptr %66, align 8, !tbaa !11
  store double %716, ptr %96, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #9
  %717 = load double, ptr %91, align 8, !tbaa !11
  %718 = load double, ptr %87, align 8, !tbaa !11
  %719 = load double, ptr %92, align 8, !tbaa !11
  %720 = load double, ptr %88, align 8, !tbaa !11
  %721 = fmul double %719, %720
  %722 = fneg double %721
  %723 = call double @llvm.fmuladd.f64(double %717, double %718, double %722)
  %724 = load double, ptr %92, align 8, !tbaa !11
  %725 = load double, ptr %91, align 8, !tbaa !11
  %726 = fmul double %724, %725
  %727 = load double, ptr %31, align 8, !tbaa !11
  %728 = load double, ptr %22, align 8, !tbaa !11
  %729 = fsub double %727, %728
  %730 = call double @llvm.fmuladd.f64(double %726, double %729, double %723)
  store double %730, ptr %97, align 8, !tbaa !11
  %731 = load double, ptr %97, align 8, !tbaa !11
  %732 = load double, ptr %91, align 8, !tbaa !11
  %733 = load double, ptr %92, align 8, !tbaa !11
  %734 = fsub double %732, %733
  %735 = fdiv double %731, %734
  store double %735, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %736 = load double, ptr %92, align 8, !tbaa !11
  %737 = load double, ptr %65, align 8, !tbaa !11
  %738 = load double, ptr %66, align 8, !tbaa !11
  %739 = fsub double %737, %738
  %740 = fdiv double %736, %739
  store double %740, ptr %98, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %741 = load double, ptr %91, align 8, !tbaa !11
  %742 = load double, ptr %67, align 8, !tbaa !11
  %743 = load double, ptr %66, align 8, !tbaa !11
  %744 = fsub double %742, %743
  %745 = fdiv double %741, %744
  store double %745, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %746 = load double, ptr %92, align 8, !tbaa !11
  %747 = load double, ptr %65, align 8, !tbaa !11
  %748 = load double, ptr %66, align 8, !tbaa !11
  %749 = fsub double %747, %748
  %750 = load double, ptr %36, align 8, !tbaa !11
  %751 = load double, ptr %36, align 8, !tbaa !11
  %752 = fmul double %750, %751
  %753 = fneg double %752
  %754 = call double @llvm.fmuladd.f64(double %746, double %749, double %753)
  store double %754, ptr %100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %755 = load double, ptr %91, align 8, !tbaa !11
  %756 = load double, ptr %67, align 8, !tbaa !11
  %757 = load double, ptr %66, align 8, !tbaa !11
  %758 = fsub double %756, %757
  %759 = load double, ptr %36, align 8, !tbaa !11
  %760 = load double, ptr %36, align 8, !tbaa !11
  %761 = fmul double %759, %760
  %762 = fneg double %761
  %763 = call double @llvm.fmuladd.f64(double %755, double %758, double %762)
  store double %763, ptr %101, align 8, !tbaa !11
  %764 = load double, ptr %100, align 8, !tbaa !11
  %765 = call double @llvm.fabs.f64(double %764)
  %766 = fcmp ole double %765, 0x3BC79CA10C924223
  br i1 %766, label %767, label %768

767:                                              ; preds = %686
  store double 0.000000e+00, ptr %100, align 8, !tbaa !11
  br label %771

768:                                              ; preds = %686
  %769 = load double, ptr %100, align 8, !tbaa !11
  %770 = fdiv double 1.000000e+00, %769
  store double %770, ptr %100, align 8, !tbaa !11
  br label %771

771:                                              ; preds = %768, %767
  %772 = load double, ptr %101, align 8, !tbaa !11
  %773 = call double @llvm.fabs.f64(double %772)
  %774 = fcmp ole double %773, 0x3BC79CA10C924223
  br i1 %774, label %775, label %776

775:                                              ; preds = %771
  store double 0.000000e+00, ptr %101, align 8, !tbaa !11
  br label %779

776:                                              ; preds = %771
  %777 = load double, ptr %101, align 8, !tbaa !11
  %778 = fdiv double 1.000000e+00, %777
  store double %778, ptr %101, align 8, !tbaa !11
  br label %779

779:                                              ; preds = %776, %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %780 = load double, ptr %23, align 8, !tbaa !11
  %781 = load double, ptr %36, align 8, !tbaa !11
  %782 = load double, ptr %28, align 8, !tbaa !11
  %783 = fmul double %781, %782
  %784 = load double, ptr %66, align 8, !tbaa !11
  %785 = load double, ptr %22, align 8, !tbaa !11
  %786 = fsub double %784, %785
  %787 = fmul double %783, %786
  %788 = load double, ptr %100, align 8, !tbaa !11
  %789 = fneg double %787
  %790 = call double @llvm.fmuladd.f64(double %789, double %788, double %780)
  store double %790, ptr %102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %791 = load double, ptr %32, align 8, !tbaa !11
  %792 = load double, ptr %36, align 8, !tbaa !11
  %793 = load double, ptr %37, align 8, !tbaa !11
  %794 = fmul double %792, %793
  %795 = load double, ptr %66, align 8, !tbaa !11
  %796 = load double, ptr %31, align 8, !tbaa !11
  %797 = fsub double %795, %796
  %798 = fmul double %794, %797
  %799 = load double, ptr %101, align 8, !tbaa !11
  %800 = fneg double %798
  %801 = call double @llvm.fmuladd.f64(double %800, double %799, double %791)
  store double %801, ptr %103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %802 = load double, ptr %28, align 8, !tbaa !11
  %803 = load double, ptr %21, align 8, !tbaa !11
  %804 = load double, ptr %65, align 8, !tbaa !11
  %805 = load double, ptr %22, align 8, !tbaa !11
  %806 = fsub double %804, %805
  %807 = call double @pow(double noundef %806, double noundef 2.000000e+00) #9
  %808 = load double, ptr %36, align 8, !tbaa !11
  %809 = load double, ptr %36, align 8, !tbaa !11
  %810 = fmul double %808, %809
  %811 = fneg double %810
  %812 = call double @llvm.fmuladd.f64(double %803, double %807, double %811)
  %813 = fmul double %802, %812
  %814 = load double, ptr %100, align 8, !tbaa !11
  %815 = fmul double %813, %814
  store double %815, ptr %104, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  %816 = load double, ptr %37, align 8, !tbaa !11
  %817 = load double, ptr %30, align 8, !tbaa !11
  %818 = load double, ptr %67, align 8, !tbaa !11
  %819 = load double, ptr %31, align 8, !tbaa !11
  %820 = fsub double %818, %819
  %821 = call double @pow(double noundef %820, double noundef 2.000000e+00) #9
  %822 = load double, ptr %36, align 8, !tbaa !11
  %823 = load double, ptr %36, align 8, !tbaa !11
  %824 = fmul double %822, %823
  %825 = fneg double %824
  %826 = call double @llvm.fmuladd.f64(double %817, double %821, double %825)
  %827 = fmul double %816, %826
  %828 = load double, ptr %101, align 8, !tbaa !11
  %829 = fmul double %827, %828
  store double %829, ptr %105, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  %830 = load double, ptr %24, align 8, !tbaa !11
  %831 = load double, ptr %36, align 8, !tbaa !11
  %832 = load double, ptr %29, align 8, !tbaa !11
  %833 = fmul double %831, %832
  %834 = load double, ptr %66, align 8, !tbaa !11
  %835 = load double, ptr %22, align 8, !tbaa !11
  %836 = fsub double %834, %835
  %837 = fmul double %833, %836
  %838 = load double, ptr %100, align 8, !tbaa !11
  %839 = fneg double %837
  %840 = call double @llvm.fmuladd.f64(double %839, double %838, double %830)
  store double %840, ptr %106, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %841 = load double, ptr %33, align 8, !tbaa !11
  %842 = load double, ptr %36, align 8, !tbaa !11
  %843 = load double, ptr %38, align 8, !tbaa !11
  %844 = fmul double %842, %843
  %845 = load double, ptr %66, align 8, !tbaa !11
  %846 = load double, ptr %31, align 8, !tbaa !11
  %847 = fsub double %845, %846
  %848 = fmul double %844, %847
  %849 = load double, ptr %101, align 8, !tbaa !11
  %850 = fneg double %848
  %851 = call double @llvm.fmuladd.f64(double %850, double %849, double %841)
  store double %851, ptr %107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %852 = load double, ptr %29, align 8, !tbaa !11
  %853 = load double, ptr %21, align 8, !tbaa !11
  %854 = load double, ptr %65, align 8, !tbaa !11
  %855 = load double, ptr %22, align 8, !tbaa !11
  %856 = fsub double %854, %855
  %857 = call double @pow(double noundef %856, double noundef 2.000000e+00) #9
  %858 = load double, ptr %36, align 8, !tbaa !11
  %859 = load double, ptr %36, align 8, !tbaa !11
  %860 = fmul double %858, %859
  %861 = fneg double %860
  %862 = call double @llvm.fmuladd.f64(double %853, double %857, double %861)
  %863 = fmul double %852, %862
  %864 = load double, ptr %100, align 8, !tbaa !11
  %865 = fmul double %863, %864
  store double %865, ptr %108, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #9
  %866 = load double, ptr %38, align 8, !tbaa !11
  %867 = load double, ptr %30, align 8, !tbaa !11
  %868 = load double, ptr %67, align 8, !tbaa !11
  %869 = load double, ptr %31, align 8, !tbaa !11
  %870 = fsub double %868, %869
  %871 = call double @pow(double noundef %870, double noundef 2.000000e+00) #9
  %872 = load double, ptr %36, align 8, !tbaa !11
  %873 = load double, ptr %36, align 8, !tbaa !11
  %874 = fmul double %872, %873
  %875 = fneg double %874
  %876 = call double @llvm.fmuladd.f64(double %867, double %871, double %875)
  %877 = fmul double %866, %876
  %878 = load double, ptr %101, align 8, !tbaa !11
  %879 = fmul double %877, %878
  store double %879, ptr %109, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  %880 = load double, ptr %93, align 8, !tbaa !11
  %881 = load double, ptr %36, align 8, !tbaa !11
  %882 = load double, ptr %102, align 8, !tbaa !11
  %883 = load double, ptr %104, align 8, !tbaa !11
  %884 = fmul double %882, %883
  %885 = call double @llvm.fmuladd.f64(double %880, double %881, double %884)
  %886 = load double, ptr %106, align 8, !tbaa !11
  %887 = load double, ptr %108, align 8, !tbaa !11
  %888 = call double @llvm.fmuladd.f64(double %886, double %887, double %885)
  store double %888, ptr %110, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %889 = load double, ptr %94, align 8, !tbaa !11
  %890 = load double, ptr %36, align 8, !tbaa !11
  %891 = load double, ptr %103, align 8, !tbaa !11
  %892 = load double, ptr %105, align 8, !tbaa !11
  %893 = fmul double %891, %892
  %894 = call double @llvm.fmuladd.f64(double %889, double %890, double %893)
  %895 = load double, ptr %107, align 8, !tbaa !11
  %896 = load double, ptr %109, align 8, !tbaa !11
  %897 = call double @llvm.fmuladd.f64(double %895, double %896, double %894)
  store double %897, ptr %111, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  %898 = load double, ptr %65, align 8, !tbaa !11
  %899 = load double, ptr %22, align 8, !tbaa !11
  %900 = fsub double %898, %899
  %901 = load double, ptr %26, align 8, !tbaa !11
  %902 = load double, ptr %87, align 8, !tbaa !11
  %903 = load double, ptr %22, align 8, !tbaa !11
  %904 = fmul double %902, %903
  %905 = fneg double %904
  %906 = call double @llvm.fmuladd.f64(double %900, double %901, double %905)
  %907 = load double, ptr %97, align 8, !tbaa !11
  %908 = load double, ptr %66, align 8, !tbaa !11
  %909 = call double @llvm.fmuladd.f64(double %907, double %908, double %906)
  %910 = load double, ptr %36, align 8, !tbaa !11
  %911 = load double, ptr %85, align 8, !tbaa !11
  %912 = load double, ptr %110, align 8, !tbaa !11
  %913 = fsub double %911, %912
  %914 = call double @llvm.fmuladd.f64(double %910, double %913, double %909)
  %915 = load double, ptr %65, align 8, !tbaa !11
  %916 = load double, ptr %66, align 8, !tbaa !11
  %917 = fsub double %915, %916
  %918 = fdiv double %914, %917
  store double %918, ptr %112, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  %919 = load double, ptr %67, align 8, !tbaa !11
  %920 = load double, ptr %31, align 8, !tbaa !11
  %921 = fsub double %919, %920
  %922 = load double, ptr %35, align 8, !tbaa !11
  %923 = load double, ptr %88, align 8, !tbaa !11
  %924 = load double, ptr %31, align 8, !tbaa !11
  %925 = fmul double %923, %924
  %926 = fneg double %925
  %927 = call double @llvm.fmuladd.f64(double %921, double %922, double %926)
  %928 = load double, ptr %97, align 8, !tbaa !11
  %929 = load double, ptr %66, align 8, !tbaa !11
  %930 = call double @llvm.fmuladd.f64(double %928, double %929, double %927)
  %931 = load double, ptr %36, align 8, !tbaa !11
  %932 = load double, ptr %86, align 8, !tbaa !11
  %933 = load double, ptr %111, align 8, !tbaa !11
  %934 = fsub double %932, %933
  %935 = call double @llvm.fmuladd.f64(double %931, double %934, double %930)
  %936 = load double, ptr %67, align 8, !tbaa !11
  %937 = load double, ptr %66, align 8, !tbaa !11
  %938 = fsub double %936, %937
  %939 = fdiv double %935, %938
  store double %939, ptr %113, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  %940 = load double, ptr %98, align 8, !tbaa !11
  %941 = call double @sqrt(double noundef %940) #9
  store double %941, ptr %114, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #9
  %942 = load double, ptr %99, align 8, !tbaa !11
  %943 = call double @sqrt(double noundef %942) #9
  store double %943, ptr %115, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #9
  %944 = load double, ptr %114, align 8, !tbaa !11
  %945 = load double, ptr %102, align 8, !tbaa !11
  %946 = load double, ptr %115, align 8, !tbaa !11
  %947 = load double, ptr %103, align 8, !tbaa !11
  %948 = fmul double %946, %947
  %949 = call double @llvm.fmuladd.f64(double %944, double %945, double %948)
  %950 = load double, ptr %105, align 8, !tbaa !11
  %951 = load double, ptr %104, align 8, !tbaa !11
  %952 = fsub double %950, %951
  %953 = load double, ptr %36, align 8, !tbaa !11
  %954 = invoke noundef double @_Z3sgnd(double noundef %953)
          to label %955 unwind label %1201

955:                                              ; preds = %779
  %956 = call double @llvm.fmuladd.f64(double %952, double %954, double %949)
  %957 = load double, ptr %114, align 8, !tbaa !11
  %958 = load double, ptr %115, align 8, !tbaa !11
  %959 = fadd double %957, %958
  %960 = fdiv double %956, %959
  store double %960, ptr %116, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #9
  %961 = load double, ptr %114, align 8, !tbaa !11
  %962 = load double, ptr %106, align 8, !tbaa !11
  %963 = load double, ptr %115, align 8, !tbaa !11
  %964 = load double, ptr %107, align 8, !tbaa !11
  %965 = fmul double %963, %964
  %966 = call double @llvm.fmuladd.f64(double %961, double %962, double %965)
  %967 = load double, ptr %109, align 8, !tbaa !11
  %968 = load double, ptr %108, align 8, !tbaa !11
  %969 = fsub double %967, %968
  %970 = load double, ptr %36, align 8, !tbaa !11
  %971 = invoke noundef double @_Z3sgnd(double noundef %970)
          to label %972 unwind label %1205

972:                                              ; preds = %955
  %973 = call double @llvm.fmuladd.f64(double %969, double %971, double %966)
  %974 = load double, ptr %114, align 8, !tbaa !11
  %975 = load double, ptr %115, align 8, !tbaa !11
  %976 = fadd double %974, %975
  %977 = fdiv double %973, %976
  store double %977, ptr %117, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #9
  %978 = load double, ptr %114, align 8, !tbaa !11
  %979 = load double, ptr %104, align 8, !tbaa !11
  %980 = load double, ptr %115, align 8, !tbaa !11
  %981 = load double, ptr %105, align 8, !tbaa !11
  %982 = fmul double %980, %981
  %983 = call double @llvm.fmuladd.f64(double %978, double %979, double %982)
  %984 = load double, ptr %114, align 8, !tbaa !11
  %985 = load double, ptr %115, align 8, !tbaa !11
  %986 = fmul double %984, %985
  %987 = load double, ptr %103, align 8, !tbaa !11
  %988 = load double, ptr %102, align 8, !tbaa !11
  %989 = fsub double %987, %988
  %990 = fmul double %986, %989
  %991 = load double, ptr %36, align 8, !tbaa !11
  %992 = invoke noundef double @_Z3sgnd(double noundef %991)
          to label %993 unwind label %1209

993:                                              ; preds = %972
  %994 = call double @llvm.fmuladd.f64(double %990, double %992, double %983)
  %995 = load double, ptr %114, align 8, !tbaa !11
  %996 = load double, ptr %115, align 8, !tbaa !11
  %997 = fadd double %995, %996
  %998 = fdiv double %994, %997
  store double %998, ptr %118, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #9
  %999 = load double, ptr %114, align 8, !tbaa !11
  %1000 = load double, ptr %108, align 8, !tbaa !11
  %1001 = load double, ptr %115, align 8, !tbaa !11
  %1002 = load double, ptr %109, align 8, !tbaa !11
  %1003 = fmul double %1001, %1002
  %1004 = call double @llvm.fmuladd.f64(double %999, double %1000, double %1003)
  %1005 = load double, ptr %114, align 8, !tbaa !11
  %1006 = load double, ptr %115, align 8, !tbaa !11
  %1007 = fmul double %1005, %1006
  %1008 = load double, ptr %107, align 8, !tbaa !11
  %1009 = load double, ptr %106, align 8, !tbaa !11
  %1010 = fsub double %1008, %1009
  %1011 = fmul double %1007, %1010
  %1012 = load double, ptr %36, align 8, !tbaa !11
  %1013 = invoke noundef double @_Z3sgnd(double noundef %1012)
          to label %1014 unwind label %1213

1014:                                             ; preds = %993
  %1015 = call double @llvm.fmuladd.f64(double %1011, double %1013, double %1004)
  %1016 = load double, ptr %114, align 8, !tbaa !11
  %1017 = load double, ptr %115, align 8, !tbaa !11
  %1018 = fadd double %1016, %1017
  %1019 = fdiv double %1015, %1018
  store double %1019, ptr %119, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #9
  %1020 = load double, ptr %96, align 8, !tbaa !11
  %1021 = load double, ptr %36, align 8, !tbaa !11
  %1022 = load double, ptr %116, align 8, !tbaa !11
  %1023 = load double, ptr %118, align 8, !tbaa !11
  %1024 = fmul double %1022, %1023
  %1025 = call double @llvm.fmuladd.f64(double %1020, double %1021, double %1024)
  %1026 = load double, ptr %117, align 8, !tbaa !11
  %1027 = load double, ptr %119, align 8, !tbaa !11
  %1028 = call double @llvm.fmuladd.f64(double %1026, double %1027, double %1025)
  store double %1028, ptr %120, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #9
  %1029 = load double, ptr %112, align 8, !tbaa !11
  %1030 = load double, ptr %114, align 8, !tbaa !11
  %1031 = load double, ptr %110, align 8, !tbaa !11
  %1032 = load double, ptr %120, align 8, !tbaa !11
  %1033 = fsub double %1031, %1032
  %1034 = fmul double %1030, %1033
  %1035 = load double, ptr %36, align 8, !tbaa !11
  %1036 = invoke noundef double @_Z3sgnd(double noundef %1035)
          to label %1037 unwind label %1217

1037:                                             ; preds = %1014
  %1038 = fneg double %1034
  %1039 = call double @llvm.fmuladd.f64(double %1038, double %1036, double %1029)
  store double %1039, ptr %121, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #9
  %1040 = load double, ptr %113, align 8, !tbaa !11
  %1041 = load double, ptr %115, align 8, !tbaa !11
  %1042 = load double, ptr %111, align 8, !tbaa !11
  %1043 = load double, ptr %120, align 8, !tbaa !11
  %1044 = fsub double %1042, %1043
  %1045 = fmul double %1041, %1044
  %1046 = load double, ptr %36, align 8, !tbaa !11
  %1047 = invoke noundef double @_Z3sgnd(double noundef %1046)
          to label %1048 unwind label %1221

1048:                                             ; preds = %1037
  %1049 = call double @llvm.fmuladd.f64(double %1045, double %1047, double %1040)
  store double %1049, ptr %122, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #9
  %1050 = load double, ptr %66, align 8, !tbaa !11
  %1051 = load double, ptr %36, align 8, !tbaa !11
  %1052 = call double @llvm.fabs.f64(double %1051)
  %1053 = load double, ptr %114, align 8, !tbaa !11
  %1054 = fdiv double %1052, %1053
  %1055 = fsub double %1050, %1054
  store double %1055, ptr %123, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #9
  %1056 = load double, ptr %66, align 8, !tbaa !11
  %1057 = load double, ptr %36, align 8, !tbaa !11
  %1058 = call double @llvm.fabs.f64(double %1057)
  %1059 = load double, ptr %115, align 8, !tbaa !11
  %1060 = fdiv double %1058, %1059
  %1061 = fadd double %1056, %1060
  store double %1061, ptr %124, align 8, !tbaa !11
  %1062 = load double, ptr %21, align 8, !tbaa !11
  %1063 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 0
  store double %1062, ptr %1063, align 16, !tbaa !11
  %1064 = load double, ptr %21, align 8, !tbaa !11
  %1065 = load double, ptr %22, align 8, !tbaa !11
  %1066 = fmul double %1064, %1065
  %1067 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 1
  store double %1066, ptr %1067, align 8, !tbaa !11
  %1068 = load double, ptr %21, align 8, !tbaa !11
  %1069 = load double, ptr %23, align 8, !tbaa !11
  %1070 = fmul double %1068, %1069
  %1071 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 2
  store double %1070, ptr %1071, align 16, !tbaa !11
  %1072 = load double, ptr %21, align 8, !tbaa !11
  %1073 = load double, ptr %24, align 8, !tbaa !11
  %1074 = fmul double %1072, %1073
  %1075 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 3
  store double %1074, ptr %1075, align 8, !tbaa !11
  %1076 = load double, ptr %26, align 8, !tbaa !11
  %1077 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 4
  store double %1076, ptr %1077, align 16, !tbaa !11
  %1078 = load double, ptr %36, align 8, !tbaa !11
  %1079 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 5
  store double %1078, ptr %1079, align 8, !tbaa !11
  %1080 = load double, ptr %28, align 8, !tbaa !11
  %1081 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 6
  store double %1080, ptr %1081, align 16, !tbaa !11
  %1082 = load double, ptr %29, align 8, !tbaa !11
  %1083 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 7
  store double %1082, ptr %1083, align 8, !tbaa !11
  %1084 = load double, ptr %30, align 8, !tbaa !11
  %1085 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 0
  store double %1084, ptr %1085, align 16, !tbaa !11
  %1086 = load double, ptr %30, align 8, !tbaa !11
  %1087 = load double, ptr %31, align 8, !tbaa !11
  %1088 = fmul double %1086, %1087
  %1089 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 1
  store double %1088, ptr %1089, align 8, !tbaa !11
  %1090 = load double, ptr %30, align 8, !tbaa !11
  %1091 = load double, ptr %32, align 8, !tbaa !11
  %1092 = fmul double %1090, %1091
  %1093 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 2
  store double %1092, ptr %1093, align 16, !tbaa !11
  %1094 = load double, ptr %30, align 8, !tbaa !11
  %1095 = load double, ptr %33, align 8, !tbaa !11
  %1096 = fmul double %1094, %1095
  %1097 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 3
  store double %1096, ptr %1097, align 8, !tbaa !11
  %1098 = load double, ptr %35, align 8, !tbaa !11
  %1099 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 4
  store double %1098, ptr %1099, align 16, !tbaa !11
  %1100 = load double, ptr %36, align 8, !tbaa !11
  %1101 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 5
  store double %1100, ptr %1101, align 8, !tbaa !11
  %1102 = load double, ptr %37, align 8, !tbaa !11
  %1103 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 6
  store double %1102, ptr %1103, align 16, !tbaa !11
  %1104 = load double, ptr %38, align 8, !tbaa !11
  %1105 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 7
  store double %1104, ptr %1105, align 8, !tbaa !11
  %1106 = load double, ptr %98, align 8, !tbaa !11
  %1107 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 0
  store double %1106, ptr %1107, align 16, !tbaa !11
  %1108 = load double, ptr %98, align 8, !tbaa !11
  %1109 = load double, ptr %93, align 8, !tbaa !11
  %1110 = fmul double %1108, %1109
  %1111 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 1
  store double %1110, ptr %1111, align 8, !tbaa !11
  %1112 = load double, ptr %98, align 8, !tbaa !11
  %1113 = load double, ptr %102, align 8, !tbaa !11
  %1114 = fmul double %1112, %1113
  %1115 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 2
  store double %1114, ptr %1115, align 16, !tbaa !11
  %1116 = load double, ptr %98, align 8, !tbaa !11
  %1117 = load double, ptr %106, align 8, !tbaa !11
  %1118 = fmul double %1116, %1117
  %1119 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 3
  store double %1118, ptr %1119, align 8, !tbaa !11
  %1120 = load double, ptr %112, align 8, !tbaa !11
  %1121 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 4
  store double %1120, ptr %1121, align 16, !tbaa !11
  %1122 = load double, ptr %36, align 8, !tbaa !11
  %1123 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 5
  store double %1122, ptr %1123, align 8, !tbaa !11
  %1124 = load double, ptr %104, align 8, !tbaa !11
  %1125 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 6
  store double %1124, ptr %1125, align 16, !tbaa !11
  %1126 = load double, ptr %108, align 8, !tbaa !11
  %1127 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 7
  store double %1126, ptr %1127, align 8, !tbaa !11
  %1128 = load double, ptr %99, align 8, !tbaa !11
  %1129 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 0
  store double %1128, ptr %1129, align 16, !tbaa !11
  %1130 = load double, ptr %99, align 8, !tbaa !11
  %1131 = load double, ptr %94, align 8, !tbaa !11
  %1132 = fmul double %1130, %1131
  %1133 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 1
  store double %1132, ptr %1133, align 8, !tbaa !11
  %1134 = load double, ptr %99, align 8, !tbaa !11
  %1135 = load double, ptr %103, align 8, !tbaa !11
  %1136 = fmul double %1134, %1135
  %1137 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 2
  store double %1136, ptr %1137, align 16, !tbaa !11
  %1138 = load double, ptr %99, align 8, !tbaa !11
  %1139 = load double, ptr %107, align 8, !tbaa !11
  %1140 = fmul double %1138, %1139
  %1141 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 3
  store double %1140, ptr %1141, align 8, !tbaa !11
  %1142 = load double, ptr %113, align 8, !tbaa !11
  %1143 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 4
  store double %1142, ptr %1143, align 16, !tbaa !11
  %1144 = load double, ptr %36, align 8, !tbaa !11
  %1145 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 5
  store double %1144, ptr %1145, align 8, !tbaa !11
  %1146 = load double, ptr %105, align 8, !tbaa !11
  %1147 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 6
  store double %1146, ptr %1147, align 16, !tbaa !11
  %1148 = load double, ptr %109, align 8, !tbaa !11
  %1149 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 7
  store double %1148, ptr %1149, align 8, !tbaa !11
  %1150 = load double, ptr %98, align 8, !tbaa !11
  %1151 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 0
  store double %1150, ptr %1151, align 16, !tbaa !11
  %1152 = load double, ptr %98, align 8, !tbaa !11
  %1153 = load double, ptr %96, align 8, !tbaa !11
  %1154 = fmul double %1152, %1153
  %1155 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 1
  store double %1154, ptr %1155, align 8, !tbaa !11
  %1156 = load double, ptr %98, align 8, !tbaa !11
  %1157 = load double, ptr %116, align 8, !tbaa !11
  %1158 = fmul double %1156, %1157
  %1159 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 2
  store double %1158, ptr %1159, align 16, !tbaa !11
  %1160 = load double, ptr %98, align 8, !tbaa !11
  %1161 = load double, ptr %117, align 8, !tbaa !11
  %1162 = fmul double %1160, %1161
  %1163 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 3
  store double %1162, ptr %1163, align 8, !tbaa !11
  %1164 = load double, ptr %121, align 8, !tbaa !11
  %1165 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 4
  store double %1164, ptr %1165, align 16, !tbaa !11
  %1166 = load double, ptr %36, align 8, !tbaa !11
  %1167 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 5
  store double %1166, ptr %1167, align 8, !tbaa !11
  %1168 = load double, ptr %118, align 8, !tbaa !11
  %1169 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 6
  store double %1168, ptr %1169, align 16, !tbaa !11
  %1170 = load double, ptr %119, align 8, !tbaa !11
  %1171 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 7
  store double %1170, ptr %1171, align 8, !tbaa !11
  %1172 = load double, ptr %99, align 8, !tbaa !11
  %1173 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 0
  store double %1172, ptr %1173, align 16, !tbaa !11
  %1174 = load double, ptr %99, align 8, !tbaa !11
  %1175 = load double, ptr %95, align 8, !tbaa !11
  %1176 = fmul double %1174, %1175
  %1177 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 1
  store double %1176, ptr %1177, align 8, !tbaa !11
  %1178 = load double, ptr %99, align 8, !tbaa !11
  %1179 = load double, ptr %116, align 8, !tbaa !11
  %1180 = fmul double %1178, %1179
  %1181 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 2
  store double %1180, ptr %1181, align 16, !tbaa !11
  %1182 = load double, ptr %99, align 8, !tbaa !11
  %1183 = load double, ptr %117, align 8, !tbaa !11
  %1184 = fmul double %1182, %1183
  %1185 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 3
  store double %1184, ptr %1185, align 8, !tbaa !11
  %1186 = load double, ptr %122, align 8, !tbaa !11
  %1187 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 4
  store double %1186, ptr %1187, align 16, !tbaa !11
  %1188 = load double, ptr %36, align 8, !tbaa !11
  %1189 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 5
  store double %1188, ptr %1189, align 8, !tbaa !11
  %1190 = load double, ptr %118, align 8, !tbaa !11
  %1191 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 6
  store double %1190, ptr %1191, align 16, !tbaa !11
  %1192 = load double, ptr %119, align 8, !tbaa !11
  %1193 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 7
  store double %1192, ptr %1193, align 8, !tbaa !11
  %1194 = load double, ptr %123, align 8, !tbaa !11
  %1195 = fcmp oge double %1194, 0.000000e+00
  br i1 %1195, label %1196, label %1259

1196:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #9
  store i32 0, ptr %125, align 4, !tbaa !9
  br label %1197

1197:                                             ; preds = %1255, %1196
  %1198 = load i32, ptr %125, align 4, !tbaa !9
  %1199 = icmp slt i32 %1198, 8
  br i1 %1199, label %1225, label %1200

1200:                                             ; preds = %1197
  store i32 14, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #9
  br label %1258

1201:                                             ; preds = %779
  %1202 = landingpad { ptr, i32 }
          cleanup
  %1203 = extractvalue { ptr, i32 } %1202, 0
  store ptr %1203, ptr %72, align 8
  %1204 = extractvalue { ptr, i32 } %1202, 1
  store i32 %1204, ptr %73, align 4
  br label %1417

1205:                                             ; preds = %955
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %72, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %73, align 4
  br label %1416

1209:                                             ; preds = %972
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %72, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %73, align 4
  br label %1415

1213:                                             ; preds = %993
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %72, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %73, align 4
  br label %1414

1217:                                             ; preds = %1014
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %72, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %73, align 4
  br label %1413

1221:                                             ; preds = %1037
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %72, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %73, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  br label %1413

1225:                                             ; preds = %1197
  %1226 = load i32, ptr %125, align 4, !tbaa !9
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 %1227
  %1229 = load double, ptr %1228, align 8, !tbaa !11
  %1230 = load double, ptr %65, align 8, !tbaa !11
  %1231 = load i32, ptr %125, align 4, !tbaa !9
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 %1232
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  %1235 = call double @llvm.fmuladd.f64(double %1230, double %1234, double %1229)
  %1236 = load double, ptr %65, align 8, !tbaa !11
  %1237 = load i32, ptr %125, align 4, !tbaa !9
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 %1238
  %1240 = load double, ptr %1239, align 8, !tbaa !11
  %1241 = fneg double %1236
  %1242 = call double @llvm.fmuladd.f64(double %1241, double %1240, double %1235)
  %1243 = load ptr, ptr %12, align 8, !tbaa !5
  %1244 = load i32, ptr %125, align 4, !tbaa !9
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds double, ptr %1243, i64 %1245
  store double %1242, ptr %1246, align 8, !tbaa !11
  %1247 = load i32, ptr %125, align 4, !tbaa !9
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 %1248
  %1250 = load double, ptr %1249, align 8, !tbaa !11
  %1251 = load ptr, ptr %13, align 8, !tbaa !5
  %1252 = load i32, ptr %125, align 4, !tbaa !9
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds double, ptr %1251, i64 %1253
  store double %1250, ptr %1254, align 8, !tbaa !11
  br label %1255

1255:                                             ; preds = %1225
  %1256 = load i32, ptr %125, align 4, !tbaa !9
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr %125, align 4, !tbaa !9
  br label %1197, !llvm.loop !18

1258:                                             ; preds = %1200
  br label %1412

1259:                                             ; preds = %1048
  %1260 = load double, ptr %124, align 8, !tbaa !11
  %1261 = fcmp ole double %1260, 0.000000e+00
  br i1 %1261, label %1262, label %1301

1262:                                             ; preds = %1259
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  store i32 0, ptr %126, align 4, !tbaa !9
  br label %1263

1263:                                             ; preds = %1297, %1262
  %1264 = load i32, ptr %126, align 4, !tbaa !9
  %1265 = icmp slt i32 %1264, 8
  br i1 %1265, label %1267, label %1266

1266:                                             ; preds = %1263
  store i32 17, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %1300

1267:                                             ; preds = %1263
  %1268 = load i32, ptr %126, align 4, !tbaa !9
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 %1269
  %1271 = load double, ptr %1270, align 8, !tbaa !11
  %1272 = load double, ptr %67, align 8, !tbaa !11
  %1273 = load i32, ptr %126, align 4, !tbaa !9
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 %1274
  %1276 = load double, ptr %1275, align 8, !tbaa !11
  %1277 = call double @llvm.fmuladd.f64(double %1272, double %1276, double %1271)
  %1278 = load double, ptr %67, align 8, !tbaa !11
  %1279 = load i32, ptr %126, align 4, !tbaa !9
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !11
  %1283 = fneg double %1278
  %1284 = call double @llvm.fmuladd.f64(double %1283, double %1282, double %1277)
  %1285 = load ptr, ptr %12, align 8, !tbaa !5
  %1286 = load i32, ptr %126, align 4, !tbaa !9
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds double, ptr %1285, i64 %1287
  store double %1284, ptr %1288, align 8, !tbaa !11
  %1289 = load i32, ptr %126, align 4, !tbaa !9
  %1290 = sext i32 %1289 to i64
  %1291 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 %1290
  %1292 = load double, ptr %1291, align 8, !tbaa !11
  %1293 = load ptr, ptr %13, align 8, !tbaa !5
  %1294 = load i32, ptr %126, align 4, !tbaa !9
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds double, ptr %1293, i64 %1295
  store double %1292, ptr %1296, align 8, !tbaa !11
  br label %1297

1297:                                             ; preds = %1267
  %1298 = load i32, ptr %126, align 4, !tbaa !9
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr %126, align 4, !tbaa !9
  br label %1263, !llvm.loop !19

1300:                                             ; preds = %1266
  br label %1411

1301:                                             ; preds = %1259
  %1302 = load double, ptr %123, align 8, !tbaa !11
  %1303 = fcmp ole double %1302, 0.000000e+00
  br i1 %1303, label %1304, label %1355

1304:                                             ; preds = %1301
  %1305 = load double, ptr %66, align 8, !tbaa !11
  %1306 = fcmp oge double %1305, 0.000000e+00
  br i1 %1306, label %1307, label %1355

1307:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  store i32 0, ptr %127, align 4, !tbaa !9
  br label %1308

1308:                                             ; preds = %1351, %1307
  %1309 = load i32, ptr %127, align 4, !tbaa !9
  %1310 = icmp slt i32 %1309, 8
  br i1 %1310, label %1312, label %1311

1311:                                             ; preds = %1308
  store i32 20, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %1354

1312:                                             ; preds = %1308
  %1313 = load i32, ptr %127, align 4, !tbaa !9
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds [8 x double], ptr %47, i64 0, i64 %1314
  %1316 = load double, ptr %1315, align 8, !tbaa !11
  %1317 = load double, ptr %123, align 8, !tbaa !11
  %1318 = load i32, ptr %127, align 4, !tbaa !9
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 %1319
  %1321 = load double, ptr %1320, align 8, !tbaa !11
  %1322 = call double @llvm.fmuladd.f64(double %1317, double %1321, double %1316)
  %1323 = load double, ptr %123, align 8, !tbaa !11
  %1324 = load double, ptr %65, align 8, !tbaa !11
  %1325 = fsub double %1323, %1324
  %1326 = load i32, ptr %127, align 4, !tbaa !9
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds [8 x double], ptr %50, i64 0, i64 %1327
  %1329 = load double, ptr %1328, align 8, !tbaa !11
  %1330 = fneg double %1325
  %1331 = call double @llvm.fmuladd.f64(double %1330, double %1329, double %1322)
  %1332 = load double, ptr %65, align 8, !tbaa !11
  %1333 = load i32, ptr %127, align 4, !tbaa !9
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds [8 x double], ptr %49, i64 0, i64 %1334
  %1336 = load double, ptr %1335, align 8, !tbaa !11
  %1337 = fneg double %1332
  %1338 = call double @llvm.fmuladd.f64(double %1337, double %1336, double %1331)
  %1339 = load ptr, ptr %12, align 8, !tbaa !5
  %1340 = load i32, ptr %127, align 4, !tbaa !9
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds double, ptr %1339, i64 %1341
  store double %1338, ptr %1342, align 8, !tbaa !11
  %1343 = load i32, ptr %127, align 4, !tbaa !9
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds [8 x double], ptr %51, i64 0, i64 %1344
  %1346 = load double, ptr %1345, align 8, !tbaa !11
  %1347 = load ptr, ptr %13, align 8, !tbaa !5
  %1348 = load i32, ptr %127, align 4, !tbaa !9
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds double, ptr %1347, i64 %1349
  store double %1346, ptr %1350, align 8, !tbaa !11
  br label %1351

1351:                                             ; preds = %1312
  %1352 = load i32, ptr %127, align 4, !tbaa !9
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr %127, align 4, !tbaa !9
  br label %1308, !llvm.loop !20

1354:                                             ; preds = %1311
  br label %1410

1355:                                             ; preds = %1304, %1301
  %1356 = load double, ptr %66, align 8, !tbaa !11
  %1357 = fcmp ole double %1356, 0.000000e+00
  br i1 %1357, label %1358, label %1409

1358:                                             ; preds = %1355
  %1359 = load double, ptr %124, align 8, !tbaa !11
  %1360 = fcmp oge double %1359, 0.000000e+00
  br i1 %1360, label %1361, label %1409

1361:                                             ; preds = %1358
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  store i32 0, ptr %128, align 4, !tbaa !9
  br label %1362

1362:                                             ; preds = %1405, %1361
  %1363 = load i32, ptr %128, align 4, !tbaa !9
  %1364 = icmp slt i32 %1363, 8
  br i1 %1364, label %1366, label %1365

1365:                                             ; preds = %1362
  store i32 23, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %1408

1366:                                             ; preds = %1362
  %1367 = load i32, ptr %128, align 4, !tbaa !9
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds [8 x double], ptr %48, i64 0, i64 %1368
  %1370 = load double, ptr %1369, align 8, !tbaa !11
  %1371 = load double, ptr %124, align 8, !tbaa !11
  %1372 = load i32, ptr %128, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 %1373
  %1375 = load double, ptr %1374, align 8, !tbaa !11
  %1376 = call double @llvm.fmuladd.f64(double %1371, double %1375, double %1370)
  %1377 = load double, ptr %124, align 8, !tbaa !11
  %1378 = load double, ptr %67, align 8, !tbaa !11
  %1379 = fsub double %1377, %1378
  %1380 = load i32, ptr %128, align 4, !tbaa !9
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds [8 x double], ptr %53, i64 0, i64 %1381
  %1383 = load double, ptr %1382, align 8, !tbaa !11
  %1384 = fneg double %1379
  %1385 = call double @llvm.fmuladd.f64(double %1384, double %1383, double %1376)
  %1386 = load double, ptr %67, align 8, !tbaa !11
  %1387 = load i32, ptr %128, align 4, !tbaa !9
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds [8 x double], ptr %52, i64 0, i64 %1388
  %1390 = load double, ptr %1389, align 8, !tbaa !11
  %1391 = fneg double %1386
  %1392 = call double @llvm.fmuladd.f64(double %1391, double %1390, double %1385)
  %1393 = load ptr, ptr %12, align 8, !tbaa !5
  %1394 = load i32, ptr %128, align 4, !tbaa !9
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds double, ptr %1393, i64 %1395
  store double %1392, ptr %1396, align 8, !tbaa !11
  %1397 = load i32, ptr %128, align 4, !tbaa !9
  %1398 = sext i32 %1397 to i64
  %1399 = getelementptr inbounds [8 x double], ptr %54, i64 0, i64 %1398
  %1400 = load double, ptr %1399, align 8, !tbaa !11
  %1401 = load ptr, ptr %13, align 8, !tbaa !5
  %1402 = load i32, ptr %128, align 4, !tbaa !9
  %1403 = sext i32 %1402 to i64
  %1404 = getelementptr inbounds double, ptr %1401, i64 %1403
  store double %1400, ptr %1404, align 8, !tbaa !11
  br label %1405

1405:                                             ; preds = %1366
  %1406 = load i32, ptr %128, align 4, !tbaa !9
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr %128, align 4, !tbaa !9
  br label %1362, !llvm.loop !21

1408:                                             ; preds = %1365
  br label %1409

1409:                                             ; preds = %1408, %1358, %1355
  br label %1410

1410:                                             ; preds = %1409, %1354
  br label %1411

1411:                                             ; preds = %1410, %1300
  br label %1412

1412:                                             ; preds = %1411, %1258
  store i32 0, ptr %9, align 4
  store i32 1, ptr %75, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  br label %1418

1413:                                             ; preds = %1221, %1217
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  br label %1414

1414:                                             ; preds = %1413, %1213
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  br label %1415

1415:                                             ; preds = %1414, %1209
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #9
  br label %1416

1416:                                             ; preds = %1415, %1205
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #9
  br label %1417

1417:                                             ; preds = %1416, %1201
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br label %1419

1418:                                             ; preds = %1412, %685, %664
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %1420

1419:                                             ; preds = %1417, %648, %644
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %1422

1420:                                             ; preds = %1418, %331, %269
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %19) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %18) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %18) #9
  %1421 = load i32, ptr %9, align 4
  ret i32 %1421

1422:                                             ; preds = %1419, %325, %263, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %19) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %18) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %18) #9
  br label %1423

1423:                                             ; preds = %1422
  %1424 = load ptr, ptr %72, align 8
  %1425 = load i32, ptr %73, align 4
  %1426 = insertvalue { ptr, i32 } poison, ptr %1424, 0
  %1427 = insertvalue { ptr, i32 } %1426, i32 %1425, 1
  resume { ptr, i32 } %1427
}

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #0 align 2

; 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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: 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 double @llvm.fabs.f64(double) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

declare noundef double @_Z3sgnd(double noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #8 align 2

attributes #0 = { mustprogress 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { inlinehint mustprogress 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 #5 = { 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 #6 = { inlinehint mustprogress 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 #7 = { "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 #8 = { mustprogress 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 #9 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !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}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_Z4hlldPdS_S_S_iS_iPi(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef writeonly %2, ptr nocapture noundef writeonly %3, i32 noundef %4, ptr nocapture noundef readnone %5, i32 noundef %6, ptr nocapture noundef readnone %7) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"class.std::basic_ofstream", align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %9) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248) %9)
  %14 = load double, ptr %0, align 8, !tbaa !5
  %15 = getelementptr inbounds i8, ptr %0, i64 8
  %16 = load double, ptr %15, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %0, i64 16
  %18 = getelementptr inbounds i8, ptr %0, i64 24
  %19 = getelementptr inbounds i8, ptr %0, i64 32
  %20 = load double, ptr %19, align 8, !tbaa !5
  %21 = getelementptr inbounds i8, ptr %0, i64 40
  %22 = load double, ptr %21, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %0, i64 48
  %24 = getelementptr inbounds i8, ptr %0, i64 56
  %25 = load double, ptr %1, align 8, !tbaa !5
  %26 = getelementptr inbounds i8, ptr %1, i64 8
  %27 = load double, ptr %26, align 8, !tbaa !5
  %28 = getelementptr inbounds i8, ptr %1, i64 16
  %29 = getelementptr inbounds i8, ptr %1, i64 24
  %30 = getelementptr inbounds i8, ptr %1, i64 32
  %31 = load double, ptr %30, align 8, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %1, i64 40
  %33 = load double, ptr %32, align 8, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %1, i64 48
  %35 = getelementptr inbounds i8, ptr %1, i64 56
  %36 = load <2 x double>, ptr %17, align 8, !tbaa !5
  %37 = load <2 x double>, ptr %23, align 8, !tbaa !5
  %38 = load <2 x double>, ptr %28, align 8, !tbaa !5
  %39 = load <2 x double>, ptr %34, align 8, !tbaa !5
  %40 = extractelement <2 x double> %37, i64 0
  %41 = fmul <2 x double> %37, %37
  %42 = extractelement <2 x double> %41, i64 0
  %43 = call double @llvm.fmuladd.f64(double %33, double %33, double %42)
  %44 = extractelement <2 x double> %37, i64 1
  %45 = call double @llvm.fmuladd.f64(double %44, double %44, double %43)
  %46 = extractelement <2 x double> %39, i64 0
  %47 = fmul <2 x double> %39, %39
  %48 = extractelement <2 x double> %47, i64 0
  %49 = call double @llvm.fmuladd.f64(double %33, double %33, double %48)
  %50 = extractelement <2 x double> %39, i64 1
  %51 = call double @llvm.fmuladd.f64(double %50, double %50, double %49)
  %52 = extractelement <2 x double> %36, i64 0
  %53 = fmul <2 x double> %36, %36
  %54 = extractelement <2 x double> %53, i64 0
  %55 = call double @llvm.fmuladd.f64(double %16, double %16, double %54)
  %56 = extractelement <2 x double> %36, i64 1
  %57 = call double @llvm.fmuladd.f64(double %56, double %56, double %55)
  %58 = call double @llvm.fmuladd.f64(double %22, double %22, double %42)
  %59 = call double @llvm.fmuladd.f64(double %44, double %44, double %58)
  %60 = fmul double %14, 5.000000e-01
  %61 = fmul double %60, %57
  %62 = call double @llvm.fmuladd.f64(double %20, double 0x3FF7FFFFFFFFFFFF, double %61)
  %63 = call double @llvm.fmuladd.f64(double %59, double 5.000000e-01, double %62)
  %64 = fcmp olt double %20, 0.000000e+00
  br i1 %64, label %65, label %107

65:                                               ; preds = %8
  %66 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %67 unwind label %72

67:                                               ; preds = %65
  %68 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %66, double noundef %20)
          to label %69 unwind label %72

69:                                               ; preds = %67
  %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader.preheader unwind label %72

.preheader.preheader:                             ; preds = %69
  %71 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %74 unwind label %105

72:                                               ; preds = %.invoke, %123, %121, %119, %69, %67, %65
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %574

74:                                               ; preds = %.preheader.preheader
  %75 = load double, ptr %0, align 8, !tbaa !5
  %76 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %71, double noundef %75)
          to label %.preheader.1 unwind label %105

.preheader.1:                                     ; preds = %74
  %77 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %78 unwind label %105

78:                                               ; preds = %.preheader.1
  %79 = load double, ptr %15, align 8, !tbaa !5
  %80 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %77, double noundef %79)
          to label %.preheader.2 unwind label %105

.preheader.2:                                     ; preds = %78
  %81 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %82 unwind label %105

82:                                               ; preds = %.preheader.2
  %83 = load double, ptr %17, align 8, !tbaa !5
  %84 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %81, double noundef %83)
          to label %.preheader.3 unwind label %105

.preheader.3:                                     ; preds = %82
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %86 unwind label %105

86:                                               ; preds = %.preheader.3
  %87 = load double, ptr %18, align 8, !tbaa !5
  %88 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %85, double noundef %87)
          to label %.preheader.4 unwind label %105

.preheader.4:                                     ; preds = %86
  %89 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %90 unwind label %105

90:                                               ; preds = %.preheader.4
  %91 = load double, ptr %19, align 8, !tbaa !5
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %89, double noundef %91)
          to label %.preheader.5 unwind label %105

.preheader.5:                                     ; preds = %90
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %94 unwind label %105

94:                                               ; preds = %.preheader.5
  %95 = load double, ptr %21, align 8, !tbaa !5
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %93, double noundef %95)
          to label %.preheader.6 unwind label %105

.preheader.6:                                     ; preds = %94
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %98 unwind label %105

98:                                               ; preds = %.preheader.6
  %99 = load double, ptr %23, align 8, !tbaa !5
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %97, double noundef %99)
          to label %.preheader.7 unwind label %105

.preheader.7:                                     ; preds = %98
  %101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %102 unwind label %105

102:                                              ; preds = %.preheader.7
  %103 = load double, ptr %24, align 8, !tbaa !5
  %104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %101, double noundef %103)
          to label %.invoke unwind label %105

105:                                              ; preds = %102, %.preheader.7, %98, %.preheader.6, %94, %.preheader.5, %90, %.preheader.4, %86, %.preheader.3, %82, %.preheader.2, %78, %.preheader.1, %74, %.preheader.preheader
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %574

107:                                              ; preds = %8
  %108 = extractelement <2 x double> %38, i64 0
  %109 = fmul <2 x double> %38, %38
  %110 = extractelement <2 x double> %109, i64 0
  %111 = call double @llvm.fmuladd.f64(double %27, double %27, double %110)
  %112 = extractelement <2 x double> %38, i64 1
  %113 = call double @llvm.fmuladd.f64(double %112, double %112, double %111)
  %114 = fmul double %25, 5.000000e-01
  %115 = fmul double %114, %113
  %116 = call double @llvm.fmuladd.f64(double %31, double 0x3FF7FFFFFFFFFFFF, double %115)
  %117 = call double @llvm.fmuladd.f64(double %51, double 5.000000e-01, double %116)
  %118 = fcmp olt double %31, 0.000000e+00
  br i1 %118, label %119, label %160

119:                                              ; preds = %107
  %120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %121 unwind label %72

121:                                              ; preds = %119
  %122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %120, double noundef %31)
          to label %123 unwind label %72

123:                                              ; preds = %121
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader623.preheader unwind label %72

.preheader623.preheader:                          ; preds = %123
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %126 unwind label %158

126:                                              ; preds = %.preheader623.preheader
  %127 = load double, ptr %1, align 8, !tbaa !5
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %125, double noundef %127)
          to label %.preheader623.1 unwind label %158

.preheader623.1:                                  ; preds = %126
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %130 unwind label %158

130:                                              ; preds = %.preheader623.1
  %131 = load double, ptr %26, align 8, !tbaa !5
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %129, double noundef %131)
          to label %.preheader623.2 unwind label %158

.preheader623.2:                                  ; preds = %130
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %134 unwind label %158

134:                                              ; preds = %.preheader623.2
  %135 = load double, ptr %28, align 8, !tbaa !5
  %136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %133, double noundef %135)
          to label %.preheader623.3 unwind label %158

.preheader623.3:                                  ; preds = %134
  %137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %138 unwind label %158

138:                                              ; preds = %.preheader623.3
  %139 = load double, ptr %29, align 8, !tbaa !5
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %137, double noundef %139)
          to label %.preheader623.4 unwind label %158

.preheader623.4:                                  ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %142 unwind label %158

142:                                              ; preds = %.preheader623.4
  %143 = load double, ptr %30, align 8, !tbaa !5
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %141, double noundef %143)
          to label %.preheader623.5 unwind label %158

.preheader623.5:                                  ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %146 unwind label %158

146:                                              ; preds = %.preheader623.5
  %147 = load double, ptr %32, align 8, !tbaa !5
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %145, double noundef %147)
          to label %.preheader623.6 unwind label %158

.preheader623.6:                                  ; preds = %146
  %149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %150 unwind label %158

150:                                              ; preds = %.preheader623.6
  %151 = load double, ptr %34, align 8, !tbaa !5
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %149, double noundef %151)
          to label %.preheader623.7 unwind label %158

.preheader623.7:                                  ; preds = %150
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %154 unwind label %158

154:                                              ; preds = %.preheader623.7
  %155 = load double, ptr %35, align 8, !tbaa !5
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %153, double noundef %155)
          to label %.invoke unwind label %158

.invoke:                                          ; preds = %154, %102
  %157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.loopexit unwind label %72

158:                                              ; preds = %154, %.preheader623.7, %150, %.preheader623.6, %146, %.preheader623.5, %142, %.preheader623.4, %138, %.preheader623.3, %134, %.preheader623.2, %130, %.preheader623.1, %126, %.preheader623.preheader
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %574

160:                                              ; preds = %107
  %161 = fdiv double 1.000000e+00, %14
  %162 = fmul double %161, %45
  %163 = fmul double %33, %33
  %164 = fmul double %161, %163
  %165 = call double @llvm.fabs.f64(double %164)
  %166 = fmul double %20, 0x3FFAAAAAAAAAAAAB
  %167 = fmul double %161, %166
  %168 = fcmp olt double %167, 0.000000e+00
  br i1 %168, label %cdce.call, label %cdce.end, !prof !9

cdce.call:                                        ; preds = %160
  %169 = call double @sqrt(double noundef %167) #9
  br label %cdce.end

cdce.end:                                         ; preds = %160, %cdce.call
  %170 = fadd double %167, %162
  %171 = fmul double %167, -4.000000e+00
  %172 = fmul double %171, %165
  %173 = call double @llvm.fmuladd.f64(double %170, double %170, double %172)
  %174 = call double @sqrt(double noundef %173) #9
  %175 = fadd double %170, %174
  %176 = fmul double %175, 5.000000e-01
  %177 = call double @sqrt(double noundef %176) #9
  %178 = fdiv double 1.000000e+00, %25
  %179 = fmul double %178, %51
  %180 = fmul double %178, %163
  %181 = call double @llvm.fabs.f64(double %180)
  %182 = fmul double %31, 0x3FFAAAAAAAAAAAAB
  %183 = fmul double %178, %182
  %184 = fcmp olt double %183, 0.000000e+00
  br i1 %184, label %cdce.call621, label %cdce.end622, !prof !9

cdce.call621:                                     ; preds = %cdce.end
  %185 = call double @sqrt(double noundef %183) #9
  br label %cdce.end622

cdce.end622:                                      ; preds = %cdce.end, %cdce.call621
  %186 = fadd double %183, %179
  %187 = fmul double %183, -4.000000e+00
  %188 = fmul double %187, %181
  %189 = call double @llvm.fmuladd.f64(double %186, double %186, double %188)
  %190 = call double @sqrt(double noundef %189) #9
  %191 = fadd double %186, %190
  %192 = fmul double %191, 5.000000e-01
  %193 = call double @sqrt(double noundef %192) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %194 = fsub double %16, %177
  store double %194, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  %195 = fsub double %27, %193
  store double %195, ptr %11, align 8, !tbaa !5
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %197 = load double, ptr %196, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %198 = fadd double %16, %177
  store double %198, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %199 = fadd double %27, %193
  store double %199, ptr %13, align 8, !tbaa !5
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13)
  %201 = load double, ptr %200, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  %202 = fmul <2 x double> %36, %37
  %203 = extractelement <2 x double> %202, i64 0
  %204 = call double @llvm.fmuladd.f64(double %16, double %33, double %203)
  %205 = call double @llvm.fmuladd.f64(double %56, double %44, double %204)
  %206 = fmul <2 x double> %38, %39
  %207 = extractelement <2 x double> %206, i64 0
  %208 = call double @llvm.fmuladd.f64(double %27, double %33, double %207)
  %209 = call double @llvm.fmuladd.f64(double %112, double %50, double %208)
  %210 = call double @llvm.fmuladd.f64(double %45, double 5.000000e-01, double %20)
  %211 = call double @llvm.fmuladd.f64(double %51, double 5.000000e-01, double %31)
  %212 = fmul double %14, %16
  %213 = call double @llvm.fmuladd.f64(double %212, double %16, double %210)
  %214 = fneg double %33
  %215 = call double @llvm.fmuladd.f64(double %214, double %33, double %213)
  %216 = insertelement <2 x double> poison, double %214, i64 0
  %217 = shufflevector <2 x double> %216, <2 x double> poison, <2 x i32> zeroinitializer
  %218 = fmul <2 x double> %37, %217
  %219 = insertelement <2 x double> poison, double %212, i64 0
  %220 = shufflevector <2 x double> %219, <2 x double> poison, <2 x i32> zeroinitializer
  %221 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %220, <2 x double> %36, <2 x double> %218)
  %222 = fadd double %63, %210
  %223 = fmul double %205, %214
  %224 = call double @llvm.fmuladd.f64(double %222, double %16, double %223)
  %225 = fmul double %25, %27
  %226 = call double @llvm.fmuladd.f64(double %225, double %27, double %211)
  %227 = call double @llvm.fmuladd.f64(double %214, double %33, double %226)
  %228 = fmul <2 x double> %39, %217
  %229 = insertelement <2 x double> poison, double %225, i64 0
  %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> zeroinitializer
  %231 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %230, <2 x double> %38, <2 x double> %228)
  %232 = fadd double %117, %211
  %233 = fmul double %209, %214
  %234 = call double @llvm.fmuladd.f64(double %232, double %27, double %233)
  %235 = fmul <2 x double> %36, %217
  %236 = insertelement <2 x double> poison, double %16, i64 0
  %237 = shufflevector <2 x double> %236, <2 x double> poison, <2 x i32> zeroinitializer
  %238 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %37, <2 x double> %237, <2 x double> %235)
  %239 = fmul <2 x double> %38, %217
  %240 = insertelement <2 x double> poison, double %27, i64 0
  %241 = shufflevector <2 x double> %240, <2 x double> poison, <2 x i32> zeroinitializer
  %242 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %39, <2 x double> %241, <2 x double> %239)
  %243 = fcmp ogt double %197, 0.000000e+00
  br i1 %243, label %.preheader624.preheader, label %244

.preheader624.preheader:                          ; preds = %cdce.end622
  store double %212, ptr %2, align 8, !tbaa !5
  %.sroa.7736.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8
  store double %215, ptr %.sroa.7736.0..sroa_idx, align 8, !tbaa !5
  %.sroa.10738.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 16
  store <2 x double> %221, ptr %.sroa.10738.0..sroa_idx, align 8, !tbaa !5
  %.sroa.16742.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 32
  store double %224, ptr %.sroa.16742.0..sroa_idx, align 8, !tbaa !5
  %.sroa.19744.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 40
  store double 0.000000e+00, ptr %.sroa.19744.0..sroa_idx, align 8, !tbaa !5
  br label %.loopexit.sink.split

244:                                              ; preds = %cdce.end622
  %245 = fcmp olt double %201, 0.000000e+00
  br i1 %245, label %.preheader625.preheader, label %246

.preheader625.preheader:                          ; preds = %244
  store double %225, ptr %2, align 8, !tbaa !5
  %.sroa.7725.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8
  store double %227, ptr %.sroa.7725.0..sroa_idx, align 8, !tbaa !5
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 16
  store <2 x double> %231, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !5
  %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 32
  store double %234, ptr %.sroa.16.0..sroa_idx, align 8, !tbaa !5
  %.sroa.19.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 40
  store double 0.000000e+00, ptr %.sroa.19.0..sroa_idx, align 8, !tbaa !5
  br label %.loopexit.sink.split

246:                                              ; preds = %244
  %247 = fsub double %201, %27
  %248 = fmul double %25, %247
  %249 = fsub double %197, %16
  %250 = fmul double %14, %249
  %251 = fneg double %250
  %252 = fmul double %16, %251
  %253 = call double @llvm.fmuladd.f64(double %248, double %27, double %252)
  %254 = fsub double %253, %211
  %255 = fadd double %210, %254
  %256 = fsub double %248, %250
  %257 = fdiv double %255, %256
  %258 = fmul double %211, %251
  %259 = call double @llvm.fmuladd.f64(double %248, double %210, double %258)
  %260 = fmul double %250, %248
  %261 = fsub double %27, %16
  %262 = call double @llvm.fmuladd.f64(double %260, double %261, double %259)
  %263 = fdiv double %262, %256
  %264 = fsub double %197, %257
  %265 = fdiv double %250, %264
  %266 = fsub double %201, %257
  %267 = fdiv double %248, %266
  %268 = fneg double %163
  %269 = call double @llvm.fmuladd.f64(double %250, double %264, double %268)
  %270 = call double @llvm.fmuladd.f64(double %248, double %266, double %268)
  %271 = call double @llvm.fabs.f64(double %269)
  %272 = fcmp ugt double %271, 0x3BC79CA10C924223
  %273 = fdiv double 1.000000e+00, %269
  %.0600 = select i1 %272, double %273, double 0.000000e+00
  %274 = call double @llvm.fabs.f64(double %270)
  %275 = fcmp ugt double %274, 0x3BC79CA10C924223
  %276 = fdiv double 1.000000e+00, %270
  %.0599 = select i1 %275, double %276, double 0.000000e+00
  %277 = fsub double %257, %16
  %278 = extractelement <2 x double> %218, i64 0
  %279 = fmul double %278, %277
  %280 = call double @llvm.fmuladd.f64(double %279, double %.0600, double %52)
  %281 = fsub double %257, %27
  %282 = extractelement <2 x double> %228, i64 0
  %283 = fmul double %282, %281
  %284 = call double @llvm.fmuladd.f64(double %283, double %.0599, double %108)
  %square = fmul double %249, %249
  %285 = call double @llvm.fmuladd.f64(double %14, double %square, double %268)
  %286 = fmul double %40, %285
  %287 = fmul double %286, %.0600
  %square610 = fmul double %247, %247
  %288 = call double @llvm.fmuladd.f64(double %25, double %square610, double %268)
  %289 = fmul double %46, %288
  %290 = fmul double %289, %.0599
  %291 = extractelement <2 x double> %218, i64 1
  %292 = fmul double %291, %277
  %293 = call double @llvm.fmuladd.f64(double %292, double %.0600, double %56)
  %294 = extractelement <2 x double> %228, i64 1
  %295 = fmul double %294, %281
  %296 = call double @llvm.fmuladd.f64(double %295, double %.0599, double %112)
  %297 = fmul double %44, %285
  %298 = fmul double %297, %.0600
  %299 = fmul double %50, %288
  %300 = fmul double %299, %.0599
  %301 = fmul double %280, %287
  %302 = call double @llvm.fmuladd.f64(double %257, double %33, double %301)
  %303 = call double @llvm.fmuladd.f64(double %293, double %298, double %302)
  %304 = fmul double %284, %290
  %305 = call double @llvm.fmuladd.f64(double %257, double %33, double %304)
  %306 = call double @llvm.fmuladd.f64(double %296, double %300, double %305)
  %307 = fneg double %210
  %308 = fmul double %16, %307
  %309 = call double @llvm.fmuladd.f64(double %249, double %63, double %308)
  %310 = call double @llvm.fmuladd.f64(double %263, double %257, double %309)
  %311 = fsub double %205, %303
  %312 = call double @llvm.fmuladd.f64(double %33, double %311, double %310)
  %313 = fdiv double %312, %264
  %314 = fneg double %211
  %315 = fmul double %27, %314
  %316 = call double @llvm.fmuladd.f64(double %247, double %117, double %315)
  %317 = call double @llvm.fmuladd.f64(double %263, double %257, double %316)
  %318 = fsub double %209, %306
  %319 = call double @llvm.fmuladd.f64(double %33, double %318, double %317)
  %320 = fdiv double %319, %266
  %321 = call double @sqrt(double noundef %265) #9
  %322 = call double @sqrt(double noundef %267) #9
  %323 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %324 unwind label %424

324:                                              ; preds = %246
  %325 = fsub double %290, %287
  %326 = fmul double %284, %322
  %327 = call double @llvm.fmuladd.f64(double %321, double %280, double %326)
  %328 = call double @llvm.fmuladd.f64(double %325, double %323, double %327)
  %329 = fadd double %321, %322
  %330 = fdiv double %328, %329
  %331 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %332 unwind label %426

332:                                              ; preds = %324
  %333 = fsub double %300, %298
  %334 = fmul double %296, %322
  %335 = call double @llvm.fmuladd.f64(double %321, double %293, double %334)
  %336 = call double @llvm.fmuladd.f64(double %333, double %331, double %335)
  %337 = fdiv double %336, %329
  %338 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %339 unwind label %428

339:                                              ; preds = %332
  %340 = fmul double %321, %322
  %341 = fsub double %284, %280
  %342 = fmul double %341, %340
  %343 = fmul double %290, %322
  %344 = call double @llvm.fmuladd.f64(double %321, double %287, double %343)
  %345 = call double @llvm.fmuladd.f64(double %342, double %338, double %344)
  %346 = fdiv double %345, %329
  %347 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %348 unwind label %430

348:                                              ; preds = %339
  %349 = fsub double %296, %293
  %350 = fmul double %349, %340
  %351 = fmul double %300, %322
  %352 = call double @llvm.fmuladd.f64(double %321, double %298, double %351)
  %353 = call double @llvm.fmuladd.f64(double %350, double %347, double %352)
  %354 = fdiv double %353, %329
  %355 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %356 unwind label %432

356:                                              ; preds = %348
  %357 = invoke noundef double @_Z3sgnd(double noundef %33)
          to label %358 unwind label %434

358:                                              ; preds = %356
  %359 = fmul double %330, %346
  %360 = call double @llvm.fmuladd.f64(double %257, double %33, double %359)
  %361 = call double @llvm.fmuladd.f64(double %337, double %354, double %360)
  %362 = fsub double %306, %361
  %363 = fmul double %322, %362
  %364 = fsub double %303, %361
  %365 = fneg double %321
  %366 = fmul double %364, %365
  %367 = call double @llvm.fmuladd.f64(double %366, double %355, double %313)
  %368 = call double @llvm.fmuladd.f64(double %363, double %357, double %320)
  %369 = call double @llvm.fabs.f64(double %33)
  %370 = fdiv double %369, %321
  %371 = fsub double %257, %370
  %372 = fdiv double %369, %322
  %373 = fadd double %257, %372
  %374 = fmul double %14, %52
  %375 = fmul double %14, %56
  %376 = fmul double %25, %108
  %377 = fmul double %25, %112
  %378 = fmul double %257, %265
  %379 = fmul double %265, %280
  %380 = fmul double %265, %293
  %381 = fmul double %257, %267
  %382 = fmul double %267, %284
  %383 = fmul double %267, %296
  %384 = fmul double %265, %330
  %385 = fmul double %265, %337
  %386 = fmul double %267, %330
  %387 = fmul double %267, %337
  %388 = fcmp ult double %371, 0.000000e+00
  br i1 %388, label %436, label %.preheader633

.preheader633:                                    ; preds = %358
  %389 = fneg double %197
  %390 = call double @llvm.fmuladd.f64(double %197, double %265, double %212)
  %391 = call double @llvm.fmuladd.f64(double %389, double %14, double %390)
  store double %391, ptr %2, align 8, !tbaa !5
  store double %265, ptr %3, align 8, !tbaa !5
  %392 = call double @llvm.fmuladd.f64(double %197, double %378, double %215)
  %393 = call double @llvm.fmuladd.f64(double %389, double %212, double %392)
  %394 = getelementptr inbounds i8, ptr %2, i64 8
  store double %393, ptr %394, align 8, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %3, i64 8
  store double %378, ptr %395, align 8, !tbaa !5
  %396 = extractelement <2 x double> %221, i64 0
  %397 = call double @llvm.fmuladd.f64(double %197, double %379, double %396)
  %398 = call double @llvm.fmuladd.f64(double %389, double %374, double %397)
  %399 = getelementptr inbounds i8, ptr %2, i64 16
  store double %398, ptr %399, align 8, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %3, i64 16
  store double %379, ptr %400, align 8, !tbaa !5
  %401 = extractelement <2 x double> %221, i64 1
  %402 = call double @llvm.fmuladd.f64(double %197, double %380, double %401)
  %403 = call double @llvm.fmuladd.f64(double %389, double %375, double %402)
  %404 = getelementptr inbounds i8, ptr %2, i64 24
  store double %403, ptr %404, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %3, i64 24
  store double %380, ptr %405, align 8, !tbaa !5
  %406 = call double @llvm.fmuladd.f64(double %197, double %313, double %224)
  %407 = call double @llvm.fmuladd.f64(double %389, double %63, double %406)
  %408 = getelementptr inbounds i8, ptr %2, i64 32
  store double %407, ptr %408, align 8, !tbaa !5
  %409 = getelementptr inbounds i8, ptr %3, i64 32
  store double %313, ptr %409, align 8, !tbaa !5
  %410 = call double @llvm.fmuladd.f64(double %197, double %33, double 0.000000e+00)
  %411 = call double @llvm.fmuladd.f64(double %389, double %33, double %410)
  %412 = getelementptr inbounds i8, ptr %2, i64 40
  store double %411, ptr %412, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %3, i64 40
  store double %33, ptr %413, align 8, !tbaa !5
  %414 = extractelement <2 x double> %238, i64 0
  %415 = call double @llvm.fmuladd.f64(double %197, double %287, double %414)
  %416 = call double @llvm.fmuladd.f64(double %389, double %40, double %415)
  %417 = getelementptr inbounds i8, ptr %2, i64 48
  store double %416, ptr %417, align 8, !tbaa !5
  %418 = getelementptr inbounds i8, ptr %3, i64 48
  store double %287, ptr %418, align 8, !tbaa !5
  %419 = extractelement <2 x double> %238, i64 1
  %420 = call double @llvm.fmuladd.f64(double %197, double %298, double %419)
  %421 = call double @llvm.fmuladd.f64(double %389, double %44, double %420)
  %422 = insertelement <2 x double> poison, double %421, i64 0
  %423 = insertelement <2 x double> %422, double %298, i64 1
  br label %.loopexit.sink.split

424:                                              ; preds = %246
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %574

426:                                              ; preds = %324
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %574

428:                                              ; preds = %332
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %574

430:                                              ; preds = %339
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %574

432:                                              ; preds = %348
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %574

434:                                              ; preds = %356
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %574

436:                                              ; preds = %358
  %437 = fcmp ugt double %373, 0.000000e+00
  br i1 %437, label %473, label %.preheader631

.preheader631:                                    ; preds = %436
  %438 = fneg double %201
  %439 = call double @llvm.fmuladd.f64(double %201, double %267, double %225)
  %440 = call double @llvm.fmuladd.f64(double %438, double %25, double %439)
  store double %440, ptr %2, align 8, !tbaa !5
  store double %267, ptr %3, align 8, !tbaa !5
  %441 = call double @llvm.fmuladd.f64(double %201, double %381, double %227)
  %442 = call double @llvm.fmuladd.f64(double %438, double %225, double %441)
  %443 = getelementptr inbounds i8, ptr %2, i64 8
  store double %442, ptr %443, align 8, !tbaa !5
  %444 = getelementptr inbounds i8, ptr %3, i64 8
  store double %381, ptr %444, align 8, !tbaa !5
  %445 = extractelement <2 x double> %231, i64 0
  %446 = call double @llvm.fmuladd.f64(double %201, double %382, double %445)
  %447 = call double @llvm.fmuladd.f64(double %438, double %376, double %446)
  %448 = getelementptr inbounds i8, ptr %2, i64 16
  store double %447, ptr %448, align 8, !tbaa !5
  %449 = getelementptr inbounds i8, ptr %3, i64 16
  store double %382, ptr %449, align 8, !tbaa !5
  %450 = extractelement <2 x double> %231, i64 1
  %451 = call double @llvm.fmuladd.f64(double %201, double %383, double %450)
  %452 = call double @llvm.fmuladd.f64(double %438, double %377, double %451)
  %453 = getelementptr inbounds i8, ptr %2, i64 24
  store double %452, ptr %453, align 8, !tbaa !5
  %454 = getelementptr inbounds i8, ptr %3, i64 24
  store double %383, ptr %454, align 8, !tbaa !5
  %455 = call double @llvm.fmuladd.f64(double %201, double %320, double %234)
  %456 = call double @llvm.fmuladd.f64(double %438, double %117, double %455)
  %457 = getelementptr inbounds i8, ptr %2, i64 32
  store double %456, ptr %457, align 8, !tbaa !5
  %458 = getelementptr inbounds i8, ptr %3, i64 32
  store double %320, ptr %458, align 8, !tbaa !5
  %459 = call double @llvm.fmuladd.f64(double %201, double %33, double 0.000000e+00)
  %460 = call double @llvm.fmuladd.f64(double %438, double %33, double %459)
  %461 = getelementptr inbounds i8, ptr %2, i64 40
  store double %460, ptr %461, align 8, !tbaa !5
  %462 = getelementptr inbounds i8, ptr %3, i64 40
  store double %33, ptr %462, align 8, !tbaa !5
  %463 = extractelement <2 x double> %242, i64 0
  %464 = call double @llvm.fmuladd.f64(double %201, double %290, double %463)
  %465 = call double @llvm.fmuladd.f64(double %438, double %46, double %464)
  %466 = getelementptr inbounds i8, ptr %2, i64 48
  store double %465, ptr %466, align 8, !tbaa !5
  %467 = getelementptr inbounds i8, ptr %3, i64 48
  store double %290, ptr %467, align 8, !tbaa !5
  %468 = extractelement <2 x double> %242, i64 1
  %469 = call double @llvm.fmuladd.f64(double %201, double %300, double %468)
  %470 = call double @llvm.fmuladd.f64(double %438, double %50, double %469)
  %471 = insertelement <2 x double> poison, double %470, i64 0
  %472 = insertelement <2 x double> %471, double %300, i64 1
  br label %.loopexit.sink.split

473:                                              ; preds = %436
  %474 = fcmp ole double %371, 0.000000e+00
  %475 = fcmp oge double %257, 0.000000e+00
  %or.cond = and i1 %475, %474
  br i1 %or.cond, label %.preheader627, label %521

.preheader627:                                    ; preds = %473
  %476 = fsub double %371, %197
  %477 = fneg double %476
  %478 = fneg double %197
  %479 = call double @llvm.fmuladd.f64(double %371, double %265, double %212)
  %480 = call double @llvm.fmuladd.f64(double %477, double %265, double %479)
  %481 = call double @llvm.fmuladd.f64(double %478, double %14, double %480)
  store double %481, ptr %2, align 8, !tbaa !5
  store double %265, ptr %3, align 8, !tbaa !5
  %482 = call double @llvm.fmuladd.f64(double %371, double %378, double %215)
  %483 = call double @llvm.fmuladd.f64(double %477, double %378, double %482)
  %484 = call double @llvm.fmuladd.f64(double %478, double %212, double %483)
  %485 = getelementptr inbounds i8, ptr %2, i64 8
  store double %484, ptr %485, align 8, !tbaa !5
  %486 = getelementptr inbounds i8, ptr %3, i64 8
  store double %378, ptr %486, align 8, !tbaa !5
  %487 = extractelement <2 x double> %221, i64 0
  %488 = call double @llvm.fmuladd.f64(double %371, double %384, double %487)
  %489 = call double @llvm.fmuladd.f64(double %477, double %379, double %488)
  %490 = call double @llvm.fmuladd.f64(double %478, double %374, double %489)
  %491 = getelementptr inbounds i8, ptr %2, i64 16
  store double %490, ptr %491, align 8, !tbaa !5
  %492 = getelementptr inbounds i8, ptr %3, i64 16
  store double %384, ptr %492, align 8, !tbaa !5
  %493 = extractelement <2 x double> %221, i64 1
  %494 = call double @llvm.fmuladd.f64(double %371, double %385, double %493)
  %495 = call double @llvm.fmuladd.f64(double %477, double %380, double %494)
  %496 = call double @llvm.fmuladd.f64(double %478, double %375, double %495)
  %497 = getelementptr inbounds i8, ptr %2, i64 24
  store double %496, ptr %497, align 8, !tbaa !5
  %498 = getelementptr inbounds i8, ptr %3, i64 24
  store double %385, ptr %498, align 8, !tbaa !5
  %499 = call double @llvm.fmuladd.f64(double %371, double %367, double %224)
  %500 = call double @llvm.fmuladd.f64(double %477, double %313, double %499)
  %501 = call double @llvm.fmuladd.f64(double %478, double %63, double %500)
  %502 = getelementptr inbounds i8, ptr %2, i64 32
  store double %501, ptr %502, align 8, !tbaa !5
  %503 = getelementptr inbounds i8, ptr %3, i64 32
  store double %367, ptr %503, align 8, !tbaa !5
  %504 = call double @llvm.fmuladd.f64(double %371, double %33, double 0.000000e+00)
  %505 = call double @llvm.fmuladd.f64(double %477, double %33, double %504)
  %506 = call double @llvm.fmuladd.f64(double %478, double %33, double %505)
  %507 = getelementptr inbounds i8, ptr %2, i64 40
  store double %506, ptr %507, align 8, !tbaa !5
  %508 = getelementptr inbounds i8, ptr %3, i64 40
  store double %33, ptr %508, align 8, !tbaa !5
  %509 = extractelement <2 x double> %238, i64 0
  %510 = call double @llvm.fmuladd.f64(double %371, double %346, double %509)
  %511 = call double @llvm.fmuladd.f64(double %477, double %287, double %510)
  %512 = call double @llvm.fmuladd.f64(double %478, double %40, double %511)
  %513 = getelementptr inbounds i8, ptr %2, i64 48
  store double %512, ptr %513, align 8, !tbaa !5
  %514 = getelementptr inbounds i8, ptr %3, i64 48
  store double %346, ptr %514, align 8, !tbaa !5
  %515 = extractelement <2 x double> %238, i64 1
  %516 = call double @llvm.fmuladd.f64(double %371, double %354, double %515)
  %517 = call double @llvm.fmuladd.f64(double %477, double %298, double %516)
  %518 = call double @llvm.fmuladd.f64(double %478, double %44, double %517)
  %519 = insertelement <2 x double> poison, double %518, i64 0
  %520 = insertelement <2 x double> %519, double %354, i64 1
  br label %.loopexit.sink.split

521:                                              ; preds = %473
  %522 = fcmp ole double %257, 0.000000e+00
  %523 = fcmp oge double %373, 0.000000e+00
  %or.cond3 = select i1 %522, i1 %523, i1 false
  br i1 %or.cond3, label %.preheader629, label %.loopexit

.preheader629:                                    ; preds = %521
  %524 = fsub double %373, %201
  %525 = fneg double %524
  %526 = fneg double %201
  %527 = call double @llvm.fmuladd.f64(double %373, double %267, double %225)
  %528 = call double @llvm.fmuladd.f64(double %525, double %267, double %527)
  %529 = call double @llvm.fmuladd.f64(double %526, double %25, double %528)
  store double %529, ptr %2, align 8, !tbaa !5
  store double %267, ptr %3, align 8, !tbaa !5
  %530 = call double @llvm.fmuladd.f64(double %373, double %381, double %227)
  %531 = call double @llvm.fmuladd.f64(double %525, double %381, double %530)
  %532 = call double @llvm.fmuladd.f64(double %526, double %225, double %531)
  %533 = getelementptr inbounds i8, ptr %2, i64 8
  store double %532, ptr %533, align 8, !tbaa !5
  %534 = getelementptr inbounds i8, ptr %3, i64 8
  store double %381, ptr %534, align 8, !tbaa !5
  %535 = extractelement <2 x double> %231, i64 0
  %536 = call double @llvm.fmuladd.f64(double %373, double %386, double %535)
  %537 = call double @llvm.fmuladd.f64(double %525, double %382, double %536)
  %538 = call double @llvm.fmuladd.f64(double %526, double %376, double %537)
  %539 = getelementptr inbounds i8, ptr %2, i64 16
  store double %538, ptr %539, align 8, !tbaa !5
  %540 = getelementptr inbounds i8, ptr %3, i64 16
  store double %386, ptr %540, align 8, !tbaa !5
  %541 = extractelement <2 x double> %231, i64 1
  %542 = call double @llvm.fmuladd.f64(double %373, double %387, double %541)
  %543 = call double @llvm.fmuladd.f64(double %525, double %383, double %542)
  %544 = call double @llvm.fmuladd.f64(double %526, double %377, double %543)
  %545 = getelementptr inbounds i8, ptr %2, i64 24
  store double %544, ptr %545, align 8, !tbaa !5
  %546 = getelementptr inbounds i8, ptr %3, i64 24
  store double %387, ptr %546, align 8, !tbaa !5
  %547 = call double @llvm.fmuladd.f64(double %373, double %368, double %234)
  %548 = call double @llvm.fmuladd.f64(double %525, double %320, double %547)
  %549 = call double @llvm.fmuladd.f64(double %526, double %117, double %548)
  %550 = getelementptr inbounds i8, ptr %2, i64 32
  store double %549, ptr %550, align 8, !tbaa !5
  %551 = getelementptr inbounds i8, ptr %3, i64 32
  store double %368, ptr %551, align 8, !tbaa !5
  %552 = call double @llvm.fmuladd.f64(double %373, double %33, double 0.000000e+00)
  %553 = call double @llvm.fmuladd.f64(double %525, double %33, double %552)
  %554 = call double @llvm.fmuladd.f64(double %526, double %33, double %553)
  %555 = getelementptr inbounds i8, ptr %2, i64 40
  store double %554, ptr %555, align 8, !tbaa !5
  %556 = getelementptr inbounds i8, ptr %3, i64 40
  store double %33, ptr %556, align 8, !tbaa !5
  %557 = extractelement <2 x double> %242, i64 0
  %558 = call double @llvm.fmuladd.f64(double %373, double %346, double %557)
  %559 = call double @llvm.fmuladd.f64(double %525, double %290, double %558)
  %560 = call double @llvm.fmuladd.f64(double %526, double %46, double %559)
  %561 = getelementptr inbounds i8, ptr %2, i64 48
  store double %560, ptr %561, align 8, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %3, i64 48
  store double %346, ptr %562, align 8, !tbaa !5
  %563 = extractelement <2 x double> %242, i64 1
  %564 = call double @llvm.fmuladd.f64(double %373, double %354, double %563)
  %565 = call double @llvm.fmuladd.f64(double %525, double %300, double %564)
  %566 = call double @llvm.fmuladd.f64(double %526, double %50, double %565)
  %567 = insertelement <2 x double> poison, double %566, i64 0
  %568 = insertelement <2 x double> %567, double %354, i64 1
  br label %.loopexit.sink.split

.loopexit.sink.split:                             ; preds = %.preheader624.preheader, %.preheader625.preheader, %.preheader627, %.preheader629, %.preheader631, %.preheader633
  %.sink754 = phi i64 [ 56, %.preheader633 ], [ 56, %.preheader631 ], [ 56, %.preheader629 ], [ 56, %.preheader627 ], [ 48, %.preheader625.preheader ], [ 48, %.preheader624.preheader ]
  %.sink751 = phi ptr [ %3, %.preheader633 ], [ %3, %.preheader631 ], [ %3, %.preheader629 ], [ %3, %.preheader627 ], [ %2, %.preheader625.preheader ], [ %2, %.preheader624.preheader ]
  %569 = phi <2 x double> [ %423, %.preheader633 ], [ %472, %.preheader631 ], [ %568, %.preheader629 ], [ %520, %.preheader627 ], [ %242, %.preheader625.preheader ], [ %238, %.preheader624.preheader ]
  %570 = getelementptr inbounds i8, ptr %2, i64 %.sink754
  %571 = extractelement <2 x double> %569, i64 0
  store double %571, ptr %570, align 8, !tbaa !5
  %572 = getelementptr inbounds i8, ptr %.sink751, i64 56
  %573 = extractelement <2 x double> %569, i64 1
  store double %573, ptr %572, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.sink.split, %.invoke, %521
  %.1 = phi i32 [ 0, %521 ], [ 1, %.invoke ], [ 0, %.loopexit.sink.split ]
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %9) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %9) #9
  ret i32 %.1

574:                                              ; preds = %424, %428, %432, %434, %430, %426, %158, %105, %72
  %.pn618 = phi { ptr, i32 } [ %106, %105 ], [ %73, %72 ], [ %159, %158 ], [ %425, %424 ], [ %427, %426 ], [ %429, %428 ], [ %431, %430 ], [ %435, %434 ], [ %433, %432 ]
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %9) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %9) #9
  resume { ptr, i32 } %.pn618
}

; 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 uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

declare noundef double @_Z3sgnd(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #7 align 2

; 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>) #8

attributes #0 = { mustprogress 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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { inlinehint mustprogress 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 #4 = { 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 #5 = { inlinehint mustprogress 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 #6 = { "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 #7 = { mustprogress 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 #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { 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++ TBAA"}
!9 = !{!"branch_weights", i32 1, i32 1048575}


; Effective O3 passes: AggressiveInstCombinePass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LibCallsShrinkWrapPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,VectorCombinePass