; LLVM IR from ERGO-Code/HiGHS :: src/util/HFactor.ll (ZN7HFactor12setupGeneralEiiiPKiS1_PKdPiddiPK15HighsLogOptionsbi)

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

%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%class.HFactor = type { double, double, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %struct.RefactorInfo, i32, i32, i32, i32, i32, i32, i32, double, i8, ptr, ptr, ptr, ptr, double, double, i32, double, %"class.std::unique_ptr", %struct.HighsLogOptions, i8, i8, i32, i32, ptr, i32, %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.15", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.10", %class.HVectorBase }
%struct.RefactorInfo = type { i8, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", double }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl" = type { %"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<signed char, std::allocator<signed char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.HighsLogOptions = type <{ ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::function", ptr, i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.HVectorBase = type { i32, i32, %"class.std::vector", %"class.std::vector.10", double, %"class.std::vector.15", %"class.std::vector", ptr, i8, i32, %"class.std::vector", %"class.std::vector.10" }
%"struct.HFactor::LogData" = type { i8, i8, i32 }

@_ZL18kMinPivotThreshold = external hidden constant double, align 8
@_ZL18kMaxPivotThreshold = external hidden constant double, align 8
@_ZL18kMinPivotTolerance = external hidden constant double, align 8
@_ZL18kMaxPivotTolerance = external hidden constant double, align 8

; 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
define dso_local void @_ZN7HFactor12setupGeneralEiiiPKiS1_PKdPiddiPK15HighsLogOptionsbi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, double noundef %8, double noundef %9, i32 noundef %10, ptr noundef %11, i1 noundef zeroext %12, i32 noundef %13) #1 align 2 {
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i8, align 1
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::unique_ptr", align 8
  %30 = alloca double, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca double, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store i32 %1, ptr %16, align 4, !tbaa !9
  store i32 %2, ptr %17, align 4, !tbaa !9
  store i32 %3, ptr %18, align 4, !tbaa !9
  store ptr %4, ptr %19, align 8, !tbaa !5
  store ptr %5, ptr %20, align 8, !tbaa !5
  store ptr %6, ptr %21, align 8, !tbaa !5
  store ptr %7, ptr %22, align 8, !tbaa !5
  store double %8, ptr %23, align 8, !tbaa !11
  store double %9, ptr %24, align 8, !tbaa !11
  store i32 %10, ptr %25, align 4, !tbaa !9
  store ptr %11, ptr %26, align 8, !tbaa !5
  %47 = zext i1 %12 to i8
  store i8 %47, ptr %27, align 1, !tbaa !13
  store i32 %13, ptr %28, align 4, !tbaa !9
  %48 = load ptr, ptr %15, align 8
  %49 = load i32, ptr %17, align 4, !tbaa !9
  %50 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  store i32 %49, ptr %50, align 8, !tbaa !15
  %51 = load i32, ptr %16, align 4, !tbaa !9
  %52 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 12
  store i32 %51, ptr %52, align 4, !tbaa !44
  %53 = load i32, ptr %18, align 4, !tbaa !9
  %54 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  store i32 %53, ptr %54, align 8, !tbaa !45
  %55 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %56 = load i32, ptr %55, align 8, !tbaa !15
  %57 = sitofp i32 %56 to double
  %58 = fdiv double 1.000000e+00, %57
  %59 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 14
  store double %58, ptr %59, align 8, !tbaa !46
  %60 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 15
  store i8 1, ptr %60, align 8, !tbaa !47
  %61 = load ptr, ptr %19, align 8, !tbaa !5
  %62 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 16
  store ptr %61, ptr %62, align 8, !tbaa !48
  %63 = load ptr, ptr %20, align 8, !tbaa !5
  %64 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 17
  store ptr %63, ptr %64, align 8, !tbaa !49
  %65 = load ptr, ptr %21, align 8, !tbaa !5
  %66 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 18
  store ptr %65, ptr %66, align 8, !tbaa !50
  %67 = load ptr, ptr %22, align 8, !tbaa !5
  %68 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 19
  store ptr %67, ptr %68, align 8, !tbaa !51
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMaxPivotThreshold)
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMinPivotThreshold, ptr noundef nonnull align 8 dereferenceable(8) %69)
  %71 = load double, ptr %70, align 8, !tbaa !11
  %72 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 20
  store double %71, ptr %72, align 8, !tbaa !52
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMaxPivotTolerance)
  %74 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMinPivotTolerance, ptr noundef nonnull align 8 dereferenceable(8) %73)
  %75 = load double, ptr %74, align 8, !tbaa !11
  %76 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 21
  store double %75, ptr %76, align 8, !tbaa !53
  %77 = load i32, ptr %25, align 4, !tbaa !9
  %78 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 22
  store i32 %77, ptr %78, align 8, !tbaa !54
  %79 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 23
  store double 0x7FF0000000000000, ptr %79, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %80 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 8) #8
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 8, i1 false)
  call void @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEC2IS3_vEEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef %80) #7
  %81 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  %83 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %84 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %83) #7
  %85 = getelementptr inbounds %"struct.HFactor::LogData", ptr %84, i32 0, i32 0
  %86 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 25
  %87 = getelementptr inbounds %struct.HighsLogOptions, ptr %86, i32 0, i32 1
  store ptr %85, ptr %87, align 8, !tbaa !56
  %88 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %89 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %88) #7
  %90 = getelementptr inbounds %"struct.HFactor::LogData", ptr %89, i32 0, i32 1
  %91 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 25
  %92 = getelementptr inbounds %struct.HighsLogOptions, ptr %91, i32 0, i32 2
  store ptr %90, ptr %92, align 8, !tbaa !57
  %93 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %94 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #7
  %95 = getelementptr inbounds %"struct.HFactor::LogData", ptr %94, i32 0, i32 2
  %96 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 25
  %97 = getelementptr inbounds %struct.HighsLogOptions, ptr %96, i32 0, i32 3
  store ptr %95, ptr %97, align 8, !tbaa !58
  %98 = load ptr, ptr %26, align 8, !tbaa !5
  %99 = icmp ne ptr %98, null
  br i1 %99, label %112, label %100

100:                                              ; preds = %14
  %101 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %102 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #7
  %103 = getelementptr inbounds %"struct.HFactor::LogData", ptr %102, i32 0, i32 0
  store i8 0, ptr %103, align 4, !tbaa !59
  %104 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %105 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %104) #7
  %106 = getelementptr inbounds %"struct.HFactor::LogData", ptr %105, i32 0, i32 1
  store i8 1, ptr %106, align 1, !tbaa !61
  %107 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %108 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #7
  %109 = getelementptr inbounds %"struct.HFactor::LogData", ptr %108, i32 0, i32 2
  store i32 0, ptr %109, align 4, !tbaa !62
  %110 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 25
  %111 = getelementptr inbounds %struct.HighsLogOptions, ptr %110, i32 0, i32 0
  store ptr null, ptr %111, align 8, !tbaa !63
  br label %143

112:                                              ; preds = %14
  %113 = load ptr, ptr %26, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.HighsLogOptions, ptr %113, i32 0, i32 1
  %115 = load ptr, ptr %114, align 8, !tbaa !64
  %116 = load i8, ptr %115, align 1, !tbaa !13, !range !65, !noundef !66
  %117 = trunc i8 %116 to i1
  %118 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %119 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %118) #7
  %120 = getelementptr inbounds %"struct.HFactor::LogData", ptr %119, i32 0, i32 0
  %121 = zext i1 %117 to i8
  store i8 %121, ptr %120, align 4, !tbaa !59
  %122 = load ptr, ptr %26, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.HighsLogOptions, ptr %122, i32 0, i32 2
  %124 = load ptr, ptr %123, align 8, !tbaa !67
  %125 = load i8, ptr %124, align 1, !tbaa !13, !range !65, !noundef !66
  %126 = trunc i8 %125 to i1
  %127 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %128 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %127) #7
  %129 = getelementptr inbounds %"struct.HFactor::LogData", ptr %128, i32 0, i32 1
  %130 = zext i1 %126 to i8
  store i8 %130, ptr %129, align 1, !tbaa !61
  %131 = load ptr, ptr %26, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.HighsLogOptions, ptr %131, i32 0, i32 3
  %133 = load ptr, ptr %132, align 8, !tbaa !68
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 24
  %136 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %135) #7
  %137 = getelementptr inbounds %"struct.HFactor::LogData", ptr %136, i32 0, i32 2
  store i32 %134, ptr %137, align 4, !tbaa !62
  %138 = load ptr, ptr %26, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.HighsLogOptions, ptr %138, i32 0, i32 0
  %140 = load ptr, ptr %139, align 8, !tbaa !69
  %141 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 25
  %142 = getelementptr inbounds %struct.HighsLogOptions, ptr %141, i32 0, i32 0
  store ptr %140, ptr %142, align 8, !tbaa !63
  br label %143

143:                                              ; preds = %112, %100
  %144 = load i8, ptr %27, align 1, !tbaa !13, !range !65, !noundef !66
  %145 = trunc i8 %144 to i1
  %146 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 26
  %147 = zext i1 %145 to i8
  store i8 %147, ptr %146, align 8, !tbaa !70
  %148 = load i32, ptr %28, align 4, !tbaa !9
  %149 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 29
  store i32 %148, ptr %149, align 8, !tbaa !71
  %150 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 32
  %151 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %152 = load i32, ptr %151, align 8, !tbaa !15
  %153 = mul nsw i32 %152, 2
  %154 = sext i32 %153 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %154)
  %155 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 33
  %156 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %157 = load i32, ptr %156, align 8, !tbaa !15
  %158 = sext i32 %157 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  store double 0.000000e+00, ptr %30, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %155, i64 noundef %158, ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  %159 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  store i32 0, ptr %159, align 4, !tbaa !72
  %160 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 32
  %161 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %162 = load i32, ptr %161, align 8, !tbaa !15
  %163 = add nsw i32 %162, 1
  %164 = sext i32 %163 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 0, ptr %31, align 4, !tbaa !9
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef %164, ptr noundef nonnull align 4 dereferenceable(4) %31)
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  store i32 0, ptr %32, align 4, !tbaa !9
  br label %165

165:                                              ; preds = %191, %143
  %166 = load i32, ptr %32, align 4, !tbaa !9
  %167 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 12
  %168 = load i32, ptr %167, align 4, !tbaa !44
  %169 = icmp slt i32 %166, %168
  br i1 %169, label %171, label %170

170:                                              ; preds = %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %194

171:                                              ; preds = %165
  %172 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 32
  %173 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 16
  %174 = load ptr, ptr %173, align 8, !tbaa !48
  %175 = load i32, ptr %32, align 4, !tbaa !9
  %176 = add nsw i32 %175, 1
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds i32, ptr %174, i64 %177
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 16
  %181 = load ptr, ptr %180, align 8, !tbaa !48
  %182 = load i32, ptr %32, align 4, !tbaa !9
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds i32, ptr %181, i64 %183
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = sub nsw i32 %179, %185
  %187 = sext i32 %186 to i64
  %188 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %187) #7
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr %188, align 4, !tbaa !9
  br label %191

191:                                              ; preds = %171
  %192 = load i32, ptr %32, align 4, !tbaa !9
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr %32, align 4, !tbaa !9
  br label %165, !llvm.loop !73

194:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %195 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %196 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %195, ptr noundef nonnull align 4 dereferenceable(4) %196)
  %198 = load i32, ptr %197, align 4, !tbaa !9
  store i32 %198, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %199 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %200 = load i32, ptr %199, align 8, !tbaa !15
  store i32 %200, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %229, %194
  %202 = load i32, ptr %34, align 4, !tbaa !9
  %203 = icmp sge i32 %202, 0
  br i1 %203, label %204, label %208

204:                                              ; preds = %201
  %205 = load i32, ptr %35, align 4, !tbaa !9
  %206 = load i32, ptr %33, align 4, !tbaa !9
  %207 = icmp slt i32 %205, %206
  br label %208

208:                                              ; preds = %204, %201
  %209 = phi i1 [ false, %201 ], [ %207, %204 ]
  br i1 %209, label %211, label %210

210:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %232

211:                                              ; preds = %208
  %212 = load i32, ptr %34, align 4, !tbaa !9
  %213 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 32
  %214 = load i32, ptr %34, align 4, !tbaa !9
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %215) #7
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = mul nsw i32 %212, %217
  %219 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %220 = load i32, ptr %219, align 4, !tbaa !72
  %221 = add nsw i32 %220, %218
  store i32 %221, ptr %219, align 4, !tbaa !72
  %222 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 32
  %223 = load i32, ptr %34, align 4, !tbaa !9
  %224 = sext i32 %223 to i64
  %225 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %224) #7
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = load i32, ptr %35, align 4, !tbaa !9
  %228 = add nsw i32 %227, %226
  store i32 %228, ptr %35, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %211
  %230 = load i32, ptr %34, align 4, !tbaa !9
  %231 = add nsw i32 %230, -1
  store i32 %231, ptr %34, align 4, !tbaa !9
  br label %201, !llvm.loop !75

232:                                              ; preds = %210
  %233 = load i32, ptr %33, align 4, !tbaa !9
  %234 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %235 = load i32, ptr %234, align 4, !tbaa !72
  %236 = add nsw i32 %235, %233
  store i32 %236, ptr %234, align 4, !tbaa !72
  %237 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 34
  %238 = load i32, ptr %33, align 4, !tbaa !9
  %239 = sext i32 %238 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239)
  %240 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 35
  %241 = load i32, ptr %33, align 4, !tbaa !9
  %242 = add nsw i32 %241, 1
  %243 = sext i32 %242 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 0, ptr %36, align 4, !tbaa !9
  call void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %240, i64 noundef %243, ptr noundef nonnull align 4 dereferenceable(4) %36)
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  %244 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 36
  %245 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %246 = load i32, ptr %245, align 4, !tbaa !72
  %247 = sext i32 %246 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %247)
  %248 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 37
  %249 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %250 = load i32, ptr %249, align 4, !tbaa !72
  %251 = sext i32 %250 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %251)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %252 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %253 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  %254 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %252, ptr noundef nonnull align 4 dereferenceable(4) %253)
  %255 = load i32, ptr %254, align 4, !tbaa !9
  store i32 %255, ptr %37, align 4, !tbaa !9
  %256 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 38
  %257 = load i32, ptr %37, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %256, i64 noundef %258)
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %259 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  %260 = load i32, ptr %259, align 8, !tbaa !45
  store i32 %260, ptr %38, align 4, !tbaa !9
  %261 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 39
  %262 = load i32, ptr %38, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %263)
  %264 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 40
  %265 = load i32, ptr %38, align 4, !tbaa !9
  %266 = sext i32 %265 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %264, i64 noundef %266)
  %267 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 41
  %268 = load i32, ptr %38, align 4, !tbaa !9
  %269 = sext i32 %268 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %269)
  %270 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 42
  %271 = load i32, ptr %38, align 4, !tbaa !9
  %272 = sext i32 %271 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef %272)
  %273 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 43
  %274 = load i32, ptr %38, align 4, !tbaa !9
  %275 = sext i32 %274 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %275)
  %276 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 46
  %277 = load i32, ptr %38, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %278)
  %279 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 44
  %280 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %281 = load i32, ptr %280, align 4, !tbaa !72
  %282 = mul nsw i32 %281, 2
  %283 = sext i32 %282 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %279, i64 noundef %283)
  %284 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 45
  %285 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %286 = load i32, ptr %285, align 4, !tbaa !72
  %287 = mul nsw i32 %286, 2
  %288 = sext i32 %287 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %284, i64 noundef %288)
  %289 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 47
  %290 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %291 = load i32, ptr %290, align 8, !tbaa !15
  %292 = sext i32 %291 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %292)
  %293 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 48
  %294 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %295 = load i32, ptr %294, align 8, !tbaa !15
  %296 = sext i32 %295 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %296)
  %297 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 49
  %298 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %299 = load i32, ptr %298, align 8, !tbaa !15
  %300 = sext i32 %299 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %300)
  %301 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 50
  %302 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %303 = load i32, ptr %302, align 8, !tbaa !15
  %304 = sext i32 %303 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef %304)
  %305 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 51
  %306 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %307 = load i32, ptr %306, align 4, !tbaa !72
  %308 = mul nsw i32 %307, 2
  %309 = sext i32 %308 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %309)
  %310 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 53
  %311 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %312 = load i32, ptr %311, align 8, !tbaa !15
  %313 = sext i32 %312 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  store i8 0, ptr %39, align 1, !tbaa !76
  call void @_ZNSt6vectorIcSaIcEE6assignEmRKc(ptr noundef nonnull align 8 dereferenceable(24) %310, i64 noundef %313, ptr noundef nonnull align 1 dereferenceable(1) %39)
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  %314 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 52
  %315 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %316 = load i32, ptr %315, align 8, !tbaa !15
  %317 = sext i32 %316 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %314, i64 noundef %317)
  %318 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 54
  %319 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %320 = load i32, ptr %319, align 8, !tbaa !15
  %321 = sext i32 %320 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  call void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %318, i64 noundef %321, ptr noundef nonnull align 8 dereferenceable(8) %40)
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  %322 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %323 = load i32, ptr %322, align 8, !tbaa !15
  store i32 %323, ptr %41, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %324 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  %325 = load i32, ptr %324, align 8, !tbaa !45
  store i32 %325, ptr %42, align 4, !tbaa !9
  %326 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 55
  %327 = load i32, ptr %41, align 4, !tbaa !9
  %328 = add nsw i32 %327, 1
  %329 = sext i32 %328 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 -1, ptr %43, align 4, !tbaa !9
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %326, i64 noundef %329, ptr noundef nonnull align 4 dereferenceable(4) %43)
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  %330 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 56
  %331 = load i32, ptr %42, align 4, !tbaa !9
  %332 = sext i32 %331 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %330, i64 noundef %332)
  %333 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 57
  %334 = load i32, ptr %42, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %333, i64 noundef %335)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %336 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 13
  %337 = load i32, ptr %336, align 8, !tbaa !45
  store i32 %337, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %338 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %339 = load i32, ptr %338, align 8, !tbaa !15
  store i32 %339, ptr %45, align 4, !tbaa !9
  %340 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 58
  %341 = load i32, ptr %44, align 4, !tbaa !9
  %342 = add nsw i32 %341, 1
  %343 = sext i32 %342 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %340, i64 noundef %343)
  %344 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 58
  %345 = load i32, ptr %44, align 4, !tbaa !9
  %346 = add nsw i32 %345, 1
  %347 = sext i32 %346 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 -1, ptr %46, align 4, !tbaa !9
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef %347, ptr noundef nonnull align 4 dereferenceable(4) %46)
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  %348 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 59
  %349 = load i32, ptr %45, align 4, !tbaa !9
  %350 = sext i32 %349 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %350)
  %351 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 60
  %352 = load i32, ptr %45, align 4, !tbaa !9
  %353 = sext i32 %352 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %353)
  %354 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 61
  %355 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %356 = load i32, ptr %355, align 8, !tbaa !15
  %357 = sext i32 %356 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef %357)
  %358 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 62
  %359 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %360 = load i32, ptr %359, align 8, !tbaa !15
  %361 = sext i32 %360 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %361)
  %362 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 63
  %363 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %364 = load i32, ptr %363, align 8, !tbaa !15
  %365 = add nsw i32 %364, 1
  %366 = sext i32 %365 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %362, i64 noundef %366)
  %367 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 64
  %368 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %369 = load i32, ptr %368, align 4, !tbaa !72
  %370 = mul nsw i32 %369, 3
  %371 = sext i32 %370 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %367, i64 noundef %371)
  %372 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 65
  %373 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %374 = load i32, ptr %373, align 4, !tbaa !72
  %375 = mul nsw i32 %374, 3
  %376 = sext i32 %375 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %372, i64 noundef %376)
  %377 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 66
  %378 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %379 = load i32, ptr %378, align 8, !tbaa !15
  %380 = add nsw i32 %379, 1
  %381 = sext i32 %380 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %381)
  %382 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 67
  %383 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %384 = load i32, ptr %383, align 4, !tbaa !72
  %385 = mul nsw i32 %384, 3
  %386 = sext i32 %385 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef %386)
  %387 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 68
  %388 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %389 = load i32, ptr %388, align 4, !tbaa !72
  %390 = mul nsw i32 %389, 3
  %391 = sext i32 %390 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %387, i64 noundef %391)
  %392 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 69
  %393 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %394 = load i32, ptr %393, align 8, !tbaa !15
  %395 = sext i32 %394 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %392, i64 noundef %395)
  %396 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 70
  %397 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %398 = load i32, ptr %397, align 8, !tbaa !15
  %399 = add nsw i32 %398, 1000
  %400 = sext i32 %399 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %396, i64 noundef %400)
  %401 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 71
  %402 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %403 = load i32, ptr %402, align 8, !tbaa !15
  %404 = add nsw i32 %403, 1000
  %405 = sext i32 %404 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %405)
  %406 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 74
  %407 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %408 = load i32, ptr %407, align 8, !tbaa !15
  %409 = add nsw i32 %408, 1000
  %410 = add nsw i32 %409, 1
  %411 = sext i32 %410 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %406, i64 noundef %411)
  %412 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 75
  %413 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %414 = load i32, ptr %413, align 8, !tbaa !15
  %415 = add nsw i32 %414, 1000
  %416 = sext i32 %415 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %412, i64 noundef %416)
  %417 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 76
  %418 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %419 = load i32, ptr %418, align 4, !tbaa !72
  %420 = mul nsw i32 %419, 3
  %421 = sext i32 %420 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %417, i64 noundef %421)
  %422 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 77
  %423 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %424 = load i32, ptr %423, align 4, !tbaa !72
  %425 = mul nsw i32 %424, 3
  %426 = sext i32 %425 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef %426)
  %427 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 78
  %428 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %429 = load i32, ptr %428, align 8, !tbaa !15
  %430 = add nsw i32 %429, 1000
  %431 = add nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %427, i64 noundef %432)
  %433 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 79
  %434 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %435 = load i32, ptr %434, align 8, !tbaa !15
  %436 = add nsw i32 %435, 1000
  %437 = sext i32 %436 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %433, i64 noundef %437)
  %438 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 80
  %439 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %440 = load i32, ptr %439, align 8, !tbaa !15
  %441 = add nsw i32 %440, 1000
  %442 = sext i32 %441 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %438, i64 noundef %442)
  %443 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 81
  %444 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %445 = load i32, ptr %444, align 4, !tbaa !72
  %446 = mul nsw i32 %445, 3
  %447 = sext i32 %446 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %443, i64 noundef %447)
  %448 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 82
  %449 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %450 = load i32, ptr %449, align 4, !tbaa !72
  %451 = mul nsw i32 %450, 3
  %452 = sext i32 %451 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %448, i64 noundef %452)
  %453 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 83
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %453, i64 noundef 1000)
  %454 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 84
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef 1000)
  %455 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 85
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %455, i64 noundef 2001)
  %456 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 86
  %457 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %458 = load i32, ptr %457, align 4, !tbaa !72
  %459 = mul nsw i32 %458, 4
  %460 = sext i32 %459 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %456, i64 noundef %460)
  %461 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 87
  %462 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 28
  %463 = load i32, ptr %462, align 4, !tbaa !72
  %464 = mul nsw i32 %463, 4
  %465 = sext i32 %464 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef %465)
  %466 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 88
  %467 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 11
  %468 = load i32, ptr %467, align 8, !tbaa !15
  call void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %466, i32 noundef %468)
  %469 = getelementptr inbounds %class.HFactor, ptr %48, i32 0, i32 88
  %470 = getelementptr inbounds %class.HVectorBase, ptr %469, i32 0, i32 1
  store i32 -1, ptr %470, align 4, !tbaa !77
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  ret void
}

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEC2IS3_vEEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #6

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

!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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !10, i64 200}
!16 = !{!"_ZTS7HFactor", !12, i64 0, !12, i64 8, !10, i64 16, !17, i64 24, !17, i64 48, !17, i64 72, !21, i64 96, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !12, i64 216, !14, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !12, i64 264, !12, i64 272, !10, i64 280, !12, i64 288, !26, i64 296, !32, i64 304, !14, i64 400, !14, i64 401, !10, i64 404, !10, i64 408, !6, i64 416, !10, i64 424, !17, i64 432, !35, i64 456, !17, i64 480, !17, i64 504, !17, i64 528, !35, i64 552, !17, i64 576, !17, i64 600, !17, i64 624, !17, i64 648, !17, i64 672, !17, i64 696, !17, i64 720, !35, i64 744, !35, i64 768, !17, i64 792, !17, i64 816, !17, i64 840, !17, i64 864, !17, i64 888, !17, i64 912, !39, i64 936, !35, i64 960, !17, i64 984, !17, i64 1008, !17, i64 1032, !17, i64 1056, !17, i64 1080, !17, i64 1104, !17, i64 1128, !17, i64 1152, !17, i64 1176, !17, i64 1200, !35, i64 1224, !17, i64 1248, !17, i64 1272, !35, i64 1296, !17, i64 1320, !17, i64 1344, !35, i64 1368, !10, i64 1392, !10, i64 1396, !17, i64 1400, !17, i64 1424, !17, i64 1448, !35, i64 1472, !17, i64 1496, !17, i64 1520, !17, i64 1544, !17, i64 1568, !35, i64 1592, !35, i64 1616, !17, i64 1640, !17, i64 1664, !17, i64 1688, !35, i64 1712, !43, i64 1736}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTS12RefactorInfo", !14, i64 0, !17, i64 8, !17, i64 32, !22, i64 56, !12, i64 80}
!22 = !{!"_ZTSSt6vectorIaSaIaEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !30, i64 0}
!30 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !31, i64 0}
!31 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !6, i64 0}
!32 = !{!"_ZTS15HighsLogOptions", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !33, i64 48, !6, i64 80, !14, i64 88}
!33 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !34, i64 0, !6, i64 24}
!34 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!35 = !{!"_ZTSSt6vectorIdSaIdEE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorIcSaIcEE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTS11HVectorBaseIdE", !10, i64 0, !10, i64 4, !17, i64 8, !35, i64 32, !12, i64 56, !39, i64 64, !17, i64 88, !6, i64 112, !14, i64 120, !10, i64 124, !17, i64 128, !35, i64 152}
!44 = !{!16, !10, i64 204}
!45 = !{!16, !10, i64 208}
!46 = !{!16, !12, i64 216}
!47 = !{!16, !14, i64 224}
!48 = !{!16, !6, i64 232}
!49 = !{!16, !6, i64 240}
!50 = !{!16, !6, i64 248}
!51 = !{!16, !6, i64 256}
!52 = !{!16, !12, i64 264}
!53 = !{!16, !12, i64 272}
!54 = !{!16, !10, i64 280}
!55 = !{!16, !12, i64 288}
!56 = !{!16, !6, i64 312}
!57 = !{!16, !6, i64 320}
!58 = !{!16, !6, i64 328}
!59 = !{!60, !14, i64 0}
!60 = !{!"_ZTSN7HFactor7LogDataE", !14, i64 0, !14, i64 1, !10, i64 4}
!61 = !{!60, !14, i64 1}
!62 = !{!60, !10, i64 4}
!63 = !{!16, !6, i64 304}
!64 = !{!32, !6, i64 8}
!65 = !{i8 0, i8 2}
!66 = !{}
!67 = !{!32, !6, i64 16}
!68 = !{!32, !6, i64 24}
!69 = !{!32, !6, i64 0}
!70 = !{!16, !14, i64 400}
!71 = !{!16, !10, i64 408}
!72 = !{!16, !10, i64 404}
!73 = distinct !{!73, !74}
!74 = !{!"llvm.loop.mustprogress"}
!75 = distinct !{!75, !74}
!76 = !{!7, !7, i64 0}
!77 = !{!16, !10, i64 1740}


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

%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }

@_ZL18kMinPivotThreshold = external hidden constant double, align 8
@_ZL18kMaxPivotThreshold = external hidden constant double, align 8
@_ZL18kMinPivotTolerance = external hidden constant double, align 8
@_ZL18kMaxPivotTolerance = external hidden constant double, align 8

; 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
define dso_local void @_ZN7HFactor12setupGeneralEiiiPKiS1_PKdPiddiPK15HighsLogOptionsbi(ptr noundef nonnull align 8 dereferenceable(1912) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, double noundef %8, double noundef %9, i32 noundef %10, ptr noundef readonly %11, i1 noundef zeroext %12, i32 noundef %13) local_unnamed_addr #1 align 2 {
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca %"class.std::unique_ptr", align 8
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  store double %8, ptr %15, align 8, !tbaa !5
  store double %9, ptr %16, align 8, !tbaa !5
  %25 = zext i1 %12 to i8
  %26 = getelementptr inbounds i8, ptr %0, i64 200
  store i32 %2, ptr %26, align 8, !tbaa !9
  %27 = getelementptr inbounds i8, ptr %0, i64 204
  store i32 %1, ptr %27, align 4, !tbaa !41
  %28 = getelementptr inbounds i8, ptr %0, i64 208
  store i32 %3, ptr %28, align 8, !tbaa !42
  %29 = sitofp i32 %2 to double
  %30 = fdiv double 1.000000e+00, %29
  %31 = getelementptr inbounds i8, ptr %0, i64 216
  store double %30, ptr %31, align 8, !tbaa !43
  %32 = getelementptr inbounds i8, ptr %0, i64 224
  store i8 1, ptr %32, align 8, !tbaa !44
  %33 = getelementptr inbounds i8, ptr %0, i64 232
  store ptr %4, ptr %33, align 8, !tbaa !45
  %34 = getelementptr inbounds i8, ptr %0, i64 240
  store ptr %5, ptr %34, align 8, !tbaa !46
  %35 = getelementptr inbounds i8, ptr %0, i64 248
  store ptr %6, ptr %35, align 8, !tbaa !47
  %36 = getelementptr inbounds i8, ptr %0, i64 256
  store ptr %7, ptr %36, align 8, !tbaa !48
  %37 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMaxPivotThreshold)
  %38 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMinPivotThreshold, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %39 = load double, ptr %38, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %0, i64 264
  store double %39, ptr %40, align 8, !tbaa !49
  %41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMaxPivotTolerance)
  %42 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZL18kMinPivotTolerance, ptr noundef nonnull align 8 dereferenceable(8) %41)
  %43 = load double, ptr %42, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %0, i64 272
  store double %43, ptr %44, align 8, !tbaa !50
  %45 = getelementptr inbounds i8, ptr %0, i64 280
  store i32 %10, ptr %45, align 8, !tbaa !51
  %46 = getelementptr inbounds i8, ptr %0, i64 288
  store double 0x7FF0000000000000, ptr %46, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %47 = call noalias noundef nonnull dereferenceable(8) ptr @_Znwm(i64 noundef 8) #7
  store i64 0, ptr %47, align 8
  call void @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEC2IS3_vEEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull %47) #6
  %48 = getelementptr inbounds i8, ptr %0, i64 296
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @_ZNSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  %50 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %51 = getelementptr inbounds i8, ptr %0, i64 304
  %52 = getelementptr inbounds i8, ptr %0, i64 312
  store ptr %50, ptr %52, align 8, !tbaa !53
  %53 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %54 = getelementptr inbounds i8, ptr %53, i64 1
  %55 = getelementptr inbounds i8, ptr %0, i64 320
  store ptr %54, ptr %55, align 8, !tbaa !54
  %56 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %57 = getelementptr inbounds i8, ptr %56, i64 4
  %58 = getelementptr inbounds i8, ptr %0, i64 328
  store ptr %57, ptr %58, align 8, !tbaa !55
  %.not = icmp eq ptr %11, null
  br i1 %.not, label %59, label %65

59:                                               ; preds = %14
  %60 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  store i8 0, ptr %60, align 4, !tbaa !56
  %61 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %62 = getelementptr inbounds i8, ptr %61, i64 1
  store i8 1, ptr %62, align 1, !tbaa !58
  %63 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %64 = getelementptr inbounds i8, ptr %63, i64 4
  store i32 0, ptr %64, align 4, !tbaa !59
  br label %81

65:                                               ; preds = %14
  %66 = getelementptr inbounds i8, ptr %11, i64 8
  %67 = load ptr, ptr %66, align 8, !tbaa !60
  %68 = load i8, ptr %67, align 1, !tbaa !61, !range !62, !noundef !63
  %69 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  store i8 %68, ptr %69, align 4, !tbaa !56
  %70 = getelementptr inbounds i8, ptr %11, i64 16
  %71 = load ptr, ptr %70, align 8, !tbaa !64
  %72 = load i8, ptr %71, align 1, !tbaa !61, !range !62, !noundef !63
  %73 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %74 = getelementptr inbounds i8, ptr %73, i64 1
  store i8 %72, ptr %74, align 1, !tbaa !58
  %75 = getelementptr inbounds i8, ptr %11, i64 24
  %76 = load ptr, ptr %75, align 8, !tbaa !65
  %77 = load i32, ptr %76, align 4, !tbaa !66
  %78 = call noundef ptr @_ZNKSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  %79 = getelementptr inbounds i8, ptr %78, i64 4
  store i32 %77, ptr %79, align 4, !tbaa !59
  %80 = load ptr, ptr %11, align 8, !tbaa !67
  br label %81

81:                                               ; preds = %65, %59
  %storemerge = phi ptr [ null, %59 ], [ %80, %65 ]
  store ptr %storemerge, ptr %51, align 8, !tbaa !68
  %82 = getelementptr inbounds i8, ptr %0, i64 400
  store i8 %25, ptr %82, align 8, !tbaa !69
  %83 = getelementptr inbounds i8, ptr %0, i64 408
  store i32 %13, ptr %83, align 8, !tbaa !70
  %84 = getelementptr inbounds i8, ptr %0, i64 432
  %85 = load i32, ptr %26, align 8, !tbaa !9
  %86 = shl nsw i32 %85, 1
  %87 = sext i32 %86 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %87)
  %88 = getelementptr inbounds i8, ptr %0, i64 456
  %89 = load i32, ptr %26, align 8, !tbaa !9
  %90 = sext i32 %89 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  store double 0.000000e+00, ptr %18, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %90, ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  %91 = getelementptr inbounds i8, ptr %0, i64 404
  store i32 0, ptr %91, align 4, !tbaa !71
  %92 = load i32, ptr %26, align 8, !tbaa !9
  %93 = add nsw i32 %92, 1
  %94 = sext i32 %93 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  store i32 0, ptr %19, align 4, !tbaa !66
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %94, ptr noundef nonnull align 4 dereferenceable(4) %19)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  %95 = load i32, ptr %27, align 4, !tbaa !41
  %96 = icmp sgt i32 %95, 0
  br i1 %96, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %81
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %28)
  %98 = load i32, ptr %97, align 4, !tbaa !66
  %99 = load i32, ptr %26, align 8, !tbaa !9
  %100 = icmp sgt i32 %99, -1
  %101 = icmp sgt i32 %98, 0
  %102 = select i1 %100, i1 %101, i1 false
  br i1 %102, label %.lr.ph51.preheader, label %._crit_edge52

.lr.ph51.preheader:                               ; preds = %._crit_edge
  %103 = zext nneg i32 %99 to i64
  br label %.lr.ph51

.lr.ph:                                           ; preds = %81, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %81 ]
  %104 = load ptr, ptr %33, align 8, !tbaa !45
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %105 = getelementptr inbounds i32, ptr %104, i64 %indvars.iv.next
  %106 = load i32, ptr %105, align 4, !tbaa !66
  %107 = getelementptr inbounds i32, ptr %104, i64 %indvars.iv
  %108 = load i32, ptr %107, align 4, !tbaa !66
  %109 = sub nsw i32 %106, %108
  %110 = sext i32 %109 to i64
  %111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %110) #6
  %112 = load i32, ptr %111, align 4, !tbaa !66
  %113 = add nsw i32 %112, 1
  store i32 %113, ptr %111, align 4, !tbaa !66
  %114 = load i32, ptr %27, align 4, !tbaa !41
  %115 = sext i32 %114 to i64
  %116 = icmp slt i64 %indvars.iv.next, %115
  br i1 %116, label %.lr.ph, label %._crit_edge, !llvm.loop !72

._crit_edge52:                                    ; preds = %.lr.ph51, %._crit_edge
  %117 = load i32, ptr %91, align 4, !tbaa !71
  %118 = add nsw i32 %117, %98
  store i32 %118, ptr %91, align 4, !tbaa !71
  %119 = getelementptr inbounds i8, ptr %0, i64 480
  %120 = sext i32 %98 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %120)
  %121 = getelementptr inbounds i8, ptr %0, i64 504
  %122 = add nsw i32 %98, 1
  %123 = sext i32 %122 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i32 0, ptr %20, align 4, !tbaa !66
  call void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef %123, ptr noundef nonnull align 4 dereferenceable(4) %20)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  %124 = getelementptr inbounds i8, ptr %0, i64 528
  %125 = load i32, ptr %91, align 4, !tbaa !71
  %126 = sext i32 %125 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %124, i64 noundef %126)
  %127 = getelementptr inbounds i8, ptr %0, i64 552
  %128 = load i32, ptr %91, align 4, !tbaa !71
  %129 = sext i32 %128 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef %129)
  %130 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %28)
  %131 = load i32, ptr %130, align 4, !tbaa !66
  %132 = getelementptr inbounds i8, ptr %0, i64 576
  %133 = sext i32 %131 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %132, i64 noundef %133)
  %134 = load i32, ptr %28, align 8, !tbaa !42
  %135 = getelementptr inbounds i8, ptr %0, i64 600
  %136 = sext i32 %134 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %135, i64 noundef %136)
  %137 = getelementptr inbounds i8, ptr %0, i64 624
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %137, i64 noundef %136)
  %138 = getelementptr inbounds i8, ptr %0, i64 648
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %138, i64 noundef %136)
  %139 = getelementptr inbounds i8, ptr %0, i64 672
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %136)
  %140 = getelementptr inbounds i8, ptr %0, i64 696
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %140, i64 noundef %136)
  %141 = getelementptr inbounds i8, ptr %0, i64 768
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %136)
  %142 = getelementptr inbounds i8, ptr %0, i64 720
  %143 = load i32, ptr %91, align 4, !tbaa !71
  %144 = shl nsw i32 %143, 1
  %145 = sext i32 %144 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %142, i64 noundef %145)
  %146 = getelementptr inbounds i8, ptr %0, i64 744
  %147 = load i32, ptr %91, align 4, !tbaa !71
  %148 = shl nsw i32 %147, 1
  %149 = sext i32 %148 to i64
  call void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %146, i64 noundef %149)
  %150 = getelementptr inbounds i8, ptr %0, i64 792
  %151 = load i32, ptr %26, align 8, !tbaa !9
  %152 = sext i32 %151 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %150, i64 noundef %152)
  %153 = getelementptr inbounds i8, ptr %0, i64 816
  %154 = load i32, ptr %26, align 8, !tbaa !9
  %155 = sext i32 %154 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %155)
  %156 = getelementptr inbounds i8, ptr %0, i64 840
  %157 = load i32, ptr %26, align 8, !tbaa !9
  %158 = sext i32 %157 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %156, i64 noundef %158)
  %159 = getelementptr inbounds i8, ptr %0, i64 864
  %160 = load i32, ptr %26, align 8, !tbaa !9
  %161 = sext i32 %160 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %159, i64 noundef %161)
  %162 = getelementptr inbounds i8, ptr %0, i64 888
  %163 = load i32, ptr %91, align 4, !tbaa !71
  %164 = shl nsw i32 %163, 1
  %165 = sext i32 %164 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %165)
  %166 = getelementptr inbounds i8, ptr %0, i64 936
  %167 = load i32, ptr %26, align 8, !tbaa !9
  %168 = sext i32 %167 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #6
  store i8 0, ptr %21, align 1, !tbaa !74
  call void @_ZNSt6vectorIcSaIcEE6assignEmRKc(ptr noundef nonnull align 8 dereferenceable(24) %166, i64 noundef %168, ptr noundef nonnull align 1 dereferenceable(1) %21)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  %169 = getelementptr inbounds i8, ptr %0, i64 912
  %170 = load i32, ptr %26, align 8, !tbaa !9
  %171 = sext i32 %170 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %169, i64 noundef %171)
  %172 = getelementptr inbounds i8, ptr %0, i64 960
  %173 = load i32, ptr %26, align 8, !tbaa !9
  %174 = sext i32 %173 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  store double 0.000000e+00, ptr %22, align 8, !tbaa !5
  call void @_ZNSt6vectorIdSaIdEE6assignEmRKd(ptr noundef nonnull align 8 dereferenceable(24) %172, i64 noundef %174, ptr noundef nonnull align 8 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  %175 = load i32, ptr %26, align 8, !tbaa !9
  %176 = load i32, ptr %28, align 8, !tbaa !42
  %177 = getelementptr inbounds i8, ptr %0, i64 984
  %178 = add nsw i32 %175, 1
  %179 = sext i32 %178 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  store i32 -1, ptr %23, align 4, !tbaa !66
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %179, ptr noundef nonnull align 4 dereferenceable(4) %23)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  %180 = getelementptr inbounds i8, ptr %0, i64 1008
  %181 = sext i32 %176 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %181)
  %182 = getelementptr inbounds i8, ptr %0, i64 1032
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %181)
  %183 = load i32, ptr %28, align 8, !tbaa !42
  %184 = load i32, ptr %26, align 8, !tbaa !9
  %185 = getelementptr inbounds i8, ptr %0, i64 1056
  %186 = add nsw i32 %183, 1
  %187 = sext i32 %186 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %187)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  store i32 -1, ptr %24, align 4, !tbaa !66
  call void @_ZNSt6vectorIiSaIiEE6assignEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %185, i64 noundef %187, ptr noundef nonnull align 4 dereferenceable(4) %24)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  %188 = getelementptr inbounds i8, ptr %0, i64 1080
  %189 = sext i32 %184 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef %189)
  %190 = getelementptr inbounds i8, ptr %0, i64 1104
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %189)
  %191 = getelementptr inbounds i8, ptr %0, i64 1128
  %192 = load i32, ptr %26, align 8, !tbaa !9
  %193 = sext i32 %192 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %191, i64 noundef %193)
  %194 = getelementptr inbounds i8, ptr %0, i64 1152
  %195 = load i32, ptr %26, align 8, !tbaa !9
  %196 = sext i32 %195 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef %196)
  %197 = getelementptr inbounds i8, ptr %0, i64 1176
  %198 = load i32, ptr %26, align 8, !tbaa !9
  %199 = add nsw i32 %198, 1
  %200 = sext i32 %199 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %197, i64 noundef %200)
  %201 = getelementptr inbounds i8, ptr %0, i64 1200
  %202 = load i32, ptr %91, align 4, !tbaa !71
  %203 = mul nsw i32 %202, 3
  %204 = sext i32 %203 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %204)
  %205 = getelementptr inbounds i8, ptr %0, i64 1224
  %206 = load i32, ptr %91, align 4, !tbaa !71
  %207 = mul nsw i32 %206, 3
  %208 = sext i32 %207 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %208)
  %209 = getelementptr inbounds i8, ptr %0, i64 1248
  %210 = load i32, ptr %26, align 8, !tbaa !9
  %211 = add nsw i32 %210, 1
  %212 = sext i32 %211 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %212)
  %213 = getelementptr inbounds i8, ptr %0, i64 1272
  %214 = load i32, ptr %91, align 4, !tbaa !71
  %215 = mul nsw i32 %214, 3
  %216 = sext i32 %215 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %216)
  %217 = getelementptr inbounds i8, ptr %0, i64 1296
  %218 = load i32, ptr %91, align 4, !tbaa !71
  %219 = mul nsw i32 %218, 3
  %220 = sext i32 %219 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %220)
  %221 = getelementptr inbounds i8, ptr %0, i64 1320
  %222 = load i32, ptr %26, align 8, !tbaa !9
  %223 = sext i32 %222 to i64
  call void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223)
  %224 = getelementptr inbounds i8, ptr %0, i64 1344
  %225 = load i32, ptr %26, align 8, !tbaa !9
  %226 = add nsw i32 %225, 1000
  %227 = sext i32 %226 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef %227)
  %228 = getelementptr inbounds i8, ptr %0, i64 1368
  %229 = load i32, ptr %26, align 8, !tbaa !9
  %230 = add nsw i32 %229, 1000
  %231 = sext i32 %230 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %228, i64 noundef %231)
  %232 = getelementptr inbounds i8, ptr %0, i64 1400
  %233 = load i32, ptr %26, align 8, !tbaa !9
  %234 = add nsw i32 %233, 1001
  %235 = sext i32 %234 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %235)
  %236 = getelementptr inbounds i8, ptr %0, i64 1424
  %237 = load i32, ptr %26, align 8, !tbaa !9
  %238 = add nsw i32 %237, 1000
  %239 = sext i32 %238 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %236, i64 noundef %239)
  %240 = getelementptr inbounds i8, ptr %0, i64 1448
  %241 = load i32, ptr %91, align 4, !tbaa !71
  %242 = mul nsw i32 %241, 3
  %243 = sext i32 %242 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %240, i64 noundef %243)
  %244 = getelementptr inbounds i8, ptr %0, i64 1472
  %245 = load i32, ptr %91, align 4, !tbaa !71
  %246 = mul nsw i32 %245, 3
  %247 = sext i32 %246 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %247)
  %248 = getelementptr inbounds i8, ptr %0, i64 1496
  %249 = load i32, ptr %26, align 8, !tbaa !9
  %250 = add nsw i32 %249, 1001
  %251 = sext i32 %250 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %251)
  %252 = getelementptr inbounds i8, ptr %0, i64 1520
  %253 = load i32, ptr %26, align 8, !tbaa !9
  %254 = add nsw i32 %253, 1000
  %255 = sext i32 %254 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %255)
  %256 = getelementptr inbounds i8, ptr %0, i64 1544
  %257 = load i32, ptr %26, align 8, !tbaa !9
  %258 = add nsw i32 %257, 1000
  %259 = sext i32 %258 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %256, i64 noundef %259)
  %260 = getelementptr inbounds i8, ptr %0, i64 1568
  %261 = load i32, ptr %91, align 4, !tbaa !71
  %262 = mul nsw i32 %261, 3
  %263 = sext i32 %262 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %260, i64 noundef %263)
  %264 = getelementptr inbounds i8, ptr %0, i64 1592
  %265 = load i32, ptr %91, align 4, !tbaa !71
  %266 = mul nsw i32 %265, 3
  %267 = sext i32 %266 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %264, i64 noundef %267)
  %268 = getelementptr inbounds i8, ptr %0, i64 1616
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %268, i64 noundef 1000)
  %269 = getelementptr inbounds i8, ptr %0, i64 1640
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef 1000)
  %270 = getelementptr inbounds i8, ptr %0, i64 1664
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %270, i64 noundef 2001)
  %271 = getelementptr inbounds i8, ptr %0, i64 1688
  %272 = load i32, ptr %91, align 4, !tbaa !71
  %273 = shl nsw i32 %272, 2
  %274 = sext i32 %273 to i64
  call void @_ZNSt6vectorIiSaIiEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %271, i64 noundef %274)
  %275 = getelementptr inbounds i8, ptr %0, i64 1712
  %276 = load i32, ptr %91, align 4, !tbaa !71
  %277 = shl nsw i32 %276, 2
  %278 = sext i32 %277 to i64
  call void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %278)
  %279 = getelementptr inbounds i8, ptr %0, i64 1736
  %280 = load i32, ptr %26, align 8, !tbaa !9
  call void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176) %279, i32 noundef %280)
  %281 = getelementptr inbounds i8, ptr %0, i64 1740
  store i32 -1, ptr %281, align 4, !tbaa !75
  ret void

.lr.ph51:                                         ; preds = %.lr.ph51.preheader, %.lr.ph51
  %indvars.iv54 = phi i64 [ %103, %.lr.ph51.preheader ], [ %indvars.iv.next55, %.lr.ph51 ]
  %.04548 = phi i32 [ 0, %.lr.ph51.preheader ], [ %290, %.lr.ph51 ]
  %282 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %indvars.iv54) #6
  %283 = load i32, ptr %282, align 4, !tbaa !66
  %284 = trunc nuw nsw i64 %indvars.iv54 to i32
  %285 = mul nsw i32 %283, %284
  %286 = load i32, ptr %91, align 4, !tbaa !71
  %287 = add nsw i32 %286, %285
  store i32 %287, ptr %91, align 4, !tbaa !71
  %288 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %indvars.iv54) #6
  %289 = load i32, ptr %288, align 4, !tbaa !66
  %290 = add nsw i32 %289, %.04548
  %indvars.iv.next55 = add nsw i64 %indvars.iv54, -1
  %291 = icmp ne i64 %indvars.iv54, 0
  %292 = icmp slt i32 %290, %98
  %293 = select i1 %291, i1 %292, i1 false
  br i1 %293, label %.lr.ph51, label %._crit_edge52, !llvm.loop !76
}

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN11HVectorBaseIdE5setupEi(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #5

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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { builtin allocsize(0) }

!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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 200}
!10 = !{!"_ZTS7HFactor", !6, i64 0, !6, i64 8, !11, i64 16, !12, i64 24, !12, i64 48, !12, i64 72, !17, i64 96, !11, i64 184, !11, i64 188, !11, i64 192, !11, i64 196, !11, i64 200, !11, i64 204, !11, i64 208, !6, i64 216, !18, i64 224, !16, i64 232, !16, i64 240, !16, i64 248, !16, i64 256, !6, i64 264, !6, i64 272, !11, i64 280, !6, i64 288, !23, i64 296, !29, i64 304, !18, i64 400, !18, i64 401, !11, i64 404, !11, i64 408, !16, i64 416, !11, i64 424, !12, i64 432, !32, i64 456, !12, i64 480, !12, i64 504, !12, i64 528, !32, i64 552, !12, i64 576, !12, i64 600, !12, i64 624, !12, i64 648, !12, i64 672, !12, i64 696, !12, i64 720, !32, i64 744, !32, i64 768, !12, i64 792, !12, i64 816, !12, i64 840, !12, i64 864, !12, i64 888, !12, i64 912, !36, i64 936, !32, i64 960, !12, i64 984, !12, i64 1008, !12, i64 1032, !12, i64 1056, !12, i64 1080, !12, i64 1104, !12, i64 1128, !12, i64 1152, !12, i64 1176, !12, i64 1200, !32, i64 1224, !12, i64 1248, !12, i64 1272, !32, i64 1296, !12, i64 1320, !12, i64 1344, !32, i64 1368, !11, i64 1392, !11, i64 1396, !12, i64 1400, !12, i64 1424, !12, i64 1448, !32, i64 1472, !12, i64 1496, !12, i64 1520, !12, i64 1544, !12, i64 1568, !32, i64 1592, !32, i64 1616, !12, i64 1640, !12, i64 1664, !12, i64 1688, !32, i64 1712, !40, i64 1736}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIiSaIiEE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"_ZTS12RefactorInfo", !18, i64 0, !12, i64 8, !12, i64 32, !19, i64 56, !6, i64 80}
!18 = !{!"bool", !7, i64 0}
!19 = !{!"_ZTSSt6vectorIaSaIaEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIaSaIaEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIaSaIaEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!23 = !{!"_ZTSSt10unique_ptrIN7HFactor7LogDataESt14default_deleteIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt15__uniq_ptr_dataIN7HFactor7LogDataESt14default_deleteIS1_ELb1ELb1EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_implIN7HFactor7LogDataESt14default_deleteIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt5tupleIJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !27, i64 0}
!27 = !{!"_ZTSSt11_Tuple_implILm0EJPN7HFactor7LogDataESt14default_deleteIS1_EEE", !28, i64 0}
!28 = !{!"_ZTSSt10_Head_baseILm0EPN7HFactor7LogDataELb0EE", !16, i64 0}
!29 = !{!"_ZTS15HighsLogOptions", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !30, i64 48, !16, i64 80, !18, i64 88}
!30 = !{!"_ZTSSt8functionIFviRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK20HighsCallbackDataOutP19HighsCallbackDataInPvEE", !31, i64 0, !16, i64 24}
!31 = !{!"_ZTSSt14_Function_base", !7, i64 0, !16, i64 16}
!32 = !{!"_ZTSSt6vectorIdSaIdEE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!36 = !{!"_ZTSSt6vectorIcSaIcEE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!40 = !{!"_ZTS11HVectorBaseIdE", !11, i64 0, !11, i64 4, !12, i64 8, !32, i64 32, !6, i64 56, !36, i64 64, !12, i64 88, !16, i64 112, !18, i64 120, !11, i64 124, !12, i64 128, !32, i64 152}
!41 = !{!10, !11, i64 204}
!42 = !{!10, !11, i64 208}
!43 = !{!10, !6, i64 216}
!44 = !{!10, !18, i64 224}
!45 = !{!10, !16, i64 232}
!46 = !{!10, !16, i64 240}
!47 = !{!10, !16, i64 248}
!48 = !{!10, !16, i64 256}
!49 = !{!10, !6, i64 264}
!50 = !{!10, !6, i64 272}
!51 = !{!10, !11, i64 280}
!52 = !{!10, !6, i64 288}
!53 = !{!10, !16, i64 312}
!54 = !{!10, !16, i64 320}
!55 = !{!10, !16, i64 328}
!56 = !{!57, !18, i64 0}
!57 = !{!"_ZTSN7HFactor7LogDataE", !18, i64 0, !18, i64 1, !11, i64 4}
!58 = !{!57, !18, i64 1}
!59 = !{!57, !11, i64 4}
!60 = !{!29, !16, i64 8}
!61 = !{!18, !18, i64 0}
!62 = !{i8 0, i8 2}
!63 = !{}
!64 = !{!29, !16, i64 16}
!65 = !{!29, !16, i64 24}
!66 = !{!11, !11, i64 0}
!67 = !{!29, !16, i64 0}
!68 = !{!10, !16, i64 304}
!69 = !{!10, !18, i64 400}
!70 = !{!10, !11, i64 408}
!71 = !{!10, !11, i64 404}
!72 = distinct !{!72, !73}
!73 = !{!"llvm.loop.mustprogress"}
!74 = !{!7, !7, i64 0}
!75 = !{!10, !11, i64 1740}
!76 = distinct !{!76, !73}


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