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

; 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 = 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_b1 = external hidden global %struct.complex, align 4
@c_true = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@cchk5_.icht = external hidden global [2 x i8], align 1
@cchk5_.ichu = external hidden global [2 x i8], align 1
@cchk5_.io___334 = external hidden global %struct.cilist, align 8
@cchk5_.io___335 = external hidden global %struct.cilist, align 8
@cchk5_.io___336 = external hidden global %struct.cilist, align 8
@cchk5_.io___339 = external hidden global %struct.cilist, align 8
@cchk5_.io___347 = external hidden global %struct.cilist, align 8
@cchk5_.io___348 = external hidden global %struct.cilist, align 8
@cchk5_.io___349 = external hidden global %struct.cilist, align 8
@cchk5_.io___350 = external hidden global %struct.cilist, align 8
@cchk5_.io___351 = external hidden global %struct.cilist, align 8
@cchk5_.io___352 = 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

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

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

159:                                              ; preds = %1366, %27
  %160 = load i64, ptr %79, align 8, !tbaa !9
  %161 = load i64, ptr %57, align 8, !tbaa !9
  %162 = icmp sle i64 %160, %161
  br i1 %162, label %163, label %1369

163:                                              ; preds = %159
  %164 = load ptr, ptr %37, align 8, !tbaa !5
  %165 = load i64, ptr %79, align 8, !tbaa !9
  %166 = getelementptr inbounds i64, ptr %164, i64 %165
  %167 = load i64, ptr %166, align 8, !tbaa !9
  store i64 %167, ptr %71, align 8, !tbaa !9
  %168 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %168, ptr %89, align 8, !tbaa !9
  %169 = load i64, ptr %89, align 8, !tbaa !9
  %170 = load ptr, ptr %42, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp slt i64 %169, %171
  br i1 %172, label %173, label %176

173:                                              ; preds = %163
  %174 = load i64, ptr %89, align 8, !tbaa !9
  %175 = add nsw i64 %174, 1
  store i64 %175, ptr %89, align 8, !tbaa !9
  br label %176

176:                                              ; preds = %173, %163
  %177 = load i64, ptr %89, align 8, !tbaa !9
  %178 = load ptr, ptr %42, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = icmp sgt i64 %177, %179
  br i1 %180, label %181, label %182

181:                                              ; preds = %176
  br label %1365

182:                                              ; preds = %176
  %183 = load i64, ptr %89, align 8, !tbaa !9
  %184 = load i64, ptr %71, align 8, !tbaa !9
  %185 = mul nsw i64 %183, %184
  store i64 %185, ptr %87, align 8, !tbaa !9
  %186 = load ptr, ptr %36, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  store i64 %187, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %1361, %182
  %189 = load i64, ptr %78, align 8, !tbaa !9
  %190 = load i64, ptr %58, align 8, !tbaa !9
  %191 = icmp sle i64 %189, %190
  br i1 %191, label %192, label %1364

192:                                              ; preds = %188
  %193 = load ptr, ptr %37, align 8, !tbaa !5
  %194 = load i64, ptr %78, align 8, !tbaa !9
  %195 = getelementptr inbounds i64, ptr %193, i64 %194
  %196 = load i64, ptr %195, align 8, !tbaa !9
  store i64 %196, ptr %70, align 8, !tbaa !9
  store i64 1, ptr %91, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %1357, %192
  %198 = load i64, ptr %91, align 8, !tbaa !9
  %199 = icmp sle i64 %198, 2
  br i1 %199, label %200, label %1360

200:                                              ; preds = %197
  %201 = load i64, ptr %91, align 8, !tbaa !9
  %202 = sub nsw i64 %201, 1
  %203 = getelementptr inbounds [2 x i8], ptr @cchk5_.icht, i64 0, i64 %202
  %204 = load i8, ptr %203, align 1, !tbaa !13
  %205 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 %204, ptr %205, align 1, !tbaa !13
  %206 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %207 = load i8, ptr %206, align 1, !tbaa !13
  %208 = zext i8 %207 to i32
  %209 = icmp eq i32 %208, 67
  %210 = zext i1 %209 to i32
  %211 = sext i32 %210 to i64
  store i64 %211, ptr %102, align 8, !tbaa !9
  %212 = load i64, ptr %102, align 8, !tbaa !9
  %213 = icmp ne i64 %212, 0
  br i1 %213, label %214, label %219

214:                                              ; preds = %200
  %215 = load i64, ptr %100, align 8, !tbaa !9
  %216 = icmp ne i64 %215, 0
  br i1 %216, label %219, label %217

217:                                              ; preds = %214
  %218 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 84, ptr %218, align 1, !tbaa !13
  br label %219

219:                                              ; preds = %217, %214, %200
  %220 = load i64, ptr %102, align 8, !tbaa !9
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %219
  %223 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %223, ptr %75, align 8, !tbaa !9
  %224 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %224, ptr %76, align 8, !tbaa !9
  br label %228

225:                                              ; preds = %219
  %226 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %226, ptr %75, align 8, !tbaa !9
  %227 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %227, ptr %76, align 8, !tbaa !9
  br label %228

228:                                              ; preds = %225, %222
  %229 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %229, ptr %86, align 8, !tbaa !9
  %230 = load i64, ptr %86, align 8, !tbaa !9
  %231 = load ptr, ptr %42, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = icmp slt i64 %230, %232
  br i1 %233, label %234, label %237

234:                                              ; preds = %228
  %235 = load i64, ptr %86, align 8, !tbaa !9
  %236 = add nsw i64 %235, 1
  store i64 %236, ptr %86, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %234, %228
  %238 = load i64, ptr %86, align 8, !tbaa !9
  %239 = load ptr, ptr %42, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = icmp sgt i64 %238, %240
  br i1 %241, label %242, label %243

242:                                              ; preds = %237
  br label %1356

243:                                              ; preds = %237
  %244 = load i64, ptr %86, align 8, !tbaa !9
  %245 = load i64, ptr %76, align 8, !tbaa !9
  %246 = mul nsw i64 %244, %245
  store i64 %246, ptr %84, align 8, !tbaa !9
  %247 = load i64, ptr %102, align 8, !tbaa !9
  %248 = icmp ne i64 %247, 0
  br i1 %248, label %249, label %258

249:                                              ; preds = %243
  %250 = load ptr, ptr %42, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = shl i64 %251, 1
  store i64 %252, ptr %59, align 8, !tbaa !9
  %253 = load ptr, ptr %43, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.complex, ptr %253, i64 1
  %255 = load ptr, ptr %44, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.complex, ptr %255, i64 1
  %257 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %75, ptr noundef %76, ptr noundef %254, ptr noundef %59, ptr noundef %256, ptr noundef %86, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %265

258:                                              ; preds = %243
  %259 = load ptr, ptr %43, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.complex, ptr %259, i64 1
  %261 = load ptr, ptr %42, align 8, !tbaa !5
  %262 = load ptr, ptr %44, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.complex, ptr %262, i64 1
  %264 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %75, ptr noundef %76, ptr noundef %260, ptr noundef %261, ptr noundef %263, ptr noundef %86, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %265

265:                                              ; preds = %258, %249
  %266 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %266, ptr %88, align 8, !tbaa !9
  %267 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %267, ptr %85, align 8, !tbaa !9
  %268 = load i64, ptr %102, align 8, !tbaa !9
  %269 = icmp ne i64 %268, 0
  br i1 %269, label %270, label %281

270:                                              ; preds = %265
  %271 = load ptr, ptr %42, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = shl i64 %272, 1
  store i64 %273, ptr %59, align 8, !tbaa !9
  %274 = load ptr, ptr %43, align 8, !tbaa !5
  %275 = load i64, ptr %70, align 8, !tbaa !9
  %276 = add nsw i64 %275, 1
  %277 = getelementptr inbounds %struct.complex, ptr %274, i64 %276
  %278 = load ptr, ptr %46, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.complex, ptr %278, i64 1
  %280 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %75, ptr noundef %76, ptr noundef %277, ptr noundef %59, ptr noundef %279, ptr noundef %88, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %293

281:                                              ; preds = %265
  %282 = load ptr, ptr %43, align 8, !tbaa !5
  %283 = load i64, ptr %70, align 8, !tbaa !9
  %284 = load ptr, ptr %42, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = mul nsw i64 %283, %285
  %287 = add nsw i64 %286, 1
  %288 = getelementptr inbounds %struct.complex, ptr %282, i64 %287
  %289 = load ptr, ptr %42, align 8, !tbaa !5
  %290 = load ptr, ptr %46, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.complex, ptr %290, i64 1
  %292 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %75, ptr noundef %76, ptr noundef %288, ptr noundef %289, ptr noundef %291, ptr noundef %88, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %293

293:                                              ; preds = %281, %270
  store i64 1, ptr %92, align 8, !tbaa !9
  br label %294

294:                                              ; preds = %1352, %293
  %295 = load i64, ptr %92, align 8, !tbaa !9
  %296 = icmp sle i64 %295, 2
  br i1 %296, label %297, label %1355

297:                                              ; preds = %294
  %298 = load i64, ptr %92, align 8, !tbaa !9
  %299 = sub nsw i64 %298, 1
  %300 = getelementptr inbounds [2 x i8], ptr @cchk5_.ichu, i64 0, i64 %299
  %301 = load i8, ptr %300, align 1, !tbaa !13
  %302 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  store i8 %301, ptr %302, align 1, !tbaa !13
  %303 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %304 = load i8, ptr %303, align 1, !tbaa !13
  %305 = zext i8 %304 to i32
  %306 = icmp eq i32 %305, 85
  %307 = zext i1 %306 to i32
  %308 = sext i32 %307 to i64
  store i64 %308, ptr %112, align 8, !tbaa !9
  %309 = load ptr, ptr %38, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  store i64 %310, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %1348, %297
  %312 = load i64, ptr %72, align 8, !tbaa !9
  %313 = load i64, ptr %59, align 8, !tbaa !9
  %314 = icmp sle i64 %312, %313
  br i1 %314, label %315, label %1351

315:                                              ; preds = %311
  %316 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %316, ptr %60, align 8, !tbaa !9
  %317 = load ptr, ptr %39, align 8, !tbaa !5
  %318 = load i64, ptr %60, align 8, !tbaa !9
  %319 = getelementptr inbounds %struct.complex, ptr %317, i64 %318
  %320 = getelementptr inbounds %struct.complex, ptr %319, i32 0, i32 0
  %321 = load float, ptr %320, align 4, !tbaa !14
  %322 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  store float %321, ptr %322, align 4, !tbaa !14
  %323 = load ptr, ptr %39, align 8, !tbaa !5
  %324 = load i64, ptr %60, align 8, !tbaa !9
  %325 = getelementptr inbounds %struct.complex, ptr %323, i64 %324
  %326 = getelementptr inbounds %struct.complex, ptr %325, i32 0, i32 1
  %327 = load float, ptr %326, align 4, !tbaa !16
  %328 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  store float %327, ptr %328, align 4, !tbaa !16
  %329 = load ptr, ptr %40, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  store i64 %330, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %331

331:                                              ; preds = %1344, %315
  %332 = load i64, ptr %73, align 8, !tbaa !9
  %333 = load i64, ptr %60, align 8, !tbaa !9
  %334 = icmp sle i64 %332, %333
  br i1 %334, label %335, label %1347

335:                                              ; preds = %331
  %336 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %336, ptr %61, align 8, !tbaa !9
  %337 = load ptr, ptr %41, align 8, !tbaa !5
  %338 = load i64, ptr %61, align 8, !tbaa !9
  %339 = getelementptr inbounds %struct.complex, ptr %337, i64 %338
  %340 = getelementptr inbounds %struct.complex, ptr %339, i32 0, i32 0
  %341 = load float, ptr %340, align 4, !tbaa !14
  %342 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  store float %341, ptr %342, align 4, !tbaa !14
  %343 = load ptr, ptr %41, align 8, !tbaa !5
  %344 = load i64, ptr %61, align 8, !tbaa !9
  %345 = getelementptr inbounds %struct.complex, ptr %343, i64 %344
  %346 = getelementptr inbounds %struct.complex, ptr %345, i32 0, i32 1
  %347 = load float, ptr %346, align 4, !tbaa !16
  %348 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  store float %347, ptr %348, align 4, !tbaa !16
  %349 = load i64, ptr %100, align 8, !tbaa !9
  %350 = icmp ne i64 %349, 0
  br i1 %350, label %351, label %363

351:                                              ; preds = %335
  %352 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  %353 = load float, ptr %352, align 4, !tbaa !14
  store float %353, ptr %106, align 4, !tbaa !11
  %354 = load float, ptr %106, align 4, !tbaa !11
  %355 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %354, ptr %355, align 4, !tbaa !14
  %356 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float 0.000000e+00, ptr %356, align 4, !tbaa !16
  %357 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %358 = load float, ptr %357, align 4, !tbaa !14
  %359 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  store float %358, ptr %359, align 4, !tbaa !14
  %360 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %361 = load float, ptr %360, align 4, !tbaa !16
  %362 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  store float %361, ptr %362, align 4, !tbaa !16
  br label %363

363:                                              ; preds = %351, %335
  %364 = load i64, ptr %71, align 8, !tbaa !9
  %365 = icmp sle i64 %364, 0
  %366 = zext i1 %365 to i32
  %367 = sext i32 %366 to i64
  store i64 %367, ptr %103, align 8, !tbaa !9
  %368 = load i64, ptr %100, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %393

370:                                              ; preds = %363
  %371 = load i64, ptr %103, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %389, label %373

373:                                              ; preds = %370
  %374 = load i64, ptr %70, align 8, !tbaa !9
  %375 = icmp sle i64 %374, 0
  br i1 %375, label %384, label %376

376:                                              ; preds = %373
  %377 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %378 = load float, ptr %377, align 4, !tbaa !14
  %379 = fcmp oeq float %378, 0.000000e+00
  br i1 %379, label %380, label %387

380:                                              ; preds = %376
  %381 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %382 = load float, ptr %381, align 4, !tbaa !16
  %383 = fcmp oeq float %382, 0.000000e+00
  br i1 %383, label %384, label %387

384:                                              ; preds = %380, %373
  %385 = load float, ptr %106, align 4, !tbaa !11
  %386 = fcmp oeq float %385, 1.000000e+00
  br label %387

387:                                              ; preds = %384, %380, %376
  %388 = phi i1 [ false, %380 ], [ false, %376 ], [ %386, %384 ]
  br label %389

389:                                              ; preds = %387, %370
  %390 = phi i1 [ true, %370 ], [ %388, %387 ]
  %391 = zext i1 %390 to i32
  %392 = sext i32 %391 to i64
  store i64 %392, ptr %103, align 8, !tbaa !9
  br label %393

393:                                              ; preds = %389, %363
  %394 = load ptr, ptr %28, align 8, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %394, i64 1
  %396 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %397 = load ptr, ptr %48, align 8, !tbaa !5
  %398 = load i64, ptr %56, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.complex, ptr %397, i64 %398
  %400 = load ptr, ptr %42, align 8, !tbaa !5
  %401 = load ptr, ptr %49, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.complex, ptr %401, i64 1
  %403 = call i32 @cmake_(ptr noundef %395, ptr noundef %396, ptr noundef @.str.5, ptr noundef %71, ptr noundef %71, ptr noundef %399, ptr noundef %400, ptr noundef %402, ptr noundef %89, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %404 = load i64, ptr %77, align 8, !tbaa !9
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %77, align 8, !tbaa !9
  %406 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %407 = load i8, ptr %406, align 1, !tbaa !13
  %408 = getelementptr inbounds [1 x i8], ptr %113, i64 0, i64 0
  store i8 %407, ptr %408, align 1, !tbaa !13
  %409 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %410 = load i8, ptr %409, align 1, !tbaa !13
  %411 = getelementptr inbounds [1 x i8], ptr %115, i64 0, i64 0
  store i8 %410, ptr %411, align 1, !tbaa !13
  %412 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %412, ptr %83, align 8, !tbaa !9
  %413 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %413, ptr %82, align 8, !tbaa !9
  %414 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %415 = load float, ptr %414, align 4, !tbaa !14
  %416 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %415, ptr %416, align 4, !tbaa !14
  %417 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %418 = load float, ptr %417, align 4, !tbaa !16
  %419 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %418, ptr %419, align 4, !tbaa !16
  %420 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %420, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %421

421:                                              ; preds = %446, %393
  %422 = load i64, ptr %68, align 8, !tbaa !9
  %423 = load i64, ptr %61, align 8, !tbaa !9
  %424 = icmp sle i64 %422, %423
  br i1 %424, label %425, label %449

425:                                              ; preds = %421
  %426 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %426, ptr %62, align 8, !tbaa !9
  %427 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %427, ptr %63, align 8, !tbaa !9
  %428 = load ptr, ptr %44, align 8, !tbaa !5
  %429 = load i64, ptr %63, align 8, !tbaa !9
  %430 = getelementptr inbounds %struct.complex, ptr %428, i64 %429
  %431 = getelementptr inbounds %struct.complex, ptr %430, i32 0, i32 0
  %432 = load float, ptr %431, align 4, !tbaa !14
  %433 = load ptr, ptr %45, align 8, !tbaa !5
  %434 = load i64, ptr %62, align 8, !tbaa !9
  %435 = getelementptr inbounds %struct.complex, ptr %433, i64 %434
  %436 = getelementptr inbounds %struct.complex, ptr %435, i32 0, i32 0
  store float %432, ptr %436, align 4, !tbaa !14
  %437 = load ptr, ptr %44, align 8, !tbaa !5
  %438 = load i64, ptr %63, align 8, !tbaa !9
  %439 = getelementptr inbounds %struct.complex, ptr %437, i64 %438
  %440 = getelementptr inbounds %struct.complex, ptr %439, i32 0, i32 1
  %441 = load float, ptr %440, align 4, !tbaa !16
  %442 = load ptr, ptr %45, align 8, !tbaa !5
  %443 = load i64, ptr %62, align 8, !tbaa !9
  %444 = getelementptr inbounds %struct.complex, ptr %442, i64 %443
  %445 = getelementptr inbounds %struct.complex, ptr %444, i32 0, i32 1
  store float %441, ptr %445, align 4, !tbaa !16
  br label %446

446:                                              ; preds = %425
  %447 = load i64, ptr %68, align 8, !tbaa !9
  %448 = add nsw i64 %447, 1
  store i64 %448, ptr %68, align 8, !tbaa !9
  br label %421, !llvm.loop !17

449:                                              ; preds = %421
  %450 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %450, ptr %96, align 8, !tbaa !9
  %451 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %451, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %452

452:                                              ; preds = %477, %449
  %453 = load i64, ptr %68, align 8, !tbaa !9
  %454 = load i64, ptr %61, align 8, !tbaa !9
  %455 = icmp sle i64 %453, %454
  br i1 %455, label %456, label %480

456:                                              ; preds = %452
  %457 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %457, ptr %62, align 8, !tbaa !9
  %458 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %458, ptr %63, align 8, !tbaa !9
  %459 = load ptr, ptr %46, align 8, !tbaa !5
  %460 = load i64, ptr %63, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct.complex, ptr %459, i64 %460
  %462 = getelementptr inbounds %struct.complex, ptr %461, i32 0, i32 0
  %463 = load float, ptr %462, align 4, !tbaa !14
  %464 = load ptr, ptr %47, align 8, !tbaa !5
  %465 = load i64, ptr %62, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.complex, ptr %464, i64 %465
  %467 = getelementptr inbounds %struct.complex, ptr %466, i32 0, i32 0
  store float %463, ptr %467, align 4, !tbaa !14
  %468 = load ptr, ptr %46, align 8, !tbaa !5
  %469 = load i64, ptr %63, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.complex, ptr %468, i64 %469
  %471 = getelementptr inbounds %struct.complex, ptr %470, i32 0, i32 1
  %472 = load float, ptr %471, align 4, !tbaa !16
  %473 = load ptr, ptr %47, align 8, !tbaa !5
  %474 = load i64, ptr %62, align 8, !tbaa !9
  %475 = getelementptr inbounds %struct.complex, ptr %473, i64 %474
  %476 = getelementptr inbounds %struct.complex, ptr %475, i32 0, i32 1
  store float %472, ptr %476, align 4, !tbaa !16
  br label %477

477:                                              ; preds = %456
  %478 = load i64, ptr %68, align 8, !tbaa !9
  %479 = add nsw i64 %478, 1
  store i64 %479, ptr %68, align 8, !tbaa !9
  br label %452, !llvm.loop !19

480:                                              ; preds = %452
  %481 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %481, ptr %97, align 8, !tbaa !9
  %482 = load i64, ptr %100, align 8, !tbaa !9
  %483 = icmp ne i64 %482, 0
  br i1 %483, label %484, label %486

484:                                              ; preds = %480
  %485 = load float, ptr %106, align 4, !tbaa !11
  store float %485, ptr %109, align 4, !tbaa !11
  br label %493

486:                                              ; preds = %480
  %487 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  %488 = load float, ptr %487, align 4, !tbaa !14
  %489 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  store float %488, ptr %489, align 4, !tbaa !14
  %490 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  %491 = load float, ptr %490, align 4, !tbaa !16
  %492 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 1
  store float %491, ptr %492, align 4, !tbaa !16
  br label %493

493:                                              ; preds = %486, %484
  %494 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %494, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %520, %493
  %496 = load i64, ptr %68, align 8, !tbaa !9
  %497 = load i64, ptr %61, align 8, !tbaa !9
  %498 = icmp sle i64 %496, %497
  br i1 %498, label %499, label %523

499:                                              ; preds = %495
  %500 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %500, ptr %62, align 8, !tbaa !9
  %501 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %501, ptr %63, align 8, !tbaa !9
  %502 = load ptr, ptr %49, align 8, !tbaa !5
  %503 = load i64, ptr %63, align 8, !tbaa !9
  %504 = getelementptr inbounds %struct.complex, ptr %502, i64 %503
  %505 = getelementptr inbounds %struct.complex, ptr %504, i32 0, i32 0
  %506 = load float, ptr %505, align 4, !tbaa !14
  %507 = load ptr, ptr %50, align 8, !tbaa !5
  %508 = load i64, ptr %62, align 8, !tbaa !9
  %509 = getelementptr inbounds %struct.complex, ptr %507, i64 %508
  %510 = getelementptr inbounds %struct.complex, ptr %509, i32 0, i32 0
  store float %506, ptr %510, align 4, !tbaa !14
  %511 = load ptr, ptr %49, align 8, !tbaa !5
  %512 = load i64, ptr %63, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.complex, ptr %511, i64 %512
  %514 = getelementptr inbounds %struct.complex, ptr %513, i32 0, i32 1
  %515 = load float, ptr %514, align 4, !tbaa !16
  %516 = load ptr, ptr %50, align 8, !tbaa !5
  %517 = load i64, ptr %62, align 8, !tbaa !9
  %518 = getelementptr inbounds %struct.complex, ptr %516, i64 %517
  %519 = getelementptr inbounds %struct.complex, ptr %518, i32 0, i32 1
  store float %515, ptr %519, align 4, !tbaa !16
  br label %520

520:                                              ; preds = %499
  %521 = load i64, ptr %68, align 8, !tbaa !9
  %522 = add nsw i64 %521, 1
  store i64 %522, ptr %68, align 8, !tbaa !9
  br label %495, !llvm.loop !20

523:                                              ; preds = %495
  %524 = load i64, ptr %89, align 8, !tbaa !9
  store i64 %524, ptr %98, align 8, !tbaa !9
  %525 = load i64, ptr %100, align 8, !tbaa !9
  %526 = icmp ne i64 %525, 0
  br i1 %526, label %527, label %570

527:                                              ; preds = %523
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = load i64, ptr %528, align 8, !tbaa !9
  %530 = icmp ne i64 %529, 0
  br i1 %530, label %531, label %550

531:                                              ; preds = %527
  %532 = load ptr, ptr %32, align 8, !tbaa !5
  %533 = load i64, ptr %532, align 8, !tbaa !9
  store i64 %533, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___334, i32 0, i32 1), align 8, !tbaa !21
  %534 = call i64 @s_wsfe(ptr noundef @cchk5_.io___334)
  %535 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %536 = load ptr, ptr %28, align 8, !tbaa !5
  %537 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %536, i64 noundef 6)
  %538 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %539 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %538, i64 noundef 1)
  %540 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %541 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %540, i64 noundef 1)
  %542 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %543 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %544 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 4)
  %545 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %546 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %547 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 4)
  %548 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %549 = call i64 @e_wsfe()
  br label %550

550:                                              ; preds = %531, %527
  %551 = load ptr, ptr %34, align 8, !tbaa !5
  %552 = load i64, ptr %551, align 8, !tbaa !9
  %553 = icmp ne i64 %552, 0
  br i1 %553, label %554, label %560

554:                                              ; preds = %550
  %555 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 0
  store i64 0, ptr %555, align 8, !tbaa !23
  %556 = load ptr, ptr %32, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 1
  store i64 %557, ptr %558, align 8, !tbaa !25
  %559 = call i64 @f_rew(ptr noundef %67)
  br label %560

560:                                              ; preds = %554, %550
  %561 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %562 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %563 = load ptr, ptr %44, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.complex, ptr %563, i64 1
  %565 = load ptr, ptr %46, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.complex, ptr %565, i64 1
  %567 = load ptr, ptr %49, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.complex, ptr %567, i64 1
  %569 = call i32 @f2c_cher2k(ptr noundef %561, ptr noundef %562, ptr noundef %71, ptr noundef %70, ptr noundef %105, ptr noundef %564, ptr noundef %86, ptr noundef %566, ptr noundef %88, ptr noundef %106, ptr noundef %568, ptr noundef %89)
  br label %613

570:                                              ; preds = %523
  %571 = load ptr, ptr %33, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = icmp ne i64 %572, 0
  br i1 %573, label %574, label %593

574:                                              ; preds = %570
  %575 = load ptr, ptr %32, align 8, !tbaa !5
  %576 = load i64, ptr %575, align 8, !tbaa !9
  store i64 %576, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___335, i32 0, i32 1), align 8, !tbaa !21
  %577 = call i64 @s_wsfe(ptr noundef @cchk5_.io___335)
  %578 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %579 = load ptr, ptr %28, align 8, !tbaa !5
  %580 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %579, i64 noundef 6)
  %581 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %582 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %581, i64 noundef 1)
  %583 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %584 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %583, i64 noundef 1)
  %585 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %586 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %587 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 4)
  %588 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %589 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %590 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %95, i64 noundef 4)
  %591 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %592 = call i64 @e_wsfe()
  br label %593

593:                                              ; preds = %574, %570
  %594 = load ptr, ptr %34, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = icmp ne i64 %595, 0
  br i1 %596, label %597, label %603

597:                                              ; preds = %593
  %598 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 0
  store i64 0, ptr %598, align 8, !tbaa !23
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  %600 = load i64, ptr %599, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 1
  store i64 %600, ptr %601, align 8, !tbaa !25
  %602 = call i64 @f_rew(ptr noundef %67)
  br label %603

603:                                              ; preds = %597, %593
  %604 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %605 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %606 = load ptr, ptr %44, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.complex, ptr %606, i64 1
  %608 = load ptr, ptr %46, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.complex, ptr %608, i64 1
  %610 = load ptr, ptr %49, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.complex, ptr %610, i64 1
  %612 = call i32 @f2c_csyr2k(ptr noundef %604, ptr noundef %605, ptr noundef %71, ptr noundef %70, ptr noundef %105, ptr noundef %607, ptr noundef %86, ptr noundef %609, ptr noundef %88, ptr noundef %95, ptr noundef %611, ptr noundef %89)
  br label %613

613:                                              ; preds = %603, %560
  %614 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %615 = icmp ne i64 %614, 0
  br i1 %615, label %622, label %616

616:                                              ; preds = %613
  %617 = load ptr, ptr %31, align 8, !tbaa !5
  %618 = load i64, ptr %617, align 8, !tbaa !9
  store i64 %618, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___336, i32 0, i32 1), align 8, !tbaa !21
  %619 = call i64 @s_wsfe(ptr noundef @cchk5_.io___336)
  %620 = call i64 @e_wsfe()
  %621 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %621, align 8, !tbaa !9
  br label %1402

622:                                              ; preds = %613
  %623 = getelementptr inbounds [1 x i8], ptr %113, i64 0, i64 0
  %624 = load i8, ptr %623, align 1, !tbaa !13
  %625 = zext i8 %624 to i32
  %626 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %627 = load i8, ptr %626, align 1, !tbaa !13
  %628 = zext i8 %627 to i32
  %629 = icmp eq i32 %625, %628
  %630 = zext i1 %629 to i32
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 0
  store i64 %631, ptr %632, align 16, !tbaa !9
  %633 = getelementptr inbounds [1 x i8], ptr %115, i64 0, i64 0
  %634 = load i8, ptr %633, align 1, !tbaa !13
  %635 = zext i8 %634 to i32
  %636 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %637 = load i8, ptr %636, align 1, !tbaa !13
  %638 = zext i8 %637 to i32
  %639 = icmp eq i32 %635, %638
  %640 = zext i1 %639 to i32
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 1
  store i64 %641, ptr %642, align 8, !tbaa !9
  %643 = load i64, ptr %83, align 8, !tbaa !9
  %644 = load i64, ptr %71, align 8, !tbaa !9
  %645 = icmp eq i64 %643, %644
  %646 = zext i1 %645 to i32
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 2
  store i64 %647, ptr %648, align 16, !tbaa !9
  %649 = load i64, ptr %82, align 8, !tbaa !9
  %650 = load i64, ptr %70, 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 %107, i64 0, i64 3
  store i64 %653, ptr %654, align 8, !tbaa !9
  %655 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %656 = load float, ptr %655, align 4, !tbaa !14
  %657 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %658 = load float, ptr %657, align 4, !tbaa !14
  %659 = fcmp oeq float %656, %658
  br i1 %659, label %660, label %666

660:                                              ; preds = %622
  %661 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %662 = load float, ptr %661, align 4, !tbaa !16
  %663 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %664 = load float, ptr %663, align 4, !tbaa !16
  %665 = fcmp oeq float %662, %664
  br label %666

666:                                              ; preds = %660, %622
  %667 = phi i1 [ false, %622 ], [ %665, %660 ]
  %668 = zext i1 %667 to i32
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 4
  store i64 %669, ptr %670, align 16, !tbaa !9
  %671 = load ptr, ptr %45, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.complex, ptr %671, i64 1
  %673 = load ptr, ptr %44, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.complex, ptr %673, i64 1
  %675 = call i64 @lce_(ptr noundef %672, ptr noundef %674, ptr noundef %84)
  %676 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 5
  store i64 %675, ptr %676, align 8, !tbaa !9
  %677 = load i64, ptr %96, align 8, !tbaa !9
  %678 = load i64, ptr %86, align 8, !tbaa !9
  %679 = icmp eq i64 %677, %678
  %680 = zext i1 %679 to i32
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 6
  store i64 %681, ptr %682, align 16, !tbaa !9
  %683 = load ptr, ptr %47, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.complex, ptr %683, i64 1
  %685 = load ptr, ptr %46, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.complex, ptr %685, i64 1
  %687 = call i64 @lce_(ptr noundef %684, ptr noundef %686, ptr noundef %85)
  %688 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %687, ptr %688, align 8, !tbaa !9
  %689 = load i64, ptr %97, align 8, !tbaa !9
  %690 = load i64, ptr %88, align 8, !tbaa !9
  %691 = icmp eq i64 %689, %690
  %692 = zext i1 %691 to i32
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %693, ptr %694, align 16, !tbaa !9
  %695 = load i64, ptr %100, align 8, !tbaa !9
  %696 = icmp ne i64 %695, 0
  br i1 %696, label %697, label %704

697:                                              ; preds = %666
  %698 = load float, ptr %109, align 4, !tbaa !11
  %699 = load float, ptr %106, align 4, !tbaa !11
  %700 = fcmp oeq float %698, %699
  %701 = zext i1 %700 to i32
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %702, ptr %703, align 8, !tbaa !9
  br label %721

704:                                              ; preds = %666
  %705 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  %706 = load float, ptr %705, align 4, !tbaa !14
  %707 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  %708 = load float, ptr %707, align 4, !tbaa !14
  %709 = fcmp oeq float %706, %708
  br i1 %709, label %710, label %716

710:                                              ; preds = %704
  %711 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 1
  %712 = load float, ptr %711, align 4, !tbaa !16
  %713 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  %714 = load float, ptr %713, align 4, !tbaa !16
  %715 = fcmp oeq float %712, %714
  br label %716

716:                                              ; preds = %710, %704
  %717 = phi i1 [ false, %704 ], [ %715, %710 ]
  %718 = zext i1 %717 to i32
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %719, ptr %720, align 8, !tbaa !9
  br label %721

721:                                              ; preds = %716, %697
  %722 = load i64, ptr %103, align 8, !tbaa !9
  %723 = icmp ne i64 %722, 0
  br i1 %723, label %724, label %731

724:                                              ; preds = %721
  %725 = load ptr, ptr %50, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.complex, ptr %725, i64 1
  %727 = load ptr, ptr %49, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.complex, ptr %727, i64 1
  %729 = call i64 @lce_(ptr noundef %726, ptr noundef %728, ptr noundef %87)
  %730 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 10
  store i64 %729, ptr %730, align 16, !tbaa !9
  br label %739

731:                                              ; preds = %721
  %732 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %733 = load ptr, ptr %50, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.complex, ptr %733, i64 1
  %735 = load ptr, ptr %49, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.complex, ptr %735, i64 1
  %737 = call i64 @lceres_(ptr noundef @.str.6, ptr noundef %732, ptr noundef %71, ptr noundef %71, ptr noundef %734, ptr noundef %736, ptr noundef %89, i64 noundef 2, i64 noundef 1)
  %738 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 10
  store i64 %737, ptr %738, align 16, !tbaa !9
  br label %739

739:                                              ; preds = %731, %724
  %740 = load i64, ptr %98, align 8, !tbaa !9
  %741 = load i64, ptr %89, align 8, !tbaa !9
  %742 = icmp eq i64 %740, %741
  %743 = zext i1 %742 to i32
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 11
  store i64 %744, ptr %745, align 8, !tbaa !9
  store i64 1, ptr %99, align 8, !tbaa !9
  %746 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %746, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %747

747:                                              ; preds = %776, %739
  %748 = load i64, ptr %68, align 8, !tbaa !9
  %749 = load i64, ptr %61, align 8, !tbaa !9
  %750 = icmp sle i64 %748, %749
  br i1 %750, label %751, label %779

751:                                              ; preds = %747
  %752 = load i64, ptr %99, align 8, !tbaa !9
  %753 = icmp ne i64 %752, 0
  br i1 %753, label %754, label %760

754:                                              ; preds = %751
  %755 = load i64, ptr %68, align 8, !tbaa !9
  %756 = sub nsw i64 %755, 1
  %757 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %756
  %758 = load i64, ptr %757, align 8, !tbaa !9
  %759 = icmp ne i64 %758, 0
  br label %760

760:                                              ; preds = %754, %751
  %761 = phi i1 [ false, %751 ], [ %759, %754 ]
  %762 = zext i1 %761 to i32
  %763 = sext i32 %762 to i64
  store i64 %763, ptr %99, align 8, !tbaa !9
  %764 = load i64, ptr %68, align 8, !tbaa !9
  %765 = sub nsw i64 %764, 1
  %766 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %765
  %767 = load i64, ptr %766, align 8, !tbaa !9
  %768 = icmp ne i64 %767, 0
  br i1 %768, label %775, label %769

769:                                              ; preds = %760
  %770 = load ptr, ptr %31, align 8, !tbaa !5
  %771 = load i64, ptr %770, align 8, !tbaa !9
  store i64 %771, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___339, i32 0, i32 1), align 8, !tbaa !21
  %772 = call i64 @s_wsfe(ptr noundef @cchk5_.io___339)
  %773 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %774 = call i64 @e_wsfe()
  br label %775

775:                                              ; preds = %769, %760
  br label %776

776:                                              ; preds = %775
  %777 = load i64, ptr %68, align 8, !tbaa !9
  %778 = add nsw i64 %777, 1
  store i64 %778, ptr %68, align 8, !tbaa !9
  br label %747, !llvm.loop !26

779:                                              ; preds = %747
  %780 = load i64, ptr %99, align 8, !tbaa !9
  %781 = icmp ne i64 %780, 0
  br i1 %781, label %784, label %782

782:                                              ; preds = %779
  %783 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %783, align 8, !tbaa !9
  br label %1402

784:                                              ; preds = %779
  %785 = load i64, ptr %103, align 8, !tbaa !9
  %786 = icmp ne i64 %785, 0
  br i1 %786, label %1343, label %787

787:                                              ; preds = %784
  %788 = load i64, ptr %100, align 8, !tbaa !9
  %789 = icmp ne i64 %788, 0
  br i1 %789, label %790, label %792

790:                                              ; preds = %787
  %791 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  store i8 67, ptr %791, align 1, !tbaa !13
  br label %794

792:                                              ; preds = %787
  %793 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  store i8 84, ptr %793, align 1, !tbaa !13
  br label %794

794:                                              ; preds = %792, %790
  store i64 1, ptr %94, align 8, !tbaa !9
  store i64 1, ptr %74, align 8, !tbaa !9
  %795 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %795, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %796

796:                                              ; preds = %1339, %794
  %797 = load i64, ptr %69, align 8, !tbaa !9
  %798 = load i64, ptr %61, align 8, !tbaa !9
  %799 = icmp sle i64 %797, %798
  br i1 %799, label %800, label %1342

800:                                              ; preds = %796
  %801 = load i64, ptr %112, align 8, !tbaa !9
  %802 = icmp ne i64 %801, 0
  br i1 %802, label %803, label %805

803:                                              ; preds = %800
  store i64 1, ptr %80, align 8, !tbaa !9
  %804 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %804, ptr %81, align 8, !tbaa !9
  br label %811

805:                                              ; preds = %800
  %806 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %806, ptr %80, align 8, !tbaa !9
  %807 = load i64, ptr %71, align 8, !tbaa !9
  %808 = load i64, ptr %69, align 8, !tbaa !9
  %809 = sub nsw i64 %807, %808
  %810 = add nsw i64 %809, 1
  store i64 %810, ptr %81, align 8, !tbaa !9
  br label %811

811:                                              ; preds = %805, %803
  %812 = load i64, ptr %102, align 8, !tbaa !9
  %813 = icmp ne i64 %812, 0
  br i1 %813, label %814, label %1037

814:                                              ; preds = %811
  %815 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %815, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %816

816:                                              ; preds = %1000, %814
  %817 = load i64, ptr %68, align 8, !tbaa !9
  %818 = load i64, ptr %62, align 8, !tbaa !9
  %819 = icmp sle i64 %817, %818
  br i1 %819, label %820, label %1003

820:                                              ; preds = %816
  %821 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %821, ptr %63, align 8, !tbaa !9
  %822 = load i64, ptr %69, align 8, !tbaa !9
  %823 = sub nsw i64 %822, 1
  %824 = shl i64 %823, 1
  %825 = load ptr, ptr %42, align 8, !tbaa !5
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = mul nsw i64 %824, %826
  %828 = load i64, ptr %70, align 8, !tbaa !9
  %829 = add nsw i64 %827, %828
  %830 = load i64, ptr %68, align 8, !tbaa !9
  %831 = add nsw i64 %829, %830
  store i64 %831, ptr %64, align 8, !tbaa !9
  %832 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %833 = load float, ptr %832, align 4, !tbaa !14
  %834 = load ptr, ptr %43, align 8, !tbaa !5
  %835 = load i64, ptr %64, align 8, !tbaa !9
  %836 = getelementptr inbounds %struct.complex, ptr %834, i64 %835
  %837 = getelementptr inbounds %struct.complex, ptr %836, i32 0, i32 0
  %838 = load float, ptr %837, align 4, !tbaa !14
  %839 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %840 = load float, ptr %839, align 4, !tbaa !16
  %841 = load ptr, ptr %43, align 8, !tbaa !5
  %842 = load i64, ptr %64, align 8, !tbaa !9
  %843 = getelementptr inbounds %struct.complex, ptr %841, i64 %842
  %844 = getelementptr inbounds %struct.complex, ptr %843, i32 0, i32 1
  %845 = load float, ptr %844, align 4, !tbaa !16
  %846 = fmul float %840, %845
  %847 = fneg float %846
  %848 = call float @llvm.fmuladd.f32(float %833, float %838, float %847)
  %849 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %848, ptr %849, align 4, !tbaa !14
  %850 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %851 = load float, ptr %850, align 4, !tbaa !14
  %852 = load ptr, ptr %43, align 8, !tbaa !5
  %853 = load i64, ptr %64, align 8, !tbaa !9
  %854 = getelementptr inbounds %struct.complex, ptr %852, i64 %853
  %855 = getelementptr inbounds %struct.complex, ptr %854, i32 0, i32 1
  %856 = load float, ptr %855, align 4, !tbaa !16
  %857 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %858 = load float, ptr %857, align 4, !tbaa !16
  %859 = load ptr, ptr %43, align 8, !tbaa !5
  %860 = load i64, ptr %64, align 8, !tbaa !9
  %861 = getelementptr inbounds %struct.complex, ptr %859, i64 %860
  %862 = getelementptr inbounds %struct.complex, ptr %861, i32 0, i32 0
  %863 = load float, ptr %862, align 4, !tbaa !14
  %864 = fmul float %858, %863
  %865 = call float @llvm.fmuladd.f32(float %851, float %856, float %864)
  %866 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %865, ptr %866, align 4, !tbaa !16
  %867 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %868 = load float, ptr %867, align 4, !tbaa !14
  %869 = load ptr, ptr %53, align 8, !tbaa !5
  %870 = load i64, ptr %63, align 8, !tbaa !9
  %871 = getelementptr inbounds %struct.complex, ptr %869, i64 %870
  %872 = getelementptr inbounds %struct.complex, ptr %871, i32 0, i32 0
  store float %868, ptr %872, align 4, !tbaa !14
  %873 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %874 = load float, ptr %873, align 4, !tbaa !16
  %875 = load ptr, ptr %53, align 8, !tbaa !5
  %876 = load i64, ptr %63, align 8, !tbaa !9
  %877 = getelementptr inbounds %struct.complex, ptr %875, i64 %876
  %878 = getelementptr inbounds %struct.complex, ptr %877, i32 0, i32 1
  store float %874, ptr %878, align 4, !tbaa !16
  %879 = load i64, ptr %100, align 8, !tbaa !9
  %880 = icmp ne i64 %879, 0
  br i1 %880, label %881, label %940

881:                                              ; preds = %820
  %882 = load i64, ptr %70, align 8, !tbaa !9
  %883 = load i64, ptr %68, align 8, !tbaa !9
  %884 = add nsw i64 %882, %883
  store i64 %884, ptr %63, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %66, ptr noundef %105)
  %885 = load i64, ptr %69, align 8, !tbaa !9
  %886 = sub nsw i64 %885, 1
  %887 = shl i64 %886, 1
  %888 = load ptr, ptr %42, align 8, !tbaa !5
  %889 = load i64, ptr %888, align 8, !tbaa !9
  %890 = mul nsw i64 %887, %889
  %891 = load i64, ptr %68, align 8, !tbaa !9
  %892 = add nsw i64 %890, %891
  store i64 %892, ptr %64, align 8, !tbaa !9
  %893 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %894 = load float, ptr %893, align 4, !tbaa !14
  %895 = load ptr, ptr %43, align 8, !tbaa !5
  %896 = load i64, ptr %64, align 8, !tbaa !9
  %897 = getelementptr inbounds %struct.complex, ptr %895, i64 %896
  %898 = getelementptr inbounds %struct.complex, ptr %897, i32 0, i32 0
  %899 = load float, ptr %898, align 4, !tbaa !14
  %900 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %901 = load float, ptr %900, align 4, !tbaa !16
  %902 = load ptr, ptr %43, align 8, !tbaa !5
  %903 = load i64, ptr %64, align 8, !tbaa !9
  %904 = getelementptr inbounds %struct.complex, ptr %902, i64 %903
  %905 = getelementptr inbounds %struct.complex, ptr %904, i32 0, i32 1
  %906 = load float, ptr %905, align 4, !tbaa !16
  %907 = fmul float %901, %906
  %908 = fneg float %907
  %909 = call float @llvm.fmuladd.f32(float %894, float %899, float %908)
  %910 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %909, ptr %910, align 4, !tbaa !14
  %911 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %912 = load float, ptr %911, align 4, !tbaa !14
  %913 = load ptr, ptr %43, align 8, !tbaa !5
  %914 = load i64, ptr %64, align 8, !tbaa !9
  %915 = getelementptr inbounds %struct.complex, ptr %913, i64 %914
  %916 = getelementptr inbounds %struct.complex, ptr %915, i32 0, i32 1
  %917 = load float, ptr %916, align 4, !tbaa !16
  %918 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %919 = load float, ptr %918, align 4, !tbaa !16
  %920 = load ptr, ptr %43, align 8, !tbaa !5
  %921 = load i64, ptr %64, align 8, !tbaa !9
  %922 = getelementptr inbounds %struct.complex, ptr %920, i64 %921
  %923 = getelementptr inbounds %struct.complex, ptr %922, i32 0, i32 0
  %924 = load float, ptr %923, align 4, !tbaa !14
  %925 = fmul float %919, %924
  %926 = call float @llvm.fmuladd.f32(float %912, float %917, float %925)
  %927 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %926, ptr %927, align 4, !tbaa !16
  %928 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %929 = load float, ptr %928, align 4, !tbaa !14
  %930 = load ptr, ptr %53, align 8, !tbaa !5
  %931 = load i64, ptr %63, align 8, !tbaa !9
  %932 = getelementptr inbounds %struct.complex, ptr %930, i64 %931
  %933 = getelementptr inbounds %struct.complex, ptr %932, i32 0, i32 0
  store float %929, ptr %933, align 4, !tbaa !14
  %934 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %935 = load float, ptr %934, align 4, !tbaa !16
  %936 = load ptr, ptr %53, align 8, !tbaa !5
  %937 = load i64, ptr %63, align 8, !tbaa !9
  %938 = getelementptr inbounds %struct.complex, ptr %936, i64 %937
  %939 = getelementptr inbounds %struct.complex, ptr %938, i32 0, i32 1
  store float %935, ptr %939, align 4, !tbaa !16
  br label %999

940:                                              ; preds = %820
  %941 = load i64, ptr %70, align 8, !tbaa !9
  %942 = load i64, ptr %68, align 8, !tbaa !9
  %943 = add nsw i64 %941, %942
  store i64 %943, ptr %63, align 8, !tbaa !9
  %944 = load i64, ptr %69, align 8, !tbaa !9
  %945 = sub nsw i64 %944, 1
  %946 = shl i64 %945, 1
  %947 = load ptr, ptr %42, align 8, !tbaa !5
  %948 = load i64, ptr %947, align 8, !tbaa !9
  %949 = mul nsw i64 %946, %948
  %950 = load i64, ptr %68, align 8, !tbaa !9
  %951 = add nsw i64 %949, %950
  store i64 %951, ptr %64, align 8, !tbaa !9
  %952 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %953 = load float, ptr %952, align 4, !tbaa !14
  %954 = load ptr, ptr %43, align 8, !tbaa !5
  %955 = load i64, ptr %64, align 8, !tbaa !9
  %956 = getelementptr inbounds %struct.complex, ptr %954, i64 %955
  %957 = getelementptr inbounds %struct.complex, ptr %956, i32 0, i32 0
  %958 = load float, ptr %957, align 4, !tbaa !14
  %959 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %960 = load float, ptr %959, align 4, !tbaa !16
  %961 = load ptr, ptr %43, align 8, !tbaa !5
  %962 = load i64, ptr %64, align 8, !tbaa !9
  %963 = getelementptr inbounds %struct.complex, ptr %961, i64 %962
  %964 = getelementptr inbounds %struct.complex, ptr %963, i32 0, i32 1
  %965 = load float, ptr %964, align 4, !tbaa !16
  %966 = fmul float %960, %965
  %967 = fneg float %966
  %968 = call float @llvm.fmuladd.f32(float %953, float %958, float %967)
  %969 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %968, ptr %969, align 4, !tbaa !14
  %970 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %971 = load float, ptr %970, align 4, !tbaa !14
  %972 = load ptr, ptr %43, align 8, !tbaa !5
  %973 = load i64, ptr %64, align 8, !tbaa !9
  %974 = getelementptr inbounds %struct.complex, ptr %972, i64 %973
  %975 = getelementptr inbounds %struct.complex, ptr %974, i32 0, i32 1
  %976 = load float, ptr %975, align 4, !tbaa !16
  %977 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %978 = load float, ptr %977, align 4, !tbaa !16
  %979 = load ptr, ptr %43, align 8, !tbaa !5
  %980 = load i64, ptr %64, align 8, !tbaa !9
  %981 = getelementptr inbounds %struct.complex, ptr %979, i64 %980
  %982 = getelementptr inbounds %struct.complex, ptr %981, i32 0, i32 0
  %983 = load float, ptr %982, align 4, !tbaa !14
  %984 = fmul float %978, %983
  %985 = call float @llvm.fmuladd.f32(float %971, float %976, float %984)
  %986 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %985, ptr %986, align 4, !tbaa !16
  %987 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %988 = load float, ptr %987, align 4, !tbaa !14
  %989 = load ptr, ptr %53, align 8, !tbaa !5
  %990 = load i64, ptr %63, align 8, !tbaa !9
  %991 = getelementptr inbounds %struct.complex, ptr %989, i64 %990
  %992 = getelementptr inbounds %struct.complex, ptr %991, i32 0, i32 0
  store float %988, ptr %992, align 4, !tbaa !14
  %993 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %994 = load float, ptr %993, align 4, !tbaa !16
  %995 = load ptr, ptr %53, align 8, !tbaa !5
  %996 = load i64, ptr %63, align 8, !tbaa !9
  %997 = getelementptr inbounds %struct.complex, ptr %995, i64 %996
  %998 = getelementptr inbounds %struct.complex, ptr %997, i32 0, i32 1
  store float %994, ptr %998, align 4, !tbaa !16
  br label %999

999:                                              ; preds = %940, %881
  br label %1000

1000:                                             ; preds = %999
  %1001 = load i64, ptr %68, align 8, !tbaa !9
  %1002 = add nsw i64 %1001, 1
  store i64 %1002, ptr %68, align 8, !tbaa !9
  br label %816, !llvm.loop !27

1003:                                             ; preds = %816
  %1004 = load i64, ptr %70, align 8, !tbaa !9
  %1005 = shl i64 %1004, 1
  store i64 %1005, ptr %62, align 8, !tbaa !9
  %1006 = load ptr, ptr %42, align 8, !tbaa !5
  %1007 = load i64, ptr %1006, align 8, !tbaa !9
  %1008 = shl i64 %1007, 1
  store i64 %1008, ptr %63, align 8, !tbaa !9
  %1009 = load ptr, ptr %42, align 8, !tbaa !5
  %1010 = load i64, ptr %1009, align 8, !tbaa !9
  %1011 = shl i64 %1010, 1
  store i64 %1011, ptr %64, align 8, !tbaa !9
  %1012 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  %1013 = load ptr, ptr %43, align 8, !tbaa !5
  %1014 = load i64, ptr %94, align 8, !tbaa !9
  %1015 = getelementptr inbounds %struct.complex, ptr %1013, i64 %1014
  %1016 = load ptr, ptr %53, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.complex, ptr %1016, i64 1
  %1018 = load ptr, ptr %48, align 8, !tbaa !5
  %1019 = load i64, ptr %80, align 8, !tbaa !9
  %1020 = load i64, ptr %69, align 8, !tbaa !9
  %1021 = load i64, ptr %55, align 8, !tbaa !9
  %1022 = mul nsw i64 %1020, %1021
  %1023 = add nsw i64 %1019, %1022
  %1024 = getelementptr inbounds %struct.complex, ptr %1018, i64 %1023
  %1025 = load ptr, ptr %42, align 8, !tbaa !5
  %1026 = load ptr, ptr %51, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.complex, ptr %1026, i64 1
  %1028 = load ptr, ptr %52, align 8, !tbaa !5
  %1029 = getelementptr inbounds float, ptr %1028, i64 1
  %1030 = load ptr, ptr %49, align 8, !tbaa !5
  %1031 = load i64, ptr %74, align 8, !tbaa !9
  %1032 = getelementptr inbounds %struct.complex, ptr %1030, i64 %1031
  %1033 = load ptr, ptr %29, align 8, !tbaa !5
  %1034 = load ptr, ptr %35, align 8, !tbaa !5
  %1035 = load ptr, ptr %31, align 8, !tbaa !5
  %1036 = call i32 @cmmch_(ptr noundef %1012, ptr noundef @.str, ptr noundef %81, ptr noundef @c__1, ptr noundef %62, ptr noundef @c_b2, ptr noundef %1015, ptr noundef %63, ptr noundef %1017, ptr noundef %64, ptr noundef %95, ptr noundef %1024, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, ptr noundef %1032, ptr noundef %89, ptr noundef %1033, ptr noundef %93, ptr noundef %1034, ptr noundef %1035, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %1301

1037:                                             ; preds = %811
  %1038 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %1038, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %1039

1039:                                             ; preds = %1267, %1037
  %1040 = load i64, ptr %68, align 8, !tbaa !9
  %1041 = load i64, ptr %62, align 8, !tbaa !9
  %1042 = icmp sle i64 %1040, %1041
  br i1 %1042, label %1043, label %1270

1043:                                             ; preds = %1039
  %1044 = load i64, ptr %100, align 8, !tbaa !9
  %1045 = icmp ne i64 %1044, 0
  br i1 %1045, label %1046, label %1151

1046:                                             ; preds = %1043
  %1047 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1047, ptr %63, align 8, !tbaa !9
  %1048 = load ptr, ptr %43, align 8, !tbaa !5
  %1049 = load i64, ptr %70, align 8, !tbaa !9
  %1050 = load i64, ptr %68, align 8, !tbaa !9
  %1051 = add nsw i64 %1049, %1050
  %1052 = sub nsw i64 %1051, 1
  %1053 = load ptr, ptr %42, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  %1055 = mul nsw i64 %1052, %1054
  %1056 = load i64, ptr %69, align 8, !tbaa !9
  %1057 = add nsw i64 %1055, %1056
  %1058 = getelementptr inbounds %struct.complex, ptr %1048, i64 %1057
  call void @r_cnjg(ptr noundef %66, ptr noundef %1058)
  %1059 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1060 = load float, ptr %1059, align 4, !tbaa !14
  %1061 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %1062 = load float, ptr %1061, align 4, !tbaa !14
  %1063 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1064 = load float, ptr %1063, align 4, !tbaa !16
  %1065 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %1066 = load float, ptr %1065, align 4, !tbaa !16
  %1067 = fmul float %1064, %1066
  %1068 = fneg float %1067
  %1069 = call float @llvm.fmuladd.f32(float %1060, float %1062, float %1068)
  %1070 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %1069, ptr %1070, align 4, !tbaa !14
  %1071 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1072 = load float, ptr %1071, align 4, !tbaa !14
  %1073 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %1074 = load float, ptr %1073, align 4, !tbaa !16
  %1075 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1076 = load float, ptr %1075, align 4, !tbaa !16
  %1077 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %1078 = load float, ptr %1077, align 4, !tbaa !14
  %1079 = fmul float %1076, %1078
  %1080 = call float @llvm.fmuladd.f32(float %1072, float %1074, float %1079)
  %1081 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %1080, ptr %1081, align 4, !tbaa !16
  %1082 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %1083 = load float, ptr %1082, align 4, !tbaa !14
  %1084 = load ptr, ptr %53, align 8, !tbaa !5
  %1085 = load i64, ptr %63, align 8, !tbaa !9
  %1086 = getelementptr inbounds %struct.complex, ptr %1084, i64 %1085
  %1087 = getelementptr inbounds %struct.complex, ptr %1086, i32 0, i32 0
  store float %1083, ptr %1087, align 4, !tbaa !14
  %1088 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %1089 = load float, ptr %1088, align 4, !tbaa !16
  %1090 = load ptr, ptr %53, align 8, !tbaa !5
  %1091 = load i64, ptr %63, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i32 0, i32 1
  store float %1089, ptr %1093, align 4, !tbaa !16
  %1094 = load i64, ptr %70, align 8, !tbaa !9
  %1095 = load i64, ptr %68, align 8, !tbaa !9
  %1096 = add nsw i64 %1094, %1095
  store i64 %1096, ptr %63, align 8, !tbaa !9
  %1097 = load i64, ptr %68, align 8, !tbaa !9
  %1098 = sub nsw i64 %1097, 1
  %1099 = load ptr, ptr %42, align 8, !tbaa !5
  %1100 = load i64, ptr %1099, align 8, !tbaa !9
  %1101 = mul nsw i64 %1098, %1100
  %1102 = load i64, ptr %69, align 8, !tbaa !9
  %1103 = add nsw i64 %1101, %1102
  store i64 %1103, ptr %64, align 8, !tbaa !9
  %1104 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1105 = load float, ptr %1104, align 4, !tbaa !14
  %1106 = load ptr, ptr %43, align 8, !tbaa !5
  %1107 = load i64, ptr %64, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.complex, ptr %1106, i64 %1107
  %1109 = getelementptr inbounds %struct.complex, ptr %1108, i32 0, i32 0
  %1110 = load float, ptr %1109, align 4, !tbaa !14
  %1111 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1112 = load float, ptr %1111, align 4, !tbaa !16
  %1113 = load ptr, ptr %43, align 8, !tbaa !5
  %1114 = load i64, ptr %64, align 8, !tbaa !9
  %1115 = getelementptr inbounds %struct.complex, ptr %1113, i64 %1114
  %1116 = getelementptr inbounds %struct.complex, ptr %1115, i32 0, i32 1
  %1117 = load float, ptr %1116, align 4, !tbaa !16
  %1118 = fmul float %1112, %1117
  %1119 = fneg float %1118
  %1120 = call float @llvm.fmuladd.f32(float %1105, float %1110, float %1119)
  %1121 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %1120, ptr %1121, align 4, !tbaa !14
  %1122 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1123 = load float, ptr %1122, align 4, !tbaa !14
  %1124 = load ptr, ptr %43, align 8, !tbaa !5
  %1125 = load i64, ptr %64, align 8, !tbaa !9
  %1126 = getelementptr inbounds %struct.complex, ptr %1124, i64 %1125
  %1127 = getelementptr inbounds %struct.complex, ptr %1126, i32 0, i32 1
  %1128 = load float, ptr %1127, align 4, !tbaa !16
  %1129 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1130 = load float, ptr %1129, align 4, !tbaa !16
  %1131 = load ptr, ptr %43, align 8, !tbaa !5
  %1132 = load i64, ptr %64, align 8, !tbaa !9
  %1133 = getelementptr inbounds %struct.complex, ptr %1131, i64 %1132
  %1134 = getelementptr inbounds %struct.complex, ptr %1133, i32 0, i32 0
  %1135 = load float, ptr %1134, align 4, !tbaa !14
  %1136 = fmul float %1130, %1135
  %1137 = call float @llvm.fmuladd.f32(float %1123, float %1128, float %1136)
  %1138 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %1137, ptr %1138, align 4, !tbaa !16
  call void @r_cnjg(ptr noundef %65, ptr noundef %66)
  %1139 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %1140 = load float, ptr %1139, align 4, !tbaa !14
  %1141 = load ptr, ptr %53, align 8, !tbaa !5
  %1142 = load i64, ptr %63, align 8, !tbaa !9
  %1143 = getelementptr inbounds %struct.complex, ptr %1141, i64 %1142
  %1144 = getelementptr inbounds %struct.complex, ptr %1143, i32 0, i32 0
  store float %1140, ptr %1144, align 4, !tbaa !14
  %1145 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %1146 = load float, ptr %1145, align 4, !tbaa !16
  %1147 = load ptr, ptr %53, align 8, !tbaa !5
  %1148 = load i64, ptr %63, align 8, !tbaa !9
  %1149 = getelementptr inbounds %struct.complex, ptr %1147, i64 %1148
  %1150 = getelementptr inbounds %struct.complex, ptr %1149, i32 0, i32 1
  store float %1146, ptr %1150, align 4, !tbaa !16
  br label %1266

1151:                                             ; preds = %1043
  %1152 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1152, ptr %63, align 8, !tbaa !9
  %1153 = load i64, ptr %70, align 8, !tbaa !9
  %1154 = load i64, ptr %68, align 8, !tbaa !9
  %1155 = add nsw i64 %1153, %1154
  %1156 = sub nsw i64 %1155, 1
  %1157 = load ptr, ptr %42, align 8, !tbaa !5
  %1158 = load i64, ptr %1157, align 8, !tbaa !9
  %1159 = mul nsw i64 %1156, %1158
  %1160 = load i64, ptr %69, align 8, !tbaa !9
  %1161 = add nsw i64 %1159, %1160
  store i64 %1161, ptr %64, align 8, !tbaa !9
  %1162 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1163 = load float, ptr %1162, align 4, !tbaa !14
  %1164 = load ptr, ptr %43, align 8, !tbaa !5
  %1165 = load i64, ptr %64, align 8, !tbaa !9
  %1166 = getelementptr inbounds %struct.complex, ptr %1164, i64 %1165
  %1167 = getelementptr inbounds %struct.complex, ptr %1166, i32 0, i32 0
  %1168 = load float, ptr %1167, align 4, !tbaa !14
  %1169 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1170 = load float, ptr %1169, align 4, !tbaa !16
  %1171 = load ptr, ptr %43, align 8, !tbaa !5
  %1172 = load i64, ptr %64, align 8, !tbaa !9
  %1173 = getelementptr inbounds %struct.complex, ptr %1171, i64 %1172
  %1174 = getelementptr inbounds %struct.complex, ptr %1173, i32 0, i32 1
  %1175 = load float, ptr %1174, align 4, !tbaa !16
  %1176 = fmul float %1170, %1175
  %1177 = fneg float %1176
  %1178 = call float @llvm.fmuladd.f32(float %1163, float %1168, float %1177)
  %1179 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %1178, ptr %1179, align 4, !tbaa !14
  %1180 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1181 = load float, ptr %1180, align 4, !tbaa !14
  %1182 = load ptr, ptr %43, align 8, !tbaa !5
  %1183 = load i64, ptr %64, align 8, !tbaa !9
  %1184 = getelementptr inbounds %struct.complex, ptr %1182, i64 %1183
  %1185 = getelementptr inbounds %struct.complex, ptr %1184, i32 0, i32 1
  %1186 = load float, ptr %1185, align 4, !tbaa !16
  %1187 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1188 = load float, ptr %1187, align 4, !tbaa !16
  %1189 = load ptr, ptr %43, align 8, !tbaa !5
  %1190 = load i64, ptr %64, align 8, !tbaa !9
  %1191 = getelementptr inbounds %struct.complex, ptr %1189, i64 %1190
  %1192 = getelementptr inbounds %struct.complex, ptr %1191, i32 0, i32 0
  %1193 = load float, ptr %1192, align 4, !tbaa !14
  %1194 = fmul float %1188, %1193
  %1195 = call float @llvm.fmuladd.f32(float %1181, float %1186, float %1194)
  %1196 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %1195, ptr %1196, align 4, !tbaa !16
  %1197 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %1198 = load float, ptr %1197, align 4, !tbaa !14
  %1199 = load ptr, ptr %53, align 8, !tbaa !5
  %1200 = load i64, ptr %63, align 8, !tbaa !9
  %1201 = getelementptr inbounds %struct.complex, ptr %1199, i64 %1200
  %1202 = getelementptr inbounds %struct.complex, ptr %1201, i32 0, i32 0
  store float %1198, ptr %1202, align 4, !tbaa !14
  %1203 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %1204 = load float, ptr %1203, align 4, !tbaa !16
  %1205 = load ptr, ptr %53, align 8, !tbaa !5
  %1206 = load i64, ptr %63, align 8, !tbaa !9
  %1207 = getelementptr inbounds %struct.complex, ptr %1205, i64 %1206
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i32 0, i32 1
  store float %1204, ptr %1208, align 4, !tbaa !16
  %1209 = load i64, ptr %70, align 8, !tbaa !9
  %1210 = load i64, ptr %68, align 8, !tbaa !9
  %1211 = add nsw i64 %1209, %1210
  store i64 %1211, ptr %63, align 8, !tbaa !9
  %1212 = load i64, ptr %68, align 8, !tbaa !9
  %1213 = sub nsw i64 %1212, 1
  %1214 = load ptr, ptr %42, align 8, !tbaa !5
  %1215 = load i64, ptr %1214, align 8, !tbaa !9
  %1216 = mul nsw i64 %1213, %1215
  %1217 = load i64, ptr %69, align 8, !tbaa !9
  %1218 = add nsw i64 %1216, %1217
  store i64 %1218, ptr %64, align 8, !tbaa !9
  %1219 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1220 = load float, ptr %1219, align 4, !tbaa !14
  %1221 = load ptr, ptr %43, align 8, !tbaa !5
  %1222 = load i64, ptr %64, align 8, !tbaa !9
  %1223 = getelementptr inbounds %struct.complex, ptr %1221, i64 %1222
  %1224 = getelementptr inbounds %struct.complex, ptr %1223, i32 0, i32 0
  %1225 = load float, ptr %1224, align 4, !tbaa !14
  %1226 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1227 = load float, ptr %1226, align 4, !tbaa !16
  %1228 = load ptr, ptr %43, align 8, !tbaa !5
  %1229 = load i64, ptr %64, align 8, !tbaa !9
  %1230 = getelementptr inbounds %struct.complex, ptr %1228, i64 %1229
  %1231 = getelementptr inbounds %struct.complex, ptr %1230, i32 0, i32 1
  %1232 = load float, ptr %1231, align 4, !tbaa !16
  %1233 = fmul float %1227, %1232
  %1234 = fneg float %1233
  %1235 = call float @llvm.fmuladd.f32(float %1220, float %1225, float %1234)
  %1236 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %1235, ptr %1236, align 4, !tbaa !14
  %1237 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 0
  %1238 = load float, ptr %1237, align 4, !tbaa !14
  %1239 = load ptr, ptr %43, align 8, !tbaa !5
  %1240 = load i64, ptr %64, align 8, !tbaa !9
  %1241 = getelementptr inbounds %struct.complex, ptr %1239, i64 %1240
  %1242 = getelementptr inbounds %struct.complex, ptr %1241, i32 0, i32 1
  %1243 = load float, ptr %1242, align 4, !tbaa !16
  %1244 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  %1245 = load float, ptr %1244, align 4, !tbaa !16
  %1246 = load ptr, ptr %43, align 8, !tbaa !5
  %1247 = load i64, ptr %64, align 8, !tbaa !9
  %1248 = getelementptr inbounds %struct.complex, ptr %1246, i64 %1247
  %1249 = getelementptr inbounds %struct.complex, ptr %1248, i32 0, i32 0
  %1250 = load float, ptr %1249, align 4, !tbaa !14
  %1251 = fmul float %1245, %1250
  %1252 = call float @llvm.fmuladd.f32(float %1238, float %1243, float %1251)
  %1253 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %1252, ptr %1253, align 4, !tbaa !16
  %1254 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %1255 = load float, ptr %1254, align 4, !tbaa !14
  %1256 = load ptr, ptr %53, align 8, !tbaa !5
  %1257 = load i64, ptr %63, align 8, !tbaa !9
  %1258 = getelementptr inbounds %struct.complex, ptr %1256, i64 %1257
  %1259 = getelementptr inbounds %struct.complex, ptr %1258, i32 0, i32 0
  store float %1255, ptr %1259, align 4, !tbaa !14
  %1260 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4, !tbaa !16
  %1262 = load ptr, ptr %53, align 8, !tbaa !5
  %1263 = load i64, ptr %63, align 8, !tbaa !9
  %1264 = getelementptr inbounds %struct.complex, ptr %1262, i64 %1263
  %1265 = getelementptr inbounds %struct.complex, ptr %1264, i32 0, i32 1
  store float %1261, ptr %1265, align 4, !tbaa !16
  br label %1266

1266:                                             ; preds = %1151, %1046
  br label %1267

1267:                                             ; preds = %1266
  %1268 = load i64, ptr %68, align 8, !tbaa !9
  %1269 = add nsw i64 %1268, 1
  store i64 %1269, ptr %68, align 8, !tbaa !9
  br label %1039, !llvm.loop !28

1270:                                             ; preds = %1039
  %1271 = load i64, ptr %70, align 8, !tbaa !9
  %1272 = shl i64 %1271, 1
  store i64 %1272, ptr %62, align 8, !tbaa !9
  %1273 = load ptr, ptr %42, align 8, !tbaa !5
  %1274 = load i64, ptr %1273, align 8, !tbaa !9
  %1275 = shl i64 %1274, 1
  store i64 %1275, ptr %63, align 8, !tbaa !9
  %1276 = load ptr, ptr %43, align 8, !tbaa !5
  %1277 = load i64, ptr %80, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct.complex, ptr %1276, i64 %1277
  %1279 = load ptr, ptr %42, align 8, !tbaa !5
  %1280 = load ptr, ptr %53, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.complex, ptr %1280, i64 1
  %1282 = load ptr, ptr %48, align 8, !tbaa !5
  %1283 = load i64, ptr %80, align 8, !tbaa !9
  %1284 = load i64, ptr %69, align 8, !tbaa !9
  %1285 = load i64, ptr %55, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1283, %1286
  %1288 = getelementptr inbounds %struct.complex, ptr %1282, i64 %1287
  %1289 = load ptr, ptr %42, align 8, !tbaa !5
  %1290 = load ptr, ptr %51, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.complex, ptr %1290, i64 1
  %1292 = load ptr, ptr %52, align 8, !tbaa !5
  %1293 = getelementptr inbounds float, ptr %1292, i64 1
  %1294 = load ptr, ptr %49, align 8, !tbaa !5
  %1295 = load i64, ptr %74, align 8, !tbaa !9
  %1296 = getelementptr inbounds %struct.complex, ptr %1294, i64 %1295
  %1297 = load ptr, ptr %29, align 8, !tbaa !5
  %1298 = load ptr, ptr %35, align 8, !tbaa !5
  %1299 = load ptr, ptr %31, align 8, !tbaa !5
  %1300 = call i32 @cmmch_(ptr noundef @.str, ptr noundef @.str, ptr noundef %81, ptr noundef @c__1, ptr noundef %62, ptr noundef @c_b2, ptr noundef %1278, ptr noundef %1279, ptr noundef %1281, ptr noundef %63, ptr noundef %95, ptr noundef %1288, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, ptr noundef %1296, ptr noundef %89, ptr noundef %1297, ptr noundef %93, ptr noundef %1298, ptr noundef %1299, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %1301

1301:                                             ; preds = %1270, %1003
  %1302 = load i64, ptr %112, align 8, !tbaa !9
  %1303 = icmp ne i64 %1302, 0
  br i1 %1303, label %1304, label %1308

1304:                                             ; preds = %1301
  %1305 = load i64, ptr %89, align 8, !tbaa !9
  %1306 = load i64, ptr %74, align 8, !tbaa !9
  %1307 = add nsw i64 %1306, %1305
  store i64 %1307, ptr %74, align 8, !tbaa !9
  br label %1322

1308:                                             ; preds = %1301
  %1309 = load i64, ptr %74, align 8, !tbaa !9
  %1310 = load i64, ptr %89, align 8, !tbaa !9
  %1311 = add nsw i64 %1309, %1310
  %1312 = add nsw i64 %1311, 1
  store i64 %1312, ptr %74, align 8, !tbaa !9
  %1313 = load i64, ptr %102, align 8, !tbaa !9
  %1314 = icmp ne i64 %1313, 0
  br i1 %1314, label %1315, label %1321

1315:                                             ; preds = %1308
  %1316 = load ptr, ptr %42, align 8, !tbaa !5
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  %1318 = shl i64 %1317, 1
  %1319 = load i64, ptr %94, align 8, !tbaa !9
  %1320 = add nsw i64 %1319, %1318
  store i64 %1320, ptr %94, align 8, !tbaa !9
  br label %1321

1321:                                             ; preds = %1315, %1308
  br label %1322

1322:                                             ; preds = %1321, %1304
  %1323 = load float, ptr %114, align 4, !tbaa !11
  %1324 = load float, ptr %93, align 4, !tbaa !11
  %1325 = fcmp oge float %1323, %1324
  br i1 %1325, label %1326, label %1328

1326:                                             ; preds = %1322
  %1327 = load float, ptr %114, align 4, !tbaa !11
  br label %1330

1328:                                             ; preds = %1322
  %1329 = load float, ptr %93, align 4, !tbaa !11
  br label %1330

1330:                                             ; preds = %1328, %1326
  %1331 = phi float [ %1327, %1326 ], [ %1329, %1328 ]
  %1332 = fpext float %1331 to double
  %1333 = fptrunc double %1332 to float
  store float %1333, ptr %114, align 4, !tbaa !11
  %1334 = load ptr, ptr %35, align 8, !tbaa !5
  %1335 = load i64, ptr %1334, align 8, !tbaa !9
  %1336 = icmp ne i64 %1335, 0
  br i1 %1336, label %1337, label %1338

1337:                                             ; preds = %1330
  br label %1392

1338:                                             ; preds = %1330
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i64, ptr %69, align 8, !tbaa !9
  %1341 = add nsw i64 %1340, 1
  store i64 %1341, ptr %69, align 8, !tbaa !9
  br label %796, !llvm.loop !29

1342:                                             ; preds = %796
  br label %1343

1343:                                             ; preds = %1342, %784
  br label %1344

1344:                                             ; preds = %1343
  %1345 = load i64, ptr %73, align 8, !tbaa !9
  %1346 = add nsw i64 %1345, 1
  store i64 %1346, ptr %73, align 8, !tbaa !9
  br label %331, !llvm.loop !30

1347:                                             ; preds = %331
  br label %1348

1348:                                             ; preds = %1347
  %1349 = load i64, ptr %72, align 8, !tbaa !9
  %1350 = add nsw i64 %1349, 1
  store i64 %1350, ptr %72, align 8, !tbaa !9
  br label %311, !llvm.loop !31

1351:                                             ; preds = %311
  br label %1352

1352:                                             ; preds = %1351
  %1353 = load i64, ptr %92, align 8, !tbaa !9
  %1354 = add nsw i64 %1353, 1
  store i64 %1354, ptr %92, align 8, !tbaa !9
  br label %294, !llvm.loop !32

1355:                                             ; preds = %294
  br label %1356

1356:                                             ; preds = %1355, %242
  br label %1357

1357:                                             ; preds = %1356
  %1358 = load i64, ptr %91, align 8, !tbaa !9
  %1359 = add nsw i64 %1358, 1
  store i64 %1359, ptr %91, align 8, !tbaa !9
  br label %197, !llvm.loop !33

1360:                                             ; preds = %197
  br label %1361

1361:                                             ; preds = %1360
  %1362 = load i64, ptr %78, align 8, !tbaa !9
  %1363 = add nsw i64 %1362, 1
  store i64 %1363, ptr %78, align 8, !tbaa !9
  br label %188, !llvm.loop !34

1364:                                             ; preds = %188
  br label %1365

1365:                                             ; preds = %1364, %181
  br label %1366

1366:                                             ; preds = %1365
  %1367 = load i64, ptr %79, align 8, !tbaa !9
  %1368 = add nsw i64 %1367, 1
  store i64 %1368, ptr %79, align 8, !tbaa !9
  br label %159, !llvm.loop !35

1369:                                             ; preds = %159
  %1370 = load float, ptr %114, align 4, !tbaa !11
  %1371 = load ptr, ptr %30, align 8, !tbaa !5
  %1372 = load float, ptr %1371, align 4, !tbaa !11
  %1373 = fcmp olt float %1370, %1372
  br i1 %1373, label %1374, label %1382

1374:                                             ; preds = %1369
  %1375 = load ptr, ptr %31, align 8, !tbaa !5
  %1376 = load i64, ptr %1375, align 8, !tbaa !9
  store i64 %1376, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___347, i32 0, i32 1), align 8, !tbaa !21
  %1377 = call i64 @s_wsfe(ptr noundef @cchk5_.io___347)
  %1378 = load ptr, ptr %28, align 8, !tbaa !5
  %1379 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1378, i64 noundef 6)
  %1380 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1381 = call i64 @e_wsfe()
  br label %1391

1382:                                             ; preds = %1369
  %1383 = load ptr, ptr %31, align 8, !tbaa !5
  %1384 = load i64, ptr %1383, align 8, !tbaa !9
  store i64 %1384, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___348, i32 0, i32 1), align 8, !tbaa !21
  %1385 = call i64 @s_wsfe(ptr noundef @cchk5_.io___348)
  %1386 = load ptr, ptr %28, align 8, !tbaa !5
  %1387 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1386, i64 noundef 6)
  %1388 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1389 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %114, i64 noundef 4)
  %1390 = call i64 @e_wsfe()
  br label %1391

1391:                                             ; preds = %1382, %1374
  br label %1450

1392:                                             ; preds = %1337
  %1393 = load i64, ptr %71, align 8, !tbaa !9
  %1394 = icmp sgt i64 %1393, 1
  br i1 %1394, label %1395, label %1401

1395:                                             ; preds = %1392
  %1396 = load ptr, ptr %31, align 8, !tbaa !5
  %1397 = load i64, ptr %1396, align 8, !tbaa !9
  store i64 %1397, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___349, i32 0, i32 1), align 8, !tbaa !21
  %1398 = call i64 @s_wsfe(ptr noundef @cchk5_.io___349)
  %1399 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %1400 = call i64 @e_wsfe()
  br label %1401

1401:                                             ; preds = %1395, %1392
  br label %1402

1402:                                             ; preds = %1401, %782, %616
  %1403 = load ptr, ptr %31, align 8, !tbaa !5
  %1404 = load i64, ptr %1403, align 8, !tbaa !9
  store i64 %1404, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___350, i32 0, i32 1), align 8, !tbaa !21
  %1405 = call i64 @s_wsfe(ptr noundef @cchk5_.io___350)
  %1406 = load ptr, ptr %28, align 8, !tbaa !5
  %1407 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1406, i64 noundef 6)
  %1408 = call i64 @e_wsfe()
  %1409 = load i64, ptr %100, align 8, !tbaa !9
  %1410 = icmp ne i64 %1409, 0
  br i1 %1410, label %1411, label %1430

1411:                                             ; preds = %1402
  %1412 = load ptr, ptr %31, align 8, !tbaa !5
  %1413 = load i64, ptr %1412, align 8, !tbaa !9
  store i64 %1413, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___351, i32 0, i32 1), align 8, !tbaa !21
  %1414 = call i64 @s_wsfe(ptr noundef @cchk5_.io___351)
  %1415 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1416 = load ptr, ptr %28, align 8, !tbaa !5
  %1417 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1416, i64 noundef 6)
  %1418 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %1419 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1418, i64 noundef 1)
  %1420 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %1421 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1420, i64 noundef 1)
  %1422 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %1423 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %1424 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 4)
  %1425 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %1426 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %1427 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 4)
  %1428 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %1429 = call i64 @e_wsfe()
  br label %1449

1430:                                             ; preds = %1402
  %1431 = load ptr, ptr %31, align 8, !tbaa !5
  %1432 = load i64, ptr %1431, align 8, !tbaa !9
  store i64 %1432, ptr getelementptr inbounds (%struct.cilist, ptr @cchk5_.io___352, i32 0, i32 1), align 8, !tbaa !21
  %1433 = call i64 @s_wsfe(ptr noundef @cchk5_.io___352)
  %1434 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1435 = load ptr, ptr %28, align 8, !tbaa !5
  %1436 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1435, i64 noundef 6)
  %1437 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %1438 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1437, i64 noundef 1)
  %1439 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %1440 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1439, i64 noundef 1)
  %1441 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %1442 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %1443 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 4)
  %1444 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %1445 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %1446 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %95, i64 noundef 4)
  %1447 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %1448 = call i64 @e_wsfe()
  br label %1449

1449:                                             ; preds = %1430, %1411
  br label %1450

1450:                                             ; preds = %1449, %1391
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 104, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  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, 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

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

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

declare i32 @f2c_csyr2k(ptr noundef, ptr noundef, ptr noundef, 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 = { 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 = !{!"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 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !12, i64 0}
!15 = !{!"", !12, i64 0, !12, i64 4}
!16 = !{!15, !12, 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}
!35 = distinct !{!35, !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 = 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_b1 = external hidden global %struct.complex, align 4
@c_true = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@cchk5_.icht = external hidden local_unnamed_addr global [2 x i8], align 1
@cchk5_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@cchk5_.io___334 = external hidden global %struct.cilist, align 8
@cchk5_.io___335 = external hidden global %struct.cilist, align 8
@cchk5_.io___336 = external hidden global %struct.cilist, align 8
@cchk5_.io___339 = external hidden global %struct.cilist, align 8
@cchk5_.io___347 = external hidden global %struct.cilist, align 8
@cchk5_.io___348 = external hidden global %struct.cilist, align 8
@cchk5_.io___349 = external hidden global %struct.cilist, align 8
@cchk5_.io___350 = external hidden global %struct.cilist, align 8
@cchk5_.io___351 = external hidden global %struct.cilist, align 8
@cchk5_.io___352 = 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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @cmmch_(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, ptr noundef, ptr noundef, ptr noundef, i64 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 @cchk5_(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 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, i64 noundef %26) local_unnamed_addr #2 {
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca %struct.complex, align 8
  %33 = alloca %struct.complex, align 8
  %34 = alloca %struct.alist, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, 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 i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca float, align 4
  %50 = alloca %struct.complex, align 8
  %51 = alloca [1 x i8], align 1
  %52 = alloca %struct.complex, align 8
  %53 = alloca float, align 4
  %54 = alloca [13 x i64], align 16
  %55 = alloca i64, align 8
  %56 = alloca [1 x i8], align 1
  %57 = alloca float, align 4
  %58 = alloca [1 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #4
  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 16, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 8, 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 8, 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 4, ptr nonnull %49) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #4
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %54) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #4
  %59 = getelementptr inbounds i8, ptr %9, i64 -8
  %60 = getelementptr inbounds i8, ptr %11, i64 -8
  %61 = getelementptr inbounds i8, ptr %13, i64 -8
  %62 = getelementptr inbounds i8, ptr %25, i64 -8
  %63 = getelementptr inbounds i8, ptr %22, i64 -8
  %64 = getelementptr inbounds i8, ptr %21, i64 -8
  %65 = load i64, ptr %14, align 8, !tbaa !5
  %66 = xor i64 %65, -1
  %67 = getelementptr inbounds %struct.complex, ptr %20, i64 %66
  %68 = getelementptr inbounds i8, ptr %19, i64 -8
  %69 = getelementptr inbounds i8, ptr %18, i64 -8
  %70 = getelementptr inbounds i8, ptr %17, i64 -8
  %71 = getelementptr inbounds i8, ptr %16, i64 -8
  %72 = getelementptr inbounds i8, ptr %15, i64 -8
  %73 = getelementptr inbounds i8, ptr %0, i64 1
  %74 = tail call i64 @s_cmp(ptr noundef nonnull %73, ptr noundef nonnull @.str.6, i64 noundef 2, i64 noundef 2) #4
  %75 = icmp eq i64 %74, 0
  store i64 0, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %55, align 8, !tbaa !5
  store float 0.000000e+00, ptr %57, align 4, !tbaa !9
  %76 = load i64, ptr %8, align 8, !tbaa !5
  %.not446 = icmp slt i64 %76, 1
  br i1 %.not446, label %._crit_edge453, label %.lr.ph452

.lr.ph452:                                        ; preds = %27
  %77 = getelementptr inbounds i8, ptr %52, i64 4
  %78 = getelementptr inbounds i8, ptr %50, i64 4
  %79 = getelementptr inbounds i8, ptr %32, i64 4
  %80 = getelementptr inbounds i8, ptr %34, i64 8
  %81 = getelementptr inbounds i8, ptr %54, i64 8
  %82 = getelementptr inbounds i8, ptr %54, i64 16
  %83 = getelementptr inbounds i8, ptr %54, i64 24
  %84 = getelementptr inbounds i8, ptr %54, i64 32
  %85 = getelementptr inbounds i8, ptr %54, i64 40
  %86 = getelementptr inbounds i8, ptr %54, i64 48
  %87 = getelementptr inbounds i8, ptr %54, i64 56
  %88 = getelementptr inbounds i8, ptr %54, i64 64
  %89 = getelementptr inbounds i8, ptr %54, i64 72
  %90 = getelementptr inbounds i8, ptr %54, i64 80
  %91 = getelementptr inbounds i8, ptr %54, i64 88
  %. = select i1 %75, i8 67, i8 84
  %92 = getelementptr inbounds i8, ptr %33, i64 4
  %scevgep518 = getelementptr i8, ptr %25, i64 4
  %scevgep524 = getelementptr i8, ptr %25, i64 -4
  %scevgep531 = getelementptr i8, ptr %25, i64 -4
  %scevgep533 = getelementptr i8, ptr %25, i64 4
  %scevgep576 = getelementptr i8, ptr %22, i64 -4
  %scevgep578 = getelementptr i8, ptr %21, i64 -4
  %scevgep580 = getelementptr i8, ptr %22, i64 4
  %scevgep582 = getelementptr i8, ptr %21, i64 4
  %scevgep613 = getelementptr i8, ptr %19, i64 -4
  %scevgep615 = getelementptr i8, ptr %18, i64 -4
  %scevgep617 = getelementptr i8, ptr %19, i64 4
  %scevgep619 = getelementptr i8, ptr %18, i64 4
  %scevgep650 = getelementptr i8, ptr %17, i64 -4
  %scevgep652 = getelementptr i8, ptr %16, i64 -4
  %scevgep654 = getelementptr i8, ptr %17, i64 4
  %scevgep656 = getelementptr i8, ptr %16, i64 4
  %invariant.gep728 = getelementptr i8, ptr %15, i64 -4
  br label %93

93:                                               ; preds = %.lr.ph452, %.loopexit314
  %94 = phi float [ 0.000000e+00, %.lr.ph452 ], [ %610, %.loopexit314 ]
  %.0259447 = phi i64 [ 1, %.lr.ph452 ], [ %611, %.loopexit314 ]
  %95 = getelementptr inbounds i64, ptr %59, i64 %.0259447
  %96 = load i64, ptr %95, align 8, !tbaa !5
  store i64 %96, ptr %38, align 8, !tbaa !5
  store i64 %96, ptr %48, align 8, !tbaa !5
  %97 = load i64, ptr %14, align 8, !tbaa !5
  %98 = icmp slt i64 %96, %97
  br i1 %98, label %99, label %101

99:                                               ; preds = %93
  %100 = add nsw i64 %96, 1
  store i64 %100, ptr %48, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %99, %93
  %102 = phi i64 [ %100, %99 ], [ %96, %93 ]
  %103 = icmp sgt i64 %102, %97
  br i1 %103, label %.loopexit314, label %104

104:                                              ; preds = %101
  %105 = mul nsw i64 %102, %96
  store i64 %105, ptr %46, align 8, !tbaa !5
  %106 = load i64, ptr %8, align 8, !tbaa !5
  %.not276436 = icmp slt i64 %106, 1
  br i1 %.not276436, label %.loopexit314, label %.lr.ph442

.lr.ph442:                                        ; preds = %104, %608
  %107 = phi float [ %606, %608 ], [ %94, %104 ]
  %.0260437 = phi i64 [ %609, %608 ], [ 1, %104 ]
  %108 = getelementptr inbounds i64, ptr %59, i64 %.0260437
  %109 = load i64, ptr %108, align 8, !tbaa !5
  store i64 %109, ptr %37, align 8, !tbaa !5
  br label %110

110:                                              ; preds = %.lr.ph442, %.loopexit313
  %111 = phi float [ %107, %.lr.ph442 ], [ %606, %.loopexit313 ]
  %.0257432 = phi i64 [ 1, %.lr.ph442 ], [ %607, %.loopexit313 ]
  %112 = add nsw i64 %.0257432, -1
  %113 = getelementptr inbounds [2 x i8], ptr @cchk5_.icht, i64 0, i64 %112
  %114 = load i8, ptr %113, align 1, !tbaa !11
  %115 = icmp ne i8 %114, 67
  %or.cond = select i1 %115, i1 true, i1 %75
  %spec.select = select i1 %or.cond, i8 %114, i8 84
  store i8 %spec.select, ptr %56, align 1, !tbaa !11
  %.val = load i64, ptr %38, align 8
  %.val310 = load i64, ptr %37, align 8
  %storemerge278 = select i1 %115, i64 %.val, i64 %.val310
  store i64 %storemerge278, ptr %39, align 8, !tbaa !5
  %storemerge277 = select i1 %115, i64 %.val310, i64 %.val
  store i64 %storemerge277, ptr %40, align 8, !tbaa !5
  store i64 %storemerge278, ptr %45, align 8, !tbaa !5
  %116 = load i64, ptr %14, align 8, !tbaa !5
  %117 = icmp slt i64 %storemerge278, %116
  br i1 %117, label %118, label %120

118:                                              ; preds = %110
  %119 = add nsw i64 %storemerge278, 1
  store i64 %119, ptr %45, align 8, !tbaa !5
  br label %120

120:                                              ; preds = %118, %110
  %121 = phi i64 [ %119, %118 ], [ %storemerge278, %110 ]
  %122 = icmp sgt i64 %121, %116
  br i1 %122, label %.loopexit313, label %123

123:                                              ; preds = %120
  %124 = mul nsw i64 %121, %storemerge277
  store i64 %124, ptr %43, align 8, !tbaa !5
  br i1 %115, label %133, label %125

125:                                              ; preds = %123
  %126 = shl i64 %116, 1
  store i64 %126, ptr %28, align 8, !tbaa !5
  %127 = call i32 @cmake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %15, ptr noundef nonnull %28, ptr noundef %16, ptr noundef nonnull %45, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %128 = load i64, ptr %45, align 8, !tbaa !5
  store i64 %128, ptr %47, align 8, !tbaa !5
  %129 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %129, ptr %44, align 8, !tbaa !5
  %130 = load i64, ptr %14, align 8, !tbaa !5
  %131 = shl i64 %130, 1
  store i64 %131, ptr %28, align 8, !tbaa !5
  %132 = load i64, ptr %37, align 8, !tbaa !5
  br label %140

133:                                              ; preds = %123
  %134 = call i32 @cmake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %45, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %45, align 8, !tbaa !5
  store i64 %135, ptr %47, align 8, !tbaa !5
  %136 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %136, ptr %44, align 8, !tbaa !5
  %137 = load i64, ptr %37, align 8, !tbaa !5
  %138 = load i64, ptr %14, align 8, !tbaa !5
  %139 = mul nsw i64 %138, %137
  br label %140

140:                                              ; preds = %133, %125
  %.sink505 = phi i64 [ %139, %133 ], [ %132, %125 ]
  %.sink504 = phi ptr [ %14, %133 ], [ %28, %125 ]
  %141 = getelementptr %struct.complex, ptr %15, i64 %.sink505
  %142 = call i32 @cmake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %141, ptr noundef nonnull %.sink504, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %143

143:                                              ; preds = %140, %._crit_edge417
  %144 = phi float [ %111, %140 ], [ %604, %._crit_edge417 ]
  %.0256428 = phi i64 [ 1, %140 ], [ %605, %._crit_edge417 ]
  %145 = add nsw i64 %.0256428, -1
  %146 = getelementptr inbounds [2 x i8], ptr @cchk5_.ichu, i64 0, i64 %145
  %147 = load i8, ptr %146, align 1, !tbaa !11
  store i8 %147, ptr %51, align 1, !tbaa !11
  %148 = icmp eq i8 %147, 85
  %149 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %149, ptr %28, align 8, !tbaa !5
  %.not279410 = icmp slt i64 %149, 1
  br i1 %.not279410, label %._crit_edge417, label %.lr.ph416

.lr.ph416:                                        ; preds = %143
  %150 = load i64, ptr %12, align 8, !tbaa !5
  %151 = icmp slt i64 %150, 1
  br i1 %151, label %.lr.ph416.split.us, label %.lr.ph416.split

.lr.ph416.split.us:                               ; preds = %.lr.ph416
  %152 = getelementptr inbounds %struct.complex, ptr %60, i64 %149
  %153 = load <2 x float>, ptr %152, align 4, !tbaa !9
  store <2 x float> %153, ptr %52, align 8, !tbaa !9
  br label %._crit_edge417

.lr.ph416.split:                                  ; preds = %.lr.ph416, %._crit_edge406
  %154 = phi i64 [ %601, %._crit_edge406 ], [ %149, %.lr.ph416 ]
  %155 = phi float [ %602, %._crit_edge406 ], [ %144, %.lr.ph416 ]
  %.0264411 = phi i64 [ %603, %._crit_edge406 ], [ 1, %.lr.ph416 ]
  %156 = getelementptr inbounds %struct.complex, ptr %60, i64 %.0264411
  %157 = load <2 x float>, ptr %156, align 4, !tbaa !9
  store <2 x float> %157, ptr %52, align 8, !tbaa !9
  %158 = load i64, ptr %12, align 8, !tbaa !5
  %.not280399 = icmp slt i64 %158, 1
  br i1 %.not280399, label %._crit_edge406, label %.lr.ph405

.lr.ph405:                                        ; preds = %.lr.ph416.split, %.loopexit
  %159 = phi float [ %599, %.loopexit ], [ %155, %.lr.ph416.split ]
  %.0263400 = phi i64 [ %600, %.loopexit ], [ 1, %.lr.ph416.split ]
  %160 = getelementptr inbounds %struct.complex, ptr %61, i64 %.0263400
  %161 = load <2 x float>, ptr %160, align 4, !tbaa !9
  store <2 x float> %161, ptr %50, align 8, !tbaa !9
  br i1 %75, label %164, label %.thread306

.thread306:                                       ; preds = %.lr.ph405
  %162 = load i64, ptr %38, align 8, !tbaa !5
  %163 = icmp slt i64 %162, 1
  br label %178

164:                                              ; preds = %.lr.ph405
  %165 = extractelement <2 x float> %161, i64 0
  store float %165, ptr %53, align 4, !tbaa !9
  store float %165, ptr %32, align 8, !tbaa !12
  store float 0.000000e+00, ptr %79, align 4, !tbaa !14
  store float 0.000000e+00, ptr %78, align 4, !tbaa !14
  %166 = load i64, ptr %38, align 8, !tbaa !5
  %167 = icmp slt i64 %166, 1
  br i1 %167, label %178, label %168

168:                                              ; preds = %164
  %169 = load i64, ptr %37, align 8, !tbaa !5
  %170 = icmp slt i64 %169, 1
  br i1 %170, label %176, label %171

171:                                              ; preds = %168
  %172 = load float, ptr %52, align 8, !tbaa !12
  %173 = fcmp oeq float %172, 0.000000e+00
  %174 = load float, ptr %77, align 4
  %175 = fcmp oeq float %174, 0.000000e+00
  %or.cond4 = select i1 %173, i1 %175, i1 false
  br i1 %or.cond4, label %176, label %178

176:                                              ; preds = %171, %168
  %177 = fcmp oeq float %165, 1.000000e+00
  br label %178

178:                                              ; preds = %.thread306, %164, %176, %171
  %.0252.in = phi i1 [ true, %164 ], [ false, %171 ], [ %177, %176 ], [ %163, %.thread306 ]
  %179 = call i32 @cmake_(ptr noundef nonnull %73, ptr noundef nonnull %51, ptr noundef nonnull @.str.5, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %20, ptr noundef nonnull %14, ptr noundef %21, ptr noundef nonnull %48, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %180 = load i64, ptr %41, align 8, !tbaa !5
  %181 = add nsw i64 %180, 1
  store i64 %181, ptr %41, align 8, !tbaa !5
  %182 = load i8, ptr %51, align 1, !tbaa !11
  %183 = load i8, ptr %56, align 1, !tbaa !11
  %184 = load i64, ptr %38, align 8, !tbaa !5
  %185 = load i64, ptr %37, align 8, !tbaa !5
  %186 = load float, ptr %52, align 8, !tbaa !12
  %187 = load float, ptr %77, align 4, !tbaa !14
  %188 = load i64, ptr %43, align 8, !tbaa !5
  %.not282360 = icmp slt i64 %188, 1
  br i1 %.not282360, label %219, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %178
  %min.iters.check667 = icmp ult i64 %188, 8
  br i1 %min.iters.check667, label %.lr.ph.preheader688, label %vector.memcheck649

vector.memcheck649:                               ; preds = %.lr.ph.preheader
  %189 = shl i64 %188, 3
  %scevgep651 = getelementptr i8, ptr %scevgep650, i64 %189
  %scevgep653 = getelementptr i8, ptr %scevgep652, i64 %189
  %scevgep655 = getelementptr i8, ptr %17, i64 %189
  %scevgep657 = getelementptr i8, ptr %16, i64 %189
  %bound0658 = icmp ugt ptr %scevgep653, %17
  %bound1659 = icmp ugt ptr %scevgep651, %16
  %found.conflict660 = and i1 %bound0658, %bound1659
  %bound0661 = icmp ult ptr %scevgep654, %scevgep657
  %bound1662 = icmp ult ptr %scevgep656, %scevgep655
  %found.conflict663 = and i1 %bound0661, %bound1662
  %conflict.rdx664 = or i1 %found.conflict660, %found.conflict663
  br i1 %conflict.rdx664, label %.lr.ph.preheader688, label %vector.ph668

vector.ph668:                                     ; preds = %vector.memcheck649
  %n.vec670 = and i64 %188, 9223372036854775804
  %ind.end671 = or disjoint i64 %n.vec670, 1
  br label %vector.body673

vector.body673:                                   ; preds = %vector.body673, %vector.ph668
  %index674 = phi i64 [ 0, %vector.ph668 ], [ %index.next684, %vector.body673 ]
  %190 = or disjoint i64 %index674, 3
  %191 = getelementptr %struct.complex, ptr %16, i64 %index674
  %192 = getelementptr inbounds %struct.complex, ptr %71, i64 %190
  %wide.vec676 = load <4 x float>, ptr %191, align 4, !tbaa !9
  %wide.vec677 = load <4 x float>, ptr %192, align 4, !tbaa !9
  %193 = getelementptr %struct.complex, ptr %17, i64 %index674
  %194 = getelementptr inbounds %struct.complex, ptr %70, i64 %190
  store <4 x float> %wide.vec676, ptr %193, align 4, !tbaa !9
  store <4 x float> %wide.vec677, ptr %194, align 4, !tbaa !9
  %index.next684 = add nuw i64 %index674, 4
  %195 = icmp eq i64 %index.next684, %n.vec670
  br i1 %195, label %middle.block665, label %vector.body673, !llvm.loop !15

middle.block665:                                  ; preds = %vector.body673
  %cmp.n685 = icmp eq i64 %188, %n.vec670
  br i1 %cmp.n685, label %._crit_edge, label %.lr.ph.preheader688

.lr.ph.preheader688:                              ; preds = %middle.block665, %vector.memcheck649, %.lr.ph.preheader
  %storemerge281361.ph = phi i64 [ 1, %vector.memcheck649 ], [ 1, %.lr.ph.preheader ], [ %ind.end671, %middle.block665 ]
  %196 = add nuw i64 %188, 1
  %197 = sub i64 %196, %storemerge281361.ph
  %198 = sub i64 %188, %storemerge281361.ph
  %xtraiter = and i64 %197, 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.preheader688, %.lr.ph.prol
  %storemerge281361.prol = phi i64 [ %202, %.lr.ph.prol ], [ %storemerge281361.ph, %.lr.ph.preheader688 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader688 ]
  %199 = getelementptr inbounds %struct.complex, ptr %71, i64 %storemerge281361.prol
  %200 = getelementptr inbounds %struct.complex, ptr %70, i64 %storemerge281361.prol
  %201 = load <2 x float>, ptr %199, align 4, !tbaa !9
  store <2 x float> %201, ptr %200, align 4, !tbaa !9
  %202 = add nuw i64 %storemerge281361.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.preheader688
  %storemerge281361.unr = phi i64 [ %storemerge281361.ph, %.lr.ph.preheader688 ], [ %202, %.lr.ph.prol ]
  %203 = icmp ult i64 %198, 3
  br i1 %203, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge281361 = phi i64 [ %218, %.lr.ph ], [ %storemerge281361.unr, %.lr.ph.prol.loopexit ]
  %204 = getelementptr inbounds %struct.complex, ptr %71, i64 %storemerge281361
  %205 = getelementptr inbounds %struct.complex, ptr %70, i64 %storemerge281361
  %206 = load <2 x float>, ptr %204, align 4, !tbaa !9
  store <2 x float> %206, ptr %205, align 4, !tbaa !9
  %207 = getelementptr %struct.complex, ptr %16, i64 %storemerge281361
  %208 = getelementptr %struct.complex, ptr %17, i64 %storemerge281361
  %209 = load <2 x float>, ptr %207, align 4, !tbaa !9
  store <2 x float> %209, ptr %208, align 4, !tbaa !9
  %210 = add nuw i64 %storemerge281361, 2
  %211 = getelementptr inbounds %struct.complex, ptr %71, i64 %210
  %212 = getelementptr inbounds %struct.complex, ptr %70, i64 %210
  %213 = load <2 x float>, ptr %211, align 4, !tbaa !9
  store <2 x float> %213, ptr %212, align 4, !tbaa !9
  %214 = add nuw i64 %storemerge281361, 3
  %215 = getelementptr inbounds %struct.complex, ptr %71, i64 %214
  %216 = getelementptr inbounds %struct.complex, ptr %70, i64 %214
  %217 = load <2 x float>, ptr %215, align 4, !tbaa !9
  store <2 x float> %217, ptr %216, align 4, !tbaa !9
  %218 = add nuw i64 %storemerge281361, 4
  %exitcond.not.3 = icmp eq i64 %214, %188
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block665
  store i64 %188, ptr %29, align 8, !tbaa !5
  store i64 %188, ptr %30, align 8, !tbaa !5
  br label %219

219:                                              ; preds = %._crit_edge, %178
  %220 = load i64, ptr %45, align 8, !tbaa !5
  %221 = load i64, ptr %44, align 8, !tbaa !5
  %.not284363 = icmp slt i64 %221, 1
  br i1 %.not284363, label %252, label %.lr.ph366.preheader

.lr.ph366.preheader:                              ; preds = %219
  %min.iters.check630 = icmp ult i64 %221, 8
  br i1 %min.iters.check630, label %.lr.ph366.preheader687, label %vector.memcheck612

vector.memcheck612:                               ; preds = %.lr.ph366.preheader
  %222 = shl i64 %221, 3
  %scevgep614 = getelementptr i8, ptr %scevgep613, i64 %222
  %scevgep616 = getelementptr i8, ptr %scevgep615, i64 %222
  %scevgep618 = getelementptr i8, ptr %19, i64 %222
  %scevgep620 = getelementptr i8, ptr %18, i64 %222
  %bound0621 = icmp ugt ptr %scevgep616, %19
  %bound1622 = icmp ugt ptr %scevgep614, %18
  %found.conflict623 = and i1 %bound0621, %bound1622
  %bound0624 = icmp ult ptr %scevgep617, %scevgep620
  %bound1625 = icmp ult ptr %scevgep619, %scevgep618
  %found.conflict626 = and i1 %bound0624, %bound1625
  %conflict.rdx627 = or i1 %found.conflict623, %found.conflict626
  br i1 %conflict.rdx627, label %.lr.ph366.preheader687, label %vector.ph631

vector.ph631:                                     ; preds = %vector.memcheck612
  %n.vec633 = and i64 %221, 9223372036854775804
  %ind.end634 = or disjoint i64 %n.vec633, 1
  br label %vector.body636

vector.body636:                                   ; preds = %vector.body636, %vector.ph631
  %index637 = phi i64 [ 0, %vector.ph631 ], [ %index.next647, %vector.body636 ]
  %223 = or disjoint i64 %index637, 3
  %224 = getelementptr %struct.complex, ptr %18, i64 %index637
  %225 = getelementptr inbounds %struct.complex, ptr %69, i64 %223
  %wide.vec639 = load <4 x float>, ptr %224, align 4, !tbaa !9
  %wide.vec640 = load <4 x float>, ptr %225, align 4, !tbaa !9
  %226 = getelementptr %struct.complex, ptr %19, i64 %index637
  %227 = getelementptr inbounds %struct.complex, ptr %68, i64 %223
  store <4 x float> %wide.vec639, ptr %226, align 4, !tbaa !9
  store <4 x float> %wide.vec640, ptr %227, align 4, !tbaa !9
  %index.next647 = add nuw i64 %index637, 4
  %228 = icmp eq i64 %index.next647, %n.vec633
  br i1 %228, label %middle.block628, label %vector.body636, !llvm.loop !22

middle.block628:                                  ; preds = %vector.body636
  %cmp.n648 = icmp eq i64 %221, %n.vec633
  br i1 %cmp.n648, label %._crit_edge367, label %.lr.ph366.preheader687

.lr.ph366.preheader687:                           ; preds = %middle.block628, %vector.memcheck612, %.lr.ph366.preheader
  %storemerge283364.ph = phi i64 [ 1, %vector.memcheck612 ], [ 1, %.lr.ph366.preheader ], [ %ind.end634, %middle.block628 ]
  %229 = add nuw i64 %221, 1
  %230 = sub i64 %229, %storemerge283364.ph
  %231 = sub i64 %221, %storemerge283364.ph
  %xtraiter702 = and i64 %230, 3
  %lcmp.mod703.not = icmp eq i64 %xtraiter702, 0
  br i1 %lcmp.mod703.not, label %.lr.ph366.prol.loopexit, label %.lr.ph366.prol

.lr.ph366.prol:                                   ; preds = %.lr.ph366.preheader687, %.lr.ph366.prol
  %storemerge283364.prol = phi i64 [ %235, %.lr.ph366.prol ], [ %storemerge283364.ph, %.lr.ph366.preheader687 ]
  %prol.iter704 = phi i64 [ %prol.iter704.next, %.lr.ph366.prol ], [ 0, %.lr.ph366.preheader687 ]
  %232 = getelementptr inbounds %struct.complex, ptr %69, i64 %storemerge283364.prol
  %233 = getelementptr inbounds %struct.complex, ptr %68, i64 %storemerge283364.prol
  %234 = load <2 x float>, ptr %232, align 4, !tbaa !9
  store <2 x float> %234, ptr %233, align 4, !tbaa !9
  %235 = add nuw i64 %storemerge283364.prol, 1
  %prol.iter704.next = add i64 %prol.iter704, 1
  %prol.iter704.cmp.not = icmp eq i64 %prol.iter704.next, %xtraiter702
  br i1 %prol.iter704.cmp.not, label %.lr.ph366.prol.loopexit, label %.lr.ph366.prol, !llvm.loop !23

.lr.ph366.prol.loopexit:                          ; preds = %.lr.ph366.prol, %.lr.ph366.preheader687
  %storemerge283364.unr = phi i64 [ %storemerge283364.ph, %.lr.ph366.preheader687 ], [ %235, %.lr.ph366.prol ]
  %236 = icmp ult i64 %231, 3
  br i1 %236, label %._crit_edge367, label %.lr.ph366

.lr.ph366:                                        ; preds = %.lr.ph366.prol.loopexit, %.lr.ph366
  %storemerge283364 = phi i64 [ %251, %.lr.ph366 ], [ %storemerge283364.unr, %.lr.ph366.prol.loopexit ]
  %237 = getelementptr inbounds %struct.complex, ptr %69, i64 %storemerge283364
  %238 = getelementptr inbounds %struct.complex, ptr %68, i64 %storemerge283364
  %239 = load <2 x float>, ptr %237, align 4, !tbaa !9
  store <2 x float> %239, ptr %238, align 4, !tbaa !9
  %240 = getelementptr %struct.complex, ptr %18, i64 %storemerge283364
  %241 = getelementptr %struct.complex, ptr %19, i64 %storemerge283364
  %242 = load <2 x float>, ptr %240, align 4, !tbaa !9
  store <2 x float> %242, ptr %241, align 4, !tbaa !9
  %243 = add nuw i64 %storemerge283364, 2
  %244 = getelementptr inbounds %struct.complex, ptr %69, i64 %243
  %245 = getelementptr inbounds %struct.complex, ptr %68, i64 %243
  %246 = load <2 x float>, ptr %244, align 4, !tbaa !9
  store <2 x float> %246, ptr %245, align 4, !tbaa !9
  %247 = add nuw i64 %storemerge283364, 3
  %248 = getelementptr inbounds %struct.complex, ptr %69, i64 %247
  %249 = getelementptr inbounds %struct.complex, ptr %68, i64 %247
  %250 = load <2 x float>, ptr %248, align 4, !tbaa !9
  store <2 x float> %250, ptr %249, align 4, !tbaa !9
  %251 = add nuw i64 %storemerge283364, 4
  %exitcond471.not.3 = icmp eq i64 %247, %221
  br i1 %exitcond471.not.3, label %._crit_edge367, label %.lr.ph366, !llvm.loop !24

._crit_edge367:                                   ; preds = %.lr.ph366.prol.loopexit, %.lr.ph366, %middle.block628
  store i64 %221, ptr %29, align 8, !tbaa !5
  store i64 %221, ptr %30, align 8, !tbaa !5
  br label %252

252:                                              ; preds = %._crit_edge367, %219
  %253 = load i64, ptr %47, align 8, !tbaa !5
  %254 = load float, ptr %53, align 4
  %255 = load float, ptr %50, align 8
  %256 = load float, ptr %78, align 4
  %257 = load i64, ptr %46, align 8, !tbaa !5
  %.not286370 = icmp slt i64 %257, 1
  br i1 %.not286370, label %289, label %.lr.ph373.preheader

.lr.ph373.preheader:                              ; preds = %252
  %258 = add nuw i64 %257, 1
  %min.iters.check593 = icmp ult i64 %257, 8
  br i1 %min.iters.check593, label %.lr.ph373.preheader686, label %vector.memcheck575

vector.memcheck575:                               ; preds = %.lr.ph373.preheader
  %259 = shl i64 %257, 3
  %scevgep577 = getelementptr i8, ptr %scevgep576, i64 %259
  %scevgep579 = getelementptr i8, ptr %scevgep578, i64 %259
  %scevgep581 = getelementptr i8, ptr %22, i64 %259
  %scevgep583 = getelementptr i8, ptr %21, i64 %259
  %bound0584 = icmp ugt ptr %scevgep579, %22
  %bound1585 = icmp ugt ptr %scevgep577, %21
  %found.conflict586 = and i1 %bound0584, %bound1585
  %bound0587 = icmp ult ptr %scevgep580, %scevgep583
  %bound1588 = icmp ult ptr %scevgep582, %scevgep581
  %found.conflict589 = and i1 %bound0587, %bound1588
  %conflict.rdx590 = or i1 %found.conflict586, %found.conflict589
  br i1 %conflict.rdx590, label %.lr.ph373.preheader686, label %vector.ph594

vector.ph594:                                     ; preds = %vector.memcheck575
  %n.vec596 = and i64 %257, 9223372036854775804
  %ind.end597 = or disjoint i64 %n.vec596, 1
  br label %vector.body599

vector.body599:                                   ; preds = %vector.body599, %vector.ph594
  %index600 = phi i64 [ 0, %vector.ph594 ], [ %index.next610, %vector.body599 ]
  %260 = or disjoint i64 %index600, 3
  %261 = getelementptr %struct.complex, ptr %21, i64 %index600
  %262 = getelementptr inbounds %struct.complex, ptr %64, i64 %260
  %wide.vec602 = load <4 x float>, ptr %261, align 4, !tbaa !9
  %wide.vec603 = load <4 x float>, ptr %262, align 4, !tbaa !9
  %263 = getelementptr %struct.complex, ptr %22, i64 %index600
  %264 = getelementptr inbounds %struct.complex, ptr %63, i64 %260
  store <4 x float> %wide.vec602, ptr %263, align 4, !tbaa !9
  store <4 x float> %wide.vec603, ptr %264, align 4, !tbaa !9
  %index.next610 = add nuw i64 %index600, 4
  %265 = icmp eq i64 %index.next610, %n.vec596
  br i1 %265, label %middle.block591, label %vector.body599, !llvm.loop !25

middle.block591:                                  ; preds = %vector.body599
  %cmp.n611 = icmp eq i64 %257, %n.vec596
  br i1 %cmp.n611, label %._crit_edge374, label %.lr.ph373.preheader686

.lr.ph373.preheader686:                           ; preds = %middle.block591, %vector.memcheck575, %.lr.ph373.preheader
  %storemerge285371.ph = phi i64 [ 1, %vector.memcheck575 ], [ 1, %.lr.ph373.preheader ], [ %ind.end597, %middle.block591 ]
  %266 = add nuw i64 %257, 1
  %267 = sub i64 %266, %storemerge285371.ph
  %268 = sub i64 %257, %storemerge285371.ph
  %xtraiter705 = and i64 %267, 3
  %lcmp.mod706.not = icmp eq i64 %xtraiter705, 0
  br i1 %lcmp.mod706.not, label %.lr.ph373.prol.loopexit, label %.lr.ph373.prol

.lr.ph373.prol:                                   ; preds = %.lr.ph373.preheader686, %.lr.ph373.prol
  %storemerge285371.prol = phi i64 [ %272, %.lr.ph373.prol ], [ %storemerge285371.ph, %.lr.ph373.preheader686 ]
  %prol.iter707 = phi i64 [ %prol.iter707.next, %.lr.ph373.prol ], [ 0, %.lr.ph373.preheader686 ]
  %269 = getelementptr inbounds %struct.complex, ptr %64, i64 %storemerge285371.prol
  %270 = getelementptr inbounds %struct.complex, ptr %63, i64 %storemerge285371.prol
  %271 = load <2 x float>, ptr %269, align 4, !tbaa !9
  store <2 x float> %271, ptr %270, align 4, !tbaa !9
  %272 = add nuw i64 %storemerge285371.prol, 1
  %prol.iter707.next = add i64 %prol.iter707, 1
  %prol.iter707.cmp.not = icmp eq i64 %prol.iter707.next, %xtraiter705
  br i1 %prol.iter707.cmp.not, label %.lr.ph373.prol.loopexit, label %.lr.ph373.prol, !llvm.loop !26

.lr.ph373.prol.loopexit:                          ; preds = %.lr.ph373.prol, %.lr.ph373.preheader686
  %storemerge285371.unr = phi i64 [ %storemerge285371.ph, %.lr.ph373.preheader686 ], [ %272, %.lr.ph373.prol ]
  %273 = icmp ult i64 %268, 3
  br i1 %273, label %._crit_edge374, label %.lr.ph373

.lr.ph373:                                        ; preds = %.lr.ph373.prol.loopexit, %.lr.ph373
  %storemerge285371 = phi i64 [ %288, %.lr.ph373 ], [ %storemerge285371.unr, %.lr.ph373.prol.loopexit ]
  %274 = getelementptr inbounds %struct.complex, ptr %64, i64 %storemerge285371
  %275 = getelementptr inbounds %struct.complex, ptr %63, i64 %storemerge285371
  %276 = load <2 x float>, ptr %274, align 4, !tbaa !9
  store <2 x float> %276, ptr %275, align 4, !tbaa !9
  %277 = getelementptr %struct.complex, ptr %21, i64 %storemerge285371
  %278 = getelementptr %struct.complex, ptr %22, i64 %storemerge285371
  %279 = load <2 x float>, ptr %277, align 4, !tbaa !9
  store <2 x float> %279, ptr %278, align 4, !tbaa !9
  %280 = add nuw i64 %storemerge285371, 2
  %281 = getelementptr inbounds %struct.complex, ptr %64, i64 %280
  %282 = getelementptr inbounds %struct.complex, ptr %63, i64 %280
  %283 = load <2 x float>, ptr %281, align 4, !tbaa !9
  store <2 x float> %283, ptr %282, align 4, !tbaa !9
  %284 = add nuw i64 %storemerge285371, 3
  %285 = getelementptr inbounds %struct.complex, ptr %64, i64 %284
  %286 = getelementptr inbounds %struct.complex, ptr %63, i64 %284
  %287 = load <2 x float>, ptr %285, align 4, !tbaa !9
  store <2 x float> %287, ptr %286, align 4, !tbaa !9
  %288 = add nuw i64 %storemerge285371, 4
  %exitcond472.not.3 = icmp eq i64 %284, %257
  br i1 %exitcond472.not.3, label %._crit_edge374, label %.lr.ph373, !llvm.loop !27

._crit_edge374:                                   ; preds = %.lr.ph373.prol.loopexit, %.lr.ph373, %middle.block591
  store i64 %257, ptr %29, align 8, !tbaa !5
  store i64 %257, ptr %30, align 8, !tbaa !5
  br label %289

289:                                              ; preds = %._crit_edge374, %252
  %storemerge285.lcssa = phi i64 [ %258, %._crit_edge374 ], [ 1, %252 ]
  store i64 %storemerge285.lcssa, ptr %35, align 8, !tbaa !5
  %290 = load i64, ptr %48, align 8, !tbaa !5
  %291 = load i64, ptr %5, align 8, !tbaa !5
  %.not289 = icmp eq i64 %291, 0
  br i1 %75, label %292, label %315

292:                                              ; preds = %289
  br i1 %.not289, label %308, label %293

293:                                              ; preds = %292
  %294 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %294, ptr getelementptr inbounds (i8, ptr @cchk5_.io___334, i64 8), align 8, !tbaa !28
  %295 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___334) #4
  %296 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %297 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %298 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %299 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %300 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %301 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %302 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 4) #4
  %303 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %304 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %305 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %53, i64 noundef 4) #4
  %306 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %307 = call i64 @e_wsfe() #4
  br label %308

308:                                              ; preds = %293, %292
  %309 = load i64, ptr %6, align 8, !tbaa !5
  %.not290 = icmp eq i64 %309, 0
  br i1 %.not290, label %313, label %310

310:                                              ; preds = %308
  store i64 0, ptr %34, align 8, !tbaa !31
  %311 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %311, ptr %80, align 8, !tbaa !33
  %312 = call i64 @f_rew(ptr noundef nonnull %34) #4
  br label %313

313:                                              ; preds = %310, %308
  %314 = call i32 @f2c_cher2k(ptr noundef nonnull %51, ptr noundef nonnull %56, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %52, ptr noundef %16, ptr noundef nonnull %45, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %53, ptr noundef %21, ptr noundef nonnull %48) #4
  br label %338

315:                                              ; preds = %289
  br i1 %.not289, label %331, label %316

316:                                              ; preds = %315
  %317 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %317, ptr getelementptr inbounds (i8, ptr @cchk5_.io___335, i64 8), align 8, !tbaa !28
  %318 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___335) #4
  %319 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %320 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %321 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %322 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %323 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %324 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %325 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 4) #4
  %326 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %327 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %328 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %50, i64 noundef 4) #4
  %329 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %330 = call i64 @e_wsfe() #4
  br label %331

331:                                              ; preds = %316, %315
  %332 = load i64, ptr %6, align 8, !tbaa !5
  %.not288 = icmp eq i64 %332, 0
  br i1 %.not288, label %336, label %333

333:                                              ; preds = %331
  store i64 0, ptr %34, align 8, !tbaa !31
  %334 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %334, ptr %80, align 8, !tbaa !33
  %335 = call i64 @f_rew(ptr noundef nonnull %34) #4
  br label %336

336:                                              ; preds = %333, %331
  %337 = call i32 @f2c_csyr2k(ptr noundef nonnull %51, ptr noundef nonnull %56, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %52, ptr noundef %16, ptr noundef nonnull %45, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %50, ptr noundef %21, ptr noundef nonnull %48) #4
  br label %338

338:                                              ; preds = %336, %313
  %339 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not291 = icmp eq i64 %339, 0
  br i1 %.not291, label %340, label %344

340:                                              ; preds = %338
  %341 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %341, ptr getelementptr inbounds (i8, ptr @cchk5_.io___336, i64 8), align 8, !tbaa !28
  %342 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___336) #4
  %343 = call i64 @e_wsfe() #4
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %633

344:                                              ; preds = %338
  %345 = load i8, ptr %51, align 1, !tbaa !11
  %346 = icmp eq i8 %182, %345
  %347 = zext i1 %346 to i64
  store i64 %347, ptr %54, align 16, !tbaa !5
  %348 = load i8, ptr %56, align 1, !tbaa !11
  %349 = icmp eq i8 %183, %348
  %350 = zext i1 %349 to i64
  store i64 %350, ptr %81, align 8, !tbaa !5
  %351 = load i64, ptr %38, align 8, !tbaa !5
  %352 = icmp eq i64 %184, %351
  %353 = zext i1 %352 to i64
  store i64 %353, ptr %82, align 16, !tbaa !5
  %354 = load i64, ptr %37, align 8, !tbaa !5
  %355 = icmp eq i64 %185, %354
  %356 = zext i1 %355 to i64
  store i64 %356, ptr %83, align 8, !tbaa !5
  %357 = load float, ptr %52, align 8, !tbaa !12
  %358 = fcmp oeq float %186, %357
  %359 = load float, ptr %77, align 4
  %360 = fcmp oeq float %187, %359
  %361 = select i1 %358, i1 %360, i1 false
  %362 = zext i1 %361 to i64
  store i64 %362, ptr %84, align 16, !tbaa !5
  %363 = call i64 @lce_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %43)
  store i64 %363, ptr %85, align 8, !tbaa !5
  %364 = load i64, ptr %45, align 8, !tbaa !5
  %365 = icmp eq i64 %220, %364
  %366 = zext i1 %365 to i64
  store i64 %366, ptr %86, align 16, !tbaa !5
  %367 = call i64 @lce_(ptr noundef %19, ptr noundef %18, ptr noundef nonnull %44)
  store i64 %367, ptr %87, align 8, !tbaa !5
  %368 = load i64, ptr %47, align 8, !tbaa !5
  %369 = icmp eq i64 %253, %368
  %370 = zext i1 %369 to i64
  store i64 %370, ptr %88, align 16, !tbaa !5
  br i1 %75, label %371, label %374

371:                                              ; preds = %344
  %372 = load float, ptr %53, align 4, !tbaa !9
  %373 = fcmp oeq float %254, %372
  br label %380

374:                                              ; preds = %344
  %375 = load float, ptr %50, align 8, !tbaa !12
  %376 = fcmp oeq float %255, %375
  %377 = load float, ptr %78, align 4
  %378 = fcmp oeq float %256, %377
  %379 = select i1 %376, i1 %378, i1 false
  br label %380

380:                                              ; preds = %374, %371
  %storemerge.in = phi i1 [ %379, %374 ], [ %373, %371 ]
  %storemerge = zext i1 %storemerge.in to i64
  store i64 %storemerge, ptr %89, align 8, !tbaa !5
  br i1 %.0252.in, label %381, label %383

381:                                              ; preds = %380
  %382 = call i64 @lce_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %46)
  br label %385

383:                                              ; preds = %380
  %384 = call i64 @lceres_(ptr noundef nonnull @.str.6, ptr noundef nonnull %51, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %22, ptr noundef %21, ptr noundef nonnull %48, i64 noundef 2, i64 noundef 1)
  br label %385

385:                                              ; preds = %383, %381
  %storemerge488 = phi i64 [ %384, %383 ], [ %382, %381 ]
  store i64 %storemerge488, ptr %90, align 16, !tbaa !5
  %386 = load i64, ptr %48, align 8, !tbaa !5
  %387 = icmp eq i64 %290, %386
  %388 = zext i1 %387 to i64
  store i64 %388, ptr %91, align 8, !tbaa !5
  store i64 1, ptr %35, align 8, !tbaa !5
  br label %._crit_edge480

._crit_edge480:                                   ; preds = %385, %397
  %389 = phi i64 [ 1, %385 ], [ %399, %397 ]
  %.0253378 = phi i1 [ true, %385 ], [ %391, %397 ]
  %storemerge292377 = phi i64 [ 0, %385 ], [ %398, %397 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %54, i64 0, i64 %storemerge292377
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %390 = icmp ne i64 %.pre, 0
  %391 = and i1 %.0253378, %390
  %.not304 = icmp eq i64 %.pre, 0
  br i1 %.not304, label %392, label %397

392:                                              ; preds = %._crit_edge480
  %393 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %393, ptr getelementptr inbounds (i8, ptr @cchk5_.io___339, i64 8), align 8, !tbaa !28
  %394 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___339) #4
  %395 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #4
  %396 = call i64 @e_wsfe() #4
  %.pre481 = load i64, ptr %35, align 8, !tbaa !5
  br label %397

397:                                              ; preds = %._crit_edge480, %392
  %398 = phi i64 [ %389, %._crit_edge480 ], [ %.pre481, %392 ]
  %399 = add nsw i64 %398, 1
  store i64 %399, ptr %35, align 8, !tbaa !5
  %400 = icmp slt i64 %398, 12
  br i1 %400, label %._crit_edge480, label %401, !llvm.loop !34

401:                                              ; preds = %397
  br i1 %391, label %403, label %402

402:                                              ; preds = %401
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %633

403:                                              ; preds = %401
  br i1 %.0252.in, label %.loopexit, label %404

404:                                              ; preds = %403
  store i8 %., ptr %58, align 1, !tbaa !11
  %405 = load i64, ptr %38, align 8, !tbaa !5
  store i64 1, ptr %36, align 8, !tbaa !5
  %.not296393 = icmp slt i64 %405, 1
  br i1 %.not296393, label %.loopexit, label %.lr.ph398

.lr.ph398:                                        ; preds = %404, %597
  %indvar = phi i64 [ %indvar.next, %597 ], [ 0, %404 ]
  %406 = phi float [ %595, %597 ], [ %159, %404 ]
  %.0254396 = phi i64 [ %.1255, %597 ], [ 1, %404 ]
  %.0261395 = phi i64 [ %.1262, %597 ], [ 1, %404 ]
  %407 = phi i64 [ %598, %597 ], [ 1, %404 ]
  %408 = shl i64 %indvar, 3
  %scevgep526 = getelementptr i8, ptr %15, i64 %408
  %gep729 = getelementptr i8, ptr %invariant.gep728, i64 %408
  %409 = or disjoint i64 %408, 4
  %scevgep536 = getelementptr i8, ptr %15, i64 %409
  %410 = load i64, ptr %38, align 8
  %reass.sub = sub i64 %410, %407
  %411 = add i64 %reass.sub, 1
  %storemerge297 = select i1 %148, i64 %407, i64 %411
  %.0258 = select i1 %148, i64 1, i64 %407
  store i64 %storemerge297, ptr %42, align 8, !tbaa !5
  %412 = load i64, ptr %37, align 8, !tbaa !5
  store i64 %412, ptr %29, align 8, !tbaa !5
  store i64 1, ptr %35, align 8, !tbaa !5
  %.not299384 = icmp slt i64 %412, 1
  br i1 %115, label %480, label %413

413:                                              ; preds = %.lr.ph398
  %.pre485 = load i64, ptr %14, align 8, !tbaa !5
  br i1 %.not299384, label %._crit_edge383, label %.lr.ph382.preheader

.lr.ph382.preheader:                              ; preds = %413
  %414 = shl nuw i64 %407, 1
  %415 = add i64 %414, -2
  %416 = shl nuw i64 %407, 1
  %417 = add i64 %416, -2
  br label %.lr.ph382

.lr.ph382:                                        ; preds = %.lr.ph382.preheader, %464
  %418 = phi i64 [ %465, %464 ], [ %412, %.lr.ph382.preheader ]
  %419 = phi i64 [ %467, %464 ], [ %.pre485, %.lr.ph382.preheader ]
  %storemerge300380 = phi i64 [ %469, %464 ], [ 1, %.lr.ph382.preheader ]
  %420 = mul nsw i64 %415, %419
  %421 = load i64, ptr %37, align 8, !tbaa !5
  %422 = add i64 %421, %storemerge300380
  %423 = add i64 %422, %420
  store i64 %423, ptr %31, align 8, !tbaa !5
  %424 = load float, ptr %52, align 8, !tbaa !12
  %425 = getelementptr inbounds %struct.complex, ptr %72, i64 %423
  %426 = load float, ptr %77, align 4, !tbaa !14
  %427 = fneg float %426
  %428 = load <2 x float>, ptr %425, align 4, !tbaa !9
  %429 = insertelement <2 x float> poison, float %426, i64 0
  %430 = insertelement <2 x float> %429, float %427, i64 1
  %431 = fmul <2 x float> %428, %430
  %432 = shufflevector <2 x float> %431, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %433 = insertelement <2 x float> poison, float %424, i64 0
  %434 = shufflevector <2 x float> %433, <2 x float> poison, <2 x i32> zeroinitializer
  %435 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %434, <2 x float> %428, <2 x float> %432)
  store <2 x float> %435, ptr %32, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.complex, ptr %62, i64 %storemerge300380
  store <2 x float> %435, ptr %436, align 4, !tbaa !9
  store i64 %422, ptr %30, align 8, !tbaa !5
  br i1 %75, label %437, label %456

437:                                              ; preds = %.lr.ph382
  call void @r_cnjg(ptr noundef nonnull %33, ptr noundef nonnull %52) #4
  %438 = load i64, ptr %14, align 8, !tbaa !5
  %439 = mul nsw i64 %417, %438
  %440 = load i64, ptr %35, align 8, !tbaa !5
  %441 = add nsw i64 %439, %440
  %442 = load float, ptr %33, align 8, !tbaa !12
  %443 = getelementptr inbounds %struct.complex, ptr %72, i64 %441
  %444 = load float, ptr %92, align 4, !tbaa !14
  %445 = fneg float %444
  %446 = load <2 x float>, ptr %443, align 4, !tbaa !9
  %447 = insertelement <2 x float> poison, float %444, i64 0
  %448 = insertelement <2 x float> %447, float %445, i64 1
  %449 = fmul <2 x float> %446, %448
  %450 = shufflevector <2 x float> %449, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %451 = insertelement <2 x float> poison, float %442, i64 0
  %452 = shufflevector <2 x float> %451, <2 x float> poison, <2 x i32> zeroinitializer
  %453 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %452, <2 x float> %446, <2 x float> %450)
  %454 = load i64, ptr %30, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.complex, ptr %62, i64 %454
  store <2 x float> %453, ptr %455, align 4, !tbaa !9
  %.pre483 = load i64, ptr %29, align 8, !tbaa !5
  br label %464

456:                                              ; preds = %.lr.ph382
  %457 = add nsw i64 %420, %storemerge300380
  %458 = getelementptr inbounds %struct.complex, ptr %72, i64 %457
  %459 = load <2 x float>, ptr %458, align 4, !tbaa !9
  %460 = fmul <2 x float> %459, %430
  %461 = shufflevector <2 x float> %460, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %462 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %434, <2 x float> %459, <2 x float> %461)
  %463 = getelementptr inbounds %struct.complex, ptr %62, i64 %422
  store <2 x float> %462, ptr %463, align 4, !tbaa !9
  br label %464

464:                                              ; preds = %437, %456
  %465 = phi i64 [ %.pre483, %437 ], [ %418, %456 ]
  %466 = phi i64 [ %440, %437 ], [ %storemerge300380, %456 ]
  %467 = phi i64 [ %438, %437 ], [ %419, %456 ]
  %.sink479 = phi i64 [ %441, %437 ], [ %457, %456 ]
  %468 = phi <2 x float> [ %453, %437 ], [ %462, %456 ]
  store i64 %.sink479, ptr %31, align 8
  store <2 x float> %468, ptr %32, align 8
  %469 = add nsw i64 %466, 1
  store i64 %469, ptr %35, align 8, !tbaa !5
  %.not301.not = icmp slt i64 %466, %465
  br i1 %.not301.not, label %.lr.ph382, label %._crit_edge383.loopexit, !llvm.loop !35

._crit_edge383.loopexit:                          ; preds = %464
  %.pre484 = load i64, ptr %37, align 8, !tbaa !5
  br label %._crit_edge383

._crit_edge383:                                   ; preds = %._crit_edge383.loopexit, %413
  %470 = phi i64 [ %467, %._crit_edge383.loopexit ], [ %.pre485, %413 ]
  %471 = phi i64 [ %.pre484, %._crit_edge383.loopexit ], [ %412, %413 ]
  %472 = shl i64 %471, 1
  store i64 %472, ptr %29, align 8, !tbaa !5
  %473 = shl i64 %470, 1
  store i64 %473, ptr %30, align 8, !tbaa !5
  store i64 %473, ptr %31, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.complex, ptr %72, i64 %.0254396
  %475 = mul nsw i64 %407, %65
  %476 = getelementptr %struct.complex, ptr %67, i64 %.0258
  %477 = getelementptr %struct.complex, ptr %476, i64 %475
  %478 = getelementptr inbounds %struct.complex, ptr %64, i64 %.0261395
  %479 = call i32 @cmmch_(ptr noundef nonnull %58, ptr noundef nonnull @.str, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c_b2, ptr noundef nonnull %474, ptr noundef nonnull %30, ptr noundef %25, ptr noundef nonnull %31, ptr noundef nonnull %50, ptr noundef %477, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %478, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %581

480:                                              ; preds = %.lr.ph398
  br i1 %.not299384, label %._crit_edge388, label %.lr.ph387

.lr.ph387:                                        ; preds = %480
  br i1 %75, label %.lr.ph387.split.us.preheader, label %.lr.ph387.split

.lr.ph387.split.us.preheader:                     ; preds = %.lr.ph387
  %invariant.gep501 = getelementptr %struct.complex, ptr %72, i64 %407
  br label %.lr.ph387.split.us

.lr.ph387.split.us:                               ; preds = %.lr.ph387.split.us.preheader, %.lr.ph387.split.us
  %storemerge298385.us = phi i64 [ %515, %.lr.ph387.split.us ], [ 1, %.lr.ph387.split.us.preheader ]
  store i64 %storemerge298385.us, ptr %30, align 8, !tbaa !5
  %481 = load i64, ptr %37, align 8, !tbaa !5
  %482 = add nsw i64 %storemerge298385.us, -1
  %483 = add i64 %482, %481
  %484 = load i64, ptr %14, align 8, !tbaa !5
  %485 = mul nsw i64 %483, %484
  %gep502 = getelementptr %struct.complex, ptr %invariant.gep501, i64 %485
  call void @r_cnjg(ptr noundef nonnull %33, ptr noundef %gep502) #4
  %486 = load float, ptr %52, align 8, !tbaa !12
  %487 = load float, ptr %77, align 4, !tbaa !14
  %488 = fneg float %487
  %489 = load <2 x float>, ptr %33, align 8, !tbaa !9
  %490 = insertelement <2 x float> poison, float %487, i64 0
  %491 = insertelement <2 x float> %490, float %488, i64 1
  %492 = fmul <2 x float> %489, %491
  %493 = shufflevector <2 x float> %492, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %494 = insertelement <2 x float> poison, float %486, i64 0
  %495 = shufflevector <2 x float> %494, <2 x float> poison, <2 x i32> zeroinitializer
  %496 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %495, <2 x float> %489, <2 x float> %493)
  store <2 x float> %496, ptr %32, align 8, !tbaa !9
  %497 = load i64, ptr %30, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.complex, ptr %62, i64 %497
  store <2 x float> %496, ptr %498, align 4, !tbaa !9
  %499 = load i64, ptr %37, align 8, !tbaa !5
  %500 = load i64, ptr %35, align 8, !tbaa !5
  %501 = add nsw i64 %500, %499
  store i64 %501, ptr %30, align 8, !tbaa !5
  %502 = add nsw i64 %500, -1
  %503 = load i64, ptr %14, align 8, !tbaa !5
  %504 = mul nsw i64 %503, %502
  %505 = add nsw i64 %504, %407
  store i64 %505, ptr %31, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.complex, ptr %72, i64 %505
  %507 = load <2 x float>, ptr %506, align 4, !tbaa !9
  %508 = fmul <2 x float> %507, %491
  %509 = shufflevector <2 x float> %508, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %510 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %495, <2 x float> %507, <2 x float> %509)
  store <2 x float> %510, ptr %33, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef nonnull %32, ptr noundef nonnull %33) #4
  %511 = load i64, ptr %30, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.complex, ptr %62, i64 %511
  %513 = load <2 x float>, ptr %32, align 8, !tbaa !9
  store <2 x float> %513, ptr %512, align 4, !tbaa !9
  %514 = load i64, ptr %35, align 8, !tbaa !5
  %515 = add nsw i64 %514, 1
  store i64 %515, ptr %35, align 8, !tbaa !5
  %516 = load i64, ptr %29, align 8, !tbaa !5
  %.not299.us.not = icmp slt i64 %514, %516
  br i1 %.not299.us.not, label %.lr.ph387.split.us, label %._crit_edge388.loopexit, !llvm.loop !36

.lr.ph387.split:                                  ; preds = %.lr.ph387
  %517 = load i64, ptr %14, align 8, !tbaa !5
  %518 = load float, ptr %52, align 8, !tbaa !12
  %519 = load float, ptr %77, align 4, !tbaa !14
  %520 = fneg float %519
  %invariant.gep = getelementptr %struct.complex, ptr %72, i64 %407
  %min.iters.check = icmp ult i64 %412, 12
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph387.split
  %ident.check = icmp ne i64 %517, 1
  %521 = add nsw i64 %412, -1
  %522 = shl i64 %412, 3
  %scevgep = getelementptr i8, ptr %25, i64 %522
  %mul.result = shl i64 %521, 3
  %mul.overflow = icmp ugt i64 %521, 2305843009213693951
  %523 = getelementptr i8, ptr %scevgep, i64 %mul.result
  %524 = icmp ult ptr %523, %scevgep
  %525 = or i1 %524, %mul.overflow
  %scevgep519 = getelementptr i8, ptr %scevgep518, i64 %522
  %mul.result521 = shl i64 %521, 3
  %526 = getelementptr i8, ptr %scevgep519, i64 %mul.result521
  %527 = icmp ult ptr %526, %scevgep519
  %528 = or i1 %ident.check, %525
  %529 = or i1 %527, %528
  br i1 %529, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %530 = shl i64 %412, 3
  %scevgep523 = getelementptr i8, ptr %25, i64 %530
  %531 = shl i64 %412, 4
  %scevgep525 = getelementptr i8, ptr %scevgep524, i64 %531
  %scevgep528 = getelementptr i8, ptr %gep729, i64 %530
  %scevgep529 = getelementptr i8, ptr %scevgep526, i64 %530
  %scevgep530 = getelementptr i8, ptr %gep729, i64 %531
  %scevgep532 = getelementptr i8, ptr %scevgep531, i64 %530
  %scevgep534 = getelementptr i8, ptr %scevgep533, i64 %530
  %scevgep535 = getelementptr i8, ptr %25, i64 %531
  %scevgep537 = getelementptr i8, ptr %scevgep536, i64 %530
  %scevgep538 = getelementptr i8, ptr %scevgep526, i64 %531
  %bound0 = icmp ugt ptr %gep729, %25
  %bound1 = icmp ult ptr %scevgep526, %scevgep525
  %found.conflict = and i1 %bound0, %bound1
  %bound0539 = icmp ult ptr %scevgep523, %scevgep530
  %bound1540 = icmp ult ptr %scevgep529, %scevgep525
  %found.conflict541 = and i1 %bound0539, %bound1540
  %conflict.rdx = or i1 %found.conflict, %found.conflict541
  %bound0542 = icmp ugt ptr %scevgep528, %25
  %bound1543 = icmp ult ptr %scevgep526, %scevgep532
  %found.conflict544 = and i1 %bound0542, %bound1543
  %conflict.rdx545 = or i1 %conflict.rdx, %found.conflict544
  %bound0546 = icmp ugt ptr %scevgep530, %25
  %bound1547 = icmp ult ptr %scevgep526, %scevgep531
  %found.conflict548 = and i1 %bound0546, %bound1547
  %conflict.rdx549 = or i1 %conflict.rdx545, %found.conflict548
  %bound0550 = icmp ult ptr %scevgep533, %scevgep526
  %bound1551 = icmp ult ptr %scevgep536, %scevgep535
  %found.conflict552 = and i1 %bound0550, %bound1551
  %conflict.rdx553 = or i1 %conflict.rdx549, %found.conflict552
  %bound0554 = icmp ult ptr %scevgep534, %scevgep538
  %bound1555 = icmp ult ptr %scevgep537, %scevgep535
  %found.conflict556 = and i1 %bound0554, %bound1555
  %conflict.rdx557 = or i1 %conflict.rdx553, %found.conflict556
  %bound0558 = icmp ult ptr %scevgep533, %scevgep529
  %bound1559 = icmp ult ptr %scevgep536, %scevgep523
  %found.conflict560 = and i1 %bound0558, %bound1559
  %conflict.rdx561 = or i1 %conflict.rdx557, %found.conflict560
  %bound0562 = icmp ult ptr %scevgep533, %scevgep538
  %bound1563 = icmp ult ptr %scevgep536, %25
  %found.conflict564 = and i1 %bound0562, %bound1563
  %conflict.rdx565 = or i1 %conflict.rdx561, %found.conflict564
  br i1 %conflict.rdx565, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %412, 4611686018427387900
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %520, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert567 = insertelement <4 x float> poison, float %518, i64 0
  %broadcast.splat568 = shufflevector <4 x float> %broadcast.splatinsert567, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert569 = insertelement <4 x float> poison, float %519, i64 0
  %broadcast.splat570 = shufflevector <4 x float> %broadcast.splatinsert569, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep724 = getelementptr i8, ptr %invariant.gep, i64 -8
  %invariant.gep726 = getelementptr %struct.complex, ptr %72, i64 %407
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %532 = add nuw nsw i64 %412, %offset.idx
  %gep725 = getelementptr %struct.complex, ptr %invariant.gep724, i64 %532
  %wide.vec = load <8 x float>, ptr %gep725, align 4, !tbaa !9
  %strided.vec = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec566 = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %533 = fmul <4 x float> %strided.vec566, %broadcast.splat
  %534 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat568, <4 x float> %strided.vec, <4 x float> %533)
  %535 = fmul <4 x float> %strided.vec, %broadcast.splat570
  %536 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat568, <4 x float> %strided.vec566, <4 x float> %535)
  %537 = getelementptr %struct.complex, ptr %25, i64 %index
  %interleaved.vec = shufflevector <4 x float> %534, <4 x float> %536, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec, ptr %537, align 4, !tbaa !9
  %gep727 = getelementptr %struct.complex, ptr %invariant.gep726, i64 %index
  %wide.vec571 = load <8 x float>, ptr %gep727, align 4, !tbaa !9
  %strided.vec572 = shufflevector <8 x float> %wide.vec571, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec573 = shufflevector <8 x float> %wide.vec571, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %538 = fmul <4 x float> %strided.vec573, %broadcast.splat
  %539 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat568, <4 x float> %strided.vec572, <4 x float> %538)
  %540 = fmul <4 x float> %broadcast.splat570, %strided.vec572
  %541 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat568, <4 x float> %strided.vec573, <4 x float> %540)
  %542 = getelementptr inbounds %struct.complex, ptr %62, i64 %532
  %interleaved.vec574 = shufflevector <4 x float> %539, <4 x float> %541, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec574, ptr %542, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %543 = icmp eq i64 %index.next, %n.vec
  br i1 %543, label %middle.block, label %vector.body, !llvm.loop !37

middle.block:                                     ; preds = %vector.body
  %544 = or disjoint i64 %index, 3
  %545 = add nsw i64 %544, %407
  %cmp.n = icmp eq i64 %412, %n.vec
  %546 = shufflevector <4 x float> %539, <4 x float> %541, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n, label %._crit_edge388.split, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph387.split
  %.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph387.split ], [ %ind.end, %middle.block ]
  %547 = insertelement <2 x float> poison, float %519, i64 0
  %548 = insertelement <2 x float> %547, float %520, i64 1
  %549 = insertelement <2 x float> poison, float %518, i64 0
  %550 = shufflevector <2 x float> %549, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %551 = phi i64 [ %569, %scalar.ph ], [ %.ph, %scalar.ph.preheader ]
  %552 = add nuw nsw i64 %412, %551
  %553 = add nsw i64 %552, -1
  %554 = mul nsw i64 %553, %517
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %554
  %555 = getelementptr inbounds %struct.complex, ptr %62, i64 %551
  %556 = load <2 x float>, ptr %gep, align 4, !tbaa !9
  %557 = fmul <2 x float> %556, %548
  %558 = shufflevector <2 x float> %557, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %559 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %550, <2 x float> %556, <2 x float> %558)
  store <2 x float> %559, ptr %555, align 4, !tbaa !9
  %560 = add nsw i64 %551, -1
  %561 = mul nsw i64 %517, %560
  %562 = add nsw i64 %561, %407
  %563 = getelementptr inbounds %struct.complex, ptr %72, i64 %562
  %564 = load <2 x float>, ptr %563, align 4, !tbaa !9
  %565 = fmul <2 x float> %564, %548
  %566 = shufflevector <2 x float> %565, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %567 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %550, <2 x float> %564, <2 x float> %566)
  %568 = getelementptr inbounds %struct.complex, ptr %62, i64 %552
  store <2 x float> %567, ptr %568, align 4, !tbaa !9
  %569 = add nuw nsw i64 %551, 1
  %.not299.not = icmp slt i64 %551, %412
  br i1 %.not299.not, label %scalar.ph, label %._crit_edge388.split, !llvm.loop !38

._crit_edge388.split:                             ; preds = %scalar.ph, %middle.block
  %.lcssa510 = phi i64 [ %545, %middle.block ], [ %562, %scalar.ph ]
  %.lcssa507 = phi i64 [ %ind.end, %middle.block ], [ %569, %scalar.ph ]
  %570 = phi <2 x float> [ %546, %middle.block ], [ %567, %scalar.ph ]
  store i64 %.lcssa510, ptr %31, align 8, !tbaa !5
  store <2 x float> %570, ptr %32, align 8, !tbaa !9
  store i64 %.lcssa507, ptr %35, align 8, !tbaa !5
  br label %._crit_edge388

._crit_edge388.loopexit:                          ; preds = %.lr.ph387.split.us
  %.pre486 = load i64, ptr %37, align 8, !tbaa !5
  br label %._crit_edge388

._crit_edge388:                                   ; preds = %._crit_edge388.loopexit, %._crit_edge388.split, %480
  %571 = phi i64 [ %.pre486, %._crit_edge388.loopexit ], [ %412, %._crit_edge388.split ], [ %412, %480 ]
  %572 = shl i64 %571, 1
  store i64 %572, ptr %29, align 8, !tbaa !5
  %573 = load i64, ptr %14, align 8, !tbaa !5
  %574 = shl i64 %573, 1
  store i64 %574, ptr %30, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.complex, ptr %72, i64 %.0258
  %576 = mul nsw i64 %407, %65
  %577 = getelementptr %struct.complex, ptr %67, i64 %.0258
  %578 = getelementptr %struct.complex, ptr %577, i64 %576
  %579 = getelementptr inbounds %struct.complex, ptr %64, i64 %.0261395
  %580 = call i32 @cmmch_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c_b2, ptr noundef nonnull %575, ptr noundef nonnull %14, ptr noundef %25, ptr noundef nonnull %30, ptr noundef nonnull %50, ptr noundef %578, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %579, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %581

581:                                              ; preds = %._crit_edge388, %._crit_edge383
  %582 = load i64, ptr %48, align 8, !tbaa !5
  br i1 %148, label %583, label %585

583:                                              ; preds = %581
  %584 = add nsw i64 %582, %.0261395
  br label %592

585:                                              ; preds = %581
  %586 = add i64 %.0261395, 1
  %587 = add i64 %586, %582
  br i1 %115, label %592, label %588

588:                                              ; preds = %585
  %589 = load i64, ptr %14, align 8, !tbaa !5
  %590 = shl i64 %589, 1
  %591 = add nsw i64 %590, %.0254396
  br label %592

592:                                              ; preds = %585, %588, %583
  %.1262 = phi i64 [ %584, %583 ], [ %587, %588 ], [ %587, %585 ]
  %.1255 = phi i64 [ %.0254396, %583 ], [ %591, %588 ], [ %.0254396, %585 ]
  %593 = load float, ptr %49, align 4
  %594 = fcmp oge float %406, %593
  %595 = select i1 %594, float %406, float %593
  store float %595, ptr %57, align 4, !tbaa !9
  %596 = load i64, ptr %7, align 8, !tbaa !5
  %.not302 = icmp eq i64 %596, 0
  br i1 %.not302, label %597, label %625

597:                                              ; preds = %592
  %598 = add nuw nsw i64 %407, 1
  store i64 %598, ptr %36, align 8, !tbaa !5
  %.not296.not = icmp slt i64 %407, %405
  %indvar.next = add i64 %indvar, 1
  br i1 %.not296.not, label %.lr.ph398, label %.loopexit, !llvm.loop !39

.loopexit:                                        ; preds = %597, %404, %403
  %599 = phi float [ %159, %404 ], [ %159, %403 ], [ %595, %597 ]
  %600 = add nuw i64 %.0263400, 1
  %exitcond473.not = icmp eq i64 %.0263400, %158
  br i1 %exitcond473.not, label %._crit_edge406.loopexit, label %.lr.ph405, !llvm.loop !40

._crit_edge406.loopexit:                          ; preds = %.loopexit
  %.pre487 = load i64, ptr %28, align 8, !tbaa !5
  br label %._crit_edge406

._crit_edge406:                                   ; preds = %._crit_edge406.loopexit, %.lr.ph416.split
  %601 = phi i64 [ %154, %.lr.ph416.split ], [ %.pre487, %._crit_edge406.loopexit ]
  %602 = phi float [ %155, %.lr.ph416.split ], [ %599, %._crit_edge406.loopexit ]
  %603 = add nuw nsw i64 %.0264411, 1
  %.not279.not = icmp slt i64 %.0264411, %601
  br i1 %.not279.not, label %.lr.ph416.split, label %._crit_edge417, !llvm.loop !41

._crit_edge417:                                   ; preds = %._crit_edge406, %.lr.ph416.split.us, %143
  %604 = phi float [ %144, %143 ], [ %144, %.lr.ph416.split.us ], [ %602, %._crit_edge406 ]
  %605 = add nuw nsw i64 %.0256428, 1
  %exitcond474.not = icmp eq i64 %605, 3
  br i1 %exitcond474.not, label %.loopexit313, label %143, !llvm.loop !43

.loopexit313:                                     ; preds = %._crit_edge417, %120
  %606 = phi float [ %111, %120 ], [ %604, %._crit_edge417 ]
  %607 = add nuw nsw i64 %.0257432, 1
  %exitcond475.not = icmp eq i64 %607, 3
  br i1 %exitcond475.not, label %608, label %110, !llvm.loop !44

608:                                              ; preds = %.loopexit313
  %609 = add nuw i64 %.0260437, 1
  %exitcond476.not = icmp eq i64 %.0260437, %106
  br i1 %exitcond476.not, label %.loopexit314, label %.lr.ph442, !llvm.loop !45

.loopexit314:                                     ; preds = %608, %104, %101
  %610 = phi float [ %94, %101 ], [ %94, %104 ], [ %606, %608 ]
  %611 = add nuw i64 %.0259447, 1
  %exitcond477.not = icmp eq i64 %.0259447, %76
  br i1 %exitcond477.not, label %._crit_edge453, label %93, !llvm.loop !46

._crit_edge453:                                   ; preds = %.loopexit314, %27
  %612 = phi float [ 0.000000e+00, %27 ], [ %610, %.loopexit314 ]
  %613 = load float, ptr %2, align 4, !tbaa !9
  %614 = fcmp olt float %612, %613
  %615 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %614, label %616, label %620

616:                                              ; preds = %._crit_edge453
  store i64 %615, ptr getelementptr inbounds (i8, ptr @cchk5_.io___347, i64 8), align 8, !tbaa !28
  %617 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___347) #4
  %618 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %619 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  br label %665

620:                                              ; preds = %._crit_edge453
  store i64 %615, ptr getelementptr inbounds (i8, ptr @cchk5_.io___348, i64 8), align 8, !tbaa !28
  %621 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___348) #4
  %622 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %623 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %624 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %57, i64 noundef 4) #4
  br label %665

625:                                              ; preds = %592
  %626 = load i64, ptr %38, align 8, !tbaa !5
  %627 = icmp sgt i64 %626, 1
  br i1 %627, label %628, label %633

628:                                              ; preds = %625
  %629 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %629, ptr getelementptr inbounds (i8, ptr @cchk5_.io___349, i64 8), align 8, !tbaa !28
  %630 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___349) #4
  %631 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #4
  %632 = call i64 @e_wsfe() #4
  br label %633

633:                                              ; preds = %625, %628, %402, %340
  %634 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %634, ptr getelementptr inbounds (i8, ptr @cchk5_.io___350, i64 8), align 8, !tbaa !28
  %635 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___350) #4
  %636 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %637 = call i64 @e_wsfe() #4
  %638 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %75, label %639, label %652

639:                                              ; preds = %633
  store i64 %638, ptr getelementptr inbounds (i8, ptr @cchk5_.io___351, i64 8), align 8, !tbaa !28
  %640 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___351) #4
  %641 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %642 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %643 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %644 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %645 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %646 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %647 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 4) #4
  %648 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %649 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %650 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %53, i64 noundef 4) #4
  %651 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  br label %665

652:                                              ; preds = %633
  store i64 %638, ptr getelementptr inbounds (i8, ptr @cchk5_.io___352, i64 8), align 8, !tbaa !28
  %653 = call i64 @s_wsfe(ptr noundef nonnull @cchk5_.io___352) #4
  %654 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %655 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %656 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %657 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %658 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %659 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %660 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 4) #4
  %661 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %662 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %663 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %50, i64 noundef 4) #4
  %664 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  br label %665

665:                                              ; preds = %639, %652, %616, %620
  %666 = call i64 @e_wsfe() #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #4
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 8, 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 8, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 16, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #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, 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_cher2k(ptr noundef, ptr noundef, ptr noundef, 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_csyr2k(ptr noundef, ptr noundef, ptr noundef, 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 <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #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 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !10, i64 0}
!13 = !{!"", !10, i64 0, !10, i64 4}
!14 = !{!13, !10, 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}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16, !17, !18}
!38 = distinct !{!38, !16, !17}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16, !42}
!42 = !{!"llvm.loop.unswitch.partial.disable"}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}


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