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

; 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::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator" = type { 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" }
%"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.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 }
%"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 }
%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 } }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7HFactor9updateCFTEP11HVectorBaseIdES2_Pi(ptr noundef nonnull align 8 dereferenceable(1912) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.std::vector.22", align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca double, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca double, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca double, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca double, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca double, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca double, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca i32, align 4
  %66 = alloca %"struct.std::pair", align 4
  %67 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %93 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  store i32 0, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %94, ptr %10, align 8, !tbaa !5
  br label %95

95:                                               ; preds = %102, %4
  %96 = load ptr, ptr %10, align 8, !tbaa !5
  %97 = icmp ne ptr %96, null
  br i1 %97, label %99, label %98

98:                                               ; preds = %95
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  br label %106

99:                                               ; preds = %95
  %100 = load i32, ptr %9, align 4, !tbaa !9
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr %9, align 4, !tbaa !9
  br label %102

102:                                              ; preds = %99
  %103 = load ptr, ptr %10, align 8, !tbaa !5
  %104 = getelementptr inbounds %class.HVectorBase, ptr %103, i32 0, i32 7
  %105 = load ptr, ptr %104, align 8, !tbaa !11
  store ptr %105, ptr %10, align 8, !tbaa !5
  br label %95, !llvm.loop !27

106:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %107 = load i32, ptr %9, align 4, !tbaa !9
  %108 = sext i32 %107 to i64
  %109 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %108, i64 8)
  %110 = extractvalue { i64, i1 } %109, 1
  %111 = extractvalue { i64, i1 } %109, 0
  %112 = select i1 %110, i64 -1, i64 %111
  %113 = call noalias noundef nonnull ptr @_Znam(i64 noundef %112) #8
  store ptr %113, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %114 = load i32, ptr %9, align 4, !tbaa !9
  %115 = sext i32 %114 to i64
  %116 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %115, i64 8)
  %117 = extractvalue { i64, i1 } %116, 1
  %118 = extractvalue { i64, i1 } %116, 0
  %119 = select i1 %117, i64 -1, i64 %118
  %120 = call noalias noundef nonnull ptr @_Znam(i64 noundef %119) #8
  store ptr %120, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %121

121:                                              ; preds = %143, %106
  %122 = load i32, ptr %13, align 4, !tbaa !9
  %123 = load i32, ptr %9, align 4, !tbaa !9
  %124 = icmp slt i32 %122, %123
  br i1 %124, label %126, label %125

125:                                              ; preds = %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %146

126:                                              ; preds = %121
  %127 = load ptr, ptr %6, align 8, !tbaa !5
  %128 = load ptr, ptr %11, align 8, !tbaa !5
  %129 = load i32, ptr %13, align 4, !tbaa !9
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds ptr, ptr %128, i64 %130
  store ptr %127, ptr %131, align 8, !tbaa !5
  %132 = load ptr, ptr %7, align 8, !tbaa !5
  %133 = load ptr, ptr %12, align 8, !tbaa !5
  %134 = load i32, ptr %13, align 4, !tbaa !9
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds ptr, ptr %133, i64 %135
  store ptr %132, ptr %136, align 8, !tbaa !5
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = getelementptr inbounds %class.HVectorBase, ptr %137, i32 0, i32 7
  %139 = load ptr, ptr %138, align 8, !tbaa !11
  store ptr %139, ptr %6, align 8, !tbaa !5
  %140 = load ptr, ptr %7, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.HVectorBase, ptr %140, i32 0, i32 7
  %142 = load ptr, ptr %141, align 8, !tbaa !11
  store ptr %142, ptr %7, align 8, !tbaa !5
  br label %143

143:                                              ; preds = %126
  %144 = load i32, ptr %13, align 4, !tbaa !9
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr %13, align 4, !tbaa !9
  br label %121, !llvm.loop !29

146:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %147 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 84
  %148 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %147) #7
  %149 = trunc i64 %148 to i32
  store i32 %149, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %150 = load i32, ptr %9, align 4, !tbaa !9
  %151 = sext i32 %150 to i64
  %152 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %151, i64 4)
  %153 = extractvalue { i64, i1 } %152, 1
  %154 = extractvalue { i64, i1 } %152, 0
  %155 = select i1 %153, i64 -1, i64 %154
  %156 = call noalias noundef nonnull ptr @_Znam(i64 noundef %155) #8
  store ptr %156, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %157 = load i32, ptr %9, align 4, !tbaa !9
  %158 = sext i32 %157 to i64
  %159 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %158, i64 8)
  %160 = extractvalue { i64, i1 } %159, 1
  %161 = extractvalue { i64, i1 } %159, 0
  %162 = select i1 %160, i64 -1, i64 %161
  %163 = call noalias noundef nonnull ptr @_Znam(i64 noundef %162) #8
  store ptr %163, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %164 = load i32, ptr %9, align 4, !tbaa !9
  %165 = sext i32 %164 to i64
  %166 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %165, i64 8)
  %167 = extractvalue { i64, i1 } %166, 1
  %168 = extractvalue { i64, i1 } %166, 0
  %169 = select i1 %167, i64 -1, i64 %168
  %170 = call noalias noundef nonnull ptr @_Znam(i64 noundef %169) #8
  store ptr %170, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %171

171:                                              ; preds = %215, %146
  %172 = load i32, ptr %18, align 4, !tbaa !9
  %173 = load i32, ptr %9, align 4, !tbaa !9
  %174 = icmp slt i32 %172, %173
  br i1 %174, label %176, label %175

175:                                              ; preds = %171
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %218

176:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %177 = load ptr, ptr %8, align 8, !tbaa !5
  %178 = load i32, ptr %18, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds i32, ptr %177, i64 %179
  %181 = load i32, ptr %180, align 4, !tbaa !9
  store i32 %181, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %182 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 69
  %183 = load i32, ptr %19, align 4, !tbaa !9
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %184) #7
  %186 = load i32, ptr %185, align 4, !tbaa !9
  store i32 %186, ptr %20, align 4, !tbaa !9
  %187 = load i32, ptr %20, align 4, !tbaa !9
  %188 = load ptr, ptr %15, align 8, !tbaa !5
  %189 = load i32, ptr %18, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds i32, ptr %188, i64 %190
  store i32 %187, ptr %191, align 4, !tbaa !9
  %192 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 71
  %193 = load i32, ptr %20, align 4, !tbaa !9
  %194 = sext i32 %193 to i64
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef %194) #7
  %196 = load double, ptr %195, align 8, !tbaa !30
  %197 = load ptr, ptr %16, align 8, !tbaa !5
  %198 = load i32, ptr %18, align 4, !tbaa !9
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds double, ptr %197, i64 %199
  store double %196, ptr %200, align 8, !tbaa !30
  %201 = load ptr, ptr %11, align 8, !tbaa !5
  %202 = load i32, ptr %18, align 4, !tbaa !9
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds ptr, ptr %201, i64 %203
  %205 = load ptr, ptr %204, align 8, !tbaa !5
  %206 = getelementptr inbounds %class.HVectorBase, ptr %205, i32 0, i32 3
  %207 = load i32, ptr %19, align 4, !tbaa !9
  %208 = sext i32 %207 to i64
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %208) #7
  %210 = load double, ptr %209, align 8, !tbaa !30
  %211 = load ptr, ptr %17, align 8, !tbaa !5
  %212 = load i32, ptr %18, align 4, !tbaa !9
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds double, ptr %211, i64 %213
  store double %210, ptr %214, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %215

215:                                              ; preds = %176
  %216 = load i32, ptr %18, align 4, !tbaa !9
  %217 = add nsw i32 %216, 1
  store i32 %217, ptr %18, align 4, !tbaa !9
  br label %171, !llvm.loop !31

218:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %219 = load i32, ptr %9, align 4, !tbaa !9
  %220 = add nsw i32 %219, 1
  %221 = sext i32 %220 to i64
  %222 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %221, i64 4)
  %223 = extractvalue { i64, i1 } %222, 1
  %224 = extractvalue { i64, i1 } %222, 0
  %225 = select i1 %223, i64 -1, i64 %224
  %226 = call noalias noundef nonnull ptr @_Znam(i64 noundef %225) #8
  store ptr %226, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %227 = load i32, ptr %9, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %228, i64 8)
  %230 = extractvalue { i64, i1 } %229, 1
  %231 = extractvalue { i64, i1 } %229, 0
  %232 = select i1 %230, i64 -1, i64 %231
  %233 = call noalias noundef nonnull ptr @_Znam(i64 noundef %232) #8
  store ptr %233, ptr %22, align 8, !tbaa !5
  %234 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %235 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #7
  %236 = trunc i64 %235 to i32
  %237 = load ptr, ptr %21, align 8, !tbaa !5
  %238 = getelementptr inbounds i32, ptr %237, i64 0
  store i32 %236, ptr %238, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #7
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 0, ptr %24, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %809, %218
  %240 = load i32, ptr %24, align 4, !tbaa !9
  %241 = load i32, ptr %9, align 4, !tbaa !9
  %242 = icmp slt i32 %240, %241
  br i1 %242, label %244, label %243

243:                                              ; preds = %239
  store i32 11, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %827

244:                                              ; preds = %239
  %245 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %245) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 0, ptr %26, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %285, %244
  %247 = load i32, ptr %26, align 4, !tbaa !9
  %248 = load ptr, ptr %11, align 8, !tbaa !5
  %249 = load i32, ptr %24, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds ptr, ptr %248, i64 %250
  %252 = load ptr, ptr %251, align 8, !tbaa !5
  %253 = getelementptr inbounds %class.HVectorBase, ptr %252, i32 0, i32 9
  %254 = load i32, ptr %253, align 4, !tbaa !32
  %255 = icmp slt i32 %247, %254
  br i1 %255, label %257, label %256

256:                                              ; preds = %246
  store i32 14, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %292

257:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %258 = load ptr, ptr %11, align 8, !tbaa !5
  %259 = load i32, ptr %24, align 4, !tbaa !9
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds ptr, ptr %258, i64 %260
  %262 = load ptr, ptr %261, align 8, !tbaa !5
  %263 = getelementptr inbounds %class.HVectorBase, ptr %262, i32 0, i32 10
  %264 = load i32, ptr %26, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %263, i64 noundef %265) #7
  %267 = load i32, ptr %266, align 4, !tbaa !9
  store i32 %267, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %268 = load ptr, ptr %11, align 8, !tbaa !5
  %269 = load i32, ptr %24, align 4, !tbaa !9
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds ptr, ptr %268, i64 %270
  %272 = load ptr, ptr %271, align 8, !tbaa !5
  %273 = getelementptr inbounds %class.HVectorBase, ptr %272, i32 0, i32 11
  %274 = load i32, ptr %26, align 4, !tbaa !9
  %275 = sext i32 %274 to i64
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %275) #7
  %277 = load double, ptr %276, align 8, !tbaa !30
  store double %277, ptr %28, align 8, !tbaa !30
  %278 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %278, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %279 unwind label %288

279:                                              ; preds = %257
  %280 = load double, ptr %28, align 8, !tbaa !30
  %281 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %282 = load i32, ptr %27, align 4, !tbaa !9
  %283 = sext i32 %282 to i64
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %281, i64 noundef %283) #7
  store double %280, ptr %284, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %285

285:                                              ; preds = %279
  %286 = load i32, ptr %26, align 4, !tbaa !9
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %26, align 4, !tbaa !9
  br label %246, !llvm.loop !33

288:                                              ; preds = %257
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %29, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %826

292:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %356, %292
  %294 = load i32, ptr %31, align 4, !tbaa !9
  %295 = load i32, ptr %24, align 4, !tbaa !9
  %296 = icmp slt i32 %294, %295
  br i1 %296, label %298, label %297

297:                                              ; preds = %293
  store i32 17, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %363

298:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %299 = load ptr, ptr %8, align 8, !tbaa !5
  %300 = load i32, ptr %31, align 4, !tbaa !9
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds i32, ptr %299, i64 %301
  %303 = load i32, ptr %302, align 4, !tbaa !9
  store i32 %303, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %304 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %305 = load i32, ptr %32, align 4, !tbaa !9
  %306 = sext i32 %305 to i64
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %304, i64 noundef %306) #7
  %308 = load double, ptr %307, align 8, !tbaa !30
  store double %308, ptr %33, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %309 = load i32, ptr %31, align 4, !tbaa !9
  %310 = load i32, ptr %14, align 4, !tbaa !9
  %311 = add nsw i32 %309, %310
  store i32 %311, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %312 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 85
  %313 = load i32, ptr %34, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef %314) #7
  %316 = load i32, ptr %315, align 4, !tbaa !9
  store i32 %316, ptr %35, align 4, !tbaa !9
  br label %317

317:                                              ; preds = %345, %298
  %318 = load i32, ptr %35, align 4, !tbaa !9
  %319 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 85
  %320 = load i32, ptr %34, align 4, !tbaa !9
  %321 = add nsw i32 %320, 1
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %319, i64 noundef %322) #7
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = icmp slt i32 %318, %324
  br i1 %325, label %327, label %326

326:                                              ; preds = %317
  store i32 20, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %348

327:                                              ; preds = %317
  %328 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %329 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 86
  %330 = load i32, ptr %35, align 4, !tbaa !9
  %331 = sext i32 %330 to i64
  %332 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %329, i64 noundef %331) #7
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = sext i32 %333 to i64
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %334) #7
  %336 = load double, ptr %335, align 8, !tbaa !30
  %337 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 87
  %338 = load i32, ptr %35, align 4, !tbaa !9
  %339 = sext i32 %338 to i64
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef %339) #7
  %341 = load double, ptr %340, align 8, !tbaa !30
  %342 = load double, ptr %33, align 8, !tbaa !30
  %343 = fneg double %336
  %344 = call double @llvm.fmuladd.f64(double %343, double %341, double %342)
  store double %344, ptr %33, align 8, !tbaa !30
  br label %345

345:                                              ; preds = %327
  %346 = load i32, ptr %35, align 4, !tbaa !9
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr %35, align 4, !tbaa !9
  br label %317, !llvm.loop !34

348:                                              ; preds = %326
  %349 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %350 unwind label %359

350:                                              ; preds = %348
  %351 = load double, ptr %33, align 8, !tbaa !30
  %352 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %353 = load i32, ptr %32, align 4, !tbaa !9
  %354 = sext i32 %353 to i64
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %352, i64 noundef %354) #7
  store double %351, ptr %355, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %356

356:                                              ; preds = %350
  %357 = load i32, ptr %31, align 4, !tbaa !9
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr %31, align 4, !tbaa !9
  br label %293, !llvm.loop !35

359:                                              ; preds = %348
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %29, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %826

363:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %364 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %365 = load ptr, ptr %8, align 8, !tbaa !5
  %366 = load i32, ptr %24, align 4, !tbaa !9
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds i32, ptr %365, i64 %367
  %369 = load i32, ptr %368, align 4, !tbaa !9
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %364, i64 noundef %370) #7
  %372 = load double, ptr %371, align 8, !tbaa !30
  store double %372, ptr %36, align 8, !tbaa !30
  %373 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %374 = load ptr, ptr %8, align 8, !tbaa !5
  %375 = load i32, ptr %24, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds i32, ptr %374, i64 %376
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %373, i64 noundef %379) #7
  store double 0.000000e+00, ptr %380, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %381 = load ptr, ptr %21, align 8, !tbaa !5
  %382 = load i32, ptr %24, align 4, !tbaa !9
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds i32, ptr %381, i64 %383
  %385 = load i32, ptr %384, align 4, !tbaa !9
  store i32 %385, ptr %37, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %386 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %386, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 0, ptr %39, align 4, !tbaa !9
  br label %387

387:                                              ; preds = %422, %363
  %388 = load i32, ptr %39, align 4, !tbaa !9
  %389 = zext i32 %388 to i64
  %390 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  %391 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %390) #7
  %392 = icmp ult i64 %389, %391
  br i1 %392, label %394, label %393

393:                                              ; preds = %387
  store i32 23, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %425

394:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %395 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  %396 = load i32, ptr %39, align 4, !tbaa !9
  %397 = zext i32 %396 to i64
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %395, i64 noundef %397) #7
  %399 = load i32, ptr %398, align 4, !tbaa !9
  store i32 %399, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %400 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %401 = load i32, ptr %40, align 4, !tbaa !9
  %402 = sext i32 %401 to i64
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %400, i64 noundef %402) #7
  %404 = load double, ptr %403, align 8, !tbaa !30
  store double %404, ptr %41, align 8, !tbaa !30
  %405 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %406 = load i32, ptr %40, align 4, !tbaa !9
  %407 = sext i32 %406 to i64
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %405, i64 noundef %407) #7
  store double 0.000000e+00, ptr %408, align 8, !tbaa !30
  %409 = load double, ptr %41, align 8, !tbaa !30
  %410 = call double @llvm.fabs.f64(double %409)
  %411 = fcmp ogt double %410, 0x3D06849B86A12B9B
  br i1 %411, label %412, label %421

412:                                              ; preds = %394
  %413 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %413, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %414 unwind label %417

414:                                              ; preds = %412
  %415 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %415, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %416 unwind label %417

416:                                              ; preds = %414
  br label %421

417:                                              ; preds = %414, %412
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %29, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %825

421:                                              ; preds = %416, %394
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %422

422:                                              ; preds = %421
  %423 = load i32, ptr %39, align 4, !tbaa !9
  %424 = add i32 %423, 1
  store i32 %424, ptr %39, align 4, !tbaa !9
  br label %387, !llvm.loop !36

425:                                              ; preds = %393
  %426 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %427 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #7
  %428 = trunc i64 %427 to i32
  store i32 %428, ptr %37, align 4, !tbaa !9
  %429 = load i32, ptr %37, align 4, !tbaa !9
  %430 = load ptr, ptr %21, align 8, !tbaa !5
  %431 = load i32, ptr %24, align 4, !tbaa !9
  %432 = add nsw i32 %431, 1
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds i32, ptr %430, i64 %433
  store i32 %429, ptr %434, align 4, !tbaa !9
  %435 = load ptr, ptr %16, align 8, !tbaa !5
  %436 = load i32, ptr %24, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds double, ptr %435, i64 %437
  %439 = load double, ptr %438, align 8, !tbaa !30
  %440 = load ptr, ptr %17, align 8, !tbaa !5
  %441 = load i32, ptr %24, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds double, ptr %440, i64 %442
  %444 = load double, ptr %443, align 8, !tbaa !30
  %445 = fmul double %439, %444
  %446 = load ptr, ptr %22, align 8, !tbaa !5
  %447 = load i32, ptr %24, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds double, ptr %446, i64 %448
  store double %445, ptr %449, align 8, !tbaa !30
  %450 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %450) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 0, ptr %42, align 4, !tbaa !9
  br label %451

451:                                              ; preds = %490, %425
  %452 = load i32, ptr %42, align 4, !tbaa !9
  %453 = load ptr, ptr %12, align 8, !tbaa !5
  %454 = load i32, ptr %24, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds ptr, ptr %453, i64 %455
  %457 = load ptr, ptr %456, align 8, !tbaa !5
  %458 = getelementptr inbounds %class.HVectorBase, ptr %457, i32 0, i32 9
  %459 = load i32, ptr %458, align 4, !tbaa !32
  %460 = icmp slt i32 %452, %459
  br i1 %460, label %462, label %461

461:                                              ; preds = %451
  store i32 26, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %497

462:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %463 = load ptr, ptr %12, align 8, !tbaa !5
  %464 = load i32, ptr %24, align 4, !tbaa !9
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds ptr, ptr %463, i64 %465
  %467 = load ptr, ptr %466, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.HVectorBase, ptr %467, i32 0, i32 10
  %469 = load i32, ptr %42, align 4, !tbaa !9
  %470 = sext i32 %469 to i64
  %471 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %470) #7
  %472 = load i32, ptr %471, align 4, !tbaa !9
  store i32 %472, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %473 = load ptr, ptr %12, align 8, !tbaa !5
  %474 = load i32, ptr %24, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds ptr, ptr %473, i64 %475
  %477 = load ptr, ptr %476, align 8, !tbaa !5
  %478 = getelementptr inbounds %class.HVectorBase, ptr %477, i32 0, i32 11
  %479 = load i32, ptr %42, align 4, !tbaa !9
  %480 = sext i32 %479 to i64
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %478, i64 noundef %480) #7
  %482 = load double, ptr %481, align 8, !tbaa !30
  store double %482, ptr %44, align 8, !tbaa !30
  %483 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %483, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %484 unwind label %493

484:                                              ; preds = %462
  %485 = load double, ptr %44, align 8, !tbaa !30
  %486 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %487 = load i32, ptr %43, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %486, i64 noundef %488) #7
  store double %485, ptr %489, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %490

490:                                              ; preds = %484
  %491 = load i32, ptr %42, align 4, !tbaa !9
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr %42, align 4, !tbaa !9
  br label %451, !llvm.loop !37

493:                                              ; preds = %462
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %29, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %825

497:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 0, ptr %45, align 4, !tbaa !9
  br label %498

498:                                              ; preds = %589, %497
  %499 = load i32, ptr %45, align 4, !tbaa !9
  %500 = load i32, ptr %24, align 4, !tbaa !9
  %501 = icmp slt i32 %499, %500
  br i1 %501, label %503, label %502

502:                                              ; preds = %498
  store i32 29, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %592

503:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %504 = load i32, ptr %45, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %505) #7
  %507 = getelementptr inbounds %"struct.std::pair", ptr %506, i32 0, i32 1
  %508 = load i32, ptr %507, align 4, !tbaa !38
  store i32 %508, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  %509 = load ptr, ptr %8, align 8, !tbaa !5
  %510 = load i32, ptr %46, align 4, !tbaa !9
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds i32, ptr %509, i64 %511
  %513 = load i32, ptr %512, align 4, !tbaa !9
  store i32 %513, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %514 = load ptr, ptr %16, align 8, !tbaa !5
  %515 = load i32, ptr %46, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds double, ptr %514, i64 %516
  %518 = load double, ptr %517, align 8, !tbaa !30
  %519 = fneg double %518
  %520 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %521 = load i32, ptr %47, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %520, i64 noundef %522) #7
  %524 = load double, ptr %523, align 8, !tbaa !30
  %525 = fmul double %519, %524
  store double %525, ptr %48, align 8, !tbaa !30
  %526 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %527 = load i32, ptr %47, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %526, i64 noundef %528) #7
  %530 = load double, ptr %529, align 8, !tbaa !30
  %531 = call double @llvm.fabs.f64(double %530)
  %532 = fcmp ogt double %531, 0x3D06849B86A12B9B
  br i1 %532, label %533, label %584

533:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  store i32 0, ptr %49, align 4, !tbaa !9
  br label %534

534:                                              ; preds = %576, %533
  %535 = load i32, ptr %49, align 4, !tbaa !9
  %536 = load ptr, ptr %12, align 8, !tbaa !5
  %537 = load i32, ptr %46, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds ptr, ptr %536, i64 %538
  %540 = load ptr, ptr %539, align 8, !tbaa !5
  %541 = getelementptr inbounds %class.HVectorBase, ptr %540, i32 0, i32 9
  %542 = load i32, ptr %541, align 4, !tbaa !32
  %543 = icmp slt i32 %535, %542
  br i1 %543, label %545, label %544

544:                                              ; preds = %534
  store i32 32, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %583

545:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %546 = load ptr, ptr %12, align 8, !tbaa !5
  %547 = load i32, ptr %46, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds ptr, ptr %546, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !5
  %551 = getelementptr inbounds %class.HVectorBase, ptr %550, i32 0, i32 10
  %552 = load i32, ptr %49, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %551, i64 noundef %553) #7
  %555 = load i32, ptr %554, align 4, !tbaa !9
  store i32 %555, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %556 = load ptr, ptr %12, align 8, !tbaa !5
  %557 = load i32, ptr %46, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds ptr, ptr %556, i64 %558
  %560 = load ptr, ptr %559, align 8, !tbaa !5
  %561 = getelementptr inbounds %class.HVectorBase, ptr %560, i32 0, i32 11
  %562 = load i32, ptr %49, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %561, i64 noundef %563) #7
  %565 = load double, ptr %564, align 8, !tbaa !30
  store double %565, ptr %51, align 8, !tbaa !30
  %566 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %566, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %567 unwind label %579

567:                                              ; preds = %545
  %568 = load double, ptr %51, align 8, !tbaa !30
  %569 = load double, ptr %48, align 8, !tbaa !30
  %570 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %571 = load i32, ptr %50, align 4, !tbaa !9
  %572 = sext i32 %571 to i64
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %572) #7
  %574 = load double, ptr %573, align 8, !tbaa !30
  %575 = call double @llvm.fmuladd.f64(double %568, double %569, double %574)
  store double %575, ptr %573, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %576

576:                                              ; preds = %567
  %577 = load i32, ptr %49, align 4, !tbaa !9
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %49, align 4, !tbaa !9
  br label %534, !llvm.loop !40

579:                                              ; preds = %545
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %29, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %825

583:                                              ; preds = %544
  br label %584

584:                                              ; preds = %583, %503
  %585 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %586 = load i32, ptr %47, align 4, !tbaa !9
  %587 = sext i32 %586 to i64
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %585, i64 noundef %587) #7
  store double 0.000000e+00, ptr %588, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %589

589:                                              ; preds = %584
  %590 = load i32, ptr %45, align 4, !tbaa !9
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr %45, align 4, !tbaa !9
  br label %498, !llvm.loop !41

592:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  store i32 0, ptr %52, align 4, !tbaa !9
  br label %593

593:                                              ; preds = %660, %592
  %594 = load i32, ptr %52, align 4, !tbaa !9
  %595 = load i32, ptr %24, align 4, !tbaa !9
  %596 = icmp slt i32 %594, %595
  br i1 %596, label %598, label %597

597:                                              ; preds = %593
  store i32 35, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %667

598:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  %599 = load ptr, ptr %8, align 8, !tbaa !5
  %600 = load i32, ptr %52, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds i32, ptr %599, i64 %601
  %603 = load i32, ptr %602, align 4, !tbaa !9
  store i32 %603, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %604 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %605 = load i32, ptr %53, align 4, !tbaa !9
  %606 = sext i32 %605 to i64
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %604, i64 noundef %606) #7
  %608 = load double, ptr %607, align 8, !tbaa !30
  store double %608, ptr %54, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %609 = load ptr, ptr %21, align 8, !tbaa !5
  %610 = load i32, ptr %52, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds i32, ptr %609, i64 %611
  %613 = load i32, ptr %612, align 4, !tbaa !9
  store i32 %613, ptr %55, align 4, !tbaa !9
  br label %614

614:                                              ; preds = %642, %598
  %615 = load i32, ptr %55, align 4, !tbaa !9
  %616 = load ptr, ptr %21, align 8, !tbaa !5
  %617 = load i32, ptr %52, align 4, !tbaa !9
  %618 = add nsw i32 %617, 1
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds i32, ptr %616, i64 %619
  %621 = load i32, ptr %620, align 4, !tbaa !9
  %622 = icmp slt i32 %615, %621
  br i1 %622, label %624, label %623

623:                                              ; preds = %614
  store i32 38, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %645

624:                                              ; preds = %614
  %625 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %626 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %627 = load i32, ptr %55, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %626, i64 noundef %628) #7
  %630 = load i32, ptr %629, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %625, i64 noundef %631) #7
  %633 = load double, ptr %632, align 8, !tbaa !30
  %634 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  %635 = load i32, ptr %55, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef %636) #7
  %638 = load double, ptr %637, align 8, !tbaa !30
  %639 = load double, ptr %54, align 8, !tbaa !30
  %640 = fneg double %633
  %641 = call double @llvm.fmuladd.f64(double %640, double %638, double %639)
  store double %641, ptr %54, align 8, !tbaa !30
  br label %642

642:                                              ; preds = %624
  %643 = load i32, ptr %55, align 4, !tbaa !9
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %55, align 4, !tbaa !9
  br label %614, !llvm.loop !42

645:                                              ; preds = %623
  %646 = load ptr, ptr %22, align 8, !tbaa !5
  %647 = load i32, ptr %52, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds double, ptr %646, i64 %648
  %650 = load double, ptr %649, align 8, !tbaa !30
  %651 = load double, ptr %54, align 8, !tbaa !30
  %652 = fdiv double %651, %650
  store double %652, ptr %54, align 8, !tbaa !30
  %653 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %653, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %654 unwind label %663

654:                                              ; preds = %645
  %655 = load double, ptr %54, align 8, !tbaa !30
  %656 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %657 = load i32, ptr %53, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %656, i64 noundef %658) #7
  store double %655, ptr %659, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %660

660:                                              ; preds = %654
  %661 = load i32, ptr %52, align 4, !tbaa !9
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr %52, align 4, !tbaa !9
  br label %593, !llvm.loop !43

663:                                              ; preds = %645
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %29, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %825

667:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  store double 0.000000e+00, ptr %56, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  %668 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %668, ptr %57, align 4, !tbaa !9
  br label %669

669:                                              ; preds = %693, %667
  %670 = load i32, ptr %57, align 4, !tbaa !9
  %671 = load i32, ptr %37, align 4, !tbaa !9
  %672 = icmp slt i32 %670, %671
  br i1 %672, label %674, label %673

673:                                              ; preds = %669
  store i32 41, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %696

674:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #7
  %675 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %676 = load i32, ptr %57, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef %677) #7
  %679 = load i32, ptr %678, align 4, !tbaa !9
  store i32 %679, ptr %58, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %680 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  %681 = load i32, ptr %57, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %680, i64 noundef %682) #7
  %684 = load double, ptr %683, align 8, !tbaa !30
  store double %684, ptr %59, align 8, !tbaa !30
  %685 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %686 = load i32, ptr %58, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %685, i64 noundef %687) #7
  %689 = load double, ptr %688, align 8, !tbaa !30
  %690 = load double, ptr %59, align 8, !tbaa !30
  %691 = load double, ptr %56, align 8, !tbaa !30
  %692 = call double @llvm.fmuladd.f64(double %689, double %690, double %691)
  store double %692, ptr %56, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  br label %693

693:                                              ; preds = %674
  %694 = load i32, ptr %57, align 4, !tbaa !9
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %57, align 4, !tbaa !9
  br label %669, !llvm.loop !44

696:                                              ; preds = %673
  %697 = load double, ptr %36, align 8, !tbaa !30
  %698 = load double, ptr %56, align 8, !tbaa !30
  %699 = load ptr, ptr %16, align 8, !tbaa !5
  %700 = load i32, ptr %24, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds double, ptr %699, i64 %701
  %703 = load double, ptr %702, align 8, !tbaa !30
  %704 = call double @llvm.fmuladd.f64(double %698, double %703, double %697)
  %705 = load ptr, ptr %22, align 8, !tbaa !5
  %706 = load i32, ptr %24, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds double, ptr %705, i64 %707
  store double %704, ptr %708, align 8, !tbaa !30
  %709 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %710 = load ptr, ptr %8, align 8, !tbaa !5
  %711 = load i32, ptr %24, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds i32, ptr %710, i64 %712
  %714 = load i32, ptr %713, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %709, i64 noundef %715) #7
  store double 0.000000e+00, ptr %716, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %717 = load ptr, ptr %16, align 8, !tbaa !5
  %718 = load i32, ptr %24, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds double, ptr %717, i64 %719
  %721 = load double, ptr %720, align 8, !tbaa !30
  %722 = fneg double %721
  store double %722, ptr %60, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 0, ptr %61, align 4, !tbaa !9
  br label %723

723:                                              ; preds = %765, %696
  %724 = load i32, ptr %61, align 4, !tbaa !9
  %725 = zext i32 %724 to i64
  %726 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  %727 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %726) #7
  %728 = icmp ult i64 %725, %727
  br i1 %728, label %730, label %729

729:                                              ; preds = %723
  store i32 44, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %769

730:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  %731 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 32
  %732 = load i32, ptr %61, align 4, !tbaa !9
  %733 = zext i32 %732 to i64
  %734 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %731, i64 noundef %733) #7
  %735 = load i32, ptr %734, align 4, !tbaa !9
  store i32 %735, ptr %62, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %736 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %737 = load i32, ptr %62, align 4, !tbaa !9
  %738 = sext i32 %737 to i64
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %736, i64 noundef %738) #7
  %740 = load double, ptr %739, align 8, !tbaa !30
  store double %740, ptr %63, align 8, !tbaa !30
  %741 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 33
  %742 = load i32, ptr %62, align 4, !tbaa !9
  %743 = sext i32 %742 to i64
  %744 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %741, i64 noundef %743) #7
  store double 0.000000e+00, ptr %744, align 8, !tbaa !30
  %745 = load double, ptr %63, align 8, !tbaa !30
  %746 = call double @llvm.fabs.f64(double %745)
  %747 = fcmp ogt double %746, 0x3D06849B86A12B9B
  br i1 %747, label %748, label %764

748:                                              ; preds = %730
  %749 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 86
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %749, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %750 unwind label %756

750:                                              ; preds = %748
  %751 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 87
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %752 = load double, ptr %63, align 8, !tbaa !30
  %753 = load double, ptr %60, align 8, !tbaa !30
  %754 = fmul double %752, %753
  store double %754, ptr %64, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %751, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %755 unwind label %760

755:                                              ; preds = %750
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %764

756:                                              ; preds = %748
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %29, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %30, align 4
  br label %768

760:                                              ; preds = %750
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %29, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  br label %768

764:                                              ; preds = %755, %730
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %765

765:                                              ; preds = %764
  %766 = load i32, ptr %61, align 4, !tbaa !9
  %767 = add i32 %766, 1
  store i32 %767, ptr %61, align 4, !tbaa !9
  br label %723, !llvm.loop !45

768:                                              ; preds = %760, %756
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %824

769:                                              ; preds = %729
  %770 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 84
  %771 = load ptr, ptr %8, align 8, !tbaa !5
  %772 = load i32, ptr %24, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds i32, ptr %771, i64 %773
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %770, ptr noundef nonnull align 4 dereferenceable(4) %774)
          to label %775 unwind label %812

775:                                              ; preds = %769
  %776 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 86
  %777 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %776) #7
  %778 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 85
  %779 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %778) #7
  %780 = load i32, ptr %779, align 4, !tbaa !9
  %781 = sext i32 %780 to i64
  %782 = sub i64 %777, %781
  %783 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 73
  %784 = load i32, ptr %783, align 4, !tbaa !46
  %785 = sext i32 %784 to i64
  %786 = add i64 %785, %782
  %787 = trunc i64 %786 to i32
  store i32 %787, ptr %783, align 4, !tbaa !46
  %788 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 85
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  %789 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 86
  %790 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %789) #7
  %791 = trunc i64 %790 to i32
  store i32 %791, ptr %65, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %788, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %792 unwind label %816

792:                                              ; preds = %775
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %793 = load ptr, ptr %15, align 8, !tbaa !5
  %794 = load i32, ptr %24, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds i32, ptr %793, i64 %795
  %797 = invoke i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %796, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %798 unwind label %820

798:                                              ; preds = %792
  store i64 %797, ptr %66, align 4
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 4 dereferenceable(8) %66)
          to label %799 unwind label %820

799:                                              ; preds = %798
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  %800 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  %801 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %67, i32 0, i32 0
  store ptr %800, ptr %801, align 8
  %802 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  %803 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %68, i32 0, i32 0
  store ptr %802, ptr %803, align 8
  %804 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %67, i32 0, i32 0
  %805 = load ptr, ptr %804, align 8
  %806 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %68, i32 0, i32 0
  %807 = load ptr, ptr %806, align 8
  invoke void @_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %805, ptr %807)
          to label %808 unwind label %812

808:                                              ; preds = %799
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #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 8, ptr %36) #7
  br label %809

809:                                              ; preds = %808
  %810 = load i32, ptr %24, align 4, !tbaa !9
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %24, align 4, !tbaa !9
  br label %239, !llvm.loop !62

812:                                              ; preds = %799, %769
  %813 = landingpad { ptr, i32 }
          cleanup
  %814 = extractvalue { ptr, i32 } %813, 0
  store ptr %814, ptr %29, align 8
  %815 = extractvalue { ptr, i32 } %813, 1
  store i32 %815, ptr %30, align 4
  br label %824

816:                                              ; preds = %775
  %817 = landingpad { ptr, i32 }
          cleanup
  %818 = extractvalue { ptr, i32 } %817, 0
  store ptr %818, ptr %29, align 8
  %819 = extractvalue { ptr, i32 } %817, 1
  store i32 %819, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %824

820:                                              ; preds = %798, %792
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %29, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  br label %824

824:                                              ; preds = %820, %816, %812, %768
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %825

825:                                              ; preds = %824, %663, %579, %493, %417
  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 8, ptr %36) #7
  br label %826

826:                                              ; preds = %825, %359, %288
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1286

827:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %828

828:                                              ; preds = %1245, %827
  %829 = load i32, ptr %69, align 4, !tbaa !9
  %830 = load i32, ptr %9, align 4, !tbaa !9
  %831 = icmp slt i32 %829, %830
  br i1 %831, label %833, label %832

832:                                              ; preds = %828
  store i32 47, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  br label %1257

833:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  %834 = load ptr, ptr %8, align 8, !tbaa !5
  %835 = load i32, ptr %69, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds i32, ptr %834, i64 %836
  %838 = load i32, ptr %837, align 4, !tbaa !9
  store i32 %838, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  %839 = load ptr, ptr %15, align 8, !tbaa !5
  %840 = load i32, ptr %69, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds i32, ptr %839, i64 %841
  %843 = load i32, ptr %842, align 4, !tbaa !9
  store i32 %843, ptr %71, align 4, !tbaa !9
  %844 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %845 = load i32, ptr %71, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %844, i64 noundef %846) #7
  %848 = load i32, ptr %847, align 4, !tbaa !9
  %849 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %850 = load i32, ptr %71, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %849, i64 noundef %851) #7
  %853 = load i32, ptr %852, align 4, !tbaa !9
  %854 = sub nsw i32 %848, %853
  %855 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 73
  %856 = load i32, ptr %855, align 4, !tbaa !46
  %857 = sub nsw i32 %856, %854
  store i32 %857, ptr %855, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  %858 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %859 = load i32, ptr %71, align 4, !tbaa !9
  %860 = sext i32 %859 to i64
  %861 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %858, i64 noundef %860) #7
  %862 = load i32, ptr %861, align 4, !tbaa !9
  store i32 %862, ptr %72, align 4, !tbaa !9
  br label %863

863:                                              ; preds = %929, %833
  %864 = load i32, ptr %72, align 4, !tbaa !9
  %865 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %866 = load i32, ptr %71, align 4, !tbaa !9
  %867 = sext i32 %866 to i64
  %868 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %865, i64 noundef %867) #7
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = icmp slt i32 %864, %869
  br i1 %870, label %872, label %871

871:                                              ; preds = %863
  store i32 50, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %932

872:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  %873 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 69
  %874 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %875 = load i32, ptr %72, align 4, !tbaa !9
  %876 = sext i32 %875 to i64
  %877 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %874, i64 noundef %876) #7
  %878 = load i32, ptr %877, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %873, i64 noundef %879) #7
  %881 = load i32, ptr %880, align 4, !tbaa !9
  store i32 %881, ptr %73, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  %882 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 74
  %883 = load i32, ptr %73, align 4, !tbaa !9
  %884 = sext i32 %883 to i64
  %885 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %882, i64 noundef %884) #7
  %886 = load i32, ptr %885, align 4, !tbaa !9
  store i32 %886, ptr %74, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  %887 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 75
  %888 = load i32, ptr %73, align 4, !tbaa !9
  %889 = sext i32 %888 to i64
  %890 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %887, i64 noundef %889) #7
  %891 = load i32, ptr %890, align 4, !tbaa !9
  %892 = add nsw i32 %891, -1
  store i32 %892, ptr %890, align 4, !tbaa !9
  store i32 %892, ptr %75, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %907, %872
  %894 = load i32, ptr %74, align 4, !tbaa !9
  %895 = load i32, ptr %75, align 4, !tbaa !9
  %896 = icmp sle i32 %894, %895
  br i1 %896, label %897, label %910

897:                                              ; preds = %893
  %898 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %899 = load i32, ptr %74, align 4, !tbaa !9
  %900 = sext i32 %899 to i64
  %901 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %898, i64 noundef %900) #7
  %902 = load i32, ptr %901, align 4, !tbaa !9
  %903 = load i32, ptr %70, align 4, !tbaa !9
  %904 = icmp eq i32 %902, %903
  br i1 %904, label %905, label %906

905:                                              ; preds = %897
  br label %910

906:                                              ; preds = %897
  br label %907

907:                                              ; preds = %906
  %908 = load i32, ptr %74, align 4, !tbaa !9
  %909 = add nsw i32 %908, 1
  store i32 %909, ptr %74, align 4, !tbaa !9
  br label %893, !llvm.loop !63

910:                                              ; preds = %905, %893
  %911 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %912 = load i32, ptr %75, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %911, i64 noundef %913) #7
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %917 = load i32, ptr %74, align 4, !tbaa !9
  %918 = sext i32 %917 to i64
  %919 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %916, i64 noundef %918) #7
  store i32 %915, ptr %919, align 4, !tbaa !9
  %920 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  %921 = load i32, ptr %75, align 4, !tbaa !9
  %922 = sext i32 %921 to i64
  %923 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %920, i64 noundef %922) #7
  %924 = load double, ptr %923, align 8, !tbaa !30
  %925 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  %926 = load i32, ptr %74, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %925, i64 noundef %927) #7
  store double %924, ptr %928, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  br label %929

929:                                              ; preds = %910
  %930 = load i32, ptr %72, align 4, !tbaa !9
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %72, align 4, !tbaa !9
  br label %863, !llvm.loop !64

932:                                              ; preds = %871
  %933 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 75
  %934 = load i32, ptr %71, align 4, !tbaa !9
  %935 = sext i32 %934 to i64
  %936 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %933, i64 noundef %935) #7
  %937 = load i32, ptr %936, align 4, !tbaa !9
  %938 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 74
  %939 = load i32, ptr %71, align 4, !tbaa !9
  %940 = sext i32 %939 to i64
  %941 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %938, i64 noundef %940) #7
  %942 = load i32, ptr %941, align 4, !tbaa !9
  %943 = sub nsw i32 %937, %942
  %944 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 73
  %945 = load i32, ptr %944, align 4, !tbaa !46
  %946 = sub nsw i32 %945, %943
  store i32 %946, ptr %944, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #7
  %947 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 74
  %948 = load i32, ptr %71, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %947, i64 noundef %949) #7
  %951 = load i32, ptr %950, align 4, !tbaa !9
  store i32 %951, ptr %76, align 4, !tbaa !9
  br label %952

952:                                              ; preds = %1024, %932
  %953 = load i32, ptr %76, align 4, !tbaa !9
  %954 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 75
  %955 = load i32, ptr %71, align 4, !tbaa !9
  %956 = sext i32 %955 to i64
  %957 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %954, i64 noundef %956) #7
  %958 = load i32, ptr %957, align 4, !tbaa !9
  %959 = icmp slt i32 %953, %958
  br i1 %959, label %961, label %960

960:                                              ; preds = %952
  store i32 56, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  br label %1027

961:                                              ; preds = %952
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #7
  %962 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 69
  %963 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %964 = load i32, ptr %76, align 4, !tbaa !9
  %965 = sext i32 %964 to i64
  %966 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %963, i64 noundef %965) #7
  %967 = load i32, ptr %966, align 4, !tbaa !9
  %968 = sext i32 %967 to i64
  %969 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %962, i64 noundef %968) #7
  %970 = load i32, ptr %969, align 4, !tbaa !9
  store i32 %970, ptr %77, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  %971 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %972 = load i32, ptr %77, align 4, !tbaa !9
  %973 = sext i32 %972 to i64
  %974 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %971, i64 noundef %973) #7
  %975 = load i32, ptr %974, align 4, !tbaa !9
  store i32 %975, ptr %78, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  %976 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %977 = load i32, ptr %77, align 4, !tbaa !9
  %978 = sext i32 %977 to i64
  %979 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %976, i64 noundef %978) #7
  %980 = load i32, ptr %979, align 4, !tbaa !9
  %981 = add nsw i32 %980, -1
  store i32 %981, ptr %979, align 4, !tbaa !9
  store i32 %981, ptr %79, align 4, !tbaa !9
  br label %982

982:                                              ; preds = %996, %961
  %983 = load i32, ptr %78, align 4, !tbaa !9
  %984 = load i32, ptr %79, align 4, !tbaa !9
  %985 = icmp sle i32 %983, %984
  br i1 %985, label %986, label %999

986:                                              ; preds = %982
  %987 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %988 = load i32, ptr %78, align 4, !tbaa !9
  %989 = sext i32 %988 to i64
  %990 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %987, i64 noundef %989) #7
  %991 = load i32, ptr %990, align 4, !tbaa !9
  %992 = load i32, ptr %70, align 4, !tbaa !9
  %993 = icmp eq i32 %991, %992
  br i1 %993, label %994, label %995

994:                                              ; preds = %986
  br label %999

995:                                              ; preds = %986
  br label %996

996:                                              ; preds = %995
  %997 = load i32, ptr %78, align 4, !tbaa !9
  %998 = add nsw i32 %997, 1
  store i32 %998, ptr %78, align 4, !tbaa !9
  br label %982, !llvm.loop !65

999:                                              ; preds = %994, %982
  %1000 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  %1001 = load i32, ptr %77, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1000, i64 noundef %1002) #7
  %1004 = load i32, ptr %1003, align 4, !tbaa !9
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr %1003, align 4, !tbaa !9
  %1006 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1007 = load i32, ptr %79, align 4, !tbaa !9
  %1008 = sext i32 %1007 to i64
  %1009 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1006, i64 noundef %1008) #7
  %1010 = load i32, ptr %1009, align 4, !tbaa !9
  %1011 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1012 = load i32, ptr %78, align 4, !tbaa !9
  %1013 = sext i32 %1012 to i64
  %1014 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1011, i64 noundef %1013) #7
  store i32 %1010, ptr %1014, align 4, !tbaa !9
  %1015 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1016 = load i32, ptr %79, align 4, !tbaa !9
  %1017 = sext i32 %1016 to i64
  %1018 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1015, i64 noundef %1017) #7
  %1019 = load double, ptr %1018, align 8, !tbaa !30
  %1020 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1021 = load i32, ptr %78, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1020, i64 noundef %1022) #7
  store double %1019, ptr %1023, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  br label %1024

1024:                                             ; preds = %999
  %1025 = load i32, ptr %76, align 4, !tbaa !9
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr %76, align 4, !tbaa !9
  br label %952, !llvm.loop !66

1027:                                             ; preds = %960
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  %1028 = load ptr, ptr %21, align 8, !tbaa !5
  %1029 = load i32, ptr %69, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds i32, ptr %1028, i64 %1030
  %1032 = load i32, ptr %1031, align 4, !tbaa !9
  store i32 %1032, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  %1033 = load ptr, ptr %21, align 8, !tbaa !5
  %1034 = load i32, ptr %69, align 4, !tbaa !9
  %1035 = add nsw i32 %1034, 1
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds i32, ptr %1033, i64 %1036
  %1038 = load i32, ptr %1037, align 4, !tbaa !9
  store i32 %1038, ptr %81, align 4, !tbaa !9
  %1039 = load i32, ptr %81, align 4, !tbaa !9
  %1040 = load i32, ptr %80, align 4, !tbaa !9
  %1041 = sub nsw i32 %1039, %1040
  %1042 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 73
  %1043 = load i32, ptr %1042, align 4, !tbaa !46
  %1044 = add nsw i32 %1043, %1041
  store i32 %1044, ptr %1042, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  %1045 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1045, ptr %82, align 4, !tbaa !9
  br label %1046

1046:                                             ; preds = %1187, %1027
  %1047 = load i32, ptr %82, align 4, !tbaa !9
  %1048 = load i32, ptr %81, align 4, !tbaa !9
  %1049 = icmp slt i32 %1047, %1048
  br i1 %1049, label %1051, label %1050

1050:                                             ; preds = %1046
  store i32 62, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %1190

1051:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #7
  %1052 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 69
  %1053 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 76
  %1054 = load i32, ptr %82, align 4, !tbaa !9
  %1055 = sext i32 %1054 to i64
  %1056 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1053, i64 noundef %1055) #7
  %1057 = load i32, ptr %1056, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1052, i64 noundef %1058) #7
  %1060 = load i32, ptr %1059, align 4, !tbaa !9
  store i32 %1060, ptr %83, align 4, !tbaa !9
  %1061 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  %1062 = load i32, ptr %83, align 4, !tbaa !9
  %1063 = sext i32 %1062 to i64
  %1064 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1061, i64 noundef %1063) #7
  %1065 = load i32, ptr %1064, align 4, !tbaa !9
  %1066 = icmp eq i32 %1065, 0
  br i1 %1066, label %1067, label %1160

1067:                                             ; preds = %1051
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #7
  %1068 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1069 = load i32, ptr %83, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1068, i64 noundef %1070) #7
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  store i32 %1072, ptr %84, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  %1073 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %1074 = load i32, ptr %83, align 4, !tbaa !9
  %1075 = sext i32 %1074 to i64
  %1076 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1073, i64 noundef %1075) #7
  %1077 = load i32, ptr %1076, align 4, !tbaa !9
  %1078 = load i32, ptr %84, align 4, !tbaa !9
  %1079 = sub nsw i32 %1077, %1078
  store i32 %1079, ptr %85, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #7
  %1080 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1081 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1080) #7
  %1082 = trunc i64 %1081 to i32
  store i32 %1082, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #7
  %1083 = load i32, ptr %85, align 4, !tbaa !9
  %1084 = sitofp i32 %1083 to double
  %1085 = call double @llvm.fmuladd.f64(double %1084, double 1.100000e+00, double 5.000000e+00)
  %1086 = fptosi double %1085 to i32
  store i32 %1086, ptr %87, align 4, !tbaa !9
  %1087 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1088 = load i32, ptr %86, align 4, !tbaa !9
  %1089 = load i32, ptr %87, align 4, !tbaa !9
  %1090 = add nsw i32 %1088, %1089
  %1091 = sext i32 %1090 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1087, i64 noundef %1091)
          to label %1092 unwind label %1151

1092:                                             ; preds = %1067
  %1093 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1094 = load i32, ptr %86, align 4, !tbaa !9
  %1095 = load i32, ptr %87, align 4, !tbaa !9
  %1096 = add nsw i32 %1094, %1095
  %1097 = sext i32 %1096 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1093, i64 noundef %1097)
          to label %1098 unwind label %1151

1098:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #7
  %1099 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1099, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #7
  %1100 = load i32, ptr %84, align 4, !tbaa !9
  %1101 = load i32, ptr %85, align 4, !tbaa !9
  %1102 = add nsw i32 %1100, %1101
  store i32 %1102, ptr %89, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #7
  %1103 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1103, ptr %90, align 4, !tbaa !9
  %1104 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1105 = load i32, ptr %88, align 4, !tbaa !9
  %1106 = sext i32 %1105 to i64
  %1107 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1104, i64 noundef %1106) #7
  %1108 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1109 = load i32, ptr %89, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1108, i64 noundef %1110) #7
  %1112 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1113 = load i32, ptr %90, align 4, !tbaa !9
  %1114 = sext i32 %1113 to i64
  %1115 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1112, i64 noundef %1114) #7
  %1116 = invoke noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef %1107, ptr noundef %1111, ptr noundef %1115)
          to label %1117 unwind label %1155

1117:                                             ; preds = %1098
  %1118 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1119 = load i32, ptr %88, align 4, !tbaa !9
  %1120 = sext i32 %1119 to i64
  %1121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1118, i64 noundef %1120) #7
  %1122 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1123 = load i32, ptr %89, align 4, !tbaa !9
  %1124 = sext i32 %1123 to i64
  %1125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1122, i64 noundef %1124) #7
  %1126 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1127 = load i32, ptr %90, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1126, i64 noundef %1128) #7
  %1130 = invoke noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef %1121, ptr noundef %1125, ptr noundef %1129)
          to label %1131 unwind label %1155

1131:                                             ; preds = %1117
  %1132 = load i32, ptr %86, align 4, !tbaa !9
  %1133 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1134 = load i32, ptr %83, align 4, !tbaa !9
  %1135 = sext i32 %1134 to i64
  %1136 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1133, i64 noundef %1135) #7
  store i32 %1132, ptr %1136, align 4, !tbaa !9
  %1137 = load i32, ptr %86, align 4, !tbaa !9
  %1138 = load i32, ptr %85, align 4, !tbaa !9
  %1139 = add nsw i32 %1137, %1138
  %1140 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %1141 = load i32, ptr %83, align 4, !tbaa !9
  %1142 = sext i32 %1141 to i64
  %1143 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1140, i64 noundef %1142) #7
  store i32 %1139, ptr %1143, align 4, !tbaa !9
  %1144 = load i32, ptr %87, align 4, !tbaa !9
  %1145 = load i32, ptr %85, align 4, !tbaa !9
  %1146 = sub nsw i32 %1144, %1145
  %1147 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  %1148 = load i32, ptr %83, align 4, !tbaa !9
  %1149 = sext i32 %1148 to i64
  %1150 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1147, i64 noundef %1149) #7
  store i32 %1146, ptr %1150, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  br label %1160

1151:                                             ; preds = %1092, %1067
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %29, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %30, align 4
  br label %1159

1155:                                             ; preds = %1117, %1098
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %29, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #7
  br label %1159

1159:                                             ; preds = %1155, %1151
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %1256

1160:                                             ; preds = %1131, %1051
  %1161 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  %1162 = load i32, ptr %83, align 4, !tbaa !9
  %1163 = sext i32 %1162 to i64
  %1164 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1161, i64 noundef %1163) #7
  %1165 = load i32, ptr %1164, align 4, !tbaa !9
  %1166 = add nsw i32 %1165, -1
  store i32 %1166, ptr %1164, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #7
  %1167 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %1168 = load i32, ptr %83, align 4, !tbaa !9
  %1169 = sext i32 %1168 to i64
  %1170 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1167, i64 noundef %1169) #7
  %1171 = load i32, ptr %1170, align 4, !tbaa !9
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr %1170, align 4, !tbaa !9
  store i32 %1171, ptr %91, align 4, !tbaa !9
  %1173 = load i32, ptr %70, align 4, !tbaa !9
  %1174 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 81
  %1175 = load i32, ptr %91, align 4, !tbaa !9
  %1176 = sext i32 %1175 to i64
  %1177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1174, i64 noundef %1176) #7
  store i32 %1173, ptr %1177, align 4, !tbaa !9
  %1178 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 77
  %1179 = load i32, ptr %82, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1178, i64 noundef %1180) #7
  %1182 = load double, ptr %1181, align 8, !tbaa !30
  %1183 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 82
  %1184 = load i32, ptr %91, align 4, !tbaa !9
  %1185 = sext i32 %1184 to i64
  %1186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1183, i64 noundef %1185) #7
  store double %1182, ptr %1186, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  br label %1187

1187:                                             ; preds = %1160
  %1188 = load i32, ptr %82, align 4, !tbaa !9
  %1189 = add nsw i32 %1188, 1
  store i32 %1189, ptr %82, align 4, !tbaa !9
  br label %1046, !llvm.loop !67

1190:                                             ; preds = %1050
  %1191 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 74
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %1191, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %1192 unwind label %1248

1192:                                             ; preds = %1190
  %1193 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 75
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %1193, ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %1194 unwind label %1248

1194:                                             ; preds = %1192
  %1195 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1196 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1197 = load i32, ptr %71, align 4, !tbaa !9
  %1198 = sext i32 %1197 to i64
  %1199 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1196, i64 noundef %1198) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %1195, ptr noundef nonnull align 4 dereferenceable(4) %1199)
          to label %1200 unwind label %1248

1200:                                             ; preds = %1194
  %1201 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %1202 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1203 = load i32, ptr %71, align 4, !tbaa !9
  %1204 = sext i32 %1203 to i64
  %1205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1202, i64 noundef %1204) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %1201, ptr noundef nonnull align 4 dereferenceable(4) %1205)
          to label %1206 unwind label %1248

1206:                                             ; preds = %1200
  %1207 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #7
  %1208 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 80
  %1209 = load i32, ptr %71, align 4, !tbaa !9
  %1210 = sext i32 %1209 to i64
  %1211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1208, i64 noundef %1210) #7
  %1212 = load i32, ptr %1211, align 4, !tbaa !9
  %1213 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 79
  %1214 = load i32, ptr %71, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1213, i64 noundef %1215) #7
  %1217 = load i32, ptr %1216, align 4, !tbaa !9
  %1218 = add nsw i32 %1212, %1217
  %1219 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 78
  %1220 = load i32, ptr %71, align 4, !tbaa !9
  %1221 = sext i32 %1220 to i64
  %1222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1219, i64 noundef %1221) #7
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = sub nsw i32 %1218, %1223
  store i32 %1224, ptr %92, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %1207, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %1225 unwind label %1252

1225:                                             ; preds = %1206
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  %1226 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 70
  %1227 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1226) #7
  %1228 = trunc i64 %1227 to i32
  %1229 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 69
  %1230 = load i32, ptr %70, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1229, i64 noundef %1231) #7
  store i32 %1228, ptr %1232, align 4, !tbaa !9
  %1233 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 70
  %1234 = load i32, ptr %71, align 4, !tbaa !9
  %1235 = sext i32 %1234 to i64
  %1236 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1233, i64 noundef %1235) #7
  store i32 -1, ptr %1236, align 4, !tbaa !9
  %1237 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 70
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %1237, ptr noundef nonnull align 4 dereferenceable(4) %70)
          to label %1238 unwind label %1248

1238:                                             ; preds = %1225
  %1239 = getelementptr inbounds %class.HFactor, ptr %93, i32 0, i32 71
  %1240 = load ptr, ptr %22, align 8, !tbaa !5
  %1241 = load i32, ptr %69, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds double, ptr %1240, i64 %1242
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %1239, ptr noundef nonnull align 8 dereferenceable(8) %1243)
          to label %1244 unwind label %1248

1244:                                             ; preds = %1238
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  br label %1245

1245:                                             ; preds = %1244
  %1246 = load i32, ptr %69, align 4, !tbaa !9
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr %69, align 4, !tbaa !9
  br label %828, !llvm.loop !68

1248:                                             ; preds = %1238, %1225, %1200, %1194, %1192, %1190
  %1249 = landingpad { ptr, i32 }
          cleanup
  %1250 = extractvalue { ptr, i32 } %1249, 0
  store ptr %1250, ptr %29, align 8
  %1251 = extractvalue { ptr, i32 } %1249, 1
  store i32 %1251, ptr %30, align 4
  br label %1256

1252:                                             ; preds = %1206
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %29, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br label %1256

1256:                                             ; preds = %1252, %1248, %1159
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  br label %1286

1257:                                             ; preds = %832
  %1258 = load ptr, ptr %11, align 8, !tbaa !5
  %1259 = icmp eq ptr %1258, null
  br i1 %1259, label %1261, label %1260

1260:                                             ; preds = %1257
  call void @_ZdaPv(ptr noundef %1258) #9
  br label %1261

1261:                                             ; preds = %1260, %1257
  %1262 = load ptr, ptr %12, align 8, !tbaa !5
  %1263 = icmp eq ptr %1262, null
  br i1 %1263, label %1265, label %1264

1264:                                             ; preds = %1261
  call void @_ZdaPv(ptr noundef %1262) #9
  br label %1265

1265:                                             ; preds = %1264, %1261
  %1266 = load ptr, ptr %15, align 8, !tbaa !5
  %1267 = icmp eq ptr %1266, null
  br i1 %1267, label %1269, label %1268

1268:                                             ; preds = %1265
  call void @_ZdaPv(ptr noundef %1266) #9
  br label %1269

1269:                                             ; preds = %1268, %1265
  %1270 = load ptr, ptr %16, align 8, !tbaa !5
  %1271 = icmp eq ptr %1270, null
  br i1 %1271, label %1273, label %1272

1272:                                             ; preds = %1269
  call void @_ZdaPv(ptr noundef %1270) #9
  br label %1273

1273:                                             ; preds = %1272, %1269
  %1274 = load ptr, ptr %17, align 8, !tbaa !5
  %1275 = icmp eq ptr %1274, null
  br i1 %1275, label %1277, label %1276

1276:                                             ; preds = %1273
  call void @_ZdaPv(ptr noundef %1274) #9
  br label %1277

1277:                                             ; preds = %1276, %1273
  %1278 = load ptr, ptr %21, align 8, !tbaa !5
  %1279 = icmp eq ptr %1278, null
  br i1 %1279, label %1281, label %1280

1280:                                             ; preds = %1277
  call void @_ZdaPv(ptr noundef %1278) #9
  br label %1281

1281:                                             ; preds = %1280, %1277
  %1282 = load ptr, ptr %22, align 8, !tbaa !5
  %1283 = icmp eq ptr %1282, null
  br i1 %1283, label %1285, label %1284

1284:                                             ; preds = %1281
  call void @_ZdaPv(ptr noundef %1282) #9
  br label %1285

1285:                                             ; preds = %1284, %1281
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  ret void

1286:                                             ; preds = %1256, %826
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %1287

1287:                                             ; preds = %1286
  %1288 = load ptr, ptr %29, align 8
  %1289 = load i32, ptr %30, align 4
  %1290 = insertvalue { ptr, i32 } poison, ptr %1288, 0
  %1291 = insertvalue { ptr, i32 } %1290, i32 %1289, 1
  resume { ptr, i32 } %1291
}

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #3

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr, ptr) #4

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #6

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

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

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

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


; 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::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7HFactor9updateCFTEP11HVectorBaseIdES2_Pi(ptr noundef nonnull align 8 dereferenceable(1912) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector.22", align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca double, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca double, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"struct.std::pair", align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %.not304 = icmp eq ptr %1, null
  br i1 %.not304, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %4
  %.0245.lcssa = phi i32 [ 0, %4 ], [ %27, %.lr.ph ]
  %22 = zext i32 %.0245.lcssa to i64
  %23 = shl nuw nsw i64 %22, 3
  %24 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %23) #7
  %25 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %23) #7
  %.not394 = icmp eq i32 %.0245.lcssa, 0
  br i1 %.not394, label %._crit_edge312, label %.lr.ph311.preheader

.lr.ph311.preheader:                              ; preds = %._crit_edge
  %xtraiter = and i64 %22, 1
  %26 = icmp eq i32 %.0245.lcssa, 1
  br i1 %26, label %._crit_edge312.loopexit.unr-lcssa, label %.lr.ph311.preheader.new

.lr.ph311.preheader.new:                          ; preds = %.lr.ph311.preheader
  %unroll_iter = and i64 %22, 4294967294
  br label %.lr.ph311

.lr.ph:                                           ; preds = %4, %.lr.ph
  %.0245306 = phi i32 [ %27, %.lr.ph ], [ 0, %4 ]
  %.0246305 = phi ptr [ %29, %.lr.ph ], [ %1, %4 ]
  %27 = add nuw nsw i32 %.0245306, 1
  %28 = getelementptr inbounds i8, ptr %.0246305, i64 112
  %29 = load ptr, ptr %28, align 8, !tbaa !5
  %.not = icmp eq ptr %29, null
  br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !25

._crit_edge312.loopexit.unr-lcssa:                ; preds = %.lr.ph311, %.lr.ph311.preheader
  %indvars.iv.unr = phi i64 [ 0, %.lr.ph311.preheader ], [ %indvars.iv.next.1, %.lr.ph311 ]
  %.0309.unr = phi ptr [ %1, %.lr.ph311.preheader ], [ %49, %.lr.ph311 ]
  %.0244308.unr = phi ptr [ %2, %.lr.ph311.preheader ], [ %51, %.lr.ph311 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge312, label %.lr.ph311.epil

.lr.ph311.epil:                                   ; preds = %._crit_edge312.loopexit.unr-lcssa
  %30 = getelementptr inbounds ptr, ptr %24, i64 %indvars.iv.unr
  store ptr %.0309.unr, ptr %30, align 8, !tbaa !27
  %31 = getelementptr inbounds ptr, ptr %25, i64 %indvars.iv.unr
  store ptr %.0244308.unr, ptr %31, align 8, !tbaa !27
  br label %._crit_edge312

._crit_edge312:                                   ; preds = %.lr.ph311.epil, %._crit_edge312.loopexit.unr-lcssa, %._crit_edge
  %32 = getelementptr inbounds i8, ptr %0, i64 1640
  %33 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  %34 = shl nuw nsw i64 %22, 2
  %35 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %34) #7
  %36 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %23) #7
  %37 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %23) #7
  br i1 %.not394, label %._crit_edge316, label %.lr.ph315

.lr.ph315:                                        ; preds = %._crit_edge312
  %38 = getelementptr inbounds i8, ptr %0, i64 1320
  %39 = getelementptr inbounds i8, ptr %0, i64 1368
  br label %69

.lr.ph311:                                        ; preds = %.lr.ph311, %.lr.ph311.preheader.new
  %indvars.iv = phi i64 [ 0, %.lr.ph311.preheader.new ], [ %indvars.iv.next.1, %.lr.ph311 ]
  %.0309 = phi ptr [ %1, %.lr.ph311.preheader.new ], [ %49, %.lr.ph311 ]
  %.0244308 = phi ptr [ %2, %.lr.ph311.preheader.new ], [ %51, %.lr.ph311 ]
  %niter = phi i64 [ 0, %.lr.ph311.preheader.new ], [ %niter.next.1, %.lr.ph311 ]
  %40 = getelementptr inbounds ptr, ptr %24, i64 %indvars.iv
  store ptr %.0309, ptr %40, align 8, !tbaa !27
  %41 = getelementptr inbounds ptr, ptr %25, i64 %indvars.iv
  store ptr %.0244308, ptr %41, align 8, !tbaa !27
  %42 = getelementptr inbounds i8, ptr %.0309, i64 112
  %43 = load ptr, ptr %42, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %.0244308, i64 112
  %45 = load ptr, ptr %44, align 8, !tbaa !5
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %46 = getelementptr inbounds ptr, ptr %24, i64 %indvars.iv.next
  store ptr %43, ptr %46, align 8, !tbaa !27
  %47 = getelementptr inbounds ptr, ptr %25, i64 %indvars.iv.next
  store ptr %45, ptr %47, align 8, !tbaa !27
  %48 = getelementptr inbounds i8, ptr %43, i64 112
  %49 = load ptr, ptr %48, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %45, i64 112
  %51 = load ptr, ptr %50, align 8, !tbaa !5
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge312.loopexit.unr-lcssa, label %.lr.ph311, !llvm.loop !28

._crit_edge316:                                   ; preds = %69, %._crit_edge312
  %52 = add nuw nsw i32 %.0245.lcssa, 1
  %53 = zext nneg i32 %52 to i64
  %54 = shl nuw nsw i64 %53, 2
  %55 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %54) #7
  %56 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %23) #7
  %57 = getelementptr inbounds i8, ptr %0, i64 1448
  %58 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #8
  %59 = trunc i64 %58 to i32
  store i32 %59, ptr %55, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #8
  %invariant.gep = getelementptr i8, ptr %55, i64 4
  store i32 0, ptr %6, align 4, !tbaa !29
  %60 = icmp sgt i32 %.0245.lcssa, 0
  br i1 %60, label %.lr.ph360, label %._crit_edge361

.lr.ph360:                                        ; preds = %._crit_edge316
  %61 = getelementptr inbounds i8, ptr %0, i64 432
  %62 = getelementptr inbounds i8, ptr %0, i64 456
  %63 = getelementptr inbounds i8, ptr %0, i64 1664
  %64 = getelementptr inbounds i8, ptr %0, i64 1688
  %65 = getelementptr inbounds i8, ptr %0, i64 1712
  %66 = getelementptr inbounds i8, ptr %0, i64 1472
  %67 = getelementptr inbounds i8, ptr %0, i64 1396
  %sext463 = shl i64 %33, 32
  %68 = ashr exact i64 %sext463, 32
  br label %98

69:                                               ; preds = %.lr.ph315, %69
  %indvars.iv405 = phi i64 [ 0, %.lr.ph315 ], [ %indvars.iv.next406, %69 ]
  %70 = getelementptr inbounds i32, ptr %3, i64 %indvars.iv405
  %71 = load i32, ptr %70, align 4, !tbaa !29
  %72 = sext i32 %71 to i64
  %73 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %72) #8
  %74 = load i32, ptr %73, align 4, !tbaa !29
  %75 = getelementptr inbounds i32, ptr %35, i64 %indvars.iv405
  store i32 %74, ptr %75, align 4, !tbaa !29
  %76 = sext i32 %74 to i64
  %77 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %76) #8
  %78 = load double, ptr %77, align 8, !tbaa !30
  %79 = getelementptr inbounds double, ptr %36, i64 %indvars.iv405
  store double %78, ptr %79, align 8, !tbaa !30
  %80 = getelementptr inbounds ptr, ptr %24, i64 %indvars.iv405
  %81 = load ptr, ptr %80, align 8, !tbaa !27
  %82 = getelementptr inbounds i8, ptr %81, i64 32
  %83 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %72) #8
  %84 = load double, ptr %83, align 8, !tbaa !30
  %85 = getelementptr inbounds double, ptr %37, i64 %indvars.iv405
  store double %84, ptr %85, align 8, !tbaa !30
  %indvars.iv.next406 = add nuw nsw i64 %indvars.iv405, 1
  %exitcond409.not = icmp eq i64 %indvars.iv.next406, %22
  br i1 %exitcond409.not, label %._crit_edge316, label %69, !llvm.loop !31

._crit_edge361:                                   ; preds = %404, %._crit_edge316
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br i1 %.not394, label %._crit_edge393, label %.lr.ph392

.lr.ph392:                                        ; preds = %._crit_edge361
  %86 = getelementptr inbounds i8, ptr %0, i64 1520
  %87 = getelementptr inbounds i8, ptr %0, i64 1496
  %88 = getelementptr inbounds i8, ptr %0, i64 1396
  %89 = getelementptr inbounds i8, ptr %0, i64 1320
  %90 = getelementptr inbounds i8, ptr %0, i64 1568
  %91 = getelementptr inbounds i8, ptr %0, i64 1400
  %92 = getelementptr inbounds i8, ptr %0, i64 1424
  %93 = getelementptr inbounds i8, ptr %0, i64 1472
  %94 = getelementptr inbounds i8, ptr %0, i64 1544
  %95 = getelementptr inbounds i8, ptr %0, i64 1592
  %96 = getelementptr inbounds i8, ptr %0, i64 1344
  %97 = getelementptr inbounds i8, ptr %0, i64 1368
  br label %415

98:                                               ; preds = %.lr.ph360, %404
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %99 = load i32, ptr %6, align 4, !tbaa !29
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds ptr, ptr %24, i64 %100
  %102 = load ptr, ptr %101, align 8, !tbaa !27
  %103 = getelementptr inbounds i8, ptr %102, i64 124
  %104 = load i32, ptr %103, align 4, !tbaa !32
  %105 = icmp sgt i32 %104, 0
  br i1 %105, label %.lr.ph319, label %.preheader301

.preheader301:                                    ; preds = %119, %98
  %106 = phi i32 [ %99, %98 ], [ %123, %119 ]
  %107 = icmp sgt i32 %106, 0
  br i1 %107, label %.lr.ph327, label %.preheader301.._crit_edge328_crit_edge

.preheader301.._crit_edge328_crit_edge:           ; preds = %.preheader301
  %.pre462 = sext i32 %106 to i64
  br label %._crit_edge328

.lr.ph319:                                        ; preds = %98, %119
  %indvars.iv410 = phi i64 [ %indvars.iv.next411, %119 ], [ 0, %98 ]
  %108 = phi ptr [ %126, %119 ], [ %102, %98 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #8
  %109 = getelementptr inbounds i8, ptr %108, i64 128
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv410) #8
  %111 = load i32, ptr %110, align 4, !tbaa !29
  store i32 %111, ptr %7, align 4, !tbaa !29
  %112 = load i32, ptr %6, align 4, !tbaa !29
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds ptr, ptr %24, i64 %113
  %115 = load ptr, ptr %114, align 8, !tbaa !27
  %116 = getelementptr inbounds i8, ptr %115, i64 152
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %indvars.iv410) #8
  %118 = load double, ptr %117, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %119 unwind label %131

119:                                              ; preds = %.lr.ph319
  %120 = load i32, ptr %7, align 4, !tbaa !29
  %121 = sext i32 %120 to i64
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %121) #8
  store double %118, ptr %122, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  %indvars.iv.next411 = add nuw nsw i64 %indvars.iv410, 1
  %123 = load i32, ptr %6, align 4, !tbaa !29
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds ptr, ptr %24, i64 %124
  %126 = load ptr, ptr %125, align 8, !tbaa !27
  %127 = getelementptr inbounds i8, ptr %126, i64 124
  %128 = load i32, ptr %127, align 4, !tbaa !32
  %129 = sext i32 %128 to i64
  %130 = icmp slt i64 %indvars.iv.next411, %129
  br i1 %130, label %.lr.ph319, label %.preheader301, !llvm.loop !33

131:                                              ; preds = %.lr.ph319
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  br label %414

._crit_edge328:                                   ; preds = %175, %.preheader301.._crit_edge328_crit_edge
  %.pre-phi = phi i64 [ %.pre462, %.preheader301.._crit_edge328_crit_edge ], [ %180, %175 ]
  %133 = getelementptr inbounds i32, ptr %3, i64 %.pre-phi
  %134 = load i32, ptr %133, align 4, !tbaa !29
  %135 = sext i32 %134 to i64
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %135) #8
  %137 = load double, ptr %136, align 8, !tbaa !30
  %138 = load i32, ptr %6, align 4, !tbaa !29
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds i32, ptr %3, i64 %139
  %141 = load i32, ptr %140, align 4, !tbaa !29
  %142 = sext i32 %141 to i64
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %142) #8
  store double 0.000000e+00, ptr %143, align 8, !tbaa !30
  %144 = load i32, ptr %6, align 4, !tbaa !29
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds i32, ptr %55, i64 %145
  %147 = load i32, ptr %146, align 4, !tbaa !29
  %148 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %.not396 = icmp eq i64 %148, 0
  br i1 %.not396, label %._crit_edge333, label %.lr.ph332

.lr.ph327:                                        ; preds = %.preheader301, %175
  %indvars.iv416 = phi i64 [ %indvars.iv.next417, %175 ], [ 0, %.preheader301 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #8
  %149 = getelementptr inbounds i32, ptr %3, i64 %indvars.iv416
  %150 = load i32, ptr %149, align 4, !tbaa !29
  store i32 %150, ptr %8, align 4, !tbaa !29
  %151 = sext i32 %150 to i64
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %151) #8
  %153 = load double, ptr %152, align 8, !tbaa !30
  %154 = add nsw i64 %indvars.iv416, %68
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %154) #8
  %156 = load i32, ptr %155, align 4, !tbaa !29
  %157 = add nsw i64 %154, 1
  %158 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %157) #8
  %159 = load i32, ptr %158, align 4, !tbaa !29
  %160 = icmp slt i32 %156, %159
  br i1 %160, label %.lr.ph323.preheader, label %._crit_edge324

.lr.ph323.preheader:                              ; preds = %.lr.ph327
  %161 = sext i32 %156 to i64
  br label %.lr.ph323

._crit_edge324:                                   ; preds = %.lr.ph323, %.lr.ph327
  %.0262.lcssa = phi double [ %153, %.lr.ph327 ], [ %170, %.lr.ph323 ]
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %175 unwind label %182

.lr.ph323:                                        ; preds = %.lr.ph323.preheader, %.lr.ph323
  %indvars.iv413 = phi i64 [ %161, %.lr.ph323.preheader ], [ %indvars.iv.next414, %.lr.ph323 ]
  %.0262321 = phi double [ %153, %.lr.ph323.preheader ], [ %170, %.lr.ph323 ]
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv413) #8
  %163 = load i32, ptr %162, align 4, !tbaa !29
  %164 = sext i32 %163 to i64
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %164) #8
  %166 = load double, ptr %165, align 8, !tbaa !30
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %65, i64 noundef %indvars.iv413) #8
  %168 = load double, ptr %167, align 8, !tbaa !30
  %169 = fneg double %166
  %170 = call double @llvm.fmuladd.f64(double %169, double %168, double %.0262321)
  %indvars.iv.next414 = add nsw i64 %indvars.iv413, 1
  %171 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %157) #8
  %172 = load i32, ptr %171, align 4, !tbaa !29
  %173 = sext i32 %172 to i64
  %174 = icmp slt i64 %indvars.iv.next414, %173
  br i1 %174, label %.lr.ph323, label %._crit_edge324, !llvm.loop !34

175:                                              ; preds = %._crit_edge324
  %176 = load i32, ptr %8, align 4, !tbaa !29
  %177 = sext i32 %176 to i64
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %177) #8
  store double %.0262.lcssa, ptr %178, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  %indvars.iv.next417 = add nuw nsw i64 %indvars.iv416, 1
  %179 = load i32, ptr %6, align 4, !tbaa !29
  %180 = sext i32 %179 to i64
  %181 = icmp slt i64 %indvars.iv.next417, %180
  br i1 %181, label %.lr.ph327, label %._crit_edge328, !llvm.loop !35

182:                                              ; preds = %._crit_edge324
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  br label %414

._crit_edge333:                                   ; preds = %217, %._crit_edge328
  %184 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %57) #8
  %185 = trunc i64 %184 to i32
  %186 = load i32, ptr %6, align 4, !tbaa !29
  %187 = sext i32 %186 to i64
  %gep = getelementptr i32, ptr %invariant.gep, i64 %187
  store i32 %185, ptr %gep, align 4, !tbaa !29
  %188 = getelementptr inbounds double, ptr %36, i64 %187
  %189 = load double, ptr %188, align 8, !tbaa !30
  %190 = getelementptr inbounds double, ptr %37, i64 %187
  %191 = load double, ptr %190, align 8, !tbaa !30
  %192 = fmul double %189, %191
  %193 = getelementptr inbounds double, ptr %56, i64 %187
  store double %192, ptr %193, align 8, !tbaa !30
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %194 = load i32, ptr %6, align 4, !tbaa !29
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds ptr, ptr %25, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !27
  %198 = getelementptr inbounds i8, ptr %197, i64 124
  %199 = load i32, ptr %198, align 4, !tbaa !32
  %200 = icmp sgt i32 %199, 0
  br i1 %200, label %.lr.ph336, label %.preheader300

.lr.ph332:                                        ; preds = %._crit_edge328, %217
  %201 = phi i64 [ %219, %217 ], [ 0, %._crit_edge328 ]
  %.0267330 = phi i32 [ %218, %217 ], [ 0, %._crit_edge328 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %201) #8
  %203 = load i32, ptr %202, align 4, !tbaa !29
  store i32 %203, ptr %9, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  %204 = sext i32 %203 to i64
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %204) #8
  %206 = load double, ptr %205, align 8, !tbaa !30
  store double %206, ptr %10, align 8, !tbaa !30
  %207 = load i32, ptr %9, align 4, !tbaa !29
  %208 = sext i32 %207 to i64
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %208) #8
  store double 0.000000e+00, ptr %209, align 8, !tbaa !30
  %210 = load double, ptr %10, align 8, !tbaa !30
  %211 = call double @llvm.fabs.f64(double %210)
  %212 = fcmp ogt double %211, 0x3D06849B86A12B9B
  br i1 %212, label %213, label %217

213:                                              ; preds = %.lr.ph332
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %214 unwind label %215

214:                                              ; preds = %213
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %217 unwind label %215

215:                                              ; preds = %214, %213
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  br label %414

217:                                              ; preds = %214, %.lr.ph332
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  %218 = add i32 %.0267330, 1
  %219 = zext i32 %218 to i64
  %220 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %221 = icmp ugt i64 %220, %219
  br i1 %221, label %.lr.ph332, label %._crit_edge333, !llvm.loop !36

.preheader300:                                    ; preds = %235, %._crit_edge333
  %222 = phi i32 [ %194, %._crit_edge333 ], [ %239, %235 ]
  %223 = icmp sgt i32 %222, 0
  br i1 %223, label %.lr.ph340, label %.preheader298

.lr.ph336:                                        ; preds = %._crit_edge333, %235
  %indvars.iv419 = phi i64 [ %indvars.iv.next420, %235 ], [ 0, %._crit_edge333 ]
  %224 = phi ptr [ %242, %235 ], [ %197, %._crit_edge333 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %225 = getelementptr inbounds i8, ptr %224, i64 128
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef %indvars.iv419) #8
  %227 = load i32, ptr %226, align 4, !tbaa !29
  store i32 %227, ptr %11, align 4, !tbaa !29
  %228 = load i32, ptr %6, align 4, !tbaa !29
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds ptr, ptr %25, i64 %229
  %231 = load ptr, ptr %230, align 8, !tbaa !27
  %232 = getelementptr inbounds i8, ptr %231, i64 152
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %indvars.iv419) #8
  %234 = load double, ptr %233, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %235 unwind label %247

235:                                              ; preds = %.lr.ph336
  %236 = load i32, ptr %11, align 4, !tbaa !29
  %237 = sext i32 %236 to i64
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %237) #8
  store double %234, ptr %238, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  %indvars.iv.next420 = add nuw nsw i64 %indvars.iv419, 1
  %239 = load i32, ptr %6, align 4, !tbaa !29
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds ptr, ptr %25, i64 %240
  %242 = load ptr, ptr %241, align 8, !tbaa !27
  %243 = getelementptr inbounds i8, ptr %242, i64 124
  %244 = load i32, ptr %243, align 4, !tbaa !32
  %245 = sext i32 %244 to i64
  %246 = icmp slt i64 %indvars.iv.next420, %245
  br i1 %246, label %.lr.ph336, label %.preheader300, !llvm.loop !37

247:                                              ; preds = %.lr.ph336
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  br label %414

.preheader299:                                    ; preds = %.loopexit
  %249 = icmp sgt i32 %293, 0
  br i1 %249, label %.lr.ph349, label %.preheader298

.lr.ph340:                                        ; preds = %.preheader300, %.loopexit
  %indvars.iv425 = phi i64 [ %indvars.iv.next426, %.loopexit ], [ 0, %.preheader300 ]
  %250 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv425) #8
  %251 = getelementptr inbounds i8, ptr %250, i64 4
  %252 = load i32, ptr %251, align 4, !tbaa !38
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds i32, ptr %3, i64 %253
  %255 = load i32, ptr %254, align 4, !tbaa !29
  %256 = getelementptr inbounds double, ptr %36, i64 %253
  %257 = load double, ptr %256, align 8, !tbaa !30
  %258 = fneg double %257
  %259 = sext i32 %255 to i64
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %259) #8
  %261 = load double, ptr %260, align 8, !tbaa !30
  %262 = fmul double %261, %258
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %259) #8
  %264 = load double, ptr %263, align 8, !tbaa !30
  %265 = call double @llvm.fabs.f64(double %264)
  %266 = fcmp ogt double %265, 0x3D06849B86A12B9B
  br i1 %266, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %.lr.ph340
  %267 = getelementptr inbounds ptr, ptr %25, i64 %253
  %268 = load ptr, ptr %267, align 8, !tbaa !27
  %269 = getelementptr inbounds i8, ptr %268, i64 124
  %270 = load i32, ptr %269, align 4, !tbaa !32
  %271 = icmp sgt i32 %270, 0
  br i1 %271, label %.lr.ph338, label %.loopexit

.lr.ph338:                                        ; preds = %.preheader, %280
  %indvars.iv422 = phi i64 [ %indvars.iv.next423, %280 ], [ 0, %.preheader ]
  %272 = phi ptr [ %276, %280 ], [ %268, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  %273 = getelementptr inbounds i8, ptr %272, i64 128
  %274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %273, i64 noundef %indvars.iv422) #8
  %275 = load i32, ptr %274, align 4, !tbaa !29
  store i32 %275, ptr %12, align 4, !tbaa !29
  %276 = load ptr, ptr %267, align 8, !tbaa !27
  %277 = getelementptr inbounds i8, ptr %276, i64 152
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %277, i64 noundef %indvars.iv422) #8
  %279 = load double, ptr %278, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %280 unwind label %290

280:                                              ; preds = %.lr.ph338
  %281 = load i32, ptr %12, align 4, !tbaa !29
  %282 = sext i32 %281 to i64
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %282) #8
  %284 = load double, ptr %283, align 8, !tbaa !30
  %285 = call double @llvm.fmuladd.f64(double %279, double %262, double %284)
  store double %285, ptr %283, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  %indvars.iv.next423 = add nuw nsw i64 %indvars.iv422, 1
  %286 = getelementptr inbounds i8, ptr %276, i64 124
  %287 = load i32, ptr %286, align 4, !tbaa !32
  %288 = sext i32 %287 to i64
  %289 = icmp slt i64 %indvars.iv.next423, %288
  br i1 %289, label %.lr.ph338, label %.loopexit, !llvm.loop !40

290:                                              ; preds = %.lr.ph338
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  br label %414

.loopexit:                                        ; preds = %280, %.preheader, %.lr.ph340
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %259) #8
  store double 0.000000e+00, ptr %292, align 8, !tbaa !30
  %indvars.iv.next426 = add nuw nsw i64 %indvars.iv425, 1
  %293 = load i32, ptr %6, align 4, !tbaa !29
  %294 = sext i32 %293 to i64
  %295 = icmp slt i64 %indvars.iv.next426, %294
  br i1 %295, label %.lr.ph340, label %.preheader299, !llvm.loop !41

.preheader298:                                    ; preds = %323, %.preheader300, %.preheader299
  %296 = phi i32 [ %293, %.preheader299 ], [ %222, %.preheader300 ], [ %328, %323 ]
  %297 = icmp slt i32 %147, %185
  br i1 %297, label %.lr.ph352.preheader, label %._crit_edge353

.lr.ph352.preheader:                              ; preds = %.preheader298
  %298 = sext i32 %147 to i64
  br label %.lr.ph352

.lr.ph349:                                        ; preds = %.preheader299, %323
  %indvars.iv431 = phi i64 [ %indvars.iv.next432, %323 ], [ 0, %.preheader299 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #8
  %299 = getelementptr inbounds i32, ptr %3, i64 %indvars.iv431
  %300 = load i32, ptr %299, align 4, !tbaa !29
  store i32 %300, ptr %13, align 4, !tbaa !29
  %301 = sext i32 %300 to i64
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %301) #8
  %303 = load double, ptr %302, align 8, !tbaa !30
  %304 = getelementptr inbounds i32, ptr %55, i64 %indvars.iv431
  %305 = load i32, ptr %304, align 4, !tbaa !29
  %indvars.iv.next432 = add nuw nsw i64 %indvars.iv431, 1
  %306 = getelementptr inbounds i32, ptr %55, i64 %indvars.iv.next432
  %307 = load i32, ptr %306, align 4, !tbaa !29
  %308 = icmp slt i32 %305, %307
  br i1 %308, label %.lr.ph344.preheader, label %._crit_edge345

.lr.ph344.preheader:                              ; preds = %.lr.ph349
  %309 = sext i32 %305 to i64
  %310 = sext i32 %307 to i64
  br label %.lr.ph344

._crit_edge345:                                   ; preds = %.lr.ph344, %.lr.ph349
  %.0273.lcssa = phi double [ %303, %.lr.ph349 ], [ %321, %.lr.ph344 ]
  %311 = getelementptr inbounds double, ptr %56, i64 %indvars.iv431
  %312 = load double, ptr %311, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %323 unwind label %331

.lr.ph344:                                        ; preds = %.lr.ph344.preheader, %.lr.ph344
  %indvars.iv428 = phi i64 [ %309, %.lr.ph344.preheader ], [ %indvars.iv.next429, %.lr.ph344 ]
  %.0273342 = phi double [ %303, %.lr.ph344.preheader ], [ %321, %.lr.ph344 ]
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv428) #8
  %314 = load i32, ptr %313, align 4, !tbaa !29
  %315 = sext i32 %314 to i64
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %315) #8
  %317 = load double, ptr %316, align 8, !tbaa !30
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %indvars.iv428) #8
  %319 = load double, ptr %318, align 8, !tbaa !30
  %320 = fneg double %317
  %321 = call double @llvm.fmuladd.f64(double %320, double %319, double %.0273342)
  %indvars.iv.next429 = add nsw i64 %indvars.iv428, 1
  %322 = icmp slt i64 %indvars.iv.next429, %310
  br i1 %322, label %.lr.ph344, label %._crit_edge345, !llvm.loop !42

323:                                              ; preds = %._crit_edge345
  %324 = fdiv double %.0273.lcssa, %312
  %325 = load i32, ptr %13, align 4, !tbaa !29
  %326 = sext i32 %325 to i64
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %326) #8
  store double %324, ptr %327, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  %328 = load i32, ptr %6, align 4, !tbaa !29
  %329 = sext i32 %328 to i64
  %330 = icmp slt i64 %indvars.iv.next432, %329
  br i1 %330, label %.lr.ph349, label %.preheader298, !llvm.loop !43

331:                                              ; preds = %._crit_edge345
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  br label %414

._crit_edge353.loopexit:                          ; preds = %.lr.ph352
  %.pre = load i32, ptr %6, align 4, !tbaa !29
  br label %._crit_edge353

._crit_edge353:                                   ; preds = %._crit_edge353.loopexit, %.preheader298
  %333 = phi i32 [ %296, %.preheader298 ], [ %.pre, %._crit_edge353.loopexit ]
  %.0275.lcssa = phi double [ 0.000000e+00, %.preheader298 ], [ %356, %._crit_edge353.loopexit ]
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds double, ptr %36, i64 %334
  %336 = load double, ptr %335, align 8, !tbaa !30
  %337 = call double @llvm.fmuladd.f64(double %.0275.lcssa, double %336, double %137)
  %338 = getelementptr inbounds double, ptr %56, i64 %334
  store double %337, ptr %338, align 8, !tbaa !30
  %339 = getelementptr inbounds i32, ptr %3, i64 %334
  %340 = load i32, ptr %339, align 4, !tbaa !29
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %341) #8
  store double 0.000000e+00, ptr %342, align 8, !tbaa !30
  %343 = load i32, ptr %6, align 4, !tbaa !29
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds double, ptr %36, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !30
  %347 = fneg double %346
  %348 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %.not397 = icmp eq i64 %348, 0
  br i1 %.not397, label %._crit_edge358, label %.lr.ph357

.lr.ph352:                                        ; preds = %.lr.ph352.preheader, %.lr.ph352
  %indvars.iv434 = phi i64 [ %298, %.lr.ph352.preheader ], [ %indvars.iv.next435, %.lr.ph352 ]
  %.0275350 = phi double [ 0.000000e+00, %.lr.ph352.preheader ], [ %356, %.lr.ph352 ]
  %349 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv434) #8
  %350 = load i32, ptr %349, align 4, !tbaa !29
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %indvars.iv434) #8
  %352 = load double, ptr %351, align 8, !tbaa !30
  %353 = sext i32 %350 to i64
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %353) #8
  %355 = load double, ptr %354, align 8, !tbaa !30
  %356 = call double @llvm.fmuladd.f64(double %355, double %352, double %.0275350)
  %indvars.iv.next435 = add nsw i64 %indvars.iv434, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next435 to i32
  %exitcond437.not = icmp eq i32 %lftr.wideiv, %185
  br i1 %exitcond437.not, label %._crit_edge353.loopexit, label %.lr.ph352, !llvm.loop !44

._crit_edge358:                                   ; preds = %379, %._crit_edge353
  %357 = load i32, ptr %6, align 4, !tbaa !29
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds i32, ptr %3, i64 %358
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) %359)
          to label %385 unwind label %408

.lr.ph357:                                        ; preds = %._crit_edge353, %379
  %360 = phi i64 [ %381, %379 ], [ 0, %._crit_edge353 ]
  %.0270355 = phi i32 [ %380, %379 ], [ 0, %._crit_edge353 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  %361 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %360) #8
  %362 = load i32, ptr %361, align 4, !tbaa !29
  store i32 %362, ptr %14, align 4, !tbaa !29
  %363 = sext i32 %362 to i64
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %363) #8
  %365 = load double, ptr %364, align 8, !tbaa !30
  %366 = load i32, ptr %14, align 4, !tbaa !29
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %367) #8
  store double 0.000000e+00, ptr %368, align 8, !tbaa !30
  %369 = call double @llvm.fabs.f64(double %365)
  %370 = fcmp ogt double %369, 0x3D06849B86A12B9B
  br i1 %370, label %371, label %379

371:                                              ; preds = %.lr.ph357
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %64, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %372 unwind label %375

372:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %373 = fmul double %365, %347
  store double %373, ptr %15, align 8, !tbaa !30
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %374 unwind label %377

374:                                              ; preds = %372
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %379

375:                                              ; preds = %371
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %384

377:                                              ; preds = %372
  %378 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %384

379:                                              ; preds = %374, %.lr.ph357
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  %380 = add i32 %.0270355, 1
  %381 = zext i32 %380 to i64
  %382 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %383 = icmp ugt i64 %382, %381
  br i1 %383, label %.lr.ph357, label %._crit_edge358, !llvm.loop !45

384:                                              ; preds = %377, %375
  %.pn285 = phi { ptr, i32 } [ %378, %377 ], [ %376, %375 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  br label %414

385:                                              ; preds = %._crit_edge358
  %386 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %64) #8
  %387 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %63) #8
  %388 = load i32, ptr %387, align 4, !tbaa !29
  %389 = load i32, ptr %67, align 4, !tbaa !46
  %390 = trunc i64 %386 to i32
  %391 = sub i32 %390, %388
  %392 = add i32 %391, %389
  store i32 %392, ptr %67, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #8
  %393 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %64) #8
  %394 = trunc i64 %393 to i32
  store i32 %394, ptr %16, align 4, !tbaa !29
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %395 unwind label %410

395:                                              ; preds = %385
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  %396 = load i32, ptr %6, align 4, !tbaa !29
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds i32, ptr %35, i64 %397
  %399 = invoke i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %398, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %400 unwind label %412

400:                                              ; preds = %395
  store i64 %399, ptr %17, align 8
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %401 unwind label %412

401:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  %402 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  %403 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  invoke void @_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %402, ptr %403)
          to label %404 unwind label %408

404:                                              ; preds = %401
  %405 = load i32, ptr %6, align 4, !tbaa !29
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr %6, align 4, !tbaa !29
  %407 = icmp slt i32 %406, %.0245.lcssa
  br i1 %407, label %98, label %._crit_edge361, !llvm.loop !62

408:                                              ; preds = %401, %._crit_edge358
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %414

410:                                              ; preds = %385
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  br label %414

412:                                              ; preds = %400, %395
  %413 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  br label %414

414:                                              ; preds = %215, %247, %290, %331, %412, %410, %408, %384, %182, %131
  %.pn290 = phi { ptr, i32 } [ %132, %131 ], [ %183, %182 ], [ %216, %215 ], [ %248, %247 ], [ %291, %290 ], [ %332, %331 ], [ %.pn285, %384 ], [ %409, %408 ], [ %413, %412 ], [ %411, %410 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br label %608

415:                                              ; preds = %.lr.ph392, %602
  %indvars.iv457 = phi i64 [ 0, %.lr.ph392 ], [ %indvars.iv.next458, %602 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #8
  %416 = getelementptr inbounds i32, ptr %3, i64 %indvars.iv457
  %417 = load i32, ptr %416, align 4, !tbaa !29
  store i32 %417, ptr %18, align 4, !tbaa !29
  %418 = getelementptr inbounds i32, ptr %35, i64 %indvars.iv457
  %419 = load i32, ptr %418, align 4, !tbaa !29
  %420 = sext i32 %419 to i64
  %421 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %420) #8
  %422 = load i32, ptr %421, align 4, !tbaa !29
  %423 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %420) #8
  %424 = load i32, ptr %423, align 4, !tbaa !29
  %.neg = sub i32 %424, %422
  %425 = load i32, ptr %88, align 4, !tbaa !46
  %426 = add i32 %.neg, %425
  store i32 %426, ptr %88, align 4, !tbaa !46
  %427 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %420) #8
  %428 = load i32, ptr %427, align 4, !tbaa !29
  %429 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %420) #8
  %430 = load i32, ptr %429, align 4, !tbaa !29
  %431 = icmp slt i32 %428, %430
  br i1 %431, label %.lr.ph372.preheader, label %._crit_edge373

.lr.ph372.preheader:                              ; preds = %415
  %432 = sext i32 %428 to i64
  br label %.lr.ph372

._crit_edge373:                                   ; preds = %._crit_edge366, %415
  %433 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %420) #8
  %434 = load i32, ptr %433, align 4, !tbaa !29
  %435 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %420) #8
  %436 = load i32, ptr %435, align 4, !tbaa !29
  %.neg280 = sub i32 %436, %434
  %437 = load i32, ptr %88, align 4, !tbaa !46
  %438 = add i32 %.neg280, %437
  store i32 %438, ptr %88, align 4, !tbaa !46
  %439 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %420) #8
  %440 = load i32, ptr %439, align 4, !tbaa !29
  %441 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %420) #8
  %442 = load i32, ptr %441, align 4, !tbaa !29
  %443 = icmp slt i32 %440, %442
  br i1 %443, label %.lr.ph384.preheader, label %._crit_edge385

.lr.ph384.preheader:                              ; preds = %._crit_edge373
  %444 = sext i32 %440 to i64
  br label %.lr.ph384

.lr.ph372:                                        ; preds = %.lr.ph372.preheader, %._crit_edge366
  %indvars.iv443 = phi i64 [ %432, %.lr.ph372.preheader ], [ %indvars.iv.next444, %._crit_edge366 ]
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %indvars.iv443) #8
  %446 = load i32, ptr %445, align 4, !tbaa !29
  %447 = sext i32 %446 to i64
  %448 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %447) #8
  %449 = load i32, ptr %448, align 4, !tbaa !29
  %450 = sext i32 %449 to i64
  %451 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %450) #8
  %452 = load i32, ptr %451, align 4, !tbaa !29
  %453 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %450) #8
  %454 = load i32, ptr %453, align 4, !tbaa !29
  %455 = add nsw i32 %454, -1
  store i32 %455, ptr %453, align 4, !tbaa !29
  %.not284.not362 = icmp slt i32 %452, %454
  br i1 %.not284.not362, label %.lr.ph365.preheader, label %._crit_edge366

.lr.ph365.preheader:                              ; preds = %.lr.ph372
  %456 = sext i32 %452 to i64
  br label %.lr.ph365

.lr.ph365:                                        ; preds = %.lr.ph365.preheader, %461
  %indvars.iv438 = phi i64 [ %456, %.lr.ph365.preheader ], [ %indvars.iv.next439, %461 ]
  %457 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv438) #8
  %458 = load i32, ptr %457, align 4, !tbaa !29
  %459 = load i32, ptr %18, align 4, !tbaa !29
  %460 = icmp eq i32 %458, %459
  br i1 %460, label %._crit_edge366.loopexit.split.loop.exit, label %461

461:                                              ; preds = %.lr.ph365
  %indvars.iv.next439 = add nsw i64 %indvars.iv438, 1
  %lftr.wideiv441 = trunc i64 %indvars.iv.next439 to i32
  %exitcond442.not = icmp eq i32 %454, %lftr.wideiv441
  br i1 %exitcond442.not, label %._crit_edge366, label %.lr.ph365, !llvm.loop !63

._crit_edge366.loopexit.split.loop.exit:          ; preds = %.lr.ph365
  %462 = trunc nsw i64 %indvars.iv438 to i32
  br label %._crit_edge366

._crit_edge366:                                   ; preds = %461, %._crit_edge366.loopexit.split.loop.exit, %.lr.ph372
  %.0263.lcssa = phi i32 [ %452, %.lr.ph372 ], [ %462, %._crit_edge366.loopexit.split.loop.exit ], [ %454, %461 ]
  %463 = sext i32 %455 to i64
  %464 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %463) #8
  %465 = load i32, ptr %464, align 4, !tbaa !29
  %466 = sext i32 %.0263.lcssa to i64
  %467 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %466) #8
  store i32 %465, ptr %467, align 4, !tbaa !29
  %468 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %463) #8
  %469 = load double, ptr %468, align 8, !tbaa !30
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %466) #8
  store double %469, ptr %470, align 8, !tbaa !30
  %indvars.iv.next444 = add nsw i64 %indvars.iv443, 1
  %471 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %420) #8
  %472 = load i32, ptr %471, align 4, !tbaa !29
  %473 = sext i32 %472 to i64
  %474 = icmp slt i64 %indvars.iv.next444, %473
  br i1 %474, label %.lr.ph372, label %._crit_edge373, !llvm.loop !64

._crit_edge385:                                   ; preds = %._crit_edge378, %._crit_edge373
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  %475 = getelementptr inbounds i32, ptr %55, i64 %indvars.iv457
  %476 = load i32, ptr %475, align 4, !tbaa !29
  store i32 %476, ptr %19, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #8
  %indvars.iv.next458 = add nuw nsw i64 %indvars.iv457, 1
  %477 = getelementptr inbounds i32, ptr %55, i64 %indvars.iv.next458
  %478 = load i32, ptr %477, align 4, !tbaa !29
  store i32 %478, ptr %20, align 4, !tbaa !29
  %479 = sub i32 %478, %476
  %480 = load i32, ptr %88, align 4, !tbaa !46
  %481 = add nsw i32 %479, %480
  store i32 %481, ptr %88, align 4, !tbaa !46
  %482 = icmp slt i32 %476, %478
  br i1 %482, label %.lr.ph388.preheader, label %._crit_edge389

.lr.ph388.preheader:                              ; preds = %._crit_edge385
  %483 = sext i32 %476 to i64
  br label %.lr.ph388

.lr.ph384:                                        ; preds = %.lr.ph384.preheader, %._crit_edge378
  %indvars.iv451 = phi i64 [ %444, %.lr.ph384.preheader ], [ %indvars.iv.next452, %._crit_edge378 ]
  %484 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv451) #8
  %485 = load i32, ptr %484, align 4, !tbaa !29
  %486 = sext i32 %485 to i64
  %487 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %486) #8
  %488 = load i32, ptr %487, align 4, !tbaa !29
  %489 = sext i32 %488 to i64
  %490 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %489) #8
  %491 = load i32, ptr %490, align 4, !tbaa !29
  %492 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %489) #8
  %493 = load i32, ptr %492, align 4, !tbaa !29
  %494 = add nsw i32 %493, -1
  store i32 %494, ptr %492, align 4, !tbaa !29
  %.not283.not374 = icmp slt i32 %491, %493
  br i1 %.not283.not374, label %.lr.ph377.preheader, label %._crit_edge378

.lr.ph377.preheader:                              ; preds = %.lr.ph384
  %495 = sext i32 %491 to i64
  br label %.lr.ph377

.lr.ph377:                                        ; preds = %.lr.ph377.preheader, %500
  %indvars.iv446 = phi i64 [ %495, %.lr.ph377.preheader ], [ %indvars.iv.next447, %500 ]
  %496 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %indvars.iv446) #8
  %497 = load i32, ptr %496, align 4, !tbaa !29
  %498 = load i32, ptr %18, align 4, !tbaa !29
  %499 = icmp eq i32 %497, %498
  br i1 %499, label %._crit_edge378.loopexit.split.loop.exit, label %500

500:                                              ; preds = %.lr.ph377
  %indvars.iv.next447 = add nsw i64 %indvars.iv446, 1
  %lftr.wideiv449 = trunc i64 %indvars.iv.next447 to i32
  %exitcond450.not = icmp eq i32 %493, %lftr.wideiv449
  br i1 %exitcond450.not, label %._crit_edge378, label %.lr.ph377, !llvm.loop !65

._crit_edge378.loopexit.split.loop.exit:          ; preds = %.lr.ph377
  %501 = trunc nsw i64 %indvars.iv446 to i32
  br label %._crit_edge378

._crit_edge378:                                   ; preds = %500, %._crit_edge378.loopexit.split.loop.exit, %.lr.ph384
  %.0259.lcssa = phi i32 [ %491, %.lr.ph384 ], [ %501, %._crit_edge378.loopexit.split.loop.exit ], [ %493, %500 ]
  %502 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %489) #8
  %503 = load i32, ptr %502, align 4, !tbaa !29
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %502, align 4, !tbaa !29
  %505 = sext i32 %494 to i64
  %506 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %505) #8
  %507 = load i32, ptr %506, align 4, !tbaa !29
  %508 = sext i32 %.0259.lcssa to i64
  %509 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %508) #8
  store i32 %507, ptr %509, align 4, !tbaa !29
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %505) #8
  %511 = load double, ptr %510, align 8, !tbaa !30
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %508) #8
  store double %511, ptr %512, align 8, !tbaa !30
  %indvars.iv.next452 = add nsw i64 %indvars.iv451, 1
  %513 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef %420) #8
  %514 = load i32, ptr %513, align 4, !tbaa !29
  %515 = sext i32 %514 to i64
  %516 = icmp slt i64 %indvars.iv.next452, %515
  br i1 %516, label %.lr.ph384, label %._crit_edge385, !llvm.loop !66

._crit_edge389:                                   ; preds = %563, %._crit_edge385
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %91, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %579 unwind label %603

.lr.ph388:                                        ; preds = %.lr.ph388.preheader, %563
  %indvars.iv454 = phi i64 [ %483, %.lr.ph388.preheader ], [ %indvars.iv.next455, %563 ]
  %517 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef %indvars.iv454) #8
  %518 = load i32, ptr %517, align 4, !tbaa !29
  %519 = sext i32 %518 to i64
  %520 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %519) #8
  %521 = load i32, ptr %520, align 4, !tbaa !29
  %522 = sext i32 %521 to i64
  %523 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %522) #8
  %524 = load i32, ptr %523, align 4, !tbaa !29
  %525 = icmp eq i32 %524, 0
  br i1 %525, label %526, label %563

526:                                              ; preds = %.lr.ph388
  %527 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %522) #8
  %528 = load i32, ptr %527, align 4, !tbaa !29
  %529 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %522) #8
  %530 = load i32, ptr %529, align 4, !tbaa !29
  %531 = sub nsw i32 %530, %528
  %532 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %90) #8
  %533 = trunc i64 %532 to i32
  %534 = sitofp i32 %531 to double
  %535 = call double @llvm.fmuladd.f64(double %534, double 1.100000e+00, double 5.000000e+00)
  %536 = fptosi double %535 to i32
  %537 = add nsw i32 %536, %533
  %538 = sext i32 %537 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %538)
          to label %539 unwind label %559

539:                                              ; preds = %526
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %538)
          to label %540 unwind label %559

540:                                              ; preds = %539
  %541 = sext i32 %528 to i64
  %542 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %541) #8
  %543 = sext i32 %530 to i64
  %544 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %543) #8
  %sext = shl i64 %532, 32
  %545 = ashr exact i64 %sext, 32
  %546 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %545) #8
  %547 = invoke noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef nonnull %542, ptr noundef nonnull %544, ptr noundef nonnull %546)
          to label %548 unwind label %561

548:                                              ; preds = %540
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %541) #8
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %543) #8
  %551 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %545) #8
  %552 = invoke noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef nonnull %549, ptr noundef nonnull %550, ptr noundef nonnull %551)
          to label %553 unwind label %561

553:                                              ; preds = %548
  %554 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %522) #8
  store i32 %533, ptr %554, align 4, !tbaa !29
  %555 = add nsw i32 %531, %533
  %556 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %522) #8
  store i32 %555, ptr %556, align 4, !tbaa !29
  %557 = sub nsw i32 %536, %531
  %558 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %522) #8
  store i32 %557, ptr %558, align 4, !tbaa !29
  br label %563

559:                                              ; preds = %539, %526
  %560 = landingpad { ptr, i32 }
          cleanup
  br label %607

561:                                              ; preds = %548, %540
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %607

563:                                              ; preds = %553, %.lr.ph388
  %564 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %522) #8
  %565 = load i32, ptr %564, align 4, !tbaa !29
  %566 = add nsw i32 %565, -1
  store i32 %566, ptr %564, align 4, !tbaa !29
  %567 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %522) #8
  %568 = load i32, ptr %567, align 4, !tbaa !29
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr %567, align 4, !tbaa !29
  %570 = load i32, ptr %18, align 4, !tbaa !29
  %571 = sext i32 %568 to i64
  %572 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %571) #8
  store i32 %570, ptr %572, align 4, !tbaa !29
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv454) #8
  %574 = load double, ptr %573, align 8, !tbaa !30
  %575 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %571) #8
  store double %574, ptr %575, align 8, !tbaa !30
  %indvars.iv.next455 = add nsw i64 %indvars.iv454, 1
  %576 = load i32, ptr %20, align 4, !tbaa !29
  %577 = sext i32 %576 to i64
  %578 = icmp slt i64 %indvars.iv.next455, %577
  br i1 %578, label %.lr.ph388, label %._crit_edge389, !llvm.loop !67

579:                                              ; preds = %._crit_edge389
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %92, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %580 unwind label %603

580:                                              ; preds = %579
  %581 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %420) #8
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 4 dereferenceable(4) %581)
          to label %582 unwind label %603

582:                                              ; preds = %580
  %583 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %420) #8
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 4 dereferenceable(4) %583)
          to label %584 unwind label %603

584:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #8
  %585 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %420) #8
  %586 = load i32, ptr %585, align 4, !tbaa !29
  %587 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %420) #8
  %588 = load i32, ptr %587, align 4, !tbaa !29
  %589 = add nsw i32 %588, %586
  %590 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %420) #8
  %591 = load i32, ptr %590, align 4, !tbaa !29
  %592 = sub i32 %589, %591
  store i32 %592, ptr %21, align 4, !tbaa !29
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %593 unwind label %605

593:                                              ; preds = %584
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  %594 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  %595 = trunc i64 %594 to i32
  %596 = load i32, ptr %18, align 4, !tbaa !29
  %597 = sext i32 %596 to i64
  %598 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef %597) #8
  store i32 %595, ptr %598, align 4, !tbaa !29
  %599 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %420) #8
  store i32 -1, ptr %599, align 4, !tbaa !29
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %96, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %600 unwind label %603

600:                                              ; preds = %593
  %601 = getelementptr inbounds double, ptr %56, i64 %indvars.iv457
  invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(8) %601)
          to label %602 unwind label %603

602:                                              ; preds = %600
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  %exitcond461.not = icmp eq i64 %indvars.iv.next458, %22
  br i1 %exitcond461.not, label %._crit_edge393, label %415, !llvm.loop !68

603:                                              ; preds = %600, %593, %582, %580, %579, %._crit_edge389
  %604 = landingpad { ptr, i32 }
          cleanup
  br label %607

605:                                              ; preds = %584
  %606 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  br label %607

607:                                              ; preds = %559, %561, %605, %603
  %.pn.pn = phi { ptr, i32 } [ %604, %603 ], [ %606, %605 ], [ %562, %561 ], [ %560, %559 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  br label %608

._crit_edge393:                                   ; preds = %602, %._crit_edge361
  call void @_ZdaPv(ptr noundef nonnull %24) #9
  call void @_ZdaPv(ptr noundef nonnull %25) #9
  call void @_ZdaPv(ptr noundef nonnull %35) #9
  call void @_ZdaPv(ptr noundef nonnull %36) #9
  call void @_ZdaPv(ptr noundef nonnull %37) #9
  call void @_ZdaPv(ptr noundef nonnull %55) #9
  call void @_ZdaPv(ptr noundef nonnull %56) #9
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  ret void

608:                                              ; preds = %607, %414
  %.pn290.pn = phi { ptr, i32 } [ %.pn290, %414 ], [ %.pn.pn, %607 ]
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  resume { ptr, i32 } %.pn290.pn
}

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

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

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPiS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt4copyIPdS0_ET0_T_S2_S1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z7pdqsortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr, ptr) local_unnamed_addr #4

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #6

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

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

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

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


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