; LLVM IR from todo314/pruned-monte-carlo :: src/pmc.ll (ZN15PrunedEstimater4initEiRSt6vectorISt4pairIiiESaIS2_EERS0_IiSaIiEE)

; 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" = 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::allocator" = type { i8 }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = 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.PrunedEstimater = type <{ i32, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.0", %"class.std::vector.0", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.0", i32, [4 x i8], %"class.std::vector.0", %"class.std::vector.0", i8, [7 x i8] }>
%"class.std::vector.0" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15PrunedEstimater4initEiRSt6vectorISt4pairIiiESaIS2_EERS0_IiSaIiEE(ptr noundef nonnull align 8 dereferenceable(457) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3) #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::vector", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::vector.4", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"struct.std::pair", align 4
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %37 = load ptr, ptr %5, align 8
  %38 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 19
  store i8 1, ptr %38, align 8, !tbaa !11
  %39 = load i32, ptr %6, align 4, !tbaa !9
  %40 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  store i32 %39, ptr %40, align 8, !tbaa !24
  %41 = load ptr, ptr %8, align 8, !tbaa !5
  %42 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #4
  %43 = trunc i64 %42 to i32
  %44 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 1
  store i32 %43, ptr %44, align 4, !tbaa !25
  %45 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 14
  %46 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %47 = load i32, ptr %46, align 8, !tbaa !24
  %48 = sext i32 %47 to i64
  call void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %45, i64 noundef %48, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  %49 = load ptr, ptr %7, align 8, !tbaa !5
  %50 = call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %49) #4
  %51 = trunc i64 %50 to i32
  store i32 %51, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #4
  %52 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %53 = load i32, ptr %52, align 8, !tbaa !24
  %54 = sext i32 %53 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %54, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %55 unwind label %65

55:                                               ; preds = %4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #4
  %56 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %57 = load i32, ptr %56, align 8, !tbaa !24
  %58 = sext i32 %57 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %58, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %59 unwind label %69

59:                                               ; preds = %55
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %60

60:                                               ; preds = %96, %59
  %61 = load i32, ptr %16, align 4, !tbaa !9
  %62 = load i32, ptr %9, align 4, !tbaa !9
  %63 = icmp slt i32 %61, %62
  br i1 %63, label %73, label %64

64:                                               ; preds = %60
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br label %99

65:                                               ; preds = %4
  %66 = landingpad { ptr, i32 }
          cleanup
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %12, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %13, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  br label %425

69:                                               ; preds = %55
  %70 = landingpad { ptr, i32 }
          cleanup
  %71 = extractvalue { ptr, i32 } %70, 0
  store ptr %71, ptr %12, align 8
  %72 = extractvalue { ptr, i32 } %70, 1
  store i32 %72, ptr %13, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  br label %424

73:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %74 = load ptr, ptr %7, align 8, !tbaa !5
  %75 = load i32, ptr %16, align 4, !tbaa !9
  %76 = sext i32 %75 to i64
  %77 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %74, i64 noundef %76) #4
  %78 = getelementptr inbounds %"struct.std::pair", ptr %77, i32 0, i32 0
  %79 = load i32, ptr %78, align 4, !tbaa !26
  store i32 %79, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  %80 = load ptr, ptr %7, align 8, !tbaa !5
  %81 = load i32, ptr %16, align 4, !tbaa !9
  %82 = sext i32 %81 to i64
  %83 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %82) #4
  %84 = getelementptr inbounds %"struct.std::pair", ptr %83, i32 0, i32 1
  %85 = load i32, ptr %84, align 4, !tbaa !28
  store i32 %85, ptr %18, align 4, !tbaa !9
  %86 = load i32, ptr %17, align 4, !tbaa !9
  %87 = sext i32 %86 to i64
  %88 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %87) #4
  %89 = load i32, ptr %88, align 4, !tbaa !9
  %90 = add nsw i32 %89, 1
  store i32 %90, ptr %88, align 4, !tbaa !9
  %91 = load i32, ptr %18, align 4, !tbaa !9
  %92 = sext i32 %91 to i64
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %92) #4
  %94 = load i32, ptr %93, align 4, !tbaa !9
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr %93, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %96

96:                                               ; preds = %73
  %97 = load i32, ptr %16, align 4, !tbaa !9
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr %16, align 4, !tbaa !9
  br label %60, !llvm.loop !29

99:                                               ; preds = %64
  %100 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 10
  %101 = load i32, ptr %9, align 4, !tbaa !9
  %102 = sext i32 %101 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 -1, ptr %19, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef %102, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %103 unwind label %130

103:                                              ; preds = %99
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  %104 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 11
  %105 = load i32, ptr %9, align 4, !tbaa !9
  %106 = sext i32 %105 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 -1, ptr %20, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %104, i64 noundef %106, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %107 unwind label %134

107:                                              ; preds = %103
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  %108 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %109 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %110 = load i32, ptr %109, align 8, !tbaa !24
  %111 = add nsw i32 %110, 1
  %112 = sext i32 %111 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 0, ptr %21, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %108, i64 noundef %112, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %113 unwind label %138

113:                                              ; preds = %107
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  %114 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %115 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %116 = load i32, ptr %115, align 8, !tbaa !24
  %117 = add nsw i32 %116, 1
  %118 = sext i32 %117 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %118, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %119 unwind label %142

119:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  %120 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %121 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef 0) #4
  store i32 0, ptr %121, align 4, !tbaa !9
  %122 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %123 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef 0) #4
  store i32 0, ptr %123, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %124

124:                                              ; preds = %179, %119
  %125 = load i32, ptr %23, align 4, !tbaa !9
  %126 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %127 = load i32, ptr %126, align 8, !tbaa !24
  %128 = icmp sle i32 %125, %127
  br i1 %128, label %146, label %129

129:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  br label %182

130:                                              ; preds = %99
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %12, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br label %423

134:                                              ; preds = %103
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %12, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  br label %423

138:                                              ; preds = %107
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %12, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %423

142:                                              ; preds = %113
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %12, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %423

146:                                              ; preds = %124
  %147 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %148 = load i32, ptr %23, align 4, !tbaa !9
  %149 = sub nsw i32 %148, 1
  %150 = sext i32 %149 to i64
  %151 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %150) #4
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = load i32, ptr %23, align 4, !tbaa !9
  %154 = sub nsw i32 %153, 1
  %155 = sext i32 %154 to i64
  %156 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %155) #4
  %157 = load i32, ptr %156, align 4, !tbaa !9
  %158 = add nsw i32 %152, %157
  %159 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %160 = load i32, ptr %23, align 4, !tbaa !9
  %161 = sext i32 %160 to i64
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %159, i64 noundef %161) #4
  store i32 %158, ptr %162, align 4, !tbaa !9
  %163 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %164 = load i32, ptr %23, align 4, !tbaa !9
  %165 = sub nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %163, i64 noundef %166) #4
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = load i32, ptr %23, align 4, !tbaa !9
  %170 = sub nsw i32 %169, 1
  %171 = sext i32 %170 to i64
  %172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %171) #4
  %173 = load i32, ptr %172, align 4, !tbaa !9
  %174 = add nsw i32 %168, %173
  %175 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %176 = load i32, ptr %23, align 4, !tbaa !9
  %177 = sext i32 %176 to i64
  %178 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %175, i64 noundef %177) #4
  store i32 %174, ptr %178, align 4, !tbaa !9
  br label %179

179:                                              ; preds = %146
  %180 = load i32, ptr %23, align 4, !tbaa !9
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr %23, align 4, !tbaa !9
  br label %124, !llvm.loop !31

182:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 0, ptr %24, align 4, !tbaa !9
  br label %183

183:                                              ; preds = %221, %182
  %184 = load i32, ptr %24, align 4, !tbaa !9
  %185 = load i32, ptr %9, align 4, !tbaa !9
  %186 = icmp slt i32 %184, %185
  br i1 %186, label %188, label %187

187:                                              ; preds = %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %224

188:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  %189 = load ptr, ptr %7, align 8, !tbaa !5
  %190 = load i32, ptr %24, align 4, !tbaa !9
  %191 = sext i32 %190 to i64
  %192 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %191) #4
  %193 = getelementptr inbounds %"struct.std::pair", ptr %192, i32 0, i32 0
  %194 = load i32, ptr %193, align 4, !tbaa !26
  store i32 %194, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  %195 = load ptr, ptr %7, align 8, !tbaa !5
  %196 = load i32, ptr %24, align 4, !tbaa !9
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #4
  %199 = getelementptr inbounds %"struct.std::pair", ptr %198, i32 0, i32 1
  %200 = load i32, ptr %199, align 4, !tbaa !28
  store i32 %200, ptr %26, align 4, !tbaa !9
  %201 = load i32, ptr %26, align 4, !tbaa !9
  %202 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 10
  %203 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %204 = load i32, ptr %25, align 4, !tbaa !9
  %205 = sext i32 %204 to i64
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %205) #4
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr %206, align 4, !tbaa !9
  %209 = sext i32 %207 to i64
  %210 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %209) #4
  store i32 %201, ptr %210, align 4, !tbaa !9
  %211 = load i32, ptr %25, align 4, !tbaa !9
  %212 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 11
  %213 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %214 = load i32, ptr %26, align 4, !tbaa !9
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %215) #4
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr %216, align 4, !tbaa !9
  %219 = sext i32 %217 to i64
  %220 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %219) #4
  store i32 %211, ptr %220, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  br label %221

221:                                              ; preds = %188
  %222 = load i32, ptr %24, align 4, !tbaa !9
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr %24, align 4, !tbaa !9
  br label %183, !llvm.loop !32

224:                                              ; preds = %187
  %225 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef 0) #4
  store i32 0, ptr %226, align 4, !tbaa !9
  %227 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %228 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %227, i64 noundef 0) #4
  store i32 0, ptr %228, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %268, %224
  %230 = load i32, ptr %27, align 4, !tbaa !9
  %231 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %232 = load i32, ptr %231, align 8, !tbaa !24
  %233 = icmp sle i32 %230, %232
  br i1 %233, label %235, label %234

234:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %271

235:                                              ; preds = %229
  %236 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %237 = load i32, ptr %27, align 4, !tbaa !9
  %238 = sub nsw i32 %237, 1
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %236, i64 noundef %239) #4
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = load i32, ptr %27, align 4, !tbaa !9
  %243 = sub nsw i32 %242, 1
  %244 = sext i32 %243 to i64
  %245 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %244) #4
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = add nsw i32 %241, %246
  %248 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 12
  %249 = load i32, ptr %27, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %250) #4
  store i32 %247, ptr %251, align 4, !tbaa !9
  %252 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %253 = load i32, ptr %27, align 4, !tbaa !9
  %254 = sub nsw i32 %253, 1
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %255) #4
  %257 = load i32, ptr %256, align 4, !tbaa !9
  %258 = load i32, ptr %27, align 4, !tbaa !9
  %259 = sub nsw i32 %258, 1
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %260) #4
  %262 = load i32, ptr %261, align 4, !tbaa !9
  %263 = add nsw i32 %257, %262
  %264 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 13
  %265 = load i32, ptr %27, align 4, !tbaa !9
  %266 = sext i32 %265 to i64
  %267 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %264, i64 noundef %266) #4
  store i32 %263, ptr %267, align 4, !tbaa !9
  br label %268

268:                                              ; preds = %235
  %269 = load i32, ptr %27, align 4, !tbaa !9
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr %27, align 4, !tbaa !9
  br label %229, !llvm.loop !33

271:                                              ; preds = %234
  %272 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 4
  %273 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %274 = load i32, ptr %273, align 8, !tbaa !24
  %275 = sext i32 %274 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %275)
          to label %276 unwind label %287

276:                                              ; preds = %271
  %277 = load ptr, ptr %8, align 8, !tbaa !5
  %278 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 3
  %279 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %278, ptr noundef nonnull align 8 dereferenceable(24) %277)
          to label %280 unwind label %287

280:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #4
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %299, %280
  %282 = load i32, ptr %29, align 4, !tbaa !9
  %283 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 1
  %284 = load i32, ptr %283, align 4, !tbaa !25
  %285 = icmp slt i32 %282, %284
  br i1 %285, label %291, label %286

286:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %306

287:                                              ; preds = %276, %271
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %12, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %13, align 4
  br label %423

291:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  %292 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 3
  %293 = load i32, ptr %29, align 4, !tbaa !9
  %294 = sext i32 %293 to i64
  %295 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %292, i64 noundef %294) #4
  %296 = invoke i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %295, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %297 unwind label %302

297:                                              ; preds = %291
  store i64 %296, ptr %30, align 4
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 4 dereferenceable(8) %30)
          to label %298 unwind label %302

298:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  br label %299

299:                                              ; preds = %298
  %300 = load i32, ptr %29, align 4, !tbaa !9
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr %29, align 4, !tbaa !9
  br label %281, !llvm.loop !34

302:                                              ; preds = %297, %291
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %12, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %422

306:                                              ; preds = %286
  %307 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  %308 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  store ptr %307, ptr %308, align 8
  %309 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  %310 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  store ptr %309, ptr %310, align 8
  %311 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  %312 = load ptr, ptr %311, align 8
  %313 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  %314 = load ptr, ptr %313, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %312, ptr %314)
          to label %315 unwind label %328

315:                                              ; preds = %306
  %316 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 6
  %317 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %318 = load i32, ptr %317, align 8, !tbaa !24
  %319 = add nsw i32 %318, 1
  %320 = sext i32 %319 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %316, i64 noundef %320)
          to label %321 unwind label %328

321:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %322

322:                                              ; preds = %350, %321
  %323 = load i32, ptr %33, align 4, !tbaa !9
  %324 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 1
  %325 = load i32, ptr %324, align 4, !tbaa !25
  %326 = icmp slt i32 %323, %325
  br i1 %326, label %332, label %327

327:                                              ; preds = %322
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  br label %357

328:                                              ; preds = %420, %385, %380, %315, %306
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %12, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %13, align 4
  br label %422

332:                                              ; preds = %322
  %333 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 5
  %334 = load i32, ptr %33, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %335) #4
  %337 = getelementptr inbounds %"struct.std::pair", ptr %336, i32 0, i32 1
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %333, ptr noundef nonnull align 4 dereferenceable(4) %337)
          to label %338 unwind label %353

338:                                              ; preds = %332
  %339 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 6
  %340 = load i32, ptr %33, align 4, !tbaa !9
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %341) #4
  %343 = getelementptr inbounds %"struct.std::pair", ptr %342, i32 0, i32 0
  %344 = load i32, ptr %343, align 4, !tbaa !26
  %345 = add nsw i32 %344, 1
  %346 = sext i32 %345 to i64
  %347 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %339, i64 noundef %346) #4
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr %347, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %338
  %351 = load i32, ptr %33, align 4, !tbaa !9
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr %33, align 4, !tbaa !9
  br label %322, !llvm.loop !35

353:                                              ; preds = %332
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %12, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  br label %422

357:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %358

358:                                              ; preds = %377, %357
  %359 = load i32, ptr %34, align 4, !tbaa !9
  %360 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %361 = load i32, ptr %360, align 8, !tbaa !24
  %362 = icmp sle i32 %359, %361
  br i1 %362, label %364, label %363

363:                                              ; preds = %358
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br label %380

364:                                              ; preds = %358
  %365 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 6
  %366 = load i32, ptr %34, align 4, !tbaa !9
  %367 = sub nsw i32 %366, 1
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %368) #4
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 6
  %372 = load i32, ptr %34, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %371, i64 noundef %373) #4
  %375 = load i32, ptr %374, align 4, !tbaa !9
  %376 = add nsw i32 %375, %370
  store i32 %376, ptr %374, align 4, !tbaa !9
  br label %377

377:                                              ; preds = %364
  %378 = load i32, ptr %34, align 4, !tbaa !9
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %34, align 4, !tbaa !9
  br label %358, !llvm.loop !36

380:                                              ; preds = %363
  %381 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 8
  %382 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %383 = load i32, ptr %382, align 8, !tbaa !24
  %384 = sext i32 %383 to i64
  invoke void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %381, i64 noundef %384, i1 noundef zeroext false)
          to label %385 unwind label %328

385:                                              ; preds = %380
  %386 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 9
  %387 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 0
  %388 = load i32, ptr %387, align 8, !tbaa !24
  %389 = sext i32 %388 to i64
  invoke void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %386, i64 noundef %389, i1 noundef zeroext false)
          to label %390 unwind label %328

390:                                              ; preds = %385
  %391 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 2
  %392 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 1
  %393 = load i32, ptr %392, align 4, !tbaa !25
  %394 = sext i32 %393 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  store i32 0, ptr %35, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef %394, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %395 unwind label %402

395:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  store i32 0, ptr %36, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %417, %395
  %397 = load i32, ptr %36, align 4, !tbaa !9
  %398 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 1
  %399 = load i32, ptr %398, align 4, !tbaa !25
  %400 = icmp slt i32 %397, %399
  br i1 %400, label %406, label %401

401:                                              ; preds = %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  br label %420

402:                                              ; preds = %390
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %12, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  br label %422

406:                                              ; preds = %396
  %407 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 2
  %408 = getelementptr inbounds %class.PrunedEstimater, ptr %37, i32 0, i32 3
  %409 = load i32, ptr %36, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %410) #4
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = sext i32 %412 to i64
  %414 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %413) #4
  %415 = load i32, ptr %414, align 4, !tbaa !9
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr %414, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %406
  %418 = load i32, ptr %36, align 4, !tbaa !9
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr %36, align 4, !tbaa !9
  br label %396, !llvm.loop !37

420:                                              ; preds = %401
  invoke void @_ZN15PrunedEstimater5firstEv(ptr noundef nonnull align 8 dereferenceable(457) %37)
          to label %421 unwind label %328

421:                                              ; preds = %420
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  ret void

422:                                              ; preds = %402, %353, %328, %302
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #4
  br label %423

423:                                              ; preds = %422, %287, %142, %138, %134, %130
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #4
  br label %424

424:                                              ; preds = %423, %69
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #4
  br label %425

425:                                              ; preds = %424, %65
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  br label %426

426:                                              ; preds = %425
  %427 = load ptr, ptr %12, align 8
  %428 = load i32, ptr %13, align 4
  %429 = insertvalue { ptr, i32 } poison, ptr %427, 0
  %430 = insertvalue { ptr, i32 } %429, i32 %428, 1
  resume { ptr, i32 } %430
}

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i1 noundef zeroext) #0 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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 @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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

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

; 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 uwtable
declare dso_local void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) #0 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)) #0

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

; 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15PrunedEstimater5firstEv(ptr noundef nonnull align 8 dereferenceable(457)) #0 align 2

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

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

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

attributes #0 = { 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 #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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !23, i64 456}
!12 = !{!"_ZTS15PrunedEstimater", !10, i64 0, !10, i64 4, !13, i64 8, !13, i64 32, !13, i64 56, !13, i64 80, !13, i64 104, !13, i64 128, !17, i64 152, !17, i64 192, !13, i64 232, !13, i64 256, !13, i64 280, !13, i64 304, !17, i64 328, !10, i64 368, !17, i64 376, !17, i64 416, !23, i64 456}
!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 = !{!"_ZTSSt6vectorIbSaIbEE", !18, i64 0}
!18 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !19, i64 0}
!19 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !21, i64 0, !21, i64 16, !6, i64 32}
!21 = !{!"_ZTSSt13_Bit_iterator", !22, i64 0}
!22 = !{!"_ZTSSt18_Bit_iterator_base", !6, i64 0, !10, i64 8}
!23 = !{!"bool", !7, i64 0}
!24 = !{!12, !10, i64 0}
!25 = !{!12, !10, i64 4}
!26 = !{!27, !10, i64 0}
!27 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!28 = !{!27, !10, i64 4}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}
!33 = distinct !{!33, !30}
!34 = distinct !{!34, !30}
!35 = distinct !{!35, !30}
!36 = distinct !{!36, !30}
!37 = distinct !{!37, !30}


; 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" = 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::allocator" = type { i8 }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = 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 uwtable
define dso_local void @_ZN15PrunedEstimater4initEiRSt6vectorISt4pairIiiESaIS2_EERS0_IiSaIiEE(ptr noundef nonnull align 8 dereferenceable(457) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::vector", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::vector.4", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"struct.std::pair", align 8
  %16 = alloca i32, align 4
  %17 = getelementptr inbounds i8, ptr %0, i64 456
  store i8 1, ptr %17, align 8, !tbaa !5
  store i32 %1, ptr %0, align 8, !tbaa !22
  %18 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #4
  %19 = trunc i64 %18 to i32
  %20 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 %19, ptr %20, align 4, !tbaa !23
  %21 = getelementptr inbounds i8, ptr %0, i64 328
  %22 = load i32, ptr %0, align 8, !tbaa !22
  %23 = sext i32 %22 to i64
  tail call void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %21, i64 noundef %23, i1 noundef zeroext false)
  %24 = tail call noundef i64 @_ZNKSt6vectorISt4pairIiiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #4
  %25 = trunc i64 %24 to i32
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #4
  %26 = load i32, ptr %0, align 8, !tbaa !22
  %27 = sext i32 %26 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %27, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %28 unwind label %35

28:                                               ; preds = %4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #4
  %29 = load i32, ptr %0, align 8, !tbaa !22
  %30 = sext i32 %29 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %30, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %31 unwind label %37

31:                                               ; preds = %28
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  %32 = icmp sgt i32 %25, 0
  br i1 %32, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %31
  %wide.trip.count = and i64 %24, 2147483647
  br label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %31
  %33 = getelementptr inbounds i8, ptr %0, i64 232
  %sext = shl i64 %24, 32
  %34 = ashr exact i64 %sext, 32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  store i32 -1, ptr %9, align 4, !tbaa !24
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %34, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %52 unwind label %68

35:                                               ; preds = %4
  %36 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  br label %210

37:                                               ; preds = %28
  %38 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  br label %209

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %39 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #4
  %40 = load i32, ptr %39, align 4, !tbaa !25
  %41 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #4
  %42 = getelementptr inbounds i8, ptr %41, i64 4
  %43 = load i32, ptr %42, align 4, !tbaa !27
  %44 = sext i32 %40 to i64
  %45 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %44) #4
  %46 = load i32, ptr %45, align 4, !tbaa !24
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr %45, align 4, !tbaa !24
  %48 = sext i32 %43 to i64
  %49 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %48) #4
  %50 = load i32, ptr %49, align 4, !tbaa !24
  %51 = add nsw i32 %50, 1
  store i32 %51, ptr %49, align 4, !tbaa !24
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !28

52:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  %53 = getelementptr inbounds i8, ptr %0, i64 256
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  store i32 -1, ptr %10, align 4, !tbaa !24
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %34, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %54 unwind label %70

54:                                               ; preds = %52
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  %55 = getelementptr inbounds i8, ptr %0, i64 280
  %56 = load i32, ptr %0, align 8, !tbaa !22
  %57 = add nsw i32 %56, 1
  %58 = sext i32 %57 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #4
  store i32 0, ptr %11, align 4, !tbaa !24
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %58, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %59 unwind label %72

59:                                               ; preds = %54
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  %60 = getelementptr inbounds i8, ptr %0, i64 304
  %61 = load i32, ptr %0, align 8, !tbaa !22
  %62 = add nsw i32 %61, 1
  %63 = sext i32 %62 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  store i32 0, ptr %12, align 4, !tbaa !24
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %63, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %64 unwind label %74

64:                                               ; preds = %59
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  %65 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef 0) #4
  store i32 0, ptr %65, align 4, !tbaa !24
  %66 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef 0) #4
  store i32 0, ptr %66, align 4, !tbaa !24
  %67 = load i32, ptr %0, align 8, !tbaa !22
  %.not80 = icmp slt i32 %67, 1
  br i1 %.not80, label %.preheader77, label %.lr.ph83

.preheader77:                                     ; preds = %.lr.ph83, %64
  br i1 %32, label %.lr.ph85.preheader, label %._crit_edge86

.lr.ph85.preheader:                               ; preds = %.preheader77
  %wide.trip.count116 = and i64 %24, 2147483647
  br label %.lr.ph85

68:                                               ; preds = %._crit_edge
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  br label %208

70:                                               ; preds = %52
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  br label %208

72:                                               ; preds = %54
  %73 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  br label %208

74:                                               ; preds = %59
  %75 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  br label %208

.lr.ph83:                                         ; preds = %64, %.lr.ph83
  %indvars.iv110 = phi i64 [ %indvars.iv.next111, %.lr.ph83 ], [ 1, %64 ]
  %76 = add nsw i64 %indvars.iv110, -1
  %77 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %76) #4
  %78 = load i32, ptr %77, align 4, !tbaa !24
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %76) #4
  %80 = load i32, ptr %79, align 4, !tbaa !24
  %81 = add nsw i32 %80, %78
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %indvars.iv110) #4
  store i32 %81, ptr %82, align 4, !tbaa !24
  %83 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %76) #4
  %84 = load i32, ptr %83, align 4, !tbaa !24
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %76) #4
  %86 = load i32, ptr %85, align 4, !tbaa !24
  %87 = add nsw i32 %86, %84
  %88 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %indvars.iv110) #4
  store i32 %87, ptr %88, align 4, !tbaa !24
  %indvars.iv.next111 = add nuw nsw i64 %indvars.iv110, 1
  %89 = load i32, ptr %0, align 8, !tbaa !22
  %90 = sext i32 %89 to i64
  %.not.not = icmp slt i64 %indvars.iv110, %90
  br i1 %.not.not, label %.lr.ph83, label %.preheader77, !llvm.loop !30

._crit_edge86:                                    ; preds = %.lr.ph85, %.preheader77
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef 0) #4
  store i32 0, ptr %91, align 4, !tbaa !24
  %92 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef 0) #4
  store i32 0, ptr %92, align 4, !tbaa !24
  %93 = load i32, ptr %0, align 8, !tbaa !22
  %.not7087 = icmp slt i32 %93, 1
  br i1 %.not7087, label %._crit_edge86.._crit_edge91_crit_edge, label %.lr.ph90

._crit_edge86.._crit_edge91_crit_edge:            ; preds = %._crit_edge86
  %.pre = sext i32 %93 to i64
  br label %._crit_edge91

.lr.ph85:                                         ; preds = %.lr.ph85.preheader, %.lr.ph85
  %indvars.iv113 = phi i64 [ 0, %.lr.ph85.preheader ], [ %indvars.iv.next114, %.lr.ph85 ]
  %94 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv113) #4
  %95 = load i32, ptr %94, align 4, !tbaa !25
  %96 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv113) #4
  %97 = getelementptr inbounds i8, ptr %96, i64 4
  %98 = load i32, ptr %97, align 4, !tbaa !27
  %99 = sext i32 %95 to i64
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %99) #4
  %101 = load i32, ptr %100, align 4, !tbaa !24
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr %100, align 4, !tbaa !24
  %103 = sext i32 %101 to i64
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef %103) #4
  store i32 %98, ptr %104, align 4, !tbaa !24
  %105 = sext i32 %98 to i64
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %105) #4
  %107 = load i32, ptr %106, align 4, !tbaa !24
  %108 = add nsw i32 %107, 1
  store i32 %108, ptr %106, align 4, !tbaa !24
  %109 = sext i32 %107 to i64
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %109) #4
  store i32 %95, ptr %110, align 4, !tbaa !24
  %indvars.iv.next114 = add nuw nsw i64 %indvars.iv113, 1
  %exitcond117.not = icmp eq i64 %indvars.iv.next114, %wide.trip.count116
  br i1 %exitcond117.not, label %._crit_edge86, label %.lr.ph85, !llvm.loop !31

._crit_edge91:                                    ; preds = %.lr.ph90, %._crit_edge86.._crit_edge91_crit_edge
  %.pre-phi = phi i64 [ %.pre, %._crit_edge86.._crit_edge91_crit_edge ], [ %126, %.lr.ph90 ]
  %111 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %.pre-phi)
          to label %127 unwind label %135

.lr.ph90:                                         ; preds = %._crit_edge86, %.lr.ph90
  %indvars.iv118 = phi i64 [ %indvars.iv.next119, %.lr.ph90 ], [ 1, %._crit_edge86 ]
  %112 = add nsw i64 %indvars.iv118, -1
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %112) #4
  %114 = load i32, ptr %113, align 4, !tbaa !24
  %115 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %112) #4
  %116 = load i32, ptr %115, align 4, !tbaa !24
  %117 = add nsw i32 %116, %114
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %indvars.iv118) #4
  store i32 %117, ptr %118, align 4, !tbaa !24
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %112) #4
  %120 = load i32, ptr %119, align 4, !tbaa !24
  %121 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %112) #4
  %122 = load i32, ptr %121, align 4, !tbaa !24
  %123 = add nsw i32 %122, %120
  %124 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %indvars.iv118) #4
  store i32 %123, ptr %124, align 4, !tbaa !24
  %indvars.iv.next119 = add nuw nsw i64 %indvars.iv118, 1
  %125 = load i32, ptr %0, align 8, !tbaa !22
  %126 = sext i32 %125 to i64
  %.not70.not = icmp slt i64 %indvars.iv118, %126
  br i1 %.not70.not, label %.lr.ph90, label %._crit_edge91, !llvm.loop !32

127:                                              ; preds = %._crit_edge91
  %128 = getelementptr inbounds i8, ptr %0, i64 32
  %129 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIiSaIiEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %130 unwind label %135

130:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #4
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #4
  store i32 0, ptr %14, align 4, !tbaa !24
  %131 = load i32, ptr %20, align 4, !tbaa !23
  %132 = icmp sgt i32 %131, 0
  br i1 %132, label %.lr.ph94, label %._crit_edge95

._crit_edge95:                                    ; preds = %141, %130
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  %133 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  %134 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %133, ptr %134)
          to label %148 unwind label %157

135:                                              ; preds = %127, %._crit_edge91
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %208

.lr.ph94:                                         ; preds = %130, %141
  %storemerge92 = phi i32 [ %143, %141 ], [ 0, %130 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #4
  %137 = sext i32 %storemerge92 to i64
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %137) #4
  %139 = invoke i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %138, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %140 unwind label %146

140:                                              ; preds = %.lr.ph94
  store i64 %139, ptr %15, align 8
  invoke void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 4 dereferenceable(8) %15)
          to label %141 unwind label %146

141:                                              ; preds = %140
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  %142 = load i32, ptr %14, align 4, !tbaa !24
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr %14, align 4, !tbaa !24
  %144 = load i32, ptr %20, align 4, !tbaa !23
  %145 = icmp slt i32 %143, %144
  br i1 %145, label %.lr.ph94, label %._crit_edge95, !llvm.loop !33

146:                                              ; preds = %140, %.lr.ph94
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  br label %207

148:                                              ; preds = %._crit_edge95
  %149 = getelementptr inbounds i8, ptr %0, i64 104
  %150 = load i32, ptr %0, align 8, !tbaa !22
  %151 = add nsw i32 %150, 1
  %152 = sext i32 %151 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %152)
          to label %.preheader76 unwind label %157

.preheader76:                                     ; preds = %148
  %153 = load i32, ptr %20, align 4, !tbaa !23
  %154 = icmp sgt i32 %153, 0
  br i1 %154, label %.lr.ph97, label %.preheader

.lr.ph97:                                         ; preds = %.preheader76
  %155 = getelementptr inbounds i8, ptr %0, i64 80
  br label %159

.preheader:                                       ; preds = %162, %.preheader76
  %156 = load i32, ptr %0, align 8, !tbaa !22
  %.not7198 = icmp slt i32 %156, 1
  br i1 %.not7198, label %.preheader.._crit_edge101_crit_edge, label %.lr.ph100

.preheader.._crit_edge101_crit_edge:              ; preds = %.preheader
  %.pre130 = sext i32 %156 to i64
  br label %._crit_edge101

157:                                              ; preds = %._crit_edge106, %184, %._crit_edge101, %148, %._crit_edge95
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %207

159:                                              ; preds = %.lr.ph97, %162
  %indvars.iv121 = phi i64 [ 0, %.lr.ph97 ], [ %indvars.iv.next122, %162 ]
  %160 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv121) #4
  %161 = getelementptr inbounds i8, ptr %160, i64 4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %155, ptr noundef nonnull align 4 dereferenceable(4) %161)
          to label %162 unwind label %173

162:                                              ; preds = %159
  %163 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorISt4pairIiiESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %indvars.iv121) #4
  %164 = load i32, ptr %163, align 4, !tbaa !25
  %165 = add nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %166) #4
  %168 = load i32, ptr %167, align 4, !tbaa !24
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr %167, align 4, !tbaa !24
  %indvars.iv.next122 = add nuw nsw i64 %indvars.iv121, 1
  %170 = load i32, ptr %20, align 4, !tbaa !23
  %171 = sext i32 %170 to i64
  %172 = icmp slt i64 %indvars.iv.next122, %171
  br i1 %172, label %159, label %.preheader, !llvm.loop !34

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

._crit_edge101:                                   ; preds = %.lr.ph100, %.preheader.._crit_edge101_crit_edge
  %.pre-phi131 = phi i64 [ %.pre130, %.preheader.._crit_edge101_crit_edge ], [ %183, %.lr.ph100 ]
  %175 = getelementptr inbounds i8, ptr %0, i64 152
  invoke void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %175, i64 noundef %.pre-phi131, i1 noundef zeroext false)
          to label %184 unwind label %157

.lr.ph100:                                        ; preds = %.preheader, %.lr.ph100
  %indvars.iv124 = phi i64 [ %indvars.iv.next125, %.lr.ph100 ], [ 1, %.preheader ]
  %176 = add nsw i64 %indvars.iv124, -1
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %176) #4
  %178 = load i32, ptr %177, align 4, !tbaa !24
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %indvars.iv124) #4
  %180 = load i32, ptr %179, align 4, !tbaa !24
  %181 = add nsw i32 %180, %178
  store i32 %181, ptr %179, align 4, !tbaa !24
  %indvars.iv.next125 = add nuw nsw i64 %indvars.iv124, 1
  %182 = load i32, ptr %0, align 8, !tbaa !22
  %183 = sext i32 %182 to i64
  %.not71.not = icmp slt i64 %indvars.iv124, %183
  br i1 %.not71.not, label %.lr.ph100, label %._crit_edge101, !llvm.loop !35

184:                                              ; preds = %._crit_edge101
  %185 = getelementptr inbounds i8, ptr %0, i64 192
  %186 = load i32, ptr %0, align 8, !tbaa !22
  %187 = sext i32 %186 to i64
  invoke void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40) %185, i64 noundef %187, i1 noundef zeroext false)
          to label %188 unwind label %157

188:                                              ; preds = %184
  %189 = getelementptr inbounds i8, ptr %0, i64 8
  %190 = load i32, ptr %20, align 4, !tbaa !23
  %191 = sext i32 %190 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  store i32 0, ptr %16, align 4, !tbaa !24
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEmRKi(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %191, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %192 unwind label %195

192:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  %193 = load i32, ptr %20, align 4, !tbaa !23
  %194 = icmp sgt i32 %193, 0
  br i1 %194, label %.lr.ph105, label %._crit_edge106

._crit_edge106:                                   ; preds = %.lr.ph105, %192
  invoke void @_ZN15PrunedEstimater5firstEv(ptr noundef nonnull align 8 dereferenceable(457) %0)
          to label %206 unwind label %157

195:                                              ; preds = %188
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  br label %207

.lr.ph105:                                        ; preds = %192, %.lr.ph105
  %indvars.iv127 = phi i64 [ %indvars.iv.next128, %.lr.ph105 ], [ 0, %192 ]
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %128, i64 noundef %indvars.iv127) #4
  %198 = load i32, ptr %197, align 4, !tbaa !24
  %199 = sext i32 %198 to i64
  %200 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %199) #4
  %201 = load i32, ptr %200, align 4, !tbaa !24
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr %200, align 4, !tbaa !24
  %indvars.iv.next128 = add nuw nsw i64 %indvars.iv127, 1
  %203 = load i32, ptr %20, align 4, !tbaa !23
  %204 = sext i32 %203 to i64
  %205 = icmp slt i64 %indvars.iv.next128, %204
  br i1 %205, label %.lr.ph105, label %._crit_edge106, !llvm.loop !36

206:                                              ; preds = %._crit_edge106
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #4
  ret void

207:                                              ; preds = %195, %173, %157, %146
  %.pn = phi { ptr, i32 } [ %147, %146 ], [ %174, %173 ], [ %158, %157 ], [ %196, %195 ]
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #4
  br label %208

208:                                              ; preds = %207, %135, %74, %72, %70, %68
  %.pn.pn = phi { ptr, i32 } [ %.pn, %207 ], [ %136, %135 ], [ %75, %74 ], [ %73, %72 ], [ %71, %70 ], [ %69, %68 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #4
  br label %209

209:                                              ; preds = %208, %37
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %208 ], [ %38, %37 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #4
  br label %210

210:                                              ; preds = %209, %35
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %209 ], [ %36, %35 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #4
  resume { ptr, i32 } %.pn.pn.pn.pn
}

; 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 uwtable
declare dso_local void @_ZNSt6vectorIbSaIbEE6resizeEmb(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i1 noundef zeroext) local_unnamed_addr #0 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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 @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

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

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

; 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 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 #0 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 #0

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

; 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: 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 #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15PrunedEstimater5firstEv(ptr noundef nonnull align 8 dereferenceable(457)) local_unnamed_addr #0 align 2

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

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

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

attributes #0 = { 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 #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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !21, i64 456}
!6 = !{!"_ZTS15PrunedEstimater", !7, i64 0, !7, i64 4, !10, i64 8, !10, i64 32, !10, i64 56, !10, i64 80, !10, i64 104, !10, i64 128, !15, i64 152, !15, i64 192, !10, i64 232, !10, i64 256, !10, i64 280, !10, i64 304, !15, i64 328, !7, i64 368, !15, i64 376, !15, i64 416, !21, i64 456}
!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 = !{!"_ZTSSt6vectorIbSaIbEE", !16, i64 0}
!16 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !17, i64 0}
!17 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !19, i64 0, !19, i64 16, !14, i64 32}
!19 = !{!"_ZTSSt13_Bit_iterator", !20, i64 0}
!20 = !{!"_ZTSSt18_Bit_iterator_base", !14, i64 0, !7, i64 8}
!21 = !{!"bool", !8, i64 0}
!22 = !{!6, !7, i64 0}
!23 = !{!6, !7, i64 4}
!24 = !{!7, !7, i64 0}
!25 = !{!26, !7, i64 0}
!26 = !{!"_ZTSSt4pairIiiE", !7, i64 0, !7, i64 4}
!27 = !{!26, !7, i64 4}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}
!35 = distinct !{!35, !29}
!36 = distinct !{!36, !29}


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