; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src (ap)

; 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_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.13 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.13 = type { i64, [8 x i8] }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.alglib_impl::rcommv2_request" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"class.alglib_impl::rcommv2_buffers" = type { %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_2d_array", %"class.alglib::sparsematrix" }
%"class.alglib::real_1d_array" = type { %"class.alglib::ae_vector_wrapper.base", [7 x i8] }
%"class.alglib::ae_vector_wrapper.base" = type <{ ptr, ptr, %"struct.alglib_impl::ae_vector", i8 }>
%"class.alglib::real_2d_array" = type { %"class.alglib::ae_matrix_wrapper.base", [7 x i8] }
%"class.alglib::ae_matrix_wrapper.base" = type <{ ptr, ptr, %"struct.alglib_impl::ae_matrix", i8 }>
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"class.alglib::sparsematrix" = type { %"class.alglib::_sparsematrix_owner.base", [7 x i8] }
%"class.alglib::_sparsematrix_owner.base" = type <{ ptr, ptr, i8 }>
%"class.alglib_impl::rcommv2_callbacks" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZTIN6alglib8ap_errorE = external dso_local constant { ptr, ptr }, align 8
@.str.122 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [55 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13ae_state_initEPNS_8ae_stateE(ptr noundef) #1

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

declare i32 @__gxx_personality_v0(...)

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl19process_v2request_1ERNS_15rcommv2_requestElRNS_17rcommv2_callbacksERNS_15rcommv2_buffersENS0_11query_orderEPNS_12sparsematrixE(ptr noundef nonnull align 8 dereferenceable(96) %0, i64 noundef %1, ptr noundef nonnull align 8 dereferenceable(80) %2, ptr noundef nonnull align 8 dereferenceable(480) %3, i32 noundef %4, ptr noundef %5) #1 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"struct.alglib_impl::ae_state", 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 %"class.std::allocator", align 1
  %22 = alloca i1, align 1
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca i1, align 1
  store ptr %0, ptr %7, align 8, !tbaa !5
  store i64 %1, ptr %8, align 8, !tbaa !9
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store i32 %4, ptr %11, align 4, !tbaa !11
  store ptr %5, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %34 = load ptr, ptr %7, align 8, !tbaa !5
  %35 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %34, i32 0, i32 2
  %36 = load ptr, ptr %35, align 8, !tbaa !13
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = load i64, ptr %8, align 8, !tbaa !9
  %39 = load ptr, ptr %7, align 8, !tbaa !5
  %40 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %39, i32 0, i32 6
  %41 = load ptr, ptr %40, align 8, !tbaa !15
  %42 = load i64, ptr %41, align 8, !tbaa !9
  %43 = load ptr, ptr %7, align 8, !tbaa !5
  %44 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %43, i32 0, i32 7
  %45 = load ptr, ptr %44, align 8, !tbaa !16
  %46 = load i64, ptr %45, align 8, !tbaa !9
  %47 = add nsw i64 %42, %46
  %48 = mul nsw i64 %38, %47
  %49 = getelementptr inbounds double, ptr %37, i64 %48
  store ptr %49, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %50 = load ptr, ptr %7, align 8, !tbaa !5
  %51 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %50, i32 0, i32 9
  %52 = load ptr, ptr %51, align 8, !tbaa !17
  %53 = load ptr, ptr %52, align 8, !tbaa !5
  %54 = load i64, ptr %8, align 8, !tbaa !9
  %55 = load ptr, ptr %7, align 8, !tbaa !5
  %56 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %55, i32 0, i32 5
  %57 = load ptr, ptr %56, align 8, !tbaa !18
  %58 = load i64, ptr %57, align 8, !tbaa !9
  %59 = mul nsw i64 %54, %58
  %60 = getelementptr inbounds double, ptr %53, i64 %59
  store ptr %60, ptr %14, align 8, !tbaa !5
  %61 = load i32, ptr %11, align 4, !tbaa !11
  %62 = icmp eq i32 %61, 0
  br i1 %62, label %73, label %63

63:                                               ; preds = %6
  %64 = load i32, ptr %11, align 4, !tbaa !11
  %65 = icmp eq i32 %64, 1
  br i1 %65, label %73, label %66

66:                                               ; preds = %63
  %67 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.122)
          to label %68 unwind label %69

68:                                               ; preds = %66
  call void @__cxa_throw(ptr %67, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

69:                                               ; preds = %66
  %70 = landingpad { ptr, i32 }
          cleanup
  %71 = extractvalue { ptr, i32 } %70, 0
  store ptr %71, ptr %15, align 8
  %72 = extractvalue { ptr, i32 } %70, 1
  store i32 %72, ptr %16, align 4
  call void @__cxa_free_exception(ptr %67) #7
  br label %432

73:                                               ; preds = %63, %6
  %74 = load ptr, ptr %12, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %74, i32 0, i32 5
  %76 = load i64, ptr %75, align 8, !tbaa !19
  %77 = icmp eq i64 %76, 1
  br i1 %77, label %90, label %78

78:                                               ; preds = %73
  %79 = load ptr, ptr %12, align 8, !tbaa !5
  %80 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %79, i32 0, i32 5
  %81 = load i64, ptr %80, align 8, !tbaa !19
  %82 = icmp eq i64 %81, -10083
  br i1 %82, label %90, label %83

83:                                               ; preds = %78
  %84 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.123)
          to label %85 unwind label %86

85:                                               ; preds = %83
  call void @__cxa_throw(ptr %84, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

86:                                               ; preds = %83
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %15, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %16, align 4
  call void @__cxa_free_exception(ptr %84) #7
  br label %432

90:                                               ; preds = %78, %73
  %91 = load ptr, ptr %12, align 8, !tbaa !5
  %92 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %91, i32 0, i32 7
  %93 = load i64, ptr %92, align 8, !tbaa !24
  %94 = load ptr, ptr %7, align 8, !tbaa !5
  %95 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %94, i32 0, i32 6
  %96 = load ptr, ptr %95, align 8, !tbaa !15
  %97 = load i64, ptr %96, align 8, !tbaa !9
  %98 = icmp eq i64 %93, %97
  br i1 %98, label %106, label %99

99:                                               ; preds = %90
  %100 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.124)
          to label %101 unwind label %102

101:                                              ; preds = %99
  call void @__cxa_throw(ptr %100, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

102:                                              ; preds = %99
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %15, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %16, align 4
  call void @__cxa_free_exception(ptr %100) #7
  br label %432

106:                                              ; preds = %90
  %107 = load i32, ptr %11, align 4, !tbaa !11
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %109, label %128

109:                                              ; preds = %106
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  %111 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %110, i32 0, i32 6
  %112 = load i64, ptr %111, align 8, !tbaa !25
  %113 = load i64, ptr %8, align 8, !tbaa !9
  %114 = load ptr, ptr %7, align 8, !tbaa !5
  %115 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %114, i32 0, i32 5
  %116 = load ptr, ptr %115, align 8, !tbaa !18
  %117 = load i64, ptr %116, align 8, !tbaa !9
  %118 = mul nsw i64 %113, %117
  %119 = icmp eq i64 %112, %118
  br i1 %119, label %127, label %120

120:                                              ; preds = %109
  %121 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.125)
          to label %122 unwind label %123

122:                                              ; preds = %120
  call void @__cxa_throw(ptr %121, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

123:                                              ; preds = %120
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %15, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %16, align 4
  call void @__cxa_free_exception(ptr %121) #7
  br label %432

127:                                              ; preds = %109
  br label %128

128:                                              ; preds = %127, %106
  %129 = load i32, ptr %11, align 4, !tbaa !11
  %130 = icmp eq i32 %129, 1
  br i1 %130, label %131, label %144

131:                                              ; preds = %128
  %132 = load ptr, ptr %12, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %132, i32 0, i32 6
  %134 = load i64, ptr %133, align 8, !tbaa !25
  %135 = icmp eq i64 %134, 0
  br i1 %135, label %143, label %136

136:                                              ; preds = %131
  %137 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.126)
          to label %138 unwind label %139

138:                                              ; preds = %136
  call void @__cxa_throw(ptr %137, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

139:                                              ; preds = %136
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %15, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %16, align 4
  call void @__cxa_free_exception(ptr %137) #7
  br label %432

143:                                              ; preds = %131
  br label %144

144:                                              ; preds = %143, %128
  call void @llvm.lifetime.start.p0(i64 128, ptr %17) #7
  call void @_ZN11alglib_impl13ae_state_initEPNS_8ae_stateE(ptr noundef %17)
  %145 = load ptr, ptr %10, align 8, !tbaa !5
  %146 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %145, i32 0, i32 0
  %147 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %146)
  %148 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %147, i32 0, i32 4
  %149 = load ptr, ptr %148, align 8, !tbaa !26
  %150 = load ptr, ptr %13, align 8, !tbaa !5
  %151 = load ptr, ptr %7, align 8, !tbaa !5
  %152 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %151, i32 0, i32 6
  %153 = load ptr, ptr %152, align 8, !tbaa !15
  %154 = load i64, ptr %153, align 8, !tbaa !9
  %155 = mul i64 %154, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %149, ptr align 8 %150, i64 %155, i1 false)
  %156 = load ptr, ptr %7, align 8, !tbaa !5
  %157 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %156, i32 0, i32 7
  %158 = load ptr, ptr %157, align 8, !tbaa !16
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = icmp sgt i64 %159, 0
  br i1 %160, label %161, label %178

161:                                              ; preds = %144
  %162 = load ptr, ptr %10, align 8, !tbaa !5
  %163 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %162, i32 0, i32 1
  %164 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %163)
  %165 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %164, i32 0, i32 4
  %166 = load ptr, ptr %165, align 8, !tbaa !26
  %167 = load ptr, ptr %13, align 8, !tbaa !5
  %168 = load ptr, ptr %7, align 8, !tbaa !5
  %169 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %168, i32 0, i32 6
  %170 = load ptr, ptr %169, align 8, !tbaa !15
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = getelementptr inbounds double, ptr %167, i64 %171
  %173 = load ptr, ptr %7, align 8, !tbaa !5
  %174 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %173, i32 0, i32 7
  %175 = load ptr, ptr %174, align 8, !tbaa !16
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = mul i64 %176, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %166, ptr align 8 %172, i64 %177, i1 false)
  br label %178

178:                                              ; preds = %161, %144
  %179 = load ptr, ptr %7, align 8, !tbaa !5
  %180 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %179, i32 0, i32 6
  %181 = load ptr, ptr %180, align 8, !tbaa !15
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = load ptr, ptr %10, align 8, !tbaa !5
  %184 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %183, i32 0, i32 5
  %185 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %184)
  call void @_ZN11alglib_impl23sparsecreatecrsemptybufElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %182, ptr noundef %185, ptr noundef %17)
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  %187 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %186, i32 0, i32 4
  %188 = load ptr, ptr %187, align 8, !tbaa !27
  %189 = icmp ne ptr %188, null
  br i1 %189, label %190, label %298

190:                                              ; preds = %178
  %191 = load ptr, ptr %7, align 8, !tbaa !5
  %192 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %191, i32 0, i32 7
  %193 = load ptr, ptr %192, align 8, !tbaa !16
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = icmp eq i64 %194, 0
  br i1 %195, label %227, label %196

196:                                              ; preds = %190
  store i1 true, ptr %22, align 1
  %197 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %198 unwind label %205

198:                                              ; preds = %196
  %199 = load ptr, ptr %7, align 8, !tbaa !5
  %200 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %199, i32 0, i32 0
  %201 = load ptr, ptr %200, align 8, !tbaa !29
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %201)
          to label %202 unwind label %209

202:                                              ; preds = %198
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.128)
          to label %203 unwind label %213

203:                                              ; preds = %202
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %204 unwind label %217

204:                                              ; preds = %203
  store i1 false, ptr %22, align 1
  invoke void @__cxa_throw(ptr %197, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %438 unwind label %217

205:                                              ; preds = %196
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %15, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %16, align 4
  br label %223

209:                                              ; preds = %198
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %15, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %16, align 4
  br label %222

213:                                              ; preds = %202
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %15, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %16, align 4
  br label %221

217:                                              ; preds = %204, %203
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %15, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %221

221:                                              ; preds = %217, %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %222

222:                                              ; preds = %221, %209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %223

223:                                              ; preds = %222, %205
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  %224 = load i1, ptr %22, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @__cxa_free_exception(ptr %197) #7
  br label %226

226:                                              ; preds = %225, %223
  br label %431

227:                                              ; preds = %190
  %228 = load ptr, ptr %9, align 8, !tbaa !5
  %229 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %228, i32 0, i32 4
  %230 = load ptr, ptr %229, align 8, !tbaa !27
  %231 = load ptr, ptr %10, align 8, !tbaa !5
  %232 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %231, i32 0, i32 0
  %233 = load ptr, ptr %10, align 8, !tbaa !5
  %234 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %233, i32 0, i32 2
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  %236 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %235, i32 0, i32 5
  %237 = load ptr, ptr %7, align 8, !tbaa !5
  %238 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %237, i32 0, i32 1
  %239 = load ptr, ptr %238, align 8, !tbaa !30
  call void %230(ptr noundef nonnull align 8 dereferenceable(81) %232, ptr noundef nonnull align 8 dereferenceable(81) %234, ptr noundef nonnull align 8 dereferenceable(17) %236, ptr noundef %239)
  %240 = load ptr, ptr %10, align 8, !tbaa !5
  %241 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %240, i32 0, i32 5
  %242 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %241)
  %243 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %242, i32 0, i32 5
  %244 = load i64, ptr %243, align 8, !tbaa !19
  %245 = icmp eq i64 %244, 1
  br i1 %245, label %253, label %246

246:                                              ; preds = %227
  %247 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef @.str.129)
          to label %248 unwind label %249

248:                                              ; preds = %246
  call void @__cxa_throw(ptr %247, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

249:                                              ; preds = %246
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %15, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %16, align 4
  call void @__cxa_free_exception(ptr %247) #7
  br label %431

253:                                              ; preds = %227
  %254 = load ptr, ptr %10, align 8, !tbaa !5
  %255 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %254, i32 0, i32 5
  %256 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %255)
  %257 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %256, i32 0, i32 6
  %258 = load i64, ptr %257, align 8, !tbaa !25
  %259 = load ptr, ptr %7, align 8, !tbaa !5
  %260 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %259, i32 0, i32 5
  %261 = load ptr, ptr %260, align 8, !tbaa !18
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp eq i64 %258, %262
  br i1 %263, label %264, label %275

264:                                              ; preds = %253
  %265 = load ptr, ptr %10, align 8, !tbaa !5
  %266 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %265, i32 0, i32 5
  %267 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %266)
  %268 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %267, i32 0, i32 7
  %269 = load i64, ptr %268, align 8, !tbaa !24
  %270 = load ptr, ptr %7, align 8, !tbaa !5
  %271 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %270, i32 0, i32 6
  %272 = load ptr, ptr %271, align 8, !tbaa !15
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = icmp eq i64 %269, %273
  br i1 %274, label %282, label %275

275:                                              ; preds = %264, %253
  %276 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef @.str.130)
          to label %277 unwind label %278

277:                                              ; preds = %275
  call void @__cxa_throw(ptr %276, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

278:                                              ; preds = %275
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %15, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %16, align 4
  call void @__cxa_free_exception(ptr %276) #7
  br label %431

282:                                              ; preds = %264
  %283 = load ptr, ptr %14, align 8, !tbaa !5
  %284 = load ptr, ptr %10, align 8, !tbaa !5
  %285 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %284, i32 0, i32 2
  %286 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %285)
  %287 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %286, i32 0, i32 4
  %288 = load ptr, ptr %287, align 8, !tbaa !26
  %289 = load ptr, ptr %7, align 8, !tbaa !5
  %290 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %289, i32 0, i32 5
  %291 = load ptr, ptr %290, align 8, !tbaa !18
  %292 = load i64, ptr %291, align 8, !tbaa !9
  %293 = mul i64 %292, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %283, ptr align 8 %288, i64 %293, i1 false)
  %294 = load ptr, ptr %12, align 8, !tbaa !5
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %295, i32 0, i32 5
  %297 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %296)
  call void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef %294, ptr noundef %297, ptr noundef %17)
  call void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef %17)
  store i32 1, ptr %23, align 4
  br label %430

298:                                              ; preds = %178
  %299 = load ptr, ptr %9, align 8, !tbaa !5
  %300 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %299, i32 0, i32 9
  %301 = load ptr, ptr %300, align 8, !tbaa !31
  %302 = icmp ne ptr %301, null
  br i1 %302, label %303, label %399

303:                                              ; preds = %298
  %304 = load ptr, ptr %7, align 8, !tbaa !5
  %305 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %304, i32 0, i32 7
  %306 = load ptr, ptr %305, align 8, !tbaa !16
  %307 = load i64, ptr %306, align 8, !tbaa !9
  %308 = icmp sgt i64 %307, 0
  br i1 %308, label %340, label %309

309:                                              ; preds = %303
  store i1 true, ptr %28, align 1
  %310 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %311 unwind label %318

311:                                              ; preds = %309
  %312 = load ptr, ptr %7, align 8, !tbaa !5
  %313 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %312, i32 0, i32 0
  %314 = load ptr, ptr %313, align 8, !tbaa !29
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef %314)
          to label %315 unwind label %322

315:                                              ; preds = %311
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.128)
          to label %316 unwind label %326

316:                                              ; preds = %315
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %317 unwind label %330

317:                                              ; preds = %316
  store i1 false, ptr %28, align 1
  invoke void @__cxa_throw(ptr %310, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %438 unwind label %330

318:                                              ; preds = %309
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %15, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %16, align 4
  br label %336

322:                                              ; preds = %311
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %15, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %16, align 4
  br label %335

326:                                              ; preds = %315
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %15, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %16, align 4
  br label %334

330:                                              ; preds = %317, %316
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %15, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %334

334:                                              ; preds = %330, %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %335

335:                                              ; preds = %334, %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %336

336:                                              ; preds = %335, %318
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  %337 = load i1, ptr %28, align 1
  br i1 %337, label %338, label %339

338:                                              ; preds = %336
  call void @__cxa_free_exception(ptr %310) #7
  br label %339

339:                                              ; preds = %338, %336
  br label %431

340:                                              ; preds = %303
  %341 = load ptr, ptr %9, align 8, !tbaa !5
  %342 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %341, i32 0, i32 9
  %343 = load ptr, ptr %342, align 8, !tbaa !31
  %344 = load ptr, ptr %10, align 8, !tbaa !5
  %345 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %344, i32 0, i32 0
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  %347 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %346, i32 0, i32 1
  %348 = load ptr, ptr %10, align 8, !tbaa !5
  %349 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %348, i32 0, i32 2
  %350 = load ptr, ptr %10, align 8, !tbaa !5
  %351 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %350, i32 0, i32 5
  %352 = load ptr, ptr %7, align 8, !tbaa !5
  %353 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %352, i32 0, i32 1
  %354 = load ptr, ptr %353, align 8, !tbaa !30
  call void %343(ptr noundef nonnull align 8 dereferenceable(81) %345, ptr noundef nonnull align 8 dereferenceable(81) %347, ptr noundef nonnull align 8 dereferenceable(81) %349, ptr noundef nonnull align 8 dereferenceable(17) %351, ptr noundef %354)
  %355 = load ptr, ptr %10, align 8, !tbaa !5
  %356 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %355, i32 0, i32 5
  %357 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %356)
  %358 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %357, i32 0, i32 6
  %359 = load i64, ptr %358, align 8, !tbaa !25
  %360 = load ptr, ptr %7, align 8, !tbaa !5
  %361 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %360, i32 0, i32 5
  %362 = load ptr, ptr %361, align 8, !tbaa !18
  %363 = load i64, ptr %362, align 8, !tbaa !9
  %364 = icmp eq i64 %359, %363
  br i1 %364, label %365, label %376

365:                                              ; preds = %340
  %366 = load ptr, ptr %10, align 8, !tbaa !5
  %367 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %366, i32 0, i32 5
  %368 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %367)
  %369 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %368, i32 0, i32 7
  %370 = load i64, ptr %369, align 8, !tbaa !24
  %371 = load ptr, ptr %7, align 8, !tbaa !5
  %372 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %371, i32 0, i32 6
  %373 = load ptr, ptr %372, align 8, !tbaa !15
  %374 = load i64, ptr %373, align 8, !tbaa !9
  %375 = icmp eq i64 %370, %374
  br i1 %375, label %383, label %376

376:                                              ; preds = %365, %340
  %377 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef @.str.131)
          to label %378 unwind label %379

378:                                              ; preds = %376
  call void @__cxa_throw(ptr %377, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

379:                                              ; preds = %376
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %15, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %16, align 4
  call void @__cxa_free_exception(ptr %377) #7
  br label %431

383:                                              ; preds = %365
  %384 = load ptr, ptr %14, align 8, !tbaa !5
  %385 = load ptr, ptr %10, align 8, !tbaa !5
  %386 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %385, i32 0, i32 2
  %387 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %386)
  %388 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %387, i32 0, i32 4
  %389 = load ptr, ptr %388, align 8, !tbaa !26
  %390 = load ptr, ptr %7, align 8, !tbaa !5
  %391 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %390, i32 0, i32 5
  %392 = load ptr, ptr %391, align 8, !tbaa !18
  %393 = load i64, ptr %392, align 8, !tbaa !9
  %394 = mul i64 %393, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %384, ptr align 8 %389, i64 %394, i1 false)
  %395 = load ptr, ptr %12, align 8, !tbaa !5
  %396 = load ptr, ptr %10, align 8, !tbaa !5
  %397 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %396, i32 0, i32 5
  %398 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %397)
  call void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef %395, ptr noundef %398, ptr noundef %17)
  call void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef %17)
  store i32 1, ptr %23, align 4
  br label %430

399:                                              ; preds = %298
  call void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef %17)
  store i1 true, ptr %33, align 1
  %400 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %401 unwind label %408

401:                                              ; preds = %399
  %402 = load ptr, ptr %7, align 8, !tbaa !5
  %403 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %402, i32 0, i32 0
  %404 = load ptr, ptr %403, align 8, !tbaa !29
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef %404)
          to label %405 unwind label %412

405:                                              ; preds = %401
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.132)
          to label %406 unwind label %416

406:                                              ; preds = %405
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %407 unwind label %420

407:                                              ; preds = %406
  store i1 false, ptr %33, align 1
  invoke void @__cxa_throw(ptr %400, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %438 unwind label %420

408:                                              ; preds = %399
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %15, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %16, align 4
  br label %426

412:                                              ; preds = %401
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %15, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %16, align 4
  br label %425

416:                                              ; preds = %405
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %15, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %16, align 4
  br label %424

420:                                              ; preds = %407, %406
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %15, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %424

424:                                              ; preds = %420, %416
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %425

425:                                              ; preds = %424, %412
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %426

426:                                              ; preds = %425, %408
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  %427 = load i1, ptr %33, align 1
  br i1 %427, label %428, label %429

428:                                              ; preds = %426
  call void @__cxa_free_exception(ptr %400) #7
  br label %429

429:                                              ; preds = %428, %426
  br label %431

430:                                              ; preds = %383, %282
  call void @llvm.lifetime.end.p0(i64 128, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  ret void

431:                                              ; preds = %429, %379, %339, %278, %249, %226
  call void @llvm.lifetime.end.p0(i64 128, ptr %17) #7
  br label %432

432:                                              ; preds = %431, %139, %123, %102, %86, %69
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  br label %433

433:                                              ; preds = %432
  %434 = load ptr, ptr %15, align 8
  %435 = load i32, ptr %16, align 4
  %436 = insertvalue { ptr, i32 } poison, ptr %434, 0
  %437 = insertvalue { ptr, i32 } %436, i32 %435, 1
  resume { ptr, i32 } %437

438:                                              ; preds = %407, %317, %204
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23sparsecreatecrsemptybufElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

declare noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

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

declare void @_ZN6alglib8ap_errorC1EPKc(ptr, ptr)

declare void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr, ptr)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN11alglib_impl15rcommv2_request11query_orderE", !7, i64 0}
!13 = !{!14, !6, i64 16}
!14 = !{!"_ZTSN11alglib_impl15rcommv2_requestE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}
!15 = !{!14, !6, i64 48}
!16 = !{!14, !6, i64 56}
!17 = !{!14, !6, i64 72}
!18 = !{!14, !6, i64 40}
!19 = !{!20, !10, i64 320}
!20 = !{!"_ZTSN11alglib_impl12sparsematrixE", !21, i64 0, !21, i64 64, !21, i64 128, !21, i64 192, !21, i64 256, !10, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360}
!21 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !22, i64 16, !23, i64 24, !7, i64 56}
!22 = !{!"bool", !7, i64 0}
!23 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!24 = !{!20, !10, i64 336}
!25 = !{!20, !10, i64 328}
!26 = !{!7, !7, i64 0}
!27 = !{!28, !6, i64 32}
!28 = !{!"_ZTSN11alglib_impl17rcommv2_callbacksE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!29 = !{!14, !6, i64 0}
!30 = !{!14, !6, i64 8}
!31 = !{!28, !6, i64 72}


; 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_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.13 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.13 = type { i64, [8 x i8] }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@_ZTIN6alglib8ap_errorE = external dso_local constant { ptr, ptr }, align 8
@.str.122 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [55 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13ae_state_initEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

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

declare i32 @__gxx_personality_v0(...)

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl19process_v2request_1ERNS_15rcommv2_requestElRNS_17rcommv2_callbacksERNS_15rcommv2_buffersENS0_11query_orderEPNS_12sparsematrixE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(96) %0, i64 noundef %1, ptr nocapture noundef nonnull readonly align 8 dereferenceable(80) %2, ptr noundef nonnull align 8 dereferenceable(480) %3, i32 noundef %4, ptr noundef %5) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %7 = alloca %"struct.alglib_impl::ae_state", 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::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = getelementptr inbounds i8, ptr %0, i64 16
  %21 = load ptr, ptr %20, align 8, !tbaa !5
  %22 = load ptr, ptr %21, align 8, !tbaa !10
  %23 = getelementptr inbounds i8, ptr %0, i64 48
  %24 = load ptr, ptr %23, align 8, !tbaa !11
  %25 = load i64, ptr %24, align 8, !tbaa !12
  %26 = getelementptr inbounds i8, ptr %0, i64 56
  %27 = load ptr, ptr %26, align 8, !tbaa !14
  %28 = load i64, ptr %27, align 8, !tbaa !12
  %29 = add nsw i64 %28, %25
  %30 = mul nsw i64 %29, %1
  %31 = getelementptr inbounds double, ptr %22, i64 %30
  %32 = getelementptr inbounds i8, ptr %0, i64 72
  %33 = load ptr, ptr %32, align 8, !tbaa !15
  %34 = load ptr, ptr %33, align 8, !tbaa !10
  %35 = getelementptr inbounds i8, ptr %0, i64 40
  %36 = load ptr, ptr %35, align 8, !tbaa !16
  %37 = load i64, ptr %36, align 8, !tbaa !12
  %38 = mul nsw i64 %37, %1
  %or.cond = icmp ult i32 %4, 2
  br i1 %or.cond, label %44, label %39

39:                                               ; preds = %6
  %40 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.122)
          to label %41 unwind label %42

41:                                               ; preds = %39
  tail call void @__cxa_throw(ptr %40, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

42:                                               ; preds = %39
  %43 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %40) #7
  br label %230

44:                                               ; preds = %6
  %45 = getelementptr inbounds i8, ptr %5, i64 320
  %46 = load i64, ptr %45, align 8, !tbaa !17
  switch i64 %46, label %47 [
    i64 1, label %52
    i64 -10083, label %52
  ]

47:                                               ; preds = %44
  %48 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.123)
          to label %49 unwind label %50

49:                                               ; preds = %47
  tail call void @__cxa_throw(ptr %48, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

50:                                               ; preds = %47
  %51 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %48) #7
  br label %230

52:                                               ; preds = %44, %44
  %53 = getelementptr inbounds i8, ptr %5, i64 336
  %54 = load i64, ptr %53, align 8, !tbaa !22
  %55 = icmp eq i64 %54, %25
  br i1 %55, label %61, label %56

56:                                               ; preds = %52
  %57 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.124)
          to label %58 unwind label %59

58:                                               ; preds = %56
  tail call void @__cxa_throw(ptr %57, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

59:                                               ; preds = %56
  %60 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %57) #7
  br label %230

61:                                               ; preds = %52
  %switch = icmp eq i32 %4, 0
  %62 = getelementptr inbounds i8, ptr %5, i64 328
  %63 = load i64, ptr %62, align 8, !tbaa !23
  br i1 %switch, label %64, label %71

64:                                               ; preds = %61
  %65 = icmp eq i64 %63, %38
  br i1 %65, label %78, label %66

66:                                               ; preds = %64
  %67 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.125)
          to label %68 unwind label %69

68:                                               ; preds = %66
  tail call void @__cxa_throw(ptr %67, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

69:                                               ; preds = %66
  %70 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %67) #7
  br label %230

71:                                               ; preds = %61
  %72 = icmp eq i64 %63, 0
  br i1 %72, label %78, label %73

73:                                               ; preds = %71
  %74 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.126)
          to label %75 unwind label %76

75:                                               ; preds = %73
  tail call void @__cxa_throw(ptr %74, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

76:                                               ; preds = %73
  %77 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %74) #7
  br label %230

78:                                               ; preds = %64, %71
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %7) #7
  call void @_ZN11alglib_impl13ae_state_initEPNS_8ae_stateE(ptr noundef nonnull %7)
  %79 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %3)
  %80 = getelementptr inbounds i8, ptr %79, i64 56
  %81 = load ptr, ptr %80, align 8, !tbaa !24
  %82 = load ptr, ptr %23, align 8, !tbaa !11
  %83 = load i64, ptr %82, align 8, !tbaa !12
  %84 = shl i64 %83, 3
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %81, ptr align 8 %31, i64 %84, i1 false)
  %85 = load ptr, ptr %26, align 8, !tbaa !14
  %86 = load i64, ptr %85, align 8, !tbaa !12
  %87 = icmp sgt i64 %86, 0
  br i1 %87, label %88, label %99

88:                                               ; preds = %78
  %89 = getelementptr inbounds i8, ptr %3, i64 88
  %90 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %89)
  %91 = getelementptr inbounds i8, ptr %90, i64 56
  %92 = load ptr, ptr %91, align 8, !tbaa !24
  %93 = load ptr, ptr %23, align 8, !tbaa !11
  %94 = load i64, ptr %93, align 8, !tbaa !12
  %95 = getelementptr inbounds double, ptr %31, i64 %94
  %96 = load ptr, ptr %26, align 8, !tbaa !14
  %97 = load i64, ptr %96, align 8, !tbaa !12
  %98 = shl i64 %97, 3
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %92, ptr align 8 %95, i64 %98, i1 false)
  br label %99

99:                                               ; preds = %88, %78
  %100 = load ptr, ptr %23, align 8, !tbaa !11
  %101 = load i64, ptr %100, align 8, !tbaa !12
  %102 = getelementptr inbounds i8, ptr %3, i64 456
  %103 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  call void @_ZN11alglib_impl23sparsecreatecrsemptybufElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef %101, ptr noundef %103, ptr noundef nonnull %7)
  %104 = getelementptr inbounds i8, ptr %2, i64 32
  %105 = load ptr, ptr %104, align 8, !tbaa !25
  %.not = icmp eq ptr %105, null
  br i1 %.not, label %158, label %106

106:                                              ; preds = %99
  %107 = load ptr, ptr %26, align 8, !tbaa !14
  %108 = load i64, ptr %107, align 8, !tbaa !12
  %109 = icmp eq i64 %108, 0
  br i1 %109, label %126, label %110

110:                                              ; preds = %106
  %111 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %112 unwind label %.thread

112:                                              ; preds = %110
  %113 = load ptr, ptr %0, align 8, !tbaa !27
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %113)
          to label %114 unwind label %118

114:                                              ; preds = %112
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.128)
          to label %115 unwind label %120

115:                                              ; preds = %114
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %116 unwind label %122

116:                                              ; preds = %115
  invoke void @__cxa_throw(ptr %111, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %231 unwind label %122

.thread:                                          ; preds = %110
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %.sink.split

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

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

122:                                              ; preds = %116, %115
  %.075 = phi i1 [ false, %116 ], [ true, %115 ]
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %124

124:                                              ; preds = %122, %120
  %.pn105 = phi { ptr, i32 } [ %123, %122 ], [ %121, %120 ]
  %.176 = phi i1 [ %.075, %122 ], [ true, %120 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %125

125:                                              ; preds = %118, %124
  %.pn105.pn = phi { ptr, i32 } [ %.pn105, %124 ], [ %119, %118 ]
  %.277 = phi i1 [ %.176, %124 ], [ true, %118 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br i1 %.277, label %.sink.split, label %229

126:                                              ; preds = %106
  %127 = getelementptr inbounds i8, ptr %3, i64 176
  %128 = getelementptr inbounds i8, ptr %0, i64 8
  %129 = load ptr, ptr %128, align 8, !tbaa !28
  call void %105(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %127, ptr noundef nonnull align 8 dereferenceable(17) %102, ptr noundef %129)
  %130 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  %131 = getelementptr inbounds i8, ptr %130, i64 320
  %132 = load i64, ptr %131, align 8, !tbaa !17
  %133 = icmp eq i64 %132, 1
  br i1 %133, label %139, label %134

134:                                              ; preds = %126
  %135 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.129)
          to label %136 unwind label %137

136:                                              ; preds = %134
  call void @__cxa_throw(ptr %135, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

137:                                              ; preds = %134
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %.sink.split

139:                                              ; preds = %126
  %140 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  %141 = getelementptr inbounds i8, ptr %140, i64 328
  %142 = load i64, ptr %141, align 8, !tbaa !23
  %143 = load ptr, ptr %35, align 8, !tbaa !16
  %144 = load i64, ptr %143, align 8, !tbaa !12
  %145 = icmp eq i64 %142, %144
  br i1 %145, label %146, label %153

146:                                              ; preds = %139
  %147 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  %148 = getelementptr inbounds i8, ptr %147, i64 336
  %149 = load i64, ptr %148, align 8, !tbaa !22
  %150 = load ptr, ptr %23, align 8, !tbaa !11
  %151 = load i64, ptr %150, align 8, !tbaa !12
  %152 = icmp eq i64 %149, %151
  br i1 %152, label %220, label %153

153:                                              ; preds = %146, %139
  %154 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.130)
          to label %155 unwind label %156

155:                                              ; preds = %153
  call void @__cxa_throw(ptr %154, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

156:                                              ; preds = %153
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %.sink.split

158:                                              ; preds = %99
  %159 = getelementptr inbounds i8, ptr %2, i64 72
  %160 = load ptr, ptr %159, align 8, !tbaa !29
  %.not97 = icmp eq ptr %160, null
  br i1 %.not97, label %204, label %161

161:                                              ; preds = %158
  %162 = load ptr, ptr %26, align 8, !tbaa !14
  %163 = load i64, ptr %162, align 8, !tbaa !12
  %164 = icmp sgt i64 %163, 0
  br i1 %164, label %181, label %165

165:                                              ; preds = %161
  %166 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %167 unwind label %.thread115

167:                                              ; preds = %165
  %168 = load ptr, ptr %0, align 8, !tbaa !27
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %168)
          to label %169 unwind label %173

169:                                              ; preds = %167
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.128)
          to label %170 unwind label %175

170:                                              ; preds = %169
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %171 unwind label %177

171:                                              ; preds = %170
  invoke void @__cxa_throw(ptr %166, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %231 unwind label %177

.thread115:                                       ; preds = %165
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %.sink.split

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

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

177:                                              ; preds = %171, %170
  %.071 = phi i1 [ false, %171 ], [ true, %170 ]
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %179

179:                                              ; preds = %177, %175
  %.pn101 = phi { ptr, i32 } [ %178, %177 ], [ %176, %175 ]
  %.172 = phi i1 [ %.071, %177 ], [ true, %175 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %180

180:                                              ; preds = %173, %179
  %.pn101.pn = phi { ptr, i32 } [ %.pn101, %179 ], [ %174, %173 ]
  %.273 = phi i1 [ %.172, %179 ], [ true, %173 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br i1 %.273, label %.sink.split, label %229

181:                                              ; preds = %161
  %182 = getelementptr inbounds i8, ptr %3, i64 88
  %183 = getelementptr inbounds i8, ptr %3, i64 176
  %184 = getelementptr inbounds i8, ptr %0, i64 8
  %185 = load ptr, ptr %184, align 8, !tbaa !28
  call void %160(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %182, ptr noundef nonnull align 8 dereferenceable(81) %183, ptr noundef nonnull align 8 dereferenceable(17) %102, ptr noundef %185)
  %186 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  %187 = getelementptr inbounds i8, ptr %186, i64 328
  %188 = load i64, ptr %187, align 8, !tbaa !23
  %189 = load ptr, ptr %35, align 8, !tbaa !16
  %190 = load i64, ptr %189, align 8, !tbaa !12
  %191 = icmp eq i64 %188, %190
  br i1 %191, label %192, label %199

192:                                              ; preds = %181
  %193 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  %194 = getelementptr inbounds i8, ptr %193, i64 336
  %195 = load i64, ptr %194, align 8, !tbaa !22
  %196 = load ptr, ptr %23, align 8, !tbaa !11
  %197 = load i64, ptr %196, align 8, !tbaa !12
  %198 = icmp eq i64 %195, %197
  br i1 %198, label %220, label %199

199:                                              ; preds = %192, %181
  %200 = call ptr @__cxa_allocate_exception(i64 32) #7
  invoke void @_ZN6alglib8ap_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.131)
          to label %201 unwind label %202

201:                                              ; preds = %199
  call void @__cxa_throw(ptr %200, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
  unreachable

202:                                              ; preds = %199
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %.sink.split

204:                                              ; preds = %158
  call void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef nonnull %7)
  %205 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %206 unwind label %.thread119

206:                                              ; preds = %204
  %207 = load ptr, ptr %0, align 8, !tbaa !27
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %207)
          to label %208 unwind label %212

208:                                              ; preds = %206
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.132)
          to label %209 unwind label %214

209:                                              ; preds = %208
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %210 unwind label %216

210:                                              ; preds = %209
  invoke void @__cxa_throw(ptr %205, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %231 unwind label %216

.thread119:                                       ; preds = %204
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %.sink.split

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

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

216:                                              ; preds = %210, %209
  %.0 = phi i1 [ false, %210 ], [ true, %209 ]
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %218

218:                                              ; preds = %216, %214
  %.pn = phi { ptr, i32 } [ %217, %216 ], [ %215, %214 ]
  %.1 = phi i1 [ %.0, %216 ], [ true, %214 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %219

219:                                              ; preds = %212, %218
  %.pn.pn = phi { ptr, i32 } [ %.pn, %218 ], [ %213, %212 ]
  %.2 = phi i1 [ %.1, %218 ], [ true, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br i1 %.2, label %.sink.split, label %229

220:                                              ; preds = %192, %146
  %.sink127 = phi ptr [ %127, %146 ], [ %183, %192 ]
  %221 = getelementptr inbounds double, ptr %34, i64 %38
  %222 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %.sink127)
  %223 = getelementptr inbounds i8, ptr %222, i64 56
  %224 = load ptr, ptr %223, align 8, !tbaa !24
  %225 = load ptr, ptr %35, align 8, !tbaa !16
  %226 = load i64, ptr %225, align 8, !tbaa !12
  %227 = shl i64 %226, 3
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %221, ptr align 8 %224, i64 %227, i1 false)
  %228 = call noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17) %102)
  call void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef nonnull %5, ptr noundef %228, ptr noundef nonnull %7)
  call void @_ZN11alglib_impl14ae_state_clearEPNS_8ae_stateE(ptr noundef nonnull %7)
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %7) #7
  ret void

.sink.split:                                      ; preds = %219, %.thread119, %180, %.thread115, %125, %.thread, %137, %156, %202
  %.sink = phi ptr [ %200, %202 ], [ %154, %156 ], [ %135, %137 ], [ %111, %.thread ], [ %111, %125 ], [ %166, %.thread115 ], [ %166, %180 ], [ %205, %.thread119 ], [ %205, %219 ]
  %.pn109.ph = phi { ptr, i32 } [ %203, %202 ], [ %157, %156 ], [ %138, %137 ], [ %117, %.thread ], [ %.pn105.pn, %125 ], [ %172, %.thread115 ], [ %.pn101.pn, %180 ], [ %211, %.thread119 ], [ %.pn.pn, %219 ]
  call void @__cxa_free_exception(ptr %.sink) #7
  br label %229

229:                                              ; preds = %.sink.split, %219, %180, %125
  %.pn109 = phi { ptr, i32 } [ %.pn105.pn, %125 ], [ %.pn101.pn, %180 ], [ %.pn.pn, %219 ], [ %.pn109.ph, %.sink.split ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %7) #7
  br label %230

230:                                              ; preds = %229, %76, %69, %59, %50, %42
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %229 ], [ %77, %76 ], [ %70, %69 ], [ %60, %59 ], [ %51, %50 ], [ %43, %42 ]
  resume { ptr, i32 } %.pn109.pn

231:                                              ; preds = %210, %171, %116
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23sparsecreatecrsemptybufElPNS_12sparsematrixEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef ptr @_ZN6alglib19_sparsematrix_owner5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl18sparseappendmatrixEPNS_12sparsematrixEPKS0_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare void @_ZN6alglib8ap_errorC1EPKc(ptr, ptr) local_unnamed_addr

declare void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr, ptr) local_unnamed_addr

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

!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 = !{!"_ZTSN11alglib_impl15rcommv2_requestE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!7, !7, i64 0}
!11 = !{!6, !7, i64 48}
!12 = !{!13, !13, i64 0}
!13 = !{!"long", !8, i64 0}
!14 = !{!6, !7, i64 56}
!15 = !{!6, !7, i64 72}
!16 = !{!6, !7, i64 40}
!17 = !{!18, !13, i64 320}
!18 = !{!"_ZTSN11alglib_impl12sparsematrixE", !19, i64 0, !19, i64 64, !19, i64 128, !19, i64 192, !19, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!19 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !20, i64 16, !21, i64 24, !8, i64 56}
!20 = !{!"bool", !8, i64 0}
!21 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!22 = !{!18, !13, i64 336}
!23 = !{!18, !13, i64 328}
!24 = !{!8, !8, i64 0}
!25 = !{!26, !7, i64 32}
!26 = !{!"_ZTSN11alglib_impl17rcommv2_callbacksE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72}
!27 = !{!6, !7, i64 0}
!28 = !{!6, !7, i64 8}
!29 = !{!26, !7, i64 72}


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