; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/BLAS/TESTING (cblat2)

; 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"

%union.anon = type { %struct.anon }
%struct.anon = type { i64, i64, i64, i64 }
%struct.complex = type { float, float }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.complex, align 4
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@cchk4_.io___285 = external hidden global %struct.cilist, align 8
@cchk4_.io___286 = external hidden global %struct.cilist, align 8
@cchk4_.io___289 = external hidden global %struct.cilist, align 8
@cchk4_.io___293 = external hidden global %struct.cilist, align 8
@cchk4_.io___294 = external hidden global %struct.cilist, align 8
@cchk4_.io___295 = external hidden global %struct.cilist, align 8
@cchk4_.io___296 = external hidden global %struct.cilist, align 8
@cchk4_.io___297 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) #1

declare i64 @do_fio(ptr noundef, ptr noundef, i64 noundef) #1

declare i64 @e_wsfe() #1

; Function Attrs: nounwind uwtable
declare dso_local i32 @cmvch_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local i64 @lce_(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @cchk4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, i64 noundef %28) #2 {
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca %struct.complex, align 4
  %69 = alloca %struct.alist, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca [1 x %struct.complex], align 4
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca %struct.complex, align 4
  %89 = alloca float, align 4
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca %struct.complex, align 4
  %97 = alloca [13 x i64], align 16
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca float, align 4
  %103 = alloca %struct.complex, align 4
  store ptr %0, ptr %30, align 8, !tbaa !5
  store ptr %1, ptr %31, align 8, !tbaa !5
  store ptr %2, ptr %32, align 8, !tbaa !5
  store ptr %3, ptr %33, align 8, !tbaa !5
  store ptr %4, ptr %34, align 8, !tbaa !5
  store ptr %5, ptr %35, align 8, !tbaa !5
  store ptr %6, ptr %36, align 8, !tbaa !5
  store ptr %7, ptr %37, align 8, !tbaa !5
  store ptr %8, ptr %38, align 8, !tbaa !5
  store ptr %9, ptr %39, align 8, !tbaa !5
  store ptr %10, ptr %40, align 8, !tbaa !5
  store ptr %11, ptr %41, align 8, !tbaa !5
  store ptr %12, ptr %42, align 8, !tbaa !5
  store ptr %13, ptr %43, align 8, !tbaa !5
  store ptr %14, ptr %44, align 8, !tbaa !5
  store ptr %15, ptr %45, align 8, !tbaa !5
  store ptr %16, ptr %46, align 8, !tbaa !5
  store ptr %17, ptr %47, align 8, !tbaa !5
  store ptr %18, ptr %48, align 8, !tbaa !5
  store ptr %19, ptr %49, align 8, !tbaa !5
  store ptr %20, ptr %50, align 8, !tbaa !5
  store ptr %21, ptr %51, align 8, !tbaa !5
  store ptr %22, ptr %52, align 8, !tbaa !5
  store ptr %23, ptr %53, align 8, !tbaa !5
  store ptr %24, ptr %54, align 8, !tbaa !5
  store ptr %25, ptr %55, align 8, !tbaa !5
  store ptr %26, ptr %56, align 8, !tbaa !5
  store ptr %27, ptr %57, align 8, !tbaa !5
  store i64 %28, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #3
  %104 = load ptr, ptr %39, align 8, !tbaa !5
  %105 = getelementptr inbounds i64, ptr %104, i32 -1
  store ptr %105, ptr %39, align 8, !tbaa !5
  %106 = load ptr, ptr %41, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.complex, ptr %106, i32 -1
  store ptr %107, ptr %41, align 8, !tbaa !5
  %108 = load ptr, ptr %43, align 8, !tbaa !5
  %109 = getelementptr inbounds i64, ptr %108, i32 -1
  store ptr %109, ptr %43, align 8, !tbaa !5
  %110 = load ptr, ptr %57, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.complex, ptr %110, i32 -1
  store ptr %111, ptr %57, align 8, !tbaa !5
  %112 = load ptr, ptr %56, align 8, !tbaa !5
  %113 = getelementptr inbounds float, ptr %112, i32 -1
  store ptr %113, ptr %56, align 8, !tbaa !5
  %114 = load ptr, ptr %55, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.complex, ptr %114, i32 -1
  store ptr %115, ptr %55, align 8, !tbaa !5
  %116 = load ptr, ptr %52, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.complex, ptr %116, i32 -1
  store ptr %117, ptr %52, align 8, !tbaa !5
  %118 = load ptr, ptr %49, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.complex, ptr %118, i32 -1
  store ptr %119, ptr %49, align 8, !tbaa !5
  %120 = load ptr, ptr %48, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.complex, ptr %120, i32 -1
  store ptr %121, ptr %48, align 8, !tbaa !5
  %122 = load ptr, ptr %47, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.complex, ptr %122, i32 -1
  store ptr %123, ptr %47, align 8, !tbaa !5
  %124 = load ptr, ptr %44, align 8, !tbaa !5
  %125 = load i64, ptr %124, align 8, !tbaa !9
  store i64 %125, ptr %59, align 8, !tbaa !9
  %126 = load i64, ptr %59, align 8, !tbaa !9
  %127 = add nsw i64 1, %126
  store i64 %127, ptr %60, align 8, !tbaa !9
  %128 = load i64, ptr %60, align 8, !tbaa !9
  %129 = load ptr, ptr %46, align 8, !tbaa !5
  %130 = sub i64 0, %128
  %131 = getelementptr inbounds %struct.complex, ptr %129, i64 %130
  store ptr %131, ptr %46, align 8, !tbaa !5
  %132 = load ptr, ptr %54, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.complex, ptr %132, i32 -1
  store ptr %133, ptr %54, align 8, !tbaa !5
  %134 = load ptr, ptr %53, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.complex, ptr %134, i32 -1
  store ptr %135, ptr %53, align 8, !tbaa !5
  %136 = load ptr, ptr %51, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.complex, ptr %136, i32 -1
  store ptr %137, ptr %51, align 8, !tbaa !5
  %138 = load ptr, ptr %50, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.complex, ptr %138, i32 -1
  store ptr %139, ptr %50, align 8, !tbaa !5
  %140 = load ptr, ptr %30, align 8, !tbaa !5
  %141 = getelementptr inbounds i8, ptr %140, i64 4
  %142 = load i8, ptr %141, align 1, !tbaa !11
  %143 = zext i8 %142 to i32
  %144 = icmp eq i32 %143, 67
  %145 = zext i1 %144 to i32
  %146 = sext i32 %145 to i64
  store i64 %146, ptr %92, align 8, !tbaa !9
  store i64 9, ptr %98, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %99, align 8, !tbaa !9
  store float 0.000000e+00, ptr %102, align 4, !tbaa !12
  %147 = load ptr, ptr %38, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  store i64 %148, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %149

149:                                              ; preds = %886, %29
  %150 = load i64, ptr %79, align 8, !tbaa !9
  %151 = load i64, ptr %61, align 8, !tbaa !9
  %152 = icmp sle i64 %150, %151
  br i1 %152, label %153, label %889

153:                                              ; preds = %149
  %154 = load ptr, ptr %39, align 8, !tbaa !5
  %155 = load i64, ptr %79, align 8, !tbaa !9
  %156 = getelementptr inbounds i64, ptr %154, i64 %155
  %157 = load i64, ptr %156, align 8, !tbaa !9
  store i64 %157, ptr %73, align 8, !tbaa !9
  %158 = load i64, ptr %73, align 8, !tbaa !9
  %159 = sdiv i64 %158, 2
  %160 = add nsw i64 %159, 1
  store i64 %160, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %882, %153
  %162 = load i64, ptr %78, align 8, !tbaa !9
  %163 = icmp sle i64 %162, 2
  br i1 %163, label %164, label %885

164:                                              ; preds = %161
  %165 = load i64, ptr %78, align 8, !tbaa !9
  %166 = icmp eq i64 %165, 1
  br i1 %166, label %167, label %178

167:                                              ; preds = %164
  %168 = load i64, ptr %73, align 8, !tbaa !9
  %169 = load i64, ptr %77, align 8, !tbaa !9
  %170 = sub nsw i64 %168, %169
  store i64 %170, ptr %62, align 8, !tbaa !9
  %171 = load i64, ptr %62, align 8, !tbaa !9
  %172 = icmp sge i64 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %167
  %174 = load i64, ptr %62, align 8, !tbaa !9
  br label %176

175:                                              ; preds = %167
  br label %176

176:                                              ; preds = %175, %173
  %177 = phi i64 [ %174, %173 ], [ 0, %175 ]
  store i64 %177, ptr %72, align 8, !tbaa !9
  br label %178

178:                                              ; preds = %176, %164
  %179 = load i64, ptr %78, align 8, !tbaa !9
  %180 = icmp eq i64 %179, 2
  br i1 %180, label %181, label %196

181:                                              ; preds = %178
  %182 = load i64, ptr %73, align 8, !tbaa !9
  %183 = load i64, ptr %77, align 8, !tbaa !9
  %184 = add nsw i64 %182, %183
  store i64 %184, ptr %62, align 8, !tbaa !9
  %185 = load i64, ptr %62, align 8, !tbaa !9
  %186 = load ptr, ptr %44, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = icmp sle i64 %185, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %181
  %190 = load i64, ptr %62, align 8, !tbaa !9
  br label %194

191:                                              ; preds = %181
  %192 = load ptr, ptr %44, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  br label %194

194:                                              ; preds = %191, %189
  %195 = phi i64 [ %190, %189 ], [ %193, %191 ]
  store i64 %195, ptr %72, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %194, %178
  %197 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %197, ptr %87, align 8, !tbaa !9
  %198 = load i64, ptr %87, align 8, !tbaa !9
  %199 = load ptr, ptr %44, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  %201 = icmp slt i64 %198, %200
  br i1 %201, label %202, label %205

202:                                              ; preds = %196
  %203 = load i64, ptr %87, align 8, !tbaa !9
  %204 = add nsw i64 %203, 1
  store i64 %204, ptr %87, align 8, !tbaa !9
  br label %205

205:                                              ; preds = %202, %196
  %206 = load i64, ptr %87, align 8, !tbaa !9
  %207 = load ptr, ptr %44, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = icmp sgt i64 %206, %208
  br i1 %209, label %210, label %211

210:                                              ; preds = %205
  br label %881

211:                                              ; preds = %205
  %212 = load i64, ptr %87, align 8, !tbaa !9
  %213 = load i64, ptr %73, align 8, !tbaa !9
  %214 = mul nsw i64 %212, %213
  store i64 %214, ptr %86, align 8, !tbaa !9
  %215 = load i64, ptr %73, align 8, !tbaa !9
  %216 = icmp sle i64 %215, 0
  br i1 %216, label %220, label %217

217:                                              ; preds = %211
  %218 = load i64, ptr %72, align 8, !tbaa !9
  %219 = icmp sle i64 %218, 0
  br label %220

220:                                              ; preds = %217, %211
  %221 = phi i1 [ true, %211 ], [ %219, %217 ]
  %222 = zext i1 %221 to i32
  %223 = sext i32 %222 to i64
  store i64 %223, ptr %95, align 8, !tbaa !9
  %224 = load ptr, ptr %42, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  store i64 %225, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %81, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %877, %220
  %227 = load i64, ptr %81, align 8, !tbaa !9
  %228 = load i64, ptr %62, align 8, !tbaa !9
  %229 = icmp sle i64 %227, %228
  br i1 %229, label %230, label %880

230:                                              ; preds = %226
  %231 = load ptr, ptr %43, align 8, !tbaa !5
  %232 = load i64, ptr %81, align 8, !tbaa !9
  %233 = getelementptr inbounds i64, ptr %231, i64 %232
  %234 = load i64, ptr %233, align 8, !tbaa !9
  store i64 %234, ptr %93, align 8, !tbaa !9
  %235 = load i64, ptr %93, align 8, !tbaa !9
  %236 = icmp sge i64 %235, 0
  br i1 %236, label %237, label %239

237:                                              ; preds = %230
  %238 = load i64, ptr %93, align 8, !tbaa !9
  br label %242

239:                                              ; preds = %230
  %240 = load i64, ptr %93, align 8, !tbaa !9
  %241 = sub nsw i64 0, %240
  br label %242

242:                                              ; preds = %239, %237
  %243 = phi i64 [ %238, %237 ], [ %241, %239 ]
  %244 = load i64, ptr %72, align 8, !tbaa !9
  %245 = mul nsw i64 %243, %244
  store i64 %245, ptr %84, align 8, !tbaa !9
  %246 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 0
  store float 5.000000e-01, ptr %246, align 4, !tbaa !14
  %247 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 1
  store float 0.000000e+00, ptr %247, align 4, !tbaa !16
  %248 = load i64, ptr %93, align 8, !tbaa !9
  %249 = icmp sge i64 %248, 0
  br i1 %249, label %250, label %252

250:                                              ; preds = %242
  %251 = load i64, ptr %93, align 8, !tbaa !9
  br label %255

252:                                              ; preds = %242
  %253 = load i64, ptr %93, align 8, !tbaa !9
  %254 = sub nsw i64 0, %253
  br label %255

255:                                              ; preds = %252, %250
  %256 = phi i64 [ %251, %250 ], [ %254, %252 ]
  store i64 %256, ptr %63, align 8, !tbaa !9
  %257 = load i64, ptr %72, align 8, !tbaa !9
  %258 = sub nsw i64 %257, 1
  store i64 %258, ptr %64, align 8, !tbaa !9
  %259 = load ptr, ptr %49, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.complex, ptr %259, i64 1
  %261 = load ptr, ptr %50, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.complex, ptr %261, i64 1
  %263 = call i32 @cmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %72, ptr noundef %260, ptr noundef @c__1, ptr noundef %262, ptr noundef %63, ptr noundef @c__0, ptr noundef %64, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %264 = load i64, ptr %72, align 8, !tbaa !9
  %265 = icmp sgt i64 %264, 1
  br i1 %265, label %266, label %299

266:                                              ; preds = %255
  %267 = load i64, ptr %72, align 8, !tbaa !9
  %268 = sdiv i64 %267, 2
  store i64 %268, ptr %63, align 8, !tbaa !9
  %269 = load ptr, ptr %49, align 8, !tbaa !5
  %270 = load i64, ptr %63, align 8, !tbaa !9
  %271 = getelementptr inbounds %struct.complex, ptr %269, i64 %270
  %272 = getelementptr inbounds %struct.complex, ptr %271, i32 0, i32 0
  store float 0.000000e+00, ptr %272, align 4, !tbaa !14
  %273 = load ptr, ptr %49, align 8, !tbaa !5
  %274 = load i64, ptr %63, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.complex, ptr %273, i64 %274
  %276 = getelementptr inbounds %struct.complex, ptr %275, i32 0, i32 1
  store float 0.000000e+00, ptr %276, align 4, !tbaa !16
  %277 = load i64, ptr %93, align 8, !tbaa !9
  %278 = icmp sge i64 %277, 0
  br i1 %278, label %279, label %281

279:                                              ; preds = %266
  %280 = load i64, ptr %93, align 8, !tbaa !9
  br label %284

281:                                              ; preds = %266
  %282 = load i64, ptr %93, align 8, !tbaa !9
  %283 = sub nsw i64 0, %282
  br label %284

284:                                              ; preds = %281, %279
  %285 = phi i64 [ %280, %279 ], [ %283, %281 ]
  %286 = load i64, ptr %72, align 8, !tbaa !9
  %287 = sdiv i64 %286, 2
  %288 = sub nsw i64 %287, 1
  %289 = mul nsw i64 %285, %288
  %290 = add nsw i64 %289, 1
  store i64 %290, ptr %63, align 8, !tbaa !9
  %291 = load ptr, ptr %50, align 8, !tbaa !5
  %292 = load i64, ptr %63, align 8, !tbaa !9
  %293 = getelementptr inbounds %struct.complex, ptr %291, i64 %292
  %294 = getelementptr inbounds %struct.complex, ptr %293, i32 0, i32 0
  store float 0.000000e+00, ptr %294, align 4, !tbaa !14
  %295 = load ptr, ptr %50, align 8, !tbaa !5
  %296 = load i64, ptr %63, align 8, !tbaa !9
  %297 = getelementptr inbounds %struct.complex, ptr %295, i64 %296
  %298 = getelementptr inbounds %struct.complex, ptr %297, i32 0, i32 1
  store float 0.000000e+00, ptr %298, align 4, !tbaa !16
  br label %299

299:                                              ; preds = %284, %255
  %300 = load ptr, ptr %42, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  store i64 %301, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %302

302:                                              ; preds = %873, %299
  %303 = load i64, ptr %82, align 8, !tbaa !9
  %304 = load i64, ptr %63, align 8, !tbaa !9
  %305 = icmp sle i64 %303, %304
  br i1 %305, label %306, label %876

306:                                              ; preds = %302
  %307 = load ptr, ptr %43, align 8, !tbaa !5
  %308 = load i64, ptr %82, align 8, !tbaa !9
  %309 = getelementptr inbounds i64, ptr %307, i64 %308
  %310 = load i64, ptr %309, align 8, !tbaa !9
  store i64 %310, ptr %94, align 8, !tbaa !9
  %311 = load i64, ptr %94, align 8, !tbaa !9
  %312 = icmp sge i64 %311, 0
  br i1 %312, label %313, label %315

313:                                              ; preds = %306
  %314 = load i64, ptr %94, align 8, !tbaa !9
  br label %318

315:                                              ; preds = %306
  %316 = load i64, ptr %94, align 8, !tbaa !9
  %317 = sub nsw i64 0, %316
  br label %318

318:                                              ; preds = %315, %313
  %319 = phi i64 [ %314, %313 ], [ %317, %315 ]
  %320 = load i64, ptr %73, align 8, !tbaa !9
  %321 = mul nsw i64 %319, %320
  store i64 %321, ptr %85, align 8, !tbaa !9
  %322 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 0
  store float 0.000000e+00, ptr %322, align 4, !tbaa !14
  %323 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 1
  store float 0.000000e+00, ptr %323, align 4, !tbaa !16
  %324 = load i64, ptr %94, align 8, !tbaa !9
  %325 = icmp sge i64 %324, 0
  br i1 %325, label %326, label %328

326:                                              ; preds = %318
  %327 = load i64, ptr %94, align 8, !tbaa !9
  br label %331

328:                                              ; preds = %318
  %329 = load i64, ptr %94, align 8, !tbaa !9
  %330 = sub nsw i64 0, %329
  br label %331

331:                                              ; preds = %328, %326
  %332 = phi i64 [ %327, %326 ], [ %330, %328 ]
  store i64 %332, ptr %64, align 8, !tbaa !9
  %333 = load i64, ptr %73, align 8, !tbaa !9
  %334 = sub nsw i64 %333, 1
  store i64 %334, ptr %65, align 8, !tbaa !9
  %335 = load ptr, ptr %52, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.complex, ptr %335, i64 1
  %337 = load ptr, ptr %53, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.complex, ptr %337, i64 1
  %339 = call i32 @cmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %73, ptr noundef %336, ptr noundef @c__1, ptr noundef %338, ptr noundef %64, ptr noundef @c__0, ptr noundef %65, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %340 = load i64, ptr %73, align 8, !tbaa !9
  %341 = icmp sgt i64 %340, 1
  br i1 %341, label %342, label %375

342:                                              ; preds = %331
  %343 = load i64, ptr %73, align 8, !tbaa !9
  %344 = sdiv i64 %343, 2
  store i64 %344, ptr %64, align 8, !tbaa !9
  %345 = load ptr, ptr %52, align 8, !tbaa !5
  %346 = load i64, ptr %64, align 8, !tbaa !9
  %347 = getelementptr inbounds %struct.complex, ptr %345, i64 %346
  %348 = getelementptr inbounds %struct.complex, ptr %347, i32 0, i32 0
  store float 0.000000e+00, ptr %348, align 4, !tbaa !14
  %349 = load ptr, ptr %52, align 8, !tbaa !5
  %350 = load i64, ptr %64, align 8, !tbaa !9
  %351 = getelementptr inbounds %struct.complex, ptr %349, i64 %350
  %352 = getelementptr inbounds %struct.complex, ptr %351, i32 0, i32 1
  store float 0.000000e+00, ptr %352, align 4, !tbaa !16
  %353 = load i64, ptr %94, align 8, !tbaa !9
  %354 = icmp sge i64 %353, 0
  br i1 %354, label %355, label %357

355:                                              ; preds = %342
  %356 = load i64, ptr %94, align 8, !tbaa !9
  br label %360

357:                                              ; preds = %342
  %358 = load i64, ptr %94, align 8, !tbaa !9
  %359 = sub nsw i64 0, %358
  br label %360

360:                                              ; preds = %357, %355
  %361 = phi i64 [ %356, %355 ], [ %359, %357 ]
  %362 = load i64, ptr %73, align 8, !tbaa !9
  %363 = sdiv i64 %362, 2
  %364 = sub nsw i64 %363, 1
  %365 = mul nsw i64 %361, %364
  %366 = add nsw i64 %365, 1
  store i64 %366, ptr %64, align 8, !tbaa !9
  %367 = load ptr, ptr %53, align 8, !tbaa !5
  %368 = load i64, ptr %64, align 8, !tbaa !9
  %369 = getelementptr inbounds %struct.complex, ptr %367, i64 %368
  %370 = getelementptr inbounds %struct.complex, ptr %369, i32 0, i32 0
  store float 0.000000e+00, ptr %370, align 4, !tbaa !14
  %371 = load ptr, ptr %53, align 8, !tbaa !5
  %372 = load i64, ptr %64, align 8, !tbaa !9
  %373 = getelementptr inbounds %struct.complex, ptr %371, i64 %372
  %374 = getelementptr inbounds %struct.complex, ptr %373, i32 0, i32 1
  store float 0.000000e+00, ptr %374, align 4, !tbaa !16
  br label %375

375:                                              ; preds = %360, %331
  %376 = load ptr, ptr %40, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  store i64 %377, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %378

378:                                              ; preds = %869, %375
  %379 = load i64, ptr %75, align 8, !tbaa !9
  %380 = load i64, ptr %64, align 8, !tbaa !9
  %381 = icmp sle i64 %379, %380
  br i1 %381, label %382, label %872

382:                                              ; preds = %378
  %383 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %383, ptr %65, align 8, !tbaa !9
  %384 = load ptr, ptr %41, align 8, !tbaa !5
  %385 = load i64, ptr %65, align 8, !tbaa !9
  %386 = getelementptr inbounds %struct.complex, ptr %384, i64 %385
  %387 = getelementptr inbounds %struct.complex, ptr %386, i32 0, i32 0
  %388 = load float, ptr %387, align 4, !tbaa !14
  %389 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 0
  store float %388, ptr %389, align 4, !tbaa !14
  %390 = load ptr, ptr %41, align 8, !tbaa !5
  %391 = load i64, ptr %65, align 8, !tbaa !9
  %392 = getelementptr inbounds %struct.complex, ptr %390, i64 %391
  %393 = getelementptr inbounds %struct.complex, ptr %392, i32 0, i32 1
  %394 = load float, ptr %393, align 4, !tbaa !16
  %395 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 1
  store float %394, ptr %395, align 4, !tbaa !16
  %396 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 0
  store float 0.000000e+00, ptr %396, align 4, !tbaa !14
  %397 = getelementptr inbounds %struct.complex, ptr %103, i32 0, i32 1
  store float 0.000000e+00, ptr %397, align 4, !tbaa !16
  %398 = load i64, ptr %72, align 8, !tbaa !9
  %399 = sub nsw i64 %398, 1
  store i64 %399, ptr %65, align 8, !tbaa !9
  %400 = load i64, ptr %73, align 8, !tbaa !9
  %401 = sub nsw i64 %400, 1
  store i64 %401, ptr %66, align 8, !tbaa !9
  %402 = load ptr, ptr %30, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 1
  %404 = load ptr, ptr %46, align 8, !tbaa !5
  %405 = load i64, ptr %60, align 8, !tbaa !9
  %406 = getelementptr inbounds %struct.complex, ptr %404, i64 %405
  %407 = load ptr, ptr %44, align 8, !tbaa !5
  %408 = load ptr, ptr %47, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.complex, ptr %408, i64 1
  %410 = call i32 @cmake_(ptr noundef %403, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef %72, ptr noundef %73, ptr noundef %406, ptr noundef %407, ptr noundef %409, ptr noundef %87, ptr noundef %65, ptr noundef %66, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %411 = load i64, ptr %76, align 8, !tbaa !9
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %76, align 8, !tbaa !9
  %413 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %413, ptr %80, align 8, !tbaa !9
  %414 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %414, ptr %83, align 8, !tbaa !9
  %415 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 0
  %416 = load float, ptr %415, align 4, !tbaa !14
  %417 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %416, ptr %417, align 4, !tbaa !14
  %418 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 1
  %419 = load float, ptr %418, align 4, !tbaa !16
  %420 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %419, ptr %420, align 4, !tbaa !16
  %421 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %421, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %422

422:                                              ; preds = %447, %382
  %423 = load i64, ptr %70, align 8, !tbaa !9
  %424 = load i64, ptr %65, align 8, !tbaa !9
  %425 = icmp sle i64 %423, %424
  br i1 %425, label %426, label %450

426:                                              ; preds = %422
  %427 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %427, ptr %66, align 8, !tbaa !9
  %428 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %428, ptr %67, align 8, !tbaa !9
  %429 = load ptr, ptr %47, align 8, !tbaa !5
  %430 = load i64, ptr %67, align 8, !tbaa !9
  %431 = getelementptr inbounds %struct.complex, ptr %429, i64 %430
  %432 = getelementptr inbounds %struct.complex, ptr %431, i32 0, i32 0
  %433 = load float, ptr %432, align 4, !tbaa !14
  %434 = load ptr, ptr %48, align 8, !tbaa !5
  %435 = load i64, ptr %66, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.complex, ptr %434, i64 %435
  %437 = getelementptr inbounds %struct.complex, ptr %436, i32 0, i32 0
  store float %433, ptr %437, align 4, !tbaa !14
  %438 = load ptr, ptr %47, align 8, !tbaa !5
  %439 = load i64, ptr %67, align 8, !tbaa !9
  %440 = getelementptr inbounds %struct.complex, ptr %438, i64 %439
  %441 = getelementptr inbounds %struct.complex, ptr %440, i32 0, i32 1
  %442 = load float, ptr %441, align 4, !tbaa !16
  %443 = load ptr, ptr %48, align 8, !tbaa !5
  %444 = load i64, ptr %66, align 8, !tbaa !9
  %445 = getelementptr inbounds %struct.complex, ptr %443, i64 %444
  %446 = getelementptr inbounds %struct.complex, ptr %445, i32 0, i32 1
  store float %442, ptr %446, align 4, !tbaa !16
  br label %447

447:                                              ; preds = %426
  %448 = load i64, ptr %70, align 8, !tbaa !9
  %449 = add nsw i64 %448, 1
  store i64 %449, ptr %70, align 8, !tbaa !9
  br label %422, !llvm.loop !17

450:                                              ; preds = %422
  %451 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %451, ptr %90, align 8, !tbaa !9
  %452 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %452, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %453

453:                                              ; preds = %478, %450
  %454 = load i64, ptr %70, align 8, !tbaa !9
  %455 = load i64, ptr %65, align 8, !tbaa !9
  %456 = icmp sle i64 %454, %455
  br i1 %456, label %457, label %481

457:                                              ; preds = %453
  %458 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %458, ptr %66, align 8, !tbaa !9
  %459 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %459, ptr %67, align 8, !tbaa !9
  %460 = load ptr, ptr %50, align 8, !tbaa !5
  %461 = load i64, ptr %67, align 8, !tbaa !9
  %462 = getelementptr inbounds %struct.complex, ptr %460, i64 %461
  %463 = getelementptr inbounds %struct.complex, ptr %462, i32 0, i32 0
  %464 = load float, ptr %463, align 4, !tbaa !14
  %465 = load ptr, ptr %51, align 8, !tbaa !5
  %466 = load i64, ptr %66, align 8, !tbaa !9
  %467 = getelementptr inbounds %struct.complex, ptr %465, i64 %466
  %468 = getelementptr inbounds %struct.complex, ptr %467, i32 0, i32 0
  store float %464, ptr %468, align 4, !tbaa !14
  %469 = load ptr, ptr %50, align 8, !tbaa !5
  %470 = load i64, ptr %67, align 8, !tbaa !9
  %471 = getelementptr inbounds %struct.complex, ptr %469, i64 %470
  %472 = getelementptr inbounds %struct.complex, ptr %471, i32 0, i32 1
  %473 = load float, ptr %472, align 4, !tbaa !16
  %474 = load ptr, ptr %51, align 8, !tbaa !5
  %475 = load i64, ptr %66, align 8, !tbaa !9
  %476 = getelementptr inbounds %struct.complex, ptr %474, i64 %475
  %477 = getelementptr inbounds %struct.complex, ptr %476, i32 0, i32 1
  store float %473, ptr %477, align 4, !tbaa !16
  br label %478

478:                                              ; preds = %457
  %479 = load i64, ptr %70, align 8, !tbaa !9
  %480 = add nsw i64 %479, 1
  store i64 %480, ptr %70, align 8, !tbaa !9
  br label %453, !llvm.loop !19

481:                                              ; preds = %453
  %482 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %482, ptr %100, align 8, !tbaa !9
  %483 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %483, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %484

484:                                              ; preds = %509, %481
  %485 = load i64, ptr %70, align 8, !tbaa !9
  %486 = load i64, ptr %65, align 8, !tbaa !9
  %487 = icmp sle i64 %485, %486
  br i1 %487, label %488, label %512

488:                                              ; preds = %484
  %489 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %489, ptr %66, align 8, !tbaa !9
  %490 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %490, ptr %67, align 8, !tbaa !9
  %491 = load ptr, ptr %53, align 8, !tbaa !5
  %492 = load i64, ptr %67, align 8, !tbaa !9
  %493 = getelementptr inbounds %struct.complex, ptr %491, i64 %492
  %494 = getelementptr inbounds %struct.complex, ptr %493, i32 0, i32 0
  %495 = load float, ptr %494, align 4, !tbaa !14
  %496 = load ptr, ptr %54, align 8, !tbaa !5
  %497 = load i64, ptr %66, align 8, !tbaa !9
  %498 = getelementptr inbounds %struct.complex, ptr %496, i64 %497
  %499 = getelementptr inbounds %struct.complex, ptr %498, i32 0, i32 0
  store float %495, ptr %499, align 4, !tbaa !14
  %500 = load ptr, ptr %53, align 8, !tbaa !5
  %501 = load i64, ptr %67, align 8, !tbaa !9
  %502 = getelementptr inbounds %struct.complex, ptr %500, i64 %501
  %503 = getelementptr inbounds %struct.complex, ptr %502, i32 0, i32 1
  %504 = load float, ptr %503, align 4, !tbaa !16
  %505 = load ptr, ptr %54, align 8, !tbaa !5
  %506 = load i64, ptr %66, align 8, !tbaa !9
  %507 = getelementptr inbounds %struct.complex, ptr %505, i64 %506
  %508 = getelementptr inbounds %struct.complex, ptr %507, i32 0, i32 1
  store float %504, ptr %508, align 4, !tbaa !16
  br label %509

509:                                              ; preds = %488
  %510 = load i64, ptr %70, align 8, !tbaa !9
  %511 = add nsw i64 %510, 1
  store i64 %511, ptr %70, align 8, !tbaa !9
  br label %484, !llvm.loop !20

512:                                              ; preds = %484
  %513 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %513, ptr %101, align 8, !tbaa !9
  %514 = load ptr, ptr %35, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = icmp ne i64 %515, 0
  br i1 %516, label %517, label %531

517:                                              ; preds = %512
  %518 = load ptr, ptr %34, align 8, !tbaa !5
  %519 = load i64, ptr %518, align 8, !tbaa !9
  store i64 %519, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___285, i32 0, i32 1), align 8, !tbaa !21
  %520 = call i64 @s_wsfe(ptr noundef @cchk4_.io___285)
  %521 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %522 = load ptr, ptr %30, align 8, !tbaa !5
  %523 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %522, i64 noundef 6)
  %524 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %72, i64 noundef 8)
  %525 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %73, i64 noundef 8)
  %526 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %96, i64 noundef 4)
  %527 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %528 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %529 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %530 = call i64 @e_wsfe()
  br label %531

531:                                              ; preds = %517, %512
  %532 = load i64, ptr %92, align 8, !tbaa !9
  %533 = icmp ne i64 %532, 0
  br i1 %533, label %534, label %552

534:                                              ; preds = %531
  %535 = load ptr, ptr %36, align 8, !tbaa !5
  %536 = load i64, ptr %535, align 8, !tbaa !9
  %537 = icmp ne i64 %536, 0
  br i1 %537, label %538, label %544

538:                                              ; preds = %534
  %539 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 0
  store i64 0, ptr %539, align 8, !tbaa !23
  %540 = load ptr, ptr %34, align 8, !tbaa !5
  %541 = load i64, ptr %540, align 8, !tbaa !9
  %542 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 1
  store i64 %541, ptr %542, align 8, !tbaa !25
  %543 = call i64 @f_rew(ptr noundef %69)
  br label %544

544:                                              ; preds = %538, %534
  %545 = load ptr, ptr %50, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.complex, ptr %545, i64 1
  %547 = load ptr, ptr %53, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.complex, ptr %547, i64 1
  %549 = load ptr, ptr %47, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.complex, ptr %549, i64 1
  %551 = call i32 @f2c_cgerc(ptr noundef %72, ptr noundef %73, ptr noundef %96, ptr noundef %546, ptr noundef %93, ptr noundef %548, ptr noundef %94, ptr noundef %550, ptr noundef %87)
  br label %570

552:                                              ; preds = %531
  %553 = load ptr, ptr %36, align 8, !tbaa !5
  %554 = load i64, ptr %553, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %556, label %562

556:                                              ; preds = %552
  %557 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 0
  store i64 0, ptr %557, align 8, !tbaa !23
  %558 = load ptr, ptr %34, align 8, !tbaa !5
  %559 = load i64, ptr %558, align 8, !tbaa !9
  %560 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 1
  store i64 %559, ptr %560, align 8, !tbaa !25
  %561 = call i64 @f_rew(ptr noundef %69)
  br label %562

562:                                              ; preds = %556, %552
  %563 = load ptr, ptr %50, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.complex, ptr %563, i64 1
  %565 = load ptr, ptr %53, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.complex, ptr %565, i64 1
  %567 = load ptr, ptr %47, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.complex, ptr %567, i64 1
  %569 = call i32 @f2c_cgeru(ptr noundef %72, ptr noundef %73, ptr noundef %96, ptr noundef %564, ptr noundef %93, ptr noundef %566, ptr noundef %94, ptr noundef %568, ptr noundef %87)
  br label %570

570:                                              ; preds = %562, %544
  %571 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !11
  %572 = icmp ne i64 %571, 0
  br i1 %572, label %579, label %573

573:                                              ; preds = %570
  %574 = load ptr, ptr %33, align 8, !tbaa !5
  %575 = load i64, ptr %574, align 8, !tbaa !9
  store i64 %575, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___286, i32 0, i32 1), align 8, !tbaa !21
  %576 = call i64 @s_wsfe(ptr noundef @cchk4_.io___286)
  %577 = call i64 @e_wsfe()
  %578 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %578, align 8, !tbaa !9
  br label %918

579:                                              ; preds = %570
  %580 = load i64, ptr %80, align 8, !tbaa !9
  %581 = load i64, ptr %72, align 8, !tbaa !9
  %582 = icmp eq i64 %580, %581
  %583 = zext i1 %582 to i32
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 0
  store i64 %584, ptr %585, align 16, !tbaa !9
  %586 = load i64, ptr %83, align 8, !tbaa !9
  %587 = load i64, ptr %73, align 8, !tbaa !9
  %588 = icmp eq i64 %586, %587
  %589 = zext i1 %588 to i32
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 1
  store i64 %590, ptr %591, align 8, !tbaa !9
  %592 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %593 = load float, ptr %592, align 4, !tbaa !14
  %594 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 0
  %595 = load float, ptr %594, align 4, !tbaa !14
  %596 = fcmp oeq float %593, %595
  br i1 %596, label %597, label %603

597:                                              ; preds = %579
  %598 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %599 = load float, ptr %598, align 4, !tbaa !16
  %600 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 1
  %601 = load float, ptr %600, align 4, !tbaa !16
  %602 = fcmp oeq float %599, %601
  br label %603

603:                                              ; preds = %597, %579
  %604 = phi i1 [ false, %579 ], [ %602, %597 ]
  %605 = zext i1 %604 to i32
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 2
  store i64 %606, ptr %607, align 16, !tbaa !9
  %608 = load ptr, ptr %51, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.complex, ptr %608, i64 1
  %610 = load ptr, ptr %50, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.complex, ptr %610, i64 1
  %612 = call i64 @lce_(ptr noundef %609, ptr noundef %611, ptr noundef %84)
  %613 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 3
  store i64 %612, ptr %613, align 8, !tbaa !9
  %614 = load i64, ptr %100, align 8, !tbaa !9
  %615 = load i64, ptr %93, align 8, !tbaa !9
  %616 = icmp eq i64 %614, %615
  %617 = zext i1 %616 to i32
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 4
  store i64 %618, ptr %619, align 16, !tbaa !9
  %620 = load ptr, ptr %54, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.complex, ptr %620, i64 1
  %622 = load ptr, ptr %53, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.complex, ptr %622, i64 1
  %624 = call i64 @lce_(ptr noundef %621, ptr noundef %623, ptr noundef %85)
  %625 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 5
  store i64 %624, ptr %625, align 8, !tbaa !9
  %626 = load i64, ptr %101, align 8, !tbaa !9
  %627 = load i64, ptr %94, align 8, !tbaa !9
  %628 = icmp eq i64 %626, %627
  %629 = zext i1 %628 to i32
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 6
  store i64 %630, ptr %631, align 16, !tbaa !9
  %632 = load i64, ptr %95, align 8, !tbaa !9
  %633 = icmp ne i64 %632, 0
  br i1 %633, label %634, label %641

634:                                              ; preds = %603
  %635 = load ptr, ptr %48, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.complex, ptr %635, i64 1
  %637 = load ptr, ptr %47, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.complex, ptr %637, i64 1
  %639 = call i64 @lce_(ptr noundef %636, ptr noundef %638, ptr noundef %86)
  %640 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 7
  store i64 %639, ptr %640, align 8, !tbaa !9
  br label %648

641:                                              ; preds = %603
  %642 = load ptr, ptr %48, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.complex, ptr %642, i64 1
  %644 = load ptr, ptr %47, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.complex, ptr %644, i64 1
  %646 = call i64 @lceres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %72, ptr noundef %73, ptr noundef %643, ptr noundef %645, ptr noundef %87, i64 noundef 2, i64 noundef 1)
  %647 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 7
  store i64 %646, ptr %647, align 8, !tbaa !9
  br label %648

648:                                              ; preds = %641, %634
  %649 = load i64, ptr %90, align 8, !tbaa !9
  %650 = load i64, ptr %87, align 8, !tbaa !9
  %651 = icmp eq i64 %649, %650
  %652 = zext i1 %651 to i32
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 8
  store i64 %653, ptr %654, align 16, !tbaa !9
  store i64 1, ptr %91, align 8, !tbaa !9
  %655 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %655, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %685, %648
  %657 = load i64, ptr %70, align 8, !tbaa !9
  %658 = load i64, ptr %65, align 8, !tbaa !9
  %659 = icmp sle i64 %657, %658
  br i1 %659, label %660, label %688

660:                                              ; preds = %656
  %661 = load i64, ptr %91, align 8, !tbaa !9
  %662 = icmp ne i64 %661, 0
  br i1 %662, label %663, label %669

663:                                              ; preds = %660
  %664 = load i64, ptr %70, align 8, !tbaa !9
  %665 = sub nsw i64 %664, 1
  %666 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 %665
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = icmp ne i64 %667, 0
  br label %669

669:                                              ; preds = %663, %660
  %670 = phi i1 [ false, %660 ], [ %668, %663 ]
  %671 = zext i1 %670 to i32
  %672 = sext i32 %671 to i64
  store i64 %672, ptr %91, align 8, !tbaa !9
  %673 = load i64, ptr %70, align 8, !tbaa !9
  %674 = sub nsw i64 %673, 1
  %675 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 %674
  %676 = load i64, ptr %675, align 8, !tbaa !9
  %677 = icmp ne i64 %676, 0
  br i1 %677, label %684, label %678

678:                                              ; preds = %669
  %679 = load ptr, ptr %33, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  store i64 %680, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___289, i32 0, i32 1), align 8, !tbaa !21
  %681 = call i64 @s_wsfe(ptr noundef @cchk4_.io___289)
  %682 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %683 = call i64 @e_wsfe()
  br label %684

684:                                              ; preds = %678, %669
  br label %685

685:                                              ; preds = %684
  %686 = load i64, ptr %70, align 8, !tbaa !9
  %687 = add nsw i64 %686, 1
  store i64 %687, ptr %70, align 8, !tbaa !9
  br label %656, !llvm.loop !26

688:                                              ; preds = %656
  %689 = load i64, ptr %91, align 8, !tbaa !9
  %690 = icmp ne i64 %689, 0
  br i1 %690, label %693, label %691

691:                                              ; preds = %688
  %692 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %692, align 8, !tbaa !9
  br label %918

693:                                              ; preds = %688
  %694 = load i64, ptr %95, align 8, !tbaa !9
  %695 = icmp ne i64 %694, 0
  br i1 %695, label %867, label %696

696:                                              ; preds = %693
  %697 = load i64, ptr %93, align 8, !tbaa !9
  %698 = icmp sgt i64 %697, 0
  br i1 %698, label %699, label %730

699:                                              ; preds = %696
  %700 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %700, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %701

701:                                              ; preds = %726, %699
  %702 = load i64, ptr %70, align 8, !tbaa !9
  %703 = load i64, ptr %65, align 8, !tbaa !9
  %704 = icmp sle i64 %702, %703
  br i1 %704, label %705, label %729

705:                                              ; preds = %701
  %706 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %706, ptr %66, align 8, !tbaa !9
  %707 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %707, ptr %67, align 8, !tbaa !9
  %708 = load ptr, ptr %49, align 8, !tbaa !5
  %709 = load i64, ptr %67, align 8, !tbaa !9
  %710 = getelementptr inbounds %struct.complex, ptr %708, i64 %709
  %711 = getelementptr inbounds %struct.complex, ptr %710, i32 0, i32 0
  %712 = load float, ptr %711, align 4, !tbaa !14
  %713 = load ptr, ptr %57, align 8, !tbaa !5
  %714 = load i64, ptr %66, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct.complex, ptr %713, i64 %714
  %716 = getelementptr inbounds %struct.complex, ptr %715, i32 0, i32 0
  store float %712, ptr %716, align 4, !tbaa !14
  %717 = load ptr, ptr %49, align 8, !tbaa !5
  %718 = load i64, ptr %67, align 8, !tbaa !9
  %719 = getelementptr inbounds %struct.complex, ptr %717, i64 %718
  %720 = getelementptr inbounds %struct.complex, ptr %719, i32 0, i32 1
  %721 = load float, ptr %720, align 4, !tbaa !16
  %722 = load ptr, ptr %57, align 8, !tbaa !5
  %723 = load i64, ptr %66, align 8, !tbaa !9
  %724 = getelementptr inbounds %struct.complex, ptr %722, i64 %723
  %725 = getelementptr inbounds %struct.complex, ptr %724, i32 0, i32 1
  store float %721, ptr %725, align 4, !tbaa !16
  br label %726

726:                                              ; preds = %705
  %727 = load i64, ptr %70, align 8, !tbaa !9
  %728 = add nsw i64 %727, 1
  store i64 %728, ptr %70, align 8, !tbaa !9
  br label %701, !llvm.loop !27

729:                                              ; preds = %701
  br label %764

730:                                              ; preds = %696
  %731 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %731, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %732

732:                                              ; preds = %760, %730
  %733 = load i64, ptr %70, align 8, !tbaa !9
  %734 = load i64, ptr %65, align 8, !tbaa !9
  %735 = icmp sle i64 %733, %734
  br i1 %735, label %736, label %763

736:                                              ; preds = %732
  %737 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %737, ptr %66, align 8, !tbaa !9
  %738 = load i64, ptr %72, align 8, !tbaa !9
  %739 = load i64, ptr %70, align 8, !tbaa !9
  %740 = sub nsw i64 %738, %739
  %741 = add nsw i64 %740, 1
  store i64 %741, ptr %67, align 8, !tbaa !9
  %742 = load ptr, ptr %49, align 8, !tbaa !5
  %743 = load i64, ptr %67, align 8, !tbaa !9
  %744 = getelementptr inbounds %struct.complex, ptr %742, i64 %743
  %745 = getelementptr inbounds %struct.complex, ptr %744, i32 0, i32 0
  %746 = load float, ptr %745, align 4, !tbaa !14
  %747 = load ptr, ptr %57, align 8, !tbaa !5
  %748 = load i64, ptr %66, align 8, !tbaa !9
  %749 = getelementptr inbounds %struct.complex, ptr %747, i64 %748
  %750 = getelementptr inbounds %struct.complex, ptr %749, i32 0, i32 0
  store float %746, ptr %750, align 4, !tbaa !14
  %751 = load ptr, ptr %49, align 8, !tbaa !5
  %752 = load i64, ptr %67, align 8, !tbaa !9
  %753 = getelementptr inbounds %struct.complex, ptr %751, i64 %752
  %754 = getelementptr inbounds %struct.complex, ptr %753, i32 0, i32 1
  %755 = load float, ptr %754, align 4, !tbaa !16
  %756 = load ptr, ptr %57, align 8, !tbaa !5
  %757 = load i64, ptr %66, align 8, !tbaa !9
  %758 = getelementptr inbounds %struct.complex, ptr %756, i64 %757
  %759 = getelementptr inbounds %struct.complex, ptr %758, i32 0, i32 1
  store float %755, ptr %759, align 4, !tbaa !16
  br label %760

760:                                              ; preds = %736
  %761 = load i64, ptr %70, align 8, !tbaa !9
  %762 = add nsw i64 %761, 1
  store i64 %762, ptr %70, align 8, !tbaa !9
  br label %732, !llvm.loop !28

763:                                              ; preds = %732
  br label %764

764:                                              ; preds = %763, %729
  %765 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %765, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %766

766:                                              ; preds = %863, %764
  %767 = load i64, ptr %71, align 8, !tbaa !9
  %768 = load i64, ptr %65, align 8, !tbaa !9
  %769 = icmp sle i64 %767, %768
  br i1 %769, label %770, label %866

770:                                              ; preds = %766
  %771 = load i64, ptr %94, align 8, !tbaa !9
  %772 = icmp sgt i64 %771, 0
  br i1 %772, label %773, label %789

773:                                              ; preds = %770
  %774 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %774, ptr %66, align 8, !tbaa !9
  %775 = load ptr, ptr %52, align 8, !tbaa !5
  %776 = load i64, ptr %66, align 8, !tbaa !9
  %777 = getelementptr inbounds %struct.complex, ptr %775, i64 %776
  %778 = getelementptr inbounds %struct.complex, ptr %777, i32 0, i32 0
  %779 = load float, ptr %778, align 4, !tbaa !14
  %780 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %781 = getelementptr inbounds %struct.complex, ptr %780, i32 0, i32 0
  store float %779, ptr %781, align 4, !tbaa !14
  %782 = load ptr, ptr %52, align 8, !tbaa !5
  %783 = load i64, ptr %66, align 8, !tbaa !9
  %784 = getelementptr inbounds %struct.complex, ptr %782, i64 %783
  %785 = getelementptr inbounds %struct.complex, ptr %784, i32 0, i32 1
  %786 = load float, ptr %785, align 4, !tbaa !16
  %787 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %788 = getelementptr inbounds %struct.complex, ptr %787, i32 0, i32 1
  store float %786, ptr %788, align 4, !tbaa !16
  br label %808

789:                                              ; preds = %770
  %790 = load i64, ptr %73, align 8, !tbaa !9
  %791 = load i64, ptr %71, align 8, !tbaa !9
  %792 = sub nsw i64 %790, %791
  %793 = add nsw i64 %792, 1
  store i64 %793, ptr %66, align 8, !tbaa !9
  %794 = load ptr, ptr %52, align 8, !tbaa !5
  %795 = load i64, ptr %66, align 8, !tbaa !9
  %796 = getelementptr inbounds %struct.complex, ptr %794, i64 %795
  %797 = getelementptr inbounds %struct.complex, ptr %796, i32 0, i32 0
  %798 = load float, ptr %797, align 4, !tbaa !14
  %799 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %800 = getelementptr inbounds %struct.complex, ptr %799, i32 0, i32 0
  store float %798, ptr %800, align 4, !tbaa !14
  %801 = load ptr, ptr %52, align 8, !tbaa !5
  %802 = load i64, ptr %66, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct.complex, ptr %801, i64 %802
  %804 = getelementptr inbounds %struct.complex, ptr %803, i32 0, i32 1
  %805 = load float, ptr %804, align 4, !tbaa !16
  %806 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %807 = getelementptr inbounds %struct.complex, ptr %806, i32 0, i32 1
  store float %805, ptr %807, align 4, !tbaa !16
  br label %808

808:                                              ; preds = %789, %773
  %809 = load i64, ptr %92, align 8, !tbaa !9
  %810 = icmp ne i64 %809, 0
  br i1 %810, label %811, label %821

811:                                              ; preds = %808
  %812 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  call void @r_cnjg(ptr noundef %68, ptr noundef %812)
  %813 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  %814 = load float, ptr %813, align 4, !tbaa !14
  %815 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %816 = getelementptr inbounds %struct.complex, ptr %815, i32 0, i32 0
  store float %814, ptr %816, align 4, !tbaa !14
  %817 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  %818 = load float, ptr %817, align 4, !tbaa !16
  %819 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %820 = getelementptr inbounds %struct.complex, ptr %819, i32 0, i32 1
  store float %818, ptr %820, align 4, !tbaa !16
  br label %821

821:                                              ; preds = %811, %808
  %822 = load ptr, ptr %57, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.complex, ptr %822, i64 1
  %824 = load ptr, ptr %44, align 8, !tbaa !5
  %825 = getelementptr inbounds [1 x %struct.complex], ptr %74, i64 0, i64 0
  %826 = load ptr, ptr %46, align 8, !tbaa !5
  %827 = load i64, ptr %71, align 8, !tbaa !9
  %828 = load i64, ptr %59, align 8, !tbaa !9
  %829 = mul nsw i64 %827, %828
  %830 = add nsw i64 %829, 1
  %831 = getelementptr inbounds %struct.complex, ptr %826, i64 %830
  %832 = load ptr, ptr %55, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.complex, ptr %832, i64 1
  %834 = load ptr, ptr %56, align 8, !tbaa !5
  %835 = getelementptr inbounds float, ptr %834, i64 1
  %836 = load ptr, ptr %47, align 8, !tbaa !5
  %837 = load i64, ptr %71, align 8, !tbaa !9
  %838 = sub nsw i64 %837, 1
  %839 = load i64, ptr %87, align 8, !tbaa !9
  %840 = mul nsw i64 %838, %839
  %841 = add nsw i64 %840, 1
  %842 = getelementptr inbounds %struct.complex, ptr %836, i64 %841
  %843 = load ptr, ptr %31, align 8, !tbaa !5
  %844 = load ptr, ptr %37, align 8, !tbaa !5
  %845 = load ptr, ptr %33, align 8, !tbaa !5
  %846 = call i32 @cmvch_(ptr noundef @.str.1, ptr noundef %72, ptr noundef @c__1, ptr noundef %96, ptr noundef %823, ptr noundef %824, ptr noundef %825, ptr noundef @c__1, ptr noundef @c_b2, ptr noundef %831, ptr noundef @c__1, ptr noundef %833, ptr noundef %835, ptr noundef %842, ptr noundef %843, ptr noundef %89, ptr noundef %844, ptr noundef %845, ptr noundef @c_true, i64 noundef 1)
  %847 = load float, ptr %102, align 4, !tbaa !12
  %848 = load float, ptr %89, align 4, !tbaa !12
  %849 = fcmp oge float %847, %848
  br i1 %849, label %850, label %852

850:                                              ; preds = %821
  %851 = load float, ptr %102, align 4, !tbaa !12
  br label %854

852:                                              ; preds = %821
  %853 = load float, ptr %89, align 4, !tbaa !12
  br label %854

854:                                              ; preds = %852, %850
  %855 = phi float [ %851, %850 ], [ %853, %852 ]
  %856 = fpext float %855 to double
  %857 = fptrunc double %856 to float
  store float %857, ptr %102, align 4, !tbaa !12
  %858 = load ptr, ptr %37, align 8, !tbaa !5
  %859 = load i64, ptr %858, align 8, !tbaa !9
  %860 = icmp ne i64 %859, 0
  br i1 %860, label %861, label %862

861:                                              ; preds = %854
  br label %912

862:                                              ; preds = %854
  br label %863

863:                                              ; preds = %862
  %864 = load i64, ptr %71, align 8, !tbaa !9
  %865 = add nsw i64 %864, 1
  store i64 %865, ptr %71, align 8, !tbaa !9
  br label %766, !llvm.loop !29

866:                                              ; preds = %766
  br label %868

867:                                              ; preds = %693
  br label %881

868:                                              ; preds = %866
  br label %869

869:                                              ; preds = %868
  %870 = load i64, ptr %75, align 8, !tbaa !9
  %871 = add nsw i64 %870, 1
  store i64 %871, ptr %75, align 8, !tbaa !9
  br label %378, !llvm.loop !30

872:                                              ; preds = %378
  br label %873

873:                                              ; preds = %872
  %874 = load i64, ptr %82, align 8, !tbaa !9
  %875 = add nsw i64 %874, 1
  store i64 %875, ptr %82, align 8, !tbaa !9
  br label %302, !llvm.loop !31

876:                                              ; preds = %302
  br label %877

877:                                              ; preds = %876
  %878 = load i64, ptr %81, align 8, !tbaa !9
  %879 = add nsw i64 %878, 1
  store i64 %879, ptr %81, align 8, !tbaa !9
  br label %226, !llvm.loop !32

880:                                              ; preds = %226
  br label %881

881:                                              ; preds = %880, %867, %210
  br label %882

882:                                              ; preds = %881
  %883 = load i64, ptr %78, align 8, !tbaa !9
  %884 = add nsw i64 %883, 1
  store i64 %884, ptr %78, align 8, !tbaa !9
  br label %161, !llvm.loop !33

885:                                              ; preds = %161
  br label %886

886:                                              ; preds = %885
  %887 = load i64, ptr %79, align 8, !tbaa !9
  %888 = add nsw i64 %887, 1
  store i64 %888, ptr %79, align 8, !tbaa !9
  br label %149, !llvm.loop !34

889:                                              ; preds = %149
  %890 = load float, ptr %102, align 4, !tbaa !12
  %891 = load ptr, ptr %32, align 8, !tbaa !5
  %892 = load float, ptr %891, align 4, !tbaa !12
  %893 = fcmp olt float %890, %892
  br i1 %893, label %894, label %902

894:                                              ; preds = %889
  %895 = load ptr, ptr %33, align 8, !tbaa !5
  %896 = load i64, ptr %895, align 8, !tbaa !9
  store i64 %896, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___293, i32 0, i32 1), align 8, !tbaa !21
  %897 = call i64 @s_wsfe(ptr noundef @cchk4_.io___293)
  %898 = load ptr, ptr %30, align 8, !tbaa !5
  %899 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %898, i64 noundef 6)
  %900 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %901 = call i64 @e_wsfe()
  br label %911

902:                                              ; preds = %889
  %903 = load ptr, ptr %33, align 8, !tbaa !5
  %904 = load i64, ptr %903, align 8, !tbaa !9
  store i64 %904, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___294, i32 0, i32 1), align 8, !tbaa !21
  %905 = call i64 @s_wsfe(ptr noundef @cchk4_.io___294)
  %906 = load ptr, ptr %30, align 8, !tbaa !5
  %907 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %906, i64 noundef 6)
  %908 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %909 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 4)
  %910 = call i64 @e_wsfe()
  br label %911

911:                                              ; preds = %902, %894
  br label %938

912:                                              ; preds = %861
  %913 = load ptr, ptr %33, align 8, !tbaa !5
  %914 = load i64, ptr %913, align 8, !tbaa !9
  store i64 %914, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___295, i32 0, i32 1), align 8, !tbaa !21
  %915 = call i64 @s_wsfe(ptr noundef @cchk4_.io___295)
  %916 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %917 = call i64 @e_wsfe()
  br label %918

918:                                              ; preds = %912, %691, %573
  %919 = load ptr, ptr %33, align 8, !tbaa !5
  %920 = load i64, ptr %919, align 8, !tbaa !9
  store i64 %920, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___296, i32 0, i32 1), align 8, !tbaa !21
  %921 = call i64 @s_wsfe(ptr noundef @cchk4_.io___296)
  %922 = load ptr, ptr %30, align 8, !tbaa !5
  %923 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %922, i64 noundef 6)
  %924 = call i64 @e_wsfe()
  %925 = load ptr, ptr %33, align 8, !tbaa !5
  %926 = load i64, ptr %925, align 8, !tbaa !9
  store i64 %926, ptr getelementptr inbounds (%struct.cilist, ptr @cchk4_.io___297, i32 0, i32 1), align 8, !tbaa !21
  %927 = call i64 @s_wsfe(ptr noundef @cchk4_.io___297)
  %928 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %929 = load ptr, ptr %30, align 8, !tbaa !5
  %930 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %929, i64 noundef 6)
  %931 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %72, i64 noundef 8)
  %932 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %73, i64 noundef 8)
  %933 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %96, i64 noundef 4)
  %934 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %935 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %936 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %937 = call i64 @e_wsfe()
  br label %938

938:                                              ; preds = %918, %911
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  ret i32 0
}

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @cmake_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) #2

declare i64 @f_rew(ptr noundef) #1

; Function Attrs: nounwind uwtable
declare dso_local i64 @lceres_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef) #2

declare i32 @f2c_cgerc(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @f2c_cgeru(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @r_cnjg(ptr noundef, ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"float", !7, i64 0}
!14 = !{!15, !13, i64 0}
!15 = !{!"", !13, i64 0, !13, i64 4}
!16 = !{!15, !13, i64 4}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = !{!22, !10, i64 8}
!22 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16, !6, i64 24, !10, i64 32}
!23 = !{!24, !10, i64 0}
!24 = !{!"", !10, i64 0, !10, i64 8}
!25 = !{!24, !10, i64 8}
!26 = distinct !{!26, !18}
!27 = distinct !{!27, !18}
!28 = distinct !{!28, !18}
!29 = distinct !{!29, !18}
!30 = distinct !{!30, !18}
!31 = distinct !{!31, !18}
!32 = distinct !{!32, !18}
!33 = distinct !{!33, !18}
!34 = distinct !{!34, !18}


; 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"

%union.anon = type { %struct.anon }
%struct.anon = type { i64, i64, i64, i64 }
%struct.complex = type { float, float }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.complex, align 4
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@cchk4_.io___285 = external hidden global %struct.cilist, align 8
@cchk4_.io___286 = external hidden global %struct.cilist, align 8
@cchk4_.io___289 = external hidden global %struct.cilist, align 8
@cchk4_.io___293 = external hidden global %struct.cilist, align 8
@cchk4_.io___294 = external hidden global %struct.cilist, align 8
@cchk4_.io___295 = external hidden global %struct.cilist, align 8
@cchk4_.io___296 = external hidden global %struct.cilist, align 8
@cchk4_.io___297 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) local_unnamed_addr #1

declare i64 @do_fio(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #1

declare i64 @e_wsfe() local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local i32 @cmvch_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local i64 @lce_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @cchk4_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr nocapture noundef readnone %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, i64 noundef %28) local_unnamed_addr #2 {
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca %struct.complex, align 8
  %35 = alloca %struct.alist, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca [1 x %struct.complex], align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca float, align 4
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca %struct.complex, align 8
  %50 = alloca [13 x i64], align 16
  %51 = alloca i64, align 8
  %52 = alloca float, align 4
  %53 = alloca %struct.complex, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #4
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #4
  %54 = getelementptr inbounds i8, ptr %9, i64 -8
  %55 = getelementptr inbounds i8, ptr %11, i64 -8
  %56 = getelementptr inbounds i8, ptr %13, i64 -8
  %57 = getelementptr inbounds i8, ptr %27, i64 -8
  %58 = getelementptr inbounds i8, ptr %22, i64 -8
  %59 = getelementptr inbounds i8, ptr %19, i64 -8
  %60 = getelementptr inbounds i8, ptr %18, i64 -8
  %61 = getelementptr inbounds i8, ptr %17, i64 -8
  %62 = load i64, ptr %14, align 8, !tbaa !5
  %63 = getelementptr inbounds i8, ptr %24, i64 -8
  %64 = getelementptr inbounds i8, ptr %23, i64 -8
  %65 = getelementptr inbounds i8, ptr %21, i64 -8
  %66 = getelementptr inbounds i8, ptr %20, i64 -8
  %67 = getelementptr inbounds i8, ptr %0, i64 4
  %68 = load i8, ptr %67, align 1, !tbaa !9
  %69 = icmp eq i8 %68, 67
  store i64 0, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %51, align 8, !tbaa !5
  store float 0.000000e+00, ptr %52, align 4, !tbaa !10
  %70 = load i64, ptr %8, align 8, !tbaa !5
  %.not261 = icmp slt i64 %70, 1
  br i1 %.not261, label %._crit_edge265, label %.lr.ph264

.lr.ph264:                                        ; preds = %29
  %71 = xor i64 %62, -1
  %72 = getelementptr inbounds %struct.complex, ptr %16, i64 %71
  %73 = getelementptr inbounds i8, ptr %49, i64 4
  %74 = getelementptr inbounds i8, ptr %0, i64 1
  %75 = getelementptr inbounds i8, ptr %35, i64 8
  %76 = getelementptr inbounds i8, ptr %50, i64 8
  %77 = getelementptr inbounds i8, ptr %50, i64 16
  %78 = getelementptr inbounds i8, ptr %50, i64 24
  %79 = getelementptr inbounds i8, ptr %50, i64 32
  %80 = getelementptr inbounds i8, ptr %50, i64 40
  %81 = getelementptr inbounds i8, ptr %50, i64 48
  %82 = getelementptr inbounds i8, ptr %50, i64 56
  %83 = getelementptr inbounds i8, ptr %50, i64 64
  %invariant.gep = getelementptr i8, ptr %72, i64 8
  %84 = getelementptr inbounds i8, ptr %40, i64 4
  %scevgep = getelementptr i8, ptr %27, i64 -4
  %scevgep310 = getelementptr i8, ptr %19, i64 -4
  %scevgep312 = getelementptr i8, ptr %27, i64 4
  %scevgep314 = getelementptr i8, ptr %19, i64 4
  %scevgep325 = getelementptr i8, ptr %27, i64 -4
  %scevgep327 = getelementptr i8, ptr %19, i64 -4
  %scevgep363 = getelementptr i8, ptr %24, i64 -4
  %scevgep365 = getelementptr i8, ptr %23, i64 -4
  %scevgep367 = getelementptr i8, ptr %24, i64 4
  %scevgep369 = getelementptr i8, ptr %23, i64 4
  %scevgep400 = getelementptr i8, ptr %21, i64 -4
  %scevgep402 = getelementptr i8, ptr %20, i64 -4
  %scevgep404 = getelementptr i8, ptr %21, i64 4
  %scevgep406 = getelementptr i8, ptr %20, i64 4
  %scevgep437 = getelementptr i8, ptr %18, i64 -4
  %scevgep439 = getelementptr i8, ptr %17, i64 -4
  %scevgep441 = getelementptr i8, ptr %18, i64 4
  %scevgep443 = getelementptr i8, ptr %17, i64 4
  %invariant.gep522 = getelementptr i8, ptr %19, i64 -8
  %invariant.gep520 = getelementptr i8, ptr %19, i64 -8
  br label %85

85:                                               ; preds = %.lr.ph264, %462
  %86 = phi float [ 0.000000e+00, %.lr.ph264 ], [ %460, %462 ]
  %.0166262 = phi i64 [ 1, %.lr.ph264 ], [ %463, %462 ]
  %87 = getelementptr inbounds i64, ptr %54, i64 %.0166262
  %88 = load i64, ptr %87, align 8, !tbaa !5
  store i64 %88, ptr %39, align 8, !tbaa !5
  %89 = sdiv i64 %88, 2
  %90 = add nsw i64 %89, 1
  br label %91

91:                                               ; preds = %85, %.loopexit208
  %92 = phi float [ %86, %85 ], [ %460, %.loopexit208 ]
  %.0167260 = phi i64 [ 1, %85 ], [ %461, %.loopexit208 ]
  switch i64 %.0167260, label %._crit_edge279 [
    i64 1, label %93
    i64 2, label %97
  ]

._crit_edge279:                                   ; preds = %91
  %.pre = load i64, ptr %38, align 8
  br label %101

93:                                               ; preds = %91
  %94 = load i64, ptr %39, align 8, !tbaa !5
  %95 = sub nsw i64 %94, %90
  %96 = call i64 @llvm.smax.i64(i64 %95, i64 0)
  store i64 %96, ptr %38, align 8, !tbaa !5
  br label %101

97:                                               ; preds = %91
  %98 = load i64, ptr %39, align 8, !tbaa !5
  %99 = add nsw i64 %98, %90
  %100 = load i64, ptr %14, align 8, !tbaa !5
  %. = call i64 @llvm.smin.i64(i64 %99, i64 %100)
  store i64 %., ptr %38, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %._crit_edge279, %93, %97
  %102 = phi i64 [ %.pre, %._crit_edge279 ], [ %96, %93 ], [ %., %97 ]
  store i64 %102, ptr %45, align 8, !tbaa !5
  %103 = load i64, ptr %14, align 8, !tbaa !5
  %104 = icmp slt i64 %102, %103
  br i1 %104, label %105, label %107

105:                                              ; preds = %101
  %106 = add nsw i64 %102, 1
  store i64 %106, ptr %45, align 8, !tbaa !5
  br label %107

107:                                              ; preds = %105, %101
  %108 = phi i64 [ %106, %105 ], [ %102, %101 ]
  %109 = icmp sgt i64 %108, %103
  br i1 %109, label %.loopexit208, label %110

110:                                              ; preds = %107
  %111 = load i64, ptr %39, align 8, !tbaa !5
  %112 = mul nsw i64 %111, %108
  store i64 %112, ptr %44, align 8, !tbaa !5
  %113 = icmp slt i64 %111, 1
  %114 = icmp slt i64 %102, 1
  %115 = or i1 %114, %113
  %116 = load i64, ptr %12, align 8, !tbaa !5
  %.not183256 = icmp slt i64 %116, 1
  br i1 %.not183256, label %.loopexit208, label %.lr.ph259

.lr.ph259:                                        ; preds = %110, %._crit_edge255
  %117 = phi float [ %458, %._crit_edge255 ], [ %92, %110 ]
  %.0165257 = phi i64 [ %459, %._crit_edge255 ], [ 1, %110 ]
  %118 = getelementptr inbounds i64, ptr %56, i64 %.0165257
  %119 = load i64, ptr %118, align 8, !tbaa !5
  store i64 %119, ptr %47, align 8, !tbaa !5
  %120 = call i64 @llvm.abs.i64(i64 %119, i1 true)
  %121 = load i64, ptr %38, align 8, !tbaa !5
  %122 = mul nsw i64 %121, %120
  store i64 %122, ptr %42, align 8, !tbaa !5
  store <2 x float> <float 5.000000e-01, float 0.000000e+00>, ptr %53, align 8, !tbaa !10
  store i64 %120, ptr %30, align 8, !tbaa !5
  %123 = add nsw i64 %121, -1
  store i64 %123, ptr %31, align 8, !tbaa !5
  %124 = call i32 @cmake_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef %19, ptr noundef nonnull @c__1, ptr noundef %20, ptr noundef nonnull %30, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %125 = load i64, ptr %38, align 8
  %126 = icmp sgt i64 %125, 1
  br i1 %126, label %127, label %135

127:                                              ; preds = %.lr.ph259
  %128 = lshr i64 %125, 1
  %129 = getelementptr inbounds %struct.complex, ptr %59, i64 %128
  store <2 x float> zeroinitializer, ptr %129, align 4, !tbaa !10
  %130 = load i64, ptr %47, align 8
  %131 = call i64 @llvm.abs.i64(i64 %130, i1 true)
  %132 = add nsw i64 %128, -1
  %133 = mul nsw i64 %131, %132
  %134 = getelementptr %struct.complex, ptr %20, i64 %133
  store <2 x float> zeroinitializer, ptr %134, align 4, !tbaa !10
  br label %135

135:                                              ; preds = %127, %.lr.ph259
  %136 = load i64, ptr %12, align 8, !tbaa !5
  store i64 %136, ptr %30, align 8, !tbaa !5
  %.not184251 = icmp slt i64 %136, 1
  br i1 %.not184251, label %._crit_edge255, label %.lr.ph254

.lr.ph254:                                        ; preds = %135, %._crit_edge250
  %137 = phi float [ %455, %._crit_edge250 ], [ %117, %135 ]
  %.0164252 = phi i64 [ %456, %._crit_edge250 ], [ 1, %135 ]
  %138 = getelementptr inbounds i64, ptr %56, i64 %.0164252
  %139 = load i64, ptr %138, align 8, !tbaa !5
  store i64 %139, ptr %48, align 8, !tbaa !5
  %140 = call i64 @llvm.abs.i64(i64 %139, i1 true)
  %141 = load i64, ptr %39, align 8, !tbaa !5
  %142 = mul nsw i64 %141, %140
  store i64 %142, ptr %43, align 8, !tbaa !5
  store <2 x float> zeroinitializer, ptr %53, align 8, !tbaa !10
  store i64 %140, ptr %31, align 8, !tbaa !5
  %143 = add nsw i64 %141, -1
  store i64 %143, ptr %32, align 8, !tbaa !5
  %144 = call i32 @cmake_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef %22, ptr noundef nonnull @c__1, ptr noundef %23, ptr noundef nonnull %31, ptr noundef nonnull @c__0, ptr noundef nonnull %32, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %145 = load i64, ptr %39, align 8, !tbaa !5
  %146 = icmp sgt i64 %145, 1
  br i1 %146, label %147, label %155

147:                                              ; preds = %.lr.ph254
  %148 = lshr i64 %145, 1
  %149 = getelementptr inbounds %struct.complex, ptr %58, i64 %148
  store <2 x float> zeroinitializer, ptr %149, align 4, !tbaa !10
  %150 = load i64, ptr %48, align 8
  %151 = call i64 @llvm.abs.i64(i64 %150, i1 true)
  %152 = add nsw i64 %148, -1
  %153 = mul nsw i64 %151, %152
  %154 = getelementptr %struct.complex, ptr %23, i64 %153
  store <2 x float> zeroinitializer, ptr %154, align 4, !tbaa !10
  br label %155

155:                                              ; preds = %147, %.lr.ph254
  %156 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %156, ptr %31, align 8, !tbaa !5
  %.not185246 = icmp slt i64 %156, 1
  br i1 %.not185246, label %._crit_edge250, label %.lr.ph249

.lr.ph249:                                        ; preds = %155, %._crit_edge245
  %157 = phi float [ %452, %._crit_edge245 ], [ %137, %155 ]
  %.0168247 = phi i64 [ %453, %._crit_edge245 ], [ 1, %155 ]
  %158 = getelementptr inbounds %struct.complex, ptr %55, i64 %.0168247
  %159 = load <2 x float>, ptr %158, align 4, !tbaa !10
  store <2 x float> %159, ptr %49, align 8, !tbaa !10
  store <2 x float> zeroinitializer, ptr %53, align 8, !tbaa !10
  %160 = load i64, ptr %38, align 8, !tbaa !5
  %161 = add nsw i64 %160, -1
  store i64 %161, ptr %32, align 8, !tbaa !5
  %162 = load i64, ptr %39, align 8, !tbaa !5
  %163 = add nsw i64 %162, -1
  store i64 %163, ptr %33, align 8, !tbaa !5
  %164 = call i32 @cmake_(ptr noundef nonnull %74, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %45, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %165 = load i64, ptr %41, align 8, !tbaa !5
  %166 = add nsw i64 %165, 1
  store i64 %166, ptr %41, align 8, !tbaa !5
  %167 = load i64, ptr %38, align 8, !tbaa !5
  %168 = load i64, ptr %39, align 8, !tbaa !5
  %169 = load float, ptr %49, align 8, !tbaa !12
  %170 = load float, ptr %73, align 4, !tbaa !14
  %171 = load i64, ptr %44, align 8, !tbaa !5
  %.not186210 = icmp slt i64 %171, 1
  br i1 %.not186210, label %202, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph249
  %min.iters.check454 = icmp ult i64 %171, 8
  br i1 %min.iters.check454, label %.lr.ph.preheader477, label %vector.memcheck436

vector.memcheck436:                               ; preds = %.lr.ph.preheader
  %172 = shl i64 %171, 3
  %scevgep438 = getelementptr i8, ptr %scevgep437, i64 %172
  %scevgep440 = getelementptr i8, ptr %scevgep439, i64 %172
  %scevgep442 = getelementptr i8, ptr %18, i64 %172
  %scevgep444 = getelementptr i8, ptr %17, i64 %172
  %bound0445 = icmp ugt ptr %scevgep440, %18
  %bound1446 = icmp ugt ptr %scevgep438, %17
  %found.conflict447 = and i1 %bound0445, %bound1446
  %bound0448 = icmp ult ptr %scevgep441, %scevgep444
  %bound1449 = icmp ult ptr %scevgep443, %scevgep442
  %found.conflict450 = and i1 %bound0448, %bound1449
  %conflict.rdx451 = or i1 %found.conflict447, %found.conflict450
  br i1 %conflict.rdx451, label %.lr.ph.preheader477, label %vector.ph455

vector.ph455:                                     ; preds = %vector.memcheck436
  %n.vec457 = and i64 %171, 9223372036854775804
  %ind.end458 = or disjoint i64 %n.vec457, 1
  br label %vector.body460

vector.body460:                                   ; preds = %vector.body460, %vector.ph455
  %index461 = phi i64 [ 0, %vector.ph455 ], [ %index.next471, %vector.body460 ]
  %173 = or disjoint i64 %index461, 3
  %174 = getelementptr %struct.complex, ptr %17, i64 %index461
  %175 = getelementptr inbounds %struct.complex, ptr %61, i64 %173
  %wide.vec463 = load <4 x float>, ptr %174, align 4, !tbaa !10
  %wide.vec464 = load <4 x float>, ptr %175, align 4, !tbaa !10
  %176 = getelementptr %struct.complex, ptr %18, i64 %index461
  %177 = getelementptr inbounds %struct.complex, ptr %60, i64 %173
  store <4 x float> %wide.vec463, ptr %176, align 4, !tbaa !10
  store <4 x float> %wide.vec464, ptr %177, align 4, !tbaa !10
  %index.next471 = add nuw i64 %index461, 4
  %178 = icmp eq i64 %index.next471, %n.vec457
  br i1 %178, label %middle.block452, label %vector.body460, !llvm.loop !15

middle.block452:                                  ; preds = %vector.body460
  %cmp.n472 = icmp eq i64 %171, %n.vec457
  br i1 %cmp.n472, label %._crit_edge, label %.lr.ph.preheader477

.lr.ph.preheader477:                              ; preds = %middle.block452, %vector.memcheck436, %.lr.ph.preheader
  %storemerge211.ph = phi i64 [ 1, %vector.memcheck436 ], [ 1, %.lr.ph.preheader ], [ %ind.end458, %middle.block452 ]
  %179 = add nuw i64 %171, 1
  %180 = sub i64 %179, %storemerge211.ph
  %181 = sub i64 %171, %storemerge211.ph
  %xtraiter = and i64 %180, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader477, %.lr.ph.prol
  %storemerge211.prol = phi i64 [ %185, %.lr.ph.prol ], [ %storemerge211.ph, %.lr.ph.preheader477 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader477 ]
  %182 = getelementptr inbounds %struct.complex, ptr %61, i64 %storemerge211.prol
  %183 = getelementptr inbounds %struct.complex, ptr %60, i64 %storemerge211.prol
  %184 = load <2 x float>, ptr %182, align 4, !tbaa !10
  store <2 x float> %184, ptr %183, align 4, !tbaa !10
  %185 = add nuw i64 %storemerge211.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol, !llvm.loop !19

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader477
  %storemerge211.unr = phi i64 [ %storemerge211.ph, %.lr.ph.preheader477 ], [ %185, %.lr.ph.prol ]
  %186 = icmp ult i64 %181, 3
  br i1 %186, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge211 = phi i64 [ %201, %.lr.ph ], [ %storemerge211.unr, %.lr.ph.prol.loopexit ]
  %187 = getelementptr inbounds %struct.complex, ptr %61, i64 %storemerge211
  %188 = getelementptr inbounds %struct.complex, ptr %60, i64 %storemerge211
  %189 = load <2 x float>, ptr %187, align 4, !tbaa !10
  store <2 x float> %189, ptr %188, align 4, !tbaa !10
  %190 = getelementptr %struct.complex, ptr %17, i64 %storemerge211
  %191 = getelementptr %struct.complex, ptr %18, i64 %storemerge211
  %192 = load <2 x float>, ptr %190, align 4, !tbaa !10
  store <2 x float> %192, ptr %191, align 4, !tbaa !10
  %193 = add nuw i64 %storemerge211, 2
  %194 = getelementptr inbounds %struct.complex, ptr %61, i64 %193
  %195 = getelementptr inbounds %struct.complex, ptr %60, i64 %193
  %196 = load <2 x float>, ptr %194, align 4, !tbaa !10
  store <2 x float> %196, ptr %195, align 4, !tbaa !10
  %197 = add nuw i64 %storemerge211, 3
  %198 = getelementptr inbounds %struct.complex, ptr %61, i64 %197
  %199 = getelementptr inbounds %struct.complex, ptr %60, i64 %197
  %200 = load <2 x float>, ptr %198, align 4, !tbaa !10
  store <2 x float> %200, ptr %199, align 4, !tbaa !10
  %201 = add nuw i64 %storemerge211, 4
  %exitcond.not.3 = icmp eq i64 %197, %171
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block452
  store i64 %171, ptr %33, align 8, !tbaa !5
  br label %202

202:                                              ; preds = %._crit_edge, %.lr.ph249
  %203 = load i64, ptr %45, align 8, !tbaa !5
  %204 = load i64, ptr %42, align 8, !tbaa !5
  %.not188212 = icmp slt i64 %204, 1
  br i1 %.not188212, label %235, label %.lr.ph215.preheader

.lr.ph215.preheader:                              ; preds = %202
  %min.iters.check417 = icmp ult i64 %204, 8
  br i1 %min.iters.check417, label %.lr.ph215.preheader476, label %vector.memcheck399

vector.memcheck399:                               ; preds = %.lr.ph215.preheader
  %205 = shl i64 %204, 3
  %scevgep401 = getelementptr i8, ptr %scevgep400, i64 %205
  %scevgep403 = getelementptr i8, ptr %scevgep402, i64 %205
  %scevgep405 = getelementptr i8, ptr %21, i64 %205
  %scevgep407 = getelementptr i8, ptr %20, i64 %205
  %bound0408 = icmp ugt ptr %scevgep403, %21
  %bound1409 = icmp ugt ptr %scevgep401, %20
  %found.conflict410 = and i1 %bound0408, %bound1409
  %bound0411 = icmp ult ptr %scevgep404, %scevgep407
  %bound1412 = icmp ult ptr %scevgep406, %scevgep405
  %found.conflict413 = and i1 %bound0411, %bound1412
  %conflict.rdx414 = or i1 %found.conflict410, %found.conflict413
  br i1 %conflict.rdx414, label %.lr.ph215.preheader476, label %vector.ph418

vector.ph418:                                     ; preds = %vector.memcheck399
  %n.vec420 = and i64 %204, 9223372036854775804
  %ind.end421 = or disjoint i64 %n.vec420, 1
  br label %vector.body423

vector.body423:                                   ; preds = %vector.body423, %vector.ph418
  %index424 = phi i64 [ 0, %vector.ph418 ], [ %index.next434, %vector.body423 ]
  %206 = or disjoint i64 %index424, 3
  %207 = getelementptr %struct.complex, ptr %20, i64 %index424
  %208 = getelementptr inbounds %struct.complex, ptr %66, i64 %206
  %wide.vec426 = load <4 x float>, ptr %207, align 4, !tbaa !10
  %wide.vec427 = load <4 x float>, ptr %208, align 4, !tbaa !10
  %209 = getelementptr %struct.complex, ptr %21, i64 %index424
  %210 = getelementptr inbounds %struct.complex, ptr %65, i64 %206
  store <4 x float> %wide.vec426, ptr %209, align 4, !tbaa !10
  store <4 x float> %wide.vec427, ptr %210, align 4, !tbaa !10
  %index.next434 = add nuw i64 %index424, 4
  %211 = icmp eq i64 %index.next434, %n.vec420
  br i1 %211, label %middle.block415, label %vector.body423, !llvm.loop !22

middle.block415:                                  ; preds = %vector.body423
  %cmp.n435 = icmp eq i64 %204, %n.vec420
  br i1 %cmp.n435, label %._crit_edge216, label %.lr.ph215.preheader476

.lr.ph215.preheader476:                           ; preds = %middle.block415, %vector.memcheck399, %.lr.ph215.preheader
  %storemerge187213.ph = phi i64 [ 1, %vector.memcheck399 ], [ 1, %.lr.ph215.preheader ], [ %ind.end421, %middle.block415 ]
  %212 = add nuw i64 %204, 1
  %213 = sub i64 %212, %storemerge187213.ph
  %214 = sub i64 %204, %storemerge187213.ph
  %xtraiter490 = and i64 %213, 3
  %lcmp.mod491.not = icmp eq i64 %xtraiter490, 0
  br i1 %lcmp.mod491.not, label %.lr.ph215.prol.loopexit, label %.lr.ph215.prol

.lr.ph215.prol:                                   ; preds = %.lr.ph215.preheader476, %.lr.ph215.prol
  %storemerge187213.prol = phi i64 [ %218, %.lr.ph215.prol ], [ %storemerge187213.ph, %.lr.ph215.preheader476 ]
  %prol.iter492 = phi i64 [ %prol.iter492.next, %.lr.ph215.prol ], [ 0, %.lr.ph215.preheader476 ]
  %215 = getelementptr inbounds %struct.complex, ptr %66, i64 %storemerge187213.prol
  %216 = getelementptr inbounds %struct.complex, ptr %65, i64 %storemerge187213.prol
  %217 = load <2 x float>, ptr %215, align 4, !tbaa !10
  store <2 x float> %217, ptr %216, align 4, !tbaa !10
  %218 = add nuw i64 %storemerge187213.prol, 1
  %prol.iter492.next = add i64 %prol.iter492, 1
  %prol.iter492.cmp.not = icmp eq i64 %prol.iter492.next, %xtraiter490
  br i1 %prol.iter492.cmp.not, label %.lr.ph215.prol.loopexit, label %.lr.ph215.prol, !llvm.loop !23

.lr.ph215.prol.loopexit:                          ; preds = %.lr.ph215.prol, %.lr.ph215.preheader476
  %storemerge187213.unr = phi i64 [ %storemerge187213.ph, %.lr.ph215.preheader476 ], [ %218, %.lr.ph215.prol ]
  %219 = icmp ult i64 %214, 3
  br i1 %219, label %._crit_edge216, label %.lr.ph215

.lr.ph215:                                        ; preds = %.lr.ph215.prol.loopexit, %.lr.ph215
  %storemerge187213 = phi i64 [ %234, %.lr.ph215 ], [ %storemerge187213.unr, %.lr.ph215.prol.loopexit ]
  %220 = getelementptr inbounds %struct.complex, ptr %66, i64 %storemerge187213
  %221 = getelementptr inbounds %struct.complex, ptr %65, i64 %storemerge187213
  %222 = load <2 x float>, ptr %220, align 4, !tbaa !10
  store <2 x float> %222, ptr %221, align 4, !tbaa !10
  %223 = getelementptr %struct.complex, ptr %20, i64 %storemerge187213
  %224 = getelementptr %struct.complex, ptr %21, i64 %storemerge187213
  %225 = load <2 x float>, ptr %223, align 4, !tbaa !10
  store <2 x float> %225, ptr %224, align 4, !tbaa !10
  %226 = add nuw i64 %storemerge187213, 2
  %227 = getelementptr inbounds %struct.complex, ptr %66, i64 %226
  %228 = getelementptr inbounds %struct.complex, ptr %65, i64 %226
  %229 = load <2 x float>, ptr %227, align 4, !tbaa !10
  store <2 x float> %229, ptr %228, align 4, !tbaa !10
  %230 = add nuw i64 %storemerge187213, 3
  %231 = getelementptr inbounds %struct.complex, ptr %66, i64 %230
  %232 = getelementptr inbounds %struct.complex, ptr %65, i64 %230
  %233 = load <2 x float>, ptr %231, align 4, !tbaa !10
  store <2 x float> %233, ptr %232, align 4, !tbaa !10
  %234 = add nuw i64 %storemerge187213, 4
  %exitcond272.not.3 = icmp eq i64 %230, %204
  br i1 %exitcond272.not.3, label %._crit_edge216, label %.lr.ph215, !llvm.loop !24

._crit_edge216:                                   ; preds = %.lr.ph215.prol.loopexit, %.lr.ph215, %middle.block415
  store i64 %204, ptr %33, align 8, !tbaa !5
  br label %235

235:                                              ; preds = %._crit_edge216, %202
  %236 = load i64, ptr %47, align 8, !tbaa !5
  %237 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %237, ptr %32, align 8, !tbaa !5
  %.not190218 = icmp slt i64 %237, 1
  br i1 %.not190218, label %269, label %.lr.ph221.preheader

.lr.ph221.preheader:                              ; preds = %235
  %238 = add nuw i64 %237, 1
  %min.iters.check380 = icmp ult i64 %237, 8
  br i1 %min.iters.check380, label %.lr.ph221.preheader475, label %vector.memcheck362

vector.memcheck362:                               ; preds = %.lr.ph221.preheader
  %239 = shl i64 %237, 3
  %scevgep364 = getelementptr i8, ptr %scevgep363, i64 %239
  %scevgep366 = getelementptr i8, ptr %scevgep365, i64 %239
  %scevgep368 = getelementptr i8, ptr %24, i64 %239
  %scevgep370 = getelementptr i8, ptr %23, i64 %239
  %bound0371 = icmp ugt ptr %scevgep366, %24
  %bound1372 = icmp ugt ptr %scevgep364, %23
  %found.conflict373 = and i1 %bound0371, %bound1372
  %bound0374 = icmp ult ptr %scevgep367, %scevgep370
  %bound1375 = icmp ult ptr %scevgep369, %scevgep368
  %found.conflict376 = and i1 %bound0374, %bound1375
  %conflict.rdx377 = or i1 %found.conflict373, %found.conflict376
  br i1 %conflict.rdx377, label %.lr.ph221.preheader475, label %vector.ph381

vector.ph381:                                     ; preds = %vector.memcheck362
  %n.vec383 = and i64 %237, 9223372036854775804
  %ind.end384 = or disjoint i64 %n.vec383, 1
  br label %vector.body386

vector.body386:                                   ; preds = %vector.body386, %vector.ph381
  %index387 = phi i64 [ 0, %vector.ph381 ], [ %index.next397, %vector.body386 ]
  %240 = or disjoint i64 %index387, 3
  %241 = getelementptr %struct.complex, ptr %23, i64 %index387
  %242 = getelementptr inbounds %struct.complex, ptr %64, i64 %240
  %wide.vec389 = load <4 x float>, ptr %241, align 4, !tbaa !10
  %wide.vec390 = load <4 x float>, ptr %242, align 4, !tbaa !10
  %243 = getelementptr %struct.complex, ptr %24, i64 %index387
  %244 = getelementptr inbounds %struct.complex, ptr %63, i64 %240
  store <4 x float> %wide.vec389, ptr %243, align 4, !tbaa !10
  store <4 x float> %wide.vec390, ptr %244, align 4, !tbaa !10
  %index.next397 = add nuw i64 %index387, 4
  %245 = icmp eq i64 %index.next397, %n.vec383
  br i1 %245, label %middle.block378, label %vector.body386, !llvm.loop !25

middle.block378:                                  ; preds = %vector.body386
  %cmp.n398 = icmp eq i64 %237, %n.vec383
  br i1 %cmp.n398, label %._crit_edge222, label %.lr.ph221.preheader475

.lr.ph221.preheader475:                           ; preds = %middle.block378, %vector.memcheck362, %.lr.ph221.preheader
  %storemerge189219.ph = phi i64 [ 1, %vector.memcheck362 ], [ 1, %.lr.ph221.preheader ], [ %ind.end384, %middle.block378 ]
  %246 = add nuw i64 %237, 1
  %247 = sub i64 %246, %storemerge189219.ph
  %248 = sub i64 %237, %storemerge189219.ph
  %xtraiter493 = and i64 %247, 3
  %lcmp.mod494.not = icmp eq i64 %xtraiter493, 0
  br i1 %lcmp.mod494.not, label %.lr.ph221.prol.loopexit, label %.lr.ph221.prol

.lr.ph221.prol:                                   ; preds = %.lr.ph221.preheader475, %.lr.ph221.prol
  %storemerge189219.prol = phi i64 [ %252, %.lr.ph221.prol ], [ %storemerge189219.ph, %.lr.ph221.preheader475 ]
  %prol.iter495 = phi i64 [ %prol.iter495.next, %.lr.ph221.prol ], [ 0, %.lr.ph221.preheader475 ]
  %249 = getelementptr inbounds %struct.complex, ptr %64, i64 %storemerge189219.prol
  %250 = getelementptr inbounds %struct.complex, ptr %63, i64 %storemerge189219.prol
  %251 = load <2 x float>, ptr %249, align 4, !tbaa !10
  store <2 x float> %251, ptr %250, align 4, !tbaa !10
  %252 = add nuw i64 %storemerge189219.prol, 1
  %prol.iter495.next = add i64 %prol.iter495, 1
  %prol.iter495.cmp.not = icmp eq i64 %prol.iter495.next, %xtraiter493
  br i1 %prol.iter495.cmp.not, label %.lr.ph221.prol.loopexit, label %.lr.ph221.prol, !llvm.loop !26

.lr.ph221.prol.loopexit:                          ; preds = %.lr.ph221.prol, %.lr.ph221.preheader475
  %storemerge189219.unr = phi i64 [ %storemerge189219.ph, %.lr.ph221.preheader475 ], [ %252, %.lr.ph221.prol ]
  %253 = icmp ult i64 %248, 3
  br i1 %253, label %._crit_edge222, label %.lr.ph221

.lr.ph221:                                        ; preds = %.lr.ph221.prol.loopexit, %.lr.ph221
  %storemerge189219 = phi i64 [ %268, %.lr.ph221 ], [ %storemerge189219.unr, %.lr.ph221.prol.loopexit ]
  %254 = getelementptr inbounds %struct.complex, ptr %64, i64 %storemerge189219
  %255 = getelementptr inbounds %struct.complex, ptr %63, i64 %storemerge189219
  %256 = load <2 x float>, ptr %254, align 4, !tbaa !10
  store <2 x float> %256, ptr %255, align 4, !tbaa !10
  %257 = getelementptr %struct.complex, ptr %23, i64 %storemerge189219
  %258 = getelementptr %struct.complex, ptr %24, i64 %storemerge189219
  %259 = load <2 x float>, ptr %257, align 4, !tbaa !10
  store <2 x float> %259, ptr %258, align 4, !tbaa !10
  %260 = add nuw i64 %storemerge189219, 2
  %261 = getelementptr inbounds %struct.complex, ptr %64, i64 %260
  %262 = getelementptr inbounds %struct.complex, ptr %63, i64 %260
  %263 = load <2 x float>, ptr %261, align 4, !tbaa !10
  store <2 x float> %263, ptr %262, align 4, !tbaa !10
  %264 = add nuw i64 %storemerge189219, 3
  %265 = getelementptr inbounds %struct.complex, ptr %64, i64 %264
  %266 = getelementptr inbounds %struct.complex, ptr %63, i64 %264
  %267 = load <2 x float>, ptr %265, align 4, !tbaa !10
  store <2 x float> %267, ptr %266, align 4, !tbaa !10
  %268 = add nuw i64 %storemerge189219, 4
  %exitcond273.not.3 = icmp eq i64 %264, %237
  br i1 %exitcond273.not.3, label %._crit_edge222, label %.lr.ph221, !llvm.loop !27

._crit_edge222:                                   ; preds = %.lr.ph221.prol.loopexit, %.lr.ph221, %middle.block378
  store i64 %237, ptr %33, align 8, !tbaa !5
  br label %269

269:                                              ; preds = %._crit_edge222, %235
  %storemerge189.lcssa = phi i64 [ %238, %._crit_edge222 ], [ 1, %235 ]
  store i64 %storemerge189.lcssa, ptr %36, align 8, !tbaa !5
  %270 = load i64, ptr %48, align 8, !tbaa !5
  %271 = load i64, ptr %5, align 8, !tbaa !5
  %.not191 = icmp eq i64 %271, 0
  br i1 %.not191, label %284, label %272

272:                                              ; preds = %269
  %273 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %273, ptr getelementptr inbounds (i8, ptr @cchk4_.io___285, i64 8), align 8, !tbaa !28
  %274 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___285) #4
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %277 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %278 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #4
  %279 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %49, i64 noundef 4) #4
  %280 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %281 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %282 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %283 = call i64 @e_wsfe() #4
  br label %284

284:                                              ; preds = %272, %269
  %285 = load i64, ptr %6, align 8, !tbaa !5
  %.not193 = icmp eq i64 %285, 0
  br i1 %69, label %286, label %292

286:                                              ; preds = %284
  br i1 %.not193, label %290, label %287

287:                                              ; preds = %286
  store i64 0, ptr %35, align 8, !tbaa !31
  %288 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %288, ptr %75, align 8, !tbaa !33
  %289 = call i64 @f_rew(ptr noundef nonnull %35) #4
  br label %290

290:                                              ; preds = %287, %286
  %291 = call i32 @f2c_cgerc(ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %49, ptr noundef %20, ptr noundef nonnull %47, ptr noundef %23, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %45) #4
  br label %298

292:                                              ; preds = %284
  br i1 %.not193, label %296, label %293

293:                                              ; preds = %292
  store i64 0, ptr %35, align 8, !tbaa !31
  %294 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %294, ptr %75, align 8, !tbaa !33
  %295 = call i64 @f_rew(ptr noundef nonnull %35) #4
  br label %296

296:                                              ; preds = %293, %292
  %297 = call i32 @f2c_cgeru(ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %49, ptr noundef %20, ptr noundef nonnull %47, ptr noundef %23, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %45) #4
  br label %298

298:                                              ; preds = %296, %290
  %299 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !9
  %.not194 = icmp eq i64 %299, 0
  br i1 %.not194, label %300, label %304

300:                                              ; preds = %298
  %301 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %301, ptr getelementptr inbounds (i8, ptr @cchk4_.io___286, i64 8), align 8, !tbaa !28
  %302 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___286) #4
  %303 = call i64 @e_wsfe() #4
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %482

304:                                              ; preds = %298
  %305 = load i64, ptr %38, align 8, !tbaa !5
  %306 = icmp eq i64 %167, %305
  %307 = zext i1 %306 to i64
  store i64 %307, ptr %50, align 16, !tbaa !5
  %308 = load i64, ptr %39, align 8, !tbaa !5
  %309 = icmp eq i64 %168, %308
  %310 = zext i1 %309 to i64
  store i64 %310, ptr %76, align 8, !tbaa !5
  %311 = load float, ptr %49, align 8, !tbaa !12
  %312 = fcmp oeq float %169, %311
  %313 = load float, ptr %73, align 4
  %314 = fcmp oeq float %170, %313
  %315 = select i1 %312, i1 %314, i1 false
  %316 = zext i1 %315 to i64
  store i64 %316, ptr %77, align 16, !tbaa !5
  %317 = call i64 @lce_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %42)
  store i64 %317, ptr %78, align 8, !tbaa !5
  %318 = load i64, ptr %47, align 8, !tbaa !5
  %319 = icmp eq i64 %236, %318
  %320 = zext i1 %319 to i64
  store i64 %320, ptr %79, align 16, !tbaa !5
  %321 = call i64 @lce_(ptr noundef %24, ptr noundef %23, ptr noundef nonnull %43)
  store i64 %321, ptr %80, align 8, !tbaa !5
  %322 = load i64, ptr %48, align 8, !tbaa !5
  %323 = icmp eq i64 %270, %322
  %324 = zext i1 %323 to i64
  store i64 %324, ptr %81, align 16, !tbaa !5
  br i1 %115, label %325, label %327

325:                                              ; preds = %304
  %326 = call i64 @lce_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %44)
  br label %.lr.ph228.preheader

327:                                              ; preds = %304
  %328 = call i64 @lceres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %18, ptr noundef %17, ptr noundef nonnull %45, i64 noundef 2, i64 noundef 1)
  br label %.lr.ph228.preheader

.lr.ph228.preheader:                              ; preds = %325, %327
  %storemerge283 = phi i64 [ %328, %327 ], [ %326, %325 ]
  store i64 %storemerge283, ptr %82, align 8, !tbaa !5
  %329 = load i64, ptr %45, align 8, !tbaa !5
  %330 = icmp eq i64 %203, %329
  %331 = zext i1 %330 to i64
  store i64 %331, ptr %83, align 16, !tbaa !5
  store i64 9, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %36, align 8, !tbaa !5
  br label %.lr.ph228

.lr.ph228:                                        ; preds = %.lr.ph228.preheader, %341
  %332 = phi i64 [ %342, %341 ], [ 9, %.lr.ph228.preheader ]
  %333 = phi i64 [ %344, %341 ], [ 1, %.lr.ph228.preheader ]
  %.0226 = phi i1 [ %335, %341 ], [ true, %.lr.ph228.preheader ]
  %storemerge195225 = phi i64 [ %343, %341 ], [ 0, %.lr.ph228.preheader ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %50, i64 0, i64 %storemerge195225
  %.pre280 = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %334 = icmp ne i64 %.pre280, 0
  %335 = and i1 %.0226, %334
  %.not206 = icmp eq i64 %.pre280, 0
  br i1 %.not206, label %336, label %341

336:                                              ; preds = %.lr.ph228
  %337 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %337, ptr getelementptr inbounds (i8, ptr @cchk4_.io___289, i64 8), align 8, !tbaa !28
  %338 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___289) #4
  %339 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #4
  %340 = call i64 @e_wsfe() #4
  %.pre281 = load i64, ptr %36, align 8, !tbaa !5
  %.pre282 = load i64, ptr %32, align 8, !tbaa !5
  br label %341

341:                                              ; preds = %.lr.ph228, %336
  %342 = phi i64 [ %332, %.lr.ph228 ], [ %.pre282, %336 ]
  %343 = phi i64 [ %333, %.lr.ph228 ], [ %.pre281, %336 ]
  %344 = add nsw i64 %343, 1
  store i64 %344, ptr %36, align 8, !tbaa !5
  %.not196.not = icmp slt i64 %343, %342
  br i1 %.not196.not, label %.lr.ph228, label %._crit_edge229, !llvm.loop !34

._crit_edge229:                                   ; preds = %341
  br i1 %335, label %346, label %345

345:                                              ; preds = %._crit_edge229
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %482

346:                                              ; preds = %._crit_edge229
  br i1 %115, label %.loopexit208, label %347

347:                                              ; preds = %346
  %348 = load i64, ptr %47, align 8, !tbaa !5
  %349 = icmp sgt i64 %348, 0
  %350 = load i64, ptr %38, align 8
  %.not201236 = icmp slt i64 %350, 1
  br i1 %349, label %351, label %383

351:                                              ; preds = %347
  br i1 %.not201236, label %.loopexit, label %.lr.ph239.preheader

.lr.ph239.preheader:                              ; preds = %351
  %352 = add nuw i64 %350, 1
  %min.iters.check = icmp ult i64 %350, 8
  br i1 %min.iters.check, label %.lr.ph239.preheader473, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph239.preheader
  %353 = shl i64 %350, 3
  %scevgep309 = getelementptr i8, ptr %scevgep, i64 %353
  %scevgep311 = getelementptr i8, ptr %scevgep310, i64 %353
  %scevgep313 = getelementptr i8, ptr %27, i64 %353
  %scevgep315 = getelementptr i8, ptr %19, i64 %353
  %bound0 = icmp ugt ptr %scevgep311, %27
  %bound1 = icmp ugt ptr %scevgep309, %19
  %found.conflict = and i1 %bound0, %bound1
  %bound0316 = icmp ult ptr %scevgep312, %scevgep315
  %bound1317 = icmp ult ptr %scevgep314, %scevgep313
  %found.conflict318 = and i1 %bound0316, %bound1317
  %conflict.rdx = or i1 %found.conflict, %found.conflict318
  br i1 %conflict.rdx, label %.lr.ph239.preheader473, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %350, 9223372036854775804
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %354 = or disjoint i64 %index, 3
  %355 = getelementptr %struct.complex, ptr %19, i64 %index
  %356 = getelementptr inbounds %struct.complex, ptr %59, i64 %354
  %wide.vec = load <4 x float>, ptr %355, align 4, !tbaa !10
  %wide.vec319 = load <4 x float>, ptr %356, align 4, !tbaa !10
  %357 = getelementptr %struct.complex, ptr %27, i64 %index
  %358 = getelementptr inbounds %struct.complex, ptr %57, i64 %354
  store <4 x float> %wide.vec, ptr %357, align 4, !tbaa !10
  store <4 x float> %wide.vec319, ptr %358, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 4
  %359 = icmp eq i64 %index.next, %n.vec
  br i1 %359, label %middle.block, label %vector.body, !llvm.loop !35

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %350, %n.vec
  br i1 %cmp.n, label %..loopexit_crit_edge, label %.lr.ph239.preheader473

.lr.ph239.preheader473:                           ; preds = %middle.block, %vector.memcheck, %.lr.ph239.preheader
  %storemerge200237.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph239.preheader ], [ %ind.end, %middle.block ]
  %360 = add nuw i64 %350, 1
  %361 = sub i64 %360, %storemerge200237.ph
  %362 = sub i64 %350, %storemerge200237.ph
  %xtraiter499 = and i64 %361, 3
  %lcmp.mod500.not = icmp eq i64 %xtraiter499, 0
  br i1 %lcmp.mod500.not, label %.lr.ph239.prol.loopexit, label %.lr.ph239.prol

.lr.ph239.prol:                                   ; preds = %.lr.ph239.preheader473, %.lr.ph239.prol
  %storemerge200237.prol = phi i64 [ %366, %.lr.ph239.prol ], [ %storemerge200237.ph, %.lr.ph239.preheader473 ]
  %prol.iter501 = phi i64 [ %prol.iter501.next, %.lr.ph239.prol ], [ 0, %.lr.ph239.preheader473 ]
  %363 = getelementptr inbounds %struct.complex, ptr %59, i64 %storemerge200237.prol
  %364 = getelementptr inbounds %struct.complex, ptr %57, i64 %storemerge200237.prol
  %365 = load <2 x float>, ptr %363, align 4, !tbaa !10
  store <2 x float> %365, ptr %364, align 4, !tbaa !10
  %366 = add nuw i64 %storemerge200237.prol, 1
  %prol.iter501.next = add i64 %prol.iter501, 1
  %prol.iter501.cmp.not = icmp eq i64 %prol.iter501.next, %xtraiter499
  br i1 %prol.iter501.cmp.not, label %.lr.ph239.prol.loopexit, label %.lr.ph239.prol, !llvm.loop !36

.lr.ph239.prol.loopexit:                          ; preds = %.lr.ph239.prol, %.lr.ph239.preheader473
  %storemerge200237.unr = phi i64 [ %storemerge200237.ph, %.lr.ph239.preheader473 ], [ %366, %.lr.ph239.prol ]
  %367 = icmp ult i64 %362, 3
  br i1 %367, label %..loopexit_crit_edge, label %.lr.ph239

.lr.ph239:                                        ; preds = %.lr.ph239.prol.loopexit, %.lr.ph239
  %storemerge200237 = phi i64 [ %382, %.lr.ph239 ], [ %storemerge200237.unr, %.lr.ph239.prol.loopexit ]
  %368 = getelementptr inbounds %struct.complex, ptr %59, i64 %storemerge200237
  %369 = getelementptr inbounds %struct.complex, ptr %57, i64 %storemerge200237
  %370 = load <2 x float>, ptr %368, align 4, !tbaa !10
  store <2 x float> %370, ptr %369, align 4, !tbaa !10
  %371 = getelementptr %struct.complex, ptr %19, i64 %storemerge200237
  %372 = getelementptr %struct.complex, ptr %27, i64 %storemerge200237
  %373 = load <2 x float>, ptr %371, align 4, !tbaa !10
  store <2 x float> %373, ptr %372, align 4, !tbaa !10
  %374 = add nuw i64 %storemerge200237, 2
  %375 = getelementptr inbounds %struct.complex, ptr %59, i64 %374
  %376 = getelementptr inbounds %struct.complex, ptr %57, i64 %374
  %377 = load <2 x float>, ptr %375, align 4, !tbaa !10
  store <2 x float> %377, ptr %376, align 4, !tbaa !10
  %378 = add nuw i64 %storemerge200237, 3
  %379 = getelementptr inbounds %struct.complex, ptr %59, i64 %378
  %380 = getelementptr inbounds %struct.complex, ptr %57, i64 %378
  %381 = load <2 x float>, ptr %379, align 4, !tbaa !10
  store <2 x float> %381, ptr %380, align 4, !tbaa !10
  %382 = add nuw i64 %storemerge200237, 4
  %exitcond275.not.3 = icmp eq i64 %378, %350
  br i1 %exitcond275.not.3, label %..loopexit_crit_edge, label %.lr.ph239, !llvm.loop !37

383:                                              ; preds = %347
  br i1 %.not201236, label %.loopexit, label %.lr.ph234.preheader

.lr.ph234.preheader:                              ; preds = %383
  %384 = add nuw i64 %350, 1
  %min.iters.check340 = icmp ult i64 %350, 6
  br i1 %min.iters.check340, label %.lr.ph234.preheader474, label %vector.memcheck324

vector.memcheck324:                               ; preds = %.lr.ph234.preheader
  %385 = shl i64 %350, 3
  %scevgep326 = getelementptr i8, ptr %scevgep325, i64 %385
  %scevgep328 = getelementptr i8, ptr %scevgep327, i64 %385
  %scevgep329 = getelementptr i8, ptr %27, i64 %385
  %scevgep330 = getelementptr i8, ptr %19, i64 %385
  %bound0331 = icmp ugt ptr %scevgep328, %27
  %bound1332 = icmp ugt ptr %scevgep326, %19
  %found.conflict333 = and i1 %bound0331, %bound1332
  %bound0334 = icmp ult ptr %scevgep312, %scevgep330
  %bound1335 = icmp ult ptr %scevgep314, %scevgep329
  %found.conflict336 = and i1 %bound0334, %bound1335
  %conflict.rdx337 = or i1 %found.conflict333, %found.conflict336
  br i1 %conflict.rdx337, label %.lr.ph234.preheader474, label %vector.ph341

vector.ph341:                                     ; preds = %vector.memcheck324
  %n.vec343 = and i64 %350, 9223372036854775804
  %ind.end344 = or disjoint i64 %n.vec343, 1
  %gep523 = getelementptr %struct.complex, ptr %invariant.gep522, i64 %350
  br label %vector.body346

vector.body346:                                   ; preds = %vector.body346, %vector.ph341
  %index347 = phi i64 [ 0, %vector.ph341 ], [ %index.next360, %vector.body346 ]
  %offset.idx348.neg = xor i64 %index347, -1
  %386 = or disjoint i64 %index347, 3
  %387 = sub nsw i64 %350, %386
  %gep519 = getelementptr %struct.complex, ptr %gep523, i64 %offset.idx348.neg
  %gep521 = getelementptr %struct.complex, ptr %invariant.gep520, i64 %387
  %wide.vec349 = load <4 x float>, ptr %gep519, align 4, !tbaa !10
  %wide.vec350 = load <4 x float>, ptr %gep521, align 4, !tbaa !10
  %388 = getelementptr %struct.complex, ptr %27, i64 %index347
  %389 = getelementptr inbounds %struct.complex, ptr %57, i64 %386
  %interleaved.vec358 = shufflevector <4 x float> %wide.vec349, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %interleaved.vec358, ptr %388, align 4, !tbaa !10
  %interleaved.vec359 = shufflevector <4 x float> %wide.vec350, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %interleaved.vec359, ptr %389, align 4, !tbaa !10
  %index.next360 = add nuw i64 %index347, 4
  %390 = icmp eq i64 %index.next360, %n.vec343
  br i1 %390, label %middle.block338, label %vector.body346, !llvm.loop !38

middle.block338:                                  ; preds = %vector.body346
  %cmp.n361 = icmp eq i64 %350, %n.vec343
  br i1 %cmp.n361, label %..loopexit207_crit_edge, label %.lr.ph234.preheader474

.lr.ph234.preheader474:                           ; preds = %middle.block338, %vector.memcheck324, %.lr.ph234.preheader
  %storemerge198232.ph = phi i64 [ 1, %vector.memcheck324 ], [ 1, %.lr.ph234.preheader ], [ %ind.end344, %middle.block338 ]
  %391 = add nuw i64 %350, 1
  %392 = sub i64 %391, %storemerge198232.ph
  %393 = sub i64 %350, %storemerge198232.ph
  %xtraiter496 = and i64 %392, 3
  %lcmp.mod497.not = icmp eq i64 %xtraiter496, 0
  br i1 %lcmp.mod497.not, label %.lr.ph234.prol.loopexit, label %.lr.ph234.prol

.lr.ph234.prol:                                   ; preds = %.lr.ph234.preheader474, %.lr.ph234.prol
  %storemerge198232.prol = phi i64 [ %398, %.lr.ph234.prol ], [ %storemerge198232.ph, %.lr.ph234.preheader474 ]
  %prol.iter498 = phi i64 [ %prol.iter498.next, %.lr.ph234.prol ], [ 0, %.lr.ph234.preheader474 ]
  %394 = sub nsw i64 %350, %storemerge198232.prol
  %395 = getelementptr %struct.complex, ptr %19, i64 %394
  %396 = getelementptr inbounds %struct.complex, ptr %57, i64 %storemerge198232.prol
  %397 = load <2 x float>, ptr %395, align 4, !tbaa !10
  store <2 x float> %397, ptr %396, align 4, !tbaa !10
  %398 = add nuw i64 %storemerge198232.prol, 1
  %prol.iter498.next = add i64 %prol.iter498, 1
  %prol.iter498.cmp.not = icmp eq i64 %prol.iter498.next, %xtraiter496
  br i1 %prol.iter498.cmp.not, label %.lr.ph234.prol.loopexit, label %.lr.ph234.prol, !llvm.loop !39

.lr.ph234.prol.loopexit:                          ; preds = %.lr.ph234.prol, %.lr.ph234.preheader474
  %storemerge198232.unr = phi i64 [ %storemerge198232.ph, %.lr.ph234.preheader474 ], [ %398, %.lr.ph234.prol ]
  %399 = icmp ult i64 %393, 3
  br i1 %399, label %..loopexit207_crit_edge, label %.lr.ph234.preheader474.new

.lr.ph234.preheader474.new:                       ; preds = %.lr.ph234.prol.loopexit
  %400 = getelementptr %struct.complex, ptr %19, i64 %350
  br label %.lr.ph234

.lr.ph234:                                        ; preds = %.lr.ph234, %.lr.ph234.preheader474.new
  %storemerge198232 = phi i64 [ %storemerge198232.unr, %.lr.ph234.preheader474.new ], [ %418, %.lr.ph234 ]
  %401 = sub nsw i64 %350, %storemerge198232
  %402 = getelementptr %struct.complex, ptr %19, i64 %401
  %403 = getelementptr inbounds %struct.complex, ptr %57, i64 %storemerge198232
  %404 = load <2 x float>, ptr %402, align 4, !tbaa !10
  store <2 x float> %404, ptr %403, align 4, !tbaa !10
  %.neg = xor i64 %storemerge198232, -1
  %405 = getelementptr %struct.complex, ptr %400, i64 %.neg
  %406 = getelementptr %struct.complex, ptr %27, i64 %storemerge198232
  %407 = load <2 x float>, ptr %405, align 4, !tbaa !10
  store <2 x float> %407, ptr %406, align 4, !tbaa !10
  %408 = add nuw i64 %storemerge198232, 2
  %409 = sub nsw i64 %350, %408
  %410 = getelementptr %struct.complex, ptr %19, i64 %409
  %411 = getelementptr inbounds %struct.complex, ptr %57, i64 %408
  %412 = load <2 x float>, ptr %410, align 4, !tbaa !10
  store <2 x float> %412, ptr %411, align 4, !tbaa !10
  %413 = add nuw i64 %storemerge198232, 3
  %414 = sub nsw i64 %350, %413
  %415 = getelementptr %struct.complex, ptr %19, i64 %414
  %416 = getelementptr inbounds %struct.complex, ptr %57, i64 %413
  %417 = load <2 x float>, ptr %415, align 4, !tbaa !10
  store <2 x float> %417, ptr %416, align 4, !tbaa !10
  %418 = add nuw i64 %storemerge198232, 4
  %exitcond274.not.3 = icmp eq i64 %413, %350
  br i1 %exitcond274.not.3, label %..loopexit207_crit_edge, label %.lr.ph234, !llvm.loop !40

..loopexit_crit_edge:                             ; preds = %.lr.ph239.prol.loopexit, %.lr.ph239, %middle.block
  store i64 %350, ptr %33, align 8, !tbaa !5
  br label %.loopexit

..loopexit207_crit_edge:                          ; preds = %.lr.ph234.prol.loopexit, %.lr.ph234, %middle.block338
  store i64 %350, ptr %33, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %383, %..loopexit207_crit_edge, %351, %..loopexit_crit_edge
  %storemerge = phi i64 [ %352, %..loopexit_crit_edge ], [ 1, %351 ], [ %384, %..loopexit207_crit_edge ], [ 1, %383 ]
  store i64 %storemerge, ptr %36, align 8, !tbaa !5
  %419 = load i64, ptr %39, align 8, !tbaa !5
  store i64 %419, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %37, align 8, !tbaa !5
  %.not203241 = icmp slt i64 %419, 1
  br i1 %.not203241, label %._crit_edge245, label %.lr.ph244

.lr.ph244:                                        ; preds = %.loopexit, %449
  %420 = phi float [ %447, %449 ], [ %157, %.loopexit ]
  %421 = phi i64 [ %450, %449 ], [ 1, %.loopexit ]
  %422 = load i64, ptr %48, align 8, !tbaa !5
  %423 = icmp sgt i64 %422, 0
  br i1 %423, label %424, label %428

424:                                              ; preds = %.lr.ph244
  store i64 %421, ptr %33, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.complex, ptr %58, i64 %421
  %426 = load float, ptr %425, align 4, !tbaa !12
  store float %426, ptr %40, align 8, !tbaa !12
  %427 = getelementptr inbounds %struct.complex, ptr %58, i64 %421, i32 1
  br label %435

428:                                              ; preds = %.lr.ph244
  %429 = load i64, ptr %39, align 8, !tbaa !5
  %430 = sub nsw i64 %429, %421
  %431 = add nsw i64 %430, 1
  store i64 %431, ptr %33, align 8, !tbaa !5
  %432 = getelementptr %struct.complex, ptr %22, i64 %430
  %433 = load float, ptr %432, align 4, !tbaa !12
  store float %433, ptr %40, align 8, !tbaa !12
  %434 = getelementptr %struct.complex, ptr %22, i64 %430, i32 1
  br label %435

435:                                              ; preds = %428, %424
  %storemerge284.in = phi ptr [ %434, %428 ], [ %427, %424 ]
  %storemerge284 = load float, ptr %storemerge284.in, align 4, !tbaa !14
  store float %storemerge284, ptr %84, align 4, !tbaa !14
  br i1 %69, label %436, label %438

436:                                              ; preds = %435
  call void @r_cnjg(ptr noundef nonnull %34, ptr noundef nonnull %40) #4
  %437 = load <2 x float>, ptr %34, align 8, !tbaa !10
  store <2 x float> %437, ptr %40, align 8, !tbaa !10
  br label %438

438:                                              ; preds = %436, %435
  %439 = mul nsw i64 %421, %62
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %439
  %440 = add nsw i64 %421, -1
  %441 = load i64, ptr %45, align 8, !tbaa !5
  %442 = mul nsw i64 %440, %441
  %443 = getelementptr %struct.complex, ptr %17, i64 %442
  %444 = call i32 @cmvch_(ptr noundef nonnull @.str.1, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef nonnull %49, ptr noundef %27, ptr noundef nonnull %14, ptr noundef nonnull %40, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %25, ptr noundef %26, ptr noundef %443, ptr noundef %1, ptr noundef nonnull %46, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  %445 = load float, ptr %46, align 4
  %446 = fcmp oge float %420, %445
  %447 = select i1 %446, float %420, float %445
  store float %447, ptr %52, align 4, !tbaa !10
  %448 = load i64, ptr %7, align 8, !tbaa !5
  %.not204 = icmp eq i64 %448, 0
  br i1 %.not204, label %449, label %477

449:                                              ; preds = %438
  %450 = add nuw nsw i64 %421, 1
  store i64 %450, ptr %37, align 8, !tbaa !5
  %451 = load i64, ptr %32, align 8, !tbaa !5
  %.not203.not = icmp slt i64 %421, %451
  br i1 %.not203.not, label %.lr.ph244, label %._crit_edge245, !llvm.loop !41

._crit_edge245:                                   ; preds = %449, %.loopexit
  %452 = phi float [ %157, %.loopexit ], [ %447, %449 ]
  %453 = add nuw nsw i64 %.0168247, 1
  %454 = load i64, ptr %31, align 8, !tbaa !5
  %.not185.not = icmp slt i64 %.0168247, %454
  br i1 %.not185.not, label %.lr.ph249, label %._crit_edge250, !llvm.loop !42

._crit_edge250:                                   ; preds = %._crit_edge245, %155
  %455 = phi float [ %137, %155 ], [ %452, %._crit_edge245 ]
  %456 = add nuw nsw i64 %.0164252, 1
  %457 = load i64, ptr %30, align 8, !tbaa !5
  %.not184.not = icmp slt i64 %.0164252, %457
  br i1 %.not184.not, label %.lr.ph254, label %._crit_edge255, !llvm.loop !43

._crit_edge255:                                   ; preds = %._crit_edge250, %135
  %458 = phi float [ %117, %135 ], [ %455, %._crit_edge250 ]
  %459 = add nuw i64 %.0165257, 1
  %exitcond276.not = icmp eq i64 %.0165257, %116
  br i1 %exitcond276.not, label %.loopexit208, label %.lr.ph259, !llvm.loop !44

.loopexit208:                                     ; preds = %._crit_edge255, %346, %110, %107
  %460 = phi float [ %92, %110 ], [ %92, %107 ], [ %157, %346 ], [ %458, %._crit_edge255 ]
  %461 = add nuw nsw i64 %.0167260, 1
  %exitcond277.not = icmp eq i64 %461, 3
  br i1 %exitcond277.not, label %462, label %91, !llvm.loop !45

462:                                              ; preds = %.loopexit208
  %463 = add nuw i64 %.0166262, 1
  %exitcond278.not = icmp eq i64 %.0166262, %70
  br i1 %exitcond278.not, label %._crit_edge265, label %85, !llvm.loop !46

._crit_edge265:                                   ; preds = %462, %29
  %464 = phi float [ 0.000000e+00, %29 ], [ %460, %462 ]
  %465 = load float, ptr %2, align 4, !tbaa !10
  %466 = fcmp olt float %464, %465
  %467 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %466, label %468, label %472

468:                                              ; preds = %._crit_edge265
  store i64 %467, ptr getelementptr inbounds (i8, ptr @cchk4_.io___293, i64 8), align 8, !tbaa !28
  %469 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___293) #4
  %470 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %471 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  br label %497

472:                                              ; preds = %._crit_edge265
  store i64 %467, ptr getelementptr inbounds (i8, ptr @cchk4_.io___294, i64 8), align 8, !tbaa !28
  %473 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___294) #4
  %474 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %475 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %476 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %52, i64 noundef 4) #4
  br label %497

477:                                              ; preds = %438
  %478 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %478, ptr getelementptr inbounds (i8, ptr @cchk4_.io___295, i64 8), align 8, !tbaa !28
  %479 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___295) #4
  %480 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %481 = call i64 @e_wsfe() #4
  br label %482

482:                                              ; preds = %477, %345, %300
  %483 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %483, ptr getelementptr inbounds (i8, ptr @cchk4_.io___296, i64 8), align 8, !tbaa !28
  %484 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___296) #4
  %485 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %486 = call i64 @e_wsfe() #4
  %487 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %487, ptr getelementptr inbounds (i8, ptr @cchk4_.io___297, i64 8), align 8, !tbaa !28
  %488 = call i64 @s_wsfe(ptr noundef nonnull @cchk4_.io___297) #4
  %489 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %490 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %491 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %492 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #4
  %493 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %49, i64 noundef 4) #4
  %494 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %495 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %496 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  br label %497

497:                                              ; preds = %468, %472, %482
  %498 = call i64 @e_wsfe() #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #4
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  ret i32 0
}

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @cmake_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare i64 @f_rew(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local i64 @lceres_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare i32 @f2c_cgerc(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @f2c_cgeru(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @r_cnjg(ptr noundef, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #3

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = !{!13, !11, i64 0}
!13 = !{!"", !11, i64 0, !11, i64 4}
!14 = !{!13, !11, i64 4}
!15 = distinct !{!15, !16, !17, !18}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!"llvm.loop.isvectorized", i32 1}
!18 = !{!"llvm.loop.unroll.runtime.disable"}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.unroll.disable"}
!21 = distinct !{!21, !16, !17}
!22 = distinct !{!22, !16, !17, !18}
!23 = distinct !{!23, !20}
!24 = distinct !{!24, !16, !17}
!25 = distinct !{!25, !16, !17, !18}
!26 = distinct !{!26, !20}
!27 = distinct !{!27, !16, !17}
!28 = !{!29, !6, i64 8}
!29 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !30, i64 24, !6, i64 32}
!30 = !{!"any pointer", !7, i64 0}
!31 = !{!32, !6, i64 0}
!32 = !{!"", !6, i64 0, !6, i64 8}
!33 = !{!32, !6, i64 8}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16, !17, !18}
!36 = distinct !{!36, !20}
!37 = distinct !{!37, !16, !17}
!38 = distinct !{!38, !16, !17, !18}
!39 = distinct !{!39, !20}
!40 = distinct !{!40, !16, !17}
!41 = distinct !{!41, !16}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,VectorCombinePass