; LLVM IR from kazunetakahashi/atcoder :: 2018/0603_AGC025 (D)

; 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<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::complex" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@N = external dso_local global i32, align 4
@D = external dso_local global [2 x i32], align 4
@ans = external dso_local global %"class.std::vector", align 8
@F = external dso_local global %"class.std::vector", align 8
@B = external dso_local global [1010 x [1010 x i8]], align 16
@pts = external dso_local global %"class.std::vector", align 8
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.6 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [11 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z5flushv() #0

; 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 ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

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

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

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

; 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) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8)) #2 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(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11make_forbidi(i32 noundef) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z5validSt7complexIiE(i64) #0

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #5 {
  %1 = alloca i32, align 4
  %2 = alloca i8, align 1
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::complex", align 4
  %7 = alloca ptr, align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %10 = alloca %"class.std::complex", align 4
  %11 = alloca %"class.std::complex", align 4
  %12 = alloca %"class.std::complex", align 4
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::complex", align 4
  %18 = alloca %"class.std::complex", align 4
  %19 = alloca ptr, align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.std::complex", align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %28 = alloca %"class.std::complex", align 4
  %29 = alloca %"class.std::complex", align 4
  %30 = alloca %"class.std::complex", align 4
  %31 = alloca i8, align 1
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %"class.std::complex", align 4
  %36 = alloca %"class.std::complex", align 4
  %37 = alloca %"class.std::complex", align 4
  %38 = alloca i32, align 4
  %39 = alloca %"class.std::complex", align 4
  %40 = alloca %"class.std::complex", align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::complex", align 4
  %43 = alloca %"class.std::complex", align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::complex", align 4
  %47 = alloca ptr, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %"class.std::complex", align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.std::complex", align 4
  %57 = alloca %"class.std::complex", align 4
  %58 = alloca %"class.std::complex", align 4
  %59 = alloca i8, align 1
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %"class.std::complex", align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %"class.std::complex", align 4
  %67 = alloca %"class.std::complex", align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %"class.std::complex", align 4
  %71 = alloca %"class.std::complex", align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %"class.std::complex", align 4
  %75 = alloca %"class.std::complex", align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %"class.std::complex", align 4
  %79 = alloca ptr, align 8
  %80 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %81 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %82 = alloca %"class.std::complex", align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %87 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %88 = alloca %"class.std::complex", align 4
  %89 = alloca %"class.std::complex", align 4
  %90 = alloca %"class.std::complex", align 4
  %91 = alloca i8, align 1
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca %"class.std::complex", align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::complex", align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca %"class.std::complex", align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %"class.std::complex", align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca %"class.std::complex", align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %"class.std::complex", align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca %"class.std::complex", align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca %"class.std::complex", align 4
  %116 = alloca ptr, align 8
  %117 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %118 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %119 = alloca %"class.std::complex", align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %124 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %125 = alloca %"class.std::complex", align 4
  %126 = alloca %"class.std::complex", align 4
  %127 = alloca %"class.std::complex", align 4
  store i32 0, ptr %1, align 4
  %128 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) @N)
  %129 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull align 4 dereferenceable(4) @D)
  %130 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef nonnull align 4 dereferenceable(4) getelementptr inbounds ([2 x i32], ptr @D, i64 0, i64 1))
  %131 = load i32, ptr @D, align 4, !tbaa !5
  call void @_Z11make_forbidi(i32 noundef %131)
  %132 = load i32, ptr getelementptr inbounds ([2 x i32], ptr @D, i64 0, i64 1), align 4, !tbaa !5
  call void @_Z11make_forbidi(i32 noundef %132)
  call void @llvm.lifetime.start.p0(i64 1, ptr %2) #9
  store i8 1, ptr %2, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef @B, ptr noundef getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %2)
  call void @llvm.lifetime.end.p0(i64 1, ptr %2) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  store i32 0, ptr %3, align 4, !tbaa !5
  br label %133

133:                                              ; preds = %197, %0
  %134 = load i32, ptr %3, align 4, !tbaa !5
  %135 = load i32, ptr @N, align 4, !tbaa !5
  %136 = mul nsw i32 2, %135
  %137 = icmp slt i32 %134, %136
  br i1 %137, label %139, label %138

138:                                              ; preds = %133
  store i32 2, ptr %4, align 4
  br label %200

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

140:                                              ; preds = %191, %139
  %141 = load i32, ptr %5, align 4, !tbaa !5
  %142 = load i32, ptr @N, align 4, !tbaa !5
  %143 = mul nsw i32 2, %142
  %144 = icmp slt i32 %141, %143
  br i1 %144, label %146, label %145

145:                                              ; preds = %140
  store i32 5, ptr %4, align 4
  br label %194

146:                                              ; preds = %140
  %147 = load i32, ptr %3, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %148
  %150 = load i32, ptr %5, align 4, !tbaa !5
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds [1010 x i8], ptr %149, i64 0, i64 %151
  %153 = load i8, ptr %152, align 1, !tbaa !9, !range !11, !noundef !12
  %154 = trunc i8 %153 to i1
  br i1 %154, label %155, label %190

155:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %5)
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %6)
  %156 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  %157 = load i32, ptr @N, align 4, !tbaa !5
  %158 = load i32, ptr @N, align 4, !tbaa !5
  %159 = mul nsw i32 %157, %158
  %160 = sext i32 %159 to i64
  %161 = icmp eq i64 %156, %160
  br i1 %161, label %162, label %163

162:                                              ; preds = %155
  call void @_Z5flushv()
  store i32 0, ptr %1, align 4
  store i32 1, ptr %4, align 4
  br label %187

163:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  store ptr @F, ptr %7, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %164 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %165 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %8, i32 0, i32 0
  store ptr %164, ptr %165, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %166 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %167 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %9, i32 0, i32 0
  store ptr %166, ptr %167, align 8
  br label %168

168:                                              ; preds = %184, %163
  %169 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #9
  br i1 %169, label %171, label %170

170:                                              ; preds = %168
  store i32 8, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %186

171:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %172 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %10, ptr align 4 %172, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %173 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %10)
  store i64 %173, ptr %11, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 %11, i64 8, i1 false), !tbaa.struct !15
  %174 = load i64, ptr %12, align 4
  %175 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %174)
  br i1 %175, label %176, label %183

176:                                              ; preds = %171
  %177 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %178
  %180 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds [1010 x i8], ptr %179, i64 0, i64 %181
  store i8 0, ptr %182, align 1, !tbaa !9
  br label %183

183:                                              ; preds = %176, %171
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %184

184:                                              ; preds = %183
  %185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  br label %168

186:                                              ; preds = %170
  store i32 0, ptr %4, align 4
  br label %187

187:                                              ; preds = %186, %162
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  %188 = load i32, ptr %4, align 4
  switch i32 %188, label %194 [
    i32 0, label %189
  ]

189:                                              ; preds = %187
  br label %190

190:                                              ; preds = %189, %146
  br label %191

191:                                              ; preds = %190
  %192 = load i32, ptr %5, align 4, !tbaa !5
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr %5, align 4, !tbaa !5
  br label %140, !llvm.loop !16

194:                                              ; preds = %187, %145
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  %195 = load i32, ptr %4, align 4
  switch i32 %195, label %200 [
    i32 5, label %196
  ]

196:                                              ; preds = %194
  br label %197

197:                                              ; preds = %196
  %198 = load i32, ptr %3, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %3, align 4, !tbaa !5
  br label %133, !llvm.loop !18

200:                                              ; preds = %194, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  %201 = load i32, ptr %4, align 4
  switch i32 %201, label %733 [
    i32 2, label %202
    i32 1, label %731
  ]

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #9
  store i8 1, ptr %13, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef @B, ptr noundef getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %13)
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %203

203:                                              ; preds = %227, %202
  %204 = load i32, ptr %14, align 4, !tbaa !5
  %205 = load i32, ptr @N, align 4, !tbaa !5
  %206 = mul nsw i32 4, %205
  %207 = icmp slt i32 %204, %206
  br i1 %207, label %209, label %208

208:                                              ; preds = %203
  store i32 10, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %230

209:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %210

210:                                              ; preds = %223, %209
  %211 = load i32, ptr %15, align 4, !tbaa !5
  %212 = load i32, ptr %14, align 4, !tbaa !5
  %213 = icmp sle i32 %211, %212
  br i1 %213, label %215, label %214

214:                                              ; preds = %210
  store i32 13, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %226

215:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %216 = load i32, ptr %14, align 4, !tbaa !5
  %217 = load i32, ptr %15, align 4, !tbaa !5
  %218 = sub nsw i32 %216, %217
  store i32 %218, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %17, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %15)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %18, ptr align 4 %17, i64 8, i1 false), !tbaa.struct !15
  %219 = load i64, ptr %18, align 4
  %220 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %219)
  br i1 %220, label %221, label %222

221:                                              ; preds = %215
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %17)
  br label %222

222:                                              ; preds = %221, %215
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %223

223:                                              ; preds = %222
  %224 = load i32, ptr %15, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr %15, align 4, !tbaa !5
  br label %210, !llvm.loop !19

226:                                              ; preds = %214
  br label %227

227:                                              ; preds = %226
  %228 = load i32, ptr %14, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr %14, align 4, !tbaa !5
  br label %203, !llvm.loop !20

230:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store ptr @pts, ptr %19, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %231 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %232 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %20, i32 0, i32 0
  store ptr %231, ptr %232, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %233 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %234 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %21, i32 0, i32 0
  store ptr %233, ptr %234, align 8
  br label %235

235:                                              ; preds = %289, %230
  %236 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  br i1 %236, label %238, label %237

237:                                              ; preds = %235
  store i32 16, ptr %4, align 4
  br label %291

238:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %239 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %22, ptr align 4 %239, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %240 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %22)
  store i32 %240, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %241 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %22)
  store i32 %241, ptr %24, align 4, !tbaa !5
  %242 = load i32, ptr %23, align 4, !tbaa !5
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %243
  %245 = load i32, ptr %24, align 4, !tbaa !5
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds [1010 x i8], ptr %244, i64 0, i64 %246
  %248 = load i8, ptr %247, align 1, !tbaa !9, !range !11, !noundef !12
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %282

250:                                              ; preds = %238
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %22)
  %251 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  %252 = load i32, ptr @N, align 4, !tbaa !5
  %253 = load i32, ptr @N, align 4, !tbaa !5
  %254 = mul nsw i32 %252, %253
  %255 = sext i32 %254 to i64
  %256 = icmp eq i64 %251, %255
  br i1 %256, label %257, label %258

257:                                              ; preds = %250
  call void @_Z5flushv()
  store i32 0, ptr %1, align 4
  store i32 1, ptr %4, align 4
  br label %283

258:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  store ptr @F, ptr %25, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %259 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %26, i32 0, i32 0
  store ptr %259, ptr %260, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %261 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %262 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %27, i32 0, i32 0
  store ptr %261, ptr %262, align 8
  br label %263

263:                                              ; preds = %279, %258
  %264 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br i1 %264, label %266, label %265

265:                                              ; preds = %263
  store i32 18, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %281

266:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %267 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 4 %267, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %268 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(8) %28)
  store i64 %268, ptr %29, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %30, ptr align 4 %29, i64 8, i1 false), !tbaa.struct !15
  %269 = load i64, ptr %30, align 4
  %270 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %269)
  br i1 %270, label %271, label %278

271:                                              ; preds = %266
  %272 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %29)
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %273
  %275 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %29)
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds [1010 x i8], ptr %274, i64 0, i64 %276
  store i8 0, ptr %277, align 1, !tbaa !9
  br label %278

278:                                              ; preds = %271, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %279

279:                                              ; preds = %278
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  br label %263

281:                                              ; preds = %265
  br label %282

282:                                              ; preds = %281, %238
  store i32 0, ptr %4, align 4
  br label %283

283:                                              ; preds = %282, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  %284 = load i32, ptr %4, align 4
  switch i32 %284, label %286 [
    i32 0, label %285
  ]

285:                                              ; preds = %283
  store i32 0, ptr %4, align 4
  br label %286

286:                                              ; preds = %285, %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  %287 = load i32, ptr %4, align 4
  switch i32 %287, label %291 [
    i32 0, label %288
  ]

288:                                              ; preds = %286
  br label %289

289:                                              ; preds = %288
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  br label %235

291:                                              ; preds = %286, %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  %292 = load i32, ptr %4, align 4
  switch i32 %292, label %733 [
    i32 16, label %293
    i32 1, label %731
  ]

293:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #9
  store i8 1, ptr %31, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef @B, ptr noundef getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %31)
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %294

294:                                              ; preds = %346, %293
  %295 = load i32, ptr %32, align 4, !tbaa !5
  %296 = load i32, ptr @N, align 4, !tbaa !5
  %297 = mul nsw i32 4, %296
  %298 = icmp slt i32 %295, %297
  br i1 %298, label %300, label %299

299:                                              ; preds = %294
  store i32 20, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %349

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

301:                                              ; preds = %342, %300
  %302 = load i32, ptr %33, align 4, !tbaa !5
  %303 = load i32, ptr %32, align 4, !tbaa !5
  %304 = icmp sle i32 %302, %303
  br i1 %304, label %306, label %305

305:                                              ; preds = %301
  store i32 23, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %345

306:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %307 = load i32, ptr %32, align 4, !tbaa !5
  %308 = load i32, ptr %33, align 4, !tbaa !5
  %309 = sub nsw i32 %307, %308
  store i32 %309, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %33)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 4 %35, i64 8, i1 false), !tbaa.struct !15
  %310 = load i64, ptr %36, align 4
  %311 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %310)
  br i1 %311, label %312, label %313

312:                                              ; preds = %306
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br label %313

313:                                              ; preds = %312, %306
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %314 = load i32, ptr @N, align 4, !tbaa !5
  %315 = mul nsw i32 2, %314
  %316 = load i32, ptr %34, align 4, !tbaa !5
  %317 = sub nsw i32 %315, %316
  store i32 %317, ptr %38, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %33)
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %37, i64 8, i1 false), !tbaa.struct !15
  %318 = load i64, ptr %39, align 4
  %319 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %318)
  br i1 %319, label %320, label %321

320:                                              ; preds = %313
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %37)
  br label %321

321:                                              ; preds = %320, %313
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %322 = load i32, ptr @N, align 4, !tbaa !5
  %323 = mul nsw i32 2, %322
  %324 = load i32, ptr %33, align 4, !tbaa !5
  %325 = sub nsw i32 %323, %324
  store i32 %325, ptr %41, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %41)
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 4 %40, i64 8, i1 false), !tbaa.struct !15
  %326 = load i64, ptr %42, align 4
  %327 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %326)
  br i1 %327, label %328, label %329

328:                                              ; preds = %321
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %40)
  br label %329

329:                                              ; preds = %328, %321
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %330 = load i32, ptr @N, align 4, !tbaa !5
  %331 = mul nsw i32 2, %330
  %332 = load i32, ptr %34, align 4, !tbaa !5
  %333 = sub nsw i32 %331, %332
  store i32 %333, ptr %44, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %334 = load i32, ptr @N, align 4, !tbaa !5
  %335 = mul nsw i32 2, %334
  %336 = load i32, ptr %33, align 4, !tbaa !5
  %337 = sub nsw i32 %335, %336
  store i32 %337, ptr %45, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %45)
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %43, i64 8, i1 false), !tbaa.struct !15
  %338 = load i64, ptr %46, align 4
  %339 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %338)
  br i1 %339, label %340, label %341

340:                                              ; preds = %329
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %43)
  br label %341

341:                                              ; preds = %340, %329
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %342

342:                                              ; preds = %341
  %343 = load i32, ptr %33, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %33, align 4, !tbaa !5
  br label %301, !llvm.loop !21

345:                                              ; preds = %305
  br label %346

346:                                              ; preds = %345
  %347 = load i32, ptr %32, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr %32, align 4, !tbaa !5
  br label %294, !llvm.loop !22

349:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  store ptr @pts, ptr %47, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %350 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %351 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  store ptr %350, ptr %351, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %352 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %353 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %49, i32 0, i32 0
  store ptr %352, ptr %353, align 8
  br label %354

354:                                              ; preds = %414, %349
  %355 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  br i1 %355, label %357, label %356

356:                                              ; preds = %354
  store i32 26, ptr %4, align 4
  br label %416

357:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %358 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %50, ptr align 4 %358, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %359 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %50)
  store i32 %359, ptr %51, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %360 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %50)
  store i32 %360, ptr %52, align 4, !tbaa !5
  %361 = load i32, ptr %51, align 4, !tbaa !5
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %362
  %364 = load i32, ptr %52, align 4, !tbaa !5
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds [1010 x i8], ptr %363, i64 0, i64 %365
  %367 = load i8, ptr %366, align 1, !tbaa !9, !range !11, !noundef !12
  %368 = trunc i8 %367 to i1
  br i1 %368, label %369, label %407

369:                                              ; preds = %357
  %370 = load i32, ptr %51, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %371
  %373 = load i32, ptr %52, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds [1010 x i8], ptr %372, i64 0, i64 %374
  store i8 0, ptr %375, align 1, !tbaa !9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %50)
  %376 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  %377 = load i32, ptr @N, align 4, !tbaa !5
  %378 = load i32, ptr @N, align 4, !tbaa !5
  %379 = mul nsw i32 %377, %378
  %380 = sext i32 %379 to i64
  %381 = icmp eq i64 %376, %380
  br i1 %381, label %382, label %383

382:                                              ; preds = %369
  call void @_Z5flushv()
  store i32 0, ptr %1, align 4
  store i32 1, ptr %4, align 4
  br label %408

383:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  store ptr @F, ptr %53, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %384 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %385 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %384, ptr %385, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %386 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %387 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  store ptr %386, ptr %387, align 8
  br label %388

388:                                              ; preds = %404, %383
  %389 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  br i1 %389, label %391, label %390

390:                                              ; preds = %388
  store i32 28, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %406

391:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %392 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %56, ptr align 4 %392, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %393 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %56)
  store i64 %393, ptr %57, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %58, ptr align 4 %57, i64 8, i1 false), !tbaa.struct !15
  %394 = load i64, ptr %58, align 4
  %395 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %394)
  br i1 %395, label %396, label %403

396:                                              ; preds = %391
  %397 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %57)
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %398
  %400 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %57)
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds [1010 x i8], ptr %399, i64 0, i64 %401
  store i8 0, ptr %402, align 1, !tbaa !9
  br label %403

403:                                              ; preds = %396, %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %404

404:                                              ; preds = %403
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  br label %388

406:                                              ; preds = %390
  br label %407

407:                                              ; preds = %406, %357
  store i32 0, ptr %4, align 4
  br label %408

408:                                              ; preds = %407, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  %409 = load i32, ptr %4, align 4
  switch i32 %409, label %411 [
    i32 0, label %410
  ]

410:                                              ; preds = %408
  store i32 0, ptr %4, align 4
  br label %411

411:                                              ; preds = %410, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  %412 = load i32, ptr %4, align 4
  switch i32 %412, label %416 [
    i32 0, label %413
  ]

413:                                              ; preds = %411
  br label %414

414:                                              ; preds = %413
  %415 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #9
  br label %354

416:                                              ; preds = %411, %356
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  %417 = load i32, ptr %4, align 4
  switch i32 %417, label %733 [
    i32 26, label %418
    i32 1, label %731
  ]

418:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #9
  store i8 1, ptr %59, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef @B, ptr noundef getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %59)
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !5
  br label %419

419:                                              ; preds = %479, %418
  %420 = load i32, ptr %60, align 4, !tbaa !5
  %421 = load i32, ptr @N, align 4, !tbaa !5
  %422 = mul nsw i32 4, %421
  %423 = icmp slt i32 %420, %422
  br i1 %423, label %425, label %424

424:                                              ; preds = %419
  store i32 30, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %482

425:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  store i32 0, ptr %61, align 4, !tbaa !5
  br label %426

426:                                              ; preds = %475, %425
  %427 = load i32, ptr %61, align 4, !tbaa !5
  %428 = load i32, ptr %60, align 4, !tbaa !5
  %429 = icmp sle i32 %427, %428
  br i1 %429, label %431, label %430

430:                                              ; preds = %426
  store i32 33, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %478

431:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %432 = load i32, ptr %60, align 4, !tbaa !5
  %433 = load i32, ptr %61, align 4, !tbaa !5
  %434 = sub nsw i32 %432, %433
  store i32 %434, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %435 = load i32, ptr %62, align 4, !tbaa !5
  %436 = load i32, ptr @N, align 4, !tbaa !5
  %437 = add nsw i32 %435, %436
  store i32 %437, ptr %64, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %438 = load i32, ptr %61, align 4, !tbaa !5
  %439 = load i32, ptr @N, align 4, !tbaa !5
  %440 = add nsw i32 %438, %439
  store i32 %440, ptr %65, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %63, ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 4 dereferenceable(4) %65)
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 4 %63, i64 8, i1 false), !tbaa.struct !15
  %441 = load i64, ptr %66, align 4
  %442 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %441)
  br i1 %442, label %443, label %444

443:                                              ; preds = %431
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %63)
  br label %444

444:                                              ; preds = %443, %431
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %445 = load i32, ptr @N, align 4, !tbaa !5
  %446 = load i32, ptr %62, align 4, !tbaa !5
  %447 = sub nsw i32 %445, %446
  store i32 %447, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %448 = load i32, ptr %61, align 4, !tbaa !5
  %449 = load i32, ptr @N, align 4, !tbaa !5
  %450 = add nsw i32 %448, %449
  store i32 %450, ptr %69, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef nonnull align 4 dereferenceable(4) %69)
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %70, ptr align 4 %67, i64 8, i1 false), !tbaa.struct !15
  %451 = load i64, ptr %70, align 4
  %452 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %451)
  br i1 %452, label %453, label %454

453:                                              ; preds = %444
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %67)
  br label %454

454:                                              ; preds = %453, %444
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %455 = load i32, ptr %62, align 4, !tbaa !5
  %456 = load i32, ptr @N, align 4, !tbaa !5
  %457 = add nsw i32 %455, %456
  store i32 %457, ptr %72, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %458 = load i32, ptr @N, align 4, !tbaa !5
  %459 = load i32, ptr %61, align 4, !tbaa !5
  %460 = sub nsw i32 %458, %459
  store i32 %460, ptr %73, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %71, ptr noundef nonnull align 4 dereferenceable(4) %72, ptr noundef nonnull align 4 dereferenceable(4) %73)
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %74, ptr align 4 %71, i64 8, i1 false), !tbaa.struct !15
  %461 = load i64, ptr %74, align 4
  %462 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %461)
  br i1 %462, label %463, label %464

463:                                              ; preds = %454
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %71)
  br label %464

464:                                              ; preds = %463, %454
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %465 = load i32, ptr @N, align 4, !tbaa !5
  %466 = load i32, ptr %62, align 4, !tbaa !5
  %467 = sub nsw i32 %465, %466
  store i32 %467, ptr %76, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %468 = load i32, ptr @N, align 4, !tbaa !5
  %469 = load i32, ptr %61, align 4, !tbaa !5
  %470 = sub nsw i32 %468, %469
  store i32 %470, ptr %77, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %75, ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %77)
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %78, ptr align 4 %75, i64 8, i1 false), !tbaa.struct !15
  %471 = load i64, ptr %78, align 4
  %472 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %471)
  br i1 %472, label %473, label %474

473:                                              ; preds = %464
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %75)
  br label %474

474:                                              ; preds = %473, %464
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %475

475:                                              ; preds = %474
  %476 = load i32, ptr %61, align 4, !tbaa !5
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr %61, align 4, !tbaa !5
  br label %426, !llvm.loop !23

478:                                              ; preds = %430
  br label %479

479:                                              ; preds = %478
  %480 = load i32, ptr %60, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %60, align 4, !tbaa !5
  br label %419, !llvm.loop !24

482:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  store ptr @pts, ptr %79, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %483 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %484 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %80, i32 0, i32 0
  store ptr %483, ptr %484, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %485 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %486 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %81, i32 0, i32 0
  store ptr %485, ptr %486, align 8
  br label %487

487:                                              ; preds = %547, %482
  %488 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  br i1 %488, label %490, label %489

489:                                              ; preds = %487
  store i32 36, ptr %4, align 4
  br label %549

490:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %491 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %80) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %82, ptr align 4 %491, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %492 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %82)
  store i32 %492, ptr %83, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %493 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %82)
  store i32 %493, ptr %84, align 4, !tbaa !5
  %494 = load i32, ptr %83, align 4, !tbaa !5
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %495
  %497 = load i32, ptr %84, align 4, !tbaa !5
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds [1010 x i8], ptr %496, i64 0, i64 %498
  %500 = load i8, ptr %499, align 1, !tbaa !9, !range !11, !noundef !12
  %501 = trunc i8 %500 to i1
  br i1 %501, label %502, label %540

502:                                              ; preds = %490
  %503 = load i32, ptr %83, align 4, !tbaa !5
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %504
  %506 = load i32, ptr %84, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds [1010 x i8], ptr %505, i64 0, i64 %507
  store i8 0, ptr %508, align 1, !tbaa !9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %82)
  %509 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  %510 = load i32, ptr @N, align 4, !tbaa !5
  %511 = load i32, ptr @N, align 4, !tbaa !5
  %512 = mul nsw i32 %510, %511
  %513 = sext i32 %512 to i64
  %514 = icmp eq i64 %509, %513
  br i1 %514, label %515, label %516

515:                                              ; preds = %502
  call void @_Z5flushv()
  store i32 0, ptr %1, align 4
  store i32 1, ptr %4, align 4
  br label %541

516:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  store ptr @F, ptr %85, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #9
  %517 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %518 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %86, i32 0, i32 0
  store ptr %517, ptr %518, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %519 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %520 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %87, i32 0, i32 0
  store ptr %519, ptr %520, align 8
  br label %521

521:                                              ; preds = %537, %516
  %522 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  br i1 %522, label %524, label %523

523:                                              ; preds = %521
  store i32 38, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br label %539

524:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %525 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %88, ptr align 4 %525, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %526 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %82, ptr noundef nonnull align 4 dereferenceable(8) %88)
  store i64 %526, ptr %89, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %90, ptr align 4 %89, i64 8, i1 false), !tbaa.struct !15
  %527 = load i64, ptr %90, align 4
  %528 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %527)
  br i1 %528, label %529, label %536

529:                                              ; preds = %524
  %530 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %89)
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %531
  %533 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %89)
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds [1010 x i8], ptr %532, i64 0, i64 %534
  store i8 0, ptr %535, align 1, !tbaa !9
  br label %536

536:                                              ; preds = %529, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %537

537:                                              ; preds = %536
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  br label %521

539:                                              ; preds = %523
  br label %540

540:                                              ; preds = %539, %490
  store i32 0, ptr %4, align 4
  br label %541

541:                                              ; preds = %540, %515
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  %542 = load i32, ptr %4, align 4
  switch i32 %542, label %544 [
    i32 0, label %543
  ]

543:                                              ; preds = %541
  store i32 0, ptr %4, align 4
  br label %544

544:                                              ; preds = %543, %541
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  %545 = load i32, ptr %4, align 4
  switch i32 %545, label %549 [
    i32 0, label %546
  ]

546:                                              ; preds = %544
  br label %547

547:                                              ; preds = %546
  %548 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %80) #9
  br label %487

549:                                              ; preds = %544, %489
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  %550 = load i32, ptr %4, align 4
  switch i32 %550, label %733 [
    i32 36, label %551
    i32 1, label %731
  ]

551:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #9
  store i8 1, ptr %91, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef @B, ptr noundef getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %91)
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  store i32 0, ptr %92, align 4, !tbaa !5
  br label %552

552:                                              ; preds = %576, %551
  %553 = load i32, ptr %92, align 4, !tbaa !5
  %554 = load i32, ptr @N, align 4, !tbaa !5
  %555 = icmp slt i32 %553, %554
  br i1 %555, label %557, label %556

556:                                              ; preds = %552
  store i32 40, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %579

557:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  store i32 0, ptr %93, align 4, !tbaa !5
  br label %558

558:                                              ; preds = %572, %557
  %559 = load i32, ptr %93, align 4, !tbaa !5
  %560 = load i32, ptr @N, align 4, !tbaa !5
  %561 = icmp slt i32 %559, %560
  br i1 %561, label %563, label %562

562:                                              ; preds = %558
  store i32 43, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %575

563:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %564 = load i32, ptr %92, align 4, !tbaa !5
  %565 = mul nsw i32 2, %564
  store i32 %565, ptr %95, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %566 = load i32, ptr %93, align 4, !tbaa !5
  %567 = mul nsw i32 2, %566
  store i32 %567, ptr %96, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %94, ptr noundef nonnull align 4 dereferenceable(4) %95, ptr noundef nonnull align 4 dereferenceable(4) %96)
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %97, ptr align 4 %94, i64 8, i1 false), !tbaa.struct !15
  %568 = load i64, ptr %97, align 4
  %569 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %568)
  br i1 %569, label %570, label %571

570:                                              ; preds = %563
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %94)
  br label %571

571:                                              ; preds = %570, %563
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr %93, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %93, align 4, !tbaa !5
  br label %558, !llvm.loop !25

575:                                              ; preds = %562
  br label %576

576:                                              ; preds = %575
  %577 = load i32, ptr %92, align 4, !tbaa !5
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %92, align 4, !tbaa !5
  br label %552, !llvm.loop !26

579:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  store i32 0, ptr %98, align 4, !tbaa !5
  br label %580

580:                                              ; preds = %605, %579
  %581 = load i32, ptr %98, align 4, !tbaa !5
  %582 = load i32, ptr @N, align 4, !tbaa !5
  %583 = icmp slt i32 %581, %582
  br i1 %583, label %585, label %584

584:                                              ; preds = %580
  store i32 46, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %608

585:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  store i32 0, ptr %99, align 4, !tbaa !5
  br label %586

586:                                              ; preds = %601, %585
  %587 = load i32, ptr %99, align 4, !tbaa !5
  %588 = load i32, ptr @N, align 4, !tbaa !5
  %589 = icmp slt i32 %587, %588
  br i1 %589, label %591, label %590

590:                                              ; preds = %586
  store i32 49, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %604

591:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %592 = load i32, ptr %98, align 4, !tbaa !5
  %593 = mul nsw i32 2, %592
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr %101, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %595 = load i32, ptr %99, align 4, !tbaa !5
  %596 = mul nsw i32 2, %595
  store i32 %596, ptr %102, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %100, ptr noundef nonnull align 4 dereferenceable(4) %101, ptr noundef nonnull align 4 dereferenceable(4) %102)
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %103, ptr align 4 %100, i64 8, i1 false), !tbaa.struct !15
  %597 = load i64, ptr %103, align 4
  %598 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %597)
  br i1 %598, label %599, label %600

599:                                              ; preds = %591
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %100)
  br label %600

600:                                              ; preds = %599, %591
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  br label %601

601:                                              ; preds = %600
  %602 = load i32, ptr %99, align 4, !tbaa !5
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr %99, align 4, !tbaa !5
  br label %586, !llvm.loop !27

604:                                              ; preds = %590
  br label %605

605:                                              ; preds = %604
  %606 = load i32, ptr %98, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr %98, align 4, !tbaa !5
  br label %580, !llvm.loop !28

608:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  store i32 0, ptr %104, align 4, !tbaa !5
  br label %609

609:                                              ; preds = %634, %608
  %610 = load i32, ptr %104, align 4, !tbaa !5
  %611 = load i32, ptr @N, align 4, !tbaa !5
  %612 = icmp slt i32 %610, %611
  br i1 %612, label %614, label %613

613:                                              ; preds = %609
  store i32 52, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %637

614:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  store i32 0, ptr %105, align 4, !tbaa !5
  br label %615

615:                                              ; preds = %630, %614
  %616 = load i32, ptr %105, align 4, !tbaa !5
  %617 = load i32, ptr @N, align 4, !tbaa !5
  %618 = icmp slt i32 %616, %617
  br i1 %618, label %620, label %619

619:                                              ; preds = %615
  store i32 55, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %633

620:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %621 = load i32, ptr %104, align 4, !tbaa !5
  %622 = mul nsw i32 2, %621
  store i32 %622, ptr %107, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #9
  %623 = load i32, ptr %105, align 4, !tbaa !5
  %624 = mul nsw i32 2, %623
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr %108, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %106, ptr noundef nonnull align 4 dereferenceable(4) %107, ptr noundef nonnull align 4 dereferenceable(4) %108)
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %109, ptr align 4 %106, i64 8, i1 false), !tbaa.struct !15
  %626 = load i64, ptr %109, align 4
  %627 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %626)
  br i1 %627, label %628, label %629

628:                                              ; preds = %620
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %106)
  br label %629

629:                                              ; preds = %628, %620
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %105, align 4, !tbaa !5
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %105, align 4, !tbaa !5
  br label %615, !llvm.loop !29

633:                                              ; preds = %619
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr %104, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %104, align 4, !tbaa !5
  br label %609, !llvm.loop !30

637:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  store i32 0, ptr %110, align 4, !tbaa !5
  br label %638

638:                                              ; preds = %664, %637
  %639 = load i32, ptr %110, align 4, !tbaa !5
  %640 = load i32, ptr @N, align 4, !tbaa !5
  %641 = icmp slt i32 %639, %640
  br i1 %641, label %643, label %642

642:                                              ; preds = %638
  store i32 58, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %667

643:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  store i32 0, ptr %111, align 4, !tbaa !5
  br label %644

644:                                              ; preds = %660, %643
  %645 = load i32, ptr %111, align 4, !tbaa !5
  %646 = load i32, ptr @N, align 4, !tbaa !5
  %647 = icmp slt i32 %645, %646
  br i1 %647, label %649, label %648

648:                                              ; preds = %644
  store i32 61, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %663

649:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %650 = load i32, ptr %110, align 4, !tbaa !5
  %651 = mul nsw i32 2, %650
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr %113, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %653 = load i32, ptr %111, align 4, !tbaa !5
  %654 = mul nsw i32 2, %653
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr %114, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %112, ptr noundef nonnull align 4 dereferenceable(4) %113, ptr noundef nonnull align 4 dereferenceable(4) %114)
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %115, ptr align 4 %112, i64 8, i1 false), !tbaa.struct !15
  %656 = load i64, ptr %115, align 4
  %657 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %656)
  br i1 %657, label %658, label %659

658:                                              ; preds = %649
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %112)
  br label %659

659:                                              ; preds = %658, %649
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %660

660:                                              ; preds = %659
  %661 = load i32, ptr %111, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr %111, align 4, !tbaa !5
  br label %644, !llvm.loop !31

663:                                              ; preds = %648
  br label %664

664:                                              ; preds = %663
  %665 = load i32, ptr %110, align 4, !tbaa !5
  %666 = add nsw i32 %665, 1
  store i32 %666, ptr %110, align 4, !tbaa !5
  br label %638, !llvm.loop !32

667:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #9
  store ptr @pts, ptr %116, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #9
  %668 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %669 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %117, i32 0, i32 0
  store ptr %668, ptr %669, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #9
  %670 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #9
  %671 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %118, i32 0, i32 0
  store ptr %670, ptr %671, align 8
  br label %672

672:                                              ; preds = %726, %667
  %673 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %118) #9
  br i1 %673, label %675, label %674

674:                                              ; preds = %672
  store i32 64, ptr %4, align 4
  br label %728

675:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #9
  %676 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %117) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %119, ptr align 4 %676, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %677 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %119)
  store i32 %677, ptr %120, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #9
  %678 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %119)
  store i32 %678, ptr %121, align 4, !tbaa !5
  %679 = load i32, ptr %120, align 4, !tbaa !5
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %680
  %682 = load i32, ptr %121, align 4, !tbaa !5
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds [1010 x i8], ptr %681, i64 0, i64 %683
  %685 = load i8, ptr %684, align 1, !tbaa !9, !range !11, !noundef !12
  %686 = trunc i8 %685 to i1
  br i1 %686, label %687, label %719

687:                                              ; preds = %675
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %119)
  %688 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #9
  %689 = load i32, ptr @N, align 4, !tbaa !5
  %690 = load i32, ptr @N, align 4, !tbaa !5
  %691 = mul nsw i32 %689, %690
  %692 = sext i32 %691 to i64
  %693 = icmp eq i64 %688, %692
  br i1 %693, label %694, label %695

694:                                              ; preds = %687
  call void @_Z5flushv()
  store i32 0, ptr %1, align 4
  store i32 1, ptr %4, align 4
  br label %720

695:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #9
  store ptr @F, ptr %122, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #9
  %696 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %697 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %123, i32 0, i32 0
  store ptr %696, ptr %697, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #9
  %698 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #9
  %699 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %124, i32 0, i32 0
  store ptr %698, ptr %699, align 8
  br label %700

700:                                              ; preds = %716, %695
  %701 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #9
  br i1 %701, label %703, label %702

702:                                              ; preds = %700
  store i32 66, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  br label %718

703:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  %704 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %125, ptr align 4 %704, i64 8, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #9
  %705 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %125)
  store i64 %705, ptr %126, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %126, i64 8, i1 false), !tbaa.struct !15
  %706 = load i64, ptr %127, align 4
  %707 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %706)
  br i1 %707, label %708, label %715

708:                                              ; preds = %703
  %709 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %126)
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %710
  %712 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %126)
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds [1010 x i8], ptr %711, i64 0, i64 %713
  store i8 0, ptr %714, align 1, !tbaa !9
  br label %715

715:                                              ; preds = %708, %703
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  br label %716

716:                                              ; preds = %715
  %717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  br label %700

718:                                              ; preds = %702
  br label %719

719:                                              ; preds = %718, %675
  store i32 0, ptr %4, align 4
  br label %720

720:                                              ; preds = %719, %694
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  %721 = load i32, ptr %4, align 4
  switch i32 %721, label %723 [
    i32 0, label %722
  ]

722:                                              ; preds = %720
  store i32 0, ptr %4, align 4
  br label %723

723:                                              ; preds = %722, %720
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  %724 = load i32, ptr %4, align 4
  switch i32 %724, label %728 [
    i32 0, label %725
  ]

725:                                              ; preds = %723
  br label %726

726:                                              ; preds = %725
  %727 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %117) #9
  br label %672

728:                                              ; preds = %723, %674
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  %729 = load i32, ptr %4, align 4
  switch i32 %729, label %733 [
    i32 64, label %730
    i32 1, label %731
  ]

730:                                              ; preds = %728
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.7, i32 noundef 330, ptr noundef @__PRETTY_FUNCTION__.main) #10
  unreachable

731:                                              ; preds = %728, %549, %416, %291, %200
  %732 = load i32, ptr %1, align 4
  ret i32 %732

733:                                              ; preds = %728, %549, %416, %291, %200
  unreachable
}

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #7

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #8

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 = { 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 = { 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { 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 #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 = { 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 #8 = { noreturn 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 #9 = { nounwind }
attributes #10 = { noreturn 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 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{i64 0, i64 4, !5, i64 4, i64 4, !5}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}


; 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<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::complex<int>, std::allocator<std::complex<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::complex" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@N = external dso_local global i32, align 4
@D = external dso_local global [2 x i32], align 4
@ans = external dso_local global %"class.std::vector", align 8
@F = external dso_local global %"class.std::vector", align 8
@B = external dso_local global [1010 x [1010 x i8]], align 16
@pts = external dso_local global %"class.std::vector", align 8
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.6 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [11 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z5flushv() local_unnamed_addr #0

; 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 ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(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_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 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(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11make_forbidi(i32 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z5validSt7complexIiE(i64) local_unnamed_addr #0

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #4 {
  %1 = alloca i8, align 1
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca %"class.std::complex", align 4
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.std::complex", align 8
  %8 = alloca %"class.std::complex", align 8
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::complex", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.std::complex", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.std::complex", align 8
  %19 = alloca %"class.std::complex", align 8
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::complex", align 8
  %24 = alloca %"class.std::complex", align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::complex", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::complex", align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.std::complex", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca %"class.std::complex", align 8
  %37 = alloca %"class.std::complex", align 8
  %38 = alloca i8, align 1
  %39 = alloca %"class.std::complex", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::complex", align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %"class.std::complex", align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %"class.std::complex", align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %"class.std::complex", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.std::complex", align 8
  %57 = alloca %"class.std::complex", align 8
  %58 = alloca i8, align 1
  %59 = alloca %"class.std::complex", align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca %"class.std::complex", align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %"class.std::complex", align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %"class.std::complex", align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %73 = alloca %"class.std::complex", align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %76 = alloca %"class.std::complex", align 8
  %77 = alloca %"class.std::complex", align 8
  %78 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) @N)
  %79 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 4 dereferenceable(4) @D)
  %80 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 4 dereferenceable(4) getelementptr inbounds (i8, ptr @D, i64 4))
  %81 = load i32, ptr @D, align 4, !tbaa !5
  tail call void @_Z11make_forbidi(i32 noundef %81)
  %82 = load i32, ptr getelementptr inbounds (i8, ptr @D, i64 4), align 4, !tbaa !5
  tail call void @_Z11make_forbidi(i32 noundef %82)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1) #8
  store i8 1, ptr %1, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull @B, ptr noundef nonnull getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %1)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  store i32 0, ptr %2, align 4, !tbaa !5
  %83 = load i32, ptr @N, align 4, !tbaa !5
  %84 = icmp sgt i32 %83, 0
  br i1 %84, label %.lr.ph185, label %._crit_edge186

.lr.ph185:                                        ; preds = %0, %.thread151
  %85 = phi i32 [ %87, %.thread151 ], [ %83, %0 ]
  %86 = phi i32 [ %89, %.thread151 ], [ 0, %0 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #8
  store i32 0, ptr %3, align 4, !tbaa !5
  %.not129180 = icmp sgt i32 %85, 0
  br i1 %.not129180, label %.lr.ph183, label %.thread151

.thread151.loopexit:                              ; preds = %122
  %.pre246 = load i32, ptr %2, align 4, !tbaa !5
  br label %.thread151

.thread151:                                       ; preds = %.thread151.loopexit, %.lr.ph185
  %87 = phi i32 [ %123, %.thread151.loopexit ], [ %85, %.lr.ph185 ]
  %88 = phi i32 [ %.pre246, %.thread151.loopexit ], [ %86, %.lr.ph185 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  %89 = add nsw i32 %88, 1
  store i32 %89, ptr %2, align 4, !tbaa !5
  %90 = shl nsw i32 %87, 1
  %91 = icmp slt i32 %89, %90
  br i1 %91, label %.lr.ph185, label %._crit_edge186, !llvm.loop !11

.lr.ph183:                                        ; preds = %.lr.ph185, %122
  %92 = phi i32 [ %123, %122 ], [ %85, %.lr.ph185 ]
  %93 = phi i32 [ %124, %122 ], [ %85, %.lr.ph185 ]
  %storemerge128181 = phi i32 [ %126, %122 ], [ 0, %.lr.ph185 ]
  %94 = load i32, ptr %2, align 4, !tbaa !5
  %95 = sext i32 %94 to i64
  %96 = sext i32 %storemerge128181 to i64
  %97 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %95, i64 %96
  %98 = load i8, ptr %97, align 1, !tbaa !9, !range !13, !noundef !14
  %99 = trunc nuw i8 %98 to i1
  br i1 %99, label %100, label %122

100:                                              ; preds = %.lr.ph183
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %4, ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %4)
  %101 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  %102 = load i32, ptr @N, align 4, !tbaa !5
  %103 = mul nsw i32 %102, %102
  %104 = zext nneg i32 %103 to i64
  %.not = icmp eq i64 %101, %104
  br i1 %.not, label %.thread153, label %105

105:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #8
  %106 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %106, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %107 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %107, ptr %6, align 8
  %108 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br i1 %108, label %.lr.ph, label %._crit_edge._crit_edge

.lr.ph:                                           ; preds = %105, %119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  %109 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  %110 = load i64, ptr %109, align 4
  store i64 %110, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  %111 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %4, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store i64 %111, ptr %8, align 8
  %112 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %111)
  br i1 %112, label %113, label %119

113:                                              ; preds = %.lr.ph
  %114 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %115 = sext i32 %114 to i64
  %116 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %115, i64 %117
  store i8 0, ptr %118, align 1, !tbaa !9
  br label %119

119:                                              ; preds = %113, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  %121 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br i1 %121, label %.lr.ph, label %._crit_edge._crit_edge

._crit_edge._crit_edge:                           ; preds = %119, %105
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.pre245 = load i32, ptr @N, align 4, !tbaa !5
  br label %122

122:                                              ; preds = %._crit_edge._crit_edge, %.lr.ph183
  %123 = phi i32 [ %.pre245, %._crit_edge._crit_edge ], [ %92, %.lr.ph183 ]
  %124 = phi i32 [ %.pre245, %._crit_edge._crit_edge ], [ %93, %.lr.ph183 ]
  %125 = phi i32 [ %.pre, %._crit_edge._crit_edge ], [ %storemerge128181, %.lr.ph183 ]
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr %3, align 4, !tbaa !5
  %127 = shl nsw i32 %124, 1
  %.not129 = icmp slt i32 %126, %127
  br i1 %.not129, label %.lr.ph183, label %.thread151.loopexit, !llvm.loop !15

.thread153:                                       ; preds = %100
  call void @_Z5flushv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  br label %434

._crit_edge186:                                   ; preds = %.thread151, %0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #8
  store i8 1, ptr %9, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull @B, ptr noundef nonnull getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %9)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  %128 = load i32, ptr @N, align 4, !tbaa !5
  %129 = icmp sgt i32 %128, 0
  br i1 %129, label %.lr.ph190, label %._crit_edge191

._crit_edge191:                                   ; preds = %133, %._crit_edge186
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  %130 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %130, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  %131 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %131, ptr %14, align 8
  %132 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br i1 %132, label %.lr.ph196, label %._crit_edge197

.lr.ph190:                                        ; preds = %._crit_edge186, %133
  %.0115188 = phi i32 [ %134, %133 ], [ 0, %._crit_edge186 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %138

133:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  %134 = add nuw nsw i32 %.0115188, 1
  %135 = load i32, ptr @N, align 4, !tbaa !5
  %136 = shl nsw i32 %135, 2
  %137 = icmp slt i32 %134, %136
  br i1 %137, label %.lr.ph190, label %._crit_edge191, !llvm.loop !16

138:                                              ; preds = %.lr.ph190, %142
  %storemerge133187 = phi i32 [ 0, %.lr.ph190 ], [ %144, %142 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %139 = sub nsw i32 %.0115188, %storemerge133187
  store i32 %139, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %10)
  %.sroa.082.0.copyload = load i64, ptr %12, align 8
  %140 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.082.0.copyload)
  br i1 %140, label %141, label %142

141:                                              ; preds = %138
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %12)
  br label %142

142:                                              ; preds = %141, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  %143 = load i32, ptr %10, align 4, !tbaa !5
  %144 = add nsw i32 %143, 1
  store i32 %144, ptr %10, align 4, !tbaa !5
  %.not134.not = icmp slt i32 %143, %.0115188
  br i1 %.not134.not, label %138, label %133, !llvm.loop !17

.lr.ph196:                                        ; preds = %._crit_edge191, %177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %145 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  %146 = load i64, ptr %145, align 4
  store i64 %146, ptr %15, align 8
  %147 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %15)
  %148 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %15)
  %149 = sext i32 %147 to i64
  %150 = sext i32 %148 to i64
  %151 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %149, i64 %150
  %152 = load i8, ptr %151, align 1, !tbaa !9, !range !13, !noundef !14
  %153 = trunc nuw i8 %152 to i1
  br i1 %153, label %154, label %177

154:                                              ; preds = %.lr.ph196
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %15)
  %155 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  %156 = load i32, ptr @N, align 4, !tbaa !5
  %157 = mul nsw i32 %156, %156
  %158 = zext nneg i32 %157 to i64
  %159 = icmp eq i64 %155, %158
  br i1 %159, label %180, label %160

160:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  %161 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %161, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  %162 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %162, ptr %17, align 8
  %163 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br i1 %163, label %.lr.ph193, label %._crit_edge194

._crit_edge194:                                   ; preds = %174, %160
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %177

.lr.ph193:                                        ; preds = %160, %174
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  %164 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  %165 = load i64, ptr %164, align 4
  store i64 %165, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %166 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %18)
  store i64 %166, ptr %19, align 8
  %167 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %166)
  br i1 %167, label %168, label %174

168:                                              ; preds = %.lr.ph193
  %169 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %19)
  %170 = sext i32 %169 to i64
  %171 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %19)
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %170, i64 %172
  store i8 0, ptr %173, align 1, !tbaa !9
  br label %174

174:                                              ; preds = %168, %.lr.ph193
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  %176 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br i1 %176, label %.lr.ph193, label %._crit_edge194

177:                                              ; preds = %.lr.ph196, %._crit_edge194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  %179 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br i1 %179, label %.lr.ph196, label %._crit_edge197

180:                                              ; preds = %154
  call void @_Z5flushv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %434

._crit_edge197:                                   ; preds = %177, %._crit_edge191
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  store i8 1, ptr %20, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull @B, ptr noundef nonnull getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %20)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  %181 = load i32, ptr @N, align 4, !tbaa !5
  %182 = icmp sgt i32 %181, 0
  br i1 %182, label %.lr.ph201, label %._crit_edge202

._crit_edge202:                                   ; preds = %186, %._crit_edge197
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  %183 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %183, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  %184 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %184, ptr %32, align 8
  %185 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br i1 %185, label %.lr.ph207, label %._crit_edge208

.lr.ph201:                                        ; preds = %._crit_edge197, %186
  %.0116199 = phi i32 [ %187, %186 ], [ 0, %._crit_edge197 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #8
  store i32 0, ptr %21, align 4, !tbaa !5
  br label %191

186:                                              ; preds = %218
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  %187 = add nuw nsw i32 %.0116199, 1
  %188 = load i32, ptr @N, align 4, !tbaa !5
  %189 = shl nsw i32 %188, 2
  %190 = icmp slt i32 %187, %189
  br i1 %190, label %.lr.ph201, label %._crit_edge202, !llvm.loop !18

191:                                              ; preds = %.lr.ph201, %218
  %storemerge131198 = phi i32 [ 0, %.lr.ph201 ], [ %220, %218 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #8
  %192 = sub nsw i32 %.0116199, %storemerge131198
  store i32 %192, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %21)
  %.sroa.074.0.copyload = load i64, ptr %23, align 8
  %193 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.074.0.copyload)
  br i1 %193, label %194, label %195

194:                                              ; preds = %191
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %23)
  br label %195

195:                                              ; preds = %194, %191
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #8
  %196 = load i32, ptr @N, align 4, !tbaa !5
  %197 = shl nsw i32 %196, 1
  %198 = load i32, ptr %22, align 4, !tbaa !5
  %199 = sub nsw i32 %197, %198
  store i32 %199, ptr %25, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %21)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #8
  %.sroa.073.0.copyload = load i64, ptr %24, align 8
  %200 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.073.0.copyload)
  br i1 %200, label %201, label %202

201:                                              ; preds = %195
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %24)
  br label %202

202:                                              ; preds = %201, %195
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #8
  %203 = load i32, ptr @N, align 4, !tbaa !5
  %204 = shl nsw i32 %203, 1
  %205 = load i32, ptr %21, align 4, !tbaa !5
  %206 = sub nsw i32 %204, %205
  store i32 %206, ptr %27, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %27)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  %.sroa.072.0.copyload = load i64, ptr %26, align 8
  %207 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.072.0.copyload)
  br i1 %207, label %208, label %209

208:                                              ; preds = %202
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %26)
  br label %209

209:                                              ; preds = %208, %202
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #8
  %210 = load i32, ptr @N, align 4, !tbaa !5
  %211 = shl nsw i32 %210, 1
  %212 = load i32, ptr %22, align 4, !tbaa !5
  %213 = sub nsw i32 %211, %212
  store i32 %213, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  %214 = load i32, ptr %21, align 4, !tbaa !5
  %215 = sub nsw i32 %211, %214
  store i32 %215, ptr %30, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #8
  %.sroa.071.0.copyload = load i64, ptr %28, align 8
  %216 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.071.0.copyload)
  br i1 %216, label %217, label %218

217:                                              ; preds = %209
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %28)
  br label %218

218:                                              ; preds = %217, %209
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #8
  %219 = load i32, ptr %21, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr %21, align 4, !tbaa !5
  %.not132.not = icmp slt i32 %219, %.0116199
  br i1 %.not132.not, label %191, label %186, !llvm.loop !19

.lr.ph207:                                        ; preds = %._crit_edge202, %253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %221 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  %222 = load i64, ptr %221, align 4
  store i64 %222, ptr %33, align 8
  %223 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %33)
  %224 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %33)
  %225 = sext i32 %223 to i64
  %226 = sext i32 %224 to i64
  %227 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %225, i64 %226
  %228 = load i8, ptr %227, align 1, !tbaa !9, !range !13, !noundef !14
  %229 = trunc nuw i8 %228 to i1
  br i1 %229, label %230, label %253

230:                                              ; preds = %.lr.ph207
  store i8 0, ptr %227, align 1, !tbaa !9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %33)
  %231 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  %232 = load i32, ptr @N, align 4, !tbaa !5
  %233 = mul nsw i32 %232, %232
  %234 = zext nneg i32 %233 to i64
  %235 = icmp eq i64 %231, %234
  br i1 %235, label %256, label %236

236:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  %237 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %237, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  %238 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %238, ptr %35, align 8
  %239 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br i1 %239, label %.lr.ph204, label %._crit_edge205

._crit_edge205:                                   ; preds = %250, %236
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  br label %253

.lr.ph204:                                        ; preds = %236, %250
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %240 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  %241 = load i64, ptr %240, align 4
  store i64 %241, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  %242 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %36)
  store i64 %242, ptr %37, align 8
  %243 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %242)
  br i1 %243, label %244, label %250

244:                                              ; preds = %.lr.ph204
  %245 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %37)
  %246 = sext i32 %245 to i64
  %247 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %37)
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %246, i64 %248
  store i8 0, ptr %249, align 1, !tbaa !9
  br label %250

250:                                              ; preds = %244, %.lr.ph204
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  %252 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br i1 %252, label %.lr.ph204, label %._crit_edge205

253:                                              ; preds = %.lr.ph207, %._crit_edge205
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  %255 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br i1 %255, label %.lr.ph207, label %._crit_edge208

256:                                              ; preds = %230
  call void @_Z5flushv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %434

._crit_edge208:                                   ; preds = %253, %._crit_edge202
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #8
  store i8 1, ptr %38, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull @B, ptr noundef nonnull getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %38)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  %257 = load i32, ptr @N, align 4, !tbaa !5
  %258 = icmp sgt i32 %257, 0
  br i1 %258, label %.preheader179, label %._crit_edge211

.preheader179:                                    ; preds = %._crit_edge208, %262
  %indvars.iv = phi i32 [ %indvars.iv.next, %262 ], [ 1, %._crit_edge208 ]
  %.0117210 = phi i32 [ %263, %262 ], [ 0, %._crit_edge208 ]
  br label %267

._crit_edge211:                                   ; preds = %262, %._crit_edge208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #8
  %259 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %259, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  %260 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %260, ptr %52, align 8
  %261 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br i1 %261, label %.lr.ph216, label %._crit_edge217

262:                                              ; preds = %292
  %263 = add nuw nsw i32 %.0117210, 1
  %264 = load i32, ptr @N, align 4, !tbaa !5
  %265 = shl nsw i32 %264, 2
  %266 = icmp slt i32 %263, %265
  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
  br i1 %266, label %.preheader179, label %._crit_edge211, !llvm.loop !20

267:                                              ; preds = %.preheader179, %292
  %.0118209 = phi i32 [ 0, %.preheader179 ], [ %293, %292 ]
  %268 = sub nsw i32 %.0117210, %.0118209
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #8
  %269 = load i32, ptr @N, align 4, !tbaa !5
  %270 = add nsw i32 %269, %268
  store i32 %270, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #8
  %271 = add nsw i32 %269, %.0118209
  store i32 %271, ptr %41, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #8
  %.sroa.050.0.copyload = load i64, ptr %39, align 8
  %272 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.050.0.copyload)
  br i1 %272, label %273, label %274

273:                                              ; preds = %267
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %39)
  br label %274

274:                                              ; preds = %273, %267
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #8
  %275 = load i32, ptr @N, align 4, !tbaa !5
  %276 = sub nsw i32 %275, %268
  store i32 %276, ptr %43, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #8
  %277 = add nsw i32 %275, %.0118209
  store i32 %277, ptr %44, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %44)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #8
  %.sroa.049.0.copyload = load i64, ptr %42, align 8
  %278 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.049.0.copyload)
  br i1 %278, label %279, label %280

279:                                              ; preds = %274
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %42)
  br label %280

280:                                              ; preds = %279, %274
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #8
  %281 = load i32, ptr @N, align 4, !tbaa !5
  %282 = add nsw i32 %281, %268
  store i32 %282, ptr %46, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #8
  %283 = sub nsw i32 %281, %.0118209
  store i32 %283, ptr %47, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %47)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #8
  %.sroa.048.0.copyload = load i64, ptr %45, align 8
  %284 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.048.0.copyload)
  br i1 %284, label %285, label %286

285:                                              ; preds = %280
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %45)
  br label %286

286:                                              ; preds = %285, %280
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #8
  %287 = load i32, ptr @N, align 4, !tbaa !5
  %288 = sub nsw i32 %287, %268
  store i32 %288, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #8
  %289 = sub nsw i32 %287, %.0118209
  store i32 %289, ptr %50, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) %50)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #8
  %.sroa.047.0.copyload = load i64, ptr %48, align 8
  %290 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.047.0.copyload)
  br i1 %290, label %291, label %292

291:                                              ; preds = %286
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %48)
  br label %292

292:                                              ; preds = %291, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  %293 = add nuw nsw i32 %.0118209, 1
  %exitcond.not = icmp eq i32 %293, %indvars.iv
  br i1 %exitcond.not, label %262, label %267, !llvm.loop !21

.lr.ph216:                                        ; preds = %._crit_edge211, %326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #8
  %294 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  %295 = load i64, ptr %294, align 4
  store i64 %295, ptr %53, align 8
  %296 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %53)
  %297 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %53)
  %298 = sext i32 %296 to i64
  %299 = sext i32 %297 to i64
  %300 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %298, i64 %299
  %301 = load i8, ptr %300, align 1, !tbaa !9, !range !13, !noundef !14
  %302 = trunc nuw i8 %301 to i1
  br i1 %302, label %303, label %326

303:                                              ; preds = %.lr.ph216
  store i8 0, ptr %300, align 1, !tbaa !9
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %53)
  %304 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  %305 = load i32, ptr @N, align 4, !tbaa !5
  %306 = mul nsw i32 %305, %305
  %307 = zext nneg i32 %306 to i64
  %308 = icmp eq i64 %304, %307
  br i1 %308, label %329, label %309

309:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #8
  %310 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %310, ptr %54, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  %311 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %311, ptr %55, align 8
  %312 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br i1 %312, label %.lr.ph213, label %._crit_edge214

._crit_edge214:                                   ; preds = %323, %309
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  br label %326

.lr.ph213:                                        ; preds = %309, %323
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #8
  %313 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  %314 = load i64, ptr %313, align 4
  store i64 %314, ptr %56, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  %315 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %53, ptr noundef nonnull align 4 dereferenceable(8) %56)
  store i64 %315, ptr %57, align 8
  %316 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %315)
  br i1 %316, label %317, label %323

317:                                              ; preds = %.lr.ph213
  %318 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %57)
  %319 = sext i32 %318 to i64
  %320 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %57)
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %319, i64 %321
  store i8 0, ptr %322, align 1, !tbaa !9
  br label %323

323:                                              ; preds = %317, %.lr.ph213
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #8
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  %325 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br i1 %325, label %.lr.ph213, label %._crit_edge214

326:                                              ; preds = %.lr.ph216, %._crit_edge214
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  %328 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br i1 %328, label %.lr.ph216, label %._crit_edge217

329:                                              ; preds = %303
  call void @_Z5flushv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  br label %434

._crit_edge217:                                   ; preds = %326, %._crit_edge211
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #8
  store i8 1, ptr %58, align 1, !tbaa !9
  call void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull @B, ptr noundef nonnull getelementptr inbounds (i8, ptr @B, i64 1020100), ptr noundef nonnull align 1 dereferenceable(1) %58)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  %330 = load i32, ptr @N, align 4, !tbaa !5
  %331 = icmp sgt i32 %330, 0
  br i1 %331, label %.preheader178, label %._crit_edge234

.preheader178:                                    ; preds = %._crit_edge217, %._crit_edge220
  %332 = phi i32 [ %336, %._crit_edge220 ], [ %330, %._crit_edge217 ]
  %.0121221 = phi i32 [ %337, %._crit_edge220 ], [ 0, %._crit_edge217 ]
  %333 = icmp sgt i32 %332, 0
  br i1 %333, label %.lr.ph219, label %._crit_edge220

.lr.ph219:                                        ; preds = %.preheader178
  %334 = shl nuw nsw i32 %.0121221, 1
  br label %339

.preheader177:                                    ; preds = %._crit_edge220
  %335 = icmp sgt i32 %336, 0
  br i1 %335, label %.preheader176, label %._crit_edge234

._crit_edge220:                                   ; preds = %343, %.preheader178
  %336 = phi i32 [ %332, %.preheader178 ], [ %345, %343 ]
  %337 = add nuw nsw i32 %.0121221, 1
  %338 = icmp slt i32 %337, %336
  br i1 %338, label %.preheader178, label %.preheader177, !llvm.loop !22

339:                                              ; preds = %.lr.ph219, %343
  %.0124218 = phi i32 [ 0, %.lr.ph219 ], [ %344, %343 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #8
  store i32 %334, ptr %60, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #8
  %340 = shl nuw nsw i32 %.0124218, 1
  store i32 %340, ptr %61, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %61)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #8
  %.sroa.035.0.copyload = load i64, ptr %59, align 8
  %341 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.035.0.copyload)
  br i1 %341, label %342, label %343

342:                                              ; preds = %339
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %59)
  br label %343

343:                                              ; preds = %342, %339
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #8
  %344 = add nuw nsw i32 %.0124218, 1
  %345 = load i32, ptr @N, align 4, !tbaa !5
  %346 = icmp slt i32 %344, %345
  br i1 %346, label %339, label %._crit_edge220, !llvm.loop !24

.preheader176:                                    ; preds = %.preheader177, %._crit_edge224
  %347 = phi i32 [ %352, %._crit_edge224 ], [ %336, %.preheader177 ]
  %.0126225 = phi i32 [ %353, %._crit_edge224 ], [ 0, %.preheader177 ]
  %348 = icmp sgt i32 %347, 0
  br i1 %348, label %.lr.ph223, label %._crit_edge224

.lr.ph223:                                        ; preds = %.preheader176
  %349 = shl nuw nsw i32 %.0126225, 1
  %350 = or disjoint i32 %349, 1
  br label %355

.preheader175:                                    ; preds = %._crit_edge224
  %351 = icmp sgt i32 %352, 0
  br i1 %351, label %.preheader174, label %._crit_edge234

._crit_edge224:                                   ; preds = %359, %.preheader176
  %352 = phi i32 [ %347, %.preheader176 ], [ %361, %359 ]
  %353 = add nuw nsw i32 %.0126225, 1
  %354 = icmp slt i32 %353, %352
  br i1 %354, label %.preheader176, label %.preheader175, !llvm.loop !25

355:                                              ; preds = %.lr.ph223, %359
  %.0125222 = phi i32 [ 0, %.lr.ph223 ], [ %360, %359 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #8
  store i32 %350, ptr %63, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #8
  %356 = shl nuw nsw i32 %.0125222, 1
  store i32 %356, ptr %64, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %62, ptr noundef nonnull align 4 dereferenceable(4) %63, ptr noundef nonnull align 4 dereferenceable(4) %64)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #8
  %.sroa.028.0.copyload = load i64, ptr %62, align 8
  %357 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.028.0.copyload)
  br i1 %357, label %358, label %359

358:                                              ; preds = %355
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %62)
  br label %359

359:                                              ; preds = %358, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #8
  %360 = add nuw nsw i32 %.0125222, 1
  %361 = load i32, ptr @N, align 4, !tbaa !5
  %362 = icmp slt i32 %360, %361
  br i1 %362, label %355, label %._crit_edge224, !llvm.loop !26

.preheader174:                                    ; preds = %.preheader175, %._crit_edge228
  %363 = phi i32 [ %367, %._crit_edge228 ], [ %352, %.preheader175 ]
  %.0123229 = phi i32 [ %368, %._crit_edge228 ], [ 0, %.preheader175 ]
  %364 = icmp sgt i32 %363, 0
  br i1 %364, label %.lr.ph227, label %._crit_edge228

.lr.ph227:                                        ; preds = %.preheader174
  %365 = shl nuw nsw i32 %.0123229, 1
  br label %370

.preheader173:                                    ; preds = %._crit_edge228
  %366 = icmp sgt i32 %367, 0
  br i1 %366, label %.preheader, label %._crit_edge234

._crit_edge228:                                   ; preds = %375, %.preheader174
  %367 = phi i32 [ %363, %.preheader174 ], [ %377, %375 ]
  %368 = add nuw nsw i32 %.0123229, 1
  %369 = icmp slt i32 %368, %367
  br i1 %369, label %.preheader174, label %.preheader173, !llvm.loop !27

370:                                              ; preds = %.lr.ph227, %375
  %.0122226 = phi i32 [ 0, %.lr.ph227 ], [ %376, %375 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %66) #8
  store i32 %365, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #8
  %371 = shl nuw nsw i32 %.0122226, 1
  %372 = or disjoint i32 %371, 1
  store i32 %372, ptr %67, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %65, ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 4 dereferenceable(4) %67)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #8
  %.sroa.021.0.copyload = load i64, ptr %65, align 8
  %373 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.021.0.copyload)
  br i1 %373, label %374, label %375

374:                                              ; preds = %370
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %65)
  br label %375

375:                                              ; preds = %374, %370
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  %376 = add nuw nsw i32 %.0122226, 1
  %377 = load i32, ptr @N, align 4, !tbaa !5
  %378 = icmp slt i32 %376, %377
  br i1 %378, label %370, label %._crit_edge228, !llvm.loop !28

.preheader:                                       ; preds = %.preheader173, %._crit_edge232
  %379 = phi i32 [ %386, %._crit_edge232 ], [ %367, %.preheader173 ]
  %.0120233 = phi i32 [ %387, %._crit_edge232 ], [ 0, %.preheader173 ]
  %380 = icmp sgt i32 %379, 0
  br i1 %380, label %.lr.ph231, label %._crit_edge232

.lr.ph231:                                        ; preds = %.preheader
  %381 = shl nuw nsw i32 %.0120233, 1
  %382 = or disjoint i32 %381, 1
  br label %389

._crit_edge234:                                   ; preds = %._crit_edge232, %._crit_edge217, %.preheader177, %.preheader175, %.preheader173
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #8
  %383 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %383, ptr %71, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #8
  %384 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @pts) #8
  store ptr %384, ptr %72, align 8
  %385 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br i1 %385, label %.lr.ph239, label %._crit_edge240

._crit_edge232:                                   ; preds = %394, %.preheader
  %386 = phi i32 [ %379, %.preheader ], [ %396, %394 ]
  %387 = add nuw nsw i32 %.0120233, 1
  %388 = icmp slt i32 %387, %386
  br i1 %388, label %.preheader, label %._crit_edge234, !llvm.loop !29

389:                                              ; preds = %.lr.ph231, %394
  %.0119230 = phi i32 [ 0, %.lr.ph231 ], [ %395, %394 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #8
  store i32 %382, ptr %69, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #8
  %390 = shl nuw nsw i32 %.0119230, 1
  %391 = or disjoint i32 %390, 1
  store i32 %391, ptr %70, align 4, !tbaa !5
  call void @_ZNSt7complexIiEC2ERKiS2_(ptr noundef nonnull align 4 dereferenceable(8) %68, ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 4 dereferenceable(4) %70)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #8
  %.sroa.014.0.copyload = load i64, ptr %68, align 8
  %392 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %.sroa.014.0.copyload)
  br i1 %392, label %393, label %394

393:                                              ; preds = %389
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @pts, ptr noundef nonnull align 4 dereferenceable(8) %68)
  br label %394

394:                                              ; preds = %393, %389
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  %395 = add nuw nsw i32 %.0119230, 1
  %396 = load i32, ptr @N, align 4, !tbaa !5
  %397 = icmp slt i32 %395, %396
  br i1 %397, label %389, label %._crit_edge232, !llvm.loop !30

.lr.ph239:                                        ; preds = %._crit_edge234, %430
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #8
  %398 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  %399 = load i64, ptr %398, align 4
  store i64 %399, ptr %73, align 8
  %400 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %73)
  %401 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %73)
  %402 = sext i32 %400 to i64
  %403 = sext i32 %401 to i64
  %404 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %402, i64 %403
  %405 = load i8, ptr %404, align 1, !tbaa !9, !range !13, !noundef !14
  %406 = trunc nuw i8 %405 to i1
  br i1 %406, label %407, label %430

407:                                              ; preds = %.lr.ph239
  call void @_ZNSt6vectorISt7complexIiESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) @ans, ptr noundef nonnull align 4 dereferenceable(8) %73)
  %408 = call noundef i64 @_ZNKSt6vectorISt7complexIiESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @ans) #8
  %409 = load i32, ptr @N, align 4, !tbaa !5
  %410 = mul nsw i32 %409, %409
  %411 = zext nneg i32 %410 to i64
  %412 = icmp eq i64 %408, %411
  br i1 %412, label %433, label %413

413:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #8
  %414 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %414, ptr %74, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #8
  %415 = call ptr @_ZNSt6vectorISt7complexIiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @F) #8
  store ptr %415, ptr %75, align 8
  %416 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br i1 %416, label %.lr.ph236, label %._crit_edge237

._crit_edge237:                                   ; preds = %427, %413
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #8
  br label %430

.lr.ph236:                                        ; preds = %413, %427
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #8
  %417 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  %418 = load i64, ptr %417, align 4
  store i64 %418, ptr %76, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #8
  %419 = call i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8) %73, ptr noundef nonnull align 4 dereferenceable(8) %76)
  store i64 %419, ptr %77, align 8
  %420 = call noundef zeroext i1 @_Z5validSt7complexIiE(i64 %419)
  br i1 %420, label %421, label %427

421:                                              ; preds = %.lr.ph236
  %422 = call noundef i32 @_ZNKSt7complexIiE4realB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %77)
  %423 = sext i32 %422 to i64
  %424 = call noundef i32 @_ZNKSt7complexIiE4imagB5cxx11Ev(ptr noundef nonnull align 4 dereferenceable(8) %77)
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [1010 x [1010 x i8]], ptr @B, i64 0, i64 %423, i64 %425
  store i8 0, ptr %426, align 1, !tbaa !9
  br label %427

427:                                              ; preds = %421, %.lr.ph236
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #8
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  %429 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75) #8
  br i1 %429, label %.lr.ph236, label %._crit_edge237

430:                                              ; preds = %.lr.ph239, %._crit_edge237
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  %431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt7complexIiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  %432 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt7complexIiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br i1 %432, label %.lr.ph239, label %._crit_edge240

433:                                              ; preds = %407
  call void @_Z5flushv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  br label %434

._crit_edge240:                                   ; preds = %430, %._crit_edge234
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #8
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, i32 noundef 330, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #9
  unreachable

434:                                              ; preds = %433, %329, %256, %180, %.thread153
  ret i32 0
}

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #6

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZStplIiESt7complexIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #6

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #7

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 = { 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 = { 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { noreturn 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 #8 = { nounwind }
attributes #9 = { noreturn 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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12, !23}
!23 = !{!"llvm.loop.unswitch.partial.disable"}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12, !23}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12, !23}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12, !23}
!30 = distinct !{!30, !12}


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