; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/polygon_calcR.ll (ZN7Polygon27calcR_oilWithWaterInCornersEd)

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.5" = type { i8 }
%class.ElemModel = type { ptr, double, double, ptr, ptr, double, ptr, i8, i8, i8, i8, i32, double, double, double, double, double, double, double, %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair" = type { double, double }
%class.VoidElem = type { %class.ElemModel, double, double, double, double }
%class.Polygon = type { %class.VoidElem, i32, %"class.std::vector", ptr, ptr, i16, i8, double }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair.24" }
%"struct.std::pair.24" = type { i32, double }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144)) #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Polygon27calcR_oilWithWaterInCornersEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca i32, align 4
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::allocator.5", align 1
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::allocator.5", align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::allocator.5", align 1
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i1, align 1
  %51 = alloca i32, align 4
  %52 = alloca i1, align 1
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca i1, align 1
  %57 = alloca %"class.std::allocator.5", align 1
  %58 = alloca i1, align 1
  %59 = alloca i1, align 1
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca i1, align 1
  %63 = alloca %"class.std::allocator.5", align 1
  %64 = alloca i1, align 1
  %65 = alloca i1, align 1
  %66 = alloca i1, align 1
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca i1, align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca i1, align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca i1, align 1
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca i1, align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca i1, align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i1, align 1
  %81 = alloca %"class.std::allocator.5", align 1
  %82 = alloca i1, align 1
  %83 = alloca i1, align 1
  %84 = alloca i1, align 1
  %85 = alloca i1, align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca i1, align 1
  %88 = alloca %"class.std::allocator.5", align 1
  %89 = alloca i1, align 1
  %90 = alloca i1, align 1
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca i1, align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca i1, align 1
  %96 = alloca %"class.std::allocator.5", align 1
  %97 = alloca i1, align 1
  %98 = alloca i1, align 1
  %99 = alloca i1, align 1
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca i1, align 1
  %104 = alloca i32, align 4
  %105 = alloca i1, align 1
  %106 = alloca i1, align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca i1, align 1
  %110 = alloca %"class.std::allocator.5", align 1
  %111 = alloca i1, align 1
  %112 = alloca i1, align 1
  %113 = alloca i1, align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca i1, align 1
  %116 = alloca %"class.std::allocator.5", align 1
  %117 = alloca i1, align 1
  %118 = alloca i1, align 1
  %119 = alloca i1, align 1
  %120 = alloca i1, align 1
  %121 = alloca double, align 8
  %122 = alloca double, align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca i1, align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca i1, align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca i1, align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca i1, align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca i1, align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca i1, align 1
  %136 = alloca %"class.std::allocator.5", align 1
  %137 = alloca i1, align 1
  %138 = alloca i1, align 1
  %139 = alloca i1, align 1
  %140 = alloca i1, align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca i1, align 1
  %143 = alloca %"class.std::allocator.5", align 1
  %144 = alloca i1, align 1
  %145 = alloca i1, align 1
  %146 = alloca i1, align 1
  %147 = alloca i1, align 1
  %148 = alloca i1, align 1
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca i1, align 1
  %151 = alloca %"class.std::allocator.5", align 1
  %152 = alloca i1, align 1
  %153 = alloca i1, align 1
  %154 = alloca i1, align 1
  %155 = alloca i1, align 1
  %156 = alloca i1, align 1
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca i1, align 1
  %159 = alloca i32, align 4
  %160 = alloca i1, align 1
  %161 = alloca i1, align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca i1, align 1
  %165 = alloca %"class.std::allocator.5", align 1
  %166 = alloca i1, align 1
  %167 = alloca i1, align 1
  %168 = alloca i1, align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca i1, align 1
  %171 = alloca %"class.std::allocator.5", align 1
  %172 = alloca i1, align 1
  %173 = alloca i1, align 1
  %174 = alloca i1, align 1
  %175 = alloca i1, align 1
  %176 = alloca double, align 8
  %177 = alloca double, align 8
  %178 = alloca double, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store double %1, ptr %4, align 8, !tbaa !9
  %179 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  store double 0.000000e+00, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store double 0.000000e+00, ptr %7, align 8, !tbaa !9
  %180 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 4
  %181 = load ptr, ptr %180, align 8, !tbaa !11
  %182 = call noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972) %181)
  %183 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 4
  %184 = load ptr, ptr %183, align 8, !tbaa !11
  %185 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %184)
  %186 = icmp eq ptr %182, %185
  br i1 %186, label %187, label %190

187:                                              ; preds = %2
  %188 = getelementptr inbounds %class.VoidElem, ptr %179, i32 0, i32 3
  %189 = load double, ptr %188, align 8, !tbaa !16
  store double %189, ptr %5, align 8, !tbaa !9
  br label %193

190:                                              ; preds = %2
  %191 = getelementptr inbounds %class.VoidElem, ptr %179, i32 0, i32 4
  %192 = load double, ptr %191, align 8, !tbaa !18
  store double %192, ptr %5, align 8, !tbaa !9
  br label %193

193:                                              ; preds = %190, %187
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  store i32 0, ptr %8, align 4, !tbaa !19
  br label %194

194:                                              ; preds = %854, %193
  %195 = load i32, ptr %8, align 4, !tbaa !19
  %196 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 1
  %197 = load i32, ptr %196, align 8, !tbaa !20
  %198 = icmp slt i32 %195, %197
  br i1 %198, label %200, label %199

199:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %857

200:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  store double 0.000000e+00, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %201 = load double, ptr %5, align 8, !tbaa !9
  store double %201, ptr %10, align 8, !tbaa !9
  %202 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 3
  %203 = load ptr, ptr %202, align 8, !tbaa !27
  %204 = load i32, ptr %8, align 4, !tbaa !19
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds %class.CornerApex, ptr %203, i64 %205
  %207 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %206)
  br i1 %207, label %208, label %853

208:                                              ; preds = %200
  %209 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 3
  %210 = load ptr, ptr %209, align 8, !tbaa !27
  %211 = load i32, ptr %8, align 4, !tbaa !19
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds %class.CornerApex, ptr %210, i64 %212
  %214 = load double, ptr %4, align 8, !tbaa !9
  %215 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 2
  %216 = load i32, ptr %8, align 4, !tbaa !19
  %217 = sext i32 %216 to i64
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %215, i64 noundef %217) #8
  %219 = load double, ptr %218, align 8, !tbaa !9
  %220 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 4
  %221 = load ptr, ptr %220, align 8, !tbaa !11
  %222 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %221)
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %213, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10, double noundef %214, double noundef %219, double noundef %222, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %223 = load double, ptr %9, align 8, !tbaa !9
  %224 = call noundef double @_ZNK9ElemModel3RRREv(ptr noundef nonnull align 8 dereferenceable(152) %179)
  %225 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 2
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef 0) #8
  %227 = load double, ptr %226, align 8, !tbaa !9
  %228 = call double @tan(double noundef %227) #8
  %229 = fdiv double %224, %228
  %230 = fmul double %229, 2.000000e+00
  %231 = fcmp ogt double %223, %230
  br i1 %231, label %232, label %234

232:                                              ; preds = %208
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.11)
  br label %234

234:                                              ; preds = %232, %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %235 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 2
  %236 = load i32, ptr %8, align 4, !tbaa !19
  %237 = sext i32 %236 to i64
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %235, i64 noundef %237) #8
  %239 = load double, ptr %238, align 8, !tbaa !9
  %240 = load double, ptr %10, align 8, !tbaa !9
  %241 = call noundef double @_Z17dimLessCornerAreadd(double noundef %239, double noundef %240)
  store double %241, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  %242 = load double, ptr %11, align 8, !tbaa !9
  %243 = load double, ptr %9, align 8, !tbaa !9
  %244 = getelementptr inbounds %class.Polygon, ptr %179, i32 0, i32 2
  %245 = load i32, ptr %8, align 4, !tbaa !19
  %246 = sext i32 %245 to i64
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %246) #8
  %248 = load double, ptr %247, align 8, !tbaa !9
  %249 = load double, ptr %10, align 8, !tbaa !9
  %250 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 4
  %251 = load ptr, ptr %250, align 8, !tbaa !11
  %252 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %251)
  %253 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %252)
  %254 = call noundef double @_Z17cornerConductanceddddd(double noundef %242, double noundef %243, double noundef %248, double noundef %249, double noundef %253)
  store double %254, ptr %12, align 8, !tbaa !9
  %255 = load double, ptr %12, align 8, !tbaa !9
  %256 = fcmp ogt double %255, 0.000000e+00
  store i1 false, ptr %15, align 1
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %50, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i1 false, ptr %52, align 1
  store i1 false, ptr %53, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %59, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %67, align 1
  br i1 %256, label %273, label %257

257:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  store i1 true, ptr %15, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #8
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #8
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  store i1 true, ptr %27, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  store i1 true, ptr %28, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %258 unwind label %510

258:                                              ; preds = %257
  store i1 true, ptr %31, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.1)
          to label %259 unwind label %514

259:                                              ; preds = %258
  store i1 true, ptr %32, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  store i1 true, ptr %34, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  store i1 true, ptr %36, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  store i1 true, ptr %37, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %260 unwind label %518

260:                                              ; preds = %259
  store i1 true, ptr %38, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %261 unwind label %522

261:                                              ; preds = %260
  store i1 true, ptr %39, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.2)
          to label %262 unwind label %526

262:                                              ; preds = %261
  store i1 true, ptr %40, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  store i1 true, ptr %42, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #8
  store i1 true, ptr %44, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  store i1 true, ptr %45, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %263 unwind label %530

263:                                              ; preds = %262
  store i1 true, ptr %46, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %264 unwind label %534

264:                                              ; preds = %263
  store i1 true, ptr %47, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.4)
          to label %265 unwind label %538

265:                                              ; preds = %264
  store i1 true, ptr %48, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  store i1 true, ptr %50, align 1
  store i32 237, ptr %51, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %266 unwind label %542

266:                                              ; preds = %265
  store i1 true, ptr %52, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %267 unwind label %546

267:                                              ; preds = %266
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  store i1 true, ptr %56, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #8
  store i1 true, ptr %58, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  store i1 true, ptr %59, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %268 unwind label %550

268:                                              ; preds = %267
  store i1 true, ptr %60, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  store i1 true, ptr %62, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #8
  store i1 true, ptr %64, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  store i1 true, ptr %65, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %269 unwind label %554

269:                                              ; preds = %268
  store i1 true, ptr %66, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %270 unwind label %558

270:                                              ; preds = %269
  store i1 true, ptr %67, align 1
  %271 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %13, ptr noundef %54, i32 noundef 0)
          to label %272 unwind label %562

272:                                              ; preds = %270
  br label %273

273:                                              ; preds = %272, %234
  %274 = phi i1 [ true, %234 ], [ %271, %272 ]
  %275 = xor i1 %274, true
  %276 = load i1, ptr %67, align 1
  br i1 %276, label %277, label %278

277:                                              ; preds = %273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %278

278:                                              ; preds = %277, %273
  %279 = load i1, ptr %66, align 1
  br i1 %279, label %280, label %281

280:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %281

281:                                              ; preds = %280, %278
  %282 = load i1, ptr %65, align 1
  br i1 %282, label %283, label %284

283:                                              ; preds = %281
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  br label %284

284:                                              ; preds = %283, %281
  %285 = load i1, ptr %64, align 1
  br i1 %285, label %286, label %287

286:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #8
  br label %287

287:                                              ; preds = %286, %284
  %288 = load i1, ptr %62, align 1
  br i1 %288, label %289, label %290

289:                                              ; preds = %287
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %290

290:                                              ; preds = %289, %287
  %291 = load i1, ptr %60, align 1
  br i1 %291, label %292, label %293

292:                                              ; preds = %290
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %293

293:                                              ; preds = %292, %290
  %294 = load i1, ptr %59, align 1
  br i1 %294, label %295, label %296

295:                                              ; preds = %293
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  br label %296

296:                                              ; preds = %295, %293
  %297 = load i1, ptr %58, align 1
  br i1 %297, label %298, label %299

298:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  br label %299

299:                                              ; preds = %298, %296
  %300 = load i1, ptr %56, align 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %299
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  br label %302

302:                                              ; preds = %301, %299
  %303 = load i1, ptr %53, align 1
  br i1 %303, label %304, label %305

304:                                              ; preds = %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %305

305:                                              ; preds = %304, %302
  %306 = load i1, ptr %52, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %308

308:                                              ; preds = %307, %305
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  %309 = load i1, ptr %50, align 1
  br i1 %309, label %310, label %311

310:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  br label %311

311:                                              ; preds = %310, %308
  %312 = load i1, ptr %48, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %314

314:                                              ; preds = %313, %311
  %315 = load i1, ptr %47, align 1
  br i1 %315, label %316, label %317

316:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %317

317:                                              ; preds = %316, %314
  %318 = load i1, ptr %46, align 1
  br i1 %318, label %319, label %320

319:                                              ; preds = %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %320

320:                                              ; preds = %319, %317
  %321 = load i1, ptr %45, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %320
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  br label %323

323:                                              ; preds = %322, %320
  %324 = load i1, ptr %44, align 1
  br i1 %324, label %325, label %326

325:                                              ; preds = %323
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  br label %326

326:                                              ; preds = %325, %323
  %327 = load i1, ptr %42, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %329

329:                                              ; preds = %328, %326
  %330 = load i1, ptr %40, align 1
  br i1 %330, label %331, label %332

331:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %332

332:                                              ; preds = %331, %329
  %333 = load i1, ptr %39, align 1
  br i1 %333, label %334, label %335

334:                                              ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %335

335:                                              ; preds = %334, %332
  %336 = load i1, ptr %38, align 1
  br i1 %336, label %337, label %338

337:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %338

338:                                              ; preds = %337, %335
  %339 = load i1, ptr %37, align 1
  br i1 %339, label %340, label %341

340:                                              ; preds = %338
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  br label %341

341:                                              ; preds = %340, %338
  %342 = load i1, ptr %36, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  br label %344

344:                                              ; preds = %343, %341
  %345 = load i1, ptr %34, align 1
  br i1 %345, label %346, label %347

346:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %347

347:                                              ; preds = %346, %344
  %348 = load i1, ptr %32, align 1
  br i1 %348, label %349, label %350

349:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %350

350:                                              ; preds = %349, %347
  %351 = load i1, ptr %31, align 1
  br i1 %351, label %352, label %353

352:                                              ; preds = %350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %353

353:                                              ; preds = %352, %350
  %354 = load i1, ptr %28, align 1
  br i1 %354, label %355, label %356

355:                                              ; preds = %353
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  br label %356

356:                                              ; preds = %355, %353
  %357 = load i1, ptr %27, align 1
  br i1 %357, label %358, label %359

358:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  br label %359

359:                                              ; preds = %358, %356
  %360 = load i1, ptr %25, align 1
  br i1 %360, label %361, label %362

361:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br label %362

362:                                              ; preds = %361, %359
  %363 = load i1, ptr %23, align 1
  br i1 %363, label %364, label %365

364:                                              ; preds = %362
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  br label %365

365:                                              ; preds = %364, %362
  %366 = load i1, ptr %21, align 1
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  br label %368

368:                                              ; preds = %367, %365
  %369 = load i1, ptr %19, align 1
  br i1 %369, label %370, label %371

370:                                              ; preds = %368
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %371

371:                                              ; preds = %370, %368
  %372 = load i1, ptr %17, align 1
  br i1 %372, label %373, label %374

373:                                              ; preds = %371
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  br label %374

374:                                              ; preds = %373, %371
  %375 = load i1, ptr %15, align 1
  br i1 %375, label %376, label %377

376:                                              ; preds = %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  br label %377

377:                                              ; preds = %376, %374
  %378 = load double, ptr %11, align 8, !tbaa !9
  %379 = fcmp olt double %378, 1.000000e+00
  store i1 false, ptr %70, align 1
  store i1 false, ptr %72, align 1
  store i1 false, ptr %74, align 1
  store i1 false, ptr %76, align 1
  store i1 false, ptr %78, align 1
  store i1 false, ptr %80, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %89, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %97, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %99, align 1
  store i1 false, ptr %100, align 1
  store i1 false, ptr %101, align 1
  store i1 false, ptr %103, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #8
  store i1 false, ptr %105, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %113, align 1
  store i1 false, ptr %115, align 1
  store i1 false, ptr %117, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %119, align 1
  store i1 false, ptr %120, align 1
  br i1 %379, label %396, label %380

380:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #8
  store i1 true, ptr %70, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  store i1 true, ptr %72, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  store i1 true, ptr %74, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  store i1 true, ptr %76, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  store i1 true, ptr %78, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  store i1 true, ptr %80, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #8
  store i1 true, ptr %82, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  store i1 true, ptr %83, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %381 unwind label %681

381:                                              ; preds = %380
  store i1 true, ptr %84, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.1)
          to label %382 unwind label %685

382:                                              ; preds = %381
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #8
  store i1 true, ptr %87, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #8
  store i1 true, ptr %89, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #8
  store i1 true, ptr %90, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %383 unwind label %689

383:                                              ; preds = %382
  store i1 true, ptr %91, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %384 unwind label %693

384:                                              ; preds = %383
  store i1 true, ptr %92, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.2)
          to label %385 unwind label %697

385:                                              ; preds = %384
  store i1 true, ptr %93, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #8
  store i1 true, ptr %95, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #8
  store i1 true, ptr %97, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  store i1 true, ptr %98, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %386 unwind label %701

386:                                              ; preds = %385
  store i1 true, ptr %99, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %387 unwind label %705

387:                                              ; preds = %386
  store i1 true, ptr %100, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.4)
          to label %388 unwind label %709

388:                                              ; preds = %387
  store i1 true, ptr %101, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #8
  store i1 true, ptr %103, align 1
  store i32 238, ptr %104, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 4 dereferenceable(4) %104)
          to label %389 unwind label %713

389:                                              ; preds = %388
  store i1 true, ptr %105, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %390 unwind label %717

390:                                              ; preds = %389
  store i1 true, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #8
  store i1 true, ptr %109, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #8
  store i1 true, ptr %111, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #8
  store i1 true, ptr %112, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %391 unwind label %721

391:                                              ; preds = %390
  store i1 true, ptr %113, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #8
  store i1 true, ptr %115, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #8
  store i1 true, ptr %117, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  store i1 true, ptr %118, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %392 unwind label %725

392:                                              ; preds = %391
  store i1 true, ptr %119, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %393 unwind label %729

393:                                              ; preds = %392
  store i1 true, ptr %120, align 1
  %394 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %68, ptr noundef %107, i32 noundef 0)
          to label %395 unwind label %733

395:                                              ; preds = %393
  br label %396

396:                                              ; preds = %395, %377
  %397 = phi i1 [ true, %377 ], [ %394, %395 ]
  %398 = xor i1 %397, true
  %399 = load i1, ptr %120, align 1
  br i1 %399, label %400, label %401

400:                                              ; preds = %396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %401

401:                                              ; preds = %400, %396
  %402 = load i1, ptr %119, align 1
  br i1 %402, label %403, label %404

403:                                              ; preds = %401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %404

404:                                              ; preds = %403, %401
  %405 = load i1, ptr %118, align 1
  br i1 %405, label %406, label %407

406:                                              ; preds = %404
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  br label %407

407:                                              ; preds = %406, %404
  %408 = load i1, ptr %117, align 1
  br i1 %408, label %409, label %410

409:                                              ; preds = %407
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #8
  br label %410

410:                                              ; preds = %409, %407
  %411 = load i1, ptr %115, align 1
  br i1 %411, label %412, label %413

412:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %413

413:                                              ; preds = %412, %410
  %414 = load i1, ptr %113, align 1
  br i1 %414, label %415, label %416

415:                                              ; preds = %413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %416

416:                                              ; preds = %415, %413
  %417 = load i1, ptr %112, align 1
  br i1 %417, label %418, label %419

418:                                              ; preds = %416
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #8
  br label %419

419:                                              ; preds = %418, %416
  %420 = load i1, ptr %111, align 1
  br i1 %420, label %421, label %422

421:                                              ; preds = %419
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #8
  br label %422

422:                                              ; preds = %421, %419
  %423 = load i1, ptr %109, align 1
  br i1 %423, label %424, label %425

424:                                              ; preds = %422
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  br label %425

425:                                              ; preds = %424, %422
  %426 = load i1, ptr %106, align 1
  br i1 %426, label %427, label %428

427:                                              ; preds = %425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %428

428:                                              ; preds = %427, %425
  %429 = load i1, ptr %105, align 1
  br i1 %429, label %430, label %431

430:                                              ; preds = %428
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %431

431:                                              ; preds = %430, %428
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #8
  %432 = load i1, ptr %103, align 1
  br i1 %432, label %433, label %434

433:                                              ; preds = %431
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #8
  br label %434

434:                                              ; preds = %433, %431
  %435 = load i1, ptr %101, align 1
  br i1 %435, label %436, label %437

436:                                              ; preds = %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %437

437:                                              ; preds = %436, %434
  %438 = load i1, ptr %100, align 1
  br i1 %438, label %439, label %440

439:                                              ; preds = %437
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %440

440:                                              ; preds = %439, %437
  %441 = load i1, ptr %99, align 1
  br i1 %441, label %442, label %443

442:                                              ; preds = %440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %443

443:                                              ; preds = %442, %440
  %444 = load i1, ptr %98, align 1
  br i1 %444, label %445, label %446

445:                                              ; preds = %443
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  br label %446

446:                                              ; preds = %445, %443
  %447 = load i1, ptr %97, align 1
  br i1 %447, label %448, label %449

448:                                              ; preds = %446
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #8
  br label %449

449:                                              ; preds = %448, %446
  %450 = load i1, ptr %95, align 1
  br i1 %450, label %451, label %452

451:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  br label %452

452:                                              ; preds = %451, %449
  %453 = load i1, ptr %93, align 1
  br i1 %453, label %454, label %455

454:                                              ; preds = %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %455

455:                                              ; preds = %454, %452
  %456 = load i1, ptr %92, align 1
  br i1 %456, label %457, label %458

457:                                              ; preds = %455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %458

458:                                              ; preds = %457, %455
  %459 = load i1, ptr %91, align 1
  br i1 %459, label %460, label %461

460:                                              ; preds = %458
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %461

461:                                              ; preds = %460, %458
  %462 = load i1, ptr %90, align 1
  br i1 %462, label %463, label %464

463:                                              ; preds = %461
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #8
  br label %464

464:                                              ; preds = %463, %461
  %465 = load i1, ptr %89, align 1
  br i1 %465, label %466, label %467

466:                                              ; preds = %464
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #8
  br label %467

467:                                              ; preds = %466, %464
  %468 = load i1, ptr %87, align 1
  br i1 %468, label %469, label %470

469:                                              ; preds = %467
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  br label %470

470:                                              ; preds = %469, %467
  %471 = load i1, ptr %85, align 1
  br i1 %471, label %472, label %473

472:                                              ; preds = %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %473

473:                                              ; preds = %472, %470
  %474 = load i1, ptr %84, align 1
  br i1 %474, label %475, label %476

475:                                              ; preds = %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %476

476:                                              ; preds = %475, %473
  %477 = load i1, ptr %83, align 1
  br i1 %477, label %478, label %479

478:                                              ; preds = %476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  br label %479

479:                                              ; preds = %478, %476
  %480 = load i1, ptr %82, align 1
  br i1 %480, label %481, label %482

481:                                              ; preds = %479
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  br label %482

482:                                              ; preds = %481, %479
  %483 = load i1, ptr %80, align 1
  br i1 %483, label %484, label %485

484:                                              ; preds = %482
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %485

485:                                              ; preds = %484, %482
  %486 = load i1, ptr %78, align 1
  br i1 %486, label %487, label %488

487:                                              ; preds = %485
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br label %488

488:                                              ; preds = %487, %485
  %489 = load i1, ptr %76, align 1
  br i1 %489, label %490, label %491

490:                                              ; preds = %488
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %491

491:                                              ; preds = %490, %488
  %492 = load i1, ptr %74, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br label %494

494:                                              ; preds = %493, %491
  %495 = load i1, ptr %72, align 1
  br i1 %495, label %496, label %497

496:                                              ; preds = %494
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %497

497:                                              ; preds = %496, %494
  %498 = load i1, ptr %70, align 1
  br i1 %498, label %499, label %500

499:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %500

500:                                              ; preds = %499, %497
  %501 = load double, ptr %12, align 8, !tbaa !9
  %502 = load double, ptr %7, align 8, !tbaa !9
  %503 = fadd double %502, %501
  store double %503, ptr %7, align 8, !tbaa !9
  %504 = load double, ptr %9, align 8, !tbaa !9
  %505 = load double, ptr %9, align 8, !tbaa !9
  %506 = fmul double %504, %505
  %507 = load double, ptr %11, align 8, !tbaa !9
  %508 = load double, ptr %6, align 8, !tbaa !9
  %509 = call double @llvm.fmuladd.f64(double %506, double %507, double %508)
  store double %509, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %853

510:                                              ; preds = %257
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %29, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %30, align 4
  br label %656

514:                                              ; preds = %258
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %29, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %30, align 4
  br label %652

518:                                              ; preds = %259
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %29, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %30, align 4
  br label %639

522:                                              ; preds = %260
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %29, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %30, align 4
  br label %635

526:                                              ; preds = %261
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %29, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %30, align 4
  br label %631

530:                                              ; preds = %262
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %29, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %30, align 4
  br label %618

534:                                              ; preds = %263
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %29, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %30, align 4
  br label %614

538:                                              ; preds = %264
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %29, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %30, align 4
  br label %610

542:                                              ; preds = %265
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %29, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %30, align 4
  br label %603

546:                                              ; preds = %266
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %29, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %30, align 4
  br label %599

550:                                              ; preds = %267
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %29, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %30, align 4
  br label %586

554:                                              ; preds = %268
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %29, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %30, align 4
  br label %573

558:                                              ; preds = %269
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %29, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %30, align 4
  br label %569

562:                                              ; preds = %270
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %29, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %30, align 4
  %566 = load i1, ptr %67, align 1
  br i1 %566, label %567, label %568

567:                                              ; preds = %562
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %568

568:                                              ; preds = %567, %562
  br label %569

569:                                              ; preds = %568, %558
  %570 = load i1, ptr %66, align 1
  br i1 %570, label %571, label %572

571:                                              ; preds = %569
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %572

572:                                              ; preds = %571, %569
  br label %573

573:                                              ; preds = %572, %554
  %574 = load i1, ptr %65, align 1
  br i1 %574, label %575, label %576

575:                                              ; preds = %573
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  br label %576

576:                                              ; preds = %575, %573
  %577 = load i1, ptr %64, align 1
  br i1 %577, label %578, label %579

578:                                              ; preds = %576
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #8
  br label %579

579:                                              ; preds = %578, %576
  %580 = load i1, ptr %62, align 1
  br i1 %580, label %581, label %582

581:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %582

582:                                              ; preds = %581, %579
  %583 = load i1, ptr %60, align 1
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %585

585:                                              ; preds = %584, %582
  br label %586

586:                                              ; preds = %585, %550
  %587 = load i1, ptr %59, align 1
  br i1 %587, label %588, label %589

588:                                              ; preds = %586
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  br label %589

589:                                              ; preds = %588, %586
  %590 = load i1, ptr %58, align 1
  br i1 %590, label %591, label %592

591:                                              ; preds = %589
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  br label %592

592:                                              ; preds = %591, %589
  %593 = load i1, ptr %56, align 1
  br i1 %593, label %594, label %595

594:                                              ; preds = %592
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  br label %595

595:                                              ; preds = %594, %592
  %596 = load i1, ptr %53, align 1
  br i1 %596, label %597, label %598

597:                                              ; preds = %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %598

598:                                              ; preds = %597, %595
  br label %599

599:                                              ; preds = %598, %546
  %600 = load i1, ptr %52, align 1
  br i1 %600, label %601, label %602

601:                                              ; preds = %599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %602

602:                                              ; preds = %601, %599
  br label %603

603:                                              ; preds = %602, %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  %604 = load i1, ptr %50, align 1
  br i1 %604, label %605, label %606

605:                                              ; preds = %603
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  br label %606

606:                                              ; preds = %605, %603
  %607 = load i1, ptr %48, align 1
  br i1 %607, label %608, label %609

608:                                              ; preds = %606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %609

609:                                              ; preds = %608, %606
  br label %610

610:                                              ; preds = %609, %538
  %611 = load i1, ptr %47, align 1
  br i1 %611, label %612, label %613

612:                                              ; preds = %610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %613

613:                                              ; preds = %612, %610
  br label %614

614:                                              ; preds = %613, %534
  %615 = load i1, ptr %46, align 1
  br i1 %615, label %616, label %617

616:                                              ; preds = %614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %617

617:                                              ; preds = %616, %614
  br label %618

618:                                              ; preds = %617, %530
  %619 = load i1, ptr %45, align 1
  br i1 %619, label %620, label %621

620:                                              ; preds = %618
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  br label %621

621:                                              ; preds = %620, %618
  %622 = load i1, ptr %44, align 1
  br i1 %622, label %623, label %624

623:                                              ; preds = %621
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  br label %624

624:                                              ; preds = %623, %621
  %625 = load i1, ptr %42, align 1
  br i1 %625, label %626, label %627

626:                                              ; preds = %624
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %627

627:                                              ; preds = %626, %624
  %628 = load i1, ptr %40, align 1
  br i1 %628, label %629, label %630

629:                                              ; preds = %627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %630

630:                                              ; preds = %629, %627
  br label %631

631:                                              ; preds = %630, %526
  %632 = load i1, ptr %39, align 1
  br i1 %632, label %633, label %634

633:                                              ; preds = %631
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %634

634:                                              ; preds = %633, %631
  br label %635

635:                                              ; preds = %634, %522
  %636 = load i1, ptr %38, align 1
  br i1 %636, label %637, label %638

637:                                              ; preds = %635
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %638

638:                                              ; preds = %637, %635
  br label %639

639:                                              ; preds = %638, %518
  %640 = load i1, ptr %37, align 1
  br i1 %640, label %641, label %642

641:                                              ; preds = %639
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  br label %642

642:                                              ; preds = %641, %639
  %643 = load i1, ptr %36, align 1
  br i1 %643, label %644, label %645

644:                                              ; preds = %642
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  br label %645

645:                                              ; preds = %644, %642
  %646 = load i1, ptr %34, align 1
  br i1 %646, label %647, label %648

647:                                              ; preds = %645
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %648

648:                                              ; preds = %647, %645
  %649 = load i1, ptr %32, align 1
  br i1 %649, label %650, label %651

650:                                              ; preds = %648
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %651

651:                                              ; preds = %650, %648
  br label %652

652:                                              ; preds = %651, %514
  %653 = load i1, ptr %31, align 1
  br i1 %653, label %654, label %655

654:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %655

655:                                              ; preds = %654, %652
  br label %656

656:                                              ; preds = %655, %510
  %657 = load i1, ptr %28, align 1
  br i1 %657, label %658, label %659

658:                                              ; preds = %656
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  br label %659

659:                                              ; preds = %658, %656
  %660 = load i1, ptr %27, align 1
  br i1 %660, label %661, label %662

661:                                              ; preds = %659
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  br label %662

662:                                              ; preds = %661, %659
  %663 = load i1, ptr %25, align 1
  br i1 %663, label %664, label %665

664:                                              ; preds = %662
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br label %665

665:                                              ; preds = %664, %662
  %666 = load i1, ptr %23, align 1
  br i1 %666, label %667, label %668

667:                                              ; preds = %665
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  br label %668

668:                                              ; preds = %667, %665
  %669 = load i1, ptr %21, align 1
  br i1 %669, label %670, label %671

670:                                              ; preds = %668
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  br label %671

671:                                              ; preds = %670, %668
  %672 = load i1, ptr %19, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %674

674:                                              ; preds = %673, %671
  %675 = load i1, ptr %17, align 1
  br i1 %675, label %676, label %677

676:                                              ; preds = %674
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  br label %677

677:                                              ; preds = %676, %674
  %678 = load i1, ptr %15, align 1
  br i1 %678, label %679, label %680

679:                                              ; preds = %677
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  br label %680

680:                                              ; preds = %679, %677
  br label %852

681:                                              ; preds = %380
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %29, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %30, align 4
  br label %827

685:                                              ; preds = %381
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %29, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %30, align 4
  br label %823

689:                                              ; preds = %382
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %29, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %30, align 4
  br label %810

693:                                              ; preds = %383
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %29, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %30, align 4
  br label %806

697:                                              ; preds = %384
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %29, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %30, align 4
  br label %802

701:                                              ; preds = %385
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %29, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %30, align 4
  br label %789

705:                                              ; preds = %386
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %29, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %30, align 4
  br label %785

709:                                              ; preds = %387
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %29, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %30, align 4
  br label %781

713:                                              ; preds = %388
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %29, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %30, align 4
  br label %774

717:                                              ; preds = %389
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %29, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %30, align 4
  br label %770

721:                                              ; preds = %390
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %29, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %30, align 4
  br label %757

725:                                              ; preds = %391
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %29, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %30, align 4
  br label %744

729:                                              ; preds = %392
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %29, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %30, align 4
  br label %740

733:                                              ; preds = %393
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %29, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %30, align 4
  %737 = load i1, ptr %120, align 1
  br i1 %737, label %738, label %739

738:                                              ; preds = %733
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %739

739:                                              ; preds = %738, %733
  br label %740

740:                                              ; preds = %739, %729
  %741 = load i1, ptr %119, align 1
  br i1 %741, label %742, label %743

742:                                              ; preds = %740
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %743

743:                                              ; preds = %742, %740
  br label %744

744:                                              ; preds = %743, %725
  %745 = load i1, ptr %118, align 1
  br i1 %745, label %746, label %747

746:                                              ; preds = %744
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #8
  br label %747

747:                                              ; preds = %746, %744
  %748 = load i1, ptr %117, align 1
  br i1 %748, label %749, label %750

749:                                              ; preds = %747
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #8
  br label %750

750:                                              ; preds = %749, %747
  %751 = load i1, ptr %115, align 1
  br i1 %751, label %752, label %753

752:                                              ; preds = %750
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #8
  br label %753

753:                                              ; preds = %752, %750
  %754 = load i1, ptr %113, align 1
  br i1 %754, label %755, label %756

755:                                              ; preds = %753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %756

756:                                              ; preds = %755, %753
  br label %757

757:                                              ; preds = %756, %721
  %758 = load i1, ptr %112, align 1
  br i1 %758, label %759, label %760

759:                                              ; preds = %757
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #8
  br label %760

760:                                              ; preds = %759, %757
  %761 = load i1, ptr %111, align 1
  br i1 %761, label %762, label %763

762:                                              ; preds = %760
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #8
  br label %763

763:                                              ; preds = %762, %760
  %764 = load i1, ptr %109, align 1
  br i1 %764, label %765, label %766

765:                                              ; preds = %763
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #8
  br label %766

766:                                              ; preds = %765, %763
  %767 = load i1, ptr %106, align 1
  br i1 %767, label %768, label %769

768:                                              ; preds = %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %769

769:                                              ; preds = %768, %766
  br label %770

770:                                              ; preds = %769, %717
  %771 = load i1, ptr %105, align 1
  br i1 %771, label %772, label %773

772:                                              ; preds = %770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %773

773:                                              ; preds = %772, %770
  br label %774

774:                                              ; preds = %773, %713
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #8
  %775 = load i1, ptr %103, align 1
  br i1 %775, label %776, label %777

776:                                              ; preds = %774
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #8
  br label %777

777:                                              ; preds = %776, %774
  %778 = load i1, ptr %101, align 1
  br i1 %778, label %779, label %780

779:                                              ; preds = %777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %780

780:                                              ; preds = %779, %777
  br label %781

781:                                              ; preds = %780, %709
  %782 = load i1, ptr %100, align 1
  br i1 %782, label %783, label %784

783:                                              ; preds = %781
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %784

784:                                              ; preds = %783, %781
  br label %785

785:                                              ; preds = %784, %705
  %786 = load i1, ptr %99, align 1
  br i1 %786, label %787, label %788

787:                                              ; preds = %785
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %788

788:                                              ; preds = %787, %785
  br label %789

789:                                              ; preds = %788, %701
  %790 = load i1, ptr %98, align 1
  br i1 %790, label %791, label %792

791:                                              ; preds = %789
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #8
  br label %792

792:                                              ; preds = %791, %789
  %793 = load i1, ptr %97, align 1
  br i1 %793, label %794, label %795

794:                                              ; preds = %792
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #8
  br label %795

795:                                              ; preds = %794, %792
  %796 = load i1, ptr %95, align 1
  br i1 %796, label %797, label %798

797:                                              ; preds = %795
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  br label %798

798:                                              ; preds = %797, %795
  %799 = load i1, ptr %93, align 1
  br i1 %799, label %800, label %801

800:                                              ; preds = %798
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %801

801:                                              ; preds = %800, %798
  br label %802

802:                                              ; preds = %801, %697
  %803 = load i1, ptr %92, align 1
  br i1 %803, label %804, label %805

804:                                              ; preds = %802
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %805

805:                                              ; preds = %804, %802
  br label %806

806:                                              ; preds = %805, %693
  %807 = load i1, ptr %91, align 1
  br i1 %807, label %808, label %809

808:                                              ; preds = %806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %809

809:                                              ; preds = %808, %806
  br label %810

810:                                              ; preds = %809, %689
  %811 = load i1, ptr %90, align 1
  br i1 %811, label %812, label %813

812:                                              ; preds = %810
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #8
  br label %813

813:                                              ; preds = %812, %810
  %814 = load i1, ptr %89, align 1
  br i1 %814, label %815, label %816

815:                                              ; preds = %813
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #8
  br label %816

816:                                              ; preds = %815, %813
  %817 = load i1, ptr %87, align 1
  br i1 %817, label %818, label %819

818:                                              ; preds = %816
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  br label %819

819:                                              ; preds = %818, %816
  %820 = load i1, ptr %85, align 1
  br i1 %820, label %821, label %822

821:                                              ; preds = %819
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %822

822:                                              ; preds = %821, %819
  br label %823

823:                                              ; preds = %822, %685
  %824 = load i1, ptr %84, align 1
  br i1 %824, label %825, label %826

825:                                              ; preds = %823
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %826

826:                                              ; preds = %825, %823
  br label %827

827:                                              ; preds = %826, %681
  %828 = load i1, ptr %83, align 1
  br i1 %828, label %829, label %830

829:                                              ; preds = %827
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  br label %830

830:                                              ; preds = %829, %827
  %831 = load i1, ptr %82, align 1
  br i1 %831, label %832, label %833

832:                                              ; preds = %830
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  br label %833

833:                                              ; preds = %832, %830
  %834 = load i1, ptr %80, align 1
  br i1 %834, label %835, label %836

835:                                              ; preds = %833
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %836

836:                                              ; preds = %835, %833
  %837 = load i1, ptr %78, align 1
  br i1 %837, label %838, label %839

838:                                              ; preds = %836
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br label %839

839:                                              ; preds = %838, %836
  %840 = load i1, ptr %76, align 1
  br i1 %840, label %841, label %842

841:                                              ; preds = %839
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %842

842:                                              ; preds = %841, %839
  %843 = load i1, ptr %74, align 1
  br i1 %843, label %844, label %845

844:                                              ; preds = %842
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  br label %845

845:                                              ; preds = %844, %842
  %846 = load i1, ptr %72, align 1
  br i1 %846, label %847, label %848

847:                                              ; preds = %845
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %848

848:                                              ; preds = %847, %845
  %849 = load i1, ptr %70, align 1
  br i1 %849, label %850, label %851

850:                                              ; preds = %848
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %851

851:                                              ; preds = %850, %848
  br label %852

852:                                              ; preds = %851, %680
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %1186

853:                                              ; preds = %500, %200
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %854

854:                                              ; preds = %853
  %855 = load i32, ptr %8, align 4, !tbaa !19
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr %8, align 4, !tbaa !19
  br label %194, !llvm.loop !28

857:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #8
  %858 = load double, ptr %6, align 8, !tbaa !9
  %859 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 13
  %860 = load double, ptr %859, align 8, !tbaa !30
  %861 = fdiv double %858, %860
  store double %861, ptr %121, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  store double 1.000000e+00, ptr %122, align 8, !tbaa !9
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %122)
  %863 = load double, ptr %862, align 8, !tbaa !9
  %864 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 14
  store double %863, ptr %864, align 8, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  %865 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 14
  %866 = load double, ptr %865, align 8, !tbaa !31
  %867 = fcmp olt double %866, 1.000000e+00
  store i1 false, ptr %125, align 1
  store i1 false, ptr %127, align 1
  store i1 false, ptr %129, align 1
  store i1 false, ptr %131, align 1
  store i1 false, ptr %133, align 1
  store i1 false, ptr %135, align 1
  store i1 false, ptr %137, align 1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %139, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %142, align 1
  store i1 false, ptr %144, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %146, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %148, align 1
  store i1 false, ptr %150, align 1
  store i1 false, ptr %152, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %154, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %156, align 1
  store i1 false, ptr %158, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #8
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %164, align 1
  store i1 false, ptr %166, align 1
  store i1 false, ptr %167, align 1
  store i1 false, ptr %168, align 1
  store i1 false, ptr %170, align 1
  store i1 false, ptr %172, align 1
  store i1 false, ptr %173, align 1
  store i1 false, ptr %174, align 1
  store i1 false, ptr %175, align 1
  br i1 %867, label %868, label %871

868:                                              ; preds = %857
  %869 = load double, ptr %7, align 8, !tbaa !9
  %870 = fcmp ogt double %869, 0.000000e+00
  br i1 %870, label %887, label %871

871:                                              ; preds = %868, %857
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #8
  store i1 true, ptr %125, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #8
  store i1 true, ptr %127, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #8
  store i1 true, ptr %129, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #8
  store i1 true, ptr %131, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #8
  store i1 true, ptr %133, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #8
  store i1 true, ptr %135, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #8
  store i1 true, ptr %137, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  store i1 true, ptr %138, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %872 unwind label %1015

872:                                              ; preds = %871
  store i1 true, ptr %139, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.1)
          to label %873 unwind label %1019

873:                                              ; preds = %872
  store i1 true, ptr %140, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #8
  store i1 true, ptr %142, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #8
  store i1 true, ptr %144, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  store i1 true, ptr %145, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %874 unwind label %1023

874:                                              ; preds = %873
  store i1 true, ptr %146, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %875 unwind label %1027

875:                                              ; preds = %874
  store i1 true, ptr %147, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.2)
          to label %876 unwind label %1031

876:                                              ; preds = %875
  store i1 true, ptr %148, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #8
  store i1 true, ptr %150, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #8
  store i1 true, ptr %152, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  store i1 true, ptr %153, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %877 unwind label %1035

877:                                              ; preds = %876
  store i1 true, ptr %154, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %149)
          to label %878 unwind label %1039

878:                                              ; preds = %877
  store i1 true, ptr %155, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.4)
          to label %879 unwind label %1043

879:                                              ; preds = %878
  store i1 true, ptr %156, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %157) #8
  store i1 true, ptr %158, align 1
  store i32 247, ptr %159, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 4 dereferenceable(4) %159)
          to label %880 unwind label %1047

880:                                              ; preds = %879
  store i1 true, ptr %160, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %157)
          to label %881 unwind label %1051

881:                                              ; preds = %880
  store i1 true, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #8
  store i1 true, ptr %164, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #8
  store i1 true, ptr %166, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #8
  store i1 true, ptr %167, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %882 unwind label %1055

882:                                              ; preds = %881
  store i1 true, ptr %168, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #8
  store i1 true, ptr %170, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #8
  store i1 true, ptr %172, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #8
  store i1 true, ptr %173, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %171)
          to label %883 unwind label %1059

883:                                              ; preds = %882
  store i1 true, ptr %174, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %884 unwind label %1063

884:                                              ; preds = %883
  store i1 true, ptr %175, align 1
  %885 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %123, ptr noundef %162, i32 noundef 0)
          to label %886 unwind label %1067

886:                                              ; preds = %884
  br label %887

887:                                              ; preds = %886, %868
  %888 = phi i1 [ true, %868 ], [ %885, %886 ]
  %889 = xor i1 %888, true
  %890 = load i1, ptr %175, align 1
  br i1 %890, label %891, label %892

891:                                              ; preds = %887
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #8
  br label %892

892:                                              ; preds = %891, %887
  %893 = load i1, ptr %174, align 1
  br i1 %893, label %894, label %895

894:                                              ; preds = %892
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  br label %895

895:                                              ; preds = %894, %892
  %896 = load i1, ptr %173, align 1
  br i1 %896, label %897, label %898

897:                                              ; preds = %895
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #8
  br label %898

898:                                              ; preds = %897, %895
  %899 = load i1, ptr %172, align 1
  br i1 %899, label %900, label %901

900:                                              ; preds = %898
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #8
  br label %901

901:                                              ; preds = %900, %898
  %902 = load i1, ptr %170, align 1
  br i1 %902, label %903, label %904

903:                                              ; preds = %901
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #8
  br label %904

904:                                              ; preds = %903, %901
  %905 = load i1, ptr %168, align 1
  br i1 %905, label %906, label %907

906:                                              ; preds = %904
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %907

907:                                              ; preds = %906, %904
  %908 = load i1, ptr %167, align 1
  br i1 %908, label %909, label %910

909:                                              ; preds = %907
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #8
  br label %910

910:                                              ; preds = %909, %907
  %911 = load i1, ptr %166, align 1
  br i1 %911, label %912, label %913

912:                                              ; preds = %910
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #8
  br label %913

913:                                              ; preds = %912, %910
  %914 = load i1, ptr %164, align 1
  br i1 %914, label %915, label %916

915:                                              ; preds = %913
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br label %916

916:                                              ; preds = %915, %913
  %917 = load i1, ptr %161, align 1
  br i1 %917, label %918, label %919

918:                                              ; preds = %916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  br label %919

919:                                              ; preds = %918, %916
  %920 = load i1, ptr %160, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %919
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  br label %922

922:                                              ; preds = %921, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #8
  %923 = load i1, ptr %158, align 1
  br i1 %923, label %924, label %925

924:                                              ; preds = %922
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #8
  br label %925

925:                                              ; preds = %924, %922
  %926 = load i1, ptr %156, align 1
  br i1 %926, label %927, label %928

927:                                              ; preds = %925
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  br label %928

928:                                              ; preds = %927, %925
  %929 = load i1, ptr %155, align 1
  br i1 %929, label %930, label %931

930:                                              ; preds = %928
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %931

931:                                              ; preds = %930, %928
  %932 = load i1, ptr %154, align 1
  br i1 %932, label %933, label %934

933:                                              ; preds = %931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  br label %934

934:                                              ; preds = %933, %931
  %935 = load i1, ptr %153, align 1
  br i1 %935, label %936, label %937

936:                                              ; preds = %934
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  br label %937

937:                                              ; preds = %936, %934
  %938 = load i1, ptr %152, align 1
  br i1 %938, label %939, label %940

939:                                              ; preds = %937
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #8
  br label %940

940:                                              ; preds = %939, %937
  %941 = load i1, ptr %150, align 1
  br i1 %941, label %942, label %943

942:                                              ; preds = %940
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %943

943:                                              ; preds = %942, %940
  %944 = load i1, ptr %148, align 1
  br i1 %944, label %945, label %946

945:                                              ; preds = %943
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %946

946:                                              ; preds = %945, %943
  %947 = load i1, ptr %147, align 1
  br i1 %947, label %948, label %949

948:                                              ; preds = %946
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  br label %949

949:                                              ; preds = %948, %946
  %950 = load i1, ptr %146, align 1
  br i1 %950, label %951, label %952

951:                                              ; preds = %949
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %952

952:                                              ; preds = %951, %949
  %953 = load i1, ptr %145, align 1
  br i1 %953, label %954, label %955

954:                                              ; preds = %952
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  br label %955

955:                                              ; preds = %954, %952
  %956 = load i1, ptr %144, align 1
  br i1 %956, label %957, label %958

957:                                              ; preds = %955
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %958

958:                                              ; preds = %957, %955
  %959 = load i1, ptr %142, align 1
  br i1 %959, label %960, label %961

960:                                              ; preds = %958
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %961

961:                                              ; preds = %960, %958
  %962 = load i1, ptr %140, align 1
  br i1 %962, label %963, label %964

963:                                              ; preds = %961
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %964

964:                                              ; preds = %963, %961
  %965 = load i1, ptr %139, align 1
  br i1 %965, label %966, label %967

966:                                              ; preds = %964
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %967

967:                                              ; preds = %966, %964
  %968 = load i1, ptr %138, align 1
  br i1 %968, label %969, label %970

969:                                              ; preds = %967
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  br label %970

970:                                              ; preds = %969, %967
  %971 = load i1, ptr %137, align 1
  br i1 %971, label %972, label %973

972:                                              ; preds = %970
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  br label %973

973:                                              ; preds = %972, %970
  %974 = load i1, ptr %135, align 1
  br i1 %974, label %975, label %976

975:                                              ; preds = %973
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  br label %976

976:                                              ; preds = %975, %973
  %977 = load i1, ptr %133, align 1
  br i1 %977, label %978, label %979

978:                                              ; preds = %976
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %979

979:                                              ; preds = %978, %976
  %980 = load i1, ptr %131, align 1
  br i1 %980, label %981, label %982

981:                                              ; preds = %979
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  br label %982

982:                                              ; preds = %981, %979
  %983 = load i1, ptr %129, align 1
  br i1 %983, label %984, label %985

984:                                              ; preds = %982
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  br label %985

985:                                              ; preds = %984, %982
  %986 = load i1, ptr %127, align 1
  br i1 %986, label %987, label %988

987:                                              ; preds = %985
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br label %988

988:                                              ; preds = %987, %985
  %989 = load i1, ptr %125, align 1
  br i1 %989, label %990, label %991

990:                                              ; preds = %988
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  br label %991

991:                                              ; preds = %990, %988
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #8
  %992 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 14
  %993 = load double, ptr %992, align 8, !tbaa !31
  %994 = fsub double 1.000000e+00, %993
  store double %994, ptr %177, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #8
  store double 0.000000e+00, ptr %178, align 8, !tbaa !9
  %995 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull align 8 dereferenceable(8) %178)
  %996 = load double, ptr %995, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #8
  store double %996, ptr %176, align 8, !tbaa !9
  %997 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 13
  %998 = load double, ptr %997, align 8, !tbaa !30
  %999 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 4
  %1000 = load ptr, ptr %999, align 8, !tbaa !11
  %1001 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %1000)
  %1002 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %1001)
  %1003 = load ptr, ptr %179, align 8, !tbaa !32
  %1004 = getelementptr inbounds ptr, ptr %1003, i64 23
  %1005 = load ptr, ptr %1004, align 8
  %1006 = call noundef double %1005(ptr noundef nonnull align 8 dereferenceable(152) %179, double noundef %998, double noundef %1002)
  %1007 = load double, ptr %176, align 8, !tbaa !9
  %1008 = fmul double %1006, %1007
  %1009 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 18
  store double %1008, ptr %1009, align 8, !tbaa !34
  %1010 = load double, ptr %7, align 8, !tbaa !9
  %1011 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 19
  %1012 = getelementptr inbounds %"struct.std::pair", ptr %1011, i32 0, i32 0
  store double %1010, ptr %1012, align 8, !tbaa !35
  %1013 = getelementptr inbounds %class.ElemModel, ptr %179, i32 0, i32 19
  %1014 = getelementptr inbounds %"struct.std::pair", ptr %1013, i32 0, i32 1
  store double 0.000000e+00, ptr %1014, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  ret void

1015:                                             ; preds = %871
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %29, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %30, align 4
  br label %1161

1019:                                             ; preds = %872
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %29, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %30, align 4
  br label %1157

1023:                                             ; preds = %873
  %1024 = landingpad { ptr, i32 }
          cleanup
  %1025 = extractvalue { ptr, i32 } %1024, 0
  store ptr %1025, ptr %29, align 8
  %1026 = extractvalue { ptr, i32 } %1024, 1
  store i32 %1026, ptr %30, align 4
  br label %1144

1027:                                             ; preds = %874
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %29, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %30, align 4
  br label %1140

1031:                                             ; preds = %875
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %29, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %30, align 4
  br label %1136

1035:                                             ; preds = %876
  %1036 = landingpad { ptr, i32 }
          cleanup
  %1037 = extractvalue { ptr, i32 } %1036, 0
  store ptr %1037, ptr %29, align 8
  %1038 = extractvalue { ptr, i32 } %1036, 1
  store i32 %1038, ptr %30, align 4
  br label %1123

1039:                                             ; preds = %877
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %29, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %30, align 4
  br label %1119

1043:                                             ; preds = %878
  %1044 = landingpad { ptr, i32 }
          cleanup
  %1045 = extractvalue { ptr, i32 } %1044, 0
  store ptr %1045, ptr %29, align 8
  %1046 = extractvalue { ptr, i32 } %1044, 1
  store i32 %1046, ptr %30, align 4
  br label %1115

1047:                                             ; preds = %879
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %29, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %30, align 4
  br label %1108

1051:                                             ; preds = %880
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %29, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %30, align 4
  br label %1104

1055:                                             ; preds = %881
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %29, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %30, align 4
  br label %1091

1059:                                             ; preds = %882
  %1060 = landingpad { ptr, i32 }
          cleanup
  %1061 = extractvalue { ptr, i32 } %1060, 0
  store ptr %1061, ptr %29, align 8
  %1062 = extractvalue { ptr, i32 } %1060, 1
  store i32 %1062, ptr %30, align 4
  br label %1078

1063:                                             ; preds = %883
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %29, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %30, align 4
  br label %1074

1067:                                             ; preds = %884
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %29, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %30, align 4
  %1071 = load i1, ptr %175, align 1
  br i1 %1071, label %1072, label %1073

1072:                                             ; preds = %1067
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #8
  br label %1073

1073:                                             ; preds = %1072, %1067
  br label %1074

1074:                                             ; preds = %1073, %1063
  %1075 = load i1, ptr %174, align 1
  br i1 %1075, label %1076, label %1077

1076:                                             ; preds = %1074
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  br label %1077

1077:                                             ; preds = %1076, %1074
  br label %1078

1078:                                             ; preds = %1077, %1059
  %1079 = load i1, ptr %173, align 1
  br i1 %1079, label %1080, label %1081

1080:                                             ; preds = %1078
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #8
  br label %1081

1081:                                             ; preds = %1080, %1078
  %1082 = load i1, ptr %172, align 1
  br i1 %1082, label %1083, label %1084

1083:                                             ; preds = %1081
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #8
  br label %1084

1084:                                             ; preds = %1083, %1081
  %1085 = load i1, ptr %170, align 1
  br i1 %1085, label %1086, label %1087

1086:                                             ; preds = %1084
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #8
  br label %1087

1087:                                             ; preds = %1086, %1084
  %1088 = load i1, ptr %168, align 1
  br i1 %1088, label %1089, label %1090

1089:                                             ; preds = %1087
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %1090

1090:                                             ; preds = %1089, %1087
  br label %1091

1091:                                             ; preds = %1090, %1055
  %1092 = load i1, ptr %167, align 1
  br i1 %1092, label %1093, label %1094

1093:                                             ; preds = %1091
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #8
  br label %1094

1094:                                             ; preds = %1093, %1091
  %1095 = load i1, ptr %166, align 1
  br i1 %1095, label %1096, label %1097

1096:                                             ; preds = %1094
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #8
  br label %1097

1097:                                             ; preds = %1096, %1094
  %1098 = load i1, ptr %164, align 1
  br i1 %1098, label %1099, label %1100

1099:                                             ; preds = %1097
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br label %1100

1100:                                             ; preds = %1099, %1097
  %1101 = load i1, ptr %161, align 1
  br i1 %1101, label %1102, label %1103

1102:                                             ; preds = %1100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  br label %1103

1103:                                             ; preds = %1102, %1100
  br label %1104

1104:                                             ; preds = %1103, %1051
  %1105 = load i1, ptr %160, align 1
  br i1 %1105, label %1106, label %1107

1106:                                             ; preds = %1104
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #8
  br label %1107

1107:                                             ; preds = %1106, %1104
  br label %1108

1108:                                             ; preds = %1107, %1047
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #8
  %1109 = load i1, ptr %158, align 1
  br i1 %1109, label %1110, label %1111

1110:                                             ; preds = %1108
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #8
  br label %1111

1111:                                             ; preds = %1110, %1108
  %1112 = load i1, ptr %156, align 1
  br i1 %1112, label %1113, label %1114

1113:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  br label %1114

1114:                                             ; preds = %1113, %1111
  br label %1115

1115:                                             ; preds = %1114, %1043
  %1116 = load i1, ptr %155, align 1
  br i1 %1116, label %1117, label %1118

1117:                                             ; preds = %1115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %1118

1118:                                             ; preds = %1117, %1115
  br label %1119

1119:                                             ; preds = %1118, %1039
  %1120 = load i1, ptr %154, align 1
  br i1 %1120, label %1121, label %1122

1121:                                             ; preds = %1119
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  br label %1122

1122:                                             ; preds = %1121, %1119
  br label %1123

1123:                                             ; preds = %1122, %1035
  %1124 = load i1, ptr %153, align 1
  br i1 %1124, label %1125, label %1126

1125:                                             ; preds = %1123
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  br label %1126

1126:                                             ; preds = %1125, %1123
  %1127 = load i1, ptr %152, align 1
  br i1 %1127, label %1128, label %1129

1128:                                             ; preds = %1126
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #8
  br label %1129

1129:                                             ; preds = %1128, %1126
  %1130 = load i1, ptr %150, align 1
  br i1 %1130, label %1131, label %1132

1131:                                             ; preds = %1129
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %1132

1132:                                             ; preds = %1131, %1129
  %1133 = load i1, ptr %148, align 1
  br i1 %1133, label %1134, label %1135

1134:                                             ; preds = %1132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %1135

1135:                                             ; preds = %1134, %1132
  br label %1136

1136:                                             ; preds = %1135, %1031
  %1137 = load i1, ptr %147, align 1
  br i1 %1137, label %1138, label %1139

1138:                                             ; preds = %1136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  br label %1139

1139:                                             ; preds = %1138, %1136
  br label %1140

1140:                                             ; preds = %1139, %1027
  %1141 = load i1, ptr %146, align 1
  br i1 %1141, label %1142, label %1143

1142:                                             ; preds = %1140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %1143

1143:                                             ; preds = %1142, %1140
  br label %1144

1144:                                             ; preds = %1143, %1023
  %1145 = load i1, ptr %145, align 1
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1144
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  br label %1147

1147:                                             ; preds = %1146, %1144
  %1148 = load i1, ptr %144, align 1
  br i1 %1148, label %1149, label %1150

1149:                                             ; preds = %1147
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %1150

1150:                                             ; preds = %1149, %1147
  %1151 = load i1, ptr %142, align 1
  br i1 %1151, label %1152, label %1153

1152:                                             ; preds = %1150
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1153

1153:                                             ; preds = %1152, %1150
  %1154 = load i1, ptr %140, align 1
  br i1 %1154, label %1155, label %1156

1155:                                             ; preds = %1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %1156

1156:                                             ; preds = %1155, %1153
  br label %1157

1157:                                             ; preds = %1156, %1019
  %1158 = load i1, ptr %139, align 1
  br i1 %1158, label %1159, label %1160

1159:                                             ; preds = %1157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %1160

1160:                                             ; preds = %1159, %1157
  br label %1161

1161:                                             ; preds = %1160, %1015
  %1162 = load i1, ptr %138, align 1
  br i1 %1162, label %1163, label %1164

1163:                                             ; preds = %1161
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  br label %1164

1164:                                             ; preds = %1163, %1161
  %1165 = load i1, ptr %137, align 1
  br i1 %1165, label %1166, label %1167

1166:                                             ; preds = %1164
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  br label %1167

1167:                                             ; preds = %1166, %1164
  %1168 = load i1, ptr %135, align 1
  br i1 %1168, label %1169, label %1170

1169:                                             ; preds = %1167
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #8
  br label %1170

1170:                                             ; preds = %1169, %1167
  %1171 = load i1, ptr %133, align 1
  br i1 %1171, label %1172, label %1173

1172:                                             ; preds = %1170
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #8
  br label %1173

1173:                                             ; preds = %1172, %1170
  %1174 = load i1, ptr %131, align 1
  br i1 %1174, label %1175, label %1176

1175:                                             ; preds = %1173
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #8
  br label %1176

1176:                                             ; preds = %1175, %1173
  %1177 = load i1, ptr %129, align 1
  br i1 %1177, label %1178, label %1179

1178:                                             ; preds = %1176
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #8
  br label %1179

1179:                                             ; preds = %1178, %1176
  %1180 = load i1, ptr %127, align 1
  br i1 %1180, label %1181, label %1182

1181:                                             ; preds = %1179
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br label %1182

1182:                                             ; preds = %1181, %1179
  %1183 = load i1, ptr %125, align 1
  br i1 %1183, label %1184, label %1185

1184:                                             ; preds = %1182
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  br label %1185

1185:                                             ; preds = %1184, %1182
  br label %1186

1186:                                             ; preds = %1185, %852
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load ptr, ptr %29, align 8
  %1189 = load i32, ptr %30, align 4
  %1190 = insertvalue { ptr, i32 } poison, ptr %1188, 0
  %1191 = insertvalue { ptr, i32 } %1190, i32 %1189, 1
  resume { ptr, i32 } %1191
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984)) #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_Z17cornerConductanceddddd(double noundef, double noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972)) #0 align 2

declare void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK9ElemModel3RRREv(ptr noundef nonnull align 8 dereferenceable(152)) #0 align 2

; Function Attrs: nounwind
declare double @tan(double noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) #7

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

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

attributes #0 = { 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 #1 = { 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 #2 = { 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { "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 = { 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 #7 = { 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 #8 = { 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 = !{!"double", !7, i64 0}
!11 = !{!12, !6, i64 32}
!12 = !{!"_ZTS9ElemModel", !10, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !6, i64 48, !13, i64 56, !13, i64 57, !13, i64 58, !13, i64 59, !14, i64 60, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !15, i64 120, !15, i64 136}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSSt4pairIddE", !10, i64 0, !10, i64 8}
!16 = !{!17, !10, i64 168}
!17 = !{!"_ZTS8VoidElem", !12, i64 0, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176}
!18 = !{!17, !10, i64 176}
!19 = !{!14, !14, i64 0}
!20 = !{!21, !14, i64 184}
!21 = !{!"_ZTS7Polygon", !17, i64 0, !14, i64 184, !22, i64 192, !6, i64 216, !6, i64 224, !26, i64 232, !7, i64 234, !10, i64 240}
!22 = !{!"_ZTSSt6vectorIdSaIdEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"short", !7, i64 0}
!27 = !{!21, !6, i64 216}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!12, !10, i64 72}
!31 = !{!12, !10, i64 80}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !8, i64 0}
!34 = !{!12, !10, i64 112}
!35 = !{!12, !10, i64 120}
!36 = !{!12, !10, i64 128}


; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.5" = type { i8 }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair.24" }
%"struct.std::pair.24" = type { i32, double }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Polygon27calcR_oilWithWaterInCornersEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca double, align 8
  %4 = alloca double, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.5", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.5", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.5", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.5", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.5", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.5", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.5", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.5", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.5", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.5", align 1
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.5", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator.5", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator.5", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca i32, align 4
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.5", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.5", align 1
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = getelementptr inbounds i8, ptr %0, i64 32
  %67 = load ptr, ptr %66, align 8, !tbaa !5
  %68 = tail call noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972) %67)
  %69 = load ptr, ptr %66, align 8, !tbaa !5
  %70 = tail call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %69)
  %71 = icmp eq ptr %68, %70
  %.0.in.v = select i1 %71, i64 168, i64 176
  %.0.in = getelementptr inbounds i8, ptr %0, i64 %.0.in.v
  %.0 = load double, ptr %.0.in, align 8, !tbaa !14
  %72 = getelementptr inbounds i8, ptr %0, i64 184
  %73 = load i32, ptr %72, align 8, !tbaa !15
  %74 = icmp sgt i32 %73, 0
  br i1 %74, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %2
  %75 = getelementptr inbounds i8, ptr %0, i64 216
  %76 = getelementptr inbounds i8, ptr %0, i64 192
  br label %85

._crit_edge:                                      ; preds = %240, %2
  %.0373.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1374, %240 ]
  %.0371.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1372, %240 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  %77 = getelementptr inbounds i8, ptr %0, i64 72
  %78 = load double, ptr %77, align 8, !tbaa !23
  %79 = fdiv double %.0371.lcssa, %78
  store double %79, ptr %43, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  store double 1.000000e+00, ptr %44, align 8, !tbaa !14
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44)
  %81 = load double, ptr %80, align 8, !tbaa !14
  %82 = getelementptr inbounds i8, ptr %0, i64 80
  store double %81, ptr %82, align 8, !tbaa !24
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  %83 = fcmp uge double %81, 1.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #8
  %84 = fcmp ule double %.0373.lcssa, 0.000000e+00
  %or.cond.not = select i1 %83, i1 true, i1 %84
  br i1 %or.cond.not, label %244, label %259

85:                                               ; preds = %.lr.ph, %240
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %240 ]
  %.0371586 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1372, %240 ]
  %.0373585 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1374, %240 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  store double 0.000000e+00, ptr %3, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  store double %.0, ptr %4, align 8, !tbaa !14
  %86 = load ptr, ptr %75, align 8, !tbaa !25
  %87 = getelementptr inbounds %class.CornerApex, ptr %86, i64 %indvars.iv
  %88 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %87)
  br i1 %88, label %89, label %240

89:                                               ; preds = %85
  %90 = load ptr, ptr %75, align 8, !tbaa !25
  %91 = getelementptr inbounds %class.CornerApex, ptr %90, i64 %indvars.iv
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef %indvars.iv) #8
  %93 = load double, ptr %92, align 8, !tbaa !14
  %94 = load ptr, ptr %66, align 8, !tbaa !5
  %95 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %94)
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %91, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, double noundef %1, double noundef %93, double noundef %95, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %96 = load double, ptr %3, align 8, !tbaa !14
  %97 = call noundef double @_ZNK9ElemModel3RRREv(ptr noundef nonnull align 8 dereferenceable(152) %0)
  %98 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef 0) #8
  %99 = load double, ptr %98, align 8, !tbaa !14
  %100 = call double @tan(double noundef %99) #8
  %101 = fdiv double %97, %100
  %102 = fmul double %101, 2.000000e+00
  %103 = fcmp ogt double %96, %102
  br i1 %103, label %104, label %106

104:                                              ; preds = %89
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.11)
  br label %106

106:                                              ; preds = %104, %89
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef %indvars.iv) #8
  %108 = load double, ptr %107, align 8, !tbaa !14
  %109 = load double, ptr %4, align 8, !tbaa !14
  %110 = call noundef double @_Z17dimLessCornerAreadd(double noundef %108, double noundef %109)
  %111 = load double, ptr %3, align 8, !tbaa !14
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef %indvars.iv) #8
  %113 = load double, ptr %112, align 8, !tbaa !14
  %114 = load double, ptr %4, align 8, !tbaa !14
  %115 = load ptr, ptr %66, align 8, !tbaa !5
  %116 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %115)
  %117 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %116)
  %118 = call noundef double @_Z17cornerConductanceddddd(double noundef %110, double noundef %111, double noundef %113, double noundef %114, double noundef %117)
  %119 = fcmp ule double %118, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #8
  br i1 %119, label %120, label %135

120:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %121 unwind label %157

121:                                              ; preds = %120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.1)
          to label %122 unwind label %159

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %123 unwind label %161

123:                                              ; preds = %122
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %124 unwind label %163

124:                                              ; preds = %123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2)
          to label %125 unwind label %165

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %126 unwind label %167

126:                                              ; preds = %125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %127 unwind label %169

127:                                              ; preds = %126
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.4)
          to label %128 unwind label %171

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  store i32 237, ptr %18, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %129 unwind label %173

129:                                              ; preds = %128
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %130 unwind label %175

130:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %131 unwind label %177

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %132 unwind label %179

132:                                              ; preds = %131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %133 unwind label %181

133:                                              ; preds = %132
  %134 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %5, ptr noundef nonnull %19, i32 noundef 0)
          to label %.critedge432 unwind label %183

135:                                              ; preds = %106
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  br label %.critedge453

.critedge432:                                     ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %.critedge453

.critedge453:                                     ; preds = %135, %.critedge432
  %136 = fcmp uge double %110, 1.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #8
  br i1 %136, label %137, label %152

137:                                              ; preds = %.critedge453
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %138 unwind label %198

138:                                              ; preds = %137
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1)
          to label %139 unwind label %200

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %140 unwind label %202

140:                                              ; preds = %139
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %141 unwind label %204

141:                                              ; preds = %140
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2)
          to label %142 unwind label %206

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %143 unwind label %208

143:                                              ; preds = %142
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %144 unwind label %210

144:                                              ; preds = %143
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.4)
          to label %145 unwind label %212

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  store i32 238, ptr %37, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %146 unwind label %214

146:                                              ; preds = %145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %147 unwind label %216

147:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %148 unwind label %218

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %149 unwind label %220

149:                                              ; preds = %148
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %150 unwind label %222

150:                                              ; preds = %149
  %151 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %24, ptr noundef nonnull %38, i32 noundef 0)
          to label %.critedge468 unwind label %224

152:                                              ; preds = %.critedge453
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  br label %.critedge489

.critedge468:                                     ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %.critedge489

.critedge489:                                     ; preds = %152, %.critedge468
  %153 = fadd double %.0373585, %118
  %154 = load double, ptr %3, align 8, !tbaa !14
  %155 = fmul double %154, %154
  %156 = call double @llvm.fmuladd.f64(double %155, double %110, double %.0371586)
  br label %240

157:                                              ; preds = %120
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %197

159:                                              ; preds = %121
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %196

161:                                              ; preds = %122
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %195

163:                                              ; preds = %123
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %194

165:                                              ; preds = %124
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %193

167:                                              ; preds = %125
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %192

169:                                              ; preds = %126
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %191

171:                                              ; preds = %127
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %190

173:                                              ; preds = %128
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %189

175:                                              ; preds = %129
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %188

177:                                              ; preds = %130
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %187

179:                                              ; preds = %131
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

181:                                              ; preds = %132
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %133
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %185

185:                                              ; preds = %181, %183
  %.pn390 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %186

186:                                              ; preds = %179, %185
  %.pn390.pn = phi { ptr, i32 } [ %.pn390, %185 ], [ %180, %179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %187

187:                                              ; preds = %177, %186
  %.pn390.pn.pn = phi { ptr, i32 } [ %.pn390.pn, %186 ], [ %178, %177 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %188

188:                                              ; preds = %175, %187
  %.pn390.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn, %187 ], [ %176, %175 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %189

189:                                              ; preds = %188, %173
  %.pn390.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn, %188 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  br label %190

190:                                              ; preds = %171, %189
  %.pn390.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn, %189 ], [ %172, %171 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %191

191:                                              ; preds = %169, %190
  %.pn390.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn, %190 ], [ %170, %169 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %192

192:                                              ; preds = %167, %191
  %.pn390.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn, %191 ], [ %168, %167 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %193

193:                                              ; preds = %165, %192
  %.pn390.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn.pn, %192 ], [ %166, %165 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %194

194:                                              ; preds = %163, %193
  %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn.pn.pn, %193 ], [ %164, %163 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %195

195:                                              ; preds = %161, %194
  %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn, %194 ], [ %162, %161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %196

196:                                              ; preds = %159, %195
  %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %195 ], [ %160, %159 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %197

197:                                              ; preds = %157, %196
  %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %196 ], [ %158, %157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %239

198:                                              ; preds = %137
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %238

200:                                              ; preds = %138
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %237

202:                                              ; preds = %139
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %236

204:                                              ; preds = %140
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %235

206:                                              ; preds = %141
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %234

208:                                              ; preds = %142
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %233

210:                                              ; preds = %143
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %232

212:                                              ; preds = %144
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %231

214:                                              ; preds = %145
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %230

216:                                              ; preds = %146
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %229

218:                                              ; preds = %147
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %228

220:                                              ; preds = %148
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %227

222:                                              ; preds = %149
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %150
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %226

226:                                              ; preds = %222, %224
  %.pn404 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %227

227:                                              ; preds = %220, %226
  %.pn404.pn = phi { ptr, i32 } [ %.pn404, %226 ], [ %221, %220 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %228

228:                                              ; preds = %218, %227
  %.pn404.pn.pn = phi { ptr, i32 } [ %.pn404.pn, %227 ], [ %219, %218 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %229

229:                                              ; preds = %216, %228
  %.pn404.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn, %228 ], [ %217, %216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %230

230:                                              ; preds = %229, %214
  %.pn404.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn, %229 ], [ %215, %214 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %231

231:                                              ; preds = %212, %230
  %.pn404.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn, %230 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %232

232:                                              ; preds = %210, %231
  %.pn404.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn, %231 ], [ %211, %210 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %233

233:                                              ; preds = %208, %232
  %.pn404.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn, %232 ], [ %209, %208 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %234

234:                                              ; preds = %206, %233
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn, %233 ], [ %207, %206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %235

235:                                              ; preds = %204, %234
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn, %234 ], [ %205, %204 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %236

236:                                              ; preds = %202, %235
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn, %235 ], [ %203, %202 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %237

237:                                              ; preds = %200, %236
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %236 ], [ %201, %200 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %238

238:                                              ; preds = %198, %237
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %237 ], [ %199, %198 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %239

239:                                              ; preds = %238, %197
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %238 ], [ %.pn390.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %197 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  br label %317

240:                                              ; preds = %.critedge489, %85
  %.1374 = phi double [ %153, %.critedge489 ], [ %.0373585, %85 ]
  %.1372 = phi double [ %156, %.critedge489 ], [ %.0371586, %85 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %241 = load i32, ptr %72, align 8, !tbaa !15
  %242 = sext i32 %241 to i64
  %243 = icmp slt i64 %indvars.iv.next, %242
  br i1 %243, label %85, label %._crit_edge, !llvm.loop !27

244:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %245 unwind label %276

245:                                              ; preds = %244
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.1)
          to label %246 unwind label %278

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @__FUNCTION__._ZN7Polygon27calcR_oilWithWaterInCornersEd, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %247 unwind label %280

247:                                              ; preds = %246
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %248 unwind label %282

248:                                              ; preds = %247
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.2)
          to label %249 unwind label %284

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %250 unwind label %286

250:                                              ; preds = %249
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %251 unwind label %288

251:                                              ; preds = %250
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.4)
          to label %252 unwind label %290

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  store i32 247, ptr %58, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %253 unwind label %292

253:                                              ; preds = %252
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %254 unwind label %294

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %255 unwind label %296

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %256 unwind label %298

256:                                              ; preds = %255
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %257 unwind label %300

257:                                              ; preds = %256
  %258 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %45, ptr noundef nonnull %59, i32 noundef 0)
          to label %.critedge504 unwind label %302

259:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  br label %.critedge525

.critedge504:                                     ; preds = %257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  %.pre = load double, ptr %82, align 8, !tbaa !24
  br label %.critedge525

.critedge525:                                     ; preds = %259, %.critedge504
  %260 = phi double [ %81, %259 ], [ %.pre, %.critedge504 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #8
  %261 = fsub double 1.000000e+00, %260
  store double %261, ptr %64, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  store double 0.000000e+00, ptr %65, align 8, !tbaa !14
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65)
  %263 = load double, ptr %262, align 8, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  %264 = load double, ptr %77, align 8, !tbaa !23
  %265 = load ptr, ptr %66, align 8, !tbaa !5
  %266 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %265)
  %267 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %266)
  %268 = load ptr, ptr %0, align 8, !tbaa !29
  %269 = getelementptr inbounds i8, ptr %268, i64 184
  %270 = load ptr, ptr %269, align 8
  %271 = call noundef double %270(ptr noundef nonnull align 8 dereferenceable(152) %0, double noundef %264, double noundef %267)
  %272 = fmul double %263, %271
  %273 = getelementptr inbounds i8, ptr %0, i64 112
  store double %272, ptr %273, align 8, !tbaa !31
  %274 = getelementptr inbounds i8, ptr %0, i64 120
  store double %.0373.lcssa, ptr %274, align 8, !tbaa !32
  %275 = getelementptr inbounds i8, ptr %0, i64 128
  store double 0.000000e+00, ptr %275, align 8, !tbaa !33
  ret void

276:                                              ; preds = %244
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %316

278:                                              ; preds = %245
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %315

280:                                              ; preds = %246
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %314

282:                                              ; preds = %247
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %313

284:                                              ; preds = %248
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %312

286:                                              ; preds = %249
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %311

288:                                              ; preds = %250
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %310

290:                                              ; preds = %251
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %309

292:                                              ; preds = %252
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %308

294:                                              ; preds = %253
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %307

296:                                              ; preds = %254
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %306

298:                                              ; preds = %255
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %305

300:                                              ; preds = %256
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %304

302:                                              ; preds = %257
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %304

304:                                              ; preds = %300, %302
  %.pn = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %305

305:                                              ; preds = %298, %304
  %.pn.pn = phi { ptr, i32 } [ %.pn, %304 ], [ %299, %298 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %306

306:                                              ; preds = %296, %305
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %305 ], [ %297, %296 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %307

307:                                              ; preds = %294, %306
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %306 ], [ %295, %294 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %308

308:                                              ; preds = %307, %292
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %307 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %309

309:                                              ; preds = %290, %308
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %308 ], [ %291, %290 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %310

310:                                              ; preds = %288, %309
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %309 ], [ %289, %288 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %311

311:                                              ; preds = %286, %310
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %310 ], [ %287, %286 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %312

312:                                              ; preds = %284, %311
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %311 ], [ %285, %284 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %313

313:                                              ; preds = %282, %312
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %312 ], [ %283, %282 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %314

314:                                              ; preds = %280, %313
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %313 ], [ %281, %280 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %315

315:                                              ; preds = %278, %314
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %314 ], [ %279, %278 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %316

316:                                              ; preds = %276, %315
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %315 ], [ %277, %276 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %317

317:                                              ; preds = %316, %239
  %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %239 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %316 ]
  resume { ptr, i32 } %.pn404.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #1 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 dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

; 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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_Z17cornerConductanceddddd(double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972)) local_unnamed_addr #0 align 2

declare void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK9ElemModel3RRREv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) local_unnamed_addr #7

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

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

attributes #0 = { 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 #1 = { 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 #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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { "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 = { 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 #7 = { 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 #8 = { 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, !10, i64 32}
!6 = !{!"_ZTS9ElemModel", !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !10, i64 48, !11, i64 56, !11, i64 57, !11, i64 58, !11, i64 59, !12, i64 60, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !13, i64 120, !13, i64 136}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt4pairIddE", !7, i64 0, !7, i64 8}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !12, i64 184}
!16 = !{!"_ZTS7Polygon", !17, i64 0, !12, i64 184, !18, i64 192, !10, i64 216, !10, i64 224, !22, i64 232, !8, i64 234, !7, i64 240}
!17 = !{!"_ZTS8VoidElem", !6, i64 0, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!18 = !{!"_ZTSSt6vectorIdSaIdEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!22 = !{!"short", !8, i64 0}
!23 = !{!6, !7, i64 72}
!24 = !{!6, !7, i64 80}
!25 = !{!16, !10, i64 216}
!26 = !{!12, !12, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!30, !30, i64 0}
!30 = !{!"vtable pointer", !9, i64 0}
!31 = !{!6, !7, i64 112}
!32 = !{!6, !7, i64 120}
!33 = !{!6, !7, i64 128}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass