; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/layerApex.ll (ZNK9LayerApex13getCAApexDistERdS0_RKdddb)

; 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" = type { i8 }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair" }
%"struct.std::pair" = type { i32, double }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }

@_ZN4Apex9SMALL_NUME = external constant double, align 8
@_ZN4Apex2PIE = external constant double, align 8
@.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 [99 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
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1
@__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [85 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1

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

; Function Attrs: nounwind
declare double @acos(double noundef) #1

; Function Attrs: nounwind
declare double @sin(double noundef) #1

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

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

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

; Function Attrs: nounwind
declare double @cos(double noundef) #1

; 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: 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 #4 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 #5 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)) #5

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

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

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

186:                                              ; preds = %7
  %187 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 14
  %188 = getelementptr inbounds %"struct.std::pair", ptr %187, i32 0, i32 0
  %189 = load i32, ptr %188, align 8, !tbaa !19
  %190 = icmp sgt i32 %189, -1
  br i1 %190, label %215, label %191

191:                                              ; preds = %186
  %192 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 2
  %193 = load ptr, ptr %192, align 8, !tbaa !20
  %194 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %193)
  %195 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %194)
  %196 = getelementptr inbounds %"struct.std::pair", ptr %195, i32 0, i32 0
  %197 = load i32, ptr %196, align 8, !tbaa !22
  %198 = icmp sgt i32 %197, -1
  br i1 %198, label %215, label %199

199:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #6
  store i1 true, ptr %27, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  store i1 true, ptr %29, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  store i1 true, ptr %30, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %200 unwind label %357

200:                                              ; preds = %199
  store i1 true, ptr %33, 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 %24, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.1)
          to label %201 unwind label %361

201:                                              ; preds = %200
  store i1 true, ptr %34, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  store i1 true, ptr %36, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #6
  store i1 true, ptr %38, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  store i1 true, ptr %39, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %202 unwind label %365

202:                                              ; preds = %201
  store i1 true, ptr %40, 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 %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %203 unwind label %369

203:                                              ; preds = %202
  store i1 true, ptr %41, 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 %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.2)
          to label %204 unwind label %373

204:                                              ; preds = %203
  store i1 true, ptr %42, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #6
  store i1 true, ptr %44, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #6
  store i1 true, ptr %46, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  store i1 true, ptr %47, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %205 unwind label %377

205:                                              ; preds = %204
  store i1 true, ptr %48, 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 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %206 unwind label %381

206:                                              ; preds = %205
  store i1 true, ptr %49, 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 %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.4)
          to label %207 unwind label %385

207:                                              ; preds = %206
  store i1 true, ptr %50, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  store i1 true, ptr %52, align 1
  store i32 79, ptr %53, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %208 unwind label %389

208:                                              ; preds = %207
  store i1 true, ptr %54, 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 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %209 unwind label %393

209:                                              ; preds = %208
  store i1 true, ptr %55, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  store i1 true, ptr %58, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  store i1 true, ptr %60, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  store i1 true, ptr %61, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %210 unwind label %397

210:                                              ; preds = %209
  store i1 true, ptr %62, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #6
  store i1 true, ptr %64, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #6
  store i1 true, ptr %66, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  store i1 true, ptr %67, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %211 unwind label %401

211:                                              ; preds = %210
  store i1 true, ptr %68, 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 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %212 unwind label %405

212:                                              ; preds = %211
  store i1 true, ptr %69, align 1
  %213 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %15, ptr noundef %56, i32 noundef 0)
          to label %214 unwind label %409

214:                                              ; preds = %212
  br label %215

215:                                              ; preds = %214, %191, %186, %7
  %216 = phi i1 [ true, %191 ], [ true, %186 ], [ true, %7 ], [ %213, %214 ]
  %217 = xor i1 %216, true
  %218 = load i1, ptr %69, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %220

220:                                              ; preds = %219, %215
  %221 = load i1, ptr %68, align 1
  br i1 %221, label %222, label %223

222:                                              ; preds = %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %223

223:                                              ; preds = %222, %220
  %224 = load i1, ptr %67, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  br label %226

226:                                              ; preds = %225, %223
  %227 = load i1, ptr %66, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #6
  br label %229

229:                                              ; preds = %228, %226
  %230 = load i1, ptr %64, align 1
  br i1 %230, label %231, label %232

231:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  br label %232

232:                                              ; preds = %231, %229
  %233 = load i1, ptr %62, align 1
  br i1 %233, label %234, label %235

234:                                              ; preds = %232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %235

235:                                              ; preds = %234, %232
  %236 = load i1, ptr %61, align 1
  br i1 %236, label %237, label %238

237:                                              ; preds = %235
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  br label %238

238:                                              ; preds = %237, %235
  %239 = load i1, ptr %60, align 1
  br i1 %239, label %240, label %241

240:                                              ; preds = %238
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %241

241:                                              ; preds = %240, %238
  %242 = load i1, ptr %58, align 1
  br i1 %242, label %243, label %244

243:                                              ; preds = %241
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %244

244:                                              ; preds = %243, %241
  %245 = load i1, ptr %55, align 1
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %247

247:                                              ; preds = %246, %244
  %248 = load i1, ptr %54, align 1
  br i1 %248, label %249, label %250

249:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %250

250:                                              ; preds = %249, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  %251 = load i1, ptr %52, align 1
  br i1 %251, label %252, label %253

252:                                              ; preds = %250
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %253

253:                                              ; preds = %252, %250
  %254 = load i1, ptr %50, align 1
  br i1 %254, label %255, label %256

255:                                              ; preds = %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %256

256:                                              ; preds = %255, %253
  %257 = load i1, ptr %49, align 1
  br i1 %257, label %258, label %259

258:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %259

259:                                              ; preds = %258, %256
  %260 = load i1, ptr %48, align 1
  br i1 %260, label %261, label %262

261:                                              ; preds = %259
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %262

262:                                              ; preds = %261, %259
  %263 = load i1, ptr %47, align 1
  br i1 %263, label %264, label %265

264:                                              ; preds = %262
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  br label %265

265:                                              ; preds = %264, %262
  %266 = load i1, ptr %46, align 1
  br i1 %266, label %267, label %268

267:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %268

268:                                              ; preds = %267, %265
  %269 = load i1, ptr %44, align 1
  br i1 %269, label %270, label %271

270:                                              ; preds = %268
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  br label %271

271:                                              ; preds = %270, %268
  %272 = load i1, ptr %42, align 1
  br i1 %272, label %273, label %274

273:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %274

274:                                              ; preds = %273, %271
  %275 = load i1, ptr %41, align 1
  br i1 %275, label %276, label %277

276:                                              ; preds = %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %277

277:                                              ; preds = %276, %274
  %278 = load i1, ptr %40, align 1
  br i1 %278, label %279, label %280

279:                                              ; preds = %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %280

280:                                              ; preds = %279, %277
  %281 = load i1, ptr %39, align 1
  br i1 %281, label %282, label %283

282:                                              ; preds = %280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  br label %283

283:                                              ; preds = %282, %280
  %284 = load i1, ptr %38, align 1
  br i1 %284, label %285, label %286

285:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #6
  br label %286

286:                                              ; preds = %285, %283
  %287 = load i1, ptr %36, align 1
  br i1 %287, label %288, label %289

288:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  br label %289

289:                                              ; preds = %288, %286
  %290 = load i1, ptr %34, align 1
  br i1 %290, label %291, label %292

291:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %292

292:                                              ; preds = %291, %289
  %293 = load i1, ptr %33, align 1
  br i1 %293, label %294, label %295

294:                                              ; preds = %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %295

295:                                              ; preds = %294, %292
  %296 = load i1, ptr %30, align 1
  br i1 %296, label %297, label %298

297:                                              ; preds = %295
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  br label %298

298:                                              ; preds = %297, %295
  %299 = load i1, ptr %29, align 1
  br i1 %299, label %300, label %301

300:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %301

301:                                              ; preds = %300, %298
  %302 = load i1, ptr %27, align 1
  br i1 %302, label %303, label %304

303:                                              ; preds = %301
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  br label %304

304:                                              ; preds = %303, %301
  %305 = load i1, ptr %25, align 1
  br i1 %305, label %306, label %307

306:                                              ; preds = %304
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %307

307:                                              ; preds = %306, %304
  %308 = load i1, ptr %23, align 1
  br i1 %308, label %309, label %310

309:                                              ; preds = %307
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %310

310:                                              ; preds = %309, %307
  %311 = load i1, ptr %21, align 1
  br i1 %311, label %312, label %313

312:                                              ; preds = %310
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %313

313:                                              ; preds = %312, %310
  %314 = load i1, ptr %19, align 1
  br i1 %314, label %315, label %316

315:                                              ; preds = %313
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %316

316:                                              ; preds = %315, %313
  %317 = load i1, ptr %17, align 1
  br i1 %317, label %318, label %319

318:                                              ; preds = %316
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %319

319:                                              ; preds = %318, %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  %320 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %321 = trunc i8 %320 to i1
  br i1 %321, label %322, label %323

322:                                              ; preds = %319
  br label %325

323:                                              ; preds = %319
  %324 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %323, %322
  %326 = phi double [ 0.000000e+00, %322 ], [ %324, %323 ]
  store double %326, ptr %70, align 8, !tbaa !9
  %327 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 14
  %328 = getelementptr inbounds %"struct.std::pair", ptr %327, i32 0, i32 0
  %329 = load i32, ptr %328, align 8, !tbaa !19
  %330 = icmp sgt i32 %329, -1
  br i1 %330, label %331, label %528

331:                                              ; preds = %325
  %332 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 14
  %333 = getelementptr inbounds %"struct.std::pair", ptr %332, i32 0, i32 1
  %334 = load double, ptr %333, align 8, !tbaa !24
  %335 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %336 = load double, ptr %335, align 8, !tbaa !25
  %337 = fmul double %334, %336
  %338 = load ptr, ptr %11, align 8, !tbaa !5
  %339 = load double, ptr %338, align 8, !tbaa !9
  %340 = call double @sin(double noundef %339) #6
  %341 = fmul double %337, %340
  %342 = load double, ptr %13, align 8, !tbaa !9
  %343 = fdiv double %341, %342
  %344 = call double @acos(double noundef %343) #6
  %345 = load ptr, ptr %11, align 8, !tbaa !5
  %346 = load double, ptr %345, align 8, !tbaa !9
  %347 = fadd double %344, %346
  %348 = load ptr, ptr %10, align 8, !tbaa !5
  store double %347, ptr %348, align 8, !tbaa !9
  %349 = load ptr, ptr %10, align 8, !tbaa !5
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %349)
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  store double 0.000000e+00, ptr %71, align 8, !tbaa !9
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull align 8 dereferenceable(8) %71)
  %352 = load double, ptr %351, align 8, !tbaa !9
  %353 = load ptr, ptr %10, align 8, !tbaa !5
  store double %352, ptr %353, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  %354 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %355 = load double, ptr %354, align 8, !tbaa !25
  %356 = load ptr, ptr %9, align 8, !tbaa !5
  store double %355, ptr %356, align 8, !tbaa !9
  store i32 1, ptr %72, align 4
  br label %1261

357:                                              ; preds = %199
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %31, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %32, align 4
  br label %503

361:                                              ; preds = %200
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %31, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %32, align 4
  br label %499

365:                                              ; preds = %201
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %31, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %32, align 4
  br label %486

369:                                              ; preds = %202
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %31, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %32, align 4
  br label %482

373:                                              ; preds = %203
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %31, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %32, align 4
  br label %478

377:                                              ; preds = %204
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %31, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %32, align 4
  br label %465

381:                                              ; preds = %205
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %31, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %32, align 4
  br label %461

385:                                              ; preds = %206
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %31, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %32, align 4
  br label %457

389:                                              ; preds = %207
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %31, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %32, align 4
  br label %450

393:                                              ; preds = %208
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %31, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %32, align 4
  br label %446

397:                                              ; preds = %209
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %31, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %32, align 4
  br label %433

401:                                              ; preds = %210
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %31, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %32, align 4
  br label %420

405:                                              ; preds = %211
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %31, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %32, align 4
  br label %416

409:                                              ; preds = %212
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %31, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %32, align 4
  %413 = load i1, ptr %69, align 1
  br i1 %413, label %414, label %415

414:                                              ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %415

415:                                              ; preds = %414, %409
  br label %416

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

418:                                              ; preds = %416
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %419

419:                                              ; preds = %418, %416
  br label %420

420:                                              ; preds = %419, %401
  %421 = load i1, ptr %67, align 1
  br i1 %421, label %422, label %423

422:                                              ; preds = %420
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  br label %423

423:                                              ; preds = %422, %420
  %424 = load i1, ptr %66, align 1
  br i1 %424, label %425, label %426

425:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #6
  br label %426

426:                                              ; preds = %425, %423
  %427 = load i1, ptr %64, align 1
  br i1 %427, label %428, label %429

428:                                              ; preds = %426
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  br label %429

429:                                              ; preds = %428, %426
  %430 = load i1, ptr %62, align 1
  br i1 %430, label %431, label %432

431:                                              ; preds = %429
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %432

432:                                              ; preds = %431, %429
  br label %433

433:                                              ; preds = %432, %397
  %434 = load i1, ptr %61, align 1
  br i1 %434, label %435, label %436

435:                                              ; preds = %433
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  br label %436

436:                                              ; preds = %435, %433
  %437 = load i1, ptr %60, align 1
  br i1 %437, label %438, label %439

438:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %439

439:                                              ; preds = %438, %436
  %440 = load i1, ptr %58, align 1
  br i1 %440, label %441, label %442

441:                                              ; preds = %439
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %442

442:                                              ; preds = %441, %439
  %443 = load i1, ptr %55, align 1
  br i1 %443, label %444, label %445

444:                                              ; preds = %442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %445

445:                                              ; preds = %444, %442
  br label %446

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

448:                                              ; preds = %446
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %449

449:                                              ; preds = %448, %446
  br label %450

450:                                              ; preds = %449, %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  %451 = load i1, ptr %52, align 1
  br i1 %451, label %452, label %453

452:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %453

453:                                              ; preds = %452, %450
  %454 = load i1, ptr %50, align 1
  br i1 %454, label %455, label %456

455:                                              ; preds = %453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %456

456:                                              ; preds = %455, %453
  br label %457

457:                                              ; preds = %456, %385
  %458 = load i1, ptr %49, align 1
  br i1 %458, label %459, label %460

459:                                              ; preds = %457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %460

460:                                              ; preds = %459, %457
  br label %461

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

463:                                              ; preds = %461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %464

464:                                              ; preds = %463, %461
  br label %465

465:                                              ; preds = %464, %377
  %466 = load i1, ptr %47, align 1
  br i1 %466, label %467, label %468

467:                                              ; preds = %465
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  br label %468

468:                                              ; preds = %467, %465
  %469 = load i1, ptr %46, align 1
  br i1 %469, label %470, label %471

470:                                              ; preds = %468
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %471

471:                                              ; preds = %470, %468
  %472 = load i1, ptr %44, align 1
  br i1 %472, label %473, label %474

473:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  br label %474

474:                                              ; preds = %473, %471
  %475 = load i1, ptr %42, align 1
  br i1 %475, label %476, label %477

476:                                              ; preds = %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %477

477:                                              ; preds = %476, %474
  br label %478

478:                                              ; preds = %477, %373
  %479 = load i1, ptr %41, align 1
  br i1 %479, label %480, label %481

480:                                              ; preds = %478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %481

481:                                              ; preds = %480, %478
  br label %482

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

484:                                              ; preds = %482
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %485

485:                                              ; preds = %484, %482
  br label %486

486:                                              ; preds = %485, %365
  %487 = load i1, ptr %39, align 1
  br i1 %487, label %488, label %489

488:                                              ; preds = %486
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  br label %489

489:                                              ; preds = %488, %486
  %490 = load i1, ptr %38, align 1
  br i1 %490, label %491, label %492

491:                                              ; preds = %489
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #6
  br label %492

492:                                              ; preds = %491, %489
  %493 = load i1, ptr %36, align 1
  br i1 %493, label %494, label %495

494:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  br label %495

495:                                              ; preds = %494, %492
  %496 = load i1, ptr %34, align 1
  br i1 %496, label %497, label %498

497:                                              ; preds = %495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %498

498:                                              ; preds = %497, %495
  br label %499

499:                                              ; preds = %498, %361
  %500 = load i1, ptr %33, align 1
  br i1 %500, label %501, label %502

501:                                              ; preds = %499
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %502

502:                                              ; preds = %501, %499
  br label %503

503:                                              ; preds = %502, %357
  %504 = load i1, ptr %30, align 1
  br i1 %504, label %505, label %506

505:                                              ; preds = %503
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  br label %506

506:                                              ; preds = %505, %503
  %507 = load i1, ptr %29, align 1
  br i1 %507, label %508, label %509

508:                                              ; preds = %506
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %509

509:                                              ; preds = %508, %506
  %510 = load i1, ptr %27, align 1
  br i1 %510, label %511, label %512

511:                                              ; preds = %509
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  br label %512

512:                                              ; preds = %511, %509
  %513 = load i1, ptr %25, align 1
  br i1 %513, label %514, label %515

514:                                              ; preds = %512
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %515

515:                                              ; preds = %514, %512
  %516 = load i1, ptr %23, align 1
  br i1 %516, label %517, label %518

517:                                              ; preds = %515
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %518

518:                                              ; preds = %517, %515
  %519 = load i1, ptr %21, align 1
  br i1 %519, label %520, label %521

520:                                              ; preds = %518
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %521

521:                                              ; preds = %520, %518
  %522 = load i1, ptr %19, align 1
  br i1 %522, label %523, label %524

523:                                              ; preds = %521
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %524

524:                                              ; preds = %523, %521
  %525 = load i1, ptr %17, align 1
  br i1 %525, label %526, label %527

526:                                              ; preds = %524
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %527

527:                                              ; preds = %526, %524
  br label %1265

528:                                              ; preds = %325
  %529 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 2
  %530 = load ptr, ptr %529, align 8, !tbaa !20
  %531 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %530)
  %532 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %531)
  %533 = getelementptr inbounds %"struct.std::pair", ptr %532, i32 0, i32 0
  %534 = load i32, ptr %533, align 8, !tbaa !22
  %535 = icmp sgt i32 %534, -1
  br i1 %535, label %536, label %565

536:                                              ; preds = %528
  %537 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 2
  %538 = load ptr, ptr %537, align 8, !tbaa !20
  %539 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %538)
  %540 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %539)
  %541 = getelementptr inbounds %"struct.std::pair", ptr %540, i32 0, i32 1
  %542 = load double, ptr %541, align 8, !tbaa !26
  %543 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %544 = load double, ptr %543, align 8, !tbaa !25
  %545 = fmul double %542, %544
  %546 = load ptr, ptr %11, align 8, !tbaa !5
  %547 = load double, ptr %546, align 8, !tbaa !9
  %548 = call double @sin(double noundef %547) #6
  %549 = fmul double %545, %548
  %550 = load double, ptr %13, align 8, !tbaa !9
  %551 = fdiv double %549, %550
  %552 = call double @acos(double noundef %551) #6
  %553 = load ptr, ptr %11, align 8, !tbaa !5
  %554 = load double, ptr %553, align 8, !tbaa !9
  %555 = fadd double %552, %554
  %556 = load ptr, ptr %10, align 8, !tbaa !5
  store double %555, ptr %556, align 8, !tbaa !9
  %557 = load ptr, ptr %10, align 8, !tbaa !5
  %558 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %557)
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  store double 0.000000e+00, ptr %73, align 8, !tbaa !9
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef nonnull align 8 dereferenceable(8) %73)
  %560 = load double, ptr %559, align 8, !tbaa !9
  %561 = load ptr, ptr %10, align 8, !tbaa !5
  store double %560, ptr %561, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  %562 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %563 = load double, ptr %562, align 8, !tbaa !25
  %564 = load ptr, ptr %9, align 8, !tbaa !5
  store double %563, ptr %564, align 8, !tbaa !9
  store i32 1, ptr %72, align 4
  br label %1261

565:                                              ; preds = %528
  %566 = load double, ptr %12, align 8, !tbaa !9
  %567 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 6
  %568 = load double, ptr %567, align 8, !tbaa !27
  %569 = load double, ptr %70, align 8, !tbaa !9
  %570 = fsub double %568, %569
  %571 = fcmp ogt double %566, %570
  br i1 %571, label %572, label %603

572:                                              ; preds = %565
  %573 = load double, ptr %12, align 8, !tbaa !9
  %574 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 7
  %575 = load double, ptr %574, align 8, !tbaa !28
  %576 = load double, ptr %70, align 8, !tbaa !9
  %577 = fadd double %575, %576
  %578 = fcmp olt double %573, %577
  br i1 %578, label %579, label %603

579:                                              ; preds = %572
  %580 = load double, ptr %12, align 8, !tbaa !9
  %581 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %582 = load double, ptr %581, align 8, !tbaa !25
  %583 = fmul double %580, %582
  %584 = load ptr, ptr %11, align 8, !tbaa !5
  %585 = load double, ptr %584, align 8, !tbaa !9
  %586 = call double @sin(double noundef %585) #6
  %587 = fmul double %583, %586
  %588 = load double, ptr %13, align 8, !tbaa !9
  %589 = fdiv double %587, %588
  %590 = call double @acos(double noundef %589) #6
  %591 = load ptr, ptr %11, align 8, !tbaa !5
  %592 = load double, ptr %591, align 8, !tbaa !9
  %593 = fadd double %590, %592
  %594 = load ptr, ptr %10, align 8, !tbaa !5
  store double %593, ptr %594, align 8, !tbaa !9
  %595 = load ptr, ptr %10, align 8, !tbaa !5
  %596 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %595)
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #6
  store double 0.000000e+00, ptr %74, align 8, !tbaa !9
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull align 8 dereferenceable(8) %74)
  %598 = load double, ptr %597, align 8, !tbaa !9
  %599 = load ptr, ptr %10, align 8, !tbaa !5
  store double %598, ptr %599, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #6
  %600 = getelementptr inbounds %class.LayerApex, ptr %182, i32 0, i32 3
  %601 = load double, ptr %600, align 8, !tbaa !25
  %602 = load ptr, ptr %9, align 8, !tbaa !5
  store double %601, ptr %602, align 8, !tbaa !9
  store i32 1, ptr %72, align 4
  br label %1261

603:                                              ; preds = %572, %565
  %604 = load ptr, ptr %10, align 8, !tbaa !5
  %605 = load double, ptr %604, align 8, !tbaa !9
  %606 = fcmp oge double %605, 0.000000e+00
  store i1 false, ptr %77, align 1
  store i1 false, ptr %79, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %83, 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 %94, align 1
  store i1 false, ptr %96, 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 %102, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %107, align 1
  store i1 false, ptr %108, align 1
  store i1 false, ptr %110, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #6
  store i1 false, ptr %112, align 1
  store i1 false, ptr %113, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %119, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %124, align 1
  store i1 false, ptr %125, align 1
  store i1 false, ptr %126, align 1
  store i1 false, ptr %127, align 1
  br i1 %606, label %607, label %612

607:                                              ; preds = %603
  %608 = load ptr, ptr %10, align 8, !tbaa !5
  %609 = load double, ptr %608, align 8, !tbaa !9
  %610 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %611 = fcmp ole double %609, %610
  br i1 %611, label %628, label %612

612:                                              ; preds = %607, %603
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #6
  store i1 true, ptr %81, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #6
  store i1 true, ptr %83, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #6
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #6
  store i1 true, ptr %87, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #6
  store i1 true, ptr %89, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  store i1 true, ptr %90, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %613 unwind label %756

613:                                              ; preds = %612
  store i1 true, ptr %91, 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 %84, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.1)
          to label %614 unwind label %760

614:                                              ; preds = %613
  store i1 true, ptr %92, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  store i1 true, ptr %94, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #6
  store i1 true, ptr %96, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  store i1 true, ptr %97, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %615 unwind label %764

615:                                              ; preds = %614
  store i1 true, ptr %98, 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 %82, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %616 unwind label %768

616:                                              ; preds = %615
  store i1 true, ptr %99, 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 %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.2)
          to label %617 unwind label %772

617:                                              ; preds = %616
  store i1 true, ptr %100, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #6
  store i1 true, ptr %102, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #6
  store i1 true, ptr %104, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  store i1 true, ptr %105, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %618 unwind label %776

618:                                              ; preds = %617
  store i1 true, ptr %106, 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 %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %619 unwind label %780

619:                                              ; preds = %618
  store i1 true, ptr %107, 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 %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.4)
          to label %620 unwind label %784

620:                                              ; preds = %619
  store i1 true, ptr %108, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #6
  store i1 true, ptr %110, align 1
  store i32 105, ptr %111, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 4 dereferenceable(4) %111)
          to label %621 unwind label %788

621:                                              ; preds = %620
  store i1 true, ptr %112, 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) %76, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %622 unwind label %792

622:                                              ; preds = %621
  store i1 true, ptr %113, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #6
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #6
  store i1 true, ptr %118, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  store i1 true, ptr %119, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %623 unwind label %796

623:                                              ; preds = %622
  store i1 true, ptr %120, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #6
  store i1 true, ptr %122, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #6
  store i1 true, ptr %124, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  store i1 true, ptr %125, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %624 unwind label %800

624:                                              ; preds = %623
  store i1 true, ptr %126, 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 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %625 unwind label %804

625:                                              ; preds = %624
  store i1 true, ptr %127, align 1
  %626 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %75, ptr noundef %114, i32 noundef 0)
          to label %627 unwind label %808

627:                                              ; preds = %625
  br label %628

628:                                              ; preds = %627, %607
  %629 = phi i1 [ true, %607 ], [ %626, %627 ]
  %630 = xor i1 %629, true
  %631 = load i1, ptr %127, align 1
  br i1 %631, label %632, label %633

632:                                              ; preds = %628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  br label %633

633:                                              ; preds = %632, %628
  %634 = load i1, ptr %126, align 1
  br i1 %634, label %635, label %636

635:                                              ; preds = %633
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  br label %636

636:                                              ; preds = %635, %633
  %637 = load i1, ptr %125, align 1
  br i1 %637, label %638, label %639

638:                                              ; preds = %636
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  br label %639

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

641:                                              ; preds = %639
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #6
  br label %642

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

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

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

647:                                              ; preds = %645
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  br label %648

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

650:                                              ; preds = %648
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  br label %651

651:                                              ; preds = %650, %648
  %652 = load i1, ptr %118, align 1
  br i1 %652, label %653, label %654

653:                                              ; preds = %651
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #6
  br label %654

654:                                              ; preds = %653, %651
  %655 = load i1, ptr %116, align 1
  br i1 %655, label %656, label %657

656:                                              ; preds = %654
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #6
  br label %657

657:                                              ; preds = %656, %654
  %658 = load i1, ptr %113, align 1
  br i1 %658, label %659, label %660

659:                                              ; preds = %657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %660

660:                                              ; preds = %659, %657
  %661 = load i1, ptr %112, align 1
  br i1 %661, label %662, label %663

662:                                              ; preds = %660
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %663

663:                                              ; preds = %662, %660
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #6
  %664 = load i1, ptr %110, align 1
  br i1 %664, label %665, label %666

665:                                              ; preds = %663
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  br label %666

666:                                              ; preds = %665, %663
  %667 = load i1, ptr %108, align 1
  br i1 %667, label %668, label %669

668:                                              ; preds = %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %669

669:                                              ; preds = %668, %666
  %670 = load i1, ptr %107, align 1
  br i1 %670, label %671, label %672

671:                                              ; preds = %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %672

672:                                              ; preds = %671, %669
  %673 = load i1, ptr %106, align 1
  br i1 %673, label %674, label %675

674:                                              ; preds = %672
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %675

675:                                              ; preds = %674, %672
  %676 = load i1, ptr %105, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  br label %678

678:                                              ; preds = %677, %675
  %679 = load i1, ptr %104, align 1
  br i1 %679, label %680, label %681

680:                                              ; preds = %678
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #6
  br label %681

681:                                              ; preds = %680, %678
  %682 = load i1, ptr %102, align 1
  br i1 %682, label %683, label %684

683:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  br label %684

684:                                              ; preds = %683, %681
  %685 = load i1, ptr %100, align 1
  br i1 %685, label %686, label %687

686:                                              ; preds = %684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %687

687:                                              ; preds = %686, %684
  %688 = load i1, ptr %99, align 1
  br i1 %688, label %689, label %690

689:                                              ; preds = %687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %690

690:                                              ; preds = %689, %687
  %691 = load i1, ptr %98, align 1
  br i1 %691, label %692, label %693

692:                                              ; preds = %690
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %693

693:                                              ; preds = %692, %690
  %694 = load i1, ptr %97, align 1
  br i1 %694, label %695, label %696

695:                                              ; preds = %693
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  br label %696

696:                                              ; preds = %695, %693
  %697 = load i1, ptr %96, align 1
  br i1 %697, label %698, label %699

698:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #6
  br label %699

699:                                              ; preds = %698, %696
  %700 = load i1, ptr %94, align 1
  br i1 %700, label %701, label %702

701:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  br label %702

702:                                              ; preds = %701, %699
  %703 = load i1, ptr %92, align 1
  br i1 %703, label %704, label %705

704:                                              ; preds = %702
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %705

705:                                              ; preds = %704, %702
  %706 = load i1, ptr %91, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %708

708:                                              ; preds = %707, %705
  %709 = load i1, ptr %90, align 1
  br i1 %709, label %710, label %711

710:                                              ; preds = %708
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  br label %711

711:                                              ; preds = %710, %708
  %712 = load i1, ptr %89, align 1
  br i1 %712, label %713, label %714

713:                                              ; preds = %711
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #6
  br label %714

714:                                              ; preds = %713, %711
  %715 = load i1, ptr %87, align 1
  br i1 %715, label %716, label %717

716:                                              ; preds = %714
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #6
  br label %717

717:                                              ; preds = %716, %714
  %718 = load i1, ptr %85, align 1
  br i1 %718, label %719, label %720

719:                                              ; preds = %717
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  br label %720

720:                                              ; preds = %719, %717
  %721 = load i1, ptr %83, align 1
  br i1 %721, label %722, label %723

722:                                              ; preds = %720
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  br label %723

723:                                              ; preds = %722, %720
  %724 = load i1, ptr %81, align 1
  br i1 %724, label %725, label %726

725:                                              ; preds = %723
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  br label %726

726:                                              ; preds = %725, %723
  %727 = load i1, ptr %79, align 1
  br i1 %727, label %728, label %729

728:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %729

729:                                              ; preds = %728, %726
  %730 = load i1, ptr %77, align 1
  br i1 %730, label %731, label %732

731:                                              ; preds = %729
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %732

732:                                              ; preds = %731, %729
  %733 = load double, ptr %13, align 8, !tbaa !9
  %734 = load double, ptr %12, align 8, !tbaa !9
  %735 = fdiv double %733, %734
  %736 = load ptr, ptr %10, align 8, !tbaa !5
  %737 = load double, ptr %736, align 8, !tbaa !9
  %738 = load ptr, ptr %11, align 8, !tbaa !5
  %739 = load double, ptr %738, align 8, !tbaa !9
  %740 = fsub double %737, %739
  %741 = call double @cos(double noundef %740) #6
  %742 = fmul double %735, %741
  %743 = load ptr, ptr %11, align 8, !tbaa !5
  %744 = load double, ptr %743, align 8, !tbaa !9
  %745 = call double @sin(double noundef %744) #6
  %746 = fdiv double %742, %745
  %747 = load ptr, ptr %9, align 8, !tbaa !5
  store double %746, ptr %747, align 8, !tbaa !9
  %748 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %749 = trunc i8 %748 to i1
  br i1 %749, label %750, label %927

750:                                              ; preds = %732
  %751 = load ptr, ptr %9, align 8, !tbaa !5
  %752 = load double, ptr %751, align 8, !tbaa !9
  %753 = fcmp ole double %752, 0.000000e+00
  br i1 %753, label %754, label %927

754:                                              ; preds = %750
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  store double 1.000000e-15, ptr %755, align 8, !tbaa !9
  br label %927

756:                                              ; preds = %612
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %31, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %32, align 4
  br label %902

760:                                              ; preds = %613
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %31, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %32, align 4
  br label %898

764:                                              ; preds = %614
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %31, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %32, align 4
  br label %885

768:                                              ; preds = %615
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %31, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %32, align 4
  br label %881

772:                                              ; preds = %616
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %31, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %32, align 4
  br label %877

776:                                              ; preds = %617
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %31, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %32, align 4
  br label %864

780:                                              ; preds = %618
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %31, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %32, align 4
  br label %860

784:                                              ; preds = %619
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %31, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %32, align 4
  br label %856

788:                                              ; preds = %620
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %31, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %32, align 4
  br label %849

792:                                              ; preds = %621
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %31, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %32, align 4
  br label %845

796:                                              ; preds = %622
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %31, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %32, align 4
  br label %832

800:                                              ; preds = %623
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %31, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %32, align 4
  br label %819

804:                                              ; preds = %624
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %31, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %32, align 4
  br label %815

808:                                              ; preds = %625
  %809 = landingpad { ptr, i32 }
          cleanup
  %810 = extractvalue { ptr, i32 } %809, 0
  store ptr %810, ptr %31, align 8
  %811 = extractvalue { ptr, i32 } %809, 1
  store i32 %811, ptr %32, align 4
  %812 = load i1, ptr %127, align 1
  br i1 %812, label %813, label %814

813:                                              ; preds = %808
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  br label %814

814:                                              ; preds = %813, %808
  br label %815

815:                                              ; preds = %814, %804
  %816 = load i1, ptr %126, align 1
  br i1 %816, label %817, label %818

817:                                              ; preds = %815
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  br label %818

818:                                              ; preds = %817, %815
  br label %819

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

821:                                              ; preds = %819
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  br label %822

822:                                              ; preds = %821, %819
  %823 = load i1, ptr %124, align 1
  br i1 %823, label %824, label %825

824:                                              ; preds = %822
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #6
  br label %825

825:                                              ; preds = %824, %822
  %826 = load i1, ptr %122, align 1
  br i1 %826, label %827, label %828

827:                                              ; preds = %825
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #6
  br label %828

828:                                              ; preds = %827, %825
  %829 = load i1, ptr %120, align 1
  br i1 %829, label %830, label %831

830:                                              ; preds = %828
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  br label %831

831:                                              ; preds = %830, %828
  br label %832

832:                                              ; preds = %831, %796
  %833 = load i1, ptr %119, align 1
  br i1 %833, label %834, label %835

834:                                              ; preds = %832
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  br label %835

835:                                              ; preds = %834, %832
  %836 = load i1, ptr %118, align 1
  br i1 %836, label %837, label %838

837:                                              ; preds = %835
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #6
  br label %838

838:                                              ; preds = %837, %835
  %839 = load i1, ptr %116, align 1
  br i1 %839, label %840, label %841

840:                                              ; preds = %838
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #6
  br label %841

841:                                              ; preds = %840, %838
  %842 = load i1, ptr %113, align 1
  br i1 %842, label %843, label %844

843:                                              ; preds = %841
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %844

844:                                              ; preds = %843, %841
  br label %845

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

847:                                              ; preds = %845
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %848

848:                                              ; preds = %847, %845
  br label %849

849:                                              ; preds = %848, %788
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #6
  %850 = load i1, ptr %110, align 1
  br i1 %850, label %851, label %852

851:                                              ; preds = %849
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  br label %852

852:                                              ; preds = %851, %849
  %853 = load i1, ptr %108, align 1
  br i1 %853, label %854, label %855

854:                                              ; preds = %852
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %855

855:                                              ; preds = %854, %852
  br label %856

856:                                              ; preds = %855, %784
  %857 = load i1, ptr %107, align 1
  br i1 %857, label %858, label %859

858:                                              ; preds = %856
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %859

859:                                              ; preds = %858, %856
  br label %860

860:                                              ; preds = %859, %780
  %861 = load i1, ptr %106, align 1
  br i1 %861, label %862, label %863

862:                                              ; preds = %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %863

863:                                              ; preds = %862, %860
  br label %864

864:                                              ; preds = %863, %776
  %865 = load i1, ptr %105, align 1
  br i1 %865, label %866, label %867

866:                                              ; preds = %864
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  br label %867

867:                                              ; preds = %866, %864
  %868 = load i1, ptr %104, align 1
  br i1 %868, label %869, label %870

869:                                              ; preds = %867
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #6
  br label %870

870:                                              ; preds = %869, %867
  %871 = load i1, ptr %102, align 1
  br i1 %871, label %872, label %873

872:                                              ; preds = %870
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  br label %873

873:                                              ; preds = %872, %870
  %874 = load i1, ptr %100, align 1
  br i1 %874, label %875, label %876

875:                                              ; preds = %873
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %876

876:                                              ; preds = %875, %873
  br label %877

877:                                              ; preds = %876, %772
  %878 = load i1, ptr %99, align 1
  br i1 %878, label %879, label %880

879:                                              ; preds = %877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %880

880:                                              ; preds = %879, %877
  br label %881

881:                                              ; preds = %880, %768
  %882 = load i1, ptr %98, align 1
  br i1 %882, label %883, label %884

883:                                              ; preds = %881
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %884

884:                                              ; preds = %883, %881
  br label %885

885:                                              ; preds = %884, %764
  %886 = load i1, ptr %97, align 1
  br i1 %886, label %887, label %888

887:                                              ; preds = %885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  br label %888

888:                                              ; preds = %887, %885
  %889 = load i1, ptr %96, align 1
  br i1 %889, label %890, label %891

890:                                              ; preds = %888
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #6
  br label %891

891:                                              ; preds = %890, %888
  %892 = load i1, ptr %94, align 1
  br i1 %892, label %893, label %894

893:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  br label %894

894:                                              ; preds = %893, %891
  %895 = load i1, ptr %92, align 1
  br i1 %895, label %896, label %897

896:                                              ; preds = %894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %897

897:                                              ; preds = %896, %894
  br label %898

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

900:                                              ; preds = %898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %901

901:                                              ; preds = %900, %898
  br label %902

902:                                              ; preds = %901, %756
  %903 = load i1, ptr %90, align 1
  br i1 %903, label %904, label %905

904:                                              ; preds = %902
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #6
  br label %905

905:                                              ; preds = %904, %902
  %906 = load i1, ptr %89, align 1
  br i1 %906, label %907, label %908

907:                                              ; preds = %905
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #6
  br label %908

908:                                              ; preds = %907, %905
  %909 = load i1, ptr %87, align 1
  br i1 %909, label %910, label %911

910:                                              ; preds = %908
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #6
  br label %911

911:                                              ; preds = %910, %908
  %912 = load i1, ptr %85, align 1
  br i1 %912, label %913, label %914

913:                                              ; preds = %911
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  br label %914

914:                                              ; preds = %913, %911
  %915 = load i1, ptr %83, align 1
  br i1 %915, label %916, label %917

916:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  br label %917

917:                                              ; preds = %916, %914
  %918 = load i1, ptr %81, align 1
  br i1 %918, label %919, label %920

919:                                              ; preds = %917
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  br label %920

920:                                              ; preds = %919, %917
  %921 = load i1, ptr %79, align 1
  br i1 %921, label %922, label %923

922:                                              ; preds = %920
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %923

923:                                              ; preds = %922, %920
  %924 = load i1, ptr %77, align 1
  br i1 %924, label %925, label %926

925:                                              ; preds = %923
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %926

926:                                              ; preds = %925, %923
  br label %1264

927:                                              ; preds = %754, %750, %732
  %928 = load ptr, ptr %9, align 8, !tbaa !5
  %929 = load double, ptr %928, align 8, !tbaa !9
  %930 = fcmp ogt double %929, 0.000000e+00
  store i1 false, ptr %130, align 1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %134, align 1
  store i1 false, ptr %136, align 1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %142, align 1
  store i1 false, ptr %143, align 1
  store i1 false, ptr %144, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %150, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %152, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %163, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #6
  store i1 false, ptr %165, align 1
  store i1 false, ptr %166, align 1
  store i1 false, ptr %169, align 1
  store i1 false, ptr %171, align 1
  store i1 false, ptr %172, align 1
  store i1 false, ptr %173, align 1
  store i1 false, ptr %175, align 1
  store i1 false, ptr %177, align 1
  store i1 false, ptr %178, align 1
  store i1 false, ptr %179, align 1
  store i1 false, ptr %180, align 1
  br i1 %930, label %947, label %931

931:                                              ; preds = %927
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #6
  store i1 true, ptr %130, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #6
  store i1 true, ptr %132, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #6
  store i1 true, ptr %134, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #6
  store i1 true, ptr %136, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #6
  store i1 true, ptr %138, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #6
  store i1 true, ptr %140, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %141) #6
  store i1 true, ptr %142, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  store i1 true, ptr %143, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %932 unwind label %1086

932:                                              ; preds = %931
  store i1 true, ptr %144, 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 %137, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.1)
          to label %933 unwind label %1090

933:                                              ; preds = %932
  store i1 true, ptr %145, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #6
  store i1 true, ptr %147, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #6
  store i1 true, ptr %149, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  store i1 true, ptr %150, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %934 unwind label %1094

934:                                              ; preds = %933
  store i1 true, ptr %151, 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 %135, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %146)
          to label %935 unwind label %1098

935:                                              ; preds = %934
  store i1 true, ptr %152, 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 %133, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.2)
          to label %936 unwind label %1102

936:                                              ; preds = %935
  store i1 true, ptr %153, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #6
  store i1 true, ptr %155, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #6
  store i1 true, ptr %157, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  store i1 true, ptr %158, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %937 unwind label %1106

937:                                              ; preds = %936
  store i1 true, ptr %159, 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 %131, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %938 unwind label %1110

938:                                              ; preds = %937
  store i1 true, ptr %160, 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 %129, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.4)
          to label %939 unwind label %1114

939:                                              ; preds = %938
  store i1 true, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #6
  store i1 true, ptr %163, align 1
  store i32 111, ptr %164, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %162, ptr noundef nonnull align 4 dereferenceable(4) %164)
          to label %940 unwind label %1118

940:                                              ; preds = %939
  store i1 true, ptr %165, 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 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %941 unwind label %1122

941:                                              ; preds = %940
  store i1 true, ptr %166, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #6
  store i1 true, ptr %169, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #6
  store i1 true, ptr %171, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  store i1 true, ptr %172, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %942 unwind label %1126

942:                                              ; preds = %941
  store i1 true, ptr %173, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #6
  store i1 true, ptr %175, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %176) #6
  store i1 true, ptr %177, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  store i1 true, ptr %178, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %176)
          to label %943 unwind label %1130

943:                                              ; preds = %942
  store i1 true, ptr %179, 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 %167, ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %944 unwind label %1134

944:                                              ; preds = %943
  store i1 true, ptr %180, align 1
  %945 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %128, ptr noundef %167, i32 noundef 0)
          to label %946 unwind label %1138

946:                                              ; preds = %944
  br label %947

947:                                              ; preds = %946, %927
  %948 = phi i1 [ true, %927 ], [ %945, %946 ]
  %949 = xor i1 %948, true
  %950 = load i1, ptr %180, align 1
  br i1 %950, label %951, label %952

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

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

954:                                              ; preds = %952
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %955

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

957:                                              ; preds = %955
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  br label %958

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

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

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

963:                                              ; preds = %961
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #6
  br label %964

964:                                              ; preds = %963, %961
  %965 = load i1, ptr %173, 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) %168) #6
  br label %967

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

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

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

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

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

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

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

978:                                              ; preds = %976
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #6
  br label %979

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

981:                                              ; preds = %979
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %982

982:                                              ; preds = %981, %979
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #6
  %983 = load i1, ptr %163, align 1
  br i1 %983, label %984, label %985

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

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

987:                                              ; preds = %985
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %988

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

990:                                              ; preds = %988
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %991

991:                                              ; preds = %990, %988
  %992 = load i1, ptr %159, align 1
  br i1 %992, label %993, label %994

993:                                              ; preds = %991
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %994

994:                                              ; preds = %993, %991
  %995 = load i1, ptr %158, align 1
  br i1 %995, label %996, label %997

996:                                              ; preds = %994
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  br label %997

997:                                              ; preds = %996, %994
  %998 = load i1, ptr %157, align 1
  br i1 %998, label %999, label %1000

999:                                              ; preds = %997
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #6
  br label %1000

1000:                                             ; preds = %999, %997
  %1001 = load i1, ptr %155, align 1
  br i1 %1001, label %1002, label %1003

1002:                                             ; preds = %1000
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  br label %1003

1003:                                             ; preds = %1002, %1000
  %1004 = load i1, ptr %153, align 1
  br i1 %1004, label %1005, label %1006

1005:                                             ; preds = %1003
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %1006

1006:                                             ; preds = %1005, %1003
  %1007 = load i1, ptr %152, align 1
  br i1 %1007, label %1008, label %1009

1008:                                             ; preds = %1006
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  br label %1009

1009:                                             ; preds = %1008, %1006
  %1010 = load i1, ptr %151, align 1
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1009
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %1012

1012:                                             ; preds = %1011, %1009
  %1013 = load i1, ptr %150, align 1
  br i1 %1013, label %1014, label %1015

1014:                                             ; preds = %1012
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  br label %1015

1015:                                             ; preds = %1014, %1012
  %1016 = load i1, ptr %149, align 1
  br i1 %1016, label %1017, label %1018

1017:                                             ; preds = %1015
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #6
  br label %1018

1018:                                             ; preds = %1017, %1015
  %1019 = load i1, ptr %147, align 1
  br i1 %1019, label %1020, label %1021

1020:                                             ; preds = %1018
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  br label %1021

1021:                                             ; preds = %1020, %1018
  %1022 = load i1, ptr %145, align 1
  br i1 %1022, label %1023, label %1024

1023:                                             ; preds = %1021
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %1024

1024:                                             ; preds = %1023, %1021
  %1025 = load i1, ptr %144, align 1
  br i1 %1025, label %1026, label %1027

1026:                                             ; preds = %1024
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  br label %1027

1027:                                             ; preds = %1026, %1024
  %1028 = load i1, ptr %143, align 1
  br i1 %1028, label %1029, label %1030

1029:                                             ; preds = %1027
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  br label %1030

1030:                                             ; preds = %1029, %1027
  %1031 = load i1, ptr %142, align 1
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1030
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #6
  br label %1033

1033:                                             ; preds = %1032, %1030
  %1034 = load i1, ptr %140, align 1
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1033
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #6
  br label %1036

1036:                                             ; preds = %1035, %1033
  %1037 = load i1, ptr %138, align 1
  br i1 %1037, label %1038, label %1039

1038:                                             ; preds = %1036
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %1039

1039:                                             ; preds = %1038, %1036
  %1040 = load i1, ptr %136, align 1
  br i1 %1040, label %1041, label %1042

1041:                                             ; preds = %1039
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #6
  br label %1042

1042:                                             ; preds = %1041, %1039
  %1043 = load i1, ptr %134, align 1
  br i1 %1043, label %1044, label %1045

1044:                                             ; preds = %1042
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  br label %1045

1045:                                             ; preds = %1044, %1042
  %1046 = load i1, ptr %132, align 1
  br i1 %1046, label %1047, label %1048

1047:                                             ; preds = %1045
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %1048

1048:                                             ; preds = %1047, %1045
  %1049 = load i1, ptr %130, align 1
  br i1 %1049, label %1050, label %1051

1050:                                             ; preds = %1048
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  br label %1051

1051:                                             ; preds = %1050, %1048
  %1052 = load ptr, ptr %9, align 8, !tbaa !5
  %1053 = load double, ptr %1052, align 8, !tbaa !9
  %1054 = fcmp olt double %1053, 0.000000e+00
  br i1 %1054, label %1055, label %1257

1055:                                             ; preds = %1051
  %1056 = load ptr, ptr %9, align 8, !tbaa !5
  %1057 = load double, ptr %1056, align 8, !tbaa !9
  %1058 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %1057)
  %1059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1058, ptr noundef @.str.9)
  %1060 = load double, ptr %12, align 8, !tbaa !9
  %1061 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1059, double noundef %1060)
  %1062 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1061, ptr noundef @.str.9)
  %1063 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 7
  %1064 = load double, ptr %1063, align 8, !tbaa !28
  %1065 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1062, double noundef %1064)
  %1066 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1065, ptr noundef @.str.9)
  %1067 = getelementptr inbounds %class.Apex, ptr %182, i32 0, i32 6
  %1068 = load double, ptr %1067, align 8, !tbaa !27
  %1069 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1066, double noundef %1068)
  %1070 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1069, ptr noundef @.str.9)
  %1071 = load ptr, ptr %10, align 8, !tbaa !5
  %1072 = load double, ptr %1071, align 8, !tbaa !9
  %1073 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1070, double noundef %1072)
  %1074 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1073, ptr noundef @.str.9)
  %1075 = load ptr, ptr %11, align 8, !tbaa !5
  %1076 = load double, ptr %1075, align 8, !tbaa !9
  %1077 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1074, double noundef %1076)
  %1078 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1077, ptr noundef @.str.9)
  %1079 = load double, ptr %13, align 8, !tbaa !9
  %1080 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1078, double noundef %1079)
  %1081 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1080, ptr noundef @.str.9)
  %1082 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %1083 = trunc i8 %1082 to i1
  %1084 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %1081, i1 noundef zeroext %1083)
  %1085 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1084, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1257

1086:                                             ; preds = %931
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %31, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %32, align 4
  br label %1232

1090:                                             ; preds = %932
  %1091 = landingpad { ptr, i32 }
          cleanup
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %31, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %32, align 4
  br label %1228

1094:                                             ; preds = %933
  %1095 = landingpad { ptr, i32 }
          cleanup
  %1096 = extractvalue { ptr, i32 } %1095, 0
  store ptr %1096, ptr %31, align 8
  %1097 = extractvalue { ptr, i32 } %1095, 1
  store i32 %1097, ptr %32, align 4
  br label %1215

1098:                                             ; preds = %934
  %1099 = landingpad { ptr, i32 }
          cleanup
  %1100 = extractvalue { ptr, i32 } %1099, 0
  store ptr %1100, ptr %31, align 8
  %1101 = extractvalue { ptr, i32 } %1099, 1
  store i32 %1101, ptr %32, align 4
  br label %1211

1102:                                             ; preds = %935
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %31, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %32, align 4
  br label %1207

1106:                                             ; preds = %936
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %31, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %32, align 4
  br label %1194

1110:                                             ; preds = %937
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %31, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %32, align 4
  br label %1190

1114:                                             ; preds = %938
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %31, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %32, align 4
  br label %1186

1118:                                             ; preds = %939
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %31, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %32, align 4
  br label %1179

1122:                                             ; preds = %940
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %31, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %32, align 4
  br label %1175

1126:                                             ; preds = %941
  %1127 = landingpad { ptr, i32 }
          cleanup
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %31, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %32, align 4
  br label %1162

1130:                                             ; preds = %942
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %31, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %32, align 4
  br label %1149

1134:                                             ; preds = %943
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %31, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %32, align 4
  br label %1145

1138:                                             ; preds = %944
  %1139 = landingpad { ptr, i32 }
          cleanup
  %1140 = extractvalue { ptr, i32 } %1139, 0
  store ptr %1140, ptr %31, align 8
  %1141 = extractvalue { ptr, i32 } %1139, 1
  store i32 %1141, ptr %32, align 4
  %1142 = load i1, ptr %180, align 1
  br i1 %1142, label %1143, label %1144

1143:                                             ; preds = %1138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %1144

1144:                                             ; preds = %1143, %1138
  br label %1145

1145:                                             ; preds = %1144, %1134
  %1146 = load i1, ptr %179, align 1
  br i1 %1146, label %1147, label %1148

1147:                                             ; preds = %1145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %1148

1148:                                             ; preds = %1147, %1145
  br label %1149

1149:                                             ; preds = %1148, %1130
  %1150 = load i1, ptr %178, align 1
  br i1 %1150, label %1151, label %1152

1151:                                             ; preds = %1149
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  br label %1152

1152:                                             ; preds = %1151, %1149
  %1153 = load i1, ptr %177, align 1
  br i1 %1153, label %1154, label %1155

1154:                                             ; preds = %1152
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #6
  br label %1155

1155:                                             ; preds = %1154, %1152
  %1156 = load i1, ptr %175, align 1
  br i1 %1156, label %1157, label %1158

1157:                                             ; preds = %1155
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #6
  br label %1158

1158:                                             ; preds = %1157, %1155
  %1159 = load i1, ptr %173, align 1
  br i1 %1159, label %1160, label %1161

1160:                                             ; preds = %1158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #6
  br label %1161

1161:                                             ; preds = %1160, %1158
  br label %1162

1162:                                             ; preds = %1161, %1126
  %1163 = load i1, ptr %172, align 1
  br i1 %1163, label %1164, label %1165

1164:                                             ; preds = %1162
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  br label %1165

1165:                                             ; preds = %1164, %1162
  %1166 = load i1, ptr %171, align 1
  br i1 %1166, label %1167, label %1168

1167:                                             ; preds = %1165
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #6
  br label %1168

1168:                                             ; preds = %1167, %1165
  %1169 = load i1, ptr %169, align 1
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1168
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #6
  br label %1171

1171:                                             ; preds = %1170, %1168
  %1172 = load i1, ptr %166, align 1
  br i1 %1172, label %1173, label %1174

1173:                                             ; preds = %1171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #6
  br label %1174

1174:                                             ; preds = %1173, %1171
  br label %1175

1175:                                             ; preds = %1174, %1122
  %1176 = load i1, ptr %165, align 1
  br i1 %1176, label %1177, label %1178

1177:                                             ; preds = %1175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %1178

1178:                                             ; preds = %1177, %1175
  br label %1179

1179:                                             ; preds = %1178, %1118
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #6
  %1180 = load i1, ptr %163, align 1
  br i1 %1180, label %1181, label %1182

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

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

1184:                                             ; preds = %1182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %1185

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

1186:                                             ; preds = %1185, %1114
  %1187 = load i1, ptr %160, align 1
  br i1 %1187, label %1188, label %1189

1188:                                             ; preds = %1186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %1189

1189:                                             ; preds = %1188, %1186
  br label %1190

1190:                                             ; preds = %1189, %1110
  %1191 = load i1, ptr %159, align 1
  br i1 %1191, label %1192, label %1193

1192:                                             ; preds = %1190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %1193

1193:                                             ; preds = %1192, %1190
  br label %1194

1194:                                             ; preds = %1193, %1106
  %1195 = load i1, ptr %158, align 1
  br i1 %1195, label %1196, label %1197

1196:                                             ; preds = %1194
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  br label %1197

1197:                                             ; preds = %1196, %1194
  %1198 = load i1, ptr %157, align 1
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1197
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #6
  br label %1200

1200:                                             ; preds = %1199, %1197
  %1201 = load i1, ptr %155, align 1
  br i1 %1201, label %1202, label %1203

1202:                                             ; preds = %1200
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  br label %1203

1203:                                             ; preds = %1202, %1200
  %1204 = load i1, ptr %153, align 1
  br i1 %1204, label %1205, label %1206

1205:                                             ; preds = %1203
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %1206

1206:                                             ; preds = %1205, %1203
  br label %1207

1207:                                             ; preds = %1206, %1102
  %1208 = load i1, ptr %152, align 1
  br i1 %1208, label %1209, label %1210

1209:                                             ; preds = %1207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  br label %1210

1210:                                             ; preds = %1209, %1207
  br label %1211

1211:                                             ; preds = %1210, %1098
  %1212 = load i1, ptr %151, align 1
  br i1 %1212, label %1213, label %1214

1213:                                             ; preds = %1211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %1214

1214:                                             ; preds = %1213, %1211
  br label %1215

1215:                                             ; preds = %1214, %1094
  %1216 = load i1, ptr %150, align 1
  br i1 %1216, label %1217, label %1218

1217:                                             ; preds = %1215
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  br label %1218

1218:                                             ; preds = %1217, %1215
  %1219 = load i1, ptr %149, align 1
  br i1 %1219, label %1220, label %1221

1220:                                             ; preds = %1218
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #6
  br label %1221

1221:                                             ; preds = %1220, %1218
  %1222 = load i1, ptr %147, align 1
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1221
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  br label %1224

1224:                                             ; preds = %1223, %1221
  %1225 = load i1, ptr %145, align 1
  br i1 %1225, label %1226, label %1227

1226:                                             ; preds = %1224
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %1227

1227:                                             ; preds = %1226, %1224
  br label %1228

1228:                                             ; preds = %1227, %1090
  %1229 = load i1, ptr %144, align 1
  br i1 %1229, label %1230, label %1231

1230:                                             ; preds = %1228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  br label %1231

1231:                                             ; preds = %1230, %1228
  br label %1232

1232:                                             ; preds = %1231, %1086
  %1233 = load i1, ptr %143, align 1
  br i1 %1233, label %1234, label %1235

1234:                                             ; preds = %1232
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  br label %1235

1235:                                             ; preds = %1234, %1232
  %1236 = load i1, ptr %142, align 1
  br i1 %1236, label %1237, label %1238

1237:                                             ; preds = %1235
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #6
  br label %1238

1238:                                             ; preds = %1237, %1235
  %1239 = load i1, ptr %140, align 1
  br i1 %1239, label %1240, label %1241

1240:                                             ; preds = %1238
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #6
  br label %1241

1241:                                             ; preds = %1240, %1238
  %1242 = load i1, ptr %138, align 1
  br i1 %1242, label %1243, label %1244

1243:                                             ; preds = %1241
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %1244

1244:                                             ; preds = %1243, %1241
  %1245 = load i1, ptr %136, align 1
  br i1 %1245, label %1246, label %1247

1246:                                             ; preds = %1244
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #6
  br label %1247

1247:                                             ; preds = %1246, %1244
  %1248 = load i1, ptr %134, align 1
  br i1 %1248, label %1249, label %1250

1249:                                             ; preds = %1247
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  br label %1250

1250:                                             ; preds = %1249, %1247
  %1251 = load i1, ptr %132, align 1
  br i1 %1251, label %1252, label %1253

1252:                                             ; preds = %1250
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %1253

1253:                                             ; preds = %1252, %1250
  %1254 = load i1, ptr %130, align 1
  br i1 %1254, label %1255, label %1256

1255:                                             ; preds = %1253
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  br label %1256

1256:                                             ; preds = %1255, %1253
  br label %1264

1257:                                             ; preds = %1055, %1051
  br label %1258

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259
  store i32 0, ptr %72, align 4
  br label %1261

1261:                                             ; preds = %1260, %579, %536, %331
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  %1262 = load i32, ptr %72, align 4
  switch i32 %1262, label %1270 [
    i32 0, label %1263
    i32 1, label %1263
  ]

1263:                                             ; preds = %1261, %1261
  ret void

1264:                                             ; preds = %1256, %926
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  br label %1265

1265:                                             ; preds = %1264, %527
  %1266 = load ptr, ptr %31, align 8
  %1267 = load i32, ptr %32, align 4
  %1268 = insertvalue { ptr, i32 } poison, ptr %1266, 0
  %1269 = insertvalue { ptr, i32 } %1268, i32 %1267, 1
  resume { ptr, i32 } %1269

1270:                                             ; preds = %1261
  unreachable
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408)) #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) #5 align 2

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 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 #5 = { 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 #6 = { 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, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !12, i64 83}
!14 = !{!"_ZTS4Apex", !12, i64 8, !10, i64 16, !10, i64 24, !6, i64 32, !15, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !12, i64 80, !12, i64 81, !12, i64 82, !12, i64 83, !16, i64 88}
!15 = !{!"int", !7, i64 0}
!16 = !{!"_ZTSSt4pairIidE", !15, i64 0, !10, i64 8}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!14, !15, i64 88}
!20 = !{!21, !6, i64 112}
!21 = !{!"_ZTS9LayerApex", !14, i64 0, !15, i64 104, !6, i64 112, !10, i64 120, !6, i64 128, !10, i64 136}
!22 = !{!16, !15, i64 0}
!23 = !{!15, !15, i64 0}
!24 = !{!14, !10, i64 96}
!25 = !{!21, !10, i64 120}
!26 = !{!16, !10, i64 8}
!27 = !{!14, !10, i64 48}
!28 = !{!14, !10, i64 56}


; 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" = type { i8 }

@_ZN4Apex9SMALL_NUME = external local_unnamed_addr constant double, align 8
@_ZN4Apex2PIE = external constant double, align 8
@.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 [99 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
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1
@__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [85 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1

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

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

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

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

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

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

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

; 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: 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 #4 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 #5 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 #5

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %0, ptr nocapture noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %3, double noundef %4, double noundef %5, i1 noundef zeroext %6) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %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::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i32, align 4
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca i32, align 4
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = getelementptr inbounds i8, ptr %0, i64 83
  %69 = load i8, ptr %68, align 1, !tbaa !5, !range !14, !noundef !15
  %70 = trunc nuw i8 %69 to i1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  %71 = getelementptr inbounds i8, ptr %0, i64 88
  %72 = load i32, ptr %71, align 8
  %73 = icmp sgt i32 %72, -1
  %or.cond = select i1 %70, i1 true, i1 %73
  br i1 %or.cond, label %96, label %74

74:                                               ; preds = %7
  %75 = getelementptr inbounds i8, ptr %0, i64 112
  %76 = load ptr, ptr %75, align 8, !tbaa !16
  %77 = tail call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %76)
  %78 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %77)
  %79 = load i32, ptr %78, align 8, !tbaa !18
  %80 = icmp sgt i32 %79, -1
  br i1 %80, label %96, label %81

81:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %82 unwind label %118

82:                                               ; preds = %81
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.1)
          to label %83 unwind label %120

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %84 unwind label %122

84:                                               ; preds = %83
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %85 unwind label %124

85:                                               ; preds = %84
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.2)
          to label %86 unwind label %126

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %87 unwind label %128

87:                                               ; preds = %86
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %18)
          to label %88 unwind label %130

88:                                               ; preds = %87
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.4)
          to label %89 unwind label %132

89:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  store i32 79, ptr %21, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %90 unwind label %134

90:                                               ; preds = %89
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %20)
          to label %91 unwind label %136

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %92 unwind label %138

92:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %93 unwind label %140

93:                                               ; preds = %92
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %94 unwind label %142

94:                                               ; preds = %93
  %95 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %8, ptr noundef nonnull %22, i32 noundef 0)
          to label %.critedge453 unwind label %144

96:                                               ; preds = %74, %7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  br label %.critedge474

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

.critedge474:                                     ; preds = %96, %.critedge453
  %97 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8
  %98 = select i1 %6, double 0.000000e+00, double %97
  %99 = load i32, ptr %71, align 8, !tbaa !20
  %100 = icmp sgt i32 %99, -1
  br i1 %100, label %101, label %159

101:                                              ; preds = %.critedge474
  %102 = getelementptr inbounds i8, ptr %0, i64 96
  %103 = load double, ptr %102, align 8, !tbaa !21
  %104 = getelementptr inbounds i8, ptr %0, i64 120
  %105 = load double, ptr %104, align 8, !tbaa !22
  %106 = fmul double %103, %105
  %107 = load double, ptr %3, align 8, !tbaa !23
  %108 = call double @sin(double noundef %107) #6
  %109 = fmul double %106, %108
  %110 = fdiv double %109, %5
  %111 = call double @acos(double noundef %110) #6
  %112 = load double, ptr %3, align 8, !tbaa !23
  %113 = fadd double %111, %112
  store double %113, ptr %2, align 8, !tbaa !23
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  store double 0.000000e+00, ptr %27, align 8, !tbaa !23
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %27)
  %116 = load double, ptr %115, align 8, !tbaa !23
  store double %116, ptr %2, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  %117 = load double, ptr %104, align 8, !tbaa !22
  store double %117, ptr %1, align 8, !tbaa !23
  br label %365

118:                                              ; preds = %81
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %158

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

122:                                              ; preds = %83
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %156

124:                                              ; preds = %84
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %155

126:                                              ; preds = %85
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %154

128:                                              ; preds = %86
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %153

130:                                              ; preds = %87
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %152

132:                                              ; preds = %88
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %151

134:                                              ; preds = %89
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %150

136:                                              ; preds = %90
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %149

138:                                              ; preds = %91
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %148

140:                                              ; preds = %92
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %147

142:                                              ; preds = %93
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %146

144:                                              ; preds = %94
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %146

146:                                              ; preds = %142, %144
  %.pn = phi { ptr, i32 } [ %145, %144 ], [ %143, %142 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %147

147:                                              ; preds = %140, %146
  %.pn.pn = phi { ptr, i32 } [ %.pn, %146 ], [ %141, %140 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %148

148:                                              ; preds = %138, %147
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %147 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %149

149:                                              ; preds = %136, %148
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %148 ], [ %137, %136 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %150

150:                                              ; preds = %149, %134
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %149 ], [ %135, %134 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %151

151:                                              ; preds = %132, %150
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %150 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %152

152:                                              ; preds = %130, %151
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %151 ], [ %131, %130 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %153

153:                                              ; preds = %128, %152
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %152 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %154

154:                                              ; preds = %126, %153
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %153 ], [ %127, %126 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %155

155:                                              ; preds = %124, %154
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %154 ], [ %125, %124 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %156

156:                                              ; preds = %122, %155
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %155 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %157

157:                                              ; preds = %120, %156
  %.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, %156 ], [ %121, %120 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %158

158:                                              ; preds = %118, %157
  %.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, %157 ], [ %119, %118 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %366

159:                                              ; preds = %.critedge474
  %160 = getelementptr inbounds i8, ptr %0, i64 112
  %161 = load ptr, ptr %160, align 8, !tbaa !16
  %162 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %161)
  %163 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %162)
  %164 = load i32, ptr %163, align 8, !tbaa !18
  %165 = icmp sgt i32 %164, -1
  br i1 %165, label %166, label %186

166:                                              ; preds = %159
  %167 = load ptr, ptr %160, align 8, !tbaa !16
  %168 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %167)
  %169 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %168)
  %170 = getelementptr inbounds i8, ptr %169, i64 8
  %171 = load double, ptr %170, align 8, !tbaa !24
  %172 = getelementptr inbounds i8, ptr %0, i64 120
  %173 = load double, ptr %172, align 8, !tbaa !22
  %174 = fmul double %171, %173
  %175 = load double, ptr %3, align 8, !tbaa !23
  %176 = call double @sin(double noundef %175) #6
  %177 = fmul double %174, %176
  %178 = fdiv double %177, %5
  %179 = call double @acos(double noundef %178) #6
  %180 = load double, ptr %3, align 8, !tbaa !23
  %181 = fadd double %179, %180
  store double %181, ptr %2, align 8, !tbaa !23
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  store double 0.000000e+00, ptr %28, align 8, !tbaa !23
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull align 8 dereferenceable(8) %28)
  %184 = load double, ptr %183, align 8, !tbaa !23
  store double %184, ptr %2, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  %185 = load double, ptr %172, align 8, !tbaa !22
  store double %185, ptr %1, align 8, !tbaa !23
  br label %365

186:                                              ; preds = %159
  %187 = getelementptr inbounds i8, ptr %0, i64 48
  %188 = load double, ptr %187, align 8, !tbaa !25
  %189 = fsub double %188, %98
  %190 = fcmp olt double %189, %4
  br i1 %190, label %191, label %211

191:                                              ; preds = %186
  %192 = getelementptr inbounds i8, ptr %0, i64 56
  %193 = load double, ptr %192, align 8, !tbaa !26
  %194 = fadd double %98, %193
  %195 = fcmp ogt double %194, %4
  br i1 %195, label %196, label %211

196:                                              ; preds = %191
  %197 = getelementptr inbounds i8, ptr %0, i64 120
  %198 = load double, ptr %197, align 8, !tbaa !22
  %199 = fmul double %198, %4
  %200 = load double, ptr %3, align 8, !tbaa !23
  %201 = call double @sin(double noundef %200) #6
  %202 = fmul double %199, %201
  %203 = fdiv double %202, %5
  %204 = call double @acos(double noundef %203) #6
  %205 = load double, ptr %3, align 8, !tbaa !23
  %206 = fadd double %204, %205
  store double %206, ptr %2, align 8, !tbaa !23
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  store double 0.000000e+00, ptr %29, align 8, !tbaa !23
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %207, ptr noundef nonnull align 8 dereferenceable(8) %29)
  %209 = load double, ptr %208, align 8, !tbaa !23
  store double %209, ptr %2, align 8, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  %210 = load double, ptr %197, align 8, !tbaa !22
  store double %210, ptr %1, align 8, !tbaa !23
  br label %365

211:                                              ; preds = %191, %186
  %212 = load double, ptr %2, align 8, !tbaa !23
  %213 = fcmp ult double %212, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  %214 = load double, ptr @_ZN4Apex2PIE, align 8
  %215 = fcmp ugt double %212, %214
  %or.cond560 = select i1 %213, i1 true, i1 %215
  br i1 %or.cond560, label %216, label %231

216:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %217 unwind label %243

217:                                              ; preds = %216
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.1)
          to label %218 unwind label %245

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %219 unwind label %247

219:                                              ; preds = %218
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %220 unwind label %249

220:                                              ; preds = %219
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.2)
          to label %221 unwind label %251

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %222 unwind label %253

222:                                              ; preds = %221
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %223 unwind label %255

223:                                              ; preds = %222
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.4)
          to label %224 unwind label %257

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #6
  store i32 105, ptr %43, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %225 unwind label %259

225:                                              ; preds = %224
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %226 unwind label %261

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %227 unwind label %263

227:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %228 unwind label %265

228:                                              ; preds = %227
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %229 unwind label %267

229:                                              ; preds = %228
  %230 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %30, ptr noundef nonnull %44, i32 noundef 0)
          to label %.critedge488 unwind label %269

231:                                              ; preds = %211
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  br label %.critedge509

.critedge488:                                     ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  %.pre = load double, ptr %2, align 8, !tbaa !23
  br label %.critedge509

.critedge509:                                     ; preds = %231, %.critedge488
  %232 = phi double [ %212, %231 ], [ %.pre, %.critedge488 ]
  %233 = fdiv double %5, %4
  %234 = load double, ptr %3, align 8, !tbaa !23
  %235 = fsub double %232, %234
  %236 = call double @cos(double noundef %235) #6
  %237 = fmul double %233, %236
  %238 = load double, ptr %3, align 8, !tbaa !23
  %239 = call double @sin(double noundef %238) #6
  %240 = fdiv double %237, %239
  %241 = fcmp ole double %240, 0.000000e+00
  %or.cond510.not = select i1 %6, i1 %241, i1 false
  %spec.store.select = select i1 %or.cond510.not, double 1.000000e-15, double %240
  store double %spec.store.select, ptr %1, align 8
  %242 = fcmp ule double %spec.store.select, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %62) #6
  br i1 %242, label %284, label %299

243:                                              ; preds = %216
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %283

245:                                              ; preds = %217
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %282

247:                                              ; preds = %218
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %281

249:                                              ; preds = %219
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %280

251:                                              ; preds = %220
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %279

253:                                              ; preds = %221
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %278

255:                                              ; preds = %222
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %277

257:                                              ; preds = %223
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %276

259:                                              ; preds = %224
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %275

261:                                              ; preds = %225
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %274

263:                                              ; preds = %226
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %273

265:                                              ; preds = %227
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %272

267:                                              ; preds = %228
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %271

269:                                              ; preds = %229
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %271

271:                                              ; preds = %267, %269
  %.pn410 = phi { ptr, i32 } [ %270, %269 ], [ %268, %267 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %272

272:                                              ; preds = %265, %271
  %.pn410.pn = phi { ptr, i32 } [ %.pn410, %271 ], [ %266, %265 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %273

273:                                              ; preds = %263, %272
  %.pn410.pn.pn = phi { ptr, i32 } [ %.pn410.pn, %272 ], [ %264, %263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %274

274:                                              ; preds = %261, %273
  %.pn410.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn, %273 ], [ %262, %261 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %275

275:                                              ; preds = %274, %259
  %.pn410.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn, %274 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %276

276:                                              ; preds = %257, %275
  %.pn410.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn, %275 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %277

277:                                              ; preds = %255, %276
  %.pn410.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn, %276 ], [ %256, %255 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %278

278:                                              ; preds = %253, %277
  %.pn410.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn, %277 ], [ %254, %253 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %279

279:                                              ; preds = %251, %278
  %.pn410.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn.pn, %278 ], [ %252, %251 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %280

280:                                              ; preds = %249, %279
  %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn.pn.pn, %279 ], [ %250, %249 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %281

281:                                              ; preds = %247, %280
  %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn, %280 ], [ %248, %247 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %282

282:                                              ; preds = %245, %281
  %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %281 ], [ %246, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %283

283:                                              ; preds = %243, %282
  %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %282 ], [ %244, %243 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %366

284:                                              ; preds = %.critedge509
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %285 unwind label %324

285:                                              ; preds = %284
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.1)
          to label %286 unwind label %326

286:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex13getCAApexDistERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %287 unwind label %328

287:                                              ; preds = %286
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %288 unwind label %330

288:                                              ; preds = %287
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.2)
          to label %289 unwind label %332

289:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %290 unwind label %334

290:                                              ; preds = %289
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %291 unwind label %336

291:                                              ; preds = %290
  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.4)
          to label %292 unwind label %338

292:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #6
  store i32 111, ptr %62, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %293 unwind label %340

293:                                              ; preds = %292
  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) %61)
          to label %294 unwind label %342

294:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %295 unwind label %344

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %296 unwind label %346

296:                                              ; preds = %295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %297 unwind label %348

297:                                              ; preds = %296
  %298 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %49, ptr noundef nonnull %63, i32 noundef 0)
          to label %.critedge525 unwind label %350

299:                                              ; preds = %.critedge509
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  br label %.critedge546

.critedge525:                                     ; preds = %297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  %.pr = load double, ptr %1, align 8, !tbaa !23
  br label %.critedge546

.critedge546:                                     ; preds = %299, %.critedge525
  %300 = phi double [ %spec.store.select, %299 ], [ %.pr, %.critedge525 ]
  %301 = fcmp olt double %300, 0.000000e+00
  br i1 %301, label %302, label %365

302:                                              ; preds = %.critedge546
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %300)
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @.str.9)
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %304, double noundef %4)
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull @.str.9)
  %307 = getelementptr inbounds i8, ptr %0, i64 56
  %308 = load double, ptr %307, align 8, !tbaa !26
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %306, double noundef %308)
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull @.str.9)
  %311 = load double, ptr %187, align 8, !tbaa !25
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %310, double noundef %311)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull @.str.9)
  %314 = load double, ptr %2, align 8, !tbaa !23
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %313, double noundef %314)
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull @.str.9)
  %317 = load double, ptr %3, align 8, !tbaa !23
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %316, double noundef %317)
  %319 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %318, ptr noundef nonnull @.str.9)
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %319, double noundef %5)
  %321 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull @.str.9)
  %322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %321, i1 noundef zeroext %6)
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %365

324:                                              ; preds = %284
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %364

326:                                              ; preds = %285
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %363

328:                                              ; preds = %286
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %362

330:                                              ; preds = %287
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %361

332:                                              ; preds = %288
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %360

334:                                              ; preds = %289
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %359

336:                                              ; preds = %290
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %358

338:                                              ; preds = %291
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %357

340:                                              ; preds = %292
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %356

342:                                              ; preds = %293
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %355

344:                                              ; preds = %294
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %354

346:                                              ; preds = %295
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %353

348:                                              ; preds = %296
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %352

350:                                              ; preds = %297
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %352

352:                                              ; preds = %348, %350
  %.pn424 = phi { ptr, i32 } [ %351, %350 ], [ %349, %348 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %353

353:                                              ; preds = %346, %352
  %.pn424.pn = phi { ptr, i32 } [ %.pn424, %352 ], [ %347, %346 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %354

354:                                              ; preds = %344, %353
  %.pn424.pn.pn = phi { ptr, i32 } [ %.pn424.pn, %353 ], [ %345, %344 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %355

355:                                              ; preds = %342, %354
  %.pn424.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn, %354 ], [ %343, %342 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %356

356:                                              ; preds = %355, %340
  %.pn424.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn, %355 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %357

357:                                              ; preds = %338, %356
  %.pn424.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn, %356 ], [ %339, %338 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %358

358:                                              ; preds = %336, %357
  %.pn424.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn, %357 ], [ %337, %336 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %359

359:                                              ; preds = %334, %358
  %.pn424.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn, %358 ], [ %335, %334 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %360

360:                                              ; preds = %332, %359
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn, %359 ], [ %333, %332 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %361

361:                                              ; preds = %330, %360
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn, %360 ], [ %331, %330 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %362

362:                                              ; preds = %328, %361
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn, %361 ], [ %329, %328 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %363

363:                                              ; preds = %326, %362
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %362 ], [ %327, %326 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %364

364:                                              ; preds = %324, %363
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %363 ], [ %325, %324 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  br label %366

365:                                              ; preds = %302, %.critedge546, %196, %166, %101
  ret void

366:                                              ; preds = %283, %364, %158
  %.pn424.pn.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.pn, %158 ], [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %364 ], [ %.pn410.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %283 ]
  resume { ptr, i32 } %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #5 align 2

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 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 #5 = { 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 #6 = { 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, !7, i64 83}
!6 = !{!"_ZTS4Apex", !7, i64 8, !10, i64 16, !10, i64 24, !11, i64 32, !12, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 81, !7, i64 82, !7, i64 83, !13, i64 88}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt4pairIidE", !12, i64 0, !10, i64 8}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!17, !11, i64 112}
!17 = !{!"_ZTS9LayerApex", !6, i64 0, !12, i64 104, !11, i64 112, !10, i64 120, !11, i64 128, !10, i64 136}
!18 = !{!13, !12, i64 0}
!19 = !{!12, !12, i64 0}
!20 = !{!6, !12, i64 88}
!21 = !{!6, !10, i64 96}
!22 = !{!17, !10, i64 120}
!23 = !{!10, !10, i64 0}
!24 = !{!13, !10, i64 8}
!25 = !{!6, !10, i64 48}
!26 = !{!6, !10, i64 56}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass