; LLVM IR from ERGO-Code/HiGHS :: src/ipm/ipx/ipm.ll (ZN3ipx3IPM11PrintOutputEv)

; 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::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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.ipx::Timer" = type { %"class.std::chrono::time_point" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.std::allocator" = type { i8 }
%"class.ipx::IPM" = type <{ ptr, ptr, ptr, ptr, double, double, i32, [4 x i8], double, i32, [4 x i8], double, i32, [4 x i8] }>
%struct.ipx_info = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, double, double, double, double }

@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3ipx3IPM11PrintOutputEv(ptr noundef nonnull align 8 dereferenceable(84) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i8, align 1
  %4 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.ipx::Timer", align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %30 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #5
  %31 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %32 = load ptr, ptr %31, align 8, !tbaa !9
  %33 = call noundef zeroext i1 @_ZNK3ipx7Iterate8feasibleEv(ptr noundef nonnull align 8 dereferenceable(296) %32)
  br i1 %33, label %34, label %38

34:                                               ; preds = %1
  %35 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %36 = load ptr, ptr %35, align 8, !tbaa !9
  %37 = call noundef zeroext i1 @_ZNK3ipx7Iterate7optimalEv(ptr noundef nonnull align 8 dereferenceable(296) %36)
  br label %38

38:                                               ; preds = %34, %1
  %39 = phi i1 [ false, %1 ], [ %37, %34 ]
  %40 = zext i1 %39 to i8
  store i8 %40, ptr %3, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 392, ptr %4) #5
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %4)
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %41 unwind label %123

41:                                               ; preds = %38
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  %42 = getelementptr inbounds i8, ptr %4, i64 16
  %43 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef @.str.43)
          to label %44 unwind label %127

44:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  %45 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 3
  %46 = load ptr, ptr %45, align 8, !tbaa !15
  %47 = getelementptr inbounds %struct.ipx_info, ptr %46, i32 0, i32 34
  %48 = load i32, ptr %47, align 8, !tbaa !16
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, i32 noundef %48, i32 noundef 3)
          to label %49 unwind label %131

49:                                               ; preds = %44
  %50 = 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) %43, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %51 unwind label %135

51:                                               ; preds = %49
  %52 = load i8, ptr %3, align 1, !tbaa !13, !range !18, !noundef !19
  %53 = trunc i8 %52 to i1
  br i1 %53, label %54, label %55

54:                                               ; preds = %51
  br label %56

55:                                               ; preds = %51
  br label %56

56:                                               ; preds = %55, %54
  %57 = phi ptr [ @.str.59, %54 ], [ @.str.43, %55 ]
  %58 = getelementptr inbounds [2 x i8], ptr %57, i64 0, i64 0
  %59 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef %58)
          to label %60 unwind label %135

60:                                               ; preds = %56
  %61 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef @.str.45)
          to label %62 unwind label %135

62:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #5
  %63 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %64 = load ptr, ptr %63, align 8, !tbaa !9
  %65 = invoke noundef double @_ZNK3ipx7Iterate9presidualEv(ptr noundef nonnull align 8 dereferenceable(296) %64)
          to label %66 unwind label %139

66:                                               ; preds = %62
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, double noundef %65, i32 noundef 8, i32 noundef 2)
          to label %67 unwind label %139

67:                                               ; preds = %66
  %68 = 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) %61, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %69 unwind label %143

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

71:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #5
  %72 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %73 = load ptr, ptr %72, align 8, !tbaa !9
  %74 = invoke noundef double @_ZNK3ipx7Iterate9dresidualEv(ptr noundef nonnull align 8 dereferenceable(296) %73)
          to label %75 unwind label %147

75:                                               ; preds = %71
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, double noundef %74, i32 noundef 8, i32 noundef 2)
          to label %76 unwind label %147

76:                                               ; preds = %75
  %77 = 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) %70, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %78 unwind label %151

78:                                               ; preds = %76
  %79 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef @.str.45)
          to label %80 unwind label %151

80:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #5
  %81 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %82 = load ptr, ptr %81, align 8, !tbaa !9
  %83 = invoke noundef double @_ZNK3ipx7Iterate25pobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296) %82)
          to label %84 unwind label %155

84:                                               ; preds = %80
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, double noundef %83, i32 noundef 15, i32 noundef 8)
          to label %85 unwind label %155

85:                                               ; preds = %84
  %86 = 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) %79, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %87 unwind label %159

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef @.str.43)
          to label %89 unwind label %159

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #5
  %90 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %91 = load ptr, ptr %90, align 8, !tbaa !9
  %92 = invoke noundef double @_ZNK3ipx7Iterate25dobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296) %91)
          to label %93 unwind label %163

93:                                               ; preds = %89
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, double noundef %92, i32 noundef 15, i32 noundef 8)
          to label %94 unwind label %163

94:                                               ; preds = %93
  %95 = 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) %88, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %96 unwind label %167

96:                                               ; preds = %94
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef @.str.45)
          to label %98 unwind label %167

98:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #5
  %99 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 2
  %100 = load ptr, ptr %99, align 8, !tbaa !9
  %101 = invoke noundef double @_ZNK3ipx7Iterate2muEv(ptr noundef nonnull align 8 dereferenceable(296) %100)
          to label %102 unwind label %171

102:                                              ; preds = %98
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, double noundef %101, i32 noundef 8, i32 noundef 2)
          to label %103 unwind label %171

103:                                              ; preds = %102
  %104 = 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) %97, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %105 unwind label %175

105:                                              ; preds = %103
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  %106 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %107 = load ptr, ptr %106, align 8, !tbaa !20
  %108 = invoke noundef zeroext i1 @_ZNK3ipx7Control11timelessLogEv(ptr noundef nonnull align 8 dereferenceable(1496) %107)
          to label %109 unwind label %127

109:                                              ; preds = %105
  br i1 %108, label %199, label %110

110:                                              ; preds = %109
  %111 = getelementptr inbounds i8, ptr %4, i64 16
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef @.str.45)
          to label %113 unwind label %127

113:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  %114 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %115 = load ptr, ptr %114, align 8, !tbaa !20
  %116 = invoke noundef double @_ZNK3ipx7Control7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(1496) %115)
          to label %117 unwind label %190

117:                                              ; preds = %113
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, double noundef %116, i32 noundef 6, i32 noundef 0)
          to label %118 unwind label %190

118:                                              ; preds = %117
  %119 = 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) %112, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %120 unwind label %194

120:                                              ; preds = %118
  %121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef @.str.60)
          to label %122 unwind label %194

122:                                              ; preds = %120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %199

123:                                              ; preds = %38
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %6, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  br label %455

127:                                              ; preds = %242, %238, %206, %202, %199, %110, %105, %41
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %6, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %7, align 4
  br label %455

131:                                              ; preds = %44
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %6, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %7, align 4
  br label %189

135:                                              ; preds = %60, %56, %49
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %6, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %7, align 4
  br label %188

139:                                              ; preds = %66, %62
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %6, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %7, align 4
  br label %187

143:                                              ; preds = %69, %67
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %6, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %7, align 4
  br label %186

147:                                              ; preds = %75, %71
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %6, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %7, align 4
  br label %185

151:                                              ; preds = %78, %76
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %6, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %7, align 4
  br label %184

155:                                              ; preds = %84, %80
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %6, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %7, align 4
  br label %183

159:                                              ; preds = %87, %85
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %6, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %7, align 4
  br label %182

163:                                              ; preds = %93, %89
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %6, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %7, align 4
  br label %181

167:                                              ; preds = %96, %94
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %6, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %7, align 4
  br label %180

171:                                              ; preds = %102, %98
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %6, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %7, align 4
  br label %179

175:                                              ; preds = %103
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %6, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %179

179:                                              ; preds = %175, %171
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %180

180:                                              ; preds = %179, %167
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %181

181:                                              ; preds = %180, %163
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %182

182:                                              ; preds = %181, %159
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %183

183:                                              ; preds = %182, %155
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  br label %184

184:                                              ; preds = %183, %151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %185

185:                                              ; preds = %184, %147
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  br label %186

186:                                              ; preds = %185, %143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %187

187:                                              ; preds = %186, %139
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #5
  br label %188

188:                                              ; preds = %187, %135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %189

189:                                              ; preds = %188, %131
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  br label %455

190:                                              ; preds = %117, %113
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %6, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %7, align 4
  br label %198

194:                                              ; preds = %120, %118
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %6, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %198

198:                                              ; preds = %194, %190
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %455

199:                                              ; preds = %122, %109
  %200 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %201 = load ptr, ptr %200, align 8, !tbaa !20
  invoke void @_ZNK3ipx7Control4hLogERNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496) %201, ptr noundef nonnull align 8 dereferenceable(128) %4)
          to label %202 unwind label %127

202:                                              ; preds = %199
  %203 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %204 = load ptr, ptr %203, align 8, !tbaa !20
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %204, i32 noundef 1)
          to label %206 unwind label %127

206:                                              ; preds = %202
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef @.str.45)
          to label %208 unwind label %127

208:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #5
  %209 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 4
  %210 = load double, ptr %209, align 8, !tbaa !21
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, double noundef %210, i32 noundef 4, i32 noundef 2)
          to label %211 unwind label %312

211:                                              ; preds = %208
  %212 = 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) %207, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %213 unwind label %316

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @.str.43)
          to label %215 unwind label %316

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  %216 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 5
  %217 = load double, ptr %216, align 8, !tbaa !22
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, double noundef %217, i32 noundef 4, i32 noundef 2)
          to label %218 unwind label %320

218:                                              ; preds = %215
  %219 = 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) %214, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %220 unwind label %324

220:                                              ; preds = %218
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef @.str.45)
          to label %222 unwind label %324

222:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #5
  %223 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 1
  %224 = load ptr, ptr %223, align 8, !tbaa !23
  %225 = invoke noundef i32 @_ZNK3ipx9KKTSolver13basis_changesEv(ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %226 unwind label %328

226:                                              ; preds = %222
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, i32 noundef %225, i32 noundef 7)
          to label %227 unwind label %328

227:                                              ; preds = %226
  %228 = 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) %221, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %229 unwind label %332

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef @.str.43)
          to label %231 unwind label %332

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #5
  %232 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 1
  %233 = load ptr, ptr %232, align 8, !tbaa !23
  %234 = invoke noundef i32 @_ZNK3ipx9KKTSolver4iterEv(ptr noundef nonnull align 8 dereferenceable(8) %233)
          to label %235 unwind label %336

235:                                              ; preds = %231
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, i32 noundef %234, i32 noundef 7)
          to label %236 unwind label %336

236:                                              ; preds = %235
  %237 = 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) %230, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %238 unwind label %340

238:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #5
  %239 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %240 = load ptr, ptr %239, align 8, !tbaa !20
  %241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %240, i32 noundef 1)
          to label %242 unwind label %127

242:                                              ; preds = %238
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef @.str.45)
          to label %244 unwind label %127

244:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #5
  %245 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 3
  %246 = load ptr, ptr %245, align 8, !tbaa !15
  %247 = getelementptr inbounds %struct.ipx_info, ptr %246, i32 0, i32 19
  %248 = load i32, ptr %247, align 4, !tbaa !24
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, i32 noundef %248, i32 noundef 7)
          to label %249 unwind label %351

249:                                              ; preds = %244
  %250 = 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) %243, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %251 unwind label %355

251:                                              ; preds = %249
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef @.str.43)
          to label %253 unwind label %355

253:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #5
  %254 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 3
  %255 = load ptr, ptr %254, align 8, !tbaa !15
  %256 = getelementptr inbounds %struct.ipx_info, ptr %255, i32 0, i32 18
  %257 = load i32, ptr %256, align 8, !tbaa !25
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, i32 noundef %257, i32 noundef 7)
          to label %258 unwind label %359

258:                                              ; preds = %253
  %259 = 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) %252, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %260 unwind label %363

260:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %261 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 1
  %262 = load ptr, ptr %261, align 8, !tbaa !23
  %263 = invoke noundef ptr @_ZNK3ipx9KKTSolver5basisEv(ptr noundef nonnull align 8 dereferenceable(8) %262)
          to label %264 unwind label %370

264:                                              ; preds = %260
  store ptr %263, ptr %21, align 8, !tbaa !5
  %265 = load ptr, ptr %21, align 8, !tbaa !5
  %266 = icmp ne ptr %265, null
  br i1 %266, label %267, label %403

267:                                              ; preds = %264
  %268 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %269 = load ptr, ptr %268, align 8, !tbaa !20
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %269, i32 noundef 4)
          to label %271 unwind label %370

271:                                              ; preds = %267
  %272 = load ptr, ptr %270, align 8, !tbaa !26
  %273 = getelementptr i8, ptr %272, i64 -24
  %274 = load i64, ptr %273, align 8
  %275 = getelementptr inbounds i8, ptr %270, i64 %274
  %276 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %275)
          to label %277 unwind label %370

277:                                              ; preds = %271
  br i1 %276, label %278, label %402

278:                                              ; preds = %277
  %279 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %280 = load ptr, ptr %279, align 8, !tbaa !20
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %280, i32 noundef 4)
          to label %282 unwind label %370

282:                                              ; preds = %278
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef @.str.45)
          to label %284 unwind label %370

284:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  %285 = load ptr, ptr %21, align 8, !tbaa !5
  %286 = invoke noundef double @_ZNK3ipx5Basis16MinSingularValueEv(ptr noundef nonnull align 8 dereferenceable(176) %285)
          to label %287 unwind label %374

287:                                              ; preds = %284
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, double noundef %286, i32 noundef 9, i32 noundef 2)
          to label %288 unwind label %374

288:                                              ; preds = %287
  %289 = 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) %283, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %290 unwind label %378

290:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  invoke void @_ZN3ipx5TimerC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %291 unwind label %383

291:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = invoke noundef double @_ZNK3ipx5Basis14DensityInverseEv(ptr noundef nonnull align 8 dereferenceable(176) %292)
          to label %294 unwind label %387

294:                                              ; preds = %291
  store double %293, ptr %24, align 8, !tbaa !28
  %295 = invoke noundef double @_ZNK3ipx5Timer7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %296 unwind label %387

296:                                              ; preds = %294
  %297 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 3
  %298 = load ptr, ptr %297, align 8, !tbaa !15
  %299 = getelementptr inbounds %struct.ipx_info, ptr %298, i32 0, i32 64
  %300 = load double, ptr %299, align 8, !tbaa !29
  %301 = fadd double %300, %295
  store double %301, ptr %299, align 8, !tbaa !29
  %302 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %303 = load ptr, ptr %302, align 8, !tbaa !20
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %303, i32 noundef 4)
          to label %305 unwind label %387

305:                                              ; preds = %296
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef @.str.45)
          to label %307 unwind label %387

307:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #5
  %308 = load double, ptr %24, align 8, !tbaa !28
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, double noundef %308, i32 noundef 8, i32 noundef 2)
          to label %309 unwind label %391

309:                                              ; preds = %307
  %310 = 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) %306, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %311 unwind label %395

311:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %402

312:                                              ; preds = %208
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %6, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %7, align 4
  br label %350

316:                                              ; preds = %213, %211
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %6, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %7, align 4
  br label %349

320:                                              ; preds = %215
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %6, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %7, align 4
  br label %348

324:                                              ; preds = %220, %218
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %6, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %7, align 4
  br label %347

328:                                              ; preds = %226, %222
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %6, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %7, align 4
  br label %346

332:                                              ; preds = %229, %227
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %6, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %7, align 4
  br label %345

336:                                              ; preds = %235, %231
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %6, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %7, align 4
  br label %344

340:                                              ; preds = %236
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %6, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br label %344

344:                                              ; preds = %340, %336
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #5
  br label %345

345:                                              ; preds = %344, %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %346

346:                                              ; preds = %345, %328
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #5
  br label %347

347:                                              ; preds = %346, %324
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %348

348:                                              ; preds = %347, %320
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %349

349:                                              ; preds = %348, %316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br label %350

350:                                              ; preds = %349, %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #5
  br label %455

351:                                              ; preds = %244
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %6, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %7, align 4
  br label %369

355:                                              ; preds = %251, %249
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %6, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %7, align 4
  br label %368

359:                                              ; preds = %253
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %6, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %7, align 4
  br label %367

363:                                              ; preds = %258
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %6, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %367

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

368:                                              ; preds = %367, %355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  br label %369

369:                                              ; preds = %368, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #5
  br label %455

370:                                              ; preds = %416, %412, %407, %403, %282, %278, %271, %267, %260
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %6, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %7, align 4
  br label %454

374:                                              ; preds = %287, %284
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %6, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %7, align 4
  br label %382

378:                                              ; preds = %288
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %6, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %382

382:                                              ; preds = %378, %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  br label %454

383:                                              ; preds = %290
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %6, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %7, align 4
  br label %401

387:                                              ; preds = %305, %296, %294, %291
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %6, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %7, align 4
  br label %400

391:                                              ; preds = %307
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %6, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %7, align 4
  br label %399

395:                                              ; preds = %309
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %6, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %399

399:                                              ; preds = %395, %391
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  br label %400

400:                                              ; preds = %399, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %401

401:                                              ; preds = %400, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %454

402:                                              ; preds = %311, %277
  br label %440

403:                                              ; preds = %264
  %404 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %405 = load ptr, ptr %404, align 8, !tbaa !20
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %405, i32 noundef 4)
          to label %407 unwind label %370

407:                                              ; preds = %403
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef @.str.45)
          to label %409 unwind label %370

409:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #5
  invoke void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef @.str.61, i32 noundef 9)
          to label %410 unwind label %422

410:                                              ; preds = %409
  %411 = 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) %408, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %412 unwind label %426

412:                                              ; preds = %410
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  %413 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %414 = load ptr, ptr %413, align 8, !tbaa !20
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %414, i32 noundef 4)
          to label %416 unwind label %370

416:                                              ; preds = %412
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef @.str.45)
          to label %418 unwind label %370

418:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #5
  invoke void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef @.str.61, i32 noundef 8)
          to label %419 unwind label %431

419:                                              ; preds = %418
  %420 = 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) %417, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %421 unwind label %435

421:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  br label %440

422:                                              ; preds = %409
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %6, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %7, align 4
  br label %430

426:                                              ; preds = %410
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %6, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %430

430:                                              ; preds = %426, %422
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %454

431:                                              ; preds = %418
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %6, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %7, align 4
  br label %439

435:                                              ; preds = %419
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %6, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %439

439:                                              ; preds = %435, %431
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  br label %454

440:                                              ; preds = %421, %402
  %441 = getelementptr inbounds %"class.ipx::IPM", ptr %30, i32 0, i32 0
  %442 = load ptr, ptr %441, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %443 unwind label %445

443:                                              ; preds = %440
  invoke void @_ZNK3ipx7Control4hLogENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496) %442, ptr noundef %28)
          to label %444 unwind label %449

444:                                              ; preds = %443
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %4) #5
  call void @llvm.lifetime.end.p0(i64 392, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #5
  ret void

445:                                              ; preds = %440
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %6, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %7, align 4
  br label %453

449:                                              ; preds = %443
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %6, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %453

453:                                              ; preds = %449, %445
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  br label %454

454:                                              ; preds = %453, %439, %430, %401, %382, %370
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %455

455:                                              ; preds = %454, %369, %350, %198, %189, %127, %123
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %4) #5
  call void @llvm.lifetime.end.p0(i64 392, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #5
  br label %456

456:                                              ; preds = %455
  %457 = load ptr, ptr %6, align 8
  %458 = load i32, ptr %7, align 4
  %459 = insertvalue { ptr, i32 } poison, ptr %457, 0
  %460 = insertvalue { ptr, i32 } %459, i32 %458, 1
  resume { ptr, i32 } %460
}

declare noundef double @_ZNK3ipx7Iterate25pobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

declare noundef double @_ZNK3ipx7Iterate25dobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

declare void @_ZNK3ipx7Control4hLogENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496), ptr noundef) #3

declare noundef double @_ZNK3ipx7Iterate2muEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

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

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

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

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

declare void @_ZNK3ipx7Control4hLogERNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496), ptr noundef nonnull align 8 dereferenceable(128)) #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 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)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef, i32 noundef) #4

declare void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i32 noundef) #3

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496), i32 noundef) #3

declare noundef zeroext i1 @_ZNK3ipx7Iterate8feasibleEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

declare noundef zeroext i1 @_ZNK3ipx7Iterate7optimalEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

declare void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef, i32 noundef) #3

declare noundef double @_ZNK3ipx7Iterate9presidualEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

declare noundef double @_ZNK3ipx7Iterate9dresidualEv(ptr noundef nonnull align 8 dereferenceable(296)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef, i32 noundef) #4

declare noundef double @_ZNK3ipx7Control7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(1496)) #3

declare noundef i32 @_ZNK3ipx9KKTSolver13basis_changesEv(ptr noundef nonnull align 8 dereferenceable(8)) #3

declare noundef i32 @_ZNK3ipx9KKTSolver4iterEv(ptr noundef nonnull align 8 dereferenceable(8)) #3

declare noundef ptr @_ZNK3ipx9KKTSolver5basisEv(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare noundef double @_ZNK3ipx5Basis16MinSingularValueEv(ptr noundef nonnull align 8 dereferenceable(176)) #3

declare void @_ZN3ipx5TimerC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare noundef double @_ZNK3ipx5Basis14DensityInverseEv(ptr noundef nonnull align 8 dereferenceable(176)) #3

declare noundef double @_ZNK3ipx5Timer7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!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, !6, i64 16}
!10 = !{!"_ZTSN3ipx3IPME", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !11, i64 32, !11, i64 40, !12, i64 48, !11, i64 56, !12, i64 64, !11, i64 72, !12, i64 80}
!11 = !{!"double", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!10, !6, i64 24}
!16 = !{!17, !12, i64 192}
!17 = !{!"_ZTS8ipx_info", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !12, i64 72, !12, i64 76, !11, i64 80, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !11, i64 120, !11, i64 128, !11, i64 136, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !11, i64 184, !12, i64 192, !12, i64 196, !12, i64 200, !12, i64 204, !12, i64 208, !12, i64 212, !12, i64 216, !11, i64 224, !11, i64 232, !11, i64 240, !11, i64 248, !11, i64 256, !11, i64 264, !11, i64 272, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312, !11, i64 320, !11, i64 328, !11, i64 336, !11, i64 344, !11, i64 352, !11, i64 360, !11, i64 368, !11, i64 376, !11, i64 384, !11, i64 392, !11, i64 400, !11, i64 408, !12, i64 416, !12, i64 420, !12, i64 424, !12, i64 428, !11, i64 432, !11, i64 440, !11, i64 448, !11, i64 456}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!10, !6, i64 0}
!21 = !{!10, !11, i64 32}
!22 = !{!10, !11, i64 40}
!23 = !{!10, !6, i64 8}
!24 = !{!17, !12, i64 76}
!25 = !{!17, !12, i64 72}
!26 = !{!27, !27, i64 0}
!27 = !{!"vtable pointer", !8, i64 0}
!28 = !{!11, !11, i64 0}
!29 = !{!17, !11, i64 408}


; 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::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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.ipx::Timer" = type { %"class.std::chrono::time_point" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.std::allocator" = type { i8 }

@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3ipx3IPM11PrintOutputEv(ptr nocapture noundef nonnull readonly align 8 dereferenceable(84) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.ipx::Timer", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = getelementptr inbounds i8, ptr %0, i64 16
  %25 = load ptr, ptr %24, align 8, !tbaa !5
  %26 = tail call noundef zeroext i1 @_ZNK3ipx7Iterate8feasibleEv(ptr noundef nonnull align 8 dereferenceable(296) %25)
  br i1 %26, label %27, label %30

27:                                               ; preds = %1
  %28 = load ptr, ptr %24, align 8, !tbaa !5
  %29 = tail call noundef zeroext i1 @_ZNK3ipx7Iterate7optimalEv(ptr noundef nonnull align 8 dereferenceable(296) %28)
  br label %30

30:                                               ; preds = %27, %1
  %31 = phi i1 [ false, %1 ], [ %29, %27 ]
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %2) #5
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %32 unwind label %98

32:                                               ; preds = %30
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  %33 = getelementptr inbounds i8, ptr %2, i64 16
  %34 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.43)
          to label %35 unwind label %100

35:                                               ; preds = %32
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #5
  %36 = getelementptr inbounds i8, ptr %0, i64 24
  %37 = load ptr, ptr %36, align 8, !tbaa !12
  %38 = getelementptr inbounds i8, ptr %37, i64 192
  %39 = load i32, ptr %38, align 8, !tbaa !13
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, i32 noundef %39, i32 noundef 3)
          to label %40 unwind label %102

40:                                               ; preds = %35
  %41 = 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) %34, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %42 unwind label %104

42:                                               ; preds = %40
  %.str.59..str.43 = select i1 %31, ptr @.str.59, ptr @.str.43
  %43 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull %.str.59..str.43)
          to label %44 unwind label %104

44:                                               ; preds = %42
  %45 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull @.str.45)
          to label %46 unwind label %104

46:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #5
  %47 = load ptr, ptr %24, align 8, !tbaa !5
  %48 = invoke noundef double @_ZNK3ipx7Iterate9presidualEv(ptr noundef nonnull align 8 dereferenceable(296) %47)
          to label %49 unwind label %106

49:                                               ; preds = %46
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, double noundef %48, i32 noundef 8, i32 noundef 2)
          to label %50 unwind label %106

50:                                               ; preds = %49
  %51 = 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) %45, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %52 unwind label %108

52:                                               ; preds = %50
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull @.str.43)
          to label %54 unwind label %108

54:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #5
  %55 = load ptr, ptr %24, align 8, !tbaa !5
  %56 = invoke noundef double @_ZNK3ipx7Iterate9dresidualEv(ptr noundef nonnull align 8 dereferenceable(296) %55)
          to label %57 unwind label %110

57:                                               ; preds = %54
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, double noundef %56, i32 noundef 8, i32 noundef 2)
          to label %58 unwind label %110

58:                                               ; preds = %57
  %59 = 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) %53, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %60 unwind label %112

60:                                               ; preds = %58
  %61 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull @.str.45)
          to label %62 unwind label %112

62:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  %63 = load ptr, ptr %24, align 8, !tbaa !5
  %64 = invoke noundef double @_ZNK3ipx7Iterate25pobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296) %63)
          to label %65 unwind label %114

65:                                               ; preds = %62
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, double noundef %64, i32 noundef 15, i32 noundef 8)
          to label %66 unwind label %114

66:                                               ; preds = %65
  %67 = 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) %61, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %68 unwind label %116

68:                                               ; preds = %66
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull @.str.43)
          to label %70 unwind label %116

70:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #5
  %71 = load ptr, ptr %24, align 8, !tbaa !5
  %72 = invoke noundef double @_ZNK3ipx7Iterate25dobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296) %71)
          to label %73 unwind label %118

73:                                               ; preds = %70
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, double noundef %72, i32 noundef 15, i32 noundef 8)
          to label %74 unwind label %118

74:                                               ; preds = %73
  %75 = 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) %69, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %76 unwind label %120

76:                                               ; preds = %74
  %77 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull @.str.45)
          to label %78 unwind label %120

78:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  %79 = load ptr, ptr %24, align 8, !tbaa !5
  %80 = invoke noundef double @_ZNK3ipx7Iterate2muEv(ptr noundef nonnull align 8 dereferenceable(296) %79)
          to label %81 unwind label %122

81:                                               ; preds = %78
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, double noundef %80, i32 noundef 8, i32 noundef 2)
          to label %82 unwind label %122

82:                                               ; preds = %81
  %83 = 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) %77, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %84 unwind label %124

84:                                               ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #5
  %85 = load ptr, ptr %0, align 8, !tbaa !15
  %86 = call noundef zeroext i1 @_ZNK3ipx7Control11timelessLogEv(ptr noundef nonnull align 8 dereferenceable(1496) %85)
  br i1 %86, label %142, label %87

87:                                               ; preds = %84
  %88 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.45)
          to label %89 unwind label %100

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #5
  %90 = load ptr, ptr %0, align 8, !tbaa !15
  %91 = invoke noundef double @_ZNK3ipx7Control7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(1496) %90)
          to label %92 unwind label %137

92:                                               ; preds = %89
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, double noundef %91, i32 noundef 6, i32 noundef 0)
          to label %93 unwind label %137

93:                                               ; preds = %92
  %94 = 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) %88, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %95 unwind label %139

95:                                               ; preds = %93
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull @.str.60)
          to label %97 unwind label %139

97:                                               ; preds = %95
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  br label %142

98:                                               ; preds = %30
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  br label %325

100:                                              ; preds = %181, %178, %147, %144, %142, %87, %32
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %325

102:                                              ; preds = %35
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %136

104:                                              ; preds = %44, %42, %40
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %135

106:                                              ; preds = %49, %46
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %134

108:                                              ; preds = %52, %50
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %133

110:                                              ; preds = %57, %54
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %132

112:                                              ; preds = %60, %58
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %131

114:                                              ; preds = %65, %62
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %130

116:                                              ; preds = %68, %66
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %129

118:                                              ; preds = %73, %70
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %128

120:                                              ; preds = %76, %74
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %127

122:                                              ; preds = %81, %78
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %126

124:                                              ; preds = %82
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %126

126:                                              ; preds = %124, %122
  %.pn = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  br label %127

127:                                              ; preds = %126, %120
  %.pn.pn = phi { ptr, i32 } [ %.pn, %126 ], [ %121, %120 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %128

128:                                              ; preds = %127, %118
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %127 ], [ %119, %118 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  br label %129

129:                                              ; preds = %128, %116
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %128 ], [ %117, %116 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %130

130:                                              ; preds = %129, %114
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %129 ], [ %115, %114 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %131

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

132:                                              ; preds = %131, %110
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %131 ], [ %111, %110 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  br label %133

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

134:                                              ; preds = %133, %106
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %133 ], [ %107, %106 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %135

135:                                              ; preds = %134, %104
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %134 ], [ %105, %104 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  br label %136

136:                                              ; preds = %135, %102
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %135 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #5
  br label %325

137:                                              ; preds = %92, %89
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %141

139:                                              ; preds = %95, %93
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %141

141:                                              ; preds = %139, %137
  %.pn52 = phi { ptr, i32 } [ %140, %139 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  br label %325

142:                                              ; preds = %97, %84
  %143 = load ptr, ptr %0, align 8, !tbaa !15
  invoke void @_ZNK3ipx7Control4hLogERNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496) %143, ptr noundef nonnull align 8 dereferenceable(128) %2)
          to label %144 unwind label %100

144:                                              ; preds = %142
  %145 = load ptr, ptr %0, align 8, !tbaa !15
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %145, i32 noundef 1)
          to label %147 unwind label %100

147:                                              ; preds = %144
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull @.str.45)
          to label %149 unwind label %100

149:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #5
  %150 = getelementptr inbounds i8, ptr %0, i64 32
  %151 = load double, ptr %150, align 8, !tbaa !16
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, double noundef %151, i32 noundef 4, i32 noundef 2)
          to label %152 unwind label %239

152:                                              ; preds = %149
  %153 = 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) %148, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %154 unwind label %241

154:                                              ; preds = %152
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %153, ptr noundef nonnull @.str.43)
          to label %156 unwind label %241

156:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #5
  %157 = getelementptr inbounds i8, ptr %0, i64 40
  %158 = load double, ptr %157, align 8, !tbaa !17
  invoke void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, double noundef %158, i32 noundef 4, i32 noundef 2)
          to label %159 unwind label %243

159:                                              ; preds = %156
  %160 = 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) %155, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %161 unwind label %245

161:                                              ; preds = %159
  %162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef nonnull @.str.45)
          to label %163 unwind label %245

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  %164 = getelementptr inbounds i8, ptr %0, i64 8
  %165 = load ptr, ptr %164, align 8, !tbaa !18
  %166 = invoke noundef i32 @_ZNK3ipx9KKTSolver13basis_changesEv(ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %167 unwind label %247

167:                                              ; preds = %163
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, i32 noundef %166, i32 noundef 7)
          to label %168 unwind label %247

168:                                              ; preds = %167
  %169 = 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) %162, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %170 unwind label %249

170:                                              ; preds = %168
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull @.str.43)
          to label %172 unwind label %249

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #5
  %173 = load ptr, ptr %164, align 8, !tbaa !18
  %174 = invoke noundef i32 @_ZNK3ipx9KKTSolver4iterEv(ptr noundef nonnull align 8 dereferenceable(8) %173)
          to label %175 unwind label %251

175:                                              ; preds = %172
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, i32 noundef %174, i32 noundef 7)
          to label %176 unwind label %251

176:                                              ; preds = %175
  %177 = 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) %171, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %178 unwind label %253

178:                                              ; preds = %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  %179 = load ptr, ptr %0, align 8, !tbaa !15
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %179, i32 noundef 1)
          to label %181 unwind label %100

181:                                              ; preds = %178
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull @.str.45)
          to label %183 unwind label %100

183:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #5
  %184 = load ptr, ptr %36, align 8, !tbaa !12
  %185 = getelementptr inbounds i8, ptr %184, i64 76
  %186 = load i32, ptr %185, align 4, !tbaa !19
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, i32 noundef %186, i32 noundef 7)
          to label %187 unwind label %262

187:                                              ; preds = %183
  %188 = 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) %182, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %189 unwind label %264

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull @.str.43)
          to label %191 unwind label %264

191:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #5
  %192 = load ptr, ptr %36, align 8, !tbaa !12
  %193 = getelementptr inbounds i8, ptr %192, i64 72
  %194 = load i32, ptr %193, align 8, !tbaa !20
  invoke void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, i32 noundef %194, i32 noundef 7)
          to label %195 unwind label %266

195:                                              ; preds = %191
  %196 = 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) %190, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %197 unwind label %268

197:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  %198 = load ptr, ptr %164, align 8, !tbaa !18
  %199 = invoke noundef ptr @_ZNK3ipx9KKTSolver5basisEv(ptr noundef nonnull align 8 dereferenceable(8) %198)
          to label %200 unwind label %273

200:                                              ; preds = %197
  %.not = icmp eq ptr %199, null
  %201 = load ptr, ptr %0, align 8, !tbaa !15
  br i1 %.not, label %290, label %202

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %201, i32 noundef 4)
          to label %204 unwind label %273

204:                                              ; preds = %202
  %205 = load ptr, ptr %203, align 8, !tbaa !21
  %206 = getelementptr i8, ptr %205, i64 -24
  %207 = load i64, ptr %206, align 8
  %208 = getelementptr inbounds i8, ptr %203, i64 %207
  %209 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %208)
          to label %210 unwind label %273

210:                                              ; preds = %204
  br i1 %209, label %211, label %316

211:                                              ; preds = %210
  %212 = load ptr, ptr %0, align 8, !tbaa !15
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %212, i32 noundef 4)
          to label %214 unwind label %273

214:                                              ; preds = %211
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull @.str.45)
          to label %216 unwind label %273

216:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #5
  %217 = invoke noundef double @_ZNK3ipx5Basis16MinSingularValueEv(ptr noundef nonnull align 8 dereferenceable(176) %199)
          to label %218 unwind label %275

218:                                              ; preds = %216
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, double noundef %217, i32 noundef 9, i32 noundef 2)
          to label %219 unwind label %275

219:                                              ; preds = %218
  %220 = 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) %215, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %221 unwind label %277

221:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  invoke void @_ZN3ipx5TimerC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %222 unwind label %280

222:                                              ; preds = %221
  %223 = invoke noundef double @_ZNK3ipx5Basis14DensityInverseEv(ptr noundef nonnull align 8 dereferenceable(176) %199)
          to label %224 unwind label %282

224:                                              ; preds = %222
  %225 = invoke noundef double @_ZNK3ipx5Timer7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %226 unwind label %282

226:                                              ; preds = %224
  %227 = load ptr, ptr %36, align 8, !tbaa !12
  %228 = getelementptr inbounds i8, ptr %227, i64 408
  %229 = load double, ptr %228, align 8, !tbaa !23
  %230 = fadd double %225, %229
  store double %230, ptr %228, align 8, !tbaa !23
  %231 = load ptr, ptr %0, align 8, !tbaa !15
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %231, i32 noundef 4)
          to label %233 unwind label %282

233:                                              ; preds = %226
  %234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull @.str.45)
          to label %235 unwind label %282

235:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #5
  invoke void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, double noundef %223, i32 noundef 8, i32 noundef 2)
          to label %236 unwind label %284

236:                                              ; preds = %235
  %237 = 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) %234, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %238 unwind label %286

238:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %316

239:                                              ; preds = %149
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %261

241:                                              ; preds = %154, %152
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %260

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

245:                                              ; preds = %161, %159
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %258

247:                                              ; preds = %167, %163
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %257

249:                                              ; preds = %170, %168
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %256

251:                                              ; preds = %175, %172
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %255

253:                                              ; preds = %176
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %255

255:                                              ; preds = %253, %251
  %.pn54 = phi { ptr, i32 } [ %254, %253 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  br label %256

256:                                              ; preds = %255, %249
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %255 ], [ %250, %249 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %257

257:                                              ; preds = %256, %247
  %.pn54.pn.pn = phi { ptr, i32 } [ %.pn54.pn, %256 ], [ %248, %247 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  br label %258

258:                                              ; preds = %257, %245
  %.pn54.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn, %257 ], [ %246, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %259

259:                                              ; preds = %258, %243
  %.pn54.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn.pn, %258 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  br label %260

260:                                              ; preds = %259, %241
  %.pn54.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn.pn.pn, %259 ], [ %242, %241 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %261

261:                                              ; preds = %260, %239
  %.pn54.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn54.pn.pn.pn.pn.pn, %260 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  br label %325

262:                                              ; preds = %183
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %272

264:                                              ; preds = %189, %187
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %271

266:                                              ; preds = %191
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %270

268:                                              ; preds = %195
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %270

270:                                              ; preds = %268, %266
  %.pn62 = phi { ptr, i32 } [ %269, %268 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  br label %271

271:                                              ; preds = %270, %264
  %.pn62.pn = phi { ptr, i32 } [ %.pn62, %270 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br label %272

272:                                              ; preds = %271, %262
  %.pn62.pn.pn = phi { ptr, i32 } [ %.pn62.pn, %271 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  br label %325

273:                                              ; preds = %300, %297, %292, %290, %214, %211, %204, %202, %197
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %325

275:                                              ; preds = %218, %216
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %219
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %279

279:                                              ; preds = %277, %275
  %.pn70 = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  br label %325

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

282:                                              ; preds = %233, %226, %224, %222
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %289

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

286:                                              ; preds = %236
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  br label %288

288:                                              ; preds = %286, %284
  %.pn72 = phi { ptr, i32 } [ %287, %286 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  br label %289

289:                                              ; preds = %282, %288, %280
  %.pn72.pn.pn = phi { ptr, i32 } [ %281, %280 ], [ %.pn72, %288 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %325

290:                                              ; preds = %200
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %201, i32 noundef 4)
          to label %292 unwind label %273

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull @.str.45)
          to label %294 unwind label %273

294:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #5
  invoke void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull @.str.61, i32 noundef 9)
          to label %295 unwind label %306

295:                                              ; preds = %294
  %296 = 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) %293, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %297 unwind label %308

297:                                              ; preds = %295
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  %298 = load ptr, ptr %0, align 8, !tbaa !15
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496) %298, i32 noundef 4)
          to label %300 unwind label %273

300:                                              ; preds = %297
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull @.str.45)
          to label %302 unwind label %273

302:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #5
  invoke void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull @.str.61, i32 noundef 8)
          to label %303 unwind label %311

303:                                              ; preds = %302
  %304 = 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) %301, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %305 unwind label %313

305:                                              ; preds = %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  br label %316

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

308:                                              ; preds = %295
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %310

310:                                              ; preds = %308, %306
  %.pn66 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  br label %325

311:                                              ; preds = %302
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %315

313:                                              ; preds = %303
  %314 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %315

315:                                              ; preds = %313, %311
  %.pn68 = phi { ptr, i32 } [ %314, %313 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #5
  br label %325

316:                                              ; preds = %210, %238, %305
  %317 = load ptr, ptr %0, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %318 unwind label %320

318:                                              ; preds = %316
  invoke void @_ZNK3ipx7Control4hLogENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496) %317, ptr noundef nonnull %22)
          to label %319 unwind label %322

319:                                              ; preds = %318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2) #5
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %2) #5
  ret void

320:                                              ; preds = %316
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %324

322:                                              ; preds = %318
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %324

324:                                              ; preds = %322, %320
  %.pn76 = phi { ptr, i32 } [ %323, %322 ], [ %321, %320 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  br label %325

325:                                              ; preds = %273, %279, %289, %310, %315, %324, %272, %261, %141, %136, %100, %98
  %.pn76.pn.pn = phi { ptr, i32 } [ %.pn62.pn.pn, %272 ], [ %101, %100 ], [ %.pn54.pn.pn.pn.pn.pn.pn, %261 ], [ %.pn52, %141 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %136 ], [ %99, %98 ], [ %.pn76, %324 ], [ %.pn72.pn.pn, %289 ], [ %.pn70, %279 ], [ %274, %273 ], [ %.pn68, %315 ], [ %.pn66, %310 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %2) #5
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn76.pn.pn
}

declare noundef double @_ZNK3ipx7Iterate25pobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

declare noundef double @_ZNK3ipx7Iterate25dobjective_after_postprocEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

declare void @_ZNK3ipx7Control4hLogENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496), ptr noundef) local_unnamed_addr #3

declare noundef double @_ZNK3ipx7Iterate2muEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

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

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

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

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

declare void @_ZNK3ipx7Control4hLogERNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(1496), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 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 #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ipx10ScientificB5cxx11Edii(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN3ipx6FormatB5cxx11EPKci(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3ipx7Control5DebugEi(ptr noundef nonnull align 8 dereferenceable(1496), i32 noundef) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK3ipx7Iterate8feasibleEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK3ipx7Iterate7optimalEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

declare void @_ZN3ipx6FormatB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef, i32 noundef) local_unnamed_addr #3

declare noundef double @_ZNK3ipx7Iterate9presidualEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

declare noundef double @_ZNK3ipx7Iterate9dresidualEv(ptr noundef nonnull align 8 dereferenceable(296)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ipx5FixedB5cxx11Edii(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare noundef double @_ZNK3ipx7Control7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(1496)) local_unnamed_addr #3

declare noundef i32 @_ZNK3ipx9KKTSolver13basis_changesEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

declare noundef i32 @_ZNK3ipx9KKTSolver4iterEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

declare noundef ptr @_ZNK3ipx9KKTSolver5basisEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

declare noundef double @_ZNK3ipx5Basis16MinSingularValueEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

declare void @_ZN3ipx5TimerC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare noundef double @_ZNK3ipx5Basis14DensityInverseEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

declare noundef double @_ZNK3ipx5Timer7ElapsedEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!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 16}
!6 = !{!"_ZTSN3ipx3IPME", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !10, i64 40, !11, i64 48, !10, i64 56, !11, i64 64, !10, i64 72, !11, i64 80}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!6, !7, i64 24}
!13 = !{!14, !11, i64 192}
!14 = !{!"_ZTS8ipx_info", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !11, i64 192, !11, i64 196, !11, i64 200, !11, i64 204, !11, i64 208, !11, i64 212, !11, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312, !10, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !10, i64 392, !10, i64 400, !10, i64 408, !11, i64 416, !11, i64 420, !11, i64 424, !11, i64 428, !10, i64 432, !10, i64 440, !10, i64 448, !10, i64 456}
!15 = !{!6, !7, i64 0}
!16 = !{!6, !10, i64 32}
!17 = !{!6, !10, i64 40}
!18 = !{!6, !7, i64 8}
!19 = !{!14, !11, i64 76}
!20 = !{!14, !11, i64 72}
!21 = !{!22, !22, i64 0}
!22 = !{!"vtable pointer", !9, i64 0}
!23 = !{!14, !10, i64 408}


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