; LLVM IR from tangjz/acm-icpc :: hdu (6042)

; 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" = type { ptr }

@_ZZ4mainE1f = external hidden global [100001 x i32], align 16
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZ4mainE1g = external hidden global [100001 x i32], align 16
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca [2 x %"class.std::vector"], align 16
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 48, ptr %2) #8
  %39 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i32 0, i32 0
  %40 = getelementptr inbounds %"class.std::vector", ptr %39, i64 2
  br label %41

41:                                               ; preds = %41, %0
  %42 = phi ptr [ %39, %0 ], [ %43, %41 ]
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #8
  %43 = getelementptr inbounds %"class.std::vector", ptr %42, i64 1
  %44 = icmp eq ptr %43, %40
  br i1 %44, label %45, label %41

45:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  store i32 1, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #8
  br label %46

46:                                               ; preds = %61, %45
  %47 = load i32, ptr %3, align 4, !tbaa !5
  %48 = load i32, ptr %3, align 4, !tbaa !5
  %49 = mul nsw i32 %48, 3
  %50 = add nsw i32 %49, 1
  %51 = mul nsw i32 %47, %50
  %52 = ashr i32 %51, 1
  store i32 %52, ptr %4, align 4, !tbaa !5
  %53 = icmp slt i32 %52, 100001
  br i1 %53, label %55, label %54

54:                                               ; preds = %46
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  br label %68

55:                                               ; preds = %46
  %56 = load i32, ptr %3, align 4, !tbaa !5
  %57 = and i32 %56, 1
  %58 = sext i32 %57 to i64
  %59 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 %58
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %60 unwind label %64

60:                                               ; preds = %55
  br label %61

61:                                               ; preds = %60
  %62 = load i32, ptr %3, align 4, !tbaa !5
  %63 = add nsw i32 %62, 1
  store i32 %63, ptr %3, align 4, !tbaa !5
  br label %46, !llvm.loop !9

64:                                               ; preds = %55
  %65 = landingpad { ptr, i32 }
          cleanup
  %66 = extractvalue { ptr, i32 } %65, 0
  store ptr %66, ptr %5, align 8
  %67 = extractvalue { ptr, i32 } %65, 1
  store i32 %67, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  br label %409

68:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  store i32 1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  br label %69

69:                                               ; preds = %84, %68
  %70 = load i32, ptr %7, align 4, !tbaa !5
  %71 = load i32, ptr %7, align 4, !tbaa !5
  %72 = mul nsw i32 %71, 3
  %73 = sub nsw i32 %72, 1
  %74 = mul nsw i32 %70, %73
  %75 = ashr i32 %74, 1
  store i32 %75, ptr %8, align 4, !tbaa !5
  %76 = icmp slt i32 %75, 100001
  br i1 %76, label %78, label %77

77:                                               ; preds = %69
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %91

78:                                               ; preds = %69
  %79 = load i32, ptr %7, align 4, !tbaa !5
  %80 = and i32 %79, 1
  %81 = sext i32 %80 to i64
  %82 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 %81
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %83 unwind label %87

83:                                               ; preds = %78
  br label %84

84:                                               ; preds = %83
  %85 = load i32, ptr %7, align 4, !tbaa !5
  %86 = add nsw i32 %85, 1
  store i32 %86, ptr %7, align 4, !tbaa !5
  br label %69, !llvm.loop !11

87:                                               ; preds = %78
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %5, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %409

91:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %92

92:                                               ; preds = %112, %91
  %93 = load i32, ptr %9, align 4, !tbaa !5
  %94 = icmp slt i32 %93, 2
  br i1 %94, label %96, label %95

95:                                               ; preds = %92
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %119

96:                                               ; preds = %92
  %97 = load i32, ptr %9, align 4, !tbaa !5
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 %98
  %100 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %99) #8
  %101 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %10, i32 0, i32 0
  store ptr %100, ptr %101, align 8
  %102 = load i32, ptr %9, align 4, !tbaa !5
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 %103
  %105 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %104) #8
  %106 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %11, i32 0, i32 0
  store ptr %105, ptr %106, align 8
  %107 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %10, i32 0, i32 0
  %108 = load ptr, ptr %107, align 8
  %109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %11, i32 0, i32 0
  %110 = load ptr, ptr %109, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %108, ptr %110)
          to label %111 unwind label %115

111:                                              ; preds = %96
  br label %112

112:                                              ; preds = %111
  %113 = load i32, ptr %9, align 4, !tbaa !5
  %114 = add nsw i32 %113, 1
  store i32 %114, ptr %9, align 4, !tbaa !5
  br label %92, !llvm.loop !12

115:                                              ; preds = %96
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %5, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %409

119:                                              ; preds = %95
  store i32 1, ptr @_ZZ4mainE1f, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 1, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store ptr @_ZZ4mainE1f, ptr %13, align 8, !tbaa !13
  br label %120

120:                                              ; preds = %217, %119
  %121 = load i32, ptr %12, align 4, !tbaa !5
  %122 = icmp slt i32 %121, 100001
  br i1 %122, label %124, label %123

123:                                              ; preds = %120
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %220

124:                                              ; preds = %120
  %125 = load ptr, ptr %13, align 8, !tbaa !13
  %126 = getelementptr inbounds i32, ptr %125, i32 1
  store ptr %126, ptr %13, align 8, !tbaa !13
  store i32 0, ptr %126, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %127 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 0
  store ptr %127, ptr %15, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %128 = load ptr, ptr %15, align 8, !tbaa !13
  %129 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %128) #8
  %130 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %16, i32 0, i32 0
  store ptr %129, ptr %130, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %131 = load ptr, ptr %15, align 8, !tbaa !13
  %132 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #8
  %133 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %132, ptr %133, align 8
  br label %134

134:                                              ; preds = %168, %124
  %135 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br i1 %135, label %137, label %136

136:                                              ; preds = %134
  store i32 14, ptr %14, align 4
  br label %170

137:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  %139 = load i32, ptr %138, align 4, !tbaa !5
  store i32 %139, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %140 = load ptr, ptr %13, align 8, !tbaa !13
  %141 = load i32, ptr %18, align 4, !tbaa !5
  %142 = sext i32 %141 to i64
  %143 = sub i64 0, %142
  %144 = getelementptr inbounds i32, ptr %140, i64 %143
  store ptr %144, ptr %19, align 8, !tbaa !13
  %145 = load ptr, ptr %19, align 8, !tbaa !13
  %146 = icmp ult ptr %145, @_ZZ4mainE1f
  br i1 %146, label %147, label %148

147:                                              ; preds = %137
  store i32 14, ptr %14, align 4
  br label %162

148:                                              ; preds = %137
  %149 = load ptr, ptr %19, align 8, !tbaa !13
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = load ptr, ptr %13, align 8, !tbaa !13
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = sub nsw i32 %152, %150
  store i32 %153, ptr %151, align 4, !tbaa !5
  %154 = icmp slt i32 %153, 0
  br i1 %154, label %155, label %160

155:                                              ; preds = %148
  %156 = load ptr, ptr %13, align 8, !tbaa !13
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1000000007
  store i32 %158, ptr %156, align 4, !tbaa !5
  %159 = icmp ne i32 %158, 0
  br label %160

160:                                              ; preds = %155, %148
  %161 = phi i1 [ false, %148 ], [ %159, %155 ]
  store i32 0, ptr %14, align 4
  br label %162

162:                                              ; preds = %160, %147
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  %163 = load i32, ptr %14, align 4
  switch i32 %163, label %165 [
    i32 0, label %164
  ]

164:                                              ; preds = %162
  store i32 0, ptr %14, align 4
  br label %165

165:                                              ; preds = %164, %162
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  %166 = load i32, ptr %14, align 4
  switch i32 %166, label %170 [
    i32 0, label %167
  ]

167:                                              ; preds = %165
  br label %168

168:                                              ; preds = %167
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %134

170:                                              ; preds = %165, %136
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %171

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %172 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i64 0, i64 1
  store ptr %172, ptr %20, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %173 = load ptr, ptr %20, align 8, !tbaa !13
  %174 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %173) #8
  %175 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %21, i32 0, i32 0
  store ptr %174, ptr %175, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %176 = load ptr, ptr %20, align 8, !tbaa !13
  %177 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %176) #8
  %178 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %22, i32 0, i32 0
  store ptr %177, ptr %178, align 8
  br label %179

179:                                              ; preds = %213, %171
  %180 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  br i1 %180, label %182, label %181

181:                                              ; preds = %179
  store i32 16, ptr %14, align 4
  br label %215

182:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %183 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %184 = load i32, ptr %183, align 4, !tbaa !5
  store i32 %184, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %185 = load ptr, ptr %13, align 8, !tbaa !13
  %186 = load i32, ptr %23, align 4, !tbaa !5
  %187 = sext i32 %186 to i64
  %188 = sub i64 0, %187
  %189 = getelementptr inbounds i32, ptr %185, i64 %188
  store ptr %189, ptr %24, align 8, !tbaa !13
  %190 = load ptr, ptr %24, align 8, !tbaa !13
  %191 = icmp ult ptr %190, @_ZZ4mainE1f
  br i1 %191, label %192, label %193

192:                                              ; preds = %182
  store i32 16, ptr %14, align 4
  br label %207

193:                                              ; preds = %182
  %194 = load ptr, ptr %24, align 8, !tbaa !13
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = load ptr, ptr %13, align 8, !tbaa !13
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = add nsw i32 %197, %195
  store i32 %198, ptr %196, align 4, !tbaa !5
  %199 = icmp sge i32 %198, 1000000007
  br i1 %199, label %200, label %205

200:                                              ; preds = %193
  %201 = load ptr, ptr %13, align 8, !tbaa !13
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = sub nsw i32 %202, 1000000007
  store i32 %203, ptr %201, align 4, !tbaa !5
  %204 = icmp ne i32 %203, 0
  br label %205

205:                                              ; preds = %200, %193
  %206 = phi i1 [ false, %193 ], [ %204, %200 ]
  store i32 0, ptr %14, align 4
  br label %207

207:                                              ; preds = %205, %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  %208 = load i32, ptr %14, align 4
  switch i32 %208, label %210 [
    i32 0, label %209
  ]

209:                                              ; preds = %207
  store i32 0, ptr %14, align 4
  br label %210

210:                                              ; preds = %209, %207
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  %211 = load i32, ptr %14, align 4
  switch i32 %211, label %215 [
    i32 0, label %212
  ]

212:                                              ; preds = %210
  br label %213

213:                                              ; preds = %212
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  br label %179

215:                                              ; preds = %210, %181
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %216

216:                                              ; preds = %215
  br label %217

217:                                              ; preds = %216
  %218 = load i32, ptr %12, align 4, !tbaa !5
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %12, align 4, !tbaa !5
  br label %120, !llvm.loop !15

220:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  store i32 1, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  br label %221

221:                                              ; preds = %391, %220
  %222 = invoke i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %26, ptr noundef %27)
          to label %223 unwind label %226

223:                                              ; preds = %221
  %224 = icmp eq i32 %222, 2
  br i1 %224, label %230, label %225

225:                                              ; preds = %223
  store i32 18, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %400

226:                                              ; preds = %221
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %5, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %6, align 4
  br label %399

230:                                              ; preds = %223
  %231 = load i32, ptr %26, align 4, !tbaa !5
  %232 = load i32, ptr %26, align 4, !tbaa !5
  %233 = add nsw i32 %231, %232
  %234 = sext i32 %233 to i64
  %235 = mul i64 %234, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 @_ZZ4mainE1g, ptr align 16 @_ZZ4mainE1f, i64 %235, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 1, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  br label %236

236:                                              ; preds = %301, %230
  %237 = load i32, ptr %28, align 4, !tbaa !5
  %238 = load i32, ptr %26, align 4, !tbaa !5
  %239 = icmp sle i32 %237, %238
  br i1 %239, label %241, label %240

240:                                              ; preds = %236
  store i32 21, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %304

241:                                              ; preds = %236
  %242 = invoke i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str.1, ptr noundef %29)
          to label %243 unwind label %256

243:                                              ; preds = %241
  %244 = load i32, ptr %28, align 4, !tbaa !5
  %245 = sext i32 %244 to i64
  %246 = load i32, ptr %29, align 4, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = add nsw i64 %247, 1
  %249 = mul nsw i64 %245, %248
  %250 = load i32, ptr %26, align 4, !tbaa !5
  %251 = load i32, ptr %26, align 4, !tbaa !5
  %252 = add nsw i32 %250, %251
  %253 = sext i32 %252 to i64
  %254 = icmp sge i64 %249, %253
  br i1 %254, label %255, label %260

255:                                              ; preds = %243
  br label %301

256:                                              ; preds = %241
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %5, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %399

260:                                              ; preds = %243
  %261 = load i32, ptr %28, align 4, !tbaa !5
  %262 = load i32, ptr %29, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  %264 = mul nsw i32 %261, %263
  store i32 %264, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %265 = load i32, ptr %26, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %266
  %268 = load i32, ptr %26, align 4, !tbaa !5
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds i32, ptr %267, i64 %269
  %271 = getelementptr inbounds i32, ptr %270, i64 -1
  store ptr %271, ptr %30, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %272 = load ptr, ptr %30, align 8, !tbaa !13
  %273 = load i32, ptr %29, align 4, !tbaa !5
  %274 = sext i32 %273 to i64
  %275 = sub i64 0, %274
  %276 = getelementptr inbounds i32, ptr %272, i64 %275
  store ptr %276, ptr %31, align 8, !tbaa !13
  br label %277

277:                                              ; preds = %295, %260
  %278 = load ptr, ptr %31, align 8, !tbaa !13
  %279 = icmp uge ptr %278, @_ZZ4mainE1g
  br i1 %279, label %281, label %280

280:                                              ; preds = %277
  store i32 24, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %300

281:                                              ; preds = %277
  %282 = load ptr, ptr %31, align 8, !tbaa !13
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = load ptr, ptr %30, align 8, !tbaa !13
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = sub nsw i32 %285, %283
  store i32 %286, ptr %284, align 4, !tbaa !5
  %287 = icmp slt i32 %286, 0
  br i1 %287, label %288, label %293

288:                                              ; preds = %281
  %289 = load ptr, ptr %30, align 8, !tbaa !13
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1000000007
  store i32 %291, ptr %289, align 4, !tbaa !5
  %292 = icmp ne i32 %291, 0
  br label %293

293:                                              ; preds = %288, %281
  %294 = phi i1 [ false, %281 ], [ %292, %288 ]
  br label %295

295:                                              ; preds = %293
  %296 = load ptr, ptr %30, align 8, !tbaa !13
  %297 = getelementptr inbounds i32, ptr %296, i32 -1
  store ptr %297, ptr %30, align 8, !tbaa !13
  %298 = load ptr, ptr %31, align 8, !tbaa !13
  %299 = getelementptr inbounds i32, ptr %298, i32 -1
  store ptr %299, ptr %31, align 8, !tbaa !13
  br label %277, !llvm.loop !16

300:                                              ; preds = %280
  br label %301

301:                                              ; preds = %300, %255
  %302 = load i32, ptr %28, align 4, !tbaa !5
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr %28, align 4, !tbaa !5
  br label %236, !llvm.loop !17

304:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store ptr @_ZZ4mainE1g, ptr %32, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %305 = load ptr, ptr %32, align 8, !tbaa !13
  %306 = load i32, ptr %26, align 4, !tbaa !5
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds i32, ptr %305, i64 %307
  %309 = getelementptr inbounds i32, ptr %308, i64 1
  store ptr %309, ptr %33, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %310 = load i32, ptr %26, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %311
  %313 = load i32, ptr %26, align 4, !tbaa !5
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds i32, ptr %312, i64 %314
  store ptr %315, ptr %34, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %316

316:                                              ; preds = %345, %304
  %317 = load ptr, ptr %33, align 8, !tbaa !13
  %318 = load ptr, ptr %34, align 8, !tbaa !13
  %319 = icmp ult ptr %317, %318
  br i1 %319, label %321, label %320

320:                                              ; preds = %316
  store i32 27, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %350

321:                                              ; preds = %316
  %322 = load ptr, ptr %32, align 8, !tbaa !13
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = load i32, ptr %35, align 4, !tbaa !5
  %325 = add nsw i32 %324, %323
  store i32 %325, ptr %35, align 4, !tbaa !5
  %326 = icmp sge i32 %325, 1000000007
  br i1 %326, label %327, label %331

327:                                              ; preds = %321
  %328 = load i32, ptr %35, align 4, !tbaa !5
  %329 = sub nsw i32 %328, 1000000007
  store i32 %329, ptr %35, align 4, !tbaa !5
  %330 = icmp ne i32 %329, 0
  br label %331

331:                                              ; preds = %327, %321
  %332 = phi i1 [ false, %321 ], [ %330, %327 ]
  %333 = load i32, ptr %35, align 4, !tbaa !5
  %334 = load ptr, ptr %33, align 8, !tbaa !13
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = sub nsw i32 %335, %333
  store i32 %336, ptr %334, align 4, !tbaa !5
  %337 = icmp slt i32 %336, 0
  br i1 %337, label %338, label %343

338:                                              ; preds = %331
  %339 = load ptr, ptr %33, align 8, !tbaa !13
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = add nsw i32 %340, 1000000007
  store i32 %341, ptr %339, align 4, !tbaa !5
  %342 = icmp ne i32 %341, 0
  br label %343

343:                                              ; preds = %338, %331
  %344 = phi i1 [ false, %331 ], [ %342, %338 ]
  br label %345

345:                                              ; preds = %343
  %346 = load ptr, ptr %32, align 8, !tbaa !13
  %347 = getelementptr inbounds i32, ptr %346, i32 1
  store ptr %347, ptr %32, align 8, !tbaa !13
  %348 = load ptr, ptr %33, align 8, !tbaa !13
  %349 = getelementptr inbounds i32, ptr %348, i32 1
  store ptr %349, ptr %33, align 8, !tbaa !13
  br label %316, !llvm.loop !18

350:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %351 = load i32, ptr %26, align 4, !tbaa !5
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %352
  %354 = load i32, ptr %26, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds i32, ptr %353, i64 %355
  store ptr %356, ptr %38, align 8, !tbaa !13
  br label %357

357:                                              ; preds = %379, %350
  %358 = load i32, ptr %27, align 4, !tbaa !5
  %359 = icmp sgt i32 %358, 0
  br i1 %359, label %361, label %360

360:                                              ; preds = %357
  store i32 30, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %386

361:                                              ; preds = %357
  %362 = invoke i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str.1, ptr noundef %37)
          to label %363 unwind label %382

363:                                              ; preds = %361
  %364 = load ptr, ptr %38, align 8, !tbaa !13
  %365 = load i32, ptr %37, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = sub i64 0, %366
  %368 = getelementptr inbounds i32, ptr %364, i64 %367
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = load i32, ptr %36, align 4, !tbaa !5
  %371 = add nsw i32 %370, %369
  store i32 %371, ptr %36, align 4, !tbaa !5
  %372 = icmp sge i32 %371, 1000000007
  br i1 %372, label %373, label %377

373:                                              ; preds = %363
  %374 = load i32, ptr %36, align 4, !tbaa !5
  %375 = sub nsw i32 %374, 1000000007
  store i32 %375, ptr %36, align 4, !tbaa !5
  %376 = icmp ne i32 %375, 0
  br label %377

377:                                              ; preds = %373, %363
  %378 = phi i1 [ false, %363 ], [ %376, %373 ]
  br label %379

379:                                              ; preds = %377
  %380 = load i32, ptr %27, align 4, !tbaa !5
  %381 = add nsw i32 %380, -1
  store i32 %381, ptr %27, align 4, !tbaa !5
  br label %357, !llvm.loop !19

382:                                              ; preds = %361
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %5, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %398

386:                                              ; preds = %360
  %387 = load i32, ptr %25, align 4, !tbaa !5
  %388 = load i32, ptr %36, align 4, !tbaa !5
  %389 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, i32 noundef %387, i32 noundef %388)
          to label %390 unwind label %394

390:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %391

391:                                              ; preds = %390
  %392 = load i32, ptr %25, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr %25, align 4, !tbaa !5
  br label %221, !llvm.loop !20

394:                                              ; preds = %386
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %5, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %6, align 4
  br label %398

398:                                              ; preds = %394, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %399

399:                                              ; preds = %398, %256, %226
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %409

400:                                              ; preds = %225
  store i32 0, ptr %1, align 4
  store i32 1, ptr %14, align 4
  %401 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i32 0, i32 0
  %402 = getelementptr inbounds %"class.std::vector", ptr %401, i64 2
  br label %403

403:                                              ; preds = %403, %400
  %404 = phi ptr [ %402, %400 ], [ %405, %403 ]
  %405 = getelementptr inbounds %"class.std::vector", ptr %404, i64 -1
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %405) #8
  %406 = icmp eq ptr %405, %401
  br i1 %406, label %407, label %403

407:                                              ; preds = %403
  call void @llvm.lifetime.end.p0(i64 48, ptr %2) #8
  %408 = load i32, ptr %1, align 4
  ret i32 %408

409:                                              ; preds = %399, %115, %87, %64
  %410 = getelementptr inbounds [2 x %"class.std::vector"], ptr %2, i32 0, i32 0
  %411 = getelementptr inbounds %"class.std::vector", ptr %410, i64 2
  br label %412

412:                                              ; preds = %412, %409
  %413 = phi ptr [ %411, %409 ], [ %414, %412 ]
  %414 = getelementptr inbounds %"class.std::vector", ptr %413, i64 -1
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %414) #8
  %415 = icmp eq ptr %414, %410
  br i1 %415, label %416, label %412

416:                                              ; preds = %412
  call void @llvm.lifetime.end.p0(i64 48, ptr %2) #8
  br label %417

417:                                              ; preds = %416
  %418 = load ptr, ptr %5, align 8
  %419 = load i32, ptr %6, align 4
  %420 = insertvalue { ptr, i32 } poison, ptr %418, 0
  %421 = insertvalue { ptr, i32 } %420, i32 %419, 1
  resume { ptr, i32 } %421
}

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

declare i32 @__isoc99_scanf(ptr noundef, ...) #6

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare i32 @printf(ptr noundef, ...) #6

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

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


; 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" = type { ptr }

@_ZZ4mainE1f = external hidden global [100001 x i32], align 16
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZ4mainE1g = external hidden global [100001 x i32], align 16
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca [2 x %"class.std::vector"], align 16
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %1) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %.ptr.1 = getelementptr inbounds i8, ptr %1, i64 24
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  store i32 2, ptr %2, align 4, !tbaa !5
  br label %13

12:                                               ; preds = %17
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #8
  store i32 1, ptr %3, align 4, !tbaa !5
  br label %28

13:                                               ; preds = %0, %17
  %.072116 = phi i32 [ 1, %0 ], [ %18, %17 ]
  %14 = and i32 %.072116, 1
  %15 = zext nneg i32 %14 to i64
  %16 = getelementptr inbounds [2 x %"class.std::vector"], ptr %1, i64 0, i64 %15
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %17 unwind label %23

17:                                               ; preds = %13
  %18 = add nuw nsw i32 %.072116, 1
  %19 = mul nuw nsw i32 %18, 3
  %20 = add nuw nsw i32 %19, 1
  %21 = mul nuw nsw i32 %20, %18
  %22 = lshr i32 %21, 1
  store i32 %22, ptr %2, align 4, !tbaa !5
  %exitcond.not = icmp eq i32 %18, 259
  br i1 %exitcond.not, label %12, label %13, !llvm.loop !9

23:                                               ; preds = %13
  %24 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  br label %149

25:                                               ; preds = %32
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  %26 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  %27 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %26, ptr %27)
          to label %41 unwind label %45

28:                                               ; preds = %12, %32
  %.081117 = phi i32 [ 1, %12 ], [ %33, %32 ]
  %29 = and i32 %.081117, 1
  %30 = zext nneg i32 %29 to i64
  %31 = getelementptr inbounds [2 x %"class.std::vector"], ptr %1, i64 0, i64 %30
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %32 unwind label %39

32:                                               ; preds = %28
  %33 = add nuw nsw i32 %.081117, 1
  %34 = mul nuw nsw i32 %33, 3
  %35 = add nsw i32 %34, -1
  %36 = mul nsw i32 %35, %33
  %37 = ashr i32 %36, 1
  store i32 %37, ptr %3, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 100001
  br i1 %38, label %28, label %25, !llvm.loop !11

39:                                               ; preds = %28
  %40 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  br label %149

41:                                               ; preds = %25
  %42 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #8
  %43 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %42, ptr %43)
          to label %44 unwind label %45

44:                                               ; preds = %41
  store i32 1, ptr @_ZZ4mainE1f, align 16, !tbaa !5
  br label %50

45:                                               ; preds = %41, %25
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %149

47:                                               ; preds = %.critedge112
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  %48 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull %8, ptr noundef nonnull %9)
  %49 = icmp eq i32 %48, 2
  br i1 %49, label %.lr.ph145, label %._crit_edge146

50:                                               ; preds = %44, %.critedge112
  %.083123 = phi i32 [ 1, %44 ], [ %84, %.critedge112 ]
  %.084122 = phi ptr [ @_ZZ4mainE1f, %44 ], [ %51, %.critedge112 ]
  %51 = getelementptr inbounds i8, ptr %.084122, i64 4
  store i32 0, ptr %51, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  %52 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  store ptr %52, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #8
  %53 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  store ptr %53, ptr %5, align 8
  %54 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  br i1 %54, label %.lr.ph, label %.critedge

.lr.ph:                                           ; preds = %50, %60
  %55 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  %56 = load i32, ptr %55, align 4, !tbaa !5
  %57 = sext i32 %56 to i64
  %58 = sub nsw i64 0, %57
  %59 = getelementptr inbounds i32, ptr %51, i64 %58
  %.not105 = icmp ult ptr %59, @_ZZ4mainE1f
  br i1 %.not105, label %.critedge, label %60

60:                                               ; preds = %.lr.ph
  %61 = load i32, ptr %59, align 4, !tbaa !5
  %62 = load i32, ptr %51, align 4, !tbaa !5
  %63 = sub nsw i32 %62, %61
  %64 = icmp slt i32 %63, 0
  %65 = add nsw i32 %63, 1000000007
  %spec.select = select i1 %64, i32 %65, i32 %63
  store i32 %spec.select, ptr %51, align 4, !tbaa !5
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  %67 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  br i1 %67, label %.lr.ph, label %.critedge

.critedge:                                        ; preds = %60, %.lr.ph, %50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %68 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #8
  store ptr %68, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  %69 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %.ptr.1) #8
  store ptr %69, ptr %7, align 8
  %70 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br i1 %70, label %.lr.ph120, label %.critedge112

.lr.ph120:                                        ; preds = %.critedge, %76
  %71 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = sext i32 %72 to i64
  %74 = sub nsw i64 0, %73
  %75 = getelementptr inbounds i32, ptr %51, i64 %74
  %.not107 = icmp ult ptr %75, @_ZZ4mainE1f
  br i1 %.not107, label %.critedge112, label %76

76:                                               ; preds = %.lr.ph120
  %77 = load i32, ptr %75, align 4, !tbaa !5
  %78 = load i32, ptr %51, align 4, !tbaa !5
  %79 = add nsw i32 %78, %77
  %80 = icmp sgt i32 %79, 1000000006
  %81 = add nsw i32 %79, -1000000007
  %spec.select110 = select i1 %80, i32 %81, i32 %79
  store i32 %spec.select110, ptr %51, align 4, !tbaa !5
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  %83 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  br i1 %83, label %.lr.ph120, label %.critedge112

.critedge112:                                     ; preds = %76, %.lr.ph120, %.critedge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  %84 = add nuw nsw i32 %.083123, 1
  %exitcond150.not = icmp eq i32 %84, 100001
  br i1 %exitcond150.not, label %47, label %50, !llvm.loop !12

._crit_edge146:                                   ; preds = %._crit_edge141, %47
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  %85 = getelementptr inbounds i8, ptr %1, i64 24
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %1) #8
  ret i32 0

.lr.ph145:                                        ; preds = %47, %._crit_edge141
  %.078143 = phi i32 [ %134, %._crit_edge141 ], [ 1, %47 ]
  %86 = load i32, ptr %8, align 4, !tbaa !5
  %87 = shl nsw i32 %86, 1
  %88 = sext i32 %87 to i64
  %89 = shl nsw i64 %88, 2
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 @_ZZ4mainE1g, ptr nonnull align 16 @_ZZ4mainE1f, i64 %89, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %.not128 = icmp slt i32 %86, 1
  br i1 %.not128, label %._crit_edge.thread, label %.lr.ph130

._crit_edge.thread:                               ; preds = %.lr.ph145
  %.pre = sext i32 %86 to i64
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  %90 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %.pre
  %.idx147156 = shl nsw i64 %.pre, 2
  %91 = getelementptr inbounds i8, ptr %90, i64 %.idx147156
  br label %._crit_edge137

._crit_edge:                                      ; preds = %.loopexit
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  %92 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %.pre-phi153
  %.idx147 = shl nsw i64 %.pre-phi153, 2
  %93 = getelementptr inbounds i8, ptr %92, i64 %.idx147
  %94 = icmp sgt i32 %100, 1
  br i1 %94, label %.lr.ph136.preheader, label %._crit_edge137

.lr.ph136.preheader:                              ; preds = %._crit_edge
  %.073131 = getelementptr inbounds i8, ptr %92, i64 4
  br label %.lr.ph136

.lr.ph130:                                        ; preds = %.lr.ph145, %.loopexit
  %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit ], [ 1, %.lr.ph145 ]
  %95 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str.1, ptr noundef nonnull %10)
  %96 = load i32, ptr %10, align 4, !tbaa !5
  %97 = sext i32 %96 to i64
  %98 = add nsw i64 %97, 1
  %99 = mul nsw i64 %98, %indvars.iv
  %100 = load i32, ptr %8, align 4, !tbaa !5
  %101 = shl nsw i32 %100, 1
  %102 = sext i32 %101 to i64
  %.not101 = icmp slt i64 %99, %102
  br i1 %.not101, label %103, label %.lr.ph130..loopexit_crit_edge

.lr.ph130..loopexit_crit_edge:                    ; preds = %.lr.ph130
  %.pre152 = sext i32 %100 to i64
  br label %.loopexit

103:                                              ; preds = %.lr.ph130
  %104 = add nsw i32 %96, 1
  %105 = trunc nuw nsw i64 %indvars.iv to i32
  %106 = mul nsw i32 %104, %105
  store i32 %106, ptr %10, align 4, !tbaa !5
  %107 = sext i32 %100 to i64
  %108 = getelementptr inbounds i32, ptr @_ZZ4mainE1g, i64 %107
  %109 = getelementptr inbounds i32, ptr %108, i64 %107
  %110 = getelementptr inbounds i8, ptr %109, i64 -4
  %111 = sext i32 %106 to i64
  %112 = sub nsw i64 0, %111
  %113 = getelementptr inbounds i32, ptr %110, i64 %112
  %.not102124 = icmp ult ptr %113, @_ZZ4mainE1g
  br i1 %.not102124, label %.loopexit, label %.lr.ph127

.lr.ph127:                                        ; preds = %103, %.lr.ph127
  %.075126 = phi ptr [ %120, %.lr.ph127 ], [ %113, %103 ]
  %.076125 = phi ptr [ %119, %.lr.ph127 ], [ %110, %103 ]
  %114 = load i32, ptr %.075126, align 4, !tbaa !5
  %115 = load i32, ptr %.076125, align 4, !tbaa !5
  %116 = sub nsw i32 %115, %114
  %117 = icmp slt i32 %116, 0
  %118 = add nsw i32 %116, 1000000007
  %spec.select113 = select i1 %117, i32 %118, i32 %116
  store i32 %spec.select113, ptr %.076125, align 4, !tbaa !5
  %119 = getelementptr inbounds i8, ptr %.076125, i64 -4
  %120 = getelementptr inbounds i8, ptr %.075126, i64 -4
  %.not102 = icmp ult ptr %120, @_ZZ4mainE1g
  br i1 %.not102, label %.loopexit, label %.lr.ph127, !llvm.loop !13

.loopexit:                                        ; preds = %.lr.ph127, %.lr.ph130..loopexit_crit_edge, %103
  %.pre-phi153 = phi i64 [ %.pre152, %.lr.ph130..loopexit_crit_edge ], [ %107, %103 ], [ %107, %.lr.ph127 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %.not.not = icmp slt i64 %indvars.iv, %.pre-phi153
  br i1 %.not.not, label %.lr.ph130, label %._crit_edge, !llvm.loop !14

._crit_edge137:                                   ; preds = %.lr.ph136, %._crit_edge.thread, %._crit_edge
  %121 = phi ptr [ %91, %._crit_edge.thread ], [ %93, %._crit_edge ], [ %93, %.lr.ph136 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %.pr = load i32, ptr %9, align 4, !tbaa !5
  %122 = icmp sgt i32 %.pr, 0
  br i1 %122, label %.lr.ph140, label %._crit_edge141

.lr.ph136:                                        ; preds = %.lr.ph136.preheader, %.lr.ph136
  %.073134 = phi ptr [ %.073, %.lr.ph136 ], [ %.073131, %.lr.ph136.preheader ]
  %.070133 = phi i32 [ %spec.select114, %.lr.ph136 ], [ 0, %.lr.ph136.preheader ]
  %.074132 = phi ptr [ %131, %.lr.ph136 ], [ @_ZZ4mainE1g, %.lr.ph136.preheader ]
  %123 = load i32, ptr %.074132, align 4, !tbaa !5
  %124 = add nsw i32 %123, %.070133
  %125 = icmp sgt i32 %124, 1000000006
  %126 = add nsw i32 %124, -1000000007
  %spec.select114 = select i1 %125, i32 %126, i32 %124
  %127 = load i32, ptr %.073134, align 4, !tbaa !5
  %128 = sub nsw i32 %127, %spec.select114
  %129 = icmp slt i32 %128, 0
  %130 = add nsw i32 %128, 1000000007
  %storemerge = select i1 %129, i32 %130, i32 %128
  store i32 %storemerge, ptr %.073134, align 4, !tbaa !5
  %131 = getelementptr inbounds i8, ptr %.074132, i64 4
  %.073 = getelementptr inbounds i8, ptr %.073134, i64 4
  %132 = icmp ult ptr %.073, %93
  br i1 %132, label %.lr.ph136, label %._crit_edge137, !llvm.loop !15

._crit_edge141:                                   ; preds = %.lr.ph140, %._crit_edge137
  %.0.lcssa = phi i32 [ 0, %._crit_edge137 ], [ %spec.select115, %.lr.ph140 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  %133 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, i32 noundef %.078143, i32 noundef %.0.lcssa)
  %134 = add nuw nsw i32 %.078143, 1
  %135 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull %8, ptr noundef nonnull %9)
  %136 = icmp eq i32 %135, 2
  br i1 %136, label %.lr.ph145, label %._crit_edge146, !llvm.loop !16

.lr.ph140:                                        ; preds = %._crit_edge137, %.lr.ph140
  %.0138 = phi i32 [ %spec.select115, %.lr.ph140 ], [ 0, %._crit_edge137 ]
  %137 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str.1, ptr noundef nonnull %11)
  %138 = load i32, ptr %11, align 4, !tbaa !5
  %139 = sext i32 %138 to i64
  %140 = sub nsw i64 0, %139
  %141 = getelementptr inbounds i32, ptr %121, i64 %140
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = add nsw i32 %142, %.0138
  %144 = icmp sgt i32 %143, 1000000006
  %145 = add nsw i32 %143, -1000000007
  %spec.select115 = select i1 %144, i32 %145, i32 %143
  %146 = load i32, ptr %9, align 4, !tbaa !5
  %147 = add nsw i32 %146, -1
  store i32 %147, ptr %9, align 4, !tbaa !5
  %148 = icmp sgt i32 %146, 1
  br i1 %148, label %.lr.ph140, label %._crit_edge141, !llvm.loop !17

149:                                              ; preds = %45, %39, %23
  %.pn108 = phi { ptr, i32 } [ %24, %23 ], [ %40, %39 ], [ %46, %45 ]
  %150 = getelementptr inbounds i8, ptr %1, i64 24
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %1) #8
  resume { ptr, i32 } %.pn108
}

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @__isoc99_scanf(ptr nocapture noundef readonly, ...) local_unnamed_addr #6

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #6

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

attributes #0 = { mustprogress norecurse 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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { 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 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10}
!14 = distinct !{!14, !10}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}
!17 = distinct !{!17, !10}


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