; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow (NetworkTransform)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"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.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = type { %"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.var2 = type { double, double }

@.str.22 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd = external hidden unnamed_addr constant [21 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [75 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.32 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 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: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 #2 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #4

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, double noundef %2, double noundef %3) #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca %"class.std::basic_ifstream", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca i1, align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i1, align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i1, align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca i1, align 1
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca i1, align 1
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca i1, align 1
  %34 = alloca i1, align 1
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i1, align 1
  %48 = alloca i32, align 4
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i1, align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca i1, align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca i1, align 1
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca i1, align 1
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca i1, align 1
  %66 = alloca i1, align 1
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::vector.35", align 8
  %69 = alloca %class.var2, align 8
  %70 = alloca %class.var2, align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca i1, align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca i1, align 1
  %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::allocator", align 1
  %85 = alloca i1, align 1
  %86 = alloca i1, align 1
  %87 = alloca i1, align 1
  %88 = alloca i1, align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca i1, align 1
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca i1, align 1
  %93 = alloca i1, align 1
  %94 = alloca i1, align 1
  %95 = alloca i1, align 1
  %96 = alloca i1, align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca i1, align 1
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca i1, align 1
  %107 = alloca i32, align 4
  %108 = alloca i1, align 1
  %109 = alloca i1, align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca i1, align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca i1, align 1
  %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 i1, align 1
  %122 = alloca i1, align 1
  %123 = alloca i1, align 1
  %124 = alloca double, align 8
  %125 = alloca i64, align 8
  %126 = alloca %class.var2, align 8
  %127 = alloca double, align 8
  %128 = alloca %"class.std::vector.35", align 8
  %129 = alloca %class.var2, align 8
  %130 = alloca i64, align 8
  %131 = alloca %class.var2, align 8
  %132 = alloca i32, align 4
  %133 = alloca i64, align 8
  %134 = alloca i32, align 4
  %135 = alloca i64, align 8
  %136 = alloca double, align 8
  %137 = alloca double, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store double %2, ptr %7, align 8, !tbaa !9
  store double %3, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 520, ptr %9) #8
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %9, ptr noundef nonnull align 8 dereferenceable(32) %138, i32 noundef 8)
  %139 = load ptr, ptr %9, align 8, !tbaa !11
  %140 = getelementptr i8, ptr %139, i64 -24
  %141 = load i64, ptr %140, align 8
  %142 = getelementptr inbounds i8, ptr %9, i64 %141
  store i1 false, ptr %14, align 1
  store i1 false, ptr %16, align 1
  store i1 false, ptr %18, align 1
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %47, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i1 false, ptr %49, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %53, align 1
  store i1 false, ptr %55, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %59, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %67, align 1
  %143 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %142)
          to label %144 unwind label %430

144:                                              ; preds = %4
  br i1 %143, label %164, label %145

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

146:                                              ; preds = %145
  store i1 true, ptr %28, 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 %21, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.23)
          to label %147 unwind label %438

147:                                              ; preds = %146
  store i1 true, ptr %29, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  store i1 true, ptr %31, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  store i1 true, ptr %33, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  store i1 true, ptr %34, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %148 unwind label %442

148:                                              ; preds = %147
  store i1 true, ptr %35, 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 %19, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %149 unwind label %446

149:                                              ; preds = %148
  store i1 true, ptr %36, 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 %17, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.24)
          to label %150 unwind label %450

150:                                              ; preds = %149
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  store i1 true, ptr %41, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  store i1 true, ptr %42, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %151 unwind label %454

151:                                              ; preds = %150
  store i1 true, ptr %43, 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) %17, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %152 unwind label %458

152:                                              ; preds = %151
  store i1 true, ptr %44, 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 %13, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.26)
          to label %153 unwind label %462

153:                                              ; preds = %152
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  store i1 true, ptr %47, align 1
  store i32 431, ptr %48, align 4, !tbaa !13
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %154 unwind label %466

154:                                              ; preds = %153
  store i1 true, ptr %49, 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 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %155 unwind label %470

155:                                              ; preds = %154
  store i1 true, ptr %50, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  store i1 true, ptr %55, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  store i1 true, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  store i1 true, ptr %59, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  store i1 true, ptr %61, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  store i1 true, ptr %62, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %156 unwind label %474

156:                                              ; preds = %155
  store i1 true, ptr %63, 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 %56, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.28)
          to label %157 unwind label %478

157:                                              ; preds = %156
  store i1 true, ptr %64, 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 %54, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.29)
          to label %158 unwind label %482

158:                                              ; preds = %157
  store i1 true, ptr %65, align 1
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %159)
          to label %160 unwind label %486

160:                                              ; preds = %158
  store i1 true, ptr %66, 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 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.30)
          to label %161 unwind label %490

161:                                              ; preds = %160
  store i1 true, ptr %67, align 1
  %162 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %12, ptr noundef %51, i32 noundef -1)
          to label %163 unwind label %494

163:                                              ; preds = %161
  br label %164

164:                                              ; preds = %163, %144
  %165 = phi i1 [ true, %144 ], [ %162, %163 ]
  %166 = xor i1 %165, true
  %167 = load i1, ptr %67, align 1
  br i1 %167, label %168, label %169

168:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %169

169:                                              ; preds = %168, %164
  %170 = load i1, ptr %66, align 1
  br i1 %170, label %171, label %172

171:                                              ; preds = %169
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %172

172:                                              ; preds = %171, %169
  %173 = load i1, ptr %65, align 1
  br i1 %173, label %174, label %175

174:                                              ; preds = %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %175

175:                                              ; preds = %174, %172
  %176 = load i1, ptr %64, align 1
  br i1 %176, label %177, label %178

177:                                              ; preds = %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %178

178:                                              ; preds = %177, %175
  %179 = load i1, ptr %63, align 1
  br i1 %179, label %180, label %181

180:                                              ; preds = %178
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %181

181:                                              ; preds = %180, %178
  %182 = load i1, ptr %62, align 1
  br i1 %182, label %183, label %184

183:                                              ; preds = %181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  br label %184

184:                                              ; preds = %183, %181
  %185 = load i1, ptr %61, align 1
  br i1 %185, label %186, label %187

186:                                              ; preds = %184
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %187

187:                                              ; preds = %186, %184
  %188 = load i1, ptr %59, align 1
  br i1 %188, label %189, label %190

189:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %190

190:                                              ; preds = %189, %187
  %191 = load i1, ptr %57, align 1
  br i1 %191, label %192, label %193

192:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %193

193:                                              ; preds = %192, %190
  %194 = load i1, ptr %55, align 1
  br i1 %194, label %195, label %196

195:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %196

196:                                              ; preds = %195, %193
  %197 = load i1, ptr %53, align 1
  br i1 %197, label %198, label %199

198:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %199

199:                                              ; preds = %198, %196
  %200 = load i1, ptr %50, align 1
  br i1 %200, label %201, label %202

201:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %202

202:                                              ; preds = %201, %199
  %203 = load i1, ptr %49, align 1
  br i1 %203, label %204, label %205

204:                                              ; preds = %202
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %205

205:                                              ; preds = %204, %202
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  %206 = load i1, ptr %47, align 1
  br i1 %206, label %207, label %208

207:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %208

208:                                              ; preds = %207, %205
  %209 = load i1, ptr %45, align 1
  br i1 %209, label %210, label %211

210:                                              ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %211

211:                                              ; preds = %210, %208
  %212 = load i1, ptr %44, align 1
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %214

214:                                              ; preds = %213, %211
  %215 = load i1, ptr %43, align 1
  br i1 %215, label %216, label %217

216:                                              ; preds = %214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %217

217:                                              ; preds = %216, %214
  %218 = load i1, ptr %42, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %220

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

222:                                              ; preds = %220
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %223

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

225:                                              ; preds = %223
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %226

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

228:                                              ; preds = %226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %229

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

231:                                              ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %232

232:                                              ; preds = %231, %229
  %233 = load i1, ptr %35, 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) %30) #8
  br label %235

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

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

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

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

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

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

244:                                              ; preds = %243, %241
  %245 = load i1, ptr %29, 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) %21) #8
  br label %247

247:                                              ; preds = %246, %244
  %248 = load i1, ptr %28, 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) %23) #8
  br label %250

250:                                              ; preds = %249, %247
  %251 = load i1, ptr %27, align 1
  br i1 %251, label %252, label %253

252:                                              ; preds = %250
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  br label %253

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

255:                                              ; preds = %253
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  br label %256

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

258:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %259

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

261:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %262

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

264:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %265

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

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

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

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

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

273:                                              ; preds = %271
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  br label %274

274:                                              ; preds = %273, %271
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #8
  invoke void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %70, double noundef 1.000000e+00, double noundef -1.000000e+00)
          to label %275 unwind label %621

275:                                              ; preds = %274
  br label %276

276:                                              ; preds = %801, %275
  %277 = getelementptr inbounds %class.var2, ptr %69, i32 0, i32 0
  %278 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %277)
          to label %279 unwind label %621

279:                                              ; preds = %276
  %280 = load ptr, ptr %278, align 8, !tbaa !11
  %281 = getelementptr i8, ptr %280, i64 -24
  %282 = load i64, ptr %281, align 8
  %283 = getelementptr inbounds i8, ptr %278, i64 %282
  %284 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %283)
          to label %285 unwind label %621

285:                                              ; preds = %279
  br i1 %284, label %286, label %802

286:                                              ; preds = %285
  %287 = getelementptr inbounds %class.var2, ptr %69, i32 0, i32 1
  %288 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(8) %287)
          to label %289 unwind label %621

289:                                              ; preds = %286
  %290 = getelementptr inbounds %class.var2, ptr %69, i32 0, i32 1
  %291 = load double, ptr %290, align 8, !tbaa !15
  %292 = getelementptr inbounds %class.var2, ptr %70, i32 0, i32 1
  %293 = load double, ptr %292, align 8, !tbaa !15
  %294 = fcmp oge double %291, %293
  store i1 false, ptr %73, align 1
  store i1 false, ptr %75, align 1
  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 %86, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %100, align 1
  store i1 false, ptr %101, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %103, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  store i1 false, ptr %108, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %114, 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 %121, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %123, align 1
  br i1 %294, label %295, label %301

295:                                              ; preds = %289
  %296 = getelementptr inbounds %class.var2, ptr %69, i32 0, i32 0
  %297 = load double, ptr %296, align 8, !tbaa !17
  %298 = getelementptr inbounds %class.var2, ptr %70, i32 0, i32 0
  %299 = load double, ptr %298, align 8, !tbaa !17
  %300 = fcmp ole double %297, %299
  br i1 %300, label %318, label %301

301:                                              ; preds = %295, %289
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #8
  store i1 true, ptr %73, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  store i1 true, ptr %75, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  store i1 true, ptr %81, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #8
  store i1 true, ptr %83, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #8
  store i1 true, ptr %85, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  store i1 true, ptr %86, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %302 unwind label %625

302:                                              ; preds = %301
  store i1 true, ptr %87, 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.23)
          to label %303 unwind label %629

303:                                              ; preds = %302
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #8
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #8
  store i1 true, ptr %92, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  store i1 true, ptr %93, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %304 unwind label %633

304:                                              ; preds = %303
  store i1 true, ptr %94, 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) %89)
          to label %305 unwind label %637

305:                                              ; preds = %304
  store i1 true, ptr %95, 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.24)
          to label %306 unwind label %641

306:                                              ; preds = %305
  store i1 true, ptr %96, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  store i1 true, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #8
  store i1 true, ptr %100, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  store i1 true, ptr %101, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %307 unwind label %645

307:                                              ; preds = %306
  store i1 true, ptr %102, 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 %74, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %308 unwind label %649

308:                                              ; preds = %307
  store i1 true, ptr %103, 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 %72, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.26)
          to label %309 unwind label %653

309:                                              ; preds = %308
  store i1 true, ptr %104, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #8
  store i1 true, ptr %106, align 1
  store i32 438, ptr %107, align 4, !tbaa !13
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %310 unwind label %657

310:                                              ; preds = %309
  store i1 true, ptr %108, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %311 unwind label %661

311:                                              ; preds = %310
  store i1 true, ptr %109, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #8
  store i1 true, ptr %112, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #8
  store i1 true, ptr %114, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #8
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #8
  store i1 true, ptr %118, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  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.27, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %312 unwind label %665

312:                                              ; preds = %311
  store i1 true, ptr %120, 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 %113, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.28)
          to label %313 unwind label %669

313:                                              ; preds = %312
  store i1 true, ptr %121, 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 %111, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.31)
          to label %314 unwind label %673

314:                                              ; preds = %313
  store i1 true, ptr %122, 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 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.30)
          to label %315 unwind label %677

315:                                              ; preds = %314
  store i1 true, ptr %123, align 1
  %316 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %71, ptr noundef %110, i32 noundef -1)
          to label %317 unwind label %681

317:                                              ; preds = %315
  br label %318

318:                                              ; preds = %317, %295
  %319 = phi i1 [ true, %295 ], [ %316, %317 ]
  %320 = xor i1 %319, true
  %321 = load i1, ptr %123, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  br label %323

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

325:                                              ; preds = %323
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  br label %326

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

328:                                              ; preds = %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %329

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

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

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

334:                                              ; preds = %332
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  br label %335

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

337:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #8
  br label %338

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

340:                                              ; preds = %338
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  br label %341

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

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

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

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

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

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

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

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

353:                                              ; preds = %352, %350
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  %354 = load i1, ptr %106, align 1
  br i1 %354, label %355, label %356

355:                                              ; preds = %353
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #8
  br label %356

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

358:                                              ; preds = %356
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %359

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

361:                                              ; preds = %359
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %362

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

364:                                              ; preds = %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %365

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

367:                                              ; preds = %365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  br label %368

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

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

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

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

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

376:                                              ; preds = %374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %377

377:                                              ; preds = %376, %374
  %378 = load i1, ptr %95, align 1
  br i1 %378, label %379, label %380

379:                                              ; preds = %377
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %380

380:                                              ; preds = %379, %377
  %381 = load i1, ptr %94, align 1
  br i1 %381, label %382, label %383

382:                                              ; preds = %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %383

383:                                              ; preds = %382, %380
  %384 = load i1, ptr %93, align 1
  br i1 %384, label %385, label %386

385:                                              ; preds = %383
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  br label %386

386:                                              ; preds = %385, %383
  %387 = load i1, ptr %92, align 1
  br i1 %387, label %388, label %389

388:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  br label %389

389:                                              ; preds = %388, %386
  %390 = load i1, ptr %90, align 1
  br i1 %390, label %391, label %392

391:                                              ; preds = %389
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %392

392:                                              ; preds = %391, %389
  %393 = load i1, ptr %88, align 1
  br i1 %393, label %394, label %395

394:                                              ; preds = %392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %395

395:                                              ; preds = %394, %392
  %396 = load i1, ptr %87, align 1
  br i1 %396, label %397, label %398

397:                                              ; preds = %395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %398

398:                                              ; preds = %397, %395
  %399 = load i1, ptr %86, align 1
  br i1 %399, label %400, label %401

400:                                              ; preds = %398
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  br label %401

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

403:                                              ; preds = %401
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  br label %404

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

406:                                              ; preds = %404
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %407

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

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

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

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

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

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

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

418:                                              ; preds = %416
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %419

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

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

422:                                              ; preds = %421, %419
  %423 = getelementptr inbounds %class.var2, ptr %69, i32 0, i32 1
  %424 = load double, ptr %423, align 8, !tbaa !15
  %425 = getelementptr inbounds %class.var2, ptr %70, i32 0, i32 1
  %426 = load double, ptr %425, align 8, !tbaa !15
  %427 = fcmp une double %424, %426
  br i1 %427, label %428, label %801

428:                                              ; preds = %422
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %429 unwind label %621

429:                                              ; preds = %428
  br label %801

430:                                              ; preds = %4
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %10, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %11, align 4
  br label %1050

434:                                              ; preds = %145
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %10, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %11, align 4
  br label %596

438:                                              ; preds = %146
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %10, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %11, align 4
  br label %592

442:                                              ; preds = %147
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %10, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %11, align 4
  br label %579

446:                                              ; preds = %148
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %10, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %11, align 4
  br label %575

450:                                              ; preds = %149
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %10, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %11, align 4
  br label %571

454:                                              ; preds = %150
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %10, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %11, align 4
  br label %558

458:                                              ; preds = %151
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %10, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %11, align 4
  br label %554

462:                                              ; preds = %152
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %10, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %11, align 4
  br label %550

466:                                              ; preds = %153
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %10, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %11, align 4
  br label %543

470:                                              ; preds = %154
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %10, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %11, align 4
  br label %539

474:                                              ; preds = %155
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %10, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %11, align 4
  br label %517

478:                                              ; preds = %156
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %10, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %11, align 4
  br label %513

482:                                              ; preds = %157
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %10, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %11, align 4
  br label %509

486:                                              ; preds = %158
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %10, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %11, align 4
  br label %505

490:                                              ; preds = %160
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %10, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %11, align 4
  br label %501

494:                                              ; preds = %161
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %10, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %11, align 4
  %498 = load i1, ptr %67, align 1
  br i1 %498, label %499, label %500

499:                                              ; preds = %494
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %500

500:                                              ; preds = %499, %494
  br label %501

501:                                              ; preds = %500, %490
  %502 = load i1, ptr %66, align 1
  br i1 %502, label %503, label %504

503:                                              ; preds = %501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %504

504:                                              ; preds = %503, %501
  br label %505

505:                                              ; preds = %504, %486
  %506 = load i1, ptr %65, align 1
  br i1 %506, label %507, label %508

507:                                              ; preds = %505
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %508

508:                                              ; preds = %507, %505
  br label %509

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

511:                                              ; preds = %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %512

512:                                              ; preds = %511, %509
  br label %513

513:                                              ; preds = %512, %478
  %514 = load i1, ptr %63, align 1
  br i1 %514, label %515, label %516

515:                                              ; preds = %513
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %516

516:                                              ; preds = %515, %513
  br label %517

517:                                              ; preds = %516, %474
  %518 = load i1, ptr %62, align 1
  br i1 %518, label %519, label %520

519:                                              ; preds = %517
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  br label %520

520:                                              ; preds = %519, %517
  %521 = load i1, ptr %61, align 1
  br i1 %521, label %522, label %523

522:                                              ; preds = %520
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %523

523:                                              ; preds = %522, %520
  %524 = load i1, ptr %59, align 1
  br i1 %524, label %525, label %526

525:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %526

526:                                              ; preds = %525, %523
  %527 = load i1, ptr %57, align 1
  br i1 %527, label %528, label %529

528:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %529

529:                                              ; preds = %528, %526
  %530 = load i1, ptr %55, align 1
  br i1 %530, label %531, label %532

531:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %532

532:                                              ; preds = %531, %529
  %533 = load i1, ptr %53, align 1
  br i1 %533, label %534, label %535

534:                                              ; preds = %532
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %535

535:                                              ; preds = %534, %532
  %536 = load i1, ptr %50, align 1
  br i1 %536, label %537, label %538

537:                                              ; preds = %535
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %538

538:                                              ; preds = %537, %535
  br label %539

539:                                              ; preds = %538, %470
  %540 = load i1, ptr %49, align 1
  br i1 %540, label %541, label %542

541:                                              ; preds = %539
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %542

542:                                              ; preds = %541, %539
  br label %543

543:                                              ; preds = %542, %466
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  %544 = load i1, ptr %47, align 1
  br i1 %544, label %545, label %546

545:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %546

546:                                              ; preds = %545, %543
  %547 = load i1, ptr %45, align 1
  br i1 %547, label %548, label %549

548:                                              ; preds = %546
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %549

549:                                              ; preds = %548, %546
  br label %550

550:                                              ; preds = %549, %462
  %551 = load i1, ptr %44, align 1
  br i1 %551, label %552, label %553

552:                                              ; preds = %550
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %553

553:                                              ; preds = %552, %550
  br label %554

554:                                              ; preds = %553, %458
  %555 = load i1, ptr %43, align 1
  br i1 %555, label %556, label %557

556:                                              ; preds = %554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %557

557:                                              ; preds = %556, %554
  br label %558

558:                                              ; preds = %557, %454
  %559 = load i1, ptr %42, align 1
  br i1 %559, label %560, label %561

560:                                              ; preds = %558
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %561

561:                                              ; preds = %560, %558
  %562 = load i1, ptr %41, align 1
  br i1 %562, label %563, label %564

563:                                              ; preds = %561
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %564

564:                                              ; preds = %563, %561
  %565 = load i1, ptr %39, align 1
  br i1 %565, label %566, label %567

566:                                              ; preds = %564
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %567

567:                                              ; preds = %566, %564
  %568 = load i1, ptr %37, align 1
  br i1 %568, label %569, label %570

569:                                              ; preds = %567
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %570

570:                                              ; preds = %569, %567
  br label %571

571:                                              ; preds = %570, %450
  %572 = load i1, ptr %36, align 1
  br i1 %572, label %573, label %574

573:                                              ; preds = %571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %574

574:                                              ; preds = %573, %571
  br label %575

575:                                              ; preds = %574, %446
  %576 = load i1, ptr %35, align 1
  br i1 %576, label %577, label %578

577:                                              ; preds = %575
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %578

578:                                              ; preds = %577, %575
  br label %579

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

581:                                              ; preds = %579
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  br label %582

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

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

585:                                              ; preds = %584, %582
  %586 = load i1, ptr %31, align 1
  br i1 %586, label %587, label %588

587:                                              ; preds = %585
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %588

588:                                              ; preds = %587, %585
  %589 = load i1, ptr %29, align 1
  br i1 %589, label %590, label %591

590:                                              ; preds = %588
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %591

591:                                              ; preds = %590, %588
  br label %592

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

594:                                              ; preds = %592
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %595

595:                                              ; preds = %594, %592
  br label %596

596:                                              ; preds = %595, %434
  %597 = load i1, ptr %27, align 1
  br i1 %597, label %598, label %599

598:                                              ; preds = %596
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  br label %599

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

601:                                              ; preds = %599
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  br label %602

602:                                              ; preds = %601, %599
  %603 = load i1, ptr %24, align 1
  br i1 %603, label %604, label %605

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

605:                                              ; preds = %604, %602
  %606 = load i1, ptr %22, align 1
  br i1 %606, label %607, label %608

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

608:                                              ; preds = %607, %605
  %609 = load i1, ptr %20, align 1
  br i1 %609, label %610, label %611

610:                                              ; preds = %608
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %611

611:                                              ; preds = %610, %608
  %612 = load i1, ptr %18, align 1
  br i1 %612, label %613, label %614

613:                                              ; preds = %611
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  br label %614

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

616:                                              ; preds = %614
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %617

617:                                              ; preds = %616, %614
  %618 = load i1, ptr %14, align 1
  br i1 %618, label %619, label %620

619:                                              ; preds = %617
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  br label %620

620:                                              ; preds = %619, %617
  br label %1050

621:                                              ; preds = %954, %952, %950, %948, %946, %944, %942, %940, %938, %428, %286, %279, %276, %274
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %10, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %11, align 4
  br label %1049

625:                                              ; preds = %301
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %10, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %11, align 4
  br label %776

629:                                              ; preds = %302
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %10, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %11, align 4
  br label %772

633:                                              ; preds = %303
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %10, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %11, align 4
  br label %759

637:                                              ; preds = %304
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %10, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %11, align 4
  br label %755

641:                                              ; preds = %305
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %10, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %11, align 4
  br label %751

645:                                              ; preds = %306
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %10, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %11, align 4
  br label %738

649:                                              ; preds = %307
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %10, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %11, align 4
  br label %734

653:                                              ; preds = %308
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %10, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %11, align 4
  br label %730

657:                                              ; preds = %309
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %10, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %11, align 4
  br label %723

661:                                              ; preds = %310
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %10, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %11, align 4
  br label %719

665:                                              ; preds = %311
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %10, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %11, align 4
  br label %700

669:                                              ; preds = %312
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %10, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %11, align 4
  br label %696

673:                                              ; preds = %313
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %10, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %11, align 4
  br label %692

677:                                              ; preds = %314
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %10, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %11, align 4
  br label %688

681:                                              ; preds = %315
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %10, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %11, align 4
  %685 = load i1, ptr %123, align 1
  br i1 %685, label %686, label %687

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

687:                                              ; preds = %686, %681
  br label %688

688:                                              ; preds = %687, %677
  %689 = load i1, ptr %122, align 1
  br i1 %689, label %690, label %691

690:                                              ; preds = %688
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  br label %691

691:                                              ; preds = %690, %688
  br label %692

692:                                              ; preds = %691, %673
  %693 = load i1, ptr %121, align 1
  br i1 %693, label %694, label %695

694:                                              ; preds = %692
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %695

695:                                              ; preds = %694, %692
  br label %696

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

698:                                              ; preds = %696
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %699

699:                                              ; preds = %698, %696
  br label %700

700:                                              ; preds = %699, %665
  %701 = load i1, ptr %119, align 1
  br i1 %701, label %702, label %703

702:                                              ; preds = %700
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  br label %703

703:                                              ; preds = %702, %700
  %704 = load i1, ptr %118, align 1
  br i1 %704, label %705, label %706

705:                                              ; preds = %703
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #8
  br label %706

706:                                              ; preds = %705, %703
  %707 = load i1, ptr %116, align 1
  br i1 %707, label %708, label %709

708:                                              ; preds = %706
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #8
  br label %709

709:                                              ; preds = %708, %706
  %710 = load i1, ptr %114, align 1
  br i1 %710, label %711, label %712

711:                                              ; preds = %709
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  br label %712

712:                                              ; preds = %711, %709
  %713 = load i1, ptr %112, align 1
  br i1 %713, label %714, label %715

714:                                              ; preds = %712
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #8
  br label %715

715:                                              ; preds = %714, %712
  %716 = load i1, ptr %109, align 1
  br i1 %716, label %717, label %718

717:                                              ; preds = %715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %718

718:                                              ; preds = %717, %715
  br label %719

719:                                              ; preds = %718, %661
  %720 = load i1, ptr %108, align 1
  br i1 %720, label %721, label %722

721:                                              ; preds = %719
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  br label %722

722:                                              ; preds = %721, %719
  br label %723

723:                                              ; preds = %722, %657
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  %724 = load i1, ptr %106, align 1
  br i1 %724, label %725, label %726

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

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

728:                                              ; preds = %726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %729

729:                                              ; preds = %728, %726
  br label %730

730:                                              ; preds = %729, %653
  %731 = load i1, ptr %103, align 1
  br i1 %731, label %732, label %733

732:                                              ; preds = %730
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %733

733:                                              ; preds = %732, %730
  br label %734

734:                                              ; preds = %733, %649
  %735 = load i1, ptr %102, align 1
  br i1 %735, label %736, label %737

736:                                              ; preds = %734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %737

737:                                              ; preds = %736, %734
  br label %738

738:                                              ; preds = %737, %645
  %739 = load i1, ptr %101, align 1
  br i1 %739, label %740, label %741

740:                                              ; preds = %738
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  br label %741

741:                                              ; preds = %740, %738
  %742 = load i1, ptr %100, align 1
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #8
  br label %744

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

746:                                              ; preds = %744
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %747

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

749:                                              ; preds = %747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %750

750:                                              ; preds = %749, %747
  br label %751

751:                                              ; preds = %750, %641
  %752 = load i1, ptr %95, align 1
  br i1 %752, label %753, label %754

753:                                              ; preds = %751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %754

754:                                              ; preds = %753, %751
  br label %755

755:                                              ; preds = %754, %637
  %756 = load i1, ptr %94, align 1
  br i1 %756, label %757, label %758

757:                                              ; preds = %755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %758

758:                                              ; preds = %757, %755
  br label %759

759:                                              ; preds = %758, %633
  %760 = load i1, ptr %93, align 1
  br i1 %760, label %761, label %762

761:                                              ; preds = %759
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  br label %762

762:                                              ; preds = %761, %759
  %763 = load i1, ptr %92, align 1
  br i1 %763, label %764, label %765

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

765:                                              ; preds = %764, %762
  %766 = load i1, ptr %90, align 1
  br i1 %766, label %767, label %768

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

768:                                              ; preds = %767, %765
  %769 = load i1, ptr %88, align 1
  br i1 %769, label %770, label %771

770:                                              ; preds = %768
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %771

771:                                              ; preds = %770, %768
  br label %772

772:                                              ; preds = %771, %629
  %773 = load i1, ptr %87, align 1
  br i1 %773, label %774, label %775

774:                                              ; preds = %772
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %775

775:                                              ; preds = %774, %772
  br label %776

776:                                              ; preds = %775, %625
  %777 = load i1, ptr %86, align 1
  br i1 %777, label %778, label %779

778:                                              ; preds = %776
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #8
  br label %779

779:                                              ; preds = %778, %776
  %780 = load i1, ptr %85, align 1
  br i1 %780, label %781, label %782

781:                                              ; preds = %779
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  br label %782

782:                                              ; preds = %781, %779
  %783 = load i1, ptr %83, align 1
  br i1 %783, label %784, label %785

784:                                              ; preds = %782
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %785

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

787:                                              ; preds = %785
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %788

788:                                              ; preds = %787, %785
  %789 = load i1, ptr %79, align 1
  br i1 %789, label %790, label %791

790:                                              ; preds = %788
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %791

791:                                              ; preds = %790, %788
  %792 = load i1, ptr %77, align 1
  br i1 %792, label %793, label %794

793:                                              ; preds = %791
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  br label %794

794:                                              ; preds = %793, %791
  %795 = load i1, ptr %75, align 1
  br i1 %795, label %796, label %797

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

797:                                              ; preds = %796, %794
  %798 = load i1, ptr %73, align 1
  br i1 %798, label %799, label %800

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

800:                                              ; preds = %799, %797
  br label %1049

801:                                              ; preds = %429, %422
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %70, ptr align 8 %69, i64 16, i1 false), !tbaa.struct !18
  br label %276, !llvm.loop !19

802:                                              ; preds = %285
  %803 = load double, ptr %7, align 8, !tbaa !9
  %804 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %805 = getelementptr inbounds %class.var2, ptr %804, i32 0, i32 0
  %806 = load double, ptr %805, align 8, !tbaa !17
  %807 = fcmp ogt double %803, %806
  br i1 %807, label %808, label %858

808:                                              ; preds = %802
  %809 = load double, ptr %7, align 8, !tbaa !9
  %810 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %811 = getelementptr inbounds %class.var2, ptr %810, i32 0, i32 0
  %812 = load double, ptr %811, align 8, !tbaa !17
  %813 = fcmp olt double %809, %812
  br i1 %813, label %814, label %858

814:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %815 = load double, ptr %7, align 8, !tbaa !9
  %816 = invoke noundef double @_Z12tableLookUpYdRKSt6vectorI4var2IdESaIS1_EE(double noundef %815, ptr noundef nonnull align 8 dereferenceable(24) %68)
          to label %817 unwind label %829

817:                                              ; preds = %814
  store double %816, ptr %124, align 8, !tbaa !9
  br label %818

818:                                              ; preds = %828, %817
  %819 = call noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  br i1 %819, label %826, label %820

820:                                              ; preds = %818
  %821 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %822 = getelementptr inbounds %class.var2, ptr %821, i32 0, i32 0
  %823 = load double, ptr %822, align 8, !tbaa !17
  %824 = load double, ptr %7, align 8, !tbaa !9
  %825 = fcmp olt double %823, %824
  br label %826

826:                                              ; preds = %820, %818
  %827 = phi i1 [ false, %818 ], [ %825, %820 ]
  br i1 %827, label %828, label %833

828:                                              ; preds = %826
  call void @_ZNSt6vectorI4var2IdESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  br label %818, !llvm.loop !21

829:                                              ; preds = %814
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %10, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %11, align 4
  br label %857

833:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  store i64 0, ptr %125, align 8, !tbaa !22
  br label %834

834:                                              ; preds = %846, %833
  %835 = load i64, ptr %125, align 8, !tbaa !22
  %836 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %837 = icmp ult i64 %835, %836
  br i1 %837, label %839, label %838

838:                                              ; preds = %834
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  br label %849

839:                                              ; preds = %834
  %840 = load double, ptr %124, align 8, !tbaa !9
  %841 = load i64, ptr %125, align 8, !tbaa !22
  %842 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %841) #8
  %843 = getelementptr inbounds %class.var2, ptr %842, i32 0, i32 1
  %844 = load double, ptr %843, align 8, !tbaa !15
  %845 = fdiv double %844, %840
  store double %845, ptr %843, align 8, !tbaa !15
  br label %846

846:                                              ; preds = %839
  %847 = load i64, ptr %125, align 8, !tbaa !22
  %848 = add i64 %847, 1
  store i64 %848, ptr %125, align 8, !tbaa !22
  br label %834, !llvm.loop !24

849:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #8
  %850 = load double, ptr %7, align 8, !tbaa !9
  invoke void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %126, double noundef %850, double noundef 1.000000e+00)
          to label %851 unwind label %853

851:                                              ; preds = %849
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %852 unwind label %853

852:                                              ; preds = %851
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %858

853:                                              ; preds = %851, %849
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %10, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #8
  br label %857

857:                                              ; preds = %853, %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %1049

858:                                              ; preds = %852, %808, %802
  %859 = load double, ptr %8, align 8, !tbaa !9
  %860 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %861 = getelementptr inbounds %class.var2, ptr %860, i32 0, i32 0
  %862 = load double, ptr %861, align 8, !tbaa !17
  %863 = fcmp ogt double %859, %862
  br i1 %863, label %864, label %926

864:                                              ; preds = %858
  %865 = load double, ptr %8, align 8, !tbaa !9
  %866 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %867 = getelementptr inbounds %class.var2, ptr %866, i32 0, i32 0
  %868 = load double, ptr %867, align 8, !tbaa !17
  %869 = fcmp olt double %865, %868
  br i1 %869, label %870, label %926

870:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  %871 = load double, ptr %8, align 8, !tbaa !9
  %872 = invoke noundef double @_Z12tableLookUpYdRKSt6vectorI4var2IdESaIS1_EE(double noundef %871, ptr noundef nonnull align 8 dereferenceable(24) %68)
          to label %873 unwind label %882

873:                                              ; preds = %870
  store double %872, ptr %127, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %128) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %128) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #8
  %874 = load double, ptr %8, align 8, !tbaa !9
  invoke void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %129, double noundef %874, double noundef 0.000000e+00)
          to label %875 unwind label %886

875:                                              ; preds = %873
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(16) %129)
          to label %876 unwind label %886

876:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #8
  store i64 0, ptr %130, align 8, !tbaa !22
  br label %877

877:                                              ; preds = %918, %876
  %878 = load i64, ptr %130, align 8, !tbaa !22
  %879 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %880 = icmp ult i64 %878, %879
  br i1 %880, label %890, label %881

881:                                              ; preds = %877
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  br label %921

882:                                              ; preds = %870
  %883 = landingpad { ptr, i32 }
          cleanup
  %884 = extractvalue { ptr, i32 } %883, 0
  store ptr %884, ptr %10, align 8
  %885 = extractvalue { ptr, i32 } %883, 1
  store i32 %885, ptr %11, align 4
  br label %925

886:                                              ; preds = %921, %875, %873
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %10, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %11, align 4
  br label %924

890:                                              ; preds = %877
  %891 = load i64, ptr %130, align 8, !tbaa !22
  %892 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %891) #8
  %893 = getelementptr inbounds %class.var2, ptr %892, i32 0, i32 0
  %894 = load double, ptr %893, align 8, !tbaa !17
  %895 = load double, ptr %8, align 8, !tbaa !9
  %896 = fcmp olt double %894, %895
  br i1 %896, label %897, label %917

897:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #8
  %898 = load i64, ptr %130, align 8, !tbaa !22
  %899 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %898) #8
  %900 = getelementptr inbounds %class.var2, ptr %899, i32 0, i32 0
  %901 = load double, ptr %900, align 8, !tbaa !17
  %902 = load i64, ptr %130, align 8, !tbaa !22
  %903 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %902) #8
  %904 = getelementptr inbounds %class.var2, ptr %903, i32 0, i32 1
  %905 = load double, ptr %904, align 8, !tbaa !15
  %906 = load double, ptr %127, align 8, !tbaa !9
  %907 = fsub double %905, %906
  %908 = load double, ptr %127, align 8, !tbaa !9
  %909 = fsub double 1.000000e+00, %908
  %910 = fdiv double %907, %909
  invoke void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %131, double noundef %901, double noundef %910)
          to label %911 unwind label %913

911:                                              ; preds = %897
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(16) %131)
          to label %912 unwind label %913

912:                                              ; preds = %911
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  br label %917

913:                                              ; preds = %911, %897
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %10, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  br label %924

917:                                              ; preds = %912, %890
  br label %918

918:                                              ; preds = %917
  %919 = load i64, ptr %130, align 8, !tbaa !22
  %920 = add i64 %919, 1
  store i64 %920, ptr %130, align 8, !tbaa !22
  br label %877, !llvm.loop !25

921:                                              ; preds = %881
  %922 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI4var2IdESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(24) %128)
          to label %923 unwind label %886

923:                                              ; preds = %921
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %128) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %128) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %926

924:                                              ; preds = %913, %886
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %128) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %128) #8
  br label %925

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

926:                                              ; preds = %923, %864, %858
  %927 = call noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  br i1 %927, label %938, label %928

928:                                              ; preds = %926
  %929 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %930 = getelementptr inbounds %class.var2, ptr %929, i32 0, i32 1
  %931 = load double, ptr %930, align 8, !tbaa !15
  %932 = fcmp une double %931, 0.000000e+00
  br i1 %932, label %938, label %933

933:                                              ; preds = %928
  %934 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  %935 = getelementptr inbounds %class.var2, ptr %934, i32 0, i32 1
  %936 = load double, ptr %935, align 8, !tbaa !15
  %937 = fcmp une double %936, 1.000000e+00
  br i1 %937, label %938, label %957

938:                                              ; preds = %933, %928, %926
  %939 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %940 unwind label %621

940:                                              ; preds = %938
  %941 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %939, ptr noundef @.str.32)
          to label %942 unwind label %621

942:                                              ; preds = %940
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %941, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %944 unwind label %621

944:                                              ; preds = %942
  %945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %943, ptr noundef @.str.33)
          to label %946 unwind label %621

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %945, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %948 unwind label %621

948:                                              ; preds = %946
  %949 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %947, ptr noundef @.str.34)
          to label %950 unwind label %621

950:                                              ; preds = %948
  %951 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %949, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %952 unwind label %621

952:                                              ; preds = %950
  %953 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %951, ptr noundef @.str.32)
          to label %954 unwind label %621

954:                                              ; preds = %952
  %955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %953, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %956 unwind label %621

956:                                              ; preds = %954
  call void @exit(i32 noundef -1) #9
  unreachable

957:                                              ; preds = %933
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #8
  store i32 0, ptr %132, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #8
  store i64 0, ptr %133, align 8, !tbaa !22
  br label %958

958:                                              ; preds = %987, %957
  %959 = load i64, ptr %133, align 8, !tbaa !22
  %960 = load ptr, ptr %5, align 8, !tbaa !5
  %961 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %960) #8
  %962 = icmp ult i64 %959, %961
  br i1 %962, label %964, label %963

963:                                              ; preds = %958
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  br label %990

964:                                              ; preds = %958
  %965 = load ptr, ptr %5, align 8, !tbaa !5
  %966 = load i64, ptr %133, align 8, !tbaa !22
  %967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %965, i64 noundef %966) #8
  %968 = load ptr, ptr %967, align 8, !tbaa !5
  %969 = invoke noundef ptr @_ZNK4Elem5modelEv(ptr noundef nonnull align 8 dereferenceable(408) %968)
          to label %970 unwind label %982

970:                                              ; preds = %964
  %971 = load ptr, ptr %969, align 8, !tbaa !11
  %972 = getelementptr inbounds ptr, ptr %971, i64 16
  %973 = load ptr, ptr %972, align 8
  %974 = invoke noundef double %973(ptr noundef nonnull align 8 dereferenceable(152) %969)
          to label %975 unwind label %982

975:                                              ; preds = %970
  %976 = call double @sqrt(double noundef 3.000000e+00) #8
  %977 = fdiv double %976, 3.600000e+01
  %978 = fcmp ole double %974, %977
  br i1 %978, label %979, label %986

979:                                              ; preds = %975
  %980 = load i32, ptr %132, align 4, !tbaa !13
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr %132, align 4, !tbaa !13
  br label %986

982:                                              ; preds = %970, %964
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %10, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  br label %1048

986:                                              ; preds = %979, %975
  br label %987

987:                                              ; preds = %986
  %988 = load i64, ptr %133, align 8, !tbaa !22
  %989 = add i64 %988, 1
  store i64 %989, ptr %133, align 8, !tbaa !22
  br label %958, !llvm.loop !26

990:                                              ; preds = %963
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #8
  store i32 0, ptr %134, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  store i64 0, ptr %135, align 8, !tbaa !22
  br label %991

991:                                              ; preds = %1043, %990
  %992 = load i64, ptr %135, align 8, !tbaa !22
  %993 = load ptr, ptr %5, align 8, !tbaa !5
  %994 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %993) #8
  %995 = icmp ult i64 %992, %994
  br i1 %995, label %997, label %996

996:                                              ; preds = %991
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1047

997:                                              ; preds = %991
  %998 = load ptr, ptr %5, align 8, !tbaa !5
  %999 = load i64, ptr %135, align 8, !tbaa !22
  %1000 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %998, i64 noundef %999) #8
  %1001 = load ptr, ptr %1000, align 8, !tbaa !5
  %1002 = invoke noundef ptr @_ZNK4Elem5modelEv(ptr noundef nonnull align 8 dereferenceable(408) %1001)
          to label %1003 unwind label %1034

1003:                                             ; preds = %997
  %1004 = load ptr, ptr %1002, align 8, !tbaa !11
  %1005 = getelementptr inbounds ptr, ptr %1004, i64 16
  %1006 = load ptr, ptr %1005, align 8
  %1007 = invoke noundef double %1006(ptr noundef nonnull align 8 dereferenceable(152) %1002)
          to label %1008 unwind label %1034

1008:                                             ; preds = %1003
  %1009 = call double @sqrt(double noundef 3.000000e+00) #8
  %1010 = fdiv double %1009, 3.600000e+01
  %1011 = fcmp ole double %1007, %1010
  br i1 %1011, label %1012, label %1042

1012:                                             ; preds = %1008
  %1013 = load i32, ptr %134, align 4, !tbaa !13
  %1014 = add nsw i32 %1013, 1
  store i32 %1014, ptr %134, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  %1015 = load i32, ptr %134, align 4, !tbaa !13
  %1016 = sitofp i32 %1015 to double
  %1017 = load i32, ptr %132, align 4, !tbaa !13
  %1018 = sitofp i32 %1017 to double
  %1019 = fdiv double %1016, %1018
  store double %1019, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #8
  %1020 = load double, ptr %136, align 8, !tbaa !9
  %1021 = invoke noundef double @_Z12tableLookUpXdRKSt6vectorI4var2IdESaIS1_EE(double noundef %1020, ptr noundef nonnull align 8 dereferenceable(24) %68)
          to label %1022 unwind label %1038

1022:                                             ; preds = %1012
  store double %1021, ptr %137, align 8, !tbaa !9
  %1023 = load ptr, ptr %5, align 8, !tbaa !5
  %1024 = load i64, ptr %135, align 8, !tbaa !22
  %1025 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1023, i64 noundef %1024) #8
  %1026 = load ptr, ptr %1025, align 8, !tbaa !5
  %1027 = invoke noundef ptr @_ZN4Elem7ChModelEv(ptr noundef nonnull align 8 dereferenceable(408) %1026)
          to label %1028 unwind label %1038

1028:                                             ; preds = %1022
  %1029 = load double, ptr %137, align 8, !tbaa !9
  %1030 = load ptr, ptr %1027, align 8, !tbaa !11
  %1031 = getelementptr inbounds ptr, ptr %1030, i64 11
  %1032 = load ptr, ptr %1031, align 8
  invoke void %1032(ptr noundef nonnull align 8 dereferenceable(152) %1027, double noundef %1029)
          to label %1033 unwind label %1038

1033:                                             ; preds = %1028
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  br label %1042

1034:                                             ; preds = %1003, %997
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %10, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %11, align 4
  br label %1046

1038:                                             ; preds = %1028, %1022, %1012
  %1039 = landingpad { ptr, i32 }
          cleanup
  %1040 = extractvalue { ptr, i32 } %1039, 0
  store ptr %1040, ptr %10, align 8
  %1041 = extractvalue { ptr, i32 } %1039, 1
  store i32 %1041, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  br label %1046

1042:                                             ; preds = %1033, %1008
  br label %1043

1043:                                             ; preds = %1042
  %1044 = load i64, ptr %135, align 8, !tbaa !22
  %1045 = add i64 %1044, 1
  store i64 %1045, ptr %135, align 8, !tbaa !22
  br label %991, !llvm.loop !27

1046:                                             ; preds = %1038, %1034
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #8
  br label %1048

1047:                                             ; preds = %996
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %9) #8
  ret void

1048:                                             ; preds = %1046, %982
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #8
  br label %1049

1049:                                             ; preds = %1048, %925, %857, %800, %621
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #8
  br label %1050

1050:                                             ; preds = %1049, %620, %430
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %9) #8
  br label %1051

1051:                                             ; preds = %1050
  %1052 = load ptr, ptr %10, align 8
  %1053 = load i32, ptr %11, align 4
  %1054 = insertvalue { ptr, i32 } poison, ptr %1052, 0
  %1055 = insertvalue { ptr, i32 } %1054, i32 %1053, 1
  resume { ptr, i32 } %1055
}

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(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: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16), double noundef, double noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z12tableLookUpYdRKSt6vectorI4var2IdESaIS1_EE(double noundef, ptr noundef nonnull align 8 dereferenceable(24)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 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 @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z12tableLookUpXdRKSt6vectorI4var2IdESaIS1_EE(double noundef, ptr noundef nonnull align 8 dereferenceable(24)) #7

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn 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 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !10, i64 8}
!16 = !{!"_ZTS4var2IdE", !10, i64 0, !10, i64 8}
!17 = !{!16, !10, i64 0}
!18 = !{i64 0, i64 8, !9, i64 8, i64 8, !9}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = !{!23, !23, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = distinct !{!24, !20}
!25 = distinct !{!25, !20}
!26 = distinct !{!26, !20}
!27 = distinct !{!27, !20}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"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.std::vector.35" = type { %"struct.std::_Vector_base.36" }
%"struct.std::_Vector_base.36" = type { %"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<var2<double>, std::allocator<var2<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.var2 = type { double, double }

@.str.22 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd = external hidden unnamed_addr constant [21 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [75 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.32 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 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 nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 #2 align 2

declare i32 @__gxx_personality_v0(...)

; 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 uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, double noundef %2, double noundef %3) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::basic_ifstream", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %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 i32, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::vector.35", align 8
  %27 = alloca %class.var2, align 8
  %28 = alloca %class.var2, align 8
  %29 = alloca %"class.std::__cxx11::basic_string", 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::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i32, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %class.var2, align 8
  %49 = alloca %"class.std::vector.35", align 8
  %50 = alloca %class.var2, align 8
  %51 = alloca %class.var2, align 8
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %5) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %5, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef 8)
  %52 = load ptr, ptr %5, align 8, !tbaa !5
  %53 = getelementptr i8, ptr %52, i64 -24
  %54 = load i64, ptr %53, align 8
  %55 = getelementptr inbounds i8, ptr %5, i64 %54
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  %56 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %55)
          to label %57 unwind label %117

57:                                               ; preds = %4
  br i1 %56, label %.thread, label %58

58:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %59 unwind label %119

59:                                               ; preds = %58
  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.23)
          to label %60 unwind label %121

60:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %61 unwind label %123

61:                                               ; preds = %60
  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) %14)
          to label %62 unwind label %125

62:                                               ; preds = %61
  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.24)
          to label %63 unwind label %127

63:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %64 unwind label %129

64:                                               ; preds = %63
  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) %16)
          to label %65 unwind label %131

65:                                               ; preds = %64
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.26)
          to label %66 unwind label %133

66:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  store i32 431, ptr %19, align 4, !tbaa !8
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %67 unwind label %135

67:                                               ; preds = %66
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %68 unwind label %137

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %69 unwind label %139

69:                                               ; preds = %68
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.28)
          to label %70 unwind label %141

70:                                               ; preds = %69
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.29)
          to label %71 unwind label %143

71:                                               ; preds = %70
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %72 unwind label %145

72:                                               ; preds = %71
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.30)
          to label %73 unwind label %147

73:                                               ; preds = %72
  %74 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %6, ptr noundef nonnull %20, i32 noundef -1)
          to label %.critedge351 unwind label %149

.thread:                                          ; preds = %57
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %.critedge372

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

.critedge372:                                     ; preds = %.thread, %.critedge351
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #7
  call void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %28, double noundef 1.000000e+00, double noundef -1.000000e+00)
  %75 = getelementptr inbounds i8, ptr %27, i64 8
  %76 = getelementptr inbounds i8, ptr %28, i64 8
  br label %77

77:                                               ; preds = %210, %.critedge372
  %78 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %79 unwind label %.loopexit

79:                                               ; preds = %77
  %80 = load ptr, ptr %78, align 8, !tbaa !5
  %81 = getelementptr i8, ptr %80, i64 -24
  %82 = load i64, ptr %81, align 8
  %83 = getelementptr inbounds i8, ptr %78, i64 %82
  %84 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %83)
          to label %85 unwind label %.loopexit

85:                                               ; preds = %79
  br i1 %84, label %86, label %211

86:                                               ; preds = %85
  %87 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERd(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %88 unwind label %.loopexit

88:                                               ; preds = %86
  %89 = load double, ptr %75, align 8, !tbaa !11
  %90 = load double, ptr %76, align 8, !tbaa !11
  %91 = fcmp ult double %89, %90
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  br i1 %91, label %96, label %92

92:                                               ; preds = %88
  %93 = load double, ptr %27, align 8, !tbaa !14
  %94 = load double, ptr %28, align 8, !tbaa !14
  %95 = fcmp ugt double %93, %94
  br i1 %95, label %96, label %112

96:                                               ; preds = %92, %88
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %97 unwind label %166

97:                                               ; preds = %96
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.23)
          to label %98 unwind label %168

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @__FUNCTION__._Z20setShapeFactFromFileRSt6vectorIP4ElemSaIS1_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %99 unwind label %170

99:                                               ; preds = %98
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %37)
          to label %100 unwind label %172

100:                                              ; preds = %99
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.24)
          to label %101 unwind label %174

101:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %102 unwind label %176

102:                                              ; preds = %101
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %39)
          to label %103 unwind label %178

103:                                              ; preds = %102
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.26)
          to label %104 unwind label %180

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  store i32 438, ptr %42, align 4, !tbaa !8
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %105 unwind label %182

105:                                              ; preds = %104
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %106 unwind label %184

106:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %107 unwind label %186

107:                                              ; preds = %106
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.28)
          to label %108 unwind label %188

108:                                              ; preds = %107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.31)
          to label %109 unwind label %190

109:                                              ; preds = %108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.30)
          to label %110 unwind label %192

110:                                              ; preds = %109
  %111 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %29, ptr noundef nonnull %43, i32 noundef -1)
          to label %.critedge386 unwind label %194

112:                                              ; preds = %92
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br label %.critedge407

.critedge386:                                     ; preds = %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  %.pre = load double, ptr %75, align 8, !tbaa !11
  %.pre433 = load double, ptr %76, align 8, !tbaa !11
  br label %.critedge407

.critedge407:                                     ; preds = %112, %.critedge386
  %113 = phi double [ %90, %112 ], [ %.pre433, %.critedge386 ]
  %114 = phi double [ %89, %112 ], [ %.pre, %.critedge386 ]
  %115 = fcmp une double %114, %113
  br i1 %115, label %116, label %210

116:                                              ; preds = %.critedge407
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %210 unwind label %.loopexit

117:                                              ; preds = %4
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %352

119:                                              ; preds = %58
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %165

121:                                              ; preds = %59
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %164

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

125:                                              ; preds = %61
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %162

127:                                              ; preds = %62
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %161

129:                                              ; preds = %63
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %160

131:                                              ; preds = %64
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %159

133:                                              ; preds = %65
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %158

135:                                              ; preds = %66
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %157

137:                                              ; preds = %67
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %156

139:                                              ; preds = %68
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %155

141:                                              ; preds = %69
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %154

143:                                              ; preds = %70
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %153

145:                                              ; preds = %71
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %152

147:                                              ; preds = %72
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %151

149:                                              ; preds = %73
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %151

151:                                              ; preds = %147, %149
  %.pn = phi { ptr, i32 } [ %150, %149 ], [ %148, %147 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %152

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

153:                                              ; preds = %143, %152
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %152 ], [ %144, %143 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %154

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

155:                                              ; preds = %139, %154
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %154 ], [ %140, %139 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %156

156:                                              ; preds = %137, %155
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %155 ], [ %138, %137 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %157

157:                                              ; preds = %156, %135
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %156 ], [ %136, %135 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %158

158:                                              ; preds = %133, %157
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %157 ], [ %134, %133 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %159

159:                                              ; preds = %131, %158
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %158 ], [ %132, %131 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %160

160:                                              ; preds = %129, %159
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %159 ], [ %130, %129 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %161

161:                                              ; preds = %127, %160
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %160 ], [ %128, %127 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %162

162:                                              ; preds = %125, %161
  %.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, %161 ], [ %126, %125 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %163

163:                                              ; preds = %123, %162
  %.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, %162 ], [ %124, %123 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %164

164:                                              ; preds = %121, %163
  %.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, %163 ], [ %122, %121 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %165

165:                                              ; preds = %119, %164
  %.pn.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.pn, %164 ], [ %120, %119 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %352

.loopexit:                                        ; preds = %77, %79, %86, %116
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %351

.loopexit.split-lp:                               ; preds = %287, %289, %291, %293, %295, %297, %299, %301, %303
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %351

166:                                              ; preds = %96
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %209

168:                                              ; preds = %97
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %208

170:                                              ; preds = %98
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %207

172:                                              ; preds = %99
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %206

174:                                              ; preds = %100
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %205

176:                                              ; preds = %101
  %177 = landingpad { ptr, i32 }
          cleanup
  br label %204

178:                                              ; preds = %102
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %203

180:                                              ; preds = %103
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %202

182:                                              ; preds = %104
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %201

184:                                              ; preds = %105
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %200

186:                                              ; preds = %106
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %199

188:                                              ; preds = %107
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %198

190:                                              ; preds = %108
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %197

192:                                              ; preds = %109
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %196

194:                                              ; preds = %110
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %196

196:                                              ; preds = %192, %194
  %.pn317 = phi { ptr, i32 } [ %195, %194 ], [ %193, %192 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %197

197:                                              ; preds = %190, %196
  %.pn317.pn = phi { ptr, i32 } [ %.pn317, %196 ], [ %191, %190 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %198

198:                                              ; preds = %188, %197
  %.pn317.pn.pn = phi { ptr, i32 } [ %.pn317.pn, %197 ], [ %189, %188 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %199

199:                                              ; preds = %186, %198
  %.pn317.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn, %198 ], [ %187, %186 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %200

200:                                              ; preds = %184, %199
  %.pn317.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn, %199 ], [ %185, %184 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %201

201:                                              ; preds = %200, %182
  %.pn317.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn, %200 ], [ %183, %182 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %202

202:                                              ; preds = %180, %201
  %.pn317.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn, %201 ], [ %181, %180 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %203

203:                                              ; preds = %178, %202
  %.pn317.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn, %202 ], [ %179, %178 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %204

204:                                              ; preds = %176, %203
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn, %203 ], [ %177, %176 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %205

205:                                              ; preds = %174, %204
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn, %204 ], [ %175, %174 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %206

206:                                              ; preds = %172, %205
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn, %205 ], [ %173, %172 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %207

207:                                              ; preds = %170, %206
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %206 ], [ %171, %170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %208

208:                                              ; preds = %168, %207
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %207 ], [ %169, %168 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %209

209:                                              ; preds = %166, %208
  %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %208 ], [ %167, %166 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %351

210:                                              ; preds = %116, %.critedge407
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %27, i64 16, i1 false), !tbaa.struct !15
  br label %77, !llvm.loop !17

211:                                              ; preds = %85
  %212 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %213 = load double, ptr %212, align 8, !tbaa !14
  %214 = fcmp olt double %213, %2
  br i1 %214, label %215, label %238

215:                                              ; preds = %211
  %216 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %217 = load double, ptr %216, align 8, !tbaa !14
  %218 = fcmp ogt double %217, %2
  br i1 %218, label %219, label %238

219:                                              ; preds = %215
  %220 = call noundef double @_Z12tableLookUpYdRKSt6vectorI4var2IdESaIS1_EE(double noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %26)
  %221 = call noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br i1 %221, label %.critedge, label %.lr.ph

.lr.ph:                                           ; preds = %219, %225
  %222 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %223 = load double, ptr %222, align 8, !tbaa !14
  %224 = fcmp olt double %223, %2
  br i1 %224, label %225, label %.critedge

225:                                              ; preds = %.lr.ph
  call void @_ZNSt6vectorI4var2IdESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %226 = call noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br i1 %226, label %.critedge, label %.lr.ph, !llvm.loop !19

.critedge:                                        ; preds = %.lr.ph, %225, %219
  %227 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %.not = icmp eq i64 %227, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph419

._crit_edge:                                      ; preds = %.lr.ph419, %.critedge
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #7
  call void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %48, double noundef %2, double noundef 1.000000e+00)
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %235 unwind label %236

.lr.ph419:                                        ; preds = %.critedge, %.lr.ph419
  %.0224418 = phi i64 [ %232, %.lr.ph419 ], [ 0, %.critedge ]
  %228 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.0224418) #7
  %229 = getelementptr inbounds i8, ptr %228, i64 8
  %230 = load double, ptr %229, align 8, !tbaa !11
  %231 = fdiv double %230, %220
  store double %231, ptr %229, align 8, !tbaa !11
  %232 = add nuw i64 %.0224418, 1
  %233 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %234 = icmp ult i64 %232, %233
  br i1 %234, label %.lr.ph419, label %._crit_edge, !llvm.loop !20

235:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #7
  br label %238

236:                                              ; preds = %._crit_edge
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #7
  br label %351

238:                                              ; preds = %235, %215, %211
  %239 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %240 = load double, ptr %239, align 8, !tbaa !14
  %241 = fcmp olt double %240, %3
  br i1 %241, label %242, label %274

242:                                              ; preds = %238
  %243 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %244 = load double, ptr %243, align 8, !tbaa !14
  %245 = fcmp ogt double %244, %3
  br i1 %245, label %246, label %274

246:                                              ; preds = %242
  %247 = call noundef double @_Z12tableLookUpYdRKSt6vectorI4var2IdESaIS1_EE(double noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %26)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #7
  call void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %50, double noundef %3, double noundef 0.000000e+00)
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %.preheader415 unwind label %251

.preheader415:                                    ; preds = %246
  %248 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %.not430 = icmp eq i64 %248, 0
  br i1 %.not430, label %._crit_edge422, label %.lr.ph421

.lr.ph421:                                        ; preds = %.preheader415
  %249 = fsub double 1.000000e+00, %247
  br label %253

._crit_edge422:                                   ; preds = %268, %.preheader415
  %250 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI4var2IdESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %272 unwind label %251

251:                                              ; preds = %._crit_edge422, %246
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %273

253:                                              ; preds = %.lr.ph421, %268
  %.0222420 = phi i64 [ 0, %.lr.ph421 ], [ %269, %268 ]
  %254 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.0222420) #7
  %255 = load double, ptr %254, align 8, !tbaa !14
  %256 = fcmp olt double %255, %3
  br i1 %256, label %257, label %268

257:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #7
  %258 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.0222420) #7
  %259 = load double, ptr %258, align 8, !tbaa !14
  %260 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %.0222420) #7
  %261 = getelementptr inbounds i8, ptr %260, i64 8
  %262 = load double, ptr %261, align 8, !tbaa !11
  %263 = fsub double %262, %247
  %264 = fdiv double %263, %249
  call void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %51, double noundef %259, double noundef %264)
  invoke void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %265 unwind label %266

265:                                              ; preds = %257
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  br label %268

266:                                              ; preds = %257
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  br label %273

268:                                              ; preds = %253, %265
  %269 = add nuw i64 %.0222420, 1
  %270 = call noundef i64 @_ZNKSt6vectorI4var2IdESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %271 = icmp ult i64 %269, %270
  br i1 %271, label %253, label %._crit_edge422, !llvm.loop !21

272:                                              ; preds = %._crit_edge422
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #7
  br label %274

273:                                              ; preds = %266, %251
  %.pn315 = phi { ptr, i32 } [ %267, %266 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #7
  br label %351

274:                                              ; preds = %272, %242, %238
  %275 = call noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br i1 %275, label %287, label %276

276:                                              ; preds = %274
  %277 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %278 = getelementptr inbounds i8, ptr %277, i64 8
  %279 = load double, ptr %278, align 8, !tbaa !11
  %280 = fcmp une double %279, 0.000000e+00
  br i1 %280, label %287, label %281

281:                                              ; preds = %276
  %282 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  %283 = getelementptr inbounds i8, ptr %282, i64 8
  %284 = load double, ptr %283, align 8, !tbaa !11
  %285 = fcmp une double %284, 1.000000e+00
  br i1 %285, label %287, label %.preheader414

.preheader414:                                    ; preds = %281
  %286 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %.not431 = icmp eq i64 %286, 0
  br i1 %.not431, label %.preheader, label %.lr.ph425

287:                                              ; preds = %281, %276, %274
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %289 unwind label %.loopexit.split-lp

289:                                              ; preds = %287
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef nonnull @.str.32)
          to label %291 unwind label %.loopexit.split-lp

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %293 unwind label %.loopexit.split-lp

293:                                              ; preds = %291
  %294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %292, ptr noundef nonnull @.str.33)
          to label %295 unwind label %.loopexit.split-lp

295:                                              ; preds = %293
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %297 unwind label %.loopexit.split-lp

297:                                              ; preds = %295
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef nonnull @.str.34)
          to label %299 unwind label %.loopexit.split-lp

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %301 unwind label %.loopexit.split-lp

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull @.str.32)
          to label %303 unwind label %.loopexit.split-lp

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %305 unwind label %.loopexit.split-lp

305:                                              ; preds = %303
  call void @exit(i32 noundef -1) #8
  unreachable

.preheader.loopexit:                              ; preds = %315
  %306 = uitofp nneg i32 %.1221 to double
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit, %.preheader414
  %.0220.lcssa = phi double [ 0.000000e+00, %.preheader414 ], [ %306, %.preheader.loopexit ]
  %307 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %.not432 = icmp eq i64 %307, 0
  br i1 %.not432, label %._crit_edge429, label %.lr.ph428

.lr.ph425:                                        ; preds = %.preheader414, %315
  %.0219424 = phi i64 [ %318, %315 ], [ 0, %.preheader414 ]
  %.0220423 = phi i32 [ %.1221, %315 ], [ 0, %.preheader414 ]
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0219424) #7
  %309 = load ptr, ptr %308, align 8, !tbaa !22
  %310 = call noundef ptr @_ZNK4Elem5modelEv(ptr noundef nonnull align 8 dereferenceable(408) %309)
  %311 = load ptr, ptr %310, align 8, !tbaa !5
  %312 = getelementptr inbounds i8, ptr %311, i64 128
  %313 = load ptr, ptr %312, align 8
  %314 = invoke noundef double %313(ptr noundef nonnull align 8 dereferenceable(152) %310)
          to label %315 unwind label %321

315:                                              ; preds = %.lr.ph425
  %316 = fcmp ole double %314, 0x3FA8A2345CC04425
  %317 = zext i1 %316 to i32
  %.1221 = add nuw nsw i32 %.0220423, %317
  %318 = add nuw i64 %.0219424, 1
  %319 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %320 = icmp ult i64 %318, %319
  br i1 %320, label %.lr.ph425, label %.preheader.loopexit, !llvm.loop !24

321:                                              ; preds = %.lr.ph425
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %351

._crit_edge429:                                   ; preds = %347, %.preheader
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %5) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %5) #7
  ret void

.lr.ph428:                                        ; preds = %.preheader, %347
  %.0216427 = phi i64 [ %348, %347 ], [ 0, %.preheader ]
  %.0217426 = phi i32 [ %.1218, %347 ], [ 0, %.preheader ]
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0216427) #7
  %324 = load ptr, ptr %323, align 8, !tbaa !22
  %325 = call noundef ptr @_ZNK4Elem5modelEv(ptr noundef nonnull align 8 dereferenceable(408) %324)
  %326 = load ptr, ptr %325, align 8, !tbaa !5
  %327 = getelementptr inbounds i8, ptr %326, i64 128
  %328 = load ptr, ptr %327, align 8
  %329 = invoke noundef double %328(ptr noundef nonnull align 8 dereferenceable(152) %325)
          to label %330 unwind label %343

330:                                              ; preds = %.lr.ph428
  %331 = fcmp ugt double %329, 0x3FA8A2345CC04425
  br i1 %331, label %347, label %332

332:                                              ; preds = %330
  %333 = add nsw i32 %.0217426, 1
  %334 = sitofp i32 %333 to double
  %335 = fdiv double %334, %.0220.lcssa
  %336 = call noundef double @_Z12tableLookUpXdRKSt6vectorI4var2IdESaIS1_EE(double noundef %335, ptr noundef nonnull align 8 dereferenceable(24) %26)
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0216427) #7
  %338 = load ptr, ptr %337, align 8, !tbaa !22
  %339 = call noundef ptr @_ZN4Elem7ChModelEv(ptr noundef nonnull align 8 dereferenceable(408) %338)
  %340 = load ptr, ptr %339, align 8, !tbaa !5
  %341 = getelementptr inbounds i8, ptr %340, i64 88
  %342 = load ptr, ptr %341, align 8
  invoke void %342(ptr noundef nonnull align 8 dereferenceable(152) %339, double noundef %336)
          to label %347 unwind label %345

343:                                              ; preds = %.lr.ph428
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %351

345:                                              ; preds = %332
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %351

347:                                              ; preds = %332, %330
  %.1218 = phi i32 [ %.0217426, %330 ], [ %333, %332 ]
  %348 = add nuw i64 %.0216427, 1
  %349 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #7
  %350 = icmp ult i64 %348, %349
  br i1 %350, label %.lr.ph428, label %._crit_edge429, !llvm.loop !25

351:                                              ; preds = %.loopexit, %.loopexit.split-lp, %321, %345, %343, %209, %273, %236
  %.pn332 = phi { ptr, i32 } [ %.pn317.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %209 ], [ %.pn315, %273 ], [ %237, %236 ], [ %322, %321 ], [ %346, %345 ], [ %344, %343 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #7
  call void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %352

352:                                              ; preds = %165, %351, %117
  %.pn332.pn = phi { ptr, i32 } [ %.pn332, %351 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %165 ], [ %118, %117 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %5) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn332.pn
}

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

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

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

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

; Function Attrs: 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 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 #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4var2IdEC2Edd(ptr noundef nonnull align 8 dereferenceable(16), double noundef, double noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorI4var2IdESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorI4var2IdESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorI4var2IdESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 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 @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = !{!12, !13, i64 8}
!12 = !{!"_ZTS4var2IdE", !13, i64 0, !13, i64 8}
!13 = !{!"double", !10, i64 0}
!14 = !{!12, !13, i64 0}
!15 = !{i64 0, i64 8, !16, i64 8, i64 8, !16}
!16 = !{!13, !13, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = !{!23, !23, i64 0}
!23 = !{!"any pointer", !10, i64 0}
!24 = distinct !{!24, !18}
!25 = distinct !{!25, !18}


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