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

; 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_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%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.14 }
%union.anon.14 = type { i32 }
%"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::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array.59" = type { [2 x i16] }
%"class.std::allocator.56" = type { i8 }
%"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.var3 = type { double, double, double }
%class.results3D = type <{ ptr, ptr, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %"class.std::__cxx11::basic_string", double, i32, i8, [3 x i8] }>
%"struct.std::pair" = type { i32, double }

@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [61 x i8], align 1
@_ZTI4Elem = external constant ptr
@_ZTI6Throat = external constant ptr
@.str.93 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [17 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

declare i32 @__gxx_personality_v0(...)

; 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 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)) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9results3D16writeThroatLinesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddidb(ptr noundef nonnull align 8 dereferenceable(93) %0, ptr noundef %1, double noundef %2, double noundef %3, i32 noundef %4, double noundef %5, i1 noundef zeroext %6) #3 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca i32, align 4
  %13 = alloca double, align 8
  %14 = alloca i8, align 1
  %15 = alloca %"class.std::basic_ofstream", align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::vector.54", align 8
  %20 = alloca %"struct.std::array.59", align 2
  %21 = alloca %"class.std::allocator.56", align 1
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %class.var3, align 8
  %26 = alloca %class.var3, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store double %2, ptr %10, align 8, !tbaa !9
  store double %3, ptr %11, align 8, !tbaa !9
  store i32 %4, ptr %12, align 4, !tbaa !11
  store double %5, ptr %13, align 8, !tbaa !9
  %31 = zext i1 %6 to i8
  store i8 %31, ptr %14, align 1, !tbaa !13
  %32 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 512, ptr %15) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %15, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef 16)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %33 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %34 = load ptr, ptr %33, align 8, !tbaa !15
  %35 = call noundef i64 @_ZNKSt6vectorIPK4ElemSaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #6
  %36 = trunc i64 %35 to i32
  store i32 %36, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #6
  %37 = load i32, ptr %18, align 4, !tbaa !11
  %38 = sext i32 %37 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  %39 = getelementptr inbounds %"struct.std::array.59", ptr %20, i32 0, i32 0
  store i16 -1, ptr %39, align 2, !tbaa !21
  %40 = getelementptr inbounds i16, ptr %39, i64 1
  store i16 -1, ptr %40, align 2, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  call void @_ZNSaISt5arrayIsLm2EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  invoke void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %38, ptr noundef nonnull align 2 dereferenceable(4) %20, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %41 unwind label %119

41:                                               ; preds = %7
  call void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  %42 = load i32, ptr %18, align 4, !tbaa !11
  %43 = sext i32 %42 to i64
  %44 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %45 = load ptr, ptr %44, align 8, !tbaa !15
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef 0) #6
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %47)
          to label %49 unwind label %123

49:                                               ; preds = %41
  %50 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  %51 = add i64 %43, %50
  %52 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %53 = load ptr, ptr %52, align 8, !tbaa !15
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef 1) #6
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  %56 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %55)
          to label %57 unwind label %123

57:                                               ; preds = %49
  %58 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %56) #6
  %59 = add i64 %51, %58
  %60 = load i32, ptr %18, align 4, !tbaa !11
  %61 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %62 = load i32, ptr %61, align 4, !tbaa !23
  %63 = sub nsw i32 %60, %62
  %64 = sext i32 %63 to i64
  invoke void @_ZN9results3D5startB5cxx11Emm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(93) %32, i64 noundef %59, i64 noundef %64)
          to label %65 unwind label %123

65:                                               ; preds = %57
  %66 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %67 unwind label %127

67:                                               ; preds = %65
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  %68 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.75)
          to label %69 unwind label %132

69:                                               ; preds = %67
  %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.76)
          to label %71 unwind label %132

71:                                               ; preds = %69
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %72

72:                                               ; preds = %149, %71
  %73 = load i32, ptr %16, align 4, !tbaa !11
  %74 = load i32, ptr %18, align 4, !tbaa !11
  %75 = icmp slt i32 %73, %74
  br i1 %75, label %76, label %152

76:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #6
  %77 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %78 = load ptr, ptr %77, align 8, !tbaa !15
  %79 = load i32, ptr %16, align 4, !tbaa !11
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %80) #6
  %82 = load ptr, ptr %81, align 8, !tbaa !5
  %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %82)
          to label %84 unwind label %136

84:                                               ; preds = %76
  %85 = getelementptr inbounds %class.var3, ptr %83, i32 0, i32 0
  %86 = load double, ptr %85, align 8, !tbaa !24
  %87 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %88 = load ptr, ptr %87, align 8, !tbaa !15
  %89 = load i32, ptr %16, align 4, !tbaa !11
  %90 = sext i32 %89 to i64
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %90) #6
  %92 = load ptr, ptr %91, align 8, !tbaa !5
  %93 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %92)
          to label %94 unwind label %136

94:                                               ; preds = %84
  %95 = getelementptr inbounds %class.var3, ptr %93, i32 0, i32 1
  %96 = load double, ptr %95, align 8, !tbaa !26
  %97 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %98 = load ptr, ptr %97, align 8, !tbaa !15
  %99 = load i32, ptr %16, align 4, !tbaa !11
  %100 = sext i32 %99 to i64
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %98, i64 noundef %100) #6
  %102 = load ptr, ptr %101, align 8, !tbaa !5
  %103 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %102)
          to label %104 unwind label %136

104:                                              ; preds = %94
  %105 = getelementptr inbounds %class.var3, ptr %103, i32 0, i32 2
  %106 = load double, ptr %105, align 8, !tbaa !27
  invoke void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %25, double noundef %86, double noundef %96, double noundef %106)
          to label %107 unwind label %136

107:                                              ; preds = %104
  %108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %109 unwind label %136

109:                                              ; preds = %107
  %110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef @.str.51)
          to label %111 unwind label %136

111:                                              ; preds = %109
  %112 = load i32, ptr %16, align 4, !tbaa !11
  %113 = add nsw i32 %112, 1
  %114 = srem i32 %113, 20
  %115 = icmp ne i32 %114, 0
  br i1 %115, label %140, label %116

116:                                              ; preds = %111
  %117 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %15, i8 noundef signext 10)
          to label %118 unwind label %136

118:                                              ; preds = %116
  br label %140

119:                                              ; preds = %7
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %22, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %23, align 4
  call void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  br label %1226

123:                                              ; preds = %57, %49, %41
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %22, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %23, align 4
  br label %131

127:                                              ; preds = %65
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %22, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %131

131:                                              ; preds = %127, %123
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %1225

132:                                              ; preds = %1214, %1209, %1207, %1205, %1190, %1188, %1180, %1167, %1151, %1149, %1141, %1134, %1132, %1130, %1115, %1111, %1103, %1090, %1074, %1070, %1062, %1055, %1053, %1051, %1036, %1034, %1023, %1010, %994, %992, %981, %974, %972, %970, %955, %953, %945, %932, %916, %914, %906, %899, %897, %895, %880, %878, %872, %864, %851, %835, %833, %825, %818, %816, %814, %812, %810, %799, %795, %792, %772, %770, %768, %757, %754, %746, %737, %735, %733, %722, %719, %711, %702, %700, %698, %687, %684, %676, %667, %665, %663, %652, %650, %639, %630, %628, %626, %615, %612, %603, %601, %599, %588, %586, %583, %563, %561, %559, %548, %546, %538, %529, %527, %525, %514, %512, %504, %495, %493, %491, %489, %478, %476, %466, %464, %453, %448, %438, %436, %284, %282, %280, %278, %157, %69, %67
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %22, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %23, align 4
  br label %1225

136:                                              ; preds = %116, %109, %107, %104, %94, %84, %76
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %22, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #6
  br label %1225

140:                                              ; preds = %118, %111
  %141 = load i32, ptr %16, align 4, !tbaa !11
  %142 = sext i32 %141 to i64
  %143 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %142) #6
  %144 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %143, i64 noundef 0) #6
  store i16 -1, ptr %144, align 2, !tbaa !21
  %145 = load i32, ptr %16, align 4, !tbaa !11
  %146 = sext i32 %145 to i64
  %147 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %146) #6
  %148 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %147, i64 noundef 1) #6
  store i16 -1, ptr %148, align 2, !tbaa !21
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #6
  br label %149

149:                                              ; preds = %140
  %150 = load i32, ptr %16, align 4, !tbaa !11
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr %16, align 4, !tbaa !11
  br label %72, !llvm.loop !28

152:                                              ; preds = %72
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %153

153:                                              ; preds = %275, %152
  %154 = load i32, ptr %17, align 4, !tbaa !11
  %155 = icmp slt i32 %154, 2
  br i1 %155, label %156, label %278

156:                                              ; preds = %153
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %157

157:                                              ; preds = %271, %156
  %158 = load i32, ptr %16, align 4, !tbaa !11
  %159 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %160 = load ptr, ptr %159, align 8, !tbaa !15
  %161 = load i32, ptr %17, align 4, !tbaa !11
  %162 = sext i32 %161 to i64
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef %162) #6
  %164 = load ptr, ptr %163, align 8, !tbaa !5
  %165 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %164)
          to label %166 unwind label %132

166:                                              ; preds = %157
  %167 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #6
  %168 = trunc i64 %167 to i32
  %169 = icmp slt i32 %158, %168
  br i1 %169, label %170, label %274

170:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #6
  %171 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %172 = load ptr, ptr %171, align 8, !tbaa !15
  %173 = load i32, ptr %17, align 4, !tbaa !11
  %174 = sext i32 %173 to i64
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %174) #6
  %176 = load ptr, ptr %175, align 8, !tbaa !5
  %177 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %176)
          to label %178 unwind label %242

178:                                              ; preds = %170
  %179 = load i32, ptr %16, align 4, !tbaa !11
  %180 = sext i32 %179 to i64
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %180) #6
  %182 = load ptr, ptr %181, align 8, !tbaa !5
  %183 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %182)
          to label %184 unwind label %242

184:                                              ; preds = %178
  %185 = getelementptr inbounds %class.var3, ptr %183, i32 0, i32 0
  %186 = load double, ptr %185, align 8, !tbaa !24
  %187 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %188 = load ptr, ptr %187, align 8, !tbaa !15
  %189 = load i32, ptr %17, align 4, !tbaa !11
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %190) #6
  %192 = load ptr, ptr %191, align 8, !tbaa !5
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %192)
          to label %194 unwind label %242

194:                                              ; preds = %184
  %195 = load i32, ptr %16, align 4, !tbaa !11
  %196 = sext i32 %195 to i64
  %197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %196) #6
  %198 = load ptr, ptr %197, align 8, !tbaa !5
  %199 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %198)
          to label %200 unwind label %242

200:                                              ; preds = %194
  %201 = getelementptr inbounds %class.var3, ptr %199, i32 0, i32 1
  %202 = load double, ptr %201, align 8, !tbaa !26
  %203 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %204 = load ptr, ptr %203, align 8, !tbaa !15
  %205 = load i32, ptr %17, align 4, !tbaa !11
  %206 = sext i32 %205 to i64
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %204, i64 noundef %206) #6
  %208 = load ptr, ptr %207, align 8, !tbaa !5
  %209 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %208)
          to label %210 unwind label %242

210:                                              ; preds = %200
  %211 = load i32, ptr %16, align 4, !tbaa !11
  %212 = sext i32 %211 to i64
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %212) #6
  %214 = load ptr, ptr %213, align 8, !tbaa !5
  %215 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %214)
          to label %216 unwind label %242

216:                                              ; preds = %210
  %217 = getelementptr inbounds %class.var3, ptr %215, i32 0, i32 2
  %218 = load double, ptr %217, align 8, !tbaa !27
  invoke void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %26, double noundef %186, double noundef %202, double noundef %218)
          to label %219 unwind label %242

219:                                              ; preds = %216
  %220 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %221 = load ptr, ptr %220, align 8, !tbaa !15
  %222 = load i32, ptr %17, align 4, !tbaa !11
  %223 = sext i32 %222 to i64
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223) #6
  %225 = load ptr, ptr %224, align 8, !tbaa !5
  %226 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %225)
          to label %227 unwind label %242

227:                                              ; preds = %219
  %228 = getelementptr inbounds %class.var3, ptr %226, i32 0, i32 0
  %229 = load double, ptr %228, align 8, !tbaa !24
  %230 = getelementptr inbounds %class.var3, ptr %26, i32 0, i32 0
  store double %229, ptr %230, align 8, !tbaa !24
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %232 unwind label %242

232:                                              ; preds = %227
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef @.str.51)
          to label %234 unwind label %242

234:                                              ; preds = %232
  %235 = load i32, ptr %16, align 4, !tbaa !11
  %236 = add nsw i32 %235, 1
  %237 = srem i32 %236, 20
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %246, label %239

239:                                              ; preds = %234
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %15, i8 noundef signext 10)
          to label %241 unwind label %242

241:                                              ; preds = %239
  br label %246

242:                                              ; preds = %256, %246, %239, %232, %227, %219, %216, %210, %200, %194, %184, %178, %170
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %22, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  br label %1225

246:                                              ; preds = %241, %234
  %247 = load i32, ptr %16, align 4, !tbaa !11
  %248 = trunc i32 %247 to i16
  %249 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %250 = load ptr, ptr %249, align 8, !tbaa !15
  %251 = load i32, ptr %17, align 4, !tbaa !11
  %252 = sext i32 %251 to i64
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %250, i64 noundef %252) #6
  %254 = load ptr, ptr %253, align 8, !tbaa !5
  %255 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %254)
          to label %256 unwind label %242

256:                                              ; preds = %246
  %257 = load i32, ptr %16, align 4, !tbaa !11
  %258 = sext i32 %257 to i64
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %258) #6
  %260 = load ptr, ptr %259, align 8, !tbaa !5
  %261 = load ptr, ptr %260, align 8, !tbaa !30
  %262 = getelementptr inbounds ptr, ptr %261, i64 12
  %263 = load ptr, ptr %262, align 8
  %264 = invoke noundef i32 %263(ptr noundef nonnull align 8 dereferenceable(408) %260)
          to label %265 unwind label %242

265:                                              ; preds = %256
  %266 = sext i32 %264 to i64
  %267 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %266) #6
  %268 = load i32, ptr %17, align 4, !tbaa !11
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %267, i64 noundef %269) #6
  store i16 %248, ptr %270, align 2, !tbaa !21
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  br label %271

271:                                              ; preds = %265
  %272 = load i32, ptr %16, align 4, !tbaa !11
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr %16, align 4, !tbaa !11
  br label %157, !llvm.loop !32

274:                                              ; preds = %166
  br label %275

275:                                              ; preds = %274
  %276 = load i32, ptr %17, align 4, !tbaa !11
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr %17, align 4, !tbaa !11
  br label %153, !llvm.loop !33

278:                                              ; preds = %153
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.77)
          to label %280 unwind label %132

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.78)
          to label %282 unwind label %132

282:                                              ; preds = %280
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.79)
          to label %284 unwind label %132

284:                                              ; preds = %282
  %285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.80)
          to label %286 unwind label %132

286:                                              ; preds = %284
  %287 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %288 = load i32, ptr %287, align 4, !tbaa !23
  store i32 %288, ptr %16, align 4, !tbaa !11
  br label %289

289:                                              ; preds = %431, %286
  %290 = load i32, ptr %16, align 4, !tbaa !11
  %291 = load i32, ptr %18, align 4, !tbaa !11
  %292 = icmp slt i32 %290, %291
  br i1 %292, label %293, label %436

293:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %294 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %295 = load ptr, ptr %294, align 8, !tbaa !15
  %296 = load i32, ptr %16, align 4, !tbaa !11
  %297 = sext i32 %296 to i64
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef %297) #6
  %299 = load ptr, ptr %298, align 8, !tbaa !5
  %300 = load ptr, ptr %299, align 8, !tbaa !30
  %301 = getelementptr inbounds ptr, ptr %300, i64 12
  %302 = load ptr, ptr %301, align 8
  %303 = invoke noundef i32 %302(ptr noundef nonnull align 8 dereferenceable(408) %299)
          to label %304 unwind label %352

304:                                              ; preds = %293
  store i32 %303, ptr %27, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  %305 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %306 = load ptr, ptr %305, align 8, !tbaa !15
  %307 = load i32, ptr %16, align 4, !tbaa !11
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %308) #6
  %310 = load ptr, ptr %309, align 8, !tbaa !5
  %311 = invoke noundef ptr @_ZNK4Elem4neibEi(ptr noundef nonnull align 8 dereferenceable(408) %310, i32 noundef 0)
          to label %312 unwind label %356

312:                                              ; preds = %304
  %313 = load ptr, ptr %311, align 8, !tbaa !30
  %314 = getelementptr inbounds ptr, ptr %313, i64 12
  %315 = load ptr, ptr %314, align 8
  %316 = invoke noundef i32 %315(ptr noundef nonnull align 8 dereferenceable(408) %311)
          to label %317 unwind label %356

317:                                              ; preds = %312
  store i32 %316, ptr %28, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  %318 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %319 = load ptr, ptr %318, align 8, !tbaa !15
  %320 = load i32, ptr %16, align 4, !tbaa !11
  %321 = sext i32 %320 to i64
  %322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %319, i64 noundef %321) #6
  %323 = load ptr, ptr %322, align 8, !tbaa !5
  %324 = invoke noundef ptr @_ZNK4Elem4neibEi(ptr noundef nonnull align 8 dereferenceable(408) %323, i32 noundef 1)
          to label %325 unwind label %360

325:                                              ; preds = %317
  %326 = load ptr, ptr %324, align 8, !tbaa !30
  %327 = getelementptr inbounds ptr, ptr %326, i64 12
  %328 = load ptr, ptr %327, align 8
  %329 = invoke noundef i32 %328(ptr noundef nonnull align 8 dereferenceable(408) %324)
          to label %330 unwind label %360

330:                                              ; preds = %325
  store i32 %329, ptr %29, align 4, !tbaa !11
  %331 = load i32, ptr %29, align 4, !tbaa !11
  %332 = icmp eq i32 %331, 1
  br i1 %332, label %333, label %364

333:                                              ; preds = %330
  %334 = load i32, ptr %27, align 4, !tbaa !11
  %335 = sext i32 %334 to i64
  %336 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %335) #6
  %337 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %336, i64 noundef 1) #6
  %338 = load i16, ptr %337, align 2, !tbaa !21
  %339 = sext i16 %338 to i32
  %340 = load i32, ptr %18, align 4, !tbaa !11
  %341 = add nsw i32 %339, %340
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %344 = load ptr, ptr %343, align 8, !tbaa !15
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef 0) #6
  %346 = load ptr, ptr %345, align 8, !tbaa !5
  %347 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %346)
          to label %348 unwind label %360

348:                                              ; preds = %333
  %349 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %347) #6
  %350 = add i64 %342, %349
  %351 = trunc i64 %350 to i32
  store i32 %351, ptr %29, align 4, !tbaa !11
  br label %364

352:                                              ; preds = %293
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %22, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %23, align 4
  br label %435

356:                                              ; preds = %312, %304
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %22, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %23, align 4
  br label %434

360:                                              ; preds = %423, %420, %418, %415, %413, %410, %391, %333, %325, %317
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %22, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %434

364:                                              ; preds = %348, %330
  %365 = load i32, ptr %29, align 4, !tbaa !11
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %376

367:                                              ; preds = %364
  %368 = load i32, ptr %27, align 4, !tbaa !11
  %369 = sext i32 %368 to i64
  %370 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %369) #6
  %371 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %370, i64 noundef 0) #6
  %372 = load i16, ptr %371, align 2, !tbaa !21
  %373 = sext i16 %372 to i32
  %374 = load i32, ptr %18, align 4, !tbaa !11
  %375 = add nsw i32 %373, %374
  store i32 %375, ptr %29, align 4, !tbaa !11
  br label %376

376:                                              ; preds = %367, %364
  %377 = load i32, ptr %28, align 4, !tbaa !11
  %378 = icmp eq i32 %377, 0
  br i1 %378, label %379, label %388

379:                                              ; preds = %376
  %380 = load i32, ptr %27, align 4, !tbaa !11
  %381 = sext i32 %380 to i64
  %382 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %381) #6
  %383 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %382, i64 noundef 0) #6
  %384 = load i16, ptr %383, align 2, !tbaa !21
  %385 = sext i16 %384 to i32
  %386 = load i32, ptr %18, align 4, !tbaa !11
  %387 = add nsw i32 %385, %386
  store i32 %387, ptr %28, align 4, !tbaa !11
  br label %388

388:                                              ; preds = %379, %376
  %389 = load i32, ptr %28, align 4, !tbaa !11
  %390 = icmp eq i32 %389, 1
  br i1 %390, label %391, label %410

391:                                              ; preds = %388
  %392 = load i32, ptr %27, align 4, !tbaa !11
  %393 = sext i32 %392 to i64
  %394 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %393) #6
  %395 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %394, i64 noundef 1) #6
  %396 = load i16, ptr %395, align 2, !tbaa !21
  %397 = sext i16 %396 to i32
  %398 = load i32, ptr %18, align 4, !tbaa !11
  %399 = add nsw i32 %397, %398
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %402 = load ptr, ptr %401, align 8, !tbaa !15
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef 0) #6
  %404 = load ptr, ptr %403, align 8, !tbaa !5
  %405 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %404)
          to label %406 unwind label %360

406:                                              ; preds = %391
  %407 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %405) #6
  %408 = add i64 %400, %407
  %409 = trunc i64 %408 to i32
  store i32 %409, ptr %28, align 4, !tbaa !11
  br label %410

410:                                              ; preds = %406, %388
  %411 = load i32, ptr %28, align 4, !tbaa !11
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %411)
          to label %413 unwind label %360

413:                                              ; preds = %410
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef @.str.51)
          to label %415 unwind label %360

415:                                              ; preds = %413
  %416 = load i32, ptr %29, align 4, !tbaa !11
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %414, i32 noundef %416)
          to label %418 unwind label %360

418:                                              ; preds = %415
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef @.str.51)
          to label %420 unwind label %360

420:                                              ; preds = %418
  %421 = load i32, ptr %27, align 4, !tbaa !11
  %422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %419, i32 noundef %421)
          to label %423 unwind label %360

423:                                              ; preds = %420
  %424 = load i32, ptr %16, align 4, !tbaa !11
  %425 = and i32 %424, 31
  %426 = icmp eq i32 %425, 31
  %427 = zext i1 %426 to i64
  %428 = select i1 %426, i8 10, i8 32
  %429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %422, i8 noundef signext %428)
          to label %430 unwind label %360

430:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %431

431:                                              ; preds = %430
  %432 = load i32, ptr %16, align 4, !tbaa !11
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %16, align 4, !tbaa !11
  br label %289, !llvm.loop !34

434:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br label %435

435:                                              ; preds = %434, %352
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %1225

436:                                              ; preds = %289
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.77)
          to label %438 unwind label %132

438:                                              ; preds = %436
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.56)
          to label %440 unwind label %132

440:                                              ; preds = %438
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %441

441:                                              ; preds = %461, %440
  %442 = load i32, ptr %16, align 4, !tbaa !11
  %443 = load i32, ptr %18, align 4, !tbaa !11
  %444 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %445 = load i32, ptr %444, align 4, !tbaa !23
  %446 = sub nsw i32 %443, %445
  %447 = icmp slt i32 %442, %446
  br i1 %447, label %448, label %464

448:                                              ; preds = %441
  %449 = load i32, ptr %16, align 4, !tbaa !11
  %450 = mul nsw i32 3, %449
  %451 = add nsw i32 %450, 3
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %451)
          to label %453 unwind label %132

453:                                              ; preds = %448
  %454 = load i32, ptr %16, align 4, !tbaa !11
  %455 = and i32 %454, 31
  %456 = icmp eq i32 %455, 31
  %457 = zext i1 %456 to i64
  %458 = select i1 %456, i8 10, i8 32
  %459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %452, i8 noundef signext %458)
          to label %460 unwind label %132

460:                                              ; preds = %453
  br label %461

461:                                              ; preds = %460
  %462 = load i32, ptr %16, align 4, !tbaa !11
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr %16, align 4, !tbaa !11
  br label %441, !llvm.loop !35

464:                                              ; preds = %441
  %465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.77)
          to label %466 unwind label %132

466:                                              ; preds = %464
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.57)
          to label %468 unwind label %132

468:                                              ; preds = %466
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %469

469:                                              ; preds = %486, %468
  %470 = load i32, ptr %16, align 4, !tbaa !11
  %471 = load i32, ptr %18, align 4, !tbaa !11
  %472 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %473 = load i32, ptr %472, align 4, !tbaa !23
  %474 = sub nsw i32 %471, %473
  %475 = icmp slt i32 %470, %474
  br i1 %475, label %476, label %489

476:                                              ; preds = %469
  %477 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef 21)
          to label %478 unwind label %132

478:                                              ; preds = %476
  %479 = load i32, ptr %16, align 4, !tbaa !11
  %480 = and i32 %479, 31
  %481 = icmp eq i32 %480, 31
  %482 = zext i1 %481 to i64
  %483 = select i1 %481, i8 10, i8 32
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %477, i8 noundef signext %483)
          to label %485 unwind label %132

485:                                              ; preds = %478
  br label %486

486:                                              ; preds = %485
  %487 = load i32, ptr %16, align 4, !tbaa !11
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %16, align 4, !tbaa !11
  br label %469, !llvm.loop !36

489:                                              ; preds = %469
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.77)
          to label %491 unwind label %132

491:                                              ; preds = %489
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.81)
          to label %493 unwind label %132

493:                                              ; preds = %491
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.82)
          to label %495 unwind label %132

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.89)
          to label %497 unwind label %132

497:                                              ; preds = %495
  %498 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %499 = load i32, ptr %498, align 4, !tbaa !23
  store i32 %499, ptr %16, align 4, !tbaa !11
  br label %500

500:                                              ; preds = %522, %497
  %501 = load i32, ptr %16, align 4, !tbaa !11
  %502 = load i32, ptr %18, align 4, !tbaa !11
  %503 = icmp slt i32 %501, %502
  br i1 %503, label %504, label %525

504:                                              ; preds = %500
  %505 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %506 = load ptr, ptr %505, align 8, !tbaa !15
  %507 = load i32, ptr %16, align 4, !tbaa !11
  %508 = sext i32 %507 to i64
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %506, i64 noundef %508) #6
  %510 = load ptr, ptr %509, align 8, !tbaa !5
  %511 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %510)
          to label %512 unwind label %132

512:                                              ; preds = %504
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %511)
          to label %514 unwind label %132

514:                                              ; preds = %512
  %515 = load i32, ptr %16, align 4, !tbaa !11
  %516 = and i32 %515, 31
  %517 = icmp eq i32 %516, 31
  %518 = zext i1 %517 to i64
  %519 = select i1 %517, i8 10, i8 32
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %513, i8 noundef signext %519)
          to label %521 unwind label %132

521:                                              ; preds = %514
  br label %522

522:                                              ; preds = %521
  %523 = load i32, ptr %16, align 4, !tbaa !11
  %524 = add nsw i32 %523, 1
  store i32 %524, ptr %16, align 4, !tbaa !11
  br label %500, !llvm.loop !37

525:                                              ; preds = %500
  %526 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %527 unwind label %132

527:                                              ; preds = %525
  %528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %526, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %529 unwind label %132

529:                                              ; preds = %527
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.91)
          to label %531 unwind label %132

531:                                              ; preds = %529
  %532 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %533 = load i32, ptr %532, align 4, !tbaa !23
  store i32 %533, ptr %16, align 4, !tbaa !11
  br label %534

534:                                              ; preds = %556, %531
  %535 = load i32, ptr %16, align 4, !tbaa !11
  %536 = load i32, ptr %18, align 4, !tbaa !11
  %537 = icmp slt i32 %535, %536
  br i1 %537, label %538, label %559

538:                                              ; preds = %534
  %539 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %540 = load ptr, ptr %539, align 8, !tbaa !15
  %541 = load i32, ptr %16, align 4, !tbaa !11
  %542 = sext i32 %541 to i64
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %540, i64 noundef %542) #6
  %544 = load ptr, ptr %543, align 8, !tbaa !5
  %545 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %544)
          to label %546 unwind label %132

546:                                              ; preds = %538
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %15, float noundef %545)
          to label %548 unwind label %132

548:                                              ; preds = %546
  %549 = load i32, ptr %16, align 4, !tbaa !11
  %550 = and i32 %549, 31
  %551 = icmp eq i32 %550, 31
  %552 = zext i1 %551 to i64
  %553 = select i1 %551, i8 10, i8 32
  %554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %547, i8 noundef signext %553)
          to label %555 unwind label %132

555:                                              ; preds = %548
  br label %556

556:                                              ; preds = %555
  %557 = load i32, ptr %16, align 4, !tbaa !11
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %16, align 4, !tbaa !11
  br label %534, !llvm.loop !38

559:                                              ; preds = %534
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %561 unwind label %132

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %560, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %563 unwind label %132

563:                                              ; preds = %561
  %564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.92)
          to label %565 unwind label %132

565:                                              ; preds = %563
  %566 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %567 = load i32, ptr %566, align 4, !tbaa !23
  store i32 %567, ptr %16, align 4, !tbaa !11
  br label %568

568:                                              ; preds = %596, %565
  %569 = load i32, ptr %16, align 4, !tbaa !11
  %570 = load i32, ptr %18, align 4, !tbaa !11
  %571 = icmp slt i32 %569, %570
  br i1 %571, label %572, label %599

572:                                              ; preds = %568
  %573 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %574 = load ptr, ptr %573, align 8, !tbaa !15
  %575 = load i32, ptr %16, align 4, !tbaa !11
  %576 = sext i32 %575 to i64
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %574, i64 noundef %576) #6
  %578 = load ptr, ptr %577, align 8, !tbaa !5
  %579 = icmp eq ptr %578, null
  br i1 %579, label %582, label %580

580:                                              ; preds = %572
  %581 = call ptr @__dynamic_cast(ptr %578, ptr @_ZTI4Elem, ptr @_ZTI6Throat, i64 0) #6
  br label %583

582:                                              ; preds = %572
  br label %583

583:                                              ; preds = %582, %580
  %584 = phi ptr [ %581, %580 ], [ null, %582 ]
  %585 = invoke noundef double @_ZNK4Elem10saturationEv(ptr noundef nonnull align 8 dereferenceable(408) %584)
          to label %586 unwind label %132

586:                                              ; preds = %583
  %587 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %585)
          to label %588 unwind label %132

588:                                              ; preds = %586
  %589 = load i32, ptr %16, align 4, !tbaa !11
  %590 = and i32 %589, 31
  %591 = icmp eq i32 %590, 31
  %592 = zext i1 %591 to i64
  %593 = select i1 %591, i8 10, i8 32
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %587, i8 noundef signext %593)
          to label %595 unwind label %132

595:                                              ; preds = %588
  br label %596

596:                                              ; preds = %595
  %597 = load i32, ptr %16, align 4, !tbaa !11
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr %16, align 4, !tbaa !11
  br label %568, !llvm.loop !39

599:                                              ; preds = %568
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %601 unwind label %132

601:                                              ; preds = %599
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %600, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %603 unwind label %132

603:                                              ; preds = %601
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.93)
          to label %605 unwind label %132

605:                                              ; preds = %603
  %606 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %607 = load i32, ptr %606, align 4, !tbaa !23
  store i32 %607, ptr %16, align 4, !tbaa !11
  br label %608

608:                                              ; preds = %623, %605
  %609 = load i32, ptr %16, align 4, !tbaa !11
  %610 = load i32, ptr %18, align 4, !tbaa !11
  %611 = icmp slt i32 %609, %610
  br i1 %611, label %612, label %626

612:                                              ; preds = %608
  %613 = load double, ptr %10, align 8, !tbaa !9
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %613)
          to label %615 unwind label %132

615:                                              ; preds = %612
  %616 = load i32, ptr %16, align 4, !tbaa !11
  %617 = and i32 %616, 31
  %618 = icmp eq i32 %617, 31
  %619 = zext i1 %618 to i64
  %620 = select i1 %618, i8 10, i8 32
  %621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %614, i8 noundef signext %620)
          to label %622 unwind label %132

622:                                              ; preds = %615
  br label %623

623:                                              ; preds = %622
  %624 = load i32, ptr %16, align 4, !tbaa !11
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr %16, align 4, !tbaa !11
  br label %608, !llvm.loop !40

626:                                              ; preds = %608
  %627 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %628 unwind label %132

628:                                              ; preds = %626
  %629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %627, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %630 unwind label %132

630:                                              ; preds = %628
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.94)
          to label %632 unwind label %132

632:                                              ; preds = %630
  %633 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %634 = load i32, ptr %633, align 4, !tbaa !23
  store i32 %634, ptr %16, align 4, !tbaa !11
  br label %635

635:                                              ; preds = %660, %632
  %636 = load i32, ptr %16, align 4, !tbaa !11
  %637 = load i32, ptr %18, align 4, !tbaa !11
  %638 = icmp slt i32 %636, %637
  br i1 %638, label %639, label %663

639:                                              ; preds = %635
  %640 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %641 = load ptr, ptr %640, align 8, !tbaa !15
  %642 = load i32, ptr %16, align 4, !tbaa !11
  %643 = sext i32 %642 to i64
  %644 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %643) #6
  %645 = load ptr, ptr %644, align 8, !tbaa !5
  %646 = load ptr, ptr %645, align 8, !tbaa !30
  %647 = getelementptr inbounds ptr, ptr %646, i64 12
  %648 = load ptr, ptr %647, align 8
  %649 = invoke noundef i32 %648(ptr noundef nonnull align 8 dereferenceable(408) %645)
          to label %650 unwind label %132

650:                                              ; preds = %639
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %649)
          to label %652 unwind label %132

652:                                              ; preds = %650
  %653 = load i32, ptr %16, align 4, !tbaa !11
  %654 = and i32 %653, 31
  %655 = icmp eq i32 %654, 31
  %656 = zext i1 %655 to i64
  %657 = select i1 %655, i8 10, i8 32
  %658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %651, i8 noundef signext %657)
          to label %659 unwind label %132

659:                                              ; preds = %652
  br label %660

660:                                              ; preds = %659
  %661 = load i32, ptr %16, align 4, !tbaa !11
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr %16, align 4, !tbaa !11
  br label %635, !llvm.loop !41

663:                                              ; preds = %635
  %664 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %665 unwind label %132

665:                                              ; preds = %663
  %666 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %664, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %667 unwind label %132

667:                                              ; preds = %665
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.95)
          to label %669 unwind label %132

669:                                              ; preds = %667
  %670 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %671 = load i32, ptr %670, align 4, !tbaa !23
  store i32 %671, ptr %16, align 4, !tbaa !11
  br label %672

672:                                              ; preds = %695, %669
  %673 = load i32, ptr %16, align 4, !tbaa !11
  %674 = load i32, ptr %18, align 4, !tbaa !11
  %675 = icmp slt i32 %673, %674
  br i1 %675, label %676, label %698

676:                                              ; preds = %672
  %677 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %678 = load ptr, ptr %677, align 8, !tbaa !15
  %679 = load i32, ptr %16, align 4, !tbaa !11
  %680 = sext i32 %679 to i64
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %678, i64 noundef %680) #6
  %682 = load ptr, ptr %681, align 8, !tbaa !5
  %683 = invoke noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %682, i16 noundef zeroext 1)
          to label %684 unwind label %132

684:                                              ; preds = %676
  %685 = fmul double %683, 1.000000e+18
  %686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %685)
          to label %687 unwind label %132

687:                                              ; preds = %684
  %688 = load i32, ptr %16, align 4, !tbaa !11
  %689 = and i32 %688, 31
  %690 = icmp eq i32 %689, 31
  %691 = zext i1 %690 to i64
  %692 = select i1 %690, i8 10, i8 32
  %693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %686, i8 noundef signext %692)
          to label %694 unwind label %132

694:                                              ; preds = %687
  br label %695

695:                                              ; preds = %694
  %696 = load i32, ptr %16, align 4, !tbaa !11
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr %16, align 4, !tbaa !11
  br label %672, !llvm.loop !42

698:                                              ; preds = %672
  %699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %700 unwind label %132

700:                                              ; preds = %698
  %701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %699, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %702 unwind label %132

702:                                              ; preds = %700
  %703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.96)
          to label %704 unwind label %132

704:                                              ; preds = %702
  %705 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %706 = load i32, ptr %705, align 4, !tbaa !23
  store i32 %706, ptr %16, align 4, !tbaa !11
  br label %707

707:                                              ; preds = %730, %704
  %708 = load i32, ptr %16, align 4, !tbaa !11
  %709 = load i32, ptr %18, align 4, !tbaa !11
  %710 = icmp slt i32 %708, %709
  br i1 %710, label %711, label %733

711:                                              ; preds = %707
  %712 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %713 = load ptr, ptr %712, align 8, !tbaa !15
  %714 = load i32, ptr %16, align 4, !tbaa !11
  %715 = sext i32 %714 to i64
  %716 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %713, i64 noundef %715) #6
  %717 = load ptr, ptr %716, align 8, !tbaa !5
  %718 = invoke noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %717, i16 noundef zeroext 2)
          to label %719 unwind label %132

719:                                              ; preds = %711
  %720 = fmul double %718, 1.000000e+18
  %721 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %720)
          to label %722 unwind label %132

722:                                              ; preds = %719
  %723 = load i32, ptr %16, align 4, !tbaa !11
  %724 = and i32 %723, 31
  %725 = icmp eq i32 %724, 31
  %726 = zext i1 %725 to i64
  %727 = select i1 %725, i8 10, i8 32
  %728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %721, i8 noundef signext %727)
          to label %729 unwind label %132

729:                                              ; preds = %722
  br label %730

730:                                              ; preds = %729
  %731 = load i32, ptr %16, align 4, !tbaa !11
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr %16, align 4, !tbaa !11
  br label %707, !llvm.loop !43

733:                                              ; preds = %707
  %734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %735 unwind label %132

735:                                              ; preds = %733
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %737 unwind label %132

737:                                              ; preds = %735
  %738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.97)
          to label %739 unwind label %132

739:                                              ; preds = %737
  %740 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %741 = load i32, ptr %740, align 4, !tbaa !23
  store i32 %741, ptr %16, align 4, !tbaa !11
  br label %742

742:                                              ; preds = %765, %739
  %743 = load i32, ptr %16, align 4, !tbaa !11
  %744 = load i32, ptr %18, align 4, !tbaa !11
  %745 = icmp slt i32 %743, %744
  br i1 %745, label %746, label %768

746:                                              ; preds = %742
  %747 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %748 = load ptr, ptr %747, align 8, !tbaa !15
  %749 = load i32, ptr %16, align 4, !tbaa !11
  %750 = sext i32 %749 to i64
  %751 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %748, i64 noundef %750) #6
  %752 = load ptr, ptr %751, align 8, !tbaa !5
  %753 = invoke noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %752, i16 noundef zeroext 3)
          to label %754 unwind label %132

754:                                              ; preds = %746
  %755 = fmul double %753, 1.000000e+18
  %756 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %755)
          to label %757 unwind label %132

757:                                              ; preds = %754
  %758 = load i32, ptr %16, align 4, !tbaa !11
  %759 = and i32 %758, 31
  %760 = icmp eq i32 %759, 31
  %761 = zext i1 %760 to i64
  %762 = select i1 %760, i8 10, i8 32
  %763 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %756, i8 noundef signext %762)
          to label %764 unwind label %132

764:                                              ; preds = %757
  br label %765

765:                                              ; preds = %764
  %766 = load i32, ptr %16, align 4, !tbaa !11
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr %16, align 4, !tbaa !11
  br label %742, !llvm.loop !44

768:                                              ; preds = %742
  %769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %770 unwind label %132

770:                                              ; preds = %768
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %769, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %772 unwind label %132

772:                                              ; preds = %770
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.98)
          to label %774 unwind label %132

774:                                              ; preds = %772
  %775 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 3
  %776 = load i32, ptr %775, align 4, !tbaa !23
  store i32 %776, ptr %16, align 4, !tbaa !11
  br label %777

777:                                              ; preds = %807, %774
  %778 = load i32, ptr %16, align 4, !tbaa !11
  %779 = load i32, ptr %18, align 4, !tbaa !11
  %780 = icmp slt i32 %778, %779
  br i1 %780, label %781, label %810

781:                                              ; preds = %777
  %782 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %783 = load ptr, ptr %782, align 8, !tbaa !15
  %784 = load i32, ptr %16, align 4, !tbaa !11
  %785 = sext i32 %784 to i64
  %786 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %783, i64 noundef %785) #6
  %787 = load ptr, ptr %786, align 8, !tbaa !5
  %788 = icmp eq ptr %787, null
  br i1 %788, label %791, label %789

789:                                              ; preds = %781
  %790 = call ptr @__dynamic_cast(ptr %787, ptr @_ZTI4Elem, ptr @_ZTI6Throat, i64 0) #6
  br label %792

791:                                              ; preds = %781
  br label %792

792:                                              ; preds = %791, %789
  %793 = phi ptr [ %790, %789 ], [ null, %791 ]
  %794 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %793)
          to label %795 unwind label %132

795:                                              ; preds = %792
  %796 = getelementptr inbounds %"struct.std::pair", ptr %794, i32 0, i32 0
  %797 = load i32, ptr %796, align 8, !tbaa !45
  %798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %797)
          to label %799 unwind label %132

799:                                              ; preds = %795
  %800 = load i32, ptr %16, align 4, !tbaa !11
  %801 = and i32 %800, 31
  %802 = icmp eq i32 %801, 31
  %803 = zext i1 %802 to i64
  %804 = select i1 %802, i8 10, i8 32
  %805 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %798, i8 noundef signext %804)
          to label %806 unwind label %132

806:                                              ; preds = %799
  br label %807

807:                                              ; preds = %806
  %808 = load i32, ptr %16, align 4, !tbaa !11
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr %16, align 4, !tbaa !11
  br label %777, !llvm.loop !47

810:                                              ; preds = %777
  %811 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %812 unwind label %132

812:                                              ; preds = %810
  %813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %811, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %814 unwind label %132

814:                                              ; preds = %812
  %815 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.88)
          to label %816 unwind label %132

816:                                              ; preds = %814
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.99)
          to label %818 unwind label %132

818:                                              ; preds = %816
  %819 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.100)
          to label %820 unwind label %132

820:                                              ; preds = %818
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %821

821:                                              ; preds = %843, %820
  %822 = load i32, ptr %16, align 4, !tbaa !11
  %823 = load i32, ptr %18, align 4, !tbaa !11
  %824 = icmp slt i32 %822, %823
  br i1 %824, label %825, label %846

825:                                              ; preds = %821
  %826 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %827 = load ptr, ptr %826, align 8, !tbaa !15
  %828 = load i32, ptr %16, align 4, !tbaa !11
  %829 = sext i32 %828 to i64
  %830 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %827, i64 noundef %829) #6
  %831 = load ptr, ptr %830, align 8, !tbaa !5
  %832 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %831)
          to label %833 unwind label %132

833:                                              ; preds = %825
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %832)
          to label %835 unwind label %132

835:                                              ; preds = %833
  %836 = load i32, ptr %16, align 4, !tbaa !11
  %837 = and i32 %836, 31
  %838 = icmp eq i32 %837, 31
  %839 = zext i1 %838 to i64
  %840 = select i1 %838, i8 10, i8 32
  %841 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %834, i8 noundef signext %840)
          to label %842 unwind label %132

842:                                              ; preds = %835
  br label %843

843:                                              ; preds = %842
  %844 = load i32, ptr %16, align 4, !tbaa !11
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr %16, align 4, !tbaa !11
  br label %821, !llvm.loop !48

846:                                              ; preds = %821
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %847

847:                                              ; preds = %892, %846
  %848 = load i32, ptr %17, align 4, !tbaa !11
  %849 = icmp slt i32 %848, 2
  br i1 %849, label %850, label %895

850:                                              ; preds = %847
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %851

851:                                              ; preds = %888, %850
  %852 = load i32, ptr %16, align 4, !tbaa !11
  %853 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %854 = load ptr, ptr %853, align 8, !tbaa !15
  %855 = load i32, ptr %17, align 4, !tbaa !11
  %856 = sext i32 %855 to i64
  %857 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %854, i64 noundef %856) #6
  %858 = load ptr, ptr %857, align 8, !tbaa !5
  %859 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %858)
          to label %860 unwind label %132

860:                                              ; preds = %851
  %861 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %859) #6
  %862 = trunc i64 %861 to i32
  %863 = icmp slt i32 %852, %862
  br i1 %863, label %864, label %891

864:                                              ; preds = %860
  %865 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %866 = load ptr, ptr %865, align 8, !tbaa !15
  %867 = load i32, ptr %17, align 4, !tbaa !11
  %868 = sext i32 %867 to i64
  %869 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %866, i64 noundef %868) #6
  %870 = load ptr, ptr %869, align 8, !tbaa !5
  %871 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %870)
          to label %872 unwind label %132

872:                                              ; preds = %864
  %873 = load i32, ptr %16, align 4, !tbaa !11
  %874 = sext i32 %873 to i64
  %875 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %871, i64 noundef %874) #6
  %876 = load ptr, ptr %875, align 8, !tbaa !5
  %877 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %876)
          to label %878 unwind label %132

878:                                              ; preds = %872
  %879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %877)
          to label %880 unwind label %132

880:                                              ; preds = %878
  %881 = load i32, ptr %16, align 4, !tbaa !11
  %882 = and i32 %881, 31
  %883 = icmp eq i32 %882, 31
  %884 = zext i1 %883 to i64
  %885 = select i1 %883, i8 10, i8 32
  %886 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %879, i8 noundef signext %885)
          to label %887 unwind label %132

887:                                              ; preds = %880
  br label %888

888:                                              ; preds = %887
  %889 = load i32, ptr %16, align 4, !tbaa !11
  %890 = add nsw i32 %889, 1
  store i32 %890, ptr %16, align 4, !tbaa !11
  br label %851, !llvm.loop !49

891:                                              ; preds = %860
  br label %892

892:                                              ; preds = %891
  %893 = load i32, ptr %17, align 4, !tbaa !11
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr %17, align 4, !tbaa !11
  br label %847, !llvm.loop !50

895:                                              ; preds = %847
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %897 unwind label %132

897:                                              ; preds = %895
  %898 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %896, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %899 unwind label %132

899:                                              ; preds = %897
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.91)
          to label %901 unwind label %132

901:                                              ; preds = %899
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %902

902:                                              ; preds = %924, %901
  %903 = load i32, ptr %16, align 4, !tbaa !11
  %904 = load i32, ptr %18, align 4, !tbaa !11
  %905 = icmp slt i32 %903, %904
  br i1 %905, label %906, label %927

906:                                              ; preds = %902
  %907 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %908 = load ptr, ptr %907, align 8, !tbaa !15
  %909 = load i32, ptr %16, align 4, !tbaa !11
  %910 = sext i32 %909 to i64
  %911 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %908, i64 noundef %910) #6
  %912 = load ptr, ptr %911, align 8, !tbaa !5
  %913 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %912)
          to label %914 unwind label %132

914:                                              ; preds = %906
  %915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %15, float noundef %913)
          to label %916 unwind label %132

916:                                              ; preds = %914
  %917 = load i32, ptr %16, align 4, !tbaa !11
  %918 = and i32 %917, 31
  %919 = icmp eq i32 %918, 31
  %920 = zext i1 %919 to i64
  %921 = select i1 %919, i8 10, i8 32
  %922 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %915, i8 noundef signext %921)
          to label %923 unwind label %132

923:                                              ; preds = %916
  br label %924

924:                                              ; preds = %923
  %925 = load i32, ptr %16, align 4, !tbaa !11
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr %16, align 4, !tbaa !11
  br label %902, !llvm.loop !51

927:                                              ; preds = %902
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %928

928:                                              ; preds = %967, %927
  %929 = load i32, ptr %17, align 4, !tbaa !11
  %930 = icmp slt i32 %929, 2
  br i1 %930, label %931, label %970

931:                                              ; preds = %928
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %932

932:                                              ; preds = %963, %931
  %933 = load i32, ptr %16, align 4, !tbaa !11
  %934 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %935 = load ptr, ptr %934, align 8, !tbaa !15
  %936 = load i32, ptr %17, align 4, !tbaa !11
  %937 = sext i32 %936 to i64
  %938 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %935, i64 noundef %937) #6
  %939 = load ptr, ptr %938, align 8, !tbaa !5
  %940 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %939)
          to label %941 unwind label %132

941:                                              ; preds = %932
  %942 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %940) #6
  %943 = trunc i64 %942 to i32
  %944 = icmp slt i32 %933, %943
  br i1 %944, label %945, label %966

945:                                              ; preds = %941
  %946 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %947 = load ptr, ptr %946, align 8, !tbaa !15
  %948 = load i32, ptr %17, align 4, !tbaa !11
  %949 = sext i32 %948 to i64
  %950 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %947, i64 noundef %949) #6
  %951 = load ptr, ptr %950, align 8, !tbaa !5
  %952 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %951)
          to label %953 unwind label %132

953:                                              ; preds = %945
  %954 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %15, float noundef %952)
          to label %955 unwind label %132

955:                                              ; preds = %953
  %956 = load i32, ptr %16, align 4, !tbaa !11
  %957 = and i32 %956, 31
  %958 = icmp eq i32 %957, 31
  %959 = zext i1 %958 to i64
  %960 = select i1 %958, i8 10, i8 32
  %961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %954, i8 noundef signext %960)
          to label %962 unwind label %132

962:                                              ; preds = %955
  br label %963

963:                                              ; preds = %962
  %964 = load i32, ptr %16, align 4, !tbaa !11
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr %16, align 4, !tbaa !11
  br label %932, !llvm.loop !52

966:                                              ; preds = %941
  br label %967

967:                                              ; preds = %966
  %968 = load i32, ptr %17, align 4, !tbaa !11
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %17, align 4, !tbaa !11
  br label %928, !llvm.loop !53

970:                                              ; preds = %928
  %971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %972 unwind label %132

972:                                              ; preds = %970
  %973 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %971, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %974 unwind label %132

974:                                              ; preds = %972
  %975 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.94)
          to label %976 unwind label %132

976:                                              ; preds = %974
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %977

977:                                              ; preds = %1002, %976
  %978 = load i32, ptr %16, align 4, !tbaa !11
  %979 = load i32, ptr %18, align 4, !tbaa !11
  %980 = icmp slt i32 %978, %979
  br i1 %980, label %981, label %1005

981:                                              ; preds = %977
  %982 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %983 = load ptr, ptr %982, align 8, !tbaa !15
  %984 = load i32, ptr %16, align 4, !tbaa !11
  %985 = sext i32 %984 to i64
  %986 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %983, i64 noundef %985) #6
  %987 = load ptr, ptr %986, align 8, !tbaa !5
  %988 = load ptr, ptr %987, align 8, !tbaa !30
  %989 = getelementptr inbounds ptr, ptr %988, i64 12
  %990 = load ptr, ptr %989, align 8
  %991 = invoke noundef i32 %990(ptr noundef nonnull align 8 dereferenceable(408) %987)
          to label %992 unwind label %132

992:                                              ; preds = %981
  %993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %991)
          to label %994 unwind label %132

994:                                              ; preds = %992
  %995 = load i32, ptr %16, align 4, !tbaa !11
  %996 = and i32 %995, 31
  %997 = icmp eq i32 %996, 31
  %998 = zext i1 %997 to i64
  %999 = select i1 %997, i8 10, i8 32
  %1000 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %993, i8 noundef signext %999)
          to label %1001 unwind label %132

1001:                                             ; preds = %994
  br label %1002

1002:                                             ; preds = %1001
  %1003 = load i32, ptr %16, align 4, !tbaa !11
  %1004 = add nsw i32 %1003, 1
  store i32 %1004, ptr %16, align 4, !tbaa !11
  br label %977, !llvm.loop !54

1005:                                             ; preds = %977
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %1006

1006:                                             ; preds = %1048, %1005
  %1007 = load i32, ptr %17, align 4, !tbaa !11
  %1008 = icmp slt i32 %1007, 2
  br i1 %1008, label %1009, label %1051

1009:                                             ; preds = %1006
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %1010

1010:                                             ; preds = %1044, %1009
  %1011 = load i32, ptr %16, align 4, !tbaa !11
  %1012 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1013 = load ptr, ptr %1012, align 8, !tbaa !15
  %1014 = load i32, ptr %17, align 4, !tbaa !11
  %1015 = sext i32 %1014 to i64
  %1016 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1013, i64 noundef %1015) #6
  %1017 = load ptr, ptr %1016, align 8, !tbaa !5
  %1018 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %1017)
          to label %1019 unwind label %132

1019:                                             ; preds = %1010
  %1020 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1018) #6
  %1021 = trunc i64 %1020 to i32
  %1022 = icmp slt i32 %1011, %1021
  br i1 %1022, label %1023, label %1047

1023:                                             ; preds = %1019
  %1024 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1025 = load ptr, ptr %1024, align 8, !tbaa !15
  %1026 = load i32, ptr %17, align 4, !tbaa !11
  %1027 = sext i32 %1026 to i64
  %1028 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1025, i64 noundef %1027) #6
  %1029 = load ptr, ptr %1028, align 8, !tbaa !5
  %1030 = load ptr, ptr %1029, align 8, !tbaa !30
  %1031 = getelementptr inbounds ptr, ptr %1030, i64 12
  %1032 = load ptr, ptr %1031, align 8
  %1033 = invoke noundef i32 %1032(ptr noundef nonnull align 8 dereferenceable(408) %1029)
          to label %1034 unwind label %132

1034:                                             ; preds = %1023
  %1035 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %1033)
          to label %1036 unwind label %132

1036:                                             ; preds = %1034
  %1037 = load i32, ptr %16, align 4, !tbaa !11
  %1038 = and i32 %1037, 31
  %1039 = icmp eq i32 %1038, 31
  %1040 = zext i1 %1039 to i64
  %1041 = select i1 %1039, i8 10, i8 32
  %1042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1035, i8 noundef signext %1041)
          to label %1043 unwind label %132

1043:                                             ; preds = %1036
  br label %1044

1044:                                             ; preds = %1043
  %1045 = load i32, ptr %16, align 4, !tbaa !11
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr %16, align 4, !tbaa !11
  br label %1010, !llvm.loop !55

1047:                                             ; preds = %1019
  br label %1048

1048:                                             ; preds = %1047
  %1049 = load i32, ptr %17, align 4, !tbaa !11
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr %17, align 4, !tbaa !11
  br label %1006, !llvm.loop !56

1051:                                             ; preds = %1006
  %1052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %1053 unwind label %132

1053:                                             ; preds = %1051
  %1054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1052, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1055 unwind label %132

1055:                                             ; preds = %1053
  %1056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.98)
          to label %1057 unwind label %132

1057:                                             ; preds = %1055
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %1058

1058:                                             ; preds = %1082, %1057
  %1059 = load i32, ptr %16, align 4, !tbaa !11
  %1060 = load i32, ptr %18, align 4, !tbaa !11
  %1061 = icmp slt i32 %1059, %1060
  br i1 %1061, label %1062, label %1085

1062:                                             ; preds = %1058
  %1063 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1064 = load ptr, ptr %1063, align 8, !tbaa !15
  %1065 = load i32, ptr %16, align 4, !tbaa !11
  %1066 = sext i32 %1065 to i64
  %1067 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1064, i64 noundef %1066) #6
  %1068 = load ptr, ptr %1067, align 8, !tbaa !5
  %1069 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %1068)
          to label %1070 unwind label %132

1070:                                             ; preds = %1062
  %1071 = getelementptr inbounds %"struct.std::pair", ptr %1069, i32 0, i32 0
  %1072 = load i32, ptr %1071, align 8, !tbaa !45
  %1073 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %1072)
          to label %1074 unwind label %132

1074:                                             ; preds = %1070
  %1075 = load i32, ptr %16, align 4, !tbaa !11
  %1076 = and i32 %1075, 31
  %1077 = icmp eq i32 %1076, 31
  %1078 = zext i1 %1077 to i64
  %1079 = select i1 %1077, i8 10, i8 32
  %1080 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1073, i8 noundef signext %1079)
          to label %1081 unwind label %132

1081:                                             ; preds = %1074
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i32, ptr %16, align 4, !tbaa !11
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr %16, align 4, !tbaa !11
  br label %1058, !llvm.loop !57

1085:                                             ; preds = %1058
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %1086

1086:                                             ; preds = %1127, %1085
  %1087 = load i32, ptr %17, align 4, !tbaa !11
  %1088 = icmp slt i32 %1087, 2
  br i1 %1088, label %1089, label %1130

1089:                                             ; preds = %1086
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %1090

1090:                                             ; preds = %1123, %1089
  %1091 = load i32, ptr %16, align 4, !tbaa !11
  %1092 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1093 = load ptr, ptr %1092, align 8, !tbaa !15
  %1094 = load i32, ptr %17, align 4, !tbaa !11
  %1095 = sext i32 %1094 to i64
  %1096 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1093, i64 noundef %1095) #6
  %1097 = load ptr, ptr %1096, align 8, !tbaa !5
  %1098 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %1097)
          to label %1099 unwind label %132

1099:                                             ; preds = %1090
  %1100 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1098) #6
  %1101 = trunc i64 %1100 to i32
  %1102 = icmp slt i32 %1091, %1101
  br i1 %1102, label %1103, label %1126

1103:                                             ; preds = %1099
  %1104 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1105 = load ptr, ptr %1104, align 8, !tbaa !15
  %1106 = load i32, ptr %17, align 4, !tbaa !11
  %1107 = sext i32 %1106 to i64
  %1108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1105, i64 noundef %1107) #6
  %1109 = load ptr, ptr %1108, align 8, !tbaa !5
  %1110 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %1109)
          to label %1111 unwind label %132

1111:                                             ; preds = %1103
  %1112 = getelementptr inbounds %"struct.std::pair", ptr %1110, i32 0, i32 0
  %1113 = load i32, ptr %1112, align 8, !tbaa !45
  %1114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %15, i32 noundef %1113)
          to label %1115 unwind label %132

1115:                                             ; preds = %1111
  %1116 = load i32, ptr %16, align 4, !tbaa !11
  %1117 = and i32 %1116, 31
  %1118 = icmp eq i32 %1117, 31
  %1119 = zext i1 %1118 to i64
  %1120 = select i1 %1118, i8 10, i8 32
  %1121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1114, i8 noundef signext %1120)
          to label %1122 unwind label %132

1122:                                             ; preds = %1115
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr %16, align 4, !tbaa !11
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr %16, align 4, !tbaa !11
  br label %1090, !llvm.loop !58

1126:                                             ; preds = %1099
  br label %1127

1127:                                             ; preds = %1126
  %1128 = load i32, ptr %17, align 4, !tbaa !11
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %17, align 4, !tbaa !11
  br label %1086, !llvm.loop !59

1130:                                             ; preds = %1086
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %1132 unwind label %132

1132:                                             ; preds = %1130
  %1133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1131, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1134 unwind label %132

1134:                                             ; preds = %1132
  %1135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.92)
          to label %1136 unwind label %132

1136:                                             ; preds = %1134
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %1137

1137:                                             ; preds = %1159, %1136
  %1138 = load i32, ptr %16, align 4, !tbaa !11
  %1139 = load i32, ptr %18, align 4, !tbaa !11
  %1140 = icmp slt i32 %1138, %1139
  br i1 %1140, label %1141, label %1162

1141:                                             ; preds = %1137
  %1142 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1143 = load ptr, ptr %1142, align 8, !tbaa !15
  %1144 = load i32, ptr %16, align 4, !tbaa !11
  %1145 = sext i32 %1144 to i64
  %1146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1143, i64 noundef %1145) #6
  %1147 = load ptr, ptr %1146, align 8, !tbaa !5
  %1148 = invoke noundef double @_ZNK4Elem15waterSaturationEv(ptr noundef nonnull align 8 dereferenceable(408) %1147)
          to label %1149 unwind label %132

1149:                                             ; preds = %1141
  %1150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %1148)
          to label %1151 unwind label %132

1151:                                             ; preds = %1149
  %1152 = load i32, ptr %16, align 4, !tbaa !11
  %1153 = and i32 %1152, 31
  %1154 = icmp eq i32 %1153, 31
  %1155 = zext i1 %1154 to i64
  %1156 = select i1 %1154, i8 10, i8 32
  %1157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1150, i8 noundef signext %1156)
          to label %1158 unwind label %132

1158:                                             ; preds = %1151
  br label %1159

1159:                                             ; preds = %1158
  %1160 = load i32, ptr %16, align 4, !tbaa !11
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr %16, align 4, !tbaa !11
  br label %1137, !llvm.loop !60

1162:                                             ; preds = %1137
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %1163

1163:                                             ; preds = %1202, %1162
  %1164 = load i32, ptr %17, align 4, !tbaa !11
  %1165 = icmp slt i32 %1164, 2
  br i1 %1165, label %1166, label %1205

1166:                                             ; preds = %1163
  store i32 0, ptr %16, align 4, !tbaa !11
  br label %1167

1167:                                             ; preds = %1198, %1166
  %1168 = load i32, ptr %16, align 4, !tbaa !11
  %1169 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1170 = load ptr, ptr %1169, align 8, !tbaa !15
  %1171 = load i32, ptr %17, align 4, !tbaa !11
  %1172 = sext i32 %1171 to i64
  %1173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1170, i64 noundef %1172) #6
  %1174 = load ptr, ptr %1173, align 8, !tbaa !5
  %1175 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %1174)
          to label %1176 unwind label %132

1176:                                             ; preds = %1167
  %1177 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1175) #6
  %1178 = trunc i64 %1177 to i32
  %1179 = icmp slt i32 %1168, %1178
  br i1 %1179, label %1180, label %1201

1180:                                             ; preds = %1176
  %1181 = getelementptr inbounds %class.results3D, ptr %32, i32 0, i32 1
  %1182 = load ptr, ptr %1181, align 8, !tbaa !15
  %1183 = load i32, ptr %17, align 4, !tbaa !11
  %1184 = sext i32 %1183 to i64
  %1185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1182, i64 noundef %1184) #6
  %1186 = load ptr, ptr %1185, align 8, !tbaa !5
  %1187 = invoke noundef double @_ZNK4Elem15waterSaturationEv(ptr noundef nonnull align 8 dereferenceable(408) %1186)
          to label %1188 unwind label %132

1188:                                             ; preds = %1180
  %1189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %15, double noundef %1187)
          to label %1190 unwind label %132

1190:                                             ; preds = %1188
  %1191 = load i32, ptr %16, align 4, !tbaa !11
  %1192 = and i32 %1191, 31
  %1193 = icmp eq i32 %1192, 31
  %1194 = zext i1 %1193 to i64
  %1195 = select i1 %1193, i8 10, i8 32
  %1196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1189, i8 noundef signext %1195)
          to label %1197 unwind label %132

1197:                                             ; preds = %1190
  br label %1198

1198:                                             ; preds = %1197
  %1199 = load i32, ptr %16, align 4, !tbaa !11
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr %16, align 4, !tbaa !11
  br label %1167, !llvm.loop !61

1201:                                             ; preds = %1176
  br label %1202

1202:                                             ; preds = %1201
  %1203 = load i32, ptr %17, align 4, !tbaa !11
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr %17, align 4, !tbaa !11
  br label %1163, !llvm.loop !62

1205:                                             ; preds = %1163
  %1206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %1207 unwind label %132

1207:                                             ; preds = %1205
  %1208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1206, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1209 unwind label %132

1209:                                             ; preds = %1207
  %1210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.101)
          to label %1211 unwind label %132

1211:                                             ; preds = %1209
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #6
  invoke void @_ZN9results3D6finishB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(93) %32)
          to label %1212 unwind label %1216

1212:                                             ; preds = %1211
  %1213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %1214 unwind label %1220

1214:                                             ; preds = %1212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248) %15)
          to label %1215 unwind label %132

1215:                                             ; preds = %1214
  call void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %15) #6
  call void @llvm.lifetime.end.p0(i64 512, ptr %15) #6
  ret void

1216:                                             ; preds = %1211
  %1217 = landingpad { ptr, i32 }
          cleanup
  %1218 = extractvalue { ptr, i32 } %1217, 0
  store ptr %1218, ptr %22, align 8
  %1219 = extractvalue { ptr, i32 } %1217, 1
  store i32 %1219, ptr %23, align 4
  br label %1224

1220:                                             ; preds = %1212
  %1221 = landingpad { ptr, i32 }
          cleanup
  %1222 = extractvalue { ptr, i32 } %1221, 0
  store ptr %1222, ptr %22, align 8
  %1223 = extractvalue { ptr, i32 } %1221, 1
  store i32 %1223, ptr %23, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %1224

1224:                                             ; preds = %1220, %1216
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  br label %1225

1225:                                             ; preds = %1224, %435, %242, %136, %132, %131
  call void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #6
  br label %1226

1226:                                             ; preds = %1225, %119
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %15) #6
  call void @llvm.lifetime.end.p0(i64 512, ptr %15) #6
  br label %1227

1227:                                             ; preds = %1226
  %1228 = load ptr, ptr %22, align 8
  %1229 = load i32, ptr %23, align 4
  %1230 = insertvalue { ptr, i32 } poison, ptr %1228, 0
  %1231 = insertvalue { ptr, i32 } %1230, i32 %1229, 1
  resume { ptr, i32 } %1231
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z8ffloatofPK4Elem(ptr noundef) #3

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 2 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408)) #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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) #3

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

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

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

declare noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8), float noundef) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408), i16 noundef zeroext) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(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 = { 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 #3 = { 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 = { "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 willreturn memory(read) }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !6, i64 8}
!16 = !{!"_ZTS9results3D", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !17, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !18, i64 48, !10, i64 80, !12, i64 88, !14, i64 92}
!17 = !{!"_ZTSN9results3D6FormatE", !7, i64 0}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !20, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"short", !7, i64 0}
!23 = !{!16, !12, i64 20}
!24 = !{!25, !10, i64 0}
!25 = !{!"_ZTS4var3IdE", !10, i64 0, !10, i64 8, !10, i64 16}
!26 = !{!25, !10, i64 8}
!27 = !{!25, !10, i64 16}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!31, !31, i64 0}
!31 = !{!"vtable pointer", !8, i64 0}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}
!35 = distinct !{!35, !29}
!36 = distinct !{!36, !29}
!37 = distinct !{!37, !29}
!38 = distinct !{!38, !29}
!39 = distinct !{!39, !29}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = distinct !{!44, !29}
!45 = !{!46, !12, i64 0}
!46 = !{!"_ZTSSt4pairIidE", !12, i64 0, !10, i64 8}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = distinct !{!49, !29}
!50 = distinct !{!50, !29}
!51 = distinct !{!51, !29}
!52 = distinct !{!52, !29}
!53 = distinct !{!53, !29}
!54 = distinct !{!54, !29}
!55 = distinct !{!55, !29}
!56 = distinct !{!56, !29}
!57 = distinct !{!57, !29}
!58 = distinct !{!58, !29}
!59 = distinct !{!59, !29}
!60 = distinct !{!60, !29}
!61 = distinct !{!61, !29}
!62 = distinct !{!62, !29}


; 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_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%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.14 }
%union.anon.14 = type { i32 }
%"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::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<short, 2>, std::allocator<std::array<short, 2>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array.59" = type { [2 x i16] }
%"class.std::allocator.56" = type { i8 }
%"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.var3 = type { double, double, double }

@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [61 x i8], align 1
@_ZTI4Elem = external constant ptr
@_ZTI6Throat = external constant ptr
@.str.93 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [17 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

declare i32 @__gxx_personality_v0(...)

; 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 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)) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9results3D16writeThroatLinesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddidb(ptr noundef nonnull align 8 dereferenceable(93) %0, ptr noundef nonnull %1, double noundef %2, double noundef %3, i32 noundef %4, double noundef %5, i1 noundef zeroext %6) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::basic_ofstream", align 8
  %9 = alloca %"class.std::vector.54", align 8
  %10 = alloca %"struct.std::array.59", align 2
  %11 = alloca %"class.std::allocator.56", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %class.var3, align 8
  %14 = alloca %class.var3, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %8) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %8, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef 16)
  %16 = getelementptr inbounds i8, ptr %0, i64 8
  %17 = load ptr, ptr %16, align 8, !tbaa !5
  %18 = call noundef i64 @_ZNKSt6vectorIPK4ElemSaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  %19 = trunc i64 %18 to i32
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  %sext = shl i64 %18, 32
  %20 = ashr exact i64 %sext, 32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  store i16 -1, ptr %10, align 2, !tbaa !17
  %21 = getelementptr inbounds i8, ptr %10, i64 2
  store i16 -1, ptr %21, align 2, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #6
  call void @_ZNSaISt5arrayIsLm2EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  invoke void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %20, ptr noundef nonnull align 2 dereferenceable(4) %10, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %22 unwind label %78

22:                                               ; preds = %7
  call void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  %23 = load ptr, ptr %16, align 8, !tbaa !5
  %24 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef 0) #6
  %25 = load ptr, ptr %24, align 8, !tbaa !19
  %26 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %25)
  %27 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  %28 = add i64 %27, %20
  %29 = load ptr, ptr %16, align 8, !tbaa !5
  %30 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef 1) #6
  %31 = load ptr, ptr %30, align 8, !tbaa !19
  %32 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %31)
  %33 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %32) #6
  %34 = add i64 %28, %33
  %35 = getelementptr inbounds i8, ptr %0, i64 20
  %36 = load i32, ptr %35, align 4, !tbaa !20
  %37 = sub nsw i32 %19, %36
  %38 = sext i32 %37 to i64
  invoke void @_ZN9results3D5startB5cxx11Emm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(93) %0, i64 noundef %34, i64 noundef %38)
          to label %39 unwind label %80

39:                                               ; preds = %22
  %40 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %41 unwind label %82

41:                                               ; preds = %39
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  %42 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.75)
          to label %43 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

43:                                               ; preds = %41
  %44 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.76)
          to label %.preheader273 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader273:                                    ; preds = %43
  %45 = icmp sgt i32 %19, 0
  br i1 %45, label %.lr.ph.preheader, label %.preheader272

.lr.ph.preheader:                                 ; preds = %.preheader273
  %wide.trip.count = and i64 %18, 2147483647
  br label %.lr.ph

.preheader272:                                    ; preds = %87, %.preheader273
  %46 = load ptr, ptr %16, align 8, !tbaa !5
  %47 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef 0) #6
  %48 = load ptr, ptr %47, align 8, !tbaa !19
  %49 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %48)
  %50 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %49) #6
  %51 = trunc i64 %50 to i32
  %52 = icmp sgt i32 %51, 0
  br i1 %52, label %.lr.ph276, label %._crit_edge

.lr.ph:                                           ; preds = %.lr.ph.preheader, %87
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %87 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #6
  %53 = load ptr, ptr %16, align 8, !tbaa !5
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv) #6
  %55 = load ptr, ptr %54, align 8, !tbaa !19
  %56 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %55)
  %57 = load double, ptr %56, align 8, !tbaa !21
  %58 = load ptr, ptr %16, align 8, !tbaa !5
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %58, i64 noundef %indvars.iv) #6
  %60 = load ptr, ptr %59, align 8, !tbaa !19
  %61 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %60)
  %62 = getelementptr inbounds i8, ptr %61, i64 8
  %63 = load double, ptr %62, align 8, !tbaa !23
  %64 = load ptr, ptr %16, align 8, !tbaa !5
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv) #6
  %66 = load ptr, ptr %65, align 8, !tbaa !19
  %67 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %66)
  %68 = getelementptr inbounds i8, ptr %67, i64 16
  %69 = load double, ptr %68, align 8, !tbaa !24
  call void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %13, double noundef %57, double noundef %63, double noundef %69)
  %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %71 unwind label %85

71:                                               ; preds = %.lr.ph
  %72 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull @.str.51)
          to label %73 unwind label %85

73:                                               ; preds = %71
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %74 = trunc nuw nsw i64 %indvars.iv.next to i32
  %75 = urem i32 %74, 20
  %.not201 = icmp eq i32 %75, 0
  br i1 %.not201, label %76, label %87

76:                                               ; preds = %73
  %77 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %8, i8 noundef signext 10)
          to label %87 unwind label %85

78:                                               ; preds = %7
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  br label %940

80:                                               ; preds = %22
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %84

82:                                               ; preds = %39
  %83 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %84

84:                                               ; preds = %82, %80
  %.pn = phi { ptr, i32 } [ %83, %82 ], [ %81, %80 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  br label %.loopexit.split-lp

.loopexit.loopexit:                               ; preds = %885, %.lr.ph351
  %lpad.loopexit465 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.loopexit.split-lp:                      ; preds = %.lr.ph351.1, %911
  %lpad.loopexit.split-lp466 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %874, %.lr.ph349
  %lpad.loopexit207 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %816, %.lr.ph345
  %lpad.loopexit454 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %.lr.ph345.1, %843
  %lpad.loopexit.split-lp455 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %804, %.lr.ph343
  %lpad.loopexit215 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %742, %740, %.lr.ph339
  %lpad.loopexit443 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %.lr.ph339.1, %770, %772
  %lpad.loopexit.split-lp444 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %727, %725, %.lr.ph337
  %lpad.loopexit223 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %665, %663, %.lr.ph333
  %lpad.loopexit432 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %.lr.ph333.1, %690, %692
  %lpad.loopexit.split-lp433 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %653, %651, %.lr.ph331
  %lpad.loopexit231 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %593, %591, %.lr.ph327
  %lpad.loopexit421 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %.lr.ph327.1, %620, %622
  %lpad.loopexit.split-lp422 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %578, %576, %.lr.ph325
  %lpad.loopexit239 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph322, %550
  %lpad.loopexit242 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %528, %.lr.ph318
  %lpad.loopexit244 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph314, %507
  %lpad.loopexit247 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %486, %.lr.ph310
  %lpad.loopexit249 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph306, %463, %465
  %lpad.loopexit252 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %440, %.lr.ph302
  %lpad.loopexit254 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph298, %425
  %lpad.loopexit257 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %404, %402, %.lr.ph294
  %lpad.loopexit259 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph290, %381, %383
  %lpad.loopexit262 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %356, %.lr.ph286
  %lpad.loopexit265 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph283, %340
  %lpad.loopexit269 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %41, %43, %._crit_edge.1, %225, %227, %229, %._crit_edge281, %333, %._crit_edge284, %351, %._crit_edge287, %367, %369, %371, %._crit_edge291, %390, %392, %._crit_edge295, %411, %413, %._crit_edge299, %432, %434, %._crit_edge303, %448, %450, %._crit_edge307, %472, %474, %._crit_edge311, %493, %495, %._crit_edge315, %514, %516, %._crit_edge319, %535, %537, %._crit_edge323, %557, %559, %561, %563, %._crit_edge328.1, %636, %638, %._crit_edge334.1, %707, %709, %._crit_edge340.1, %787, %789, %._crit_edge346.1, %858, %860, %._crit_edge352.1, %926, %928, %933
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

85:                                               ; preds = %76, %71, %.lr.ph
  %86 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  br label %.loopexit.split-lp

87:                                               ; preds = %76, %73
  %88 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv) #6
  %89 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %88, i64 noundef 0) #6
  store i16 -1, ptr %89, align 2, !tbaa !17
  %90 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv) #6
  %91 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %90, i64 noundef 1) #6
  store i16 -1, ptr %91, align 2, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #6
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.preheader272, label %.lr.ph, !llvm.loop !25

.lr.ph276:                                        ; preds = %.preheader272, %143
  %indvars.iv355 = phi i64 [ %indvars.iv.next356, %143 ], [ 0, %.preheader272 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #6
  %92 = load ptr, ptr %16, align 8, !tbaa !5
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef 0) #6
  %94 = load ptr, ptr %93, align 8, !tbaa !19
  %95 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %94)
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %indvars.iv355) #6
  %97 = load ptr, ptr %96, align 8, !tbaa !19
  %98 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %97)
  %99 = load double, ptr %98, align 8, !tbaa !21
  %100 = load ptr, ptr %16, align 8, !tbaa !5
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef 0) #6
  %102 = load ptr, ptr %101, align 8, !tbaa !19
  %103 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %102)
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %103, i64 noundef %indvars.iv355) #6
  %105 = load ptr, ptr %104, align 8, !tbaa !19
  %106 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %105)
  %107 = getelementptr inbounds i8, ptr %106, i64 8
  %108 = load double, ptr %107, align 8, !tbaa !23
  %109 = load ptr, ptr %16, align 8, !tbaa !5
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef 0) #6
  %111 = load ptr, ptr %110, align 8, !tbaa !19
  %112 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %111)
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %indvars.iv355) #6
  %114 = load ptr, ptr %113, align 8, !tbaa !19
  %115 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %114)
  %116 = getelementptr inbounds i8, ptr %115, i64 16
  %117 = load double, ptr %116, align 8, !tbaa !24
  call void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %14, double noundef %99, double noundef %108, double noundef %117)
  %118 = load ptr, ptr %16, align 8, !tbaa !5
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %118, i64 noundef 0) #6
  %120 = load ptr, ptr %119, align 8, !tbaa !19
  %121 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %120)
  %122 = load double, ptr %121, align 8, !tbaa !21
  store double %122, ptr %14, align 8, !tbaa !21
  %123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %124 unwind label %.loopexit361

124:                                              ; preds = %.lr.ph276
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull @.str.51)
          to label %126 unwind label %.loopexit361

126:                                              ; preds = %124
  %indvars.iv.next356 = add nuw nsw i64 %indvars.iv355, 1
  %127 = trunc nuw nsw i64 %indvars.iv.next356 to i32
  %128 = urem i32 %127, 20
  %.not = icmp eq i32 %128, 0
  br i1 %.not, label %129, label %132

129:                                              ; preds = %126
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %8, i8 noundef signext 10)
          to label %132 unwind label %.loopexit361

.loopexit361:                                     ; preds = %.lr.ph276, %124, %129, %132
  %lpad.loopexit363 = landingpad { ptr, i32 }
          cleanup
  br label %131

.loopexit.split-lp362:                            ; preds = %.lr.ph276.1, %194, %199, %201
  %lpad.loopexit.split-lp364 = landingpad { ptr, i32 }
          cleanup
  br label %131

131:                                              ; preds = %.loopexit.split-lp362, %.loopexit361
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit363, %.loopexit361 ], [ %lpad.loopexit.split-lp364, %.loopexit.split-lp362 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  br label %.loopexit.split-lp

132:                                              ; preds = %129, %126
  %133 = load ptr, ptr %16, align 8, !tbaa !5
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef 0) #6
  %135 = load ptr, ptr %134, align 8, !tbaa !19
  %136 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %135)
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %indvars.iv355) #6
  %138 = load ptr, ptr %137, align 8, !tbaa !19
  %139 = load ptr, ptr %138, align 8, !tbaa !27
  %140 = getelementptr inbounds i8, ptr %139, i64 96
  %141 = load ptr, ptr %140, align 8
  %142 = invoke noundef i32 %141(ptr noundef nonnull align 8 dereferenceable(408) %138)
          to label %143 unwind label %.loopexit361

143:                                              ; preds = %132
  %144 = trunc i64 %indvars.iv355 to i16
  %145 = sext i32 %142 to i64
  %146 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %145) #6
  %147 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %146, i64 noundef 0) #6
  store i16 %144, ptr %147, align 2, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  %148 = load ptr, ptr %16, align 8, !tbaa !5
  %149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %148, i64 noundef 0) #6
  %150 = load ptr, ptr %149, align 8, !tbaa !19
  %151 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %150)
  %152 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %151) #6
  %sext468 = shl i64 %152, 32
  %153 = ashr exact i64 %sext468, 32
  %154 = icmp slt i64 %indvars.iv.next356, %153
  br i1 %154, label %.lr.ph276, label %._crit_edge, !llvm.loop !29

._crit_edge:                                      ; preds = %143, %.preheader272
  %155 = load ptr, ptr %16, align 8, !tbaa !5
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %155, i64 noundef 1) #6
  %157 = load ptr, ptr %156, align 8, !tbaa !19
  %158 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %157)
  %159 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %158) #6
  %160 = trunc i64 %159 to i32
  %161 = icmp sgt i32 %160, 0
  br i1 %161, label %.lr.ph276.1, label %._crit_edge.1

.lr.ph276.1:                                      ; preds = %._crit_edge, %212
  %indvars.iv355.1 = phi i64 [ %indvars.iv.next356.1, %212 ], [ 0, %._crit_edge ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #6
  %162 = load ptr, ptr %16, align 8, !tbaa !5
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef 1) #6
  %164 = load ptr, ptr %163, align 8, !tbaa !19
  %165 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %164)
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %165, i64 noundef %indvars.iv355.1) #6
  %167 = load ptr, ptr %166, align 8, !tbaa !19
  %168 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %167)
  %169 = load double, ptr %168, align 8, !tbaa !21
  %170 = load ptr, ptr %16, align 8, !tbaa !5
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef 1) #6
  %172 = load ptr, ptr %171, align 8, !tbaa !19
  %173 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %172)
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %173, i64 noundef %indvars.iv355.1) #6
  %175 = load ptr, ptr %174, align 8, !tbaa !19
  %176 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %175)
  %177 = getelementptr inbounds i8, ptr %176, i64 8
  %178 = load double, ptr %177, align 8, !tbaa !23
  %179 = load ptr, ptr %16, align 8, !tbaa !5
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef 1) #6
  %181 = load ptr, ptr %180, align 8, !tbaa !19
  %182 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %181)
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %indvars.iv355.1) #6
  %184 = load ptr, ptr %183, align 8, !tbaa !19
  %185 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %184)
  %186 = getelementptr inbounds i8, ptr %185, i64 16
  %187 = load double, ptr %186, align 8, !tbaa !24
  call void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %14, double noundef %169, double noundef %178, double noundef %187)
  %188 = load ptr, ptr %16, align 8, !tbaa !5
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef 1) #6
  %190 = load ptr, ptr %189, align 8, !tbaa !19
  %191 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem4nodeEv(ptr noundef nonnull align 8 dereferenceable(408) %190)
  %192 = load double, ptr %191, align 8, !tbaa !21
  store double %192, ptr %14, align 8, !tbaa !21
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %194 unwind label %.loopexit.split-lp362

194:                                              ; preds = %.lr.ph276.1
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull @.str.51)
          to label %196 unwind label %.loopexit.split-lp362

196:                                              ; preds = %194
  %indvars.iv.next356.1 = add nuw nsw i64 %indvars.iv355.1, 1
  %197 = trunc nuw nsw i64 %indvars.iv.next356.1 to i32
  %198 = urem i32 %197, 20
  %.not.1 = icmp eq i32 %198, 0
  br i1 %.not.1, label %199, label %201

199:                                              ; preds = %196
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %8, i8 noundef signext 10)
          to label %201 unwind label %.loopexit.split-lp362

201:                                              ; preds = %199, %196
  %202 = load ptr, ptr %16, align 8, !tbaa !5
  %203 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef 1) #6
  %204 = load ptr, ptr %203, align 8, !tbaa !19
  %205 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %204)
  %206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %indvars.iv355.1) #6
  %207 = load ptr, ptr %206, align 8, !tbaa !19
  %208 = load ptr, ptr %207, align 8, !tbaa !27
  %209 = getelementptr inbounds i8, ptr %208, i64 96
  %210 = load ptr, ptr %209, align 8
  %211 = invoke noundef i32 %210(ptr noundef nonnull align 8 dereferenceable(408) %207)
          to label %212 unwind label %.loopexit.split-lp362

212:                                              ; preds = %201
  %213 = trunc i64 %indvars.iv355.1 to i16
  %214 = sext i32 %211 to i64
  %215 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %214) #6
  %216 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %215, i64 noundef 1) #6
  store i16 %213, ptr %216, align 2, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #6
  %217 = load ptr, ptr %16, align 8, !tbaa !5
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef 1) #6
  %219 = load ptr, ptr %218, align 8, !tbaa !19
  %220 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %219)
  %221 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %220) #6
  %sext469 = shl i64 %221, 32
  %222 = ashr exact i64 %sext469, 32
  %223 = icmp slt i64 %indvars.iv.next356.1, %222
  br i1 %223, label %.lr.ph276.1, label %._crit_edge.1, !llvm.loop !29

._crit_edge.1:                                    ; preds = %212, %._crit_edge
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.77)
          to label %225 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

225:                                              ; preds = %._crit_edge.1
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.78)
          to label %227 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

227:                                              ; preds = %225
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.79)
          to label %229 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.80)
          to label %231 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

231:                                              ; preds = %229
  %232 = load i32, ptr %35, align 4, !tbaa !20
  %233 = icmp slt i32 %232, %19
  br i1 %233, label %.lr.ph280.preheader, label %._crit_edge281

.lr.ph280.preheader:                              ; preds = %231
  %234 = sext i32 %232 to i64
  br label %.lr.ph280

.lr.ph280:                                        ; preds = %.lr.ph280.preheader, %331
  %indvars.iv365 = phi i64 [ %234, %.lr.ph280.preheader ], [ %indvars.iv.next366, %331 ]
  %235 = load ptr, ptr %16, align 8, !tbaa !5
  %236 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %235, i64 noundef %indvars.iv365) #6
  %237 = load ptr, ptr %236, align 8, !tbaa !19
  %238 = load ptr, ptr %237, align 8, !tbaa !27
  %239 = getelementptr inbounds i8, ptr %238, i64 96
  %240 = load ptr, ptr %239, align 8
  %241 = invoke noundef i32 %240(ptr noundef nonnull align 8 dereferenceable(408) %237)
          to label %242 unwind label %276

242:                                              ; preds = %.lr.ph280
  %243 = load ptr, ptr %16, align 8, !tbaa !5
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %243, i64 noundef %indvars.iv365) #6
  %245 = load ptr, ptr %244, align 8, !tbaa !19
  %246 = call noundef ptr @_ZNK4Elem4neibEi(ptr noundef nonnull align 8 dereferenceable(408) %245, i32 noundef 0)
  %247 = load ptr, ptr %246, align 8, !tbaa !27
  %248 = getelementptr inbounds i8, ptr %247, i64 96
  %249 = load ptr, ptr %248, align 8
  %250 = invoke noundef i32 %249(ptr noundef nonnull align 8 dereferenceable(408) %246)
          to label %251 unwind label %278

251:                                              ; preds = %242
  %252 = load ptr, ptr %16, align 8, !tbaa !5
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %indvars.iv365) #6
  %254 = load ptr, ptr %253, align 8, !tbaa !19
  %255 = call noundef ptr @_ZNK4Elem4neibEi(ptr noundef nonnull align 8 dereferenceable(408) %254, i32 noundef 1)
  %256 = load ptr, ptr %255, align 8, !tbaa !27
  %257 = getelementptr inbounds i8, ptr %256, i64 96
  %258 = load ptr, ptr %257, align 8
  %259 = invoke noundef i32 %258(ptr noundef nonnull align 8 dereferenceable(408) %255)
          to label %260 unwind label %280

260:                                              ; preds = %251
  %261 = icmp eq i32 %259, 1
  br i1 %261, label %262, label %282

262:                                              ; preds = %260
  %263 = sext i32 %241 to i64
  %264 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %263) #6
  %265 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %264, i64 noundef 1) #6
  %266 = load i16, ptr %265, align 2, !tbaa !17
  %267 = sext i16 %266 to i64
  %268 = add i64 %18, %267
  %269 = load ptr, ptr %16, align 8, !tbaa !5
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef 0) #6
  %271 = load ptr, ptr %270, align 8, !tbaa !19
  %272 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %271)
  %273 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %272) #6
  %274 = add i64 %268, %273
  %275 = trunc i64 %274 to i32
  br label %282

276:                                              ; preds = %.lr.ph280
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

278:                                              ; preds = %242
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

280:                                              ; preds = %326, %324, %322, %320, %318, %316, %251
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

282:                                              ; preds = %262, %260
  %.0 = phi i32 [ %275, %262 ], [ %259, %260 ]
  %283 = icmp eq i32 %.0, 0
  br i1 %283, label %284, label %291

284:                                              ; preds = %282
  %285 = sext i32 %241 to i64
  %286 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %285) #6
  %287 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %286, i64 noundef 0) #6
  %288 = load i16, ptr %287, align 2, !tbaa !17
  %289 = sext i16 %288 to i32
  %290 = add nsw i32 %289, %19
  br label %291

291:                                              ; preds = %284, %282
  %.1 = phi i32 [ %290, %284 ], [ %.0, %282 ]
  %292 = icmp eq i32 %250, 0
  br i1 %292, label %293, label %300

293:                                              ; preds = %291
  %294 = sext i32 %241 to i64
  %295 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %294) #6
  %296 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %295, i64 noundef 0) #6
  %297 = load i16, ptr %296, align 2, !tbaa !17
  %298 = sext i16 %297 to i32
  %299 = add nsw i32 %298, %19
  br label %300

300:                                              ; preds = %293, %291
  %.0168 = phi i32 [ %299, %293 ], [ %250, %291 ]
  %301 = icmp eq i32 %.0168, 1
  br i1 %301, label %302, label %316

302:                                              ; preds = %300
  %303 = sext i32 %241 to i64
  %304 = call noundef nonnull align 2 dereferenceable(4) ptr @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %303) #6
  %305 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt5arrayIsLm2EEixEm(ptr noundef nonnull align 2 dereferenceable(4) %304, i64 noundef 1) #6
  %306 = load i16, ptr %305, align 2, !tbaa !17
  %307 = sext i16 %306 to i64
  %308 = add i64 %18, %307
  %309 = load ptr, ptr %16, align 8, !tbaa !5
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %309, i64 noundef 0) #6
  %311 = load ptr, ptr %310, align 8, !tbaa !19
  %312 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %311)
  %313 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %312) #6
  %314 = add i64 %308, %313
  %315 = trunc i64 %314 to i32
  br label %316

316:                                              ; preds = %302, %300
  %.1169 = phi i32 [ %315, %302 ], [ %.0168, %300 ]
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %.1169)
          to label %318 unwind label %280

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull @.str.51)
          to label %320 unwind label %280

320:                                              ; preds = %318
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %319, i32 noundef %.1)
          to label %322 unwind label %280

322:                                              ; preds = %320
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull @.str.51)
          to label %324 unwind label %280

324:                                              ; preds = %322
  %325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %323, i32 noundef %241)
          to label %326 unwind label %280

326:                                              ; preds = %324
  %327 = and i64 %indvars.iv365, 31
  %328 = icmp eq i64 %327, 31
  %329 = select i1 %328, i8 10, i8 32
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %325, i8 noundef signext %329)
          to label %331 unwind label %280

331:                                              ; preds = %326
  %indvars.iv.next366 = add nsw i64 %indvars.iv365, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next366 to i32
  %exitcond368.not = icmp eq i32 %lftr.wideiv, %19
  br i1 %exitcond368.not, label %._crit_edge281, label %.lr.ph280, !llvm.loop !30

._crit_edge281:                                   ; preds = %331, %231
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.77)
          to label %333 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

333:                                              ; preds = %._crit_edge281
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.56)
          to label %.preheader268 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader268:                                    ; preds = %333
  %335 = load i32, ptr %35, align 4, !tbaa !20
  %336 = icmp slt i32 %335, %19
  br i1 %336, label %.lr.ph283, label %._crit_edge284

.lr.ph283:                                        ; preds = %.preheader268, %345
  %.3282 = phi i32 [ %346, %345 ], [ 0, %.preheader268 ]
  %337 = mul nuw nsw i32 %.3282, 3
  %338 = add nuw nsw i32 %337, 3
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %338)
          to label %340 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

340:                                              ; preds = %.lr.ph283
  %341 = and i32 %.3282, 31
  %342 = icmp eq i32 %341, 31
  %343 = select i1 %342, i8 10, i8 32
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %339, i8 noundef signext %343)
          to label %345 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

345:                                              ; preds = %340
  %346 = add nuw nsw i32 %.3282, 1
  %347 = load i32, ptr %35, align 4, !tbaa !20
  %348 = sub nsw i32 %19, %347
  %349 = icmp slt i32 %346, %348
  br i1 %349, label %.lr.ph283, label %._crit_edge284, !llvm.loop !31

._crit_edge284:                                   ; preds = %345, %.preheader268
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.77)
          to label %351 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

351:                                              ; preds = %._crit_edge284
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.57)
          to label %.preheader264 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader264:                                    ; preds = %351
  %353 = load i32, ptr %35, align 4, !tbaa !20
  %354 = icmp slt i32 %353, %19
  br i1 %354, label %.lr.ph286, label %._crit_edge287

.lr.ph286:                                        ; preds = %.preheader264, %361
  %.4285 = phi i32 [ %362, %361 ], [ 0, %.preheader264 ]
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef 21)
          to label %356 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

356:                                              ; preds = %.lr.ph286
  %357 = and i32 %.4285, 31
  %358 = icmp eq i32 %357, 31
  %359 = select i1 %358, i8 10, i8 32
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %355, i8 noundef signext %359)
          to label %361 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

361:                                              ; preds = %356
  %362 = add nuw nsw i32 %.4285, 1
  %363 = load i32, ptr %35, align 4, !tbaa !20
  %364 = sub nsw i32 %19, %363
  %365 = icmp slt i32 %362, %364
  br i1 %365, label %.lr.ph286, label %._crit_edge287, !llvm.loop !32

._crit_edge287:                                   ; preds = %361, %.preheader264
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.77)
          to label %367 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

367:                                              ; preds = %._crit_edge287
  %368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.81)
          to label %369 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

369:                                              ; preds = %367
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.82)
          to label %371 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

371:                                              ; preds = %369
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.89)
          to label %373 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

373:                                              ; preds = %371
  %374 = load i32, ptr %35, align 4, !tbaa !20
  %375 = icmp slt i32 %374, %19
  br i1 %375, label %.lr.ph290.preheader, label %._crit_edge291

.lr.ph290.preheader:                              ; preds = %373
  %376 = sext i32 %374 to i64
  br label %.lr.ph290

.lr.ph290:                                        ; preds = %.lr.ph290.preheader, %388
  %indvars.iv369 = phi i64 [ %376, %.lr.ph290.preheader ], [ %indvars.iv.next370, %388 ]
  %377 = load ptr, ptr %16, align 8, !tbaa !5
  %378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %indvars.iv369) #6
  %379 = load ptr, ptr %378, align 8, !tbaa !19
  %380 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %379)
          to label %381 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

381:                                              ; preds = %.lr.ph290
  %382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %380)
          to label %383 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

383:                                              ; preds = %381
  %384 = and i64 %indvars.iv369, 31
  %385 = icmp eq i64 %384, 31
  %386 = select i1 %385, i8 10, i8 32
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %382, i8 noundef signext %386)
          to label %388 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

388:                                              ; preds = %383
  %indvars.iv.next370 = add nsw i64 %indvars.iv369, 1
  %lftr.wideiv372 = trunc i64 %indvars.iv.next370 to i32
  %exitcond373.not = icmp eq i32 %lftr.wideiv372, %19
  br i1 %exitcond373.not, label %._crit_edge291, label %.lr.ph290, !llvm.loop !33

._crit_edge291:                                   ; preds = %388, %373
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %390 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

390:                                              ; preds = %._crit_edge291
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %392 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

392:                                              ; preds = %390
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.91)
          to label %394 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

394:                                              ; preds = %392
  %395 = load i32, ptr %35, align 4, !tbaa !20
  %396 = icmp slt i32 %395, %19
  br i1 %396, label %.lr.ph294.preheader, label %._crit_edge295

.lr.ph294.preheader:                              ; preds = %394
  %397 = sext i32 %395 to i64
  br label %.lr.ph294

.lr.ph294:                                        ; preds = %.lr.ph294.preheader, %409
  %indvars.iv374 = phi i64 [ %397, %.lr.ph294.preheader ], [ %indvars.iv.next375, %409 ]
  %398 = load ptr, ptr %16, align 8, !tbaa !5
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %398, i64 noundef %indvars.iv374) #6
  %400 = load ptr, ptr %399, align 8, !tbaa !19
  %401 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %400)
          to label %402 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

402:                                              ; preds = %.lr.ph294
  %403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %8, float noundef %401)
          to label %404 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

404:                                              ; preds = %402
  %405 = and i64 %indvars.iv374, 31
  %406 = icmp eq i64 %405, 31
  %407 = select i1 %406, i8 10, i8 32
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %403, i8 noundef signext %407)
          to label %409 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

409:                                              ; preds = %404
  %indvars.iv.next375 = add nsw i64 %indvars.iv374, 1
  %lftr.wideiv377 = trunc i64 %indvars.iv.next375 to i32
  %exitcond378.not = icmp eq i32 %lftr.wideiv377, %19
  br i1 %exitcond378.not, label %._crit_edge295, label %.lr.ph294, !llvm.loop !34

._crit_edge295:                                   ; preds = %409, %394
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %411 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

411:                                              ; preds = %._crit_edge295
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %413 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.92)
          to label %415 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

415:                                              ; preds = %413
  %416 = load i32, ptr %35, align 4, !tbaa !20
  %417 = icmp slt i32 %416, %19
  br i1 %417, label %.lr.ph298.preheader, label %._crit_edge299

.lr.ph298.preheader:                              ; preds = %415
  %418 = sext i32 %416 to i64
  br label %.lr.ph298

.lr.ph298:                                        ; preds = %.lr.ph298.preheader, %430
  %indvars.iv379 = phi i64 [ %418, %.lr.ph298.preheader ], [ %indvars.iv.next380, %430 ]
  %419 = load ptr, ptr %16, align 8, !tbaa !5
  %420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %419, i64 noundef %indvars.iv379) #6
  %421 = load ptr, ptr %420, align 8, !tbaa !19, !nonnull !35, !noundef !35
  %422 = call ptr @__dynamic_cast(ptr nonnull %421, ptr nonnull @_ZTI4Elem, ptr nonnull @_ZTI6Throat, i64 0) #6
  %423 = call noundef double @_ZNK4Elem10saturationEv(ptr noundef nonnull align 8 dereferenceable(408) %422)
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %423)
          to label %425 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

425:                                              ; preds = %.lr.ph298
  %426 = and i64 %indvars.iv379, 31
  %427 = icmp eq i64 %426, 31
  %428 = select i1 %427, i8 10, i8 32
  %429 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %424, i8 noundef signext %428)
          to label %430 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

430:                                              ; preds = %425
  %indvars.iv.next380 = add nsw i64 %indvars.iv379, 1
  %lftr.wideiv382 = trunc i64 %indvars.iv.next380 to i32
  %exitcond383.not = icmp eq i32 %lftr.wideiv382, %19
  br i1 %exitcond383.not, label %._crit_edge299, label %.lr.ph298, !llvm.loop !36

._crit_edge299:                                   ; preds = %430, %415
  %431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %432 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

432:                                              ; preds = %._crit_edge299
  %433 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %431, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %434 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

434:                                              ; preds = %432
  %435 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.93)
          to label %436 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

436:                                              ; preds = %434
  %437 = load i32, ptr %35, align 4, !tbaa !20
  %438 = icmp slt i32 %437, %19
  br i1 %438, label %.lr.ph302, label %._crit_edge303

.lr.ph302:                                        ; preds = %436, %445
  %.8300 = phi i32 [ %446, %445 ], [ %437, %436 ]
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %2)
          to label %440 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

440:                                              ; preds = %.lr.ph302
  %441 = and i32 %.8300, 31
  %442 = icmp eq i32 %441, 31
  %443 = select i1 %442, i8 10, i8 32
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %439, i8 noundef signext %443)
          to label %445 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

445:                                              ; preds = %440
  %446 = add i32 %.8300, 1
  %exitcond384.not = icmp eq i32 %446, %19
  br i1 %exitcond384.not, label %._crit_edge303, label %.lr.ph302, !llvm.loop !37

._crit_edge303:                                   ; preds = %445, %436
  %447 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %448 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

448:                                              ; preds = %._crit_edge303
  %449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %447, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %450 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

450:                                              ; preds = %448
  %451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.94)
          to label %452 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

452:                                              ; preds = %450
  %453 = load i32, ptr %35, align 4, !tbaa !20
  %454 = icmp slt i32 %453, %19
  br i1 %454, label %.lr.ph306.preheader, label %._crit_edge307

.lr.ph306.preheader:                              ; preds = %452
  %455 = sext i32 %453 to i64
  br label %.lr.ph306

.lr.ph306:                                        ; preds = %.lr.ph306.preheader, %470
  %indvars.iv385 = phi i64 [ %455, %.lr.ph306.preheader ], [ %indvars.iv.next386, %470 ]
  %456 = load ptr, ptr %16, align 8, !tbaa !5
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %456, i64 noundef %indvars.iv385) #6
  %458 = load ptr, ptr %457, align 8, !tbaa !19
  %459 = load ptr, ptr %458, align 8, !tbaa !27
  %460 = getelementptr inbounds i8, ptr %459, i64 96
  %461 = load ptr, ptr %460, align 8
  %462 = invoke noundef i32 %461(ptr noundef nonnull align 8 dereferenceable(408) %458)
          to label %463 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

463:                                              ; preds = %.lr.ph306
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %462)
          to label %465 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

465:                                              ; preds = %463
  %466 = and i64 %indvars.iv385, 31
  %467 = icmp eq i64 %466, 31
  %468 = select i1 %467, i8 10, i8 32
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %464, i8 noundef signext %468)
          to label %470 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

470:                                              ; preds = %465
  %indvars.iv.next386 = add nsw i64 %indvars.iv385, 1
  %lftr.wideiv388 = trunc i64 %indvars.iv.next386 to i32
  %exitcond389.not = icmp eq i32 %lftr.wideiv388, %19
  br i1 %exitcond389.not, label %._crit_edge307, label %.lr.ph306, !llvm.loop !38

._crit_edge307:                                   ; preds = %470, %452
  %471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %472 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

472:                                              ; preds = %._crit_edge307
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %474 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.95)
          to label %476 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

476:                                              ; preds = %474
  %477 = load i32, ptr %35, align 4, !tbaa !20
  %478 = icmp slt i32 %477, %19
  br i1 %478, label %.lr.ph310.preheader, label %._crit_edge311

.lr.ph310.preheader:                              ; preds = %476
  %479 = sext i32 %477 to i64
  br label %.lr.ph310

.lr.ph310:                                        ; preds = %.lr.ph310.preheader, %491
  %indvars.iv390 = phi i64 [ %479, %.lr.ph310.preheader ], [ %indvars.iv.next391, %491 ]
  %480 = load ptr, ptr %16, align 8, !tbaa !5
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef %indvars.iv390) #6
  %482 = load ptr, ptr %481, align 8, !tbaa !19
  %483 = call noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %482, i16 noundef zeroext 1)
  %484 = fmul double %483, 1.000000e+18
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %484)
          to label %486 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

486:                                              ; preds = %.lr.ph310
  %487 = and i64 %indvars.iv390, 31
  %488 = icmp eq i64 %487, 31
  %489 = select i1 %488, i8 10, i8 32
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %485, i8 noundef signext %489)
          to label %491 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

491:                                              ; preds = %486
  %indvars.iv.next391 = add nsw i64 %indvars.iv390, 1
  %lftr.wideiv393 = trunc i64 %indvars.iv.next391 to i32
  %exitcond394.not = icmp eq i32 %lftr.wideiv393, %19
  br i1 %exitcond394.not, label %._crit_edge311, label %.lr.ph310, !llvm.loop !39

._crit_edge311:                                   ; preds = %491, %476
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %493 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

493:                                              ; preds = %._crit_edge311
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %495 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.96)
          to label %497 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

497:                                              ; preds = %495
  %498 = load i32, ptr %35, align 4, !tbaa !20
  %499 = icmp slt i32 %498, %19
  br i1 %499, label %.lr.ph314.preheader, label %._crit_edge315

.lr.ph314.preheader:                              ; preds = %497
  %500 = sext i32 %498 to i64
  br label %.lr.ph314

.lr.ph314:                                        ; preds = %.lr.ph314.preheader, %512
  %indvars.iv395 = phi i64 [ %500, %.lr.ph314.preheader ], [ %indvars.iv.next396, %512 ]
  %501 = load ptr, ptr %16, align 8, !tbaa !5
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %501, i64 noundef %indvars.iv395) #6
  %503 = load ptr, ptr %502, align 8, !tbaa !19
  %504 = call noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %503, i16 noundef zeroext 2)
  %505 = fmul double %504, 1.000000e+18
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %505)
          to label %507 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

507:                                              ; preds = %.lr.ph314
  %508 = and i64 %indvars.iv395, 31
  %509 = icmp eq i64 %508, 31
  %510 = select i1 %509, i8 10, i8 32
  %511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %506, i8 noundef signext %510)
          to label %512 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

512:                                              ; preds = %507
  %indvars.iv.next396 = add nsw i64 %indvars.iv395, 1
  %lftr.wideiv398 = trunc i64 %indvars.iv.next396 to i32
  %exitcond399.not = icmp eq i32 %lftr.wideiv398, %19
  br i1 %exitcond399.not, label %._crit_edge315, label %.lr.ph314, !llvm.loop !40

._crit_edge315:                                   ; preds = %512, %497
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %514 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

514:                                              ; preds = %._crit_edge315
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %513, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %516 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.97)
          to label %518 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

518:                                              ; preds = %516
  %519 = load i32, ptr %35, align 4, !tbaa !20
  %520 = icmp slt i32 %519, %19
  br i1 %520, label %.lr.ph318.preheader, label %._crit_edge319

.lr.ph318.preheader:                              ; preds = %518
  %521 = sext i32 %519 to i64
  br label %.lr.ph318

.lr.ph318:                                        ; preds = %.lr.ph318.preheader, %533
  %indvars.iv400 = phi i64 [ %521, %.lr.ph318.preheader ], [ %indvars.iv.next401, %533 ]
  %522 = load ptr, ptr %16, align 8, !tbaa !5
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef %indvars.iv400) #6
  %524 = load ptr, ptr %523, align 8, !tbaa !19
  %525 = call noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408) %524, i16 noundef zeroext 3)
  %526 = fmul double %525, 1.000000e+18
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %526)
          to label %528 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

528:                                              ; preds = %.lr.ph318
  %529 = and i64 %indvars.iv400, 31
  %530 = icmp eq i64 %529, 31
  %531 = select i1 %530, i8 10, i8 32
  %532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %527, i8 noundef signext %531)
          to label %533 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

533:                                              ; preds = %528
  %indvars.iv.next401 = add nsw i64 %indvars.iv400, 1
  %lftr.wideiv403 = trunc i64 %indvars.iv.next401 to i32
  %exitcond404.not = icmp eq i32 %lftr.wideiv403, %19
  br i1 %exitcond404.not, label %._crit_edge319, label %.lr.ph318, !llvm.loop !41

._crit_edge319:                                   ; preds = %533, %518
  %534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %535 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

535:                                              ; preds = %._crit_edge319
  %536 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %537 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

537:                                              ; preds = %535
  %538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.98)
          to label %539 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

539:                                              ; preds = %537
  %540 = load i32, ptr %35, align 4, !tbaa !20
  %541 = icmp slt i32 %540, %19
  br i1 %541, label %.lr.ph322.preheader, label %._crit_edge323

.lr.ph322.preheader:                              ; preds = %539
  %542 = sext i32 %540 to i64
  br label %.lr.ph322

.lr.ph322:                                        ; preds = %.lr.ph322.preheader, %555
  %indvars.iv405 = phi i64 [ %542, %.lr.ph322.preheader ], [ %indvars.iv.next406, %555 ]
  %543 = load ptr, ptr %16, align 8, !tbaa !5
  %544 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %543, i64 noundef %indvars.iv405) #6
  %545 = load ptr, ptr %544, align 8, !tbaa !19, !nonnull !35, !noundef !35
  %546 = call ptr @__dynamic_cast(ptr nonnull %545, ptr nonnull @_ZTI4Elem, ptr nonnull @_ZTI6Throat, i64 0) #6
  %547 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %546)
  %548 = load i32, ptr %547, align 8, !tbaa !42
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %548)
          to label %550 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

550:                                              ; preds = %.lr.ph322
  %551 = and i64 %indvars.iv405, 31
  %552 = icmp eq i64 %551, 31
  %553 = select i1 %552, i8 10, i8 32
  %554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %549, i8 noundef signext %553)
          to label %555 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

555:                                              ; preds = %550
  %indvars.iv.next406 = add nsw i64 %indvars.iv405, 1
  %lftr.wideiv408 = trunc i64 %indvars.iv.next406 to i32
  %exitcond409.not = icmp eq i32 %lftr.wideiv408, %19
  br i1 %exitcond409.not, label %._crit_edge323, label %.lr.ph322, !llvm.loop !44

._crit_edge323:                                   ; preds = %555, %539
  %556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %557 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

557:                                              ; preds = %._crit_edge323
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %559 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.88)
          to label %561 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.99)
          to label %563 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

563:                                              ; preds = %561
  %564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.100)
          to label %.preheader238 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader238:                                    ; preds = %563
  br i1 %45, label %.lr.ph325.preheader, label %.preheader237

.lr.ph325.preheader:                              ; preds = %.preheader238
  %wide.trip.count413 = and i64 %18, 2147483647
  br label %.lr.ph325

.preheader237:                                    ; preds = %583, %.preheader238
  %565 = load ptr, ptr %16, align 8, !tbaa !5
  %566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %565, i64 noundef 0) #6
  %567 = load ptr, ptr %566, align 8, !tbaa !19
  %568 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %567)
  %569 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %568) #6
  %570 = trunc i64 %569 to i32
  %571 = icmp sgt i32 %570, 0
  br i1 %571, label %.lr.ph327, label %._crit_edge328

.lr.ph325:                                        ; preds = %.lr.ph325.preheader, %583
  %indvars.iv410 = phi i64 [ 0, %.lr.ph325.preheader ], [ %indvars.iv.next411, %583 ]
  %572 = load ptr, ptr %16, align 8, !tbaa !5
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %572, i64 noundef %indvars.iv410) #6
  %574 = load ptr, ptr %573, align 8, !tbaa !19
  %575 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %574)
          to label %576 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

576:                                              ; preds = %.lr.ph325
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %575)
          to label %578 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

578:                                              ; preds = %576
  %579 = and i64 %indvars.iv410, 31
  %580 = icmp eq i64 %579, 31
  %581 = select i1 %580, i8 10, i8 32
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %577, i8 noundef signext %581)
          to label %583 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

583:                                              ; preds = %578
  %indvars.iv.next411 = add nuw nsw i64 %indvars.iv410, 1
  %exitcond414.not = icmp eq i64 %indvars.iv.next411, %wide.trip.count413
  br i1 %exitcond414.not, label %.preheader237, label %.lr.ph325, !llvm.loop !45

.lr.ph327:                                        ; preds = %.preheader237, %598
  %indvars.iv415 = phi i64 [ %indvars.iv.next416, %598 ], [ 0, %.preheader237 ]
  %584 = load ptr, ptr %16, align 8, !tbaa !5
  %585 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %584, i64 noundef 0) #6
  %586 = load ptr, ptr %585, align 8, !tbaa !19
  %587 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %586)
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %587, i64 noundef %indvars.iv415) #6
  %589 = load ptr, ptr %588, align 8, !tbaa !19
  %590 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %589)
          to label %591 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

591:                                              ; preds = %.lr.ph327
  %592 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %590)
          to label %593 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

593:                                              ; preds = %591
  %594 = and i64 %indvars.iv415, 31
  %595 = icmp eq i64 %594, 31
  %596 = select i1 %595, i8 10, i8 32
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %592, i8 noundef signext %596)
          to label %598 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

598:                                              ; preds = %593
  %indvars.iv.next416 = add nuw nsw i64 %indvars.iv415, 1
  %599 = load ptr, ptr %16, align 8, !tbaa !5
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %599, i64 noundef 0) #6
  %601 = load ptr, ptr %600, align 8, !tbaa !19
  %602 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %601)
  %603 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %602) #6
  %sext470 = shl i64 %603, 32
  %604 = ashr exact i64 %sext470, 32
  %605 = icmp slt i64 %indvars.iv.next416, %604
  br i1 %605, label %.lr.ph327, label %._crit_edge328, !llvm.loop !46

._crit_edge328:                                   ; preds = %598, %.preheader237
  %606 = load ptr, ptr %16, align 8, !tbaa !5
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %606, i64 noundef 1) #6
  %608 = load ptr, ptr %607, align 8, !tbaa !19
  %609 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %608)
  %610 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %609) #6
  %611 = trunc i64 %610 to i32
  %612 = icmp sgt i32 %611, 0
  br i1 %612, label %.lr.ph327.1, label %._crit_edge328.1

.lr.ph327.1:                                      ; preds = %._crit_edge328, %627
  %indvars.iv415.1 = phi i64 [ %indvars.iv.next416.1, %627 ], [ 0, %._crit_edge328 ]
  %613 = load ptr, ptr %16, align 8, !tbaa !5
  %614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %613, i64 noundef 1) #6
  %615 = load ptr, ptr %614, align 8, !tbaa !19
  %616 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %615)
  %617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP4ElemSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %616, i64 noundef %indvars.iv415.1) #6
  %618 = load ptr, ptr %617, align 8, !tbaa !19
  %619 = invoke noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408) %618)
          to label %620 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

620:                                              ; preds = %.lr.ph327.1
  %621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %619)
          to label %622 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

622:                                              ; preds = %620
  %623 = and i64 %indvars.iv415.1, 31
  %624 = icmp eq i64 %623, 31
  %625 = select i1 %624, i8 10, i8 32
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %621, i8 noundef signext %625)
          to label %627 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

627:                                              ; preds = %622
  %indvars.iv.next416.1 = add nuw nsw i64 %indvars.iv415.1, 1
  %628 = load ptr, ptr %16, align 8, !tbaa !5
  %629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %628, i64 noundef 1) #6
  %630 = load ptr, ptr %629, align 8, !tbaa !19
  %631 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %630)
  %632 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %631) #6
  %sext471 = shl i64 %632, 32
  %633 = ashr exact i64 %sext471, 32
  %634 = icmp slt i64 %indvars.iv.next416.1, %633
  br i1 %634, label %.lr.ph327.1, label %._crit_edge328.1, !llvm.loop !46

._crit_edge328.1:                                 ; preds = %627, %._crit_edge328
  %635 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %636 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

636:                                              ; preds = %._crit_edge328.1
  %637 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %635, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %638 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

638:                                              ; preds = %636
  %639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.91)
          to label %.preheader230 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader230:                                    ; preds = %638
  br i1 %45, label %.lr.ph331.preheader, label %.preheader229

.lr.ph331.preheader:                              ; preds = %.preheader230
  %wide.trip.count427 = and i64 %18, 2147483647
  br label %.lr.ph331

.preheader229:                                    ; preds = %658, %.preheader230
  %640 = load ptr, ptr %16, align 8, !tbaa !5
  %641 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %640, i64 noundef 0) #6
  %642 = load ptr, ptr %641, align 8, !tbaa !19
  %643 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %642)
  %644 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %643) #6
  %645 = trunc i64 %644 to i32
  %646 = icmp sgt i32 %645, 0
  br i1 %646, label %.lr.ph333, label %._crit_edge334

.lr.ph331:                                        ; preds = %.lr.ph331.preheader, %658
  %indvars.iv424 = phi i64 [ 0, %.lr.ph331.preheader ], [ %indvars.iv.next425, %658 ]
  %647 = load ptr, ptr %16, align 8, !tbaa !5
  %648 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %647, i64 noundef %indvars.iv424) #6
  %649 = load ptr, ptr %648, align 8, !tbaa !19
  %650 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %649)
          to label %651 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

651:                                              ; preds = %.lr.ph331
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %8, float noundef %650)
          to label %653 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

653:                                              ; preds = %651
  %654 = and i64 %indvars.iv424, 31
  %655 = icmp eq i64 %654, 31
  %656 = select i1 %655, i8 10, i8 32
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %652, i8 noundef signext %656)
          to label %658 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

658:                                              ; preds = %653
  %indvars.iv.next425 = add nuw nsw i64 %indvars.iv424, 1
  %exitcond428.not = icmp eq i64 %indvars.iv.next425, %wide.trip.count427
  br i1 %exitcond428.not, label %.preheader229, label %.lr.ph331, !llvm.loop !47

.lr.ph333:                                        ; preds = %.preheader229, %670
  %.17332 = phi i32 [ %671, %670 ], [ 0, %.preheader229 ]
  %659 = load ptr, ptr %16, align 8, !tbaa !5
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %659, i64 noundef 0) #6
  %661 = load ptr, ptr %660, align 8, !tbaa !19
  %662 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %661)
          to label %663 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

663:                                              ; preds = %.lr.ph333
  %664 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %8, float noundef %662)
          to label %665 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

665:                                              ; preds = %663
  %666 = and i32 %.17332, 31
  %667 = icmp eq i32 %666, 31
  %668 = select i1 %667, i8 10, i8 32
  %669 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %664, i8 noundef signext %668)
          to label %670 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

670:                                              ; preds = %665
  %671 = add nuw nsw i32 %.17332, 1
  %672 = load ptr, ptr %16, align 8, !tbaa !5
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %672, i64 noundef 0) #6
  %674 = load ptr, ptr %673, align 8, !tbaa !19
  %675 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %674)
  %676 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %675) #6
  %677 = trunc i64 %676 to i32
  %678 = icmp slt i32 %671, %677
  br i1 %678, label %.lr.ph333, label %._crit_edge334, !llvm.loop !48

._crit_edge334:                                   ; preds = %670, %.preheader229
  %679 = load ptr, ptr %16, align 8, !tbaa !5
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %679, i64 noundef 1) #6
  %681 = load ptr, ptr %680, align 8, !tbaa !19
  %682 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %681)
  %683 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %682) #6
  %684 = trunc i64 %683 to i32
  %685 = icmp sgt i32 %684, 0
  br i1 %685, label %.lr.ph333.1, label %._crit_edge334.1

.lr.ph333.1:                                      ; preds = %._crit_edge334, %697
  %.17332.1 = phi i32 [ %698, %697 ], [ 0, %._crit_edge334 ]
  %686 = load ptr, ptr %16, align 8, !tbaa !5
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %686, i64 noundef 1) #6
  %688 = load ptr, ptr %687, align 8, !tbaa !19
  %689 = invoke noundef float @_Z8ffloatofPK4Elem(ptr noundef %688)
          to label %690 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

690:                                              ; preds = %.lr.ph333.1
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %8, float noundef %689)
          to label %692 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

692:                                              ; preds = %690
  %693 = and i32 %.17332.1, 31
  %694 = icmp eq i32 %693, 31
  %695 = select i1 %694, i8 10, i8 32
  %696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %691, i8 noundef signext %695)
          to label %697 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

697:                                              ; preds = %692
  %698 = add nuw nsw i32 %.17332.1, 1
  %699 = load ptr, ptr %16, align 8, !tbaa !5
  %700 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef 1) #6
  %701 = load ptr, ptr %700, align 8, !tbaa !19
  %702 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %701)
  %703 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %702) #6
  %704 = trunc i64 %703 to i32
  %705 = icmp slt i32 %698, %704
  br i1 %705, label %.lr.ph333.1, label %._crit_edge334.1, !llvm.loop !48

._crit_edge334.1:                                 ; preds = %697, %._crit_edge334
  %706 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %707 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

707:                                              ; preds = %._crit_edge334.1
  %708 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %706, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %709 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

709:                                              ; preds = %707
  %710 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.94)
          to label %.preheader222 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader222:                                    ; preds = %709
  br i1 %45, label %.lr.ph337.preheader, label %.preheader221

.lr.ph337.preheader:                              ; preds = %.preheader222
  %wide.trip.count438 = and i64 %18, 2147483647
  br label %.lr.ph337

.preheader221:                                    ; preds = %732, %.preheader222
  %711 = load ptr, ptr %16, align 8, !tbaa !5
  %712 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %711, i64 noundef 0) #6
  %713 = load ptr, ptr %712, align 8, !tbaa !19
  %714 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %713)
  %715 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %714) #6
  %716 = trunc i64 %715 to i32
  %717 = icmp sgt i32 %716, 0
  br i1 %717, label %.lr.ph339, label %._crit_edge340

.lr.ph337:                                        ; preds = %.lr.ph337.preheader, %732
  %indvars.iv435 = phi i64 [ 0, %.lr.ph337.preheader ], [ %indvars.iv.next436, %732 ]
  %718 = load ptr, ptr %16, align 8, !tbaa !5
  %719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %718, i64 noundef %indvars.iv435) #6
  %720 = load ptr, ptr %719, align 8, !tbaa !19
  %721 = load ptr, ptr %720, align 8, !tbaa !27
  %722 = getelementptr inbounds i8, ptr %721, i64 96
  %723 = load ptr, ptr %722, align 8
  %724 = invoke noundef i32 %723(ptr noundef nonnull align 8 dereferenceable(408) %720)
          to label %725 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

725:                                              ; preds = %.lr.ph337
  %726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %724)
          to label %727 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

727:                                              ; preds = %725
  %728 = and i64 %indvars.iv435, 31
  %729 = icmp eq i64 %728, 31
  %730 = select i1 %729, i8 10, i8 32
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %726, i8 noundef signext %730)
          to label %732 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

732:                                              ; preds = %727
  %indvars.iv.next436 = add nuw nsw i64 %indvars.iv435, 1
  %exitcond439.not = icmp eq i64 %indvars.iv.next436, %wide.trip.count438
  br i1 %exitcond439.not, label %.preheader221, label %.lr.ph337, !llvm.loop !49

.lr.ph339:                                        ; preds = %.preheader221, %747
  %.19338 = phi i32 [ %748, %747 ], [ 0, %.preheader221 ]
  %733 = load ptr, ptr %16, align 8, !tbaa !5
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %733, i64 noundef 0) #6
  %735 = load ptr, ptr %734, align 8, !tbaa !19
  %736 = load ptr, ptr %735, align 8, !tbaa !27
  %737 = getelementptr inbounds i8, ptr %736, i64 96
  %738 = load ptr, ptr %737, align 8
  %739 = invoke noundef i32 %738(ptr noundef nonnull align 8 dereferenceable(408) %735)
          to label %740 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

740:                                              ; preds = %.lr.ph339
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %739)
          to label %742 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

742:                                              ; preds = %740
  %743 = and i32 %.19338, 31
  %744 = icmp eq i32 %743, 31
  %745 = select i1 %744, i8 10, i8 32
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %741, i8 noundef signext %745)
          to label %747 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

747:                                              ; preds = %742
  %748 = add nuw nsw i32 %.19338, 1
  %749 = load ptr, ptr %16, align 8, !tbaa !5
  %750 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %749, i64 noundef 0) #6
  %751 = load ptr, ptr %750, align 8, !tbaa !19
  %752 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %751)
  %753 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %752) #6
  %754 = trunc i64 %753 to i32
  %755 = icmp slt i32 %748, %754
  br i1 %755, label %.lr.ph339, label %._crit_edge340, !llvm.loop !50

._crit_edge340:                                   ; preds = %747, %.preheader221
  %756 = load ptr, ptr %16, align 8, !tbaa !5
  %757 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %756, i64 noundef 1) #6
  %758 = load ptr, ptr %757, align 8, !tbaa !19
  %759 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %758)
  %760 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %759) #6
  %761 = trunc i64 %760 to i32
  %762 = icmp sgt i32 %761, 0
  br i1 %762, label %.lr.ph339.1, label %._crit_edge340.1

.lr.ph339.1:                                      ; preds = %._crit_edge340, %777
  %.19338.1 = phi i32 [ %778, %777 ], [ 0, %._crit_edge340 ]
  %763 = load ptr, ptr %16, align 8, !tbaa !5
  %764 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %763, i64 noundef 1) #6
  %765 = load ptr, ptr %764, align 8, !tbaa !19
  %766 = load ptr, ptr %765, align 8, !tbaa !27
  %767 = getelementptr inbounds i8, ptr %766, i64 96
  %768 = load ptr, ptr %767, align 8
  %769 = invoke noundef i32 %768(ptr noundef nonnull align 8 dereferenceable(408) %765)
          to label %770 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

770:                                              ; preds = %.lr.ph339.1
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %769)
          to label %772 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

772:                                              ; preds = %770
  %773 = and i32 %.19338.1, 31
  %774 = icmp eq i32 %773, 31
  %775 = select i1 %774, i8 10, i8 32
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %771, i8 noundef signext %775)
          to label %777 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

777:                                              ; preds = %772
  %778 = add nuw nsw i32 %.19338.1, 1
  %779 = load ptr, ptr %16, align 8, !tbaa !5
  %780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %779, i64 noundef 1) #6
  %781 = load ptr, ptr %780, align 8, !tbaa !19
  %782 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %781)
  %783 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %782) #6
  %784 = trunc i64 %783 to i32
  %785 = icmp slt i32 %778, %784
  br i1 %785, label %.lr.ph339.1, label %._crit_edge340.1, !llvm.loop !50

._crit_edge340.1:                                 ; preds = %777, %._crit_edge340
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %787 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

787:                                              ; preds = %._crit_edge340.1
  %788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %789 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

789:                                              ; preds = %787
  %790 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.98)
          to label %.preheader214 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader214:                                    ; preds = %789
  br i1 %45, label %.lr.ph343.preheader, label %.preheader213

.lr.ph343.preheader:                              ; preds = %.preheader214
  %wide.trip.count449 = and i64 %18, 2147483647
  br label %.lr.ph343

.preheader213:                                    ; preds = %809, %.preheader214
  %791 = load ptr, ptr %16, align 8, !tbaa !5
  %792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %791, i64 noundef 0) #6
  %793 = load ptr, ptr %792, align 8, !tbaa !19
  %794 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %793)
  %795 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %794) #6
  %796 = trunc i64 %795 to i32
  %797 = icmp sgt i32 %796, 0
  br i1 %797, label %.lr.ph345, label %._crit_edge346

.lr.ph343:                                        ; preds = %.lr.ph343.preheader, %809
  %indvars.iv446 = phi i64 [ 0, %.lr.ph343.preheader ], [ %indvars.iv.next447, %809 ]
  %798 = load ptr, ptr %16, align 8, !tbaa !5
  %799 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %798, i64 noundef %indvars.iv446) #6
  %800 = load ptr, ptr %799, align 8, !tbaa !19
  %801 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %800)
  %802 = load i32, ptr %801, align 8, !tbaa !42
  %803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %802)
          to label %804 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

804:                                              ; preds = %.lr.ph343
  %805 = and i64 %indvars.iv446, 31
  %806 = icmp eq i64 %805, 31
  %807 = select i1 %806, i8 10, i8 32
  %808 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %803, i8 noundef signext %807)
          to label %809 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

809:                                              ; preds = %804
  %indvars.iv.next447 = add nuw nsw i64 %indvars.iv446, 1
  %exitcond450.not = icmp eq i64 %indvars.iv.next447, %wide.trip.count449
  br i1 %exitcond450.not, label %.preheader213, label %.lr.ph343, !llvm.loop !51

.lr.ph345:                                        ; preds = %.preheader213, %821
  %.21344 = phi i32 [ %822, %821 ], [ 0, %.preheader213 ]
  %810 = load ptr, ptr %16, align 8, !tbaa !5
  %811 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %810, i64 noundef 0) #6
  %812 = load ptr, ptr %811, align 8, !tbaa !19
  %813 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %812)
  %814 = load i32, ptr %813, align 8, !tbaa !42
  %815 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %814)
          to label %816 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

816:                                              ; preds = %.lr.ph345
  %817 = and i32 %.21344, 31
  %818 = icmp eq i32 %817, 31
  %819 = select i1 %818, i8 10, i8 32
  %820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %815, i8 noundef signext %819)
          to label %821 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit

821:                                              ; preds = %816
  %822 = add nuw nsw i32 %.21344, 1
  %823 = load ptr, ptr %16, align 8, !tbaa !5
  %824 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %823, i64 noundef 0) #6
  %825 = load ptr, ptr %824, align 8, !tbaa !19
  %826 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %825)
  %827 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %826) #6
  %828 = trunc i64 %827 to i32
  %829 = icmp slt i32 %822, %828
  br i1 %829, label %.lr.ph345, label %._crit_edge346, !llvm.loop !52

._crit_edge346:                                   ; preds = %821, %.preheader213
  %830 = load ptr, ptr %16, align 8, !tbaa !5
  %831 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %830, i64 noundef 1) #6
  %832 = load ptr, ptr %831, align 8, !tbaa !19
  %833 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %832)
  %834 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %833) #6
  %835 = trunc i64 %834 to i32
  %836 = icmp sgt i32 %835, 0
  br i1 %836, label %.lr.ph345.1, label %._crit_edge346.1

.lr.ph345.1:                                      ; preds = %._crit_edge346, %848
  %.21344.1 = phi i32 [ %849, %848 ], [ 0, %._crit_edge346 ]
  %837 = load ptr, ptr %16, align 8, !tbaa !5
  %838 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %837, i64 noundef 1) #6
  %839 = load ptr, ptr %838, align 8, !tbaa !19
  %840 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %839)
  %841 = load i32, ptr %840, align 8, !tbaa !42
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %8, i32 noundef %841)
          to label %843 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

843:                                              ; preds = %.lr.ph345.1
  %844 = and i32 %.21344.1, 31
  %845 = icmp eq i32 %844, 31
  %846 = select i1 %845, i8 10, i8 32
  %847 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %842, i8 noundef signext %846)
          to label %848 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp

848:                                              ; preds = %843
  %849 = add nuw nsw i32 %.21344.1, 1
  %850 = load ptr, ptr %16, align 8, !tbaa !5
  %851 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %850, i64 noundef 1) #6
  %852 = load ptr, ptr %851, align 8, !tbaa !19
  %853 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %852)
  %854 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %853) #6
  %855 = trunc i64 %854 to i32
  %856 = icmp slt i32 %849, %855
  br i1 %856, label %.lr.ph345.1, label %._crit_edge346.1, !llvm.loop !52

._crit_edge346.1:                                 ; preds = %848, %._crit_edge346
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %858 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

858:                                              ; preds = %._crit_edge346.1
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %860 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

860:                                              ; preds = %858
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.92)
          to label %.preheader206 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.preheader206:                                    ; preds = %860
  br i1 %45, label %.lr.ph349.preheader, label %.preheader205

.lr.ph349.preheader:                              ; preds = %.preheader206
  %wide.trip.count460 = and i64 %18, 2147483647
  br label %.lr.ph349

.preheader205:                                    ; preds = %879, %.preheader206
  %862 = load ptr, ptr %16, align 8, !tbaa !5
  %863 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %862, i64 noundef 0) #6
  %864 = load ptr, ptr %863, align 8, !tbaa !19
  %865 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %864)
  %866 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %865) #6
  %867 = trunc i64 %866 to i32
  %868 = icmp sgt i32 %867, 0
  br i1 %868, label %.lr.ph351, label %._crit_edge352

.lr.ph349:                                        ; preds = %.lr.ph349.preheader, %879
  %indvars.iv457 = phi i64 [ 0, %.lr.ph349.preheader ], [ %indvars.iv.next458, %879 ]
  %869 = load ptr, ptr %16, align 8, !tbaa !5
  %870 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %869, i64 noundef %indvars.iv457) #6
  %871 = load ptr, ptr %870, align 8, !tbaa !19
  %872 = call noundef double @_ZNK4Elem15waterSaturationEv(ptr noundef nonnull align 8 dereferenceable(408) %871)
  %873 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %872)
          to label %874 unwind label %.loopexit.split-lp.loopexit

874:                                              ; preds = %.lr.ph349
  %875 = and i64 %indvars.iv457, 31
  %876 = icmp eq i64 %875, 31
  %877 = select i1 %876, i8 10, i8 32
  %878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %873, i8 noundef signext %877)
          to label %879 unwind label %.loopexit.split-lp.loopexit

879:                                              ; preds = %874
  %indvars.iv.next458 = add nuw nsw i64 %indvars.iv457, 1
  %exitcond461.not = icmp eq i64 %indvars.iv.next458, %wide.trip.count460
  br i1 %exitcond461.not, label %.preheader205, label %.lr.ph349, !llvm.loop !53

.lr.ph351:                                        ; preds = %.preheader205, %890
  %.23350 = phi i32 [ %891, %890 ], [ 0, %.preheader205 ]
  %880 = load ptr, ptr %16, align 8, !tbaa !5
  %881 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %880, i64 noundef 0) #6
  %882 = load ptr, ptr %881, align 8, !tbaa !19
  %883 = call noundef double @_ZNK4Elem15waterSaturationEv(ptr noundef nonnull align 8 dereferenceable(408) %882)
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %883)
          to label %885 unwind label %.loopexit.loopexit

885:                                              ; preds = %.lr.ph351
  %886 = and i32 %.23350, 31
  %887 = icmp eq i32 %886, 31
  %888 = select i1 %887, i8 10, i8 32
  %889 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %884, i8 noundef signext %888)
          to label %890 unwind label %.loopexit.loopexit

890:                                              ; preds = %885
  %891 = add nuw nsw i32 %.23350, 1
  %892 = load ptr, ptr %16, align 8, !tbaa !5
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %892, i64 noundef 0) #6
  %894 = load ptr, ptr %893, align 8, !tbaa !19
  %895 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %894)
  %896 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %895) #6
  %897 = trunc i64 %896 to i32
  %898 = icmp slt i32 %891, %897
  br i1 %898, label %.lr.ph351, label %._crit_edge352, !llvm.loop !54

._crit_edge352:                                   ; preds = %890, %.preheader205
  %899 = load ptr, ptr %16, align 8, !tbaa !5
  %900 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %899, i64 noundef 1) #6
  %901 = load ptr, ptr %900, align 8, !tbaa !19
  %902 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %901)
  %903 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %902) #6
  %904 = trunc i64 %903 to i32
  %905 = icmp sgt i32 %904, 0
  br i1 %905, label %.lr.ph351.1, label %._crit_edge352.1

.lr.ph351.1:                                      ; preds = %._crit_edge352, %916
  %.23350.1 = phi i32 [ %917, %916 ], [ 0, %._crit_edge352 ]
  %906 = load ptr, ptr %16, align 8, !tbaa !5
  %907 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %906, i64 noundef 1) #6
  %908 = load ptr, ptr %907, align 8, !tbaa !19
  %909 = call noundef double @_ZNK4Elem15waterSaturationEv(ptr noundef nonnull align 8 dereferenceable(408) %908)
  %910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %8, double noundef %909)
          to label %911 unwind label %.loopexit.loopexit.split-lp

911:                                              ; preds = %.lr.ph351.1
  %912 = and i32 %.23350.1, 31
  %913 = icmp eq i32 %912, 31
  %914 = select i1 %913, i8 10, i8 32
  %915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %910, i8 noundef signext %914)
          to label %916 unwind label %.loopexit.loopexit.split-lp

916:                                              ; preds = %911
  %917 = add nuw nsw i32 %.23350.1, 1
  %918 = load ptr, ptr %16, align 8, !tbaa !5
  %919 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPK4ElemSaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %918, i64 noundef 1) #6
  %920 = load ptr, ptr %919, align 8, !tbaa !19
  %921 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408) %920)
  %922 = call noundef i64 @_ZNKSt6vectorIP4ElemSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %921) #6
  %923 = trunc i64 %922 to i32
  %924 = icmp slt i32 %917, %923
  br i1 %924, label %.lr.ph351.1, label %._crit_edge352.1, !llvm.loop !54

._crit_edge352.1:                                 ; preds = %916, %._crit_edge352
  %925 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.90)
          to label %926 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

926:                                              ; preds = %._crit_edge352.1
  %927 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %925, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %928 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

928:                                              ; preds = %926
  %929 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.101)
          to label %930 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

930:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  invoke void @_ZN9results3D6finishB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(93) %0)
          to label %931 unwind label %935

931:                                              ; preds = %930
  %932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %933 unwind label %937

933:                                              ; preds = %931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248) %8)
          to label %934 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

934:                                              ; preds = %933
  call void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %8) #6
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %8) #6
  ret void

935:                                              ; preds = %930
  %936 = landingpad { ptr, i32 }
          cleanup
  br label %939

937:                                              ; preds = %931
  %938 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %939

939:                                              ; preds = %937, %935
  %.pn194 = phi { ptr, i32 } [ %938, %937 ], [ %936, %935 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %.loopexit.loopexit, %.loopexit.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit, %276, %280, %278, %939, %131, %85, %84
  %.pn202 = phi { ptr, i32 } [ %86, %85 ], [ %lpad.phi, %131 ], [ %.pn194, %939 ], [ %.pn, %84 ], [ %277, %276 ], [ %281, %280 ], [ %279, %278 ], [ %lpad.loopexit207, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit215, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit223, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit231, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit239, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit242, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit244, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit247, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit249, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit252, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit254, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit257, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit259, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit262, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit265, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit269, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit465, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp466, %.loopexit.loopexit.split-lp ], [ %lpad.loopexit454, %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp455, %.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %lpad.loopexit443, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp444, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %lpad.loopexit432, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp433, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %lpad.loopexit421, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp422, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ]
  call void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #6
  br label %940

940:                                              ; preds = %.loopexit.split-lp, %78
  %.pn202.pn = phi { ptr, i32 } [ %.pn202, %.loopexit.split-lp ], [ %79, %78 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %8) #6
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %8) #6
  resume { ptr, i32 } %.pn202.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z8ffloatofPK4Elem(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(248)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt5arrayIsLm2EESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 2 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4Elem11connectionsEv(ptr noundef nonnull align 8 dereferenceable(408)) local_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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

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

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

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

declare noundef double @_ZNK4Elem3RRREv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Elem14poreToPoreCondE6fluidf(ptr noundef nonnull align 8 dereferenceable(408), i16 noundef zeroext) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorISt5arrayIsLm2EEED2Ev(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 = { 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 #3 = { 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 = { "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 nofree nounwind willreturn memory(read) }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 8}
!6 = !{!"_ZTS9results3D", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !11, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !12, i64 48, !15, i64 80, !10, i64 88, !16, i64 92}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTSN9results3D6FormatE", !8, i64 0}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !8, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!14 = !{!"long", !8, i64 0}
!15 = !{!"double", !8, i64 0}
!16 = !{!"bool", !8, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"short", !8, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!6, !10, i64 20}
!21 = !{!22, !15, i64 0}
!22 = !{!"_ZTS4var3IdE", !15, i64 0, !15, i64 8, !15, i64 16}
!23 = !{!22, !15, i64 8}
!24 = !{!22, !15, i64 16}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !28, i64 0}
!28 = !{!"vtable pointer", !9, i64 0}
!29 = distinct !{!29, !26}
!30 = distinct !{!30, !26}
!31 = distinct !{!31, !26}
!32 = distinct !{!32, !26}
!33 = distinct !{!33, !26}
!34 = distinct !{!34, !26}
!35 = !{}
!36 = distinct !{!36, !26}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}
!39 = distinct !{!39, !26}
!40 = distinct !{!40, !26}
!41 = distinct !{!41, !26}
!42 = !{!43, !10, i64 0}
!43 = !{!"_ZTSSt4pairIidE", !10, i64 0, !15, i64 8}
!44 = distinct !{!44, !26}
!45 = distinct !{!45, !26}
!46 = distinct !{!46, !26}
!47 = distinct !{!47, !26}
!48 = distinct !{!48, !26}
!49 = distinct !{!49, !26}
!50 = distinct !{!50, !26}
!51 = distinct !{!51, !26}
!52 = distinct !{!52, !26}
!53 = distinct !{!53, !26}
!54 = distinct !{!54, !26}


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