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

; 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"

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }

@.str.442 = external hidden unnamed_addr constant [36 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_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef) #1

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl10rmatrixsvdEPKNS_9ae_matrixElllllPNS_9ae_vectorEPS0_S5_PNS_8ae_stateE(ptr noundef %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, i64 noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) #1 {
  %11 = alloca i1, align 1
  %12 = alloca ptr, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"struct.alglib_impl::ae_frame", align 8
  %23 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %24 = alloca %"struct.alglib_impl::ae_vector", align 8
  %25 = alloca %"struct.alglib_impl::ae_vector", align 8
  %26 = alloca %"struct.alglib_impl::ae_vector", align 8
  %27 = alloca %"struct.alglib_impl::ae_vector", align 8
  %28 = alloca %"struct.alglib_impl::ae_vector", align 8
  %29 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %30 = alloca i8, align 1
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  store ptr %0, ptr %12, align 8, !tbaa !5
  store i64 %1, ptr %13, align 8, !tbaa !9
  store i64 %2, ptr %14, align 8, !tbaa !9
  store i64 %3, ptr %15, align 8, !tbaa !9
  store i64 %4, ptr %16, align 8, !tbaa !9
  store i64 %5, ptr %17, align 8, !tbaa !9
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store ptr %8, ptr %20, align 8, !tbaa !5
  store ptr %9, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  %40 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %40, ptr noundef %22)
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %28, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 80, i1 false)
  %41 = load ptr, ptr %12, align 8, !tbaa !5
  %42 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef %23, ptr noundef %41, ptr noundef %42, i1 noundef zeroext true)
  %43 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN11alglib_impl15ae_vector_clearEPNS_9ae_vectorE(ptr noundef %43)
  %44 = load ptr, ptr %19, align 8, !tbaa !5
  call void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef %44)
  %45 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef %45)
  %46 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %24, i64 noundef 0, i64 noundef 3, ptr noundef %46, i1 noundef zeroext true)
  %47 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %25, i64 noundef 0, i64 noundef 3, ptr noundef %47, i1 noundef zeroext true)
  %48 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %26, i64 noundef 0, i64 noundef 3, ptr noundef %48, i1 noundef zeroext true)
  %49 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %27, i64 noundef 0, i64 noundef 3, ptr noundef %49, i1 noundef zeroext true)
  %50 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %28, i64 noundef 0, i64 noundef 3, ptr noundef %50, i1 noundef zeroext true)
  %51 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef %29, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %51, i1 noundef zeroext true)
  store i8 1, ptr %38, align 1, !tbaa !11
  %52 = load i64, ptr %13, align 8, !tbaa !9
  %53 = icmp eq i64 %52, 0
  br i1 %53, label %57, label %54

54:                                               ; preds = %10
  %55 = load i64, ptr %14, align 8, !tbaa !9
  %56 = icmp eq i64 %55, 0
  br i1 %56, label %57, label %61

57:                                               ; preds = %54, %10
  %58 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %58)
  %59 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %60 = trunc i8 %59 to i1
  store i1 %60, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

61:                                               ; preds = %54
  %62 = load i64, ptr %15, align 8, !tbaa !9
  %63 = icmp sge i64 %62, 0
  br i1 %63, label %64, label %67

64:                                               ; preds = %61
  %65 = load i64, ptr %15, align 8, !tbaa !9
  %66 = icmp sle i64 %65, 2
  br label %67

67:                                               ; preds = %64, %61
  %68 = phi i1 [ false, %61 ], [ %66, %64 ]
  %69 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %68, ptr noundef @.str.442, ptr noundef %69)
  %70 = load i64, ptr %16, align 8, !tbaa !9
  %71 = icmp sge i64 %70, 0
  br i1 %71, label %72, label %75

72:                                               ; preds = %67
  %73 = load i64, ptr %16, align 8, !tbaa !9
  %74 = icmp sle i64 %73, 2
  br label %75

75:                                               ; preds = %72, %67
  %76 = phi i1 [ false, %67 ], [ %74, %72 ]
  %77 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %76, ptr noundef @.str.442, ptr noundef %77)
  %78 = load i64, ptr %17, align 8, !tbaa !9
  %79 = icmp sge i64 %78, 0
  br i1 %79, label %80, label %83

80:                                               ; preds = %75
  %81 = load i64, ptr %17, align 8, !tbaa !9
  %82 = icmp sle i64 %81, 2
  br label %83

83:                                               ; preds = %80, %75
  %84 = phi i1 [ false, %75 ], [ %82, %80 ]
  %85 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %84, ptr noundef @.str.442, ptr noundef %85)
  %86 = load i64, ptr %13, align 8, !tbaa !9
  %87 = load i64, ptr %14, align 8, !tbaa !9
  %88 = load ptr, ptr %21, align 8, !tbaa !5
  %89 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %86, i64 noundef %87, ptr noundef %88)
  store i64 %89, ptr %31, align 8, !tbaa !9
  %90 = load ptr, ptr %18, align 8, !tbaa !5
  %91 = load i64, ptr %31, align 8, !tbaa !9
  %92 = add nsw i64 %91, 1
  %93 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %90, i64 noundef %92, ptr noundef %93)
  store i64 0, ptr %32, align 8, !tbaa !9
  store i64 0, ptr %34, align 8, !tbaa !9
  %94 = load i64, ptr %15, align 8, !tbaa !9
  %95 = icmp eq i64 %94, 1
  br i1 %95, label %96, label %107

96:                                               ; preds = %83
  %97 = load i64, ptr %13, align 8, !tbaa !9
  store i64 %97, ptr %34, align 8, !tbaa !9
  %98 = load i64, ptr %31, align 8, !tbaa !9
  store i64 %98, ptr %32, align 8, !tbaa !9
  %99 = load ptr, ptr %19, align 8, !tbaa !5
  %100 = load i64, ptr %34, align 8, !tbaa !9
  %101 = sub nsw i64 %100, 1
  %102 = add nsw i64 %101, 1
  %103 = load i64, ptr %32, align 8, !tbaa !9
  %104 = sub nsw i64 %103, 1
  %105 = add nsw i64 %104, 1
  %106 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %99, i64 noundef %102, i64 noundef %105, ptr noundef %106)
  br label %107

107:                                              ; preds = %96, %83
  %108 = load i64, ptr %15, align 8, !tbaa !9
  %109 = icmp eq i64 %108, 2
  br i1 %109, label %110, label %121

110:                                              ; preds = %107
  %111 = load i64, ptr %13, align 8, !tbaa !9
  store i64 %111, ptr %34, align 8, !tbaa !9
  %112 = load i64, ptr %13, align 8, !tbaa !9
  store i64 %112, ptr %32, align 8, !tbaa !9
  %113 = load ptr, ptr %19, align 8, !tbaa !5
  %114 = load i64, ptr %34, align 8, !tbaa !9
  %115 = sub nsw i64 %114, 1
  %116 = add nsw i64 %115, 1
  %117 = load i64, ptr %32, align 8, !tbaa !9
  %118 = sub nsw i64 %117, 1
  %119 = add nsw i64 %118, 1
  %120 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %113, i64 noundef %116, i64 noundef %119, ptr noundef %120)
  br label %121

121:                                              ; preds = %110, %107
  store i64 0, ptr %33, align 8, !tbaa !9
  store i64 0, ptr %35, align 8, !tbaa !9
  %122 = load i64, ptr %16, align 8, !tbaa !9
  %123 = icmp eq i64 %122, 1
  br i1 %123, label %124, label %135

124:                                              ; preds = %121
  %125 = load i64, ptr %31, align 8, !tbaa !9
  store i64 %125, ptr %33, align 8, !tbaa !9
  %126 = load i64, ptr %14, align 8, !tbaa !9
  store i64 %126, ptr %35, align 8, !tbaa !9
  %127 = load ptr, ptr %20, align 8, !tbaa !5
  %128 = load i64, ptr %33, align 8, !tbaa !9
  %129 = sub nsw i64 %128, 1
  %130 = add nsw i64 %129, 1
  %131 = load i64, ptr %35, align 8, !tbaa !9
  %132 = sub nsw i64 %131, 1
  %133 = add nsw i64 %132, 1
  %134 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %127, i64 noundef %130, i64 noundef %133, ptr noundef %134)
  br label %135

135:                                              ; preds = %124, %121
  %136 = load i64, ptr %16, align 8, !tbaa !9
  %137 = icmp eq i64 %136, 2
  br i1 %137, label %138, label %149

138:                                              ; preds = %135
  %139 = load i64, ptr %14, align 8, !tbaa !9
  store i64 %139, ptr %33, align 8, !tbaa !9
  %140 = load i64, ptr %14, align 8, !tbaa !9
  store i64 %140, ptr %35, align 8, !tbaa !9
  %141 = load ptr, ptr %20, align 8, !tbaa !5
  %142 = load i64, ptr %33, align 8, !tbaa !9
  %143 = sub nsw i64 %142, 1
  %144 = add nsw i64 %143, 1
  %145 = load i64, ptr %35, align 8, !tbaa !9
  %146 = sub nsw i64 %145, 1
  %147 = add nsw i64 %146, 1
  %148 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %141, i64 noundef %144, i64 noundef %147, ptr noundef %148)
  br label %149

149:                                              ; preds = %138, %135
  %150 = load i64, ptr %13, align 8, !tbaa !9
  %151 = sitofp i64 %150 to double
  %152 = load i64, ptr %14, align 8, !tbaa !9
  %153 = sitofp i64 %152 to double
  %154 = fmul double 1.600000e+00, %153
  %155 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %151, double noundef %154)
  br i1 %155, label %156, label %329

156:                                              ; preds = %149
  %157 = load i64, ptr %15, align 8, !tbaa !9
  %158 = icmp eq i64 %157, 0
  br i1 %158, label %159, label %215

159:                                              ; preds = %156
  %160 = load i64, ptr %13, align 8, !tbaa !9
  %161 = load i64, ptr %14, align 8, !tbaa !9
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixqrEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %23, i64 noundef %160, i64 noundef %161, ptr noundef %26, ptr noundef %162)
  store i64 0, ptr %36, align 8, !tbaa !9
  br label %163

163:                                              ; preds = %186, %159
  %164 = load i64, ptr %36, align 8, !tbaa !9
  %165 = load i64, ptr %14, align 8, !tbaa !9
  %166 = sub nsw i64 %165, 1
  %167 = icmp sle i64 %164, %166
  br i1 %167, label %168, label %189

168:                                              ; preds = %163
  store i64 0, ptr %37, align 8, !tbaa !9
  br label %169

169:                                              ; preds = %182, %168
  %170 = load i64, ptr %37, align 8, !tbaa !9
  %171 = load i64, ptr %36, align 8, !tbaa !9
  %172 = sub nsw i64 %171, 1
  %173 = icmp sle i64 %170, %172
  br i1 %173, label %174, label %185

174:                                              ; preds = %169
  %175 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %176 = load ptr, ptr %175, align 8, !tbaa !15
  %177 = load i64, ptr %36, align 8, !tbaa !9
  %178 = getelementptr inbounds ptr, ptr %176, i64 %177
  %179 = load ptr, ptr %178, align 8, !tbaa !5
  %180 = load i64, ptr %37, align 8, !tbaa !9
  %181 = getelementptr inbounds double, ptr %179, i64 %180
  store double 0.000000e+00, ptr %181, align 8, !tbaa !16
  br label %182

182:                                              ; preds = %174
  %183 = load i64, ptr %37, align 8, !tbaa !9
  %184 = add nsw i64 %183, 1
  store i64 %184, ptr %37, align 8, !tbaa !9
  br label %169, !llvm.loop !18

185:                                              ; preds = %169
  br label %186

186:                                              ; preds = %185
  %187 = load i64, ptr %36, align 8, !tbaa !9
  %188 = add nsw i64 %187, 1
  store i64 %188, ptr %36, align 8, !tbaa !9
  br label %163, !llvm.loop !20

189:                                              ; preds = %163
  %190 = load i64, ptr %14, align 8, !tbaa !9
  %191 = load i64, ptr %14, align 8, !tbaa !9
  %192 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %190, i64 noundef %191, ptr noundef %24, ptr noundef %25, ptr noundef %192)
  %193 = load i64, ptr %14, align 8, !tbaa !9
  %194 = load i64, ptr %14, align 8, !tbaa !9
  %195 = load i64, ptr %33, align 8, !tbaa !9
  %196 = load ptr, ptr %20, align 8, !tbaa !5
  %197 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %193, i64 noundef %194, ptr noundef %25, i64 noundef %195, ptr noundef %196, ptr noundef %197)
  %198 = load i64, ptr %14, align 8, !tbaa !9
  %199 = load i64, ptr %14, align 8, !tbaa !9
  %200 = load ptr, ptr %18, align 8, !tbaa !5
  %201 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %198, i64 noundef %199, ptr noundef %30, ptr noundef %200, ptr noundef %27, ptr noundef %201)
  %202 = load ptr, ptr %18, align 8, !tbaa !5
  %203 = load i64, ptr %14, align 8, !tbaa !9
  %204 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %205 = trunc i8 %204 to i1
  %206 = load ptr, ptr %19, align 8, !tbaa !5
  %207 = load ptr, ptr %20, align 8, !tbaa !5
  %208 = load i64, ptr %35, align 8, !tbaa !9
  %209 = load ptr, ptr %21, align 8, !tbaa !5
  %210 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %202, ptr noundef %27, i64 noundef %203, i1 noundef zeroext %205, i1 noundef zeroext false, ptr noundef %206, i64 noundef 0, ptr noundef %23, i64 noundef 0, ptr noundef %207, i64 noundef %208, ptr noundef %209)
  %211 = zext i1 %210 to i8
  store i8 %211, ptr %38, align 1, !tbaa !11
  %212 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %212)
  %213 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %214 = trunc i8 %213 to i1
  store i1 %214, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

215:                                              ; preds = %156
  %216 = load i64, ptr %13, align 8, !tbaa !9
  %217 = load i64, ptr %14, align 8, !tbaa !9
  %218 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixqrEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %23, i64 noundef %216, i64 noundef %217, ptr noundef %26, ptr noundef %218)
  %219 = load i64, ptr %13, align 8, !tbaa !9
  %220 = load i64, ptr %14, align 8, !tbaa !9
  %221 = load i64, ptr %32, align 8, !tbaa !9
  %222 = load ptr, ptr %19, align 8, !tbaa !5
  %223 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixqrunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %219, i64 noundef %220, ptr noundef %26, i64 noundef %221, ptr noundef %222, ptr noundef %223)
  store i64 0, ptr %36, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %247, %215
  %225 = load i64, ptr %36, align 8, !tbaa !9
  %226 = load i64, ptr %14, align 8, !tbaa !9
  %227 = sub nsw i64 %226, 1
  %228 = icmp sle i64 %225, %227
  br i1 %228, label %229, label %250

229:                                              ; preds = %224
  store i64 0, ptr %37, align 8, !tbaa !9
  br label %230

230:                                              ; preds = %243, %229
  %231 = load i64, ptr %37, align 8, !tbaa !9
  %232 = load i64, ptr %36, align 8, !tbaa !9
  %233 = sub nsw i64 %232, 1
  %234 = icmp sle i64 %231, %233
  br i1 %234, label %235, label %246

235:                                              ; preds = %230
  %236 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %237 = load ptr, ptr %236, align 8, !tbaa !15
  %238 = load i64, ptr %36, align 8, !tbaa !9
  %239 = getelementptr inbounds ptr, ptr %237, i64 %238
  %240 = load ptr, ptr %239, align 8, !tbaa !5
  %241 = load i64, ptr %37, align 8, !tbaa !9
  %242 = getelementptr inbounds double, ptr %240, i64 %241
  store double 0.000000e+00, ptr %242, align 8, !tbaa !16
  br label %243

243:                                              ; preds = %235
  %244 = load i64, ptr %37, align 8, !tbaa !9
  %245 = add nsw i64 %244, 1
  store i64 %245, ptr %37, align 8, !tbaa !9
  br label %230, !llvm.loop !21

246:                                              ; preds = %230
  br label %247

247:                                              ; preds = %246
  %248 = load i64, ptr %36, align 8, !tbaa !9
  %249 = add nsw i64 %248, 1
  store i64 %249, ptr %36, align 8, !tbaa !9
  br label %224, !llvm.loop !22

250:                                              ; preds = %224
  %251 = load i64, ptr %14, align 8, !tbaa !9
  %252 = load i64, ptr %14, align 8, !tbaa !9
  %253 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %251, i64 noundef %252, ptr noundef %24, ptr noundef %25, ptr noundef %253)
  %254 = load i64, ptr %14, align 8, !tbaa !9
  %255 = load i64, ptr %14, align 8, !tbaa !9
  %256 = load i64, ptr %33, align 8, !tbaa !9
  %257 = load ptr, ptr %20, align 8, !tbaa !5
  %258 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %254, i64 noundef %255, ptr noundef %25, i64 noundef %256, ptr noundef %257, ptr noundef %258)
  %259 = load i64, ptr %14, align 8, !tbaa !9
  %260 = load i64, ptr %14, align 8, !tbaa !9
  %261 = load ptr, ptr %18, align 8, !tbaa !5
  %262 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %259, i64 noundef %260, ptr noundef %30, ptr noundef %261, ptr noundef %27, ptr noundef %262)
  %263 = load i64, ptr %17, align 8, !tbaa !9
  %264 = icmp slt i64 %263, 1
  br i1 %264, label %265, label %283

265:                                              ; preds = %250
  %266 = load i64, ptr %14, align 8, !tbaa !9
  %267 = load i64, ptr %14, align 8, !tbaa !9
  %268 = load ptr, ptr %19, align 8, !tbaa !5
  %269 = load i64, ptr %13, align 8, !tbaa !9
  %270 = load i64, ptr %14, align 8, !tbaa !9
  %271 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20rmatrixbdmultiplybyqEPKNS_9ae_matrixEllPKNS_9ae_vectorEPS0_llbbPNS_8ae_stateE(ptr noundef %23, i64 noundef %266, i64 noundef %267, ptr noundef %24, ptr noundef %268, i64 noundef %269, i64 noundef %270, i1 noundef zeroext true, i1 noundef zeroext false, ptr noundef %271)
  %272 = load ptr, ptr %18, align 8, !tbaa !5
  %273 = load i64, ptr %14, align 8, !tbaa !9
  %274 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %275 = trunc i8 %274 to i1
  %276 = load ptr, ptr %19, align 8, !tbaa !5
  %277 = load i64, ptr %13, align 8, !tbaa !9
  %278 = load ptr, ptr %20, align 8, !tbaa !5
  %279 = load i64, ptr %35, align 8, !tbaa !9
  %280 = load ptr, ptr %21, align 8, !tbaa !5
  %281 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %272, ptr noundef %27, i64 noundef %273, i1 noundef zeroext %275, i1 noundef zeroext false, ptr noundef %276, i64 noundef %277, ptr noundef %23, i64 noundef 0, ptr noundef %278, i64 noundef %279, ptr noundef %280)
  %282 = zext i1 %281 to i8
  store i8 %282, ptr %38, align 1, !tbaa !11
  br label %325

283:                                              ; preds = %250
  %284 = load i64, ptr %13, align 8, !tbaa !9
  %285 = load i64, ptr %14, align 8, !tbaa !9
  %286 = load ptr, ptr %21, align 8, !tbaa !5
  %287 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %284, i64 noundef %285, ptr noundef %286)
  %288 = add nsw i64 %287, 1
  %289 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %28, i64 noundef %288, ptr noundef %289)
  %290 = load i64, ptr %14, align 8, !tbaa !9
  %291 = load i64, ptr %14, align 8, !tbaa !9
  %292 = load i64, ptr %14, align 8, !tbaa !9
  %293 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %290, i64 noundef %291, ptr noundef %24, i64 noundef %292, ptr noundef %29, ptr noundef %293)
  %294 = load ptr, ptr %19, align 8, !tbaa !5
  %295 = load i64, ptr %13, align 8, !tbaa !9
  %296 = sub nsw i64 %295, 1
  %297 = load i64, ptr %14, align 8, !tbaa !9
  %298 = sub nsw i64 %297, 1
  %299 = load i64, ptr %13, align 8, !tbaa !9
  %300 = sub nsw i64 %299, 1
  %301 = load i64, ptr %14, align 8, !tbaa !9
  %302 = sub nsw i64 %301, 1
  %303 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %294, i64 noundef 0, i64 noundef %296, i64 noundef 0, i64 noundef %298, ptr noundef %23, i64 noundef 0, i64 noundef %300, i64 noundef 0, i64 noundef %302, ptr noundef %303)
  %304 = load i64, ptr %14, align 8, !tbaa !9
  %305 = sub nsw i64 %304, 1
  %306 = load i64, ptr %14, align 8, !tbaa !9
  %307 = sub nsw i64 %306, 1
  %308 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %29, i64 noundef 0, i64 noundef %305, i64 noundef 0, i64 noundef %307, ptr noundef %28, ptr noundef %308)
  %309 = load ptr, ptr %18, align 8, !tbaa !5
  %310 = load i64, ptr %14, align 8, !tbaa !9
  %311 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %312 = trunc i8 %311 to i1
  %313 = load ptr, ptr %19, align 8, !tbaa !5
  %314 = load i64, ptr %14, align 8, !tbaa !9
  %315 = load ptr, ptr %20, align 8, !tbaa !5
  %316 = load i64, ptr %35, align 8, !tbaa !9
  %317 = load ptr, ptr %21, align 8, !tbaa !5
  %318 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %309, ptr noundef %27, i64 noundef %310, i1 noundef zeroext %312, i1 noundef zeroext false, ptr noundef %313, i64 noundef 0, ptr noundef %29, i64 noundef %314, ptr noundef %315, i64 noundef %316, ptr noundef %317)
  %319 = zext i1 %318 to i8
  store i8 %319, ptr %38, align 1, !tbaa !11
  %320 = load i64, ptr %13, align 8, !tbaa !9
  %321 = load i64, ptr %14, align 8, !tbaa !9
  %322 = load i64, ptr %14, align 8, !tbaa !9
  %323 = load ptr, ptr %19, align 8, !tbaa !5
  %324 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %320, i64 noundef %321, i64 noundef %322, double noundef 1.000000e+00, ptr noundef %23, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef %29, i64 noundef 0, i64 noundef 0, i64 noundef 1, double noundef 0.000000e+00, ptr noundef %323, i64 noundef 0, i64 noundef 0, ptr noundef %324)
  br label %325

325:                                              ; preds = %283, %265
  %326 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %326)
  %327 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %328 = trunc i8 %327 to i1
  store i1 %328, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

329:                                              ; preds = %149
  %330 = load i64, ptr %14, align 8, !tbaa !9
  %331 = sitofp i64 %330 to double
  %332 = load i64, ptr %13, align 8, !tbaa !9
  %333 = sitofp i64 %332 to double
  %334 = fmul double 1.600000e+00, %333
  %335 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %331, double noundef %334)
  br i1 %335, label %336, label %534

336:                                              ; preds = %329
  %337 = load i64, ptr %16, align 8, !tbaa !9
  %338 = icmp eq i64 %337, 0
  br i1 %338, label %339, label %412

339:                                              ; preds = %336
  %340 = load i64, ptr %13, align 8, !tbaa !9
  %341 = load i64, ptr %14, align 8, !tbaa !9
  %342 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixlqEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %23, i64 noundef %340, i64 noundef %341, ptr noundef %26, ptr noundef %342)
  store i64 0, ptr %36, align 8, !tbaa !9
  br label %343

343:                                              ; preds = %368, %339
  %344 = load i64, ptr %36, align 8, !tbaa !9
  %345 = load i64, ptr %13, align 8, !tbaa !9
  %346 = sub nsw i64 %345, 1
  %347 = icmp sle i64 %344, %346
  br i1 %347, label %348, label %371

348:                                              ; preds = %343
  %349 = load i64, ptr %36, align 8, !tbaa !9
  %350 = add nsw i64 %349, 1
  store i64 %350, ptr %37, align 8, !tbaa !9
  br label %351

351:                                              ; preds = %364, %348
  %352 = load i64, ptr %37, align 8, !tbaa !9
  %353 = load i64, ptr %13, align 8, !tbaa !9
  %354 = sub nsw i64 %353, 1
  %355 = icmp sle i64 %352, %354
  br i1 %355, label %356, label %367

356:                                              ; preds = %351
  %357 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %358 = load ptr, ptr %357, align 8, !tbaa !15
  %359 = load i64, ptr %36, align 8, !tbaa !9
  %360 = getelementptr inbounds ptr, ptr %358, i64 %359
  %361 = load ptr, ptr %360, align 8, !tbaa !5
  %362 = load i64, ptr %37, align 8, !tbaa !9
  %363 = getelementptr inbounds double, ptr %361, i64 %362
  store double 0.000000e+00, ptr %363, align 8, !tbaa !16
  br label %364

364:                                              ; preds = %356
  %365 = load i64, ptr %37, align 8, !tbaa !9
  %366 = add nsw i64 %365, 1
  store i64 %366, ptr %37, align 8, !tbaa !9
  br label %351, !llvm.loop !23

367:                                              ; preds = %351
  br label %368

368:                                              ; preds = %367
  %369 = load i64, ptr %36, align 8, !tbaa !9
  %370 = add nsw i64 %369, 1
  store i64 %370, ptr %36, align 8, !tbaa !9
  br label %343, !llvm.loop !24

371:                                              ; preds = %343
  %372 = load i64, ptr %13, align 8, !tbaa !9
  %373 = load i64, ptr %13, align 8, !tbaa !9
  %374 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %372, i64 noundef %373, ptr noundef %24, ptr noundef %25, ptr noundef %374)
  %375 = load i64, ptr %13, align 8, !tbaa !9
  %376 = load i64, ptr %13, align 8, !tbaa !9
  %377 = load i64, ptr %32, align 8, !tbaa !9
  %378 = load ptr, ptr %19, align 8, !tbaa !5
  %379 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %375, i64 noundef %376, ptr noundef %24, i64 noundef %377, ptr noundef %378, ptr noundef %379)
  %380 = load i64, ptr %13, align 8, !tbaa !9
  %381 = load i64, ptr %13, align 8, !tbaa !9
  %382 = load ptr, ptr %18, align 8, !tbaa !5
  %383 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %380, i64 noundef %381, ptr noundef %30, ptr noundef %382, ptr noundef %27, ptr noundef %383)
  %384 = load i64, ptr %13, align 8, !tbaa !9
  %385 = add nsw i64 %384, 1
  %386 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %28, i64 noundef %385, ptr noundef %386)
  %387 = load ptr, ptr %19, align 8, !tbaa !5
  %388 = load i64, ptr %34, align 8, !tbaa !9
  %389 = sub nsw i64 %388, 1
  %390 = load i64, ptr %32, align 8, !tbaa !9
  %391 = sub nsw i64 %390, 1
  %392 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %387, i64 noundef 0, i64 noundef %389, i64 noundef 0, i64 noundef %391, ptr noundef %28, ptr noundef %392)
  %393 = load ptr, ptr %18, align 8, !tbaa !5
  %394 = load i64, ptr %13, align 8, !tbaa !9
  %395 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %396 = trunc i8 %395 to i1
  %397 = load ptr, ptr %19, align 8, !tbaa !5
  %398 = load i64, ptr %34, align 8, !tbaa !9
  %399 = load ptr, ptr %20, align 8, !tbaa !5
  %400 = load ptr, ptr %21, align 8, !tbaa !5
  %401 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %393, ptr noundef %27, i64 noundef %394, i1 noundef zeroext %396, i1 noundef zeroext false, ptr noundef %23, i64 noundef 0, ptr noundef %397, i64 noundef %398, ptr noundef %399, i64 noundef 0, ptr noundef %400)
  %402 = zext i1 %401 to i8
  store i8 %402, ptr %38, align 1, !tbaa !11
  %403 = load ptr, ptr %19, align 8, !tbaa !5
  %404 = load i64, ptr %34, align 8, !tbaa !9
  %405 = sub nsw i64 %404, 1
  %406 = load i64, ptr %32, align 8, !tbaa !9
  %407 = sub nsw i64 %406, 1
  %408 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %403, i64 noundef 0, i64 noundef %405, i64 noundef 0, i64 noundef %407, ptr noundef %28, ptr noundef %408)
  %409 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %409)
  %410 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %411 = trunc i8 %410 to i1
  store i1 %411, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

412:                                              ; preds = %336
  %413 = load i64, ptr %13, align 8, !tbaa !9
  %414 = load i64, ptr %14, align 8, !tbaa !9
  %415 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixlqEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %23, i64 noundef %413, i64 noundef %414, ptr noundef %26, ptr noundef %415)
  %416 = load i64, ptr %13, align 8, !tbaa !9
  %417 = load i64, ptr %14, align 8, !tbaa !9
  %418 = load i64, ptr %33, align 8, !tbaa !9
  %419 = load ptr, ptr %20, align 8, !tbaa !5
  %420 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixlqunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %416, i64 noundef %417, ptr noundef %26, i64 noundef %418, ptr noundef %419, ptr noundef %420)
  store i64 0, ptr %36, align 8, !tbaa !9
  br label %421

421:                                              ; preds = %446, %412
  %422 = load i64, ptr %36, align 8, !tbaa !9
  %423 = load i64, ptr %13, align 8, !tbaa !9
  %424 = sub nsw i64 %423, 1
  %425 = icmp sle i64 %422, %424
  br i1 %425, label %426, label %449

426:                                              ; preds = %421
  %427 = load i64, ptr %36, align 8, !tbaa !9
  %428 = add nsw i64 %427, 1
  store i64 %428, ptr %37, align 8, !tbaa !9
  br label %429

429:                                              ; preds = %442, %426
  %430 = load i64, ptr %37, align 8, !tbaa !9
  %431 = load i64, ptr %13, align 8, !tbaa !9
  %432 = sub nsw i64 %431, 1
  %433 = icmp sle i64 %430, %432
  br i1 %433, label %434, label %445

434:                                              ; preds = %429
  %435 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %23, i32 0, i32 6
  %436 = load ptr, ptr %435, align 8, !tbaa !15
  %437 = load i64, ptr %36, align 8, !tbaa !9
  %438 = getelementptr inbounds ptr, ptr %436, i64 %437
  %439 = load ptr, ptr %438, align 8, !tbaa !5
  %440 = load i64, ptr %37, align 8, !tbaa !9
  %441 = getelementptr inbounds double, ptr %439, i64 %440
  store double 0.000000e+00, ptr %441, align 8, !tbaa !16
  br label %442

442:                                              ; preds = %434
  %443 = load i64, ptr %37, align 8, !tbaa !9
  %444 = add nsw i64 %443, 1
  store i64 %444, ptr %37, align 8, !tbaa !9
  br label %429, !llvm.loop !25

445:                                              ; preds = %429
  br label %446

446:                                              ; preds = %445
  %447 = load i64, ptr %36, align 8, !tbaa !9
  %448 = add nsw i64 %447, 1
  store i64 %448, ptr %36, align 8, !tbaa !9
  br label %421, !llvm.loop !26

449:                                              ; preds = %421
  %450 = load i64, ptr %13, align 8, !tbaa !9
  %451 = load i64, ptr %13, align 8, !tbaa !9
  %452 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %450, i64 noundef %451, ptr noundef %24, ptr noundef %25, ptr noundef %452)
  %453 = load i64, ptr %13, align 8, !tbaa !9
  %454 = load i64, ptr %13, align 8, !tbaa !9
  %455 = load i64, ptr %32, align 8, !tbaa !9
  %456 = load ptr, ptr %19, align 8, !tbaa !5
  %457 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %453, i64 noundef %454, ptr noundef %24, i64 noundef %455, ptr noundef %456, ptr noundef %457)
  %458 = load i64, ptr %13, align 8, !tbaa !9
  %459 = load i64, ptr %13, align 8, !tbaa !9
  %460 = load ptr, ptr %18, align 8, !tbaa !5
  %461 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %458, i64 noundef %459, ptr noundef %30, ptr noundef %460, ptr noundef %27, ptr noundef %461)
  %462 = load i64, ptr %13, align 8, !tbaa !9
  %463 = load i64, ptr %14, align 8, !tbaa !9
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %462, i64 noundef %463, ptr noundef %464)
  %466 = add nsw i64 %465, 1
  %467 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %28, i64 noundef %466, ptr noundef %467)
  %468 = load ptr, ptr %19, align 8, !tbaa !5
  %469 = load i64, ptr %34, align 8, !tbaa !9
  %470 = sub nsw i64 %469, 1
  %471 = load i64, ptr %32, align 8, !tbaa !9
  %472 = sub nsw i64 %471, 1
  %473 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %468, i64 noundef 0, i64 noundef %470, i64 noundef 0, i64 noundef %472, ptr noundef %28, ptr noundef %473)
  %474 = load i64, ptr %17, align 8, !tbaa !9
  %475 = icmp slt i64 %474, 1
  br i1 %475, label %476, label %494

476:                                              ; preds = %449
  %477 = load i64, ptr %13, align 8, !tbaa !9
  %478 = load i64, ptr %13, align 8, !tbaa !9
  %479 = load ptr, ptr %20, align 8, !tbaa !5
  %480 = load i64, ptr %13, align 8, !tbaa !9
  %481 = load i64, ptr %14, align 8, !tbaa !9
  %482 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20rmatrixbdmultiplybypEPKNS_9ae_matrixEllPKNS_9ae_vectorEPS0_llbbPNS_8ae_stateE(ptr noundef %23, i64 noundef %477, i64 noundef %478, ptr noundef %25, ptr noundef %479, i64 noundef %480, i64 noundef %481, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef %482)
  %483 = load ptr, ptr %18, align 8, !tbaa !5
  %484 = load i64, ptr %13, align 8, !tbaa !9
  %485 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %486 = trunc i8 %485 to i1
  %487 = load ptr, ptr %19, align 8, !tbaa !5
  %488 = load i64, ptr %34, align 8, !tbaa !9
  %489 = load ptr, ptr %20, align 8, !tbaa !5
  %490 = load i64, ptr %14, align 8, !tbaa !9
  %491 = load ptr, ptr %21, align 8, !tbaa !5
  %492 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %483, ptr noundef %27, i64 noundef %484, i1 noundef zeroext %486, i1 noundef zeroext false, ptr noundef %23, i64 noundef 0, ptr noundef %487, i64 noundef %488, ptr noundef %489, i64 noundef %490, ptr noundef %491)
  %493 = zext i1 %492 to i8
  store i8 %493, ptr %38, align 1, !tbaa !11
  br label %524

494:                                              ; preds = %449
  %495 = load i64, ptr %13, align 8, !tbaa !9
  %496 = load i64, ptr %13, align 8, !tbaa !9
  %497 = load i64, ptr %13, align 8, !tbaa !9
  %498 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %495, i64 noundef %496, ptr noundef %25, i64 noundef %497, ptr noundef %29, ptr noundef %498)
  %499 = load ptr, ptr %18, align 8, !tbaa !5
  %500 = load i64, ptr %13, align 8, !tbaa !9
  %501 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %502 = trunc i8 %501 to i1
  %503 = load ptr, ptr %19, align 8, !tbaa !5
  %504 = load i64, ptr %34, align 8, !tbaa !9
  %505 = load i64, ptr %13, align 8, !tbaa !9
  %506 = load ptr, ptr %21, align 8, !tbaa !5
  %507 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %499, ptr noundef %27, i64 noundef %500, i1 noundef zeroext %502, i1 noundef zeroext false, ptr noundef %23, i64 noundef 0, ptr noundef %503, i64 noundef %504, ptr noundef %29, i64 noundef %505, ptr noundef %506)
  %508 = zext i1 %507 to i8
  store i8 %508, ptr %38, align 1, !tbaa !11
  %509 = load ptr, ptr %20, align 8, !tbaa !5
  %510 = load i64, ptr %13, align 8, !tbaa !9
  %511 = sub nsw i64 %510, 1
  %512 = load i64, ptr %14, align 8, !tbaa !9
  %513 = sub nsw i64 %512, 1
  %514 = load i64, ptr %13, align 8, !tbaa !9
  %515 = sub nsw i64 %514, 1
  %516 = load i64, ptr %14, align 8, !tbaa !9
  %517 = sub nsw i64 %516, 1
  %518 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %509, i64 noundef 0, i64 noundef %511, i64 noundef 0, i64 noundef %513, ptr noundef %23, i64 noundef 0, i64 noundef %515, i64 noundef 0, i64 noundef %517, ptr noundef %518)
  %519 = load i64, ptr %13, align 8, !tbaa !9
  %520 = load i64, ptr %14, align 8, !tbaa !9
  %521 = load i64, ptr %13, align 8, !tbaa !9
  %522 = load ptr, ptr %20, align 8, !tbaa !5
  %523 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %519, i64 noundef %520, i64 noundef %521, double noundef 1.000000e+00, ptr noundef %29, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef %23, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %522, i64 noundef 0, i64 noundef 0, ptr noundef %523)
  br label %524

524:                                              ; preds = %494, %476
  %525 = load ptr, ptr %19, align 8, !tbaa !5
  %526 = load i64, ptr %34, align 8, !tbaa !9
  %527 = sub nsw i64 %526, 1
  %528 = load i64, ptr %32, align 8, !tbaa !9
  %529 = sub nsw i64 %528, 1
  %530 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %525, i64 noundef 0, i64 noundef %527, i64 noundef 0, i64 noundef %529, ptr noundef %28, ptr noundef %530)
  %531 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %531)
  %532 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %533 = trunc i8 %532 to i1
  store i1 %533, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

534:                                              ; preds = %329
  %535 = load i64, ptr %13, align 8, !tbaa !9
  %536 = load i64, ptr %14, align 8, !tbaa !9
  %537 = icmp sle i64 %535, %536
  br i1 %537, label %538, label %585

538:                                              ; preds = %534
  %539 = load i64, ptr %13, align 8, !tbaa !9
  %540 = load i64, ptr %14, align 8, !tbaa !9
  %541 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %539, i64 noundef %540, ptr noundef %24, ptr noundef %25, ptr noundef %541)
  %542 = load i64, ptr %13, align 8, !tbaa !9
  %543 = load i64, ptr %14, align 8, !tbaa !9
  %544 = load i64, ptr %32, align 8, !tbaa !9
  %545 = load ptr, ptr %19, align 8, !tbaa !5
  %546 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %542, i64 noundef %543, ptr noundef %24, i64 noundef %544, ptr noundef %545, ptr noundef %546)
  %547 = load i64, ptr %13, align 8, !tbaa !9
  %548 = load i64, ptr %14, align 8, !tbaa !9
  %549 = load i64, ptr %33, align 8, !tbaa !9
  %550 = load ptr, ptr %20, align 8, !tbaa !5
  %551 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %547, i64 noundef %548, ptr noundef %25, i64 noundef %549, ptr noundef %550, ptr noundef %551)
  %552 = load i64, ptr %13, align 8, !tbaa !9
  %553 = load i64, ptr %14, align 8, !tbaa !9
  %554 = load ptr, ptr %18, align 8, !tbaa !5
  %555 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %552, i64 noundef %553, ptr noundef %30, ptr noundef %554, ptr noundef %27, ptr noundef %555)
  %556 = load i64, ptr %13, align 8, !tbaa !9
  %557 = add nsw i64 %556, 1
  %558 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %28, i64 noundef %557, ptr noundef %558)
  %559 = load ptr, ptr %19, align 8, !tbaa !5
  %560 = load i64, ptr %34, align 8, !tbaa !9
  %561 = sub nsw i64 %560, 1
  %562 = load i64, ptr %32, align 8, !tbaa !9
  %563 = sub nsw i64 %562, 1
  %564 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %559, i64 noundef 0, i64 noundef %561, i64 noundef 0, i64 noundef %563, ptr noundef %28, ptr noundef %564)
  %565 = load ptr, ptr %18, align 8, !tbaa !5
  %566 = load i64, ptr %31, align 8, !tbaa !9
  %567 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc i8 %567 to i1
  %569 = load ptr, ptr %19, align 8, !tbaa !5
  %570 = load i64, ptr %34, align 8, !tbaa !9
  %571 = load ptr, ptr %20, align 8, !tbaa !5
  %572 = load i64, ptr %35, align 8, !tbaa !9
  %573 = load ptr, ptr %21, align 8, !tbaa !5
  %574 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %565, ptr noundef %27, i64 noundef %566, i1 noundef zeroext %568, i1 noundef zeroext false, ptr noundef %23, i64 noundef 0, ptr noundef %569, i64 noundef %570, ptr noundef %571, i64 noundef %572, ptr noundef %573)
  %575 = zext i1 %574 to i8
  store i8 %575, ptr %38, align 1, !tbaa !11
  %576 = load ptr, ptr %19, align 8, !tbaa !5
  %577 = load i64, ptr %34, align 8, !tbaa !9
  %578 = sub nsw i64 %577, 1
  %579 = load i64, ptr %32, align 8, !tbaa !9
  %580 = sub nsw i64 %579, 1
  %581 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %576, i64 noundef 0, i64 noundef %578, i64 noundef 0, i64 noundef %580, ptr noundef %28, ptr noundef %581)
  %582 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %582)
  %583 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc i8 %583 to i1
  store i1 %584, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

585:                                              ; preds = %534
  %586 = load i64, ptr %13, align 8, !tbaa !9
  %587 = load i64, ptr %14, align 8, !tbaa !9
  %588 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef %23, i64 noundef %586, i64 noundef %587, ptr noundef %24, ptr noundef %25, ptr noundef %588)
  %589 = load i64, ptr %13, align 8, !tbaa !9
  %590 = load i64, ptr %14, align 8, !tbaa !9
  %591 = load i64, ptr %32, align 8, !tbaa !9
  %592 = load ptr, ptr %19, align 8, !tbaa !5
  %593 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %589, i64 noundef %590, ptr noundef %24, i64 noundef %591, ptr noundef %592, ptr noundef %593)
  %594 = load i64, ptr %13, align 8, !tbaa !9
  %595 = load i64, ptr %14, align 8, !tbaa !9
  %596 = load i64, ptr %33, align 8, !tbaa !9
  %597 = load ptr, ptr %20, align 8, !tbaa !5
  %598 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef %23, i64 noundef %594, i64 noundef %595, ptr noundef %25, i64 noundef %596, ptr noundef %597, ptr noundef %598)
  %599 = load i64, ptr %13, align 8, !tbaa !9
  %600 = load i64, ptr %14, align 8, !tbaa !9
  %601 = load ptr, ptr %18, align 8, !tbaa !5
  %602 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef %23, i64 noundef %599, i64 noundef %600, ptr noundef %30, ptr noundef %601, ptr noundef %27, ptr noundef %602)
  %603 = load i64, ptr %17, align 8, !tbaa !9
  %604 = icmp slt i64 %603, 2
  br i1 %604, label %608, label %605

605:                                              ; preds = %585
  %606 = load i64, ptr %15, align 8, !tbaa !9
  %607 = icmp eq i64 %606, 0
  br i1 %607, label %608, label %620

608:                                              ; preds = %605, %585
  %609 = load ptr, ptr %18, align 8, !tbaa !5
  %610 = load i64, ptr %31, align 8, !tbaa !9
  %611 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %612 = trunc i8 %611 to i1
  %613 = load ptr, ptr %19, align 8, !tbaa !5
  %614 = load i64, ptr %34, align 8, !tbaa !9
  %615 = load ptr, ptr %20, align 8, !tbaa !5
  %616 = load i64, ptr %35, align 8, !tbaa !9
  %617 = load ptr, ptr %21, align 8, !tbaa !5
  %618 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %609, ptr noundef %27, i64 noundef %610, i1 noundef zeroext %612, i1 noundef zeroext false, ptr noundef %613, i64 noundef %614, ptr noundef %23, i64 noundef 0, ptr noundef %615, i64 noundef %616, ptr noundef %617)
  %619 = zext i1 %618 to i8
  store i8 %619, ptr %38, align 1, !tbaa !11
  br label %659

620:                                              ; preds = %605
  %621 = load i64, ptr %31, align 8, !tbaa !9
  %622 = sub nsw i64 %621, 1
  %623 = add nsw i64 %622, 1
  %624 = load i64, ptr %13, align 8, !tbaa !9
  %625 = sub nsw i64 %624, 1
  %626 = add nsw i64 %625, 1
  %627 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %29, i64 noundef %623, i64 noundef %626, ptr noundef %627)
  %628 = load ptr, ptr %19, align 8, !tbaa !5
  %629 = load i64, ptr %13, align 8, !tbaa !9
  %630 = sub nsw i64 %629, 1
  %631 = load i64, ptr %31, align 8, !tbaa !9
  %632 = sub nsw i64 %631, 1
  %633 = load i64, ptr %31, align 8, !tbaa !9
  %634 = sub nsw i64 %633, 1
  %635 = load i64, ptr %13, align 8, !tbaa !9
  %636 = sub nsw i64 %635, 1
  %637 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %628, i64 noundef 0, i64 noundef %630, i64 noundef 0, i64 noundef %632, ptr noundef %29, i64 noundef 0, i64 noundef %634, i64 noundef 0, i64 noundef %636, ptr noundef %637)
  %638 = load ptr, ptr %18, align 8, !tbaa !5
  %639 = load i64, ptr %31, align 8, !tbaa !9
  %640 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %641 = trunc i8 %640 to i1
  %642 = load ptr, ptr %19, align 8, !tbaa !5
  %643 = load i64, ptr %13, align 8, !tbaa !9
  %644 = load ptr, ptr %20, align 8, !tbaa !5
  %645 = load i64, ptr %35, align 8, !tbaa !9
  %646 = load ptr, ptr %21, align 8, !tbaa !5
  %647 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %638, ptr noundef %27, i64 noundef %639, i1 noundef zeroext %641, i1 noundef zeroext false, ptr noundef %642, i64 noundef 0, ptr noundef %29, i64 noundef %643, ptr noundef %644, i64 noundef %645, ptr noundef %646)
  %648 = zext i1 %647 to i8
  store i8 %648, ptr %38, align 1, !tbaa !11
  %649 = load i64, ptr %31, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  %651 = load i64, ptr %13, align 8, !tbaa !9
  %652 = sub nsw i64 %651, 1
  %653 = load ptr, ptr %19, align 8, !tbaa !5
  %654 = load i64, ptr %13, align 8, !tbaa !9
  %655 = sub nsw i64 %654, 1
  %656 = load i64, ptr %31, align 8, !tbaa !9
  %657 = sub nsw i64 %656, 1
  %658 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %29, i64 noundef 0, i64 noundef %650, i64 noundef 0, i64 noundef %652, ptr noundef %653, i64 noundef 0, i64 noundef %655, i64 noundef 0, i64 noundef %657, ptr noundef %658)
  br label %659

659:                                              ; preds = %620, %608
  %660 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %660)
  %661 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc i8 %661 to i1
  store i1 %662, ptr %11, align 1
  store i32 1, ptr %39, align 4
  br label %663

663:                                              ; preds = %659, %538, %524, %371, %325, %189, %57
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #4
  %664 = load i1, ptr %11, align 1
  ret i1 %664
}

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) #3

declare void @_ZN11alglib_impl15ae_vector_clearEPNS_9ae_vectorE(ptr noundef) #3

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #3

declare void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #3

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #3

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #3

declare void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #3

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #3

declare void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #3

declare void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef) #3

declare void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) #3

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) #3

declare void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #3

declare void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) #3

declare void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) #3

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: write) }
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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}
!24 = distinct !{!24, !19}
!25 = distinct !{!25, !19}
!26 = distinct !{!26, !19}


; 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"

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }

@.str.442 = external hidden unnamed_addr constant [36 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_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef, i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, i1 noundef zeroext, i1 noundef zeroext, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl10rmatrixsvdEPKNS_9ae_matrixElllllPNS_9ae_vectorEPS0_S5_PNS_8ae_stateE(ptr noundef %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, i64 noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) local_unnamed_addr #1 {
  %11 = alloca %"struct.alglib_impl::ae_frame", align 8
  %12 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %13 = alloca %"struct.alglib_impl::ae_vector", align 8
  %14 = alloca %"struct.alglib_impl::ae_vector", align 8
  %15 = alloca %"struct.alglib_impl::ae_vector", align 8
  %16 = alloca %"struct.alglib_impl::ae_vector", align 8
  %17 = alloca %"struct.alglib_impl::ae_vector", align 8
  %18 = alloca %"struct.alglib_impl::ae_matrix", align 8
  %19 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #4
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %9, ptr noundef nonnull %11)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %12, i8 0, i64 80, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %13, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %14, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %15, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %16, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %17, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %18, i8 0, i64 80, i1 false)
  call void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef nonnull %12, ptr noundef %0, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl15ae_vector_clearEPNS_9ae_vectorE(ptr noundef %6)
  call void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef %7)
  call void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef %8)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %13, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %14, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %15, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %16, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %17, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef nonnull %18, i64 noundef 0, i64 noundef 0, i64 noundef 3, ptr noundef %9, i1 noundef zeroext true)
  %20 = icmp eq i64 %1, 0
  %21 = icmp eq i64 %2, 0
  %or.cond = or i1 %20, %21
  br i1 %or.cond, label %204, label %22

22:                                               ; preds = %10
  %23 = icmp ult i64 %3, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %23, ptr noundef nonnull @.str.442, ptr noundef %9)
  %24 = icmp ult i64 %4, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %24, ptr noundef nonnull @.str.442, ptr noundef %9)
  %25 = icmp ult i64 %5, 3
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %25, ptr noundef nonnull @.str.442, ptr noundef %9)
  %26 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %1, i64 noundef %2, ptr noundef %9)
  %27 = add nsw i64 %26, 1
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef %27, ptr noundef %9)
  switch i64 %3, label %29 [
    i64 1, label %.sink.split
    i64 2, label %28
  ]

28:                                               ; preds = %22
  br label %.sink.split

.sink.split:                                      ; preds = %22, %28
  %.sink = phi i64 [ %1, %28 ], [ %26, %22 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %7, i64 noundef %1, i64 noundef %.sink, ptr noundef %9)
  br label %29

29:                                               ; preds = %.sink.split, %22
  %.1394 = phi i64 [ 0, %22 ], [ %.sink, %.sink.split ]
  %.1390 = phi i64 [ 0, %22 ], [ %1, %.sink.split ]
  switch i64 %4, label %31 [
    i64 1, label %.sink.split451
    i64 2, label %30
  ]

30:                                               ; preds = %29
  br label %.sink.split451

.sink.split451:                                   ; preds = %29, %30
  %.sink452 = phi i64 [ %2, %30 ], [ %26, %29 ]
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %8, i64 noundef %.sink452, i64 noundef %2, ptr noundef %9)
  br label %31

31:                                               ; preds = %.sink.split451, %29
  %.1392 = phi i64 [ 0, %29 ], [ %.sink452, %.sink.split451 ]
  %.1388 = phi i64 [ 0, %29 ], [ %2, %.sink.split451 ]
  %32 = sitofp i64 %1 to double
  %33 = sitofp i64 %2 to double
  %34 = fmul double %33, 1.600000e+00
  %35 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %32, double noundef %34)
  br i1 %35, label %36, label %112

36:                                               ; preds = %31
  %37 = icmp eq i64 %3, 0
  call void @_ZN11alglib_impl9rmatrixqrEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %15, ptr noundef %9)
  br i1 %37, label %38, label %70

38:                                               ; preds = %36
  %.not408.not443 = icmp sgt i64 %2, 0
  br i1 %.not408.not443, label %.preheader.lr.ph, label %._crit_edge445

.preheader.lr.ph:                                 ; preds = %38
  %39 = getelementptr inbounds i8, ptr %12, i64 72
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge442
  %.0383444 = phi i64 [ 0, %.preheader.lr.ph ], [ %66, %._crit_edge442 ]
  %.not409.not439.not = icmp eq i64 %.0383444, 0
  br i1 %.not409.not439.not, label %._crit_edge442, label %.lr.ph441.preheader

.lr.ph441.preheader:                              ; preds = %.preheader
  %xtraiter462 = and i64 %.0383444, 3
  %40 = icmp ult i64 %.0383444, 4
  br i1 %40, label %._crit_edge442.loopexit.unr-lcssa, label %.lr.ph441.preheader.new

.lr.ph441.preheader.new:                          ; preds = %.lr.ph441.preheader
  %unroll_iter465 = and i64 %.0383444, 9223372036854775804
  br label %.lr.ph441

.lr.ph441:                                        ; preds = %.lr.ph441, %.lr.ph441.preheader.new
  %.0380440 = phi i64 [ 0, %.lr.ph441.preheader.new ], [ %60, %.lr.ph441 ]
  %niter466 = phi i64 [ 0, %.lr.ph441.preheader.new ], [ %niter466.next.3, %.lr.ph441 ]
  %41 = load ptr, ptr %39, align 8, !tbaa !5
  %42 = getelementptr inbounds ptr, ptr %41, i64 %.0383444
  %43 = load ptr, ptr %42, align 8, !tbaa !8
  %44 = getelementptr inbounds double, ptr %43, i64 %.0380440
  store double 0.000000e+00, ptr %44, align 8, !tbaa !10
  %45 = or disjoint i64 %.0380440, 1
  %46 = load ptr, ptr %39, align 8, !tbaa !5
  %47 = getelementptr inbounds ptr, ptr %46, i64 %.0383444
  %48 = load ptr, ptr %47, align 8, !tbaa !8
  %49 = getelementptr inbounds double, ptr %48, i64 %45
  store double 0.000000e+00, ptr %49, align 8, !tbaa !10
  %50 = or disjoint i64 %.0380440, 2
  %51 = load ptr, ptr %39, align 8, !tbaa !5
  %52 = getelementptr inbounds ptr, ptr %51, i64 %.0383444
  %53 = load ptr, ptr %52, align 8, !tbaa !8
  %54 = getelementptr inbounds double, ptr %53, i64 %50
  store double 0.000000e+00, ptr %54, align 8, !tbaa !10
  %55 = or disjoint i64 %.0380440, 3
  %56 = load ptr, ptr %39, align 8, !tbaa !5
  %57 = getelementptr inbounds ptr, ptr %56, i64 %.0383444
  %58 = load ptr, ptr %57, align 8, !tbaa !8
  %59 = getelementptr inbounds double, ptr %58, i64 %55
  store double 0.000000e+00, ptr %59, align 8, !tbaa !10
  %60 = add nuw nsw i64 %.0380440, 4
  %niter466.next.3 = add i64 %niter466, 4
  %niter466.ncmp.3 = icmp eq i64 %niter466.next.3, %unroll_iter465
  br i1 %niter466.ncmp.3, label %._crit_edge442.loopexit.unr-lcssa, label %.lr.ph441, !llvm.loop !12

._crit_edge442.loopexit.unr-lcssa:                ; preds = %.lr.ph441, %.lr.ph441.preheader
  %.0380440.unr = phi i64 [ 0, %.lr.ph441.preheader ], [ %60, %.lr.ph441 ]
  %lcmp.mod464.not = icmp eq i64 %xtraiter462, 0
  br i1 %lcmp.mod464.not, label %._crit_edge442, label %.lr.ph441.epil

.lr.ph441.epil:                                   ; preds = %._crit_edge442.loopexit.unr-lcssa, %.lr.ph441.epil
  %.0380440.epil = phi i64 [ %65, %.lr.ph441.epil ], [ %.0380440.unr, %._crit_edge442.loopexit.unr-lcssa ]
  %epil.iter463 = phi i64 [ %epil.iter463.next, %.lr.ph441.epil ], [ 0, %._crit_edge442.loopexit.unr-lcssa ]
  %61 = load ptr, ptr %39, align 8, !tbaa !5
  %62 = getelementptr inbounds ptr, ptr %61, i64 %.0383444
  %63 = load ptr, ptr %62, align 8, !tbaa !8
  %64 = getelementptr inbounds double, ptr %63, i64 %.0380440.epil
  store double 0.000000e+00, ptr %64, align 8, !tbaa !10
  %65 = add nuw nsw i64 %.0380440.epil, 1
  %epil.iter463.next = add i64 %epil.iter463, 1
  %epil.iter463.cmp.not = icmp eq i64 %epil.iter463.next, %xtraiter462
  br i1 %epil.iter463.cmp.not, label %._crit_edge442, label %.lr.ph441.epil, !llvm.loop !14

._crit_edge442:                                   ; preds = %._crit_edge442.loopexit.unr-lcssa, %.lr.ph441.epil, %.preheader
  %66 = add nuw nsw i64 %.0383444, 1
  %exitcond450.not = icmp eq i64 %66, %2
  br i1 %exitcond450.not, label %._crit_edge445, label %.preheader, !llvm.loop !16

._crit_edge445:                                   ; preds = %._crit_edge442, %38
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %9)
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %14, i64 noundef %.1392, ptr noundef %8, ptr noundef %9)
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %19, ptr noundef %6, ptr noundef nonnull %16, ptr noundef %9)
  %67 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %68 = trunc nuw i8 %67 to i1
  %69 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %2, i1 noundef zeroext %68, i1 noundef zeroext false, ptr noundef %7, i64 noundef 0, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  br label %204

70:                                               ; preds = %36
  call void @_ZN11alglib_impl16rmatrixqrunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %15, i64 noundef %.1394, ptr noundef %7, ptr noundef %9)
  %.not406.not436 = icmp sgt i64 %2, 0
  br i1 %.not406.not436, label %.preheader415.lr.ph, label %._crit_edge438

.preheader415.lr.ph:                              ; preds = %70
  %71 = getelementptr inbounds i8, ptr %12, i64 72
  br label %.preheader415

.preheader415:                                    ; preds = %.preheader415.lr.ph, %._crit_edge435
  %.1384437 = phi i64 [ 0, %.preheader415.lr.ph ], [ %98, %._crit_edge435 ]
  %.not407.not432.not = icmp eq i64 %.1384437, 0
  br i1 %.not407.not432.not, label %._crit_edge435, label %.lr.ph434.preheader

.lr.ph434.preheader:                              ; preds = %.preheader415
  %xtraiter458 = and i64 %.1384437, 3
  %72 = icmp ult i64 %.1384437, 4
  br i1 %72, label %._crit_edge435.loopexit.unr-lcssa, label %.lr.ph434.preheader.new

.lr.ph434.preheader.new:                          ; preds = %.lr.ph434.preheader
  %unroll_iter460 = and i64 %.1384437, 9223372036854775804
  br label %.lr.ph434

.lr.ph434:                                        ; preds = %.lr.ph434, %.lr.ph434.preheader.new
  %.1381433 = phi i64 [ 0, %.lr.ph434.preheader.new ], [ %92, %.lr.ph434 ]
  %niter461 = phi i64 [ 0, %.lr.ph434.preheader.new ], [ %niter461.next.3, %.lr.ph434 ]
  %73 = load ptr, ptr %71, align 8, !tbaa !5
  %74 = getelementptr inbounds ptr, ptr %73, i64 %.1384437
  %75 = load ptr, ptr %74, align 8, !tbaa !8
  %76 = getelementptr inbounds double, ptr %75, i64 %.1381433
  store double 0.000000e+00, ptr %76, align 8, !tbaa !10
  %77 = or disjoint i64 %.1381433, 1
  %78 = load ptr, ptr %71, align 8, !tbaa !5
  %79 = getelementptr inbounds ptr, ptr %78, i64 %.1384437
  %80 = load ptr, ptr %79, align 8, !tbaa !8
  %81 = getelementptr inbounds double, ptr %80, i64 %77
  store double 0.000000e+00, ptr %81, align 8, !tbaa !10
  %82 = or disjoint i64 %.1381433, 2
  %83 = load ptr, ptr %71, align 8, !tbaa !5
  %84 = getelementptr inbounds ptr, ptr %83, i64 %.1384437
  %85 = load ptr, ptr %84, align 8, !tbaa !8
  %86 = getelementptr inbounds double, ptr %85, i64 %82
  store double 0.000000e+00, ptr %86, align 8, !tbaa !10
  %87 = or disjoint i64 %.1381433, 3
  %88 = load ptr, ptr %71, align 8, !tbaa !5
  %89 = getelementptr inbounds ptr, ptr %88, i64 %.1384437
  %90 = load ptr, ptr %89, align 8, !tbaa !8
  %91 = getelementptr inbounds double, ptr %90, i64 %87
  store double 0.000000e+00, ptr %91, align 8, !tbaa !10
  %92 = add nuw nsw i64 %.1381433, 4
  %niter461.next.3 = add i64 %niter461, 4
  %niter461.ncmp.3 = icmp eq i64 %niter461.next.3, %unroll_iter460
  br i1 %niter461.ncmp.3, label %._crit_edge435.loopexit.unr-lcssa, label %.lr.ph434, !llvm.loop !21

._crit_edge435.loopexit.unr-lcssa:                ; preds = %.lr.ph434, %.lr.ph434.preheader
  %.1381433.unr = phi i64 [ 0, %.lr.ph434.preheader ], [ %92, %.lr.ph434 ]
  %lcmp.mod459.not = icmp eq i64 %xtraiter458, 0
  br i1 %lcmp.mod459.not, label %._crit_edge435, label %.lr.ph434.epil

.lr.ph434.epil:                                   ; preds = %._crit_edge435.loopexit.unr-lcssa, %.lr.ph434.epil
  %.1381433.epil = phi i64 [ %97, %.lr.ph434.epil ], [ %.1381433.unr, %._crit_edge435.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph434.epil ], [ 0, %._crit_edge435.loopexit.unr-lcssa ]
  %93 = load ptr, ptr %71, align 8, !tbaa !5
  %94 = getelementptr inbounds ptr, ptr %93, i64 %.1384437
  %95 = load ptr, ptr %94, align 8, !tbaa !8
  %96 = getelementptr inbounds double, ptr %95, i64 %.1381433.epil
  store double 0.000000e+00, ptr %96, align 8, !tbaa !10
  %97 = add nuw nsw i64 %.1381433.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter458
  br i1 %epil.iter.cmp.not, label %._crit_edge435, label %.lr.ph434.epil, !llvm.loop !22

._crit_edge435:                                   ; preds = %._crit_edge435.loopexit.unr-lcssa, %.lr.ph434.epil, %.preheader415
  %98 = add nuw nsw i64 %.1384437, 1
  %exitcond448.not = icmp eq i64 %98, %2
  br i1 %exitcond448.not, label %._crit_edge438, label %.preheader415, !llvm.loop !23

._crit_edge438:                                   ; preds = %._crit_edge435, %70
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %9)
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %14, i64 noundef %.1392, ptr noundef %8, ptr noundef %9)
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %19, ptr noundef %6, ptr noundef nonnull %16, ptr noundef %9)
  %99 = icmp slt i64 %5, 1
  br i1 %99, label %100, label %104

100:                                              ; preds = %._crit_edge438
  call void @_ZN11alglib_impl20rmatrixbdmultiplybyqEPKNS_9ae_matrixEllPKNS_9ae_vectorEPS0_llbbPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %13, ptr noundef %7, i64 noundef %1, i64 noundef %2, i1 noundef zeroext true, i1 noundef zeroext false, ptr noundef %9)
  %101 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %102 = trunc nuw i8 %101 to i1
  %103 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %2, i1 noundef zeroext %102, i1 noundef zeroext false, ptr noundef %7, i64 noundef %1, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  br label %204

104:                                              ; preds = %._crit_edge438
  %105 = add nsw i64 %2, -1
  %106 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %1, i64 noundef %2, ptr noundef %9)
  %107 = add nsw i64 %106, 1
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %107, ptr noundef %9)
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %2, i64 noundef %2, ptr noundef nonnull %13, i64 noundef %2, ptr noundef nonnull %18, ptr noundef %9)
  %108 = add nsw i64 %1, -1
  call void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %108, i64 noundef 0, i64 noundef %105, ptr noundef nonnull %12, i64 noundef 0, i64 noundef %108, i64 noundef 0, i64 noundef %105, ptr noundef %9)
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %18, i64 noundef 0, i64 noundef %105, i64 noundef 0, i64 noundef %105, ptr noundef nonnull %17, ptr noundef %9)
  %109 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %110 = trunc nuw i8 %109 to i1
  %111 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %2, i1 noundef zeroext %110, i1 noundef zeroext false, ptr noundef %7, i64 noundef 0, ptr noundef nonnull %18, i64 noundef %2, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %1, i64 noundef %2, i64 noundef %2, double noundef 1.000000e+00, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %18, i64 noundef 0, i64 noundef 0, i64 noundef 1, double noundef 0.000000e+00, ptr noundef %7, i64 noundef 0, i64 noundef 0, ptr noundef %9)
  br label %204

112:                                              ; preds = %31
  %113 = fmul double %32, 1.600000e+00
  %114 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %33, double noundef %113)
  br i1 %114, label %115, label %183

115:                                              ; preds = %112
  %116 = icmp eq i64 %4, 0
  call void @_ZN11alglib_impl9rmatrixlqEPNS_9ae_matrixEllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %15, ptr noundef %9)
  br i1 %116, label %117, label %145

117:                                              ; preds = %115
  %.not404.not427 = icmp sgt i64 %1, 0
  br i1 %.not404.not427, label %.lr.ph430, label %._crit_edge431

.lr.ph430:                                        ; preds = %117
  %118 = getelementptr inbounds i8, ptr %12, i64 72
  %xtraiter454 = and i64 %1, 1
  %119 = icmp eq i64 %1, 1
  br i1 %119, label %._crit_edge431.loopexit.unr-lcssa, label %.lr.ph430.new

.lr.ph430.new:                                    ; preds = %.lr.ph430
  %unroll_iter456 = and i64 %1, 9223372036854775806
  br label %126

.loopexit:                                        ; preds = %.lr.ph426, %126
  %120 = add nuw nsw i64 %.2385428, 2
  %.not405.not423.1 = icmp slt i64 %120, %1
  br i1 %.not405.not423.1, label %.lr.ph426.1, label %.loopexit.1

.lr.ph426.1:                                      ; preds = %.loopexit, %.lr.ph426.1
  %.2382424.1 = phi i64 [ %125, %.lr.ph426.1 ], [ %120, %.loopexit ]
  %121 = load ptr, ptr %118, align 8, !tbaa !5
  %122 = getelementptr inbounds ptr, ptr %121, i64 %127
  %123 = load ptr, ptr %122, align 8, !tbaa !8
  %124 = getelementptr inbounds double, ptr %123, i64 %.2382424.1
  store double 0.000000e+00, ptr %124, align 8, !tbaa !10
  %125 = add nuw nsw i64 %.2382424.1, 1
  %.not405.not.1 = icmp slt i64 %125, %1
  br i1 %.not405.not.1, label %.lr.ph426.1, label %.loopexit.1, !llvm.loop !24

.loopexit.1:                                      ; preds = %.lr.ph426.1, %.loopexit
  %niter457.next.1 = add i64 %niter457, 2
  %niter457.ncmp.1 = icmp eq i64 %niter457.next.1, %unroll_iter456
  br i1 %niter457.ncmp.1, label %._crit_edge431.loopexit.unr-lcssa, label %126, !llvm.loop !25

126:                                              ; preds = %.loopexit.1, %.lr.ph430.new
  %.2385428 = phi i64 [ 0, %.lr.ph430.new ], [ %120, %.loopexit.1 ]
  %niter457 = phi i64 [ 0, %.lr.ph430.new ], [ %niter457.next.1, %.loopexit.1 ]
  %127 = or disjoint i64 %.2385428, 1
  %.not405.not423 = icmp slt i64 %127, %1
  br i1 %.not405.not423, label %.lr.ph426, label %.loopexit

.lr.ph426:                                        ; preds = %126, %.lr.ph426
  %.2382424 = phi i64 [ %132, %.lr.ph426 ], [ %127, %126 ]
  %128 = load ptr, ptr %118, align 8, !tbaa !5
  %129 = getelementptr inbounds ptr, ptr %128, i64 %.2385428
  %130 = load ptr, ptr %129, align 8, !tbaa !8
  %131 = getelementptr inbounds double, ptr %130, i64 %.2382424
  store double 0.000000e+00, ptr %131, align 8, !tbaa !10
  %132 = add nuw nsw i64 %.2382424, 1
  %.not405.not = icmp slt i64 %132, %1
  br i1 %.not405.not, label %.lr.ph426, label %.loopexit, !llvm.loop !24

._crit_edge431.loopexit.unr-lcssa:                ; preds = %.loopexit.1, %.lr.ph430
  %.2385428.unr = phi i64 [ 0, %.lr.ph430 ], [ %120, %.loopexit.1 ]
  %lcmp.mod455.not = icmp ne i64 %xtraiter454, 0
  %133 = add nuw nsw i64 %.2385428.unr, 1
  %.not405.not423.epil = icmp slt i64 %133, %1
  %or.cond470 = select i1 %lcmp.mod455.not, i1 %.not405.not423.epil, i1 false
  br i1 %or.cond470, label %.lr.ph426.epil, label %._crit_edge431

.lr.ph426.epil:                                   ; preds = %._crit_edge431.loopexit.unr-lcssa, %.lr.ph426.epil
  %.2382424.epil = phi i64 [ %138, %.lr.ph426.epil ], [ %133, %._crit_edge431.loopexit.unr-lcssa ]
  %134 = load ptr, ptr %118, align 8, !tbaa !5
  %135 = getelementptr inbounds ptr, ptr %134, i64 %.2385428.unr
  %136 = load ptr, ptr %135, align 8, !tbaa !8
  %137 = getelementptr inbounds double, ptr %136, i64 %.2382424.epil
  store double 0.000000e+00, ptr %137, align 8, !tbaa !10
  %138 = add nuw nsw i64 %.2382424.epil, 1
  %.not405.not.epil = icmp slt i64 %138, %1
  br i1 %.not405.not.epil, label %.lr.ph426.epil, label %._crit_edge431, !llvm.loop !24

._crit_edge431:                                   ; preds = %._crit_edge431.loopexit.unr-lcssa, %.lr.ph426.epil, %117
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %9)
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %13, i64 noundef %.1394, ptr noundef %7, ptr noundef %9)
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %19, ptr noundef %6, ptr noundef nonnull %16, ptr noundef %9)
  %139 = add nsw i64 %1, 1
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %139, ptr noundef %9)
  %140 = add nsw i64 %.1390, -1
  %141 = add nsw i64 %.1394, -1
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %140, i64 noundef 0, i64 noundef %141, ptr noundef nonnull %17, ptr noundef %9)
  %142 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %143 = trunc nuw i8 %142 to i1
  %144 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %1, i1 noundef zeroext %143, i1 noundef zeroext false, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %7, i64 noundef %.1390, ptr noundef %8, i64 noundef 0, ptr noundef %9)
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %140, i64 noundef 0, i64 noundef %141, ptr noundef nonnull %17, ptr noundef %9)
  br label %204

145:                                              ; preds = %115
  call void @_ZN11alglib_impl16rmatrixlqunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %15, i64 noundef %.1392, ptr noundef %8, ptr noundef %9)
  %.not402.not420 = icmp sgt i64 %1, 0
  br i1 %.not402.not420, label %.lr.ph422, label %._crit_edge

.lr.ph422:                                        ; preds = %145
  %146 = getelementptr inbounds i8, ptr %12, i64 72
  %xtraiter = and i64 %1, 1
  %147 = icmp eq i64 %1, 1
  br i1 %147, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph422.new

.lr.ph422.new:                                    ; preds = %.lr.ph422
  %unroll_iter = and i64 %1, 9223372036854775806
  br label %154

.loopexit416:                                     ; preds = %.lr.ph, %154
  %148 = add nuw nsw i64 %.3386421, 2
  %.not403.not418.1 = icmp slt i64 %148, %1
  br i1 %.not403.not418.1, label %.lr.ph.1, label %.loopexit416.1

.lr.ph.1:                                         ; preds = %.loopexit416, %.lr.ph.1
  %.3419.1 = phi i64 [ %153, %.lr.ph.1 ], [ %148, %.loopexit416 ]
  %149 = load ptr, ptr %146, align 8, !tbaa !5
  %150 = getelementptr inbounds ptr, ptr %149, i64 %155
  %151 = load ptr, ptr %150, align 8, !tbaa !8
  %152 = getelementptr inbounds double, ptr %151, i64 %.3419.1
  store double 0.000000e+00, ptr %152, align 8, !tbaa !10
  %153 = add nuw nsw i64 %.3419.1, 1
  %.not403.not.1 = icmp slt i64 %153, %1
  br i1 %.not403.not.1, label %.lr.ph.1, label %.loopexit416.1, !llvm.loop !26

.loopexit416.1:                                   ; preds = %.lr.ph.1, %.loopexit416
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %154, !llvm.loop !27

154:                                              ; preds = %.loopexit416.1, %.lr.ph422.new
  %.3386421 = phi i64 [ 0, %.lr.ph422.new ], [ %148, %.loopexit416.1 ]
  %niter = phi i64 [ 0, %.lr.ph422.new ], [ %niter.next.1, %.loopexit416.1 ]
  %155 = or disjoint i64 %.3386421, 1
  %.not403.not418 = icmp slt i64 %155, %1
  br i1 %.not403.not418, label %.lr.ph, label %.loopexit416

.lr.ph:                                           ; preds = %154, %.lr.ph
  %.3419 = phi i64 [ %160, %.lr.ph ], [ %155, %154 ]
  %156 = load ptr, ptr %146, align 8, !tbaa !5
  %157 = getelementptr inbounds ptr, ptr %156, i64 %.3386421
  %158 = load ptr, ptr %157, align 8, !tbaa !8
  %159 = getelementptr inbounds double, ptr %158, i64 %.3419
  store double 0.000000e+00, ptr %159, align 8, !tbaa !10
  %160 = add nuw nsw i64 %.3419, 1
  %.not403.not = icmp slt i64 %160, %1
  br i1 %.not403.not, label %.lr.ph, label %.loopexit416, !llvm.loop !26

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.loopexit416.1, %.lr.ph422
  %.3386421.unr = phi i64 [ 0, %.lr.ph422 ], [ %148, %.loopexit416.1 ]
  %lcmp.mod.not = icmp ne i64 %xtraiter, 0
  %161 = add nuw nsw i64 %.3386421.unr, 1
  %.not403.not418.epil = icmp slt i64 %161, %1
  %or.cond471 = select i1 %lcmp.mod.not, i1 %.not403.not418.epil, i1 false
  br i1 %or.cond471, label %.lr.ph.epil, label %._crit_edge

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil
  %.3419.epil = phi i64 [ %166, %.lr.ph.epil ], [ %161, %._crit_edge.loopexit.unr-lcssa ]
  %162 = load ptr, ptr %146, align 8, !tbaa !5
  %163 = getelementptr inbounds ptr, ptr %162, i64 %.3386421.unr
  %164 = load ptr, ptr %163, align 8, !tbaa !8
  %165 = getelementptr inbounds double, ptr %164, i64 %.3419.epil
  store double 0.000000e+00, ptr %165, align 8, !tbaa !10
  %166 = add nuw nsw i64 %.3419.epil, 1
  %.not403.not.epil = icmp slt i64 %166, %1
  br i1 %.not403.not.epil, label %.lr.ph.epil, label %._crit_edge, !llvm.loop !26

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil, %145
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %9)
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %13, i64 noundef %.1394, ptr noundef %7, ptr noundef %9)
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %19, ptr noundef %6, ptr noundef nonnull %16, ptr noundef %9)
  %167 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %1, i64 noundef %2, ptr noundef %9)
  %168 = add nsw i64 %167, 1
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %168, ptr noundef %9)
  %169 = add nsw i64 %.1390, -1
  %170 = add nsw i64 %.1394, -1
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %169, i64 noundef 0, i64 noundef %170, ptr noundef nonnull %17, ptr noundef %9)
  %171 = icmp slt i64 %5, 1
  br i1 %171, label %172, label %176

172:                                              ; preds = %._crit_edge
  call void @_ZN11alglib_impl20rmatrixbdmultiplybypEPKNS_9ae_matrixEllPKNS_9ae_vectorEPS0_llbbPNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %14, ptr noundef %8, i64 noundef %1, i64 noundef %2, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef %9)
  %173 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %174 = trunc nuw i8 %173 to i1
  %175 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %1, i1 noundef zeroext %174, i1 noundef zeroext false, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %7, i64 noundef %.1390, ptr noundef %8, i64 noundef %2, ptr noundef %9)
  br label %182

176:                                              ; preds = %._crit_edge
  %177 = add nsw i64 %1, -1
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %1, ptr noundef nonnull %14, i64 noundef %1, ptr noundef nonnull %18, ptr noundef %9)
  %178 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %179 = trunc nuw i8 %178 to i1
  %180 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %1, i1 noundef zeroext %179, i1 noundef zeroext false, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %7, i64 noundef %.1390, ptr noundef nonnull %18, i64 noundef %1, ptr noundef %9)
  %181 = add nsw i64 %2, -1
  call void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %8, i64 noundef 0, i64 noundef %177, i64 noundef 0, i64 noundef %181, ptr noundef nonnull %12, i64 noundef 0, i64 noundef %177, i64 noundef 0, i64 noundef %181, ptr noundef %9)
  call void @_ZN11alglib_impl11rmatrixgemmEllldPKNS_9ae_matrixElllS2_llldPS0_llPNS_8ae_stateE(i64 noundef %1, i64 noundef %2, i64 noundef %1, double noundef 1.000000e+00, ptr noundef nonnull %18, i64 noundef 0, i64 noundef 0, i64 noundef 0, ptr noundef nonnull %12, i64 noundef 0, i64 noundef 0, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %8, i64 noundef 0, i64 noundef 0, ptr noundef %9)
  br label %182

182:                                              ; preds = %176, %172
  %.1.in = phi i1 [ %175, %172 ], [ %180, %176 ]
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %169, i64 noundef 0, i64 noundef %170, ptr noundef nonnull %17, ptr noundef %9)
  br label %204

183:                                              ; preds = %112
  %.not = icmp sgt i64 %1, %2
  call void @_ZN11alglib_impl9rmatrixbdEPNS_9ae_matrixEllPNS_9ae_vectorES3_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %9)
  call void @_ZN11alglib_impl16rmatrixbdunpackqEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %13, i64 noundef %.1394, ptr noundef %7, ptr noundef %9)
  call void @_ZN11alglib_impl17rmatrixbdunpackptEPKNS_9ae_matrixEllPKNS_9ae_vectorElPS0_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %14, i64 noundef %.1392, ptr noundef %8, ptr noundef %9)
  call void @_ZN11alglib_impl24rmatrixbdunpackdiagonalsEPKNS_9ae_matrixEllPbPNS_9ae_vectorES5_PNS_8ae_stateE(ptr noundef nonnull %12, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %19, ptr noundef %6, ptr noundef nonnull %16, ptr noundef %9)
  br i1 %.not, label %191, label %184

184:                                              ; preds = %183
  %185 = add nsw i64 %1, 1
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %185, ptr noundef %9)
  %186 = add nsw i64 %.1390, -1
  %187 = add nsw i64 %.1394, -1
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %186, i64 noundef 0, i64 noundef %187, ptr noundef nonnull %17, ptr noundef %9)
  %188 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %189 = trunc nuw i8 %188 to i1
  %190 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %26, i1 noundef zeroext %189, i1 noundef zeroext false, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %7, i64 noundef %.1390, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  call void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %186, i64 noundef 0, i64 noundef %187, ptr noundef nonnull %17, ptr noundef %9)
  br label %204

191:                                              ; preds = %183
  %192 = icmp slt i64 %5, 2
  %193 = icmp eq i64 %3, 0
  %or.cond3 = or i1 %193, %192
  br i1 %or.cond3, label %194, label %198

194:                                              ; preds = %191
  %195 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %196 = trunc nuw i8 %195 to i1
  %197 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %26, i1 noundef zeroext %196, i1 noundef zeroext false, ptr noundef %7, i64 noundef %.1390, ptr noundef nonnull %12, i64 noundef 0, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  br label %204

198:                                              ; preds = %191
  %199 = add nsw i64 %26, -1
  %200 = add nsw i64 %1, -1
  call void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %18, i64 noundef %26, i64 noundef %1, ptr noundef %9)
  call void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef %7, i64 noundef 0, i64 noundef %200, i64 noundef 0, i64 noundef %199, ptr noundef nonnull %18, i64 noundef 0, i64 noundef %199, i64 noundef 0, i64 noundef %200, ptr noundef %9)
  %201 = load i8, ptr %19, align 1, !tbaa !17, !range !19, !noundef !20
  %202 = trunc nuw i8 %201 to i1
  %203 = call noundef zeroext i1 @_ZN11alglib_impl12rmatrixbdsvdEPNS_9ae_vectorEPKS0_lbbPNS_9ae_matrixElS5_lS5_lPNS_8ae_stateE(ptr noundef %6, ptr noundef nonnull %16, i64 noundef %26, i1 noundef zeroext %202, i1 noundef zeroext false, ptr noundef %7, i64 noundef 0, ptr noundef nonnull %18, i64 noundef %1, ptr noundef %8, i64 noundef %.1388, ptr noundef %9)
  call void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef nonnull %18, i64 noundef 0, i64 noundef %199, i64 noundef 0, i64 noundef %200, ptr noundef %7, i64 noundef 0, i64 noundef %200, i64 noundef 0, i64 noundef %199, ptr noundef %9)
  br label %204

204:                                              ; preds = %194, %198, %100, %104, %10, %184, %182, %._crit_edge431, %._crit_edge445
  %.0395 = phi i1 [ %69, %._crit_edge445 ], [ %144, %._crit_edge431 ], [ %.1.in, %182 ], [ %190, %184 ], [ true, %10 ], [ %103, %100 ], [ %111, %104 ], [ %197, %194 ], [ %203, %198 ]
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %9)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #4
  ret i1 %.0395
}

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl15ae_vector_clearEPNS_9ae_vectorE(ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #3

declare void @_ZN11alglib_impl14ae_matrix_initEPNS_9ae_matrixElllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #3

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #3

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl20ae_matrix_set_lengthEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl15ae_matrix_clearEPNS_9ae_matrixE(ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl10copymatrixEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl19ae_matrix_init_copyEPNS_9ae_matrixEPKS0_PNS_8ae_stateEb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #3

declare void @_ZN11alglib_impl16inplacetransposeEPNS_9ae_matrixEllllPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN11alglib_impl16copyandtransposeEPKNS_9ae_matrixEllllPS0_llllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

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: write) }
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 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !6, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.unroll.disable"}
!16 = distinct !{!16, !13}
!17 = !{!18, !18, i64 0}
!18 = !{!"bool", !6, i64 0}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}


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