; LLVM IR from sympiler/nasoq :: src/symbolic (Partitioning)

; 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.__gnu_cxx::__normal_iterator.5" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.7" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.6" = type { ptr }

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN5nasoq12partitioningEiPiS0_S0_S0_S0_iiRiS0_S0_RSt6vectorIS2_IiSaIiEESaIS4_EE(i32 noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i32 noundef %6, i32 noundef %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(24) %11) #0 personality ptr @__gxx_personality_v0 {
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::vector", align 8
  %30 = alloca %"class.std::vector", align 8
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.std::vector", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.7", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  store i32 %0, ptr %13, align 4, !tbaa !5
  store ptr %1, ptr %14, align 8, !tbaa !9
  store ptr %2, ptr %15, align 8, !tbaa !9
  store ptr %3, ptr %16, align 8, !tbaa !9
  store ptr %4, ptr %17, align 8, !tbaa !9
  store ptr %5, ptr %18, align 8, !tbaa !9
  store i32 %6, ptr %19, align 4, !tbaa !5
  store i32 %7, ptr %20, align 4, !tbaa !5
  store ptr %8, ptr %21, align 8, !tbaa !9
  store ptr %9, ptr %22, align 8, !tbaa !9
  store ptr %10, ptr %23, align 8, !tbaa !9
  store ptr %11, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %63 = load i32, ptr %13, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = call noalias noundef nonnull ptr @_Znam(i64 noundef %64) #7
  call void @llvm.memset.p0.i64(ptr align 1 %65, i8 0, i64 %64, i1 false)
  store ptr %65, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %66 = load i32, ptr %13, align 4, !tbaa !5
  %67 = sext i32 %66 to i64
  %68 = call noalias noundef nonnull ptr @_Znam(i64 noundef %67) #7
  call void @llvm.memset.p0.i64(ptr align 1 %68, i8 0, i64 %67, i1 false)
  store ptr %68, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 0, ptr %28, align 4, !tbaa !5
  %69 = load i32, ptr %19, align 4, !tbaa !5
  %70 = load i32, ptr %20, align 4, !tbaa !5
  %71 = sdiv i32 %69, %70
  store i32 %71, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #6
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #6
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #6
  %72 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %73 unwind label %80

73:                                               ; preds = %12
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  store i32 0, ptr %33, align 4, !tbaa !5
  %74 = load ptr, ptr %21, align 8, !tbaa !9
  store i32 0, ptr %74, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  store i32 0, ptr %34, align 4, !tbaa !5
  br label %75

75:                                               ; preds = %443, %73
  %76 = load i32, ptr %34, align 4, !tbaa !5
  %77 = load i32, ptr %13, align 4, !tbaa !5
  %78 = icmp slt i32 %76, %77
  br i1 %78, label %84, label %79

79:                                               ; preds = %75
  store i32 2, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %447

80:                                               ; preds = %12
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %31, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %32, align 4
  br label %517

84:                                               ; preds = %75
  %85 = load ptr, ptr %14, align 8, !tbaa !9
  %86 = load i32, ptr %34, align 4, !tbaa !5
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds i32, ptr %85, i64 %87
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = icmp eq i32 %89, -2
  br i1 %90, label %91, label %92

91:                                               ; preds = %84
  br label %443

92:                                               ; preds = %84
  %93 = load ptr, ptr %25, align 8, !tbaa !9
  %94 = load i32, ptr %34, align 4, !tbaa !5
  %95 = sext i32 %94 to i64
  %96 = getelementptr inbounds i8, ptr %93, i64 %95
  %97 = load i8, ptr %96, align 1, !tbaa !11, !range !13, !noundef !14
  %98 = trunc i8 %97 to i1
  br i1 %98, label %442, label %99

99:                                               ; preds = %92
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %100 unwind label %191

100:                                              ; preds = %99
  br label %101

101:                                              ; preds = %432, %100
  %102 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %103 = icmp ne i64 %102, 0
  br i1 %103, label %104, label %433

104:                                              ; preds = %101
  %105 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef 0) #6
  %106 = load i32, ptr %105, align 4, !tbaa !5
  store i32 %106, ptr %28, align 4, !tbaa !5
  %107 = load ptr, ptr %18, align 8, !tbaa !9
  %108 = load i32, ptr %28, align 4, !tbaa !5
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds i32, ptr %107, i64 %109
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %113, label %215

113:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %114 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %115 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %114, ptr %115, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  %116 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %36, i32 0, i32 0
  %117 = load ptr, ptr %116, align 8
  %118 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %117)
          to label %119 unwind label %195

119:                                              ; preds = %113
  %120 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %118, ptr %120, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  %121 = load ptr, ptr %24, align 8, !tbaa !9
  %122 = load i32, ptr %33, align 4, !tbaa !5
  %123 = sext i32 %122 to i64
  %124 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef %123) #6
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %125 unwind label %191

125:                                              ; preds = %119
  %126 = load ptr, ptr %15, align 8, !tbaa !9
  %127 = load i32, ptr %28, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds i32, ptr %126, i64 %128
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = load ptr, ptr %22, align 8, !tbaa !9
  %132 = load i32, ptr %33, align 4, !tbaa !5
  %133 = sext i32 %132 to i64
  %134 = getelementptr inbounds i32, ptr %131, i64 %133
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = add nsw i32 %135, %130
  store i32 %136, ptr %134, align 4, !tbaa !5
  %137 = load ptr, ptr %25, align 8, !tbaa !9
  %138 = load i32, ptr %28, align 4, !tbaa !5
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds i8, ptr %137, i64 %139
  store i8 1, ptr %140, align 1, !tbaa !11
  %141 = load ptr, ptr %14, align 8, !tbaa !9
  %142 = load i32, ptr %28, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds i32, ptr %141, i64 %143
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = icmp sge i32 %145, 0
  br i1 %146, label %147, label %213

147:                                              ; preds = %125
  %148 = load ptr, ptr %18, align 8, !tbaa !9
  %149 = load ptr, ptr %14, align 8, !tbaa !9
  %150 = load i32, ptr %28, align 4, !tbaa !5
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds i32, ptr %149, i64 %151
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds i32, ptr %148, i64 %154
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = add nsw i32 %156, -1
  store i32 %157, ptr %155, align 4, !tbaa !5
  %158 = load ptr, ptr %25, align 8, !tbaa !9
  %159 = load ptr, ptr %14, align 8, !tbaa !9
  %160 = load i32, ptr %28, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds i32, ptr %159, i64 %161
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds i8, ptr %158, i64 %164
  %166 = load i8, ptr %165, align 1, !tbaa !11, !range !13, !noundef !14
  %167 = trunc i8 %166 to i1
  br i1 %167, label %212, label %168

168:                                              ; preds = %147
  %169 = load ptr, ptr %26, align 8, !tbaa !9
  %170 = load ptr, ptr %14, align 8, !tbaa !9
  %171 = load i32, ptr %28, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds i32, ptr %170, i64 %172
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds i8, ptr %169, i64 %175
  %177 = load i8, ptr %176, align 1, !tbaa !11, !range !13, !noundef !14
  %178 = trunc i8 %177 to i1
  br i1 %178, label %203, label %179

179:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %180 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %181 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  store ptr %180, ptr %181, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #6
  %182 = load ptr, ptr %14, align 8, !tbaa !9
  %183 = load i32, ptr %28, align 4, !tbaa !5
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds i32, ptr %182, i64 %184
  %186 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %39, i32 0, i32 0
  %187 = load ptr, ptr %186, align 8
  %188 = invoke ptr @_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EERS4_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %187, ptr noundef nonnull align 4 dereferenceable(4) %185)
          to label %189 unwind label %199

189:                                              ; preds = %179
  %190 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  store ptr %188, ptr %190, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %203

191:                                              ; preds = %119, %99
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %31, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %32, align 4
  br label %446

195:                                              ; preds = %113
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %31, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %446

199:                                              ; preds = %179
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %31, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %446

203:                                              ; preds = %189, %168
  %204 = load ptr, ptr %26, align 8, !tbaa !9
  %205 = load ptr, ptr %14, align 8, !tbaa !9
  %206 = load i32, ptr %28, align 4, !tbaa !5
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds i32, ptr %205, i64 %207
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds i8, ptr %204, i64 %210
  store i8 1, ptr %211, align 1, !tbaa !11
  br label %212

212:                                              ; preds = %203, %147
  br label %214

213:                                              ; preds = %125
  br label %433

214:                                              ; preds = %212
  br label %339

215:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  %216 = load ptr, ptr %16, align 8, !tbaa !9
  %217 = load i32, ptr %28, align 4, !tbaa !5
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds i32, ptr %216, i64 %218
  %220 = load i32, ptr %219, align 4, !tbaa !5
  store i32 %220, ptr %42, align 4, !tbaa !5
  br label %221

221:                                              ; preds = %334, %215
  %222 = load i32, ptr %42, align 4, !tbaa !5
  %223 = load ptr, ptr %16, align 8, !tbaa !9
  %224 = load i32, ptr %28, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds i32, ptr %223, i64 %226
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = icmp slt i32 %222, %228
  br i1 %229, label %231, label %230

230:                                              ; preds = %221
  store i32 7, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %338

231:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  %232 = load ptr, ptr %17, align 8, !tbaa !9
  %233 = load i32, ptr %42, align 4, !tbaa !5
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds i32, ptr %232, i64 %234
  %236 = load i32, ptr %235, align 4, !tbaa !5
  store i32 %236, ptr %43, align 4, !tbaa !5
  %237 = load ptr, ptr %25, align 8, !tbaa !9
  %238 = load i32, ptr %43, align 4, !tbaa !5
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds i8, ptr %237, i64 %239
  %241 = load i8, ptr %240, align 1, !tbaa !11, !range !13, !noundef !14
  %242 = trunc i8 %241 to i1
  br i1 %242, label %333, label %243

243:                                              ; preds = %231
  %244 = load ptr, ptr %18, align 8, !tbaa !9
  %245 = load i32, ptr %43, align 4, !tbaa !5
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds i32, ptr %244, i64 %246
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = icmp eq i32 %248, 0
  br i1 %249, label %250, label %320

250:                                              ; preds = %243
  %251 = load ptr, ptr %25, align 8, !tbaa !9
  %252 = load i32, ptr %28, align 4, !tbaa !5
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds i8, ptr %251, i64 %253
  %255 = load i8, ptr %254, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc i8 %255 to i1
  br i1 %256, label %285, label %257

257:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  %258 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %258, ptr %44, align 4, !tbaa !5
  %259 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %260 = icmp ugt i64 %259, 0
  br i1 %260, label %261, label %280

261:                                              ; preds = %257
  br label %262

262:                                              ; preds = %269, %261
  %263 = load i32, ptr %44, align 4, !tbaa !5
  %264 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %265 = sub i64 %264, 1
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %265) #6
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = icmp ne i32 %263, %267
  br i1 %268, label %269, label %279

269:                                              ; preds = %262
  %270 = load ptr, ptr %26, align 8, !tbaa !9
  %271 = load i32, ptr %44, align 4, !tbaa !5
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds i8, ptr %270, i64 %272
  store i8 1, ptr %273, align 1, !tbaa !11
  %274 = load ptr, ptr %14, align 8, !tbaa !9
  %275 = load i32, ptr %44, align 4, !tbaa !5
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds i32, ptr %274, i64 %276
  %278 = load i32, ptr %277, align 4, !tbaa !5
  store i32 %278, ptr %44, align 4, !tbaa !5
  br label %262, !llvm.loop !15

279:                                              ; preds = %262
  br label %280

280:                                              ; preds = %279, %257
  %281 = load ptr, ptr %26, align 8, !tbaa !9
  %282 = load i32, ptr %44, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds i8, ptr %281, i64 %283
  store i8 1, ptr %284, align 1, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  br label %285

285:                                              ; preds = %280, %250
  %286 = load ptr, ptr %24, align 8, !tbaa !9
  %287 = load i32, ptr %33, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %286, i64 noundef %288) #6
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %289, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %290 unwind label %316

290:                                              ; preds = %285
  %291 = load ptr, ptr %15, align 8, !tbaa !9
  %292 = load i32, ptr %43, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds i32, ptr %291, i64 %293
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = load ptr, ptr %22, align 8, !tbaa !9
  %297 = load i32, ptr %33, align 4, !tbaa !5
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds i32, ptr %296, i64 %298
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = add nsw i32 %300, %295
  store i32 %301, ptr %299, align 4, !tbaa !5
  %302 = load ptr, ptr %25, align 8, !tbaa !9
  %303 = load i32, ptr %43, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds i8, ptr %302, i64 %304
  store i8 1, ptr %305, align 1, !tbaa !11
  %306 = load ptr, ptr %18, align 8, !tbaa !9
  %307 = load ptr, ptr %14, align 8, !tbaa !9
  %308 = load i32, ptr %43, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds i32, ptr %307, i64 %309
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds i32, ptr %306, i64 %312
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = add nsw i32 %314, -1
  store i32 %315, ptr %313, align 4, !tbaa !5
  br label %332

316:                                              ; preds = %285
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %31, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %32, align 4
  br label %337

320:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %321 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %322 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %46, i32 0, i32 0
  store ptr %321, ptr %322, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #6
  %323 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %45, i32 0, i32 0
  %324 = load ptr, ptr %323, align 8
  %325 = invoke ptr @_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EERS4_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %324, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %326 unwind label %328

326:                                              ; preds = %320
  %327 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %47, i32 0, i32 0
  store ptr %325, ptr %327, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %332

328:                                              ; preds = %320
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %31, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %337

332:                                              ; preds = %326, %290
  br label %333

333:                                              ; preds = %332, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  br label %334

334:                                              ; preds = %333
  %335 = load i32, ptr %42, align 4, !tbaa !5
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr %42, align 4, !tbaa !5
  br label %221, !llvm.loop !17

337:                                              ; preds = %328, %316
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %446

338:                                              ; preds = %230
  br label %339

339:                                              ; preds = %338, %214
  %340 = load ptr, ptr %22, align 8, !tbaa !9
  %341 = load i32, ptr %33, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds i32, ptr %340, i64 %342
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = load i32, ptr %27, align 4, !tbaa !5
  %346 = icmp sgt i32 %344, %345
  br i1 %346, label %347, label %432

347:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %348

348:                                              ; preds = %413, %347
  %349 = load i32, ptr %48, align 4, !tbaa !5
  %350 = sext i32 %349 to i64
  %351 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %352 = icmp ult i64 %350, %351
  br i1 %352, label %354, label %353

353:                                              ; preds = %348
  store i32 12, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %416

354:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  %355 = load i32, ptr %48, align 4, !tbaa !5
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %356) #6
  %358 = load i32, ptr %357, align 4, !tbaa !5
  store i32 %358, ptr %49, align 4, !tbaa !5
  %359 = load ptr, ptr %26, align 8, !tbaa !9
  %360 = load i32, ptr %49, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds i8, ptr %359, i64 %361
  %363 = load i8, ptr %362, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %412

365:                                              ; preds = %354
  %366 = load ptr, ptr %24, align 8, !tbaa !9
  %367 = load i32, ptr %33, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %368) #6
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %369, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %370 unwind label %407

370:                                              ; preds = %365
  %371 = load ptr, ptr %15, align 8, !tbaa !9
  %372 = load i32, ptr %49, align 4, !tbaa !5
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds i32, ptr %371, i64 %373
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = load ptr, ptr %22, align 8, !tbaa !9
  %377 = load i32, ptr %33, align 4, !tbaa !5
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i32, ptr %376, i64 %378
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = add nsw i32 %380, %375
  store i32 %381, ptr %379, align 4, !tbaa !5
  %382 = load ptr, ptr %25, align 8, !tbaa !9
  %383 = load i32, ptr %49, align 4, !tbaa !5
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds i8, ptr %382, i64 %384
  store i8 1, ptr %385, align 1, !tbaa !11
  %386 = load ptr, ptr %26, align 8, !tbaa !9
  %387 = load i32, ptr %49, align 4, !tbaa !5
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds i8, ptr %386, i64 %388
  store i8 0, ptr %389, align 1, !tbaa !11
  %390 = load ptr, ptr %14, align 8, !tbaa !9
  %391 = load i32, ptr %49, align 4, !tbaa !5
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds i32, ptr %390, i64 %392
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = icmp sge i32 %394, 0
  br i1 %395, label %396, label %411

396:                                              ; preds = %370
  %397 = load ptr, ptr %18, align 8, !tbaa !9
  %398 = load ptr, ptr %14, align 8, !tbaa !9
  %399 = load i32, ptr %49, align 4, !tbaa !5
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds i32, ptr %398, i64 %400
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds i32, ptr %397, i64 %403
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = add nsw i32 %405, -1
  store i32 %406, ptr %404, align 4, !tbaa !5
  br label %411

407:                                              ; preds = %365
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %31, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %446

411:                                              ; preds = %396, %370
  br label %412

412:                                              ; preds = %411, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  br label %413

413:                                              ; preds = %412
  %414 = load i32, ptr %48, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr %48, align 4, !tbaa !5
  br label %348, !llvm.loop !18

416:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  %417 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %418 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %51, i32 0, i32 0
  store ptr %417, ptr %418, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  %419 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  %420 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %53, i32 0, i32 0
  store ptr %419, ptr %420, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #6
  %421 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %50, i32 0, i32 0
  %422 = load ptr, ptr %421, align 8
  %423 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.5", ptr %52, i32 0, i32 0
  %424 = load ptr, ptr %423, align 8
  %425 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %422, ptr %424)
          to label %426 unwind label %428

426:                                              ; preds = %416
  %427 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %425, ptr %427, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %433

428:                                              ; preds = %416
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %31, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %446

432:                                              ; preds = %339
  br label %101, !llvm.loop !19

433:                                              ; preds = %426, %213, %101
  %434 = load i32, ptr %33, align 4, !tbaa !5
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #6
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #6
  %436 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %436, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %437 unwind label %438

437:                                              ; preds = %433
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #6
  br label %442

438:                                              ; preds = %433
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %31, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %32, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #6
  br label %446

442:                                              ; preds = %437, %92
  br label %443

443:                                              ; preds = %442, %91
  %444 = load i32, ptr %34, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %34, align 4, !tbaa !5
  br label %75, !llvm.loop !20

446:                                              ; preds = %438, %428, %407, %337, %199, %195, %191
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %516

447:                                              ; preds = %79
  %448 = load ptr, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  %449 = load ptr, ptr %24, align 8, !tbaa !9
  %450 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %449) #6
  %451 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.6", ptr %59, i32 0, i32 0
  store ptr %450, ptr %451, align 8
  %452 = load ptr, ptr %24, align 8, !tbaa !9
  %453 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %452) #6
  %454 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %59, i64 noundef %453) #6
  %455 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.6", ptr %58, i32 0, i32 0
  store ptr %454, ptr %455, align 8
  %456 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %58, i64 noundef 1) #6
  %457 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.6", ptr %57, i32 0, i32 0
  store ptr %456, ptr %457, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES1_IS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  %458 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.7", ptr %56, i32 0, i32 0
  %459 = load ptr, ptr %458, align 8
  %460 = invoke ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %448, ptr %459)
          to label %461 unwind label %470

461:                                              ; preds = %447
  %462 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.6", ptr %60, i32 0, i32 0
  store ptr %460, ptr %462, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  %463 = load i32, ptr %33, align 4, !tbaa !5
  %464 = load ptr, ptr %21, align 8, !tbaa !9
  store i32 %463, ptr %464, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  store i32 0, ptr %61, align 4, !tbaa !5
  br label %465

465:                                              ; preds = %502, %461
  %466 = load i32, ptr %61, align 4, !tbaa !5
  %467 = load i32, ptr %33, align 4, !tbaa !5
  %468 = icmp slt i32 %466, %467
  br i1 %468, label %474, label %469

469:                                              ; preds = %465
  store i32 15, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  br label %505

470:                                              ; preds = %447
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %31, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  br label %516

474:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  store i32 0, ptr %62, align 4, !tbaa !5
  br label %475

475:                                              ; preds = %498, %474
  %476 = load i32, ptr %62, align 4, !tbaa !5
  %477 = sext i32 %476 to i64
  %478 = load ptr, ptr %24, align 8, !tbaa !9
  %479 = load i32, ptr %61, align 4, !tbaa !5
  %480 = sext i32 %479 to i64
  %481 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %478, i64 noundef %480) #6
  %482 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %481) #6
  %483 = icmp ult i64 %477, %482
  br i1 %483, label %485, label %484

484:                                              ; preds = %475
  store i32 18, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %501

485:                                              ; preds = %475
  %486 = load i32, ptr %61, align 4, !tbaa !5
  %487 = load ptr, ptr %23, align 8, !tbaa !9
  %488 = load ptr, ptr %24, align 8, !tbaa !9
  %489 = load i32, ptr %61, align 4, !tbaa !5
  %490 = sext i32 %489 to i64
  %491 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %488, i64 noundef %490) #6
  %492 = load i32, ptr %62, align 4, !tbaa !5
  %493 = sext i32 %492 to i64
  %494 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %491, i64 noundef %493) #6
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds i32, ptr %487, i64 %496
  store i32 %486, ptr %497, align 4, !tbaa !5
  br label %498

498:                                              ; preds = %485
  %499 = load i32, ptr %62, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr %62, align 4, !tbaa !5
  br label %475, !llvm.loop !21

501:                                              ; preds = %484
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %61, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %61, align 4, !tbaa !5
  br label %465, !llvm.loop !22

505:                                              ; preds = %469
  %506 = load ptr, ptr %26, align 8, !tbaa !9
  %507 = icmp eq ptr %506, null
  br i1 %507, label %509, label %508

508:                                              ; preds = %505
  call void @_ZdaPv(ptr noundef %506) #8
  br label %509

509:                                              ; preds = %508, %505
  %510 = load ptr, ptr %25, align 8, !tbaa !9
  %511 = icmp eq ptr %510, null
  br i1 %511, label %513, label %512

512:                                              ; preds = %509
  call void @_ZdaPv(ptr noundef %510) #8
  br label %513

513:                                              ; preds = %512, %509
  %514 = load ptr, ptr %21, align 8, !tbaa !9
  %515 = load i32, ptr %514, align 4, !tbaa !5
  store i32 1, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  ret i32 %515

516:                                              ; preds = %470, %446
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  br label %517

517:                                              ; preds = %516, %80
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #6
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  br label %518

518:                                              ; preds = %517
  %519 = load ptr, ptr %31, align 8
  %520 = load i32, ptr %32, align 4
  %521 = insertvalue { ptr, i32 } poison, ptr %519, 0
  %522 = insertvalue { ptr, i32 } %521, i32 %520, 1
  resume { ptr, i32 } %522
}

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { nounwind }
attributes #7 = { builtin allocsize(0) }
attributes #8 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}


; 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.__gnu_cxx::__normal_iterator.5" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.7" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.6" = type { ptr }

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN5nasoq12partitioningEiPiS0_S0_S0_S0_iiRiS0_S0_RSt6vectorIS2_IiSaIiEESaIS4_EE(i32 noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef %5, i32 noundef %6, i32 noundef %7, ptr nocapture noundef nonnull align 4 dereferenceable(4) %8, ptr nocapture noundef %9, ptr nocapture noundef writeonly %10, ptr noundef nonnull align 8 dereferenceable(24) %11) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.std::vector", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.5", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.std::vector", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.7", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.6", align 8
  %34 = sext i32 %0 to i64
  %35 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %34) #6
  tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %35, i8 0, i64 %34, i1 false)
  %36 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %34) #6
  tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %36, i8 0, i64 %34, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  store i32 0, ptr %13, align 4, !tbaa !5
  %37 = sdiv i32 %6, %7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %38 unwind label %46

38:                                               ; preds = %12
  store i32 0, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  store i32 0, ptr %16, align 4, !tbaa !5
  %39 = icmp sgt i32 %0, 0
  br i1 %39, label %.lr.ph145, label %._crit_edge146

.lr.ph145:                                        ; preds = %38
  %invariant.gep = getelementptr i8, ptr %3, i64 4
  br label %48

._crit_edge146:                                   ; preds = %229, %38
  %.0101.lcssa = phi i32 [ 0, %38 ], [ %.1102, %229 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  %40 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  store ptr %40, ptr %33, align 8
  %41 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  %42 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %33, i64 noundef %41) #7
  store ptr %42, ptr %32, align 8
  %43 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %32, i64 noundef 1) #7
  store ptr %43, ptr %31, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES1_IS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  %44 = load ptr, ptr %30, align 8
  %45 = invoke ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr %44)
          to label %234 unwind label %239

46:                                               ; preds = %12
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %250

48:                                               ; preds = %.lr.ph145, %229
  %.0101143 = phi i32 [ 0, %.lr.ph145 ], [ %.1102, %229 ]
  %storemerge142 = phi i32 [ 0, %.lr.ph145 ], [ %231, %229 ]
  %49 = sext i32 %storemerge142 to i64
  %50 = getelementptr inbounds i32, ptr %1, i64 %49
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = icmp eq i32 %51, -2
  br i1 %52, label %229, label %53

53:                                               ; preds = %48
  %54 = getelementptr inbounds i8, ptr %35, i64 %49
  %55 = load i8, ptr %54, align 1, !tbaa !9, !range !11, !noundef !12
  %56 = trunc nuw i8 %55 to i1
  br i1 %56, label %229, label %57

57:                                               ; preds = %53
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %.preheader121 unwind label %.loopexit.split-lp

.preheader121:                                    ; preds = %57
  %58 = sext i32 %.0101143 to i64
  %59 = getelementptr inbounds i32, ptr %9, i64 %58
  br label %60

60:                                               ; preds = %.preheader121, %.loopexit119
  %61 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %.not = icmp eq i64 %61, 0
  br i1 %.not, label %.loopexit122, label %62

62:                                               ; preds = %60
  %63 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef 0) #7
  %64 = load i32, ptr %63, align 4, !tbaa !5
  store i32 %64, ptr %13, align 4, !tbaa !5
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds i32, ptr %5, i64 %65
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %69, label %114

69:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %70 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %70, ptr %18, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  %71 = load ptr, ptr %17, align 8
  %72 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr %71)
          to label %73 unwind label %108

73:                                               ; preds = %69
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  %74 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %58) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %75 unwind label %.loopexit123

75:                                               ; preds = %73
  %76 = load i32, ptr %13, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds i32, ptr %2, i64 %77
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = load i32, ptr %59, align 4, !tbaa !5
  %81 = add nsw i32 %80, %79
  store i32 %81, ptr %59, align 4, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %35, i64 %77
  store i8 1, ptr %82, align 1, !tbaa !9
  %83 = getelementptr inbounds i32, ptr %1, i64 %77
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = icmp sgt i32 %84, -1
  br i1 %85, label %86, label %.loopexit122

86:                                               ; preds = %75
  %87 = zext nneg i32 %84 to i64
  %88 = getelementptr inbounds i32, ptr %5, i64 %87
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = add nsw i32 %89, -1
  store i32 %90, ptr %88, align 4, !tbaa !5
  %91 = load i32, ptr %83, align 4, !tbaa !5
  %92 = sext i32 %91 to i64
  %93 = getelementptr inbounds i8, ptr %35, i64 %92
  %94 = load i8, ptr %93, align 1, !tbaa !9, !range !11, !noundef !12
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %.loopexit119, label %96

96:                                               ; preds = %86
  %97 = getelementptr inbounds i8, ptr %36, i64 %92
  %98 = load i8, ptr %97, align 1, !tbaa !9, !range !11, !noundef !12
  %99 = trunc nuw i8 %98 to i1
  br i1 %99, label %112, label %100

100:                                              ; preds = %96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %101 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %101, ptr %20, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  %102 = load i32, ptr %13, align 4, !tbaa !5
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds i32, ptr %1, i64 %103
  %105 = load ptr, ptr %19, align 8
  %106 = invoke ptr @_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EERS4_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr %105, ptr noundef nonnull align 4 dereferenceable(4) %104)
          to label %107 unwind label %110

107:                                              ; preds = %100
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  %.pre = load i32, ptr %13, align 4, !tbaa !5
  %.phi.trans.insert = sext i32 %.pre to i64
  %.phi.trans.insert165 = getelementptr inbounds i32, ptr %1, i64 %.phi.trans.insert
  %.pre166 = load i32, ptr %.phi.trans.insert165, align 4, !tbaa !5
  %.pre168 = sext i32 %.pre166 to i64
  br label %112

.loopexit123:                                     ; preds = %73
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %233

.loopexit.split-lp:                               ; preds = %57
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %233

108:                                              ; preds = %69
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %233

110:                                              ; preds = %100
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  br label %233

112:                                              ; preds = %107, %96
  %.pre-phi169 = phi i64 [ %.pre168, %107 ], [ %92, %96 ]
  %113 = getelementptr inbounds i8, ptr %36, i64 %.pre-phi169
  store i8 1, ptr %113, align 1, !tbaa !9
  br label %.loopexit119

114:                                              ; preds = %62
  %115 = getelementptr inbounds i32, ptr %3, i64 %65
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %gep136 = getelementptr i32, ptr %invariant.gep, i64 %65
  %117 = load i32, ptr %gep136, align 4, !tbaa !5
  %118 = icmp slt i32 %116, %117
  br i1 %118, label %.lr.ph138.preheader, label %.loopexit119

.lr.ph138.preheader:                              ; preds = %114
  %119 = sext i32 %116 to i64
  br label %.lr.ph138

.lr.ph138:                                        ; preds = %.lr.ph138.preheader, %177
  %indvars.iv = phi i64 [ %119, %.lr.ph138.preheader ], [ %indvars.iv.next, %177 ]
  %120 = phi i64 [ %65, %.lr.ph138.preheader ], [ %179, %177 ]
  %121 = phi i32 [ %64, %.lr.ph138.preheader ], [ %178, %177 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  %122 = getelementptr inbounds i32, ptr %4, i64 %indvars.iv
  %123 = load i32, ptr %122, align 4, !tbaa !5
  store i32 %123, ptr %21, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds i8, ptr %35, i64 %124
  %126 = load i8, ptr %125, align 1, !tbaa !9, !range !11, !noundef !12
  %127 = trunc nuw i8 %126 to i1
  br i1 %127, label %177, label %128

128:                                              ; preds = %.lr.ph138
  %129 = getelementptr inbounds i32, ptr %5, i64 %124
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = icmp eq i32 %130, 0
  br i1 %131, label %132, label %170

132:                                              ; preds = %128
  %133 = getelementptr inbounds i8, ptr %35, i64 %120
  %134 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %135 = trunc nuw i8 %134 to i1
  br i1 %135, label %152, label %136

136:                                              ; preds = %132
  %137 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %.not111 = icmp eq i64 %137, 0
  br i1 %.not111, label %.loopexit, label %.preheader118

.preheader118:                                    ; preds = %136
  %138 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %139 = add i64 %138, -1
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %139) #7
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %.not112134 = icmp eq i32 %121, %141
  br i1 %.not112134, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader118, %.lr.ph
  %.0103135 = phi i32 [ %145, %.lr.ph ], [ %121, %.preheader118 ]
  %142 = sext i32 %.0103135 to i64
  %143 = getelementptr inbounds i8, ptr %36, i64 %142
  store i8 1, ptr %143, align 1, !tbaa !9
  %144 = getelementptr inbounds i32, ptr %1, i64 %142
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %147 = add i64 %146, -1
  %148 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %147) #7
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %.not112 = icmp eq i32 %145, %149
  br i1 %.not112, label %.loopexit, label %.lr.ph, !llvm.loop !13

.loopexit:                                        ; preds = %.lr.ph, %.preheader118, %136
  %.1104 = phi i32 [ %121, %136 ], [ %121, %.preheader118 ], [ %145, %.lr.ph ]
  %150 = sext i32 %.1104 to i64
  %151 = getelementptr inbounds i8, ptr %36, i64 %150
  store i8 1, ptr %151, align 1, !tbaa !9
  br label %152

152:                                              ; preds = %.loopexit, %132
  %153 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %58) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %154 unwind label %168

154:                                              ; preds = %152
  %155 = load i32, ptr %21, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds i32, ptr %2, i64 %156
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = load i32, ptr %59, align 4, !tbaa !5
  %160 = add nsw i32 %159, %158
  store i32 %160, ptr %59, align 4, !tbaa !5
  %161 = getelementptr inbounds i8, ptr %35, i64 %156
  store i8 1, ptr %161, align 1, !tbaa !9
  %162 = getelementptr inbounds i32, ptr %1, i64 %156
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds i32, ptr %5, i64 %164
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = add nsw i32 %166, -1
  store i32 %167, ptr %165, align 4, !tbaa !5
  br label %177

168:                                              ; preds = %152
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %183

170:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  %171 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %171, ptr %23, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  %172 = load ptr, ptr %22, align 8
  %173 = invoke ptr @_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EERS4_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr %172, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %174 unwind label %175

174:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %177

175:                                              ; preds = %170
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %183

177:                                              ; preds = %154, %174, %.lr.ph138
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %178 = load i32, ptr %13, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %gep = getelementptr i32, ptr %invariant.gep, i64 %179
  %180 = load i32, ptr %gep, align 4, !tbaa !5
  %181 = sext i32 %180 to i64
  %182 = icmp slt i64 %indvars.iv.next, %181
  br i1 %182, label %.lr.ph138, label %.loopexit119, !llvm.loop !15

183:                                              ; preds = %175, %168
  %.pn = phi { ptr, i32 } [ %169, %168 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %233

.loopexit119:                                     ; preds = %177, %114, %112, %86
  %184 = load i32, ptr %59, align 4, !tbaa !5
  %185 = icmp sgt i32 %184, %37
  br i1 %185, label %.preheader120, label %60, !llvm.loop !16

.preheader120:                                    ; preds = %.loopexit119
  %186 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %.not153 = icmp eq i64 %186, 0
  br i1 %.not153, label %._crit_edge, label %.lr.ph141

._crit_edge:                                      ; preds = %219, %.preheader120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  %187 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %187, ptr %26, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %188 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  store ptr %188, ptr %28, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPivEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  %189 = load ptr, ptr %25, align 8
  %190 = load ptr, ptr %27, align 8
  %191 = invoke ptr @_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr %189, ptr %190)
          to label %222 unwind label %223

.lr.ph141:                                        ; preds = %.preheader120, %219
  %indvars.iv156 = phi i64 [ %indvars.iv.next157, %219 ], [ 0, %.preheader120 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  %192 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv156) #7
  %193 = load i32, ptr %192, align 4, !tbaa !5
  store i32 %193, ptr %24, align 4, !tbaa !5
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds i8, ptr %36, i64 %194
  %196 = load i8, ptr %195, align 1, !tbaa !9, !range !11, !noundef !12
  %197 = trunc nuw i8 %196 to i1
  br i1 %197, label %198, label %219

198:                                              ; preds = %.lr.ph141
  %199 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %58) #7
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %199, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %200 unwind label %217

200:                                              ; preds = %198
  %201 = load i32, ptr %24, align 4, !tbaa !5
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds i32, ptr %2, i64 %202
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = load i32, ptr %59, align 4, !tbaa !5
  %206 = add nsw i32 %205, %204
  store i32 %206, ptr %59, align 4, !tbaa !5
  %207 = getelementptr inbounds i8, ptr %35, i64 %202
  store i8 1, ptr %207, align 1, !tbaa !9
  %208 = getelementptr inbounds i8, ptr %36, i64 %202
  store i8 0, ptr %208, align 1, !tbaa !9
  %209 = getelementptr inbounds i32, ptr %1, i64 %202
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = icmp sgt i32 %210, -1
  br i1 %211, label %212, label %219

212:                                              ; preds = %200
  %213 = zext nneg i32 %210 to i64
  %214 = getelementptr inbounds i32, ptr %5, i64 %213
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = add nsw i32 %215, -1
  store i32 %216, ptr %214, align 4, !tbaa !5
  br label %219

217:                                              ; preds = %198
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  br label %233

219:                                              ; preds = %200, %212, %.lr.ph141
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  %indvars.iv.next157 = add nuw nsw i64 %indvars.iv156, 1
  %220 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  %221 = icmp ugt i64 %220, %indvars.iv.next157
  br i1 %221, label %.lr.ph141, label %._crit_edge, !llvm.loop !17

222:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %.loopexit122

223:                                              ; preds = %._crit_edge
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %233

.loopexit122:                                     ; preds = %75, %60, %222
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %225 unwind label %227

225:                                              ; preds = %.loopexit122
  %226 = add nsw i32 %.0101143, 1
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  %.pre167 = load i32, ptr %16, align 4, !tbaa !5
  br label %229

227:                                              ; preds = %.loopexit122
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  br label %233

229:                                              ; preds = %53, %225, %48
  %230 = phi i32 [ %storemerge142, %48 ], [ %storemerge142, %53 ], [ %.pre167, %225 ]
  %.1102 = phi i32 [ %.0101143, %48 ], [ %.0101143, %53 ], [ %226, %225 ]
  %231 = add nsw i32 %230, 1
  store i32 %231, ptr %16, align 4, !tbaa !5
  %232 = icmp slt i32 %231, %0
  br i1 %232, label %48, label %._crit_edge146, !llvm.loop !18

233:                                              ; preds = %.loopexit123, %.loopexit.split-lp, %227, %223, %217, %183, %110, %108
  %.pn114 = phi { ptr, i32 } [ %218, %217 ], [ %228, %227 ], [ %224, %223 ], [ %111, %110 ], [ %109, %108 ], [ %.pn, %183 ], [ %lpad.loopexit, %.loopexit123 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %250

234:                                              ; preds = %._crit_edge146
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  store i32 %.0101.lcssa, ptr %8, align 4, !tbaa !5
  %235 = icmp sgt i32 %.0101.lcssa, 0
  br i1 %235, label %.preheader.preheader, label %._crit_edge152

.preheader.preheader:                             ; preds = %234
  %wide.trip.count = zext nneg i32 %.0101.lcssa to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge150
  %indvars.iv162 = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next163, %._crit_edge150 ]
  %236 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv162) #7
  %237 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %236) #7
  %.not154 = icmp eq i64 %237, 0
  br i1 %.not154, label %._crit_edge150, label %.lr.ph149.preheader

.lr.ph149.preheader:                              ; preds = %.preheader
  %238 = trunc nuw nsw i64 %indvars.iv162 to i32
  br label %.lr.ph149

239:                                              ; preds = %._crit_edge146
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  br label %250

._crit_edge150:                                   ; preds = %.lr.ph149, %.preheader
  %indvars.iv.next163 = add nuw nsw i64 %indvars.iv162, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next163, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge152, label %.preheader, !llvm.loop !19

.lr.ph149:                                        ; preds = %.lr.ph149.preheader, %.lr.ph149
  %indvars.iv159 = phi i64 [ 0, %.lr.ph149.preheader ], [ %indvars.iv.next160, %.lr.ph149 ]
  %241 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv162) #7
  %242 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %241, i64 noundef %indvars.iv159) #7
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds i32, ptr %10, i64 %244
  store i32 %238, ptr %245, align 4, !tbaa !5
  %indvars.iv.next160 = add nuw nsw i64 %indvars.iv159, 1
  %246 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv162) #7
  %247 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %246) #7
  %248 = icmp ugt i64 %247, %indvars.iv.next160
  br i1 %248, label %.lr.ph149, label %._crit_edge150, !llvm.loop !20

._crit_edge152:                                   ; preds = %._crit_edge150, %234
  call void @_ZdaPv(ptr noundef nonnull %36) #8
  call void @_ZdaPv(ptr noundef nonnull %35) #8
  %249 = load i32, ptr %8, align 4, !tbaa !5
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  ret i32 %249

250:                                              ; preds = %233, %239, %46
  %.pn114.pn.pn = phi { ptr, i32 } [ %47, %46 ], [ %.pn114, %233 ], [ %240, %239 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  resume { ptr, i32 } %.pn114.pn.pn
}

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; 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 nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { builtin allocsize(0) }
attributes #7 = { nounwind }
attributes #8 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}


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