; 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_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
@cchk2_.ichs = external hidden global [2 x i8], align 1
@cchk2_.ichu = external hidden global [2 x i8], align 1
@cchk2_.io___172 = external hidden global %struct.cilist, align 8
@cchk2_.io___173 = external hidden global %struct.cilist, align 8
@cchk2_.io___176 = external hidden global %struct.cilist, align 8
@cchk2_.io___178 = external hidden global %struct.cilist, align 8
@cchk2_.io___179 = external hidden global %struct.cilist, align 8
@cchk2_.io___180 = external hidden global %struct.cilist, align 8
@cchk2_.io___181 = external hidden global %struct.cilist, align 8
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1

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

162:                                              ; preds = %761, %27
  %163 = load i64, ptr %76, align 8, !tbaa !9
  %164 = load i64, ptr %61, align 8, !tbaa !9
  %165 = icmp sle i64 %163, %164
  br i1 %165, label %166, label %764

166:                                              ; preds = %162
  %167 = load ptr, ptr %37, align 8, !tbaa !5
  %168 = load i64, ptr %76, align 8, !tbaa !9
  %169 = getelementptr inbounds i64, ptr %167, i64 %168
  %170 = load i64, ptr %169, align 8, !tbaa !9
  store i64 %170, ptr %70, align 8, !tbaa !9
  %171 = load ptr, ptr %36, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  store i64 %172, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %757, %166
  %174 = load i64, ptr %77, align 8, !tbaa !9
  %175 = load i64, ptr %62, align 8, !tbaa !9
  %176 = icmp sle i64 %174, %175
  br i1 %176, label %177, label %760

177:                                              ; preds = %173
  %178 = load ptr, ptr %37, align 8, !tbaa !5
  %179 = load i64, ptr %77, align 8, !tbaa !9
  %180 = getelementptr inbounds i64, ptr %178, i64 %179
  %181 = load i64, ptr %180, align 8, !tbaa !9
  store i64 %181, ptr %71, align 8, !tbaa !9
  %182 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %182, ptr %85, align 8, !tbaa !9
  %183 = load i64, ptr %85, align 8, !tbaa !9
  %184 = load ptr, ptr %42, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = icmp slt i64 %183, %185
  br i1 %186, label %187, label %190

187:                                              ; preds = %177
  %188 = load i64, ptr %85, align 8, !tbaa !9
  %189 = add nsw i64 %188, 1
  store i64 %189, ptr %85, align 8, !tbaa !9
  br label %190

190:                                              ; preds = %187, %177
  %191 = load i64, ptr %85, align 8, !tbaa !9
  %192 = load ptr, ptr %42, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = icmp sgt i64 %191, %193
  br i1 %194, label %195, label %196

195:                                              ; preds = %190
  br label %756

196:                                              ; preds = %190
  %197 = load i64, ptr %85, align 8, !tbaa !9
  %198 = load i64, ptr %71, align 8, !tbaa !9
  %199 = mul nsw i64 %197, %198
  store i64 %199, ptr %83, align 8, !tbaa !9
  %200 = load i64, ptr %71, align 8, !tbaa !9
  %201 = icmp sle i64 %200, 0
  br i1 %201, label %205, label %202

202:                                              ; preds = %196
  %203 = load i64, ptr %70, align 8, !tbaa !9
  %204 = icmp sle i64 %203, 0
  br label %205

205:                                              ; preds = %202, %196
  %206 = phi i1 [ true, %196 ], [ %204, %202 ]
  %207 = zext i1 %206 to i32
  %208 = sext i32 %207 to i64
  store i64 %208, ptr %99, align 8, !tbaa !9
  %209 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %209, ptr %84, align 8, !tbaa !9
  %210 = load i64, ptr %84, align 8, !tbaa !9
  %211 = load ptr, ptr %42, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  %213 = icmp slt i64 %210, %212
  br i1 %213, label %214, label %217

214:                                              ; preds = %205
  %215 = load i64, ptr %84, align 8, !tbaa !9
  %216 = add nsw i64 %215, 1
  store i64 %216, ptr %84, align 8, !tbaa !9
  br label %217

217:                                              ; preds = %214, %205
  %218 = load i64, ptr %84, align 8, !tbaa !9
  %219 = load ptr, ptr %42, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp sgt i64 %218, %220
  br i1 %221, label %222, label %223

222:                                              ; preds = %217
  br label %756

223:                                              ; preds = %217
  %224 = load i64, ptr %84, align 8, !tbaa !9
  %225 = load i64, ptr %71, align 8, !tbaa !9
  %226 = mul nsw i64 %224, %225
  store i64 %226, ptr %81, align 8, !tbaa !9
  %227 = load ptr, ptr %46, align 8, !tbaa !5
  %228 = load i64, ptr %58, align 8, !tbaa !9
  %229 = getelementptr inbounds %struct.complex, ptr %227, i64 %228
  %230 = load ptr, ptr %42, align 8, !tbaa !5
  %231 = load ptr, ptr %47, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.complex, ptr %231, i64 1
  %233 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %70, ptr noundef %71, ptr noundef %229, ptr noundef %230, ptr noundef %232, ptr noundef %84, ptr noundef %105, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  store i64 1, ptr %86, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %752, %223
  %235 = load i64, ptr %86, align 8, !tbaa !9
  %236 = icmp sle i64 %235, 2
  br i1 %236, label %237, label %755

237:                                              ; preds = %234
  %238 = load i64, ptr %86, align 8, !tbaa !9
  %239 = sub nsw i64 %238, 1
  %240 = getelementptr inbounds [2 x i8], ptr @cchk2_.ichs, i64 0, i64 %239
  %241 = load i8, ptr %240, align 1, !tbaa !13
  %242 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 %241, ptr %242, align 1, !tbaa !13
  %243 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %244 = load i8, ptr %243, align 1, !tbaa !13
  %245 = zext i8 %244 to i32
  %246 = icmp eq i32 %245, 76
  %247 = zext i1 %246 to i32
  %248 = sext i32 %247 to i64
  store i64 %248, ptr %98, align 8, !tbaa !9
  %249 = load i64, ptr %98, align 8, !tbaa !9
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %253

251:                                              ; preds = %237
  %252 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %252, ptr %74, align 8, !tbaa !9
  br label %255

253:                                              ; preds = %237
  %254 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %254, ptr %74, align 8, !tbaa !9
  br label %255

255:                                              ; preds = %253, %251
  %256 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %256, ptr %82, align 8, !tbaa !9
  %257 = load i64, ptr %82, align 8, !tbaa !9
  %258 = load ptr, ptr %42, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = icmp slt i64 %257, %259
  br i1 %260, label %261, label %264

261:                                              ; preds = %255
  %262 = load i64, ptr %82, align 8, !tbaa !9
  %263 = add nsw i64 %262, 1
  store i64 %263, ptr %82, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %261, %255
  %265 = load i64, ptr %82, align 8, !tbaa !9
  %266 = load ptr, ptr %42, align 8, !tbaa !5
  %267 = load i64, ptr %266, align 8, !tbaa !9
  %268 = icmp sgt i64 %265, %267
  br i1 %268, label %269, label %270

269:                                              ; preds = %264
  br label %751

270:                                              ; preds = %264
  %271 = load i64, ptr %82, align 8, !tbaa !9
  %272 = load i64, ptr %74, align 8, !tbaa !9
  %273 = mul nsw i64 %271, %272
  store i64 %273, ptr %80, align 8, !tbaa !9
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %274

274:                                              ; preds = %747, %270
  %275 = load i64, ptr %89, align 8, !tbaa !9
  %276 = icmp sle i64 %275, 2
  br i1 %276, label %277, label %750

277:                                              ; preds = %274
  %278 = load i64, ptr %89, align 8, !tbaa !9
  %279 = sub nsw i64 %278, 1
  %280 = getelementptr inbounds [2 x i8], ptr @cchk2_.ichu, i64 0, i64 %279
  %281 = load i8, ptr %280, align 1, !tbaa !13
  %282 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 %281, ptr %282, align 1, !tbaa !13
  %283 = load ptr, ptr %28, align 8, !tbaa !5
  %284 = getelementptr inbounds i8, ptr %283, i64 1
  %285 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %286 = load ptr, ptr %43, align 8, !tbaa !5
  %287 = load i64, ptr %56, align 8, !tbaa !9
  %288 = getelementptr inbounds %struct.complex, ptr %286, i64 %287
  %289 = load ptr, ptr %42, align 8, !tbaa !5
  %290 = load ptr, ptr %44, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.complex, ptr %290, i64 1
  %292 = call i32 @cmake_(ptr noundef %284, ptr noundef %285, ptr noundef @.str.5, ptr noundef %74, ptr noundef %74, ptr noundef %288, ptr noundef %289, ptr noundef %291, ptr noundef %82, ptr noundef %105, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %293 = load ptr, ptr %38, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !9
  store i64 %294, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %295

295:                                              ; preds = %743, %277
  %296 = load i64, ptr %72, align 8, !tbaa !9
  %297 = load i64, ptr %63, align 8, !tbaa !9
  %298 = icmp sle i64 %296, %297
  br i1 %298, label %299, label %746

299:                                              ; preds = %295
  %300 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %300, ptr %64, align 8, !tbaa !9
  %301 = load ptr, ptr %39, align 8, !tbaa !5
  %302 = load i64, ptr %64, align 8, !tbaa !9
  %303 = getelementptr inbounds %struct.complex, ptr %301, i64 %302
  %304 = getelementptr inbounds %struct.complex, ptr %303, i32 0, i32 0
  %305 = load float, ptr %304, align 4, !tbaa !14
  %306 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  store float %305, ptr %306, align 4, !tbaa !14
  %307 = load ptr, ptr %39, align 8, !tbaa !5
  %308 = load i64, ptr %64, align 8, !tbaa !9
  %309 = getelementptr inbounds %struct.complex, ptr %307, i64 %308
  %310 = getelementptr inbounds %struct.complex, ptr %309, i32 0, i32 1
  %311 = load float, ptr %310, align 4, !tbaa !16
  %312 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 1
  store float %311, ptr %312, align 4, !tbaa !16
  %313 = load ptr, ptr %40, align 8, !tbaa !5
  %314 = load i64, ptr %313, align 8, !tbaa !9
  store i64 %314, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %315

315:                                              ; preds = %739, %299
  %316 = load i64, ptr %73, align 8, !tbaa !9
  %317 = load i64, ptr %64, align 8, !tbaa !9
  %318 = icmp sle i64 %316, %317
  br i1 %318, label %319, label %742

319:                                              ; preds = %315
  %320 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %320, ptr %65, align 8, !tbaa !9
  %321 = load ptr, ptr %41, align 8, !tbaa !5
  %322 = load i64, ptr %65, align 8, !tbaa !9
  %323 = getelementptr inbounds %struct.complex, ptr %321, i64 %322
  %324 = getelementptr inbounds %struct.complex, ptr %323, i32 0, i32 0
  %325 = load float, ptr %324, align 4, !tbaa !14
  %326 = getelementptr inbounds %struct.complex, ptr %91, i32 0, i32 0
  store float %325, ptr %326, align 4, !tbaa !14
  %327 = load ptr, ptr %41, align 8, !tbaa !5
  %328 = load i64, ptr %65, align 8, !tbaa !9
  %329 = getelementptr inbounds %struct.complex, ptr %327, i64 %328
  %330 = getelementptr inbounds %struct.complex, ptr %329, i32 0, i32 1
  %331 = load float, ptr %330, align 4, !tbaa !16
  %332 = getelementptr inbounds %struct.complex, ptr %91, i32 0, i32 1
  store float %331, ptr %332, align 4, !tbaa !16
  %333 = load ptr, ptr %49, align 8, !tbaa !5
  %334 = load i64, ptr %60, align 8, !tbaa !9
  %335 = getelementptr inbounds %struct.complex, ptr %333, i64 %334
  %336 = load ptr, ptr %42, align 8, !tbaa !5
  %337 = load ptr, ptr %50, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.complex, ptr %337, i64 1
  %339 = call i32 @cmake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %70, ptr noundef %71, ptr noundef %335, ptr noundef %336, ptr noundef %338, ptr noundef %85, ptr noundef %105, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %340 = load i64, ptr %75, align 8, !tbaa !9
  %341 = add nsw i64 %340, 1
  store i64 %341, ptr %75, align 8, !tbaa !9
  %342 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %343 = load i8, ptr %342, align 1, !tbaa !13
  %344 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  store i8 %343, ptr %344, align 1, !tbaa !13
  %345 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %346 = load i8, ptr %345, align 1, !tbaa !13
  %347 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  store i8 %346, ptr %347, align 1, !tbaa !13
  %348 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %348, ptr %78, align 8, !tbaa !9
  %349 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %349, ptr %79, align 8, !tbaa !9
  %350 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  %351 = load float, ptr %350, align 4, !tbaa !14
  %352 = getelementptr inbounds %struct.complex, ptr %87, i32 0, i32 0
  store float %351, ptr %352, align 4, !tbaa !14
  %353 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 1
  %354 = load float, ptr %353, align 4, !tbaa !16
  %355 = getelementptr inbounds %struct.complex, ptr %87, i32 0, i32 1
  store float %354, ptr %355, align 4, !tbaa !16
  %356 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %356, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %357

357:                                              ; preds = %382, %319
  %358 = load i64, ptr %69, align 8, !tbaa !9
  %359 = load i64, ptr %65, align 8, !tbaa !9
  %360 = icmp sle i64 %358, %359
  br i1 %360, label %361, label %385

361:                                              ; preds = %357
  %362 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %362, ptr %66, align 8, !tbaa !9
  %363 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %363, ptr %67, align 8, !tbaa !9
  %364 = load ptr, ptr %44, align 8, !tbaa !5
  %365 = load i64, ptr %67, align 8, !tbaa !9
  %366 = getelementptr inbounds %struct.complex, ptr %364, i64 %365
  %367 = getelementptr inbounds %struct.complex, ptr %366, i32 0, i32 0
  %368 = load float, ptr %367, align 4, !tbaa !14
  %369 = load ptr, ptr %45, align 8, !tbaa !5
  %370 = load i64, ptr %66, align 8, !tbaa !9
  %371 = getelementptr inbounds %struct.complex, ptr %369, i64 %370
  %372 = getelementptr inbounds %struct.complex, ptr %371, i32 0, i32 0
  store float %368, ptr %372, align 4, !tbaa !14
  %373 = load ptr, ptr %44, align 8, !tbaa !5
  %374 = load i64, ptr %67, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.complex, ptr %373, i64 %374
  %376 = getelementptr inbounds %struct.complex, ptr %375, i32 0, i32 1
  %377 = load float, ptr %376, align 4, !tbaa !16
  %378 = load ptr, ptr %45, align 8, !tbaa !5
  %379 = load i64, ptr %66, align 8, !tbaa !9
  %380 = getelementptr inbounds %struct.complex, ptr %378, i64 %379
  %381 = getelementptr inbounds %struct.complex, ptr %380, i32 0, i32 1
  store float %377, ptr %381, align 4, !tbaa !16
  br label %382

382:                                              ; preds = %361
  %383 = load i64, ptr %69, align 8, !tbaa !9
  %384 = add nsw i64 %383, 1
  store i64 %384, ptr %69, align 8, !tbaa !9
  br label %357, !llvm.loop !17

385:                                              ; preds = %357
  %386 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %386, ptr %92, align 8, !tbaa !9
  %387 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %387, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %388

388:                                              ; preds = %413, %385
  %389 = load i64, ptr %69, align 8, !tbaa !9
  %390 = load i64, ptr %65, align 8, !tbaa !9
  %391 = icmp sle i64 %389, %390
  br i1 %391, label %392, label %416

392:                                              ; preds = %388
  %393 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %393, ptr %66, align 8, !tbaa !9
  %394 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %394, ptr %67, align 8, !tbaa !9
  %395 = load ptr, ptr %47, align 8, !tbaa !5
  %396 = load i64, ptr %67, align 8, !tbaa !9
  %397 = getelementptr inbounds %struct.complex, ptr %395, i64 %396
  %398 = getelementptr inbounds %struct.complex, ptr %397, i32 0, i32 0
  %399 = load float, ptr %398, align 4, !tbaa !14
  %400 = load ptr, ptr %48, align 8, !tbaa !5
  %401 = load i64, ptr %66, align 8, !tbaa !9
  %402 = getelementptr inbounds %struct.complex, ptr %400, i64 %401
  %403 = getelementptr inbounds %struct.complex, ptr %402, i32 0, i32 0
  store float %399, ptr %403, align 4, !tbaa !14
  %404 = load ptr, ptr %47, align 8, !tbaa !5
  %405 = load i64, ptr %67, align 8, !tbaa !9
  %406 = getelementptr inbounds %struct.complex, ptr %404, i64 %405
  %407 = getelementptr inbounds %struct.complex, ptr %406, i32 0, i32 1
  %408 = load float, ptr %407, align 4, !tbaa !16
  %409 = load ptr, ptr %48, align 8, !tbaa !5
  %410 = load i64, ptr %66, align 8, !tbaa !9
  %411 = getelementptr inbounds %struct.complex, ptr %409, i64 %410
  %412 = getelementptr inbounds %struct.complex, ptr %411, i32 0, i32 1
  store float %408, ptr %412, align 4, !tbaa !16
  br label %413

413:                                              ; preds = %392
  %414 = load i64, ptr %69, align 8, !tbaa !9
  %415 = add nsw i64 %414, 1
  store i64 %415, ptr %69, align 8, !tbaa !9
  br label %388, !llvm.loop !19

416:                                              ; preds = %388
  %417 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %417, ptr %93, align 8, !tbaa !9
  %418 = getelementptr inbounds %struct.complex, ptr %91, i32 0, i32 0
  %419 = load float, ptr %418, align 4, !tbaa !14
  %420 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %419, ptr %420, align 4, !tbaa !14
  %421 = getelementptr inbounds %struct.complex, ptr %91, i32 0, i32 1
  %422 = load float, ptr %421, align 4, !tbaa !16
  %423 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %422, ptr %423, align 4, !tbaa !16
  %424 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %424, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %425

425:                                              ; preds = %450, %416
  %426 = load i64, ptr %69, align 8, !tbaa !9
  %427 = load i64, ptr %65, align 8, !tbaa !9
  %428 = icmp sle i64 %426, %427
  br i1 %428, label %429, label %453

429:                                              ; preds = %425
  %430 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %430, ptr %66, align 8, !tbaa !9
  %431 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %431, ptr %67, align 8, !tbaa !9
  %432 = load ptr, ptr %50, align 8, !tbaa !5
  %433 = load i64, ptr %67, align 8, !tbaa !9
  %434 = getelementptr inbounds %struct.complex, ptr %432, i64 %433
  %435 = getelementptr inbounds %struct.complex, ptr %434, i32 0, i32 0
  %436 = load float, ptr %435, align 4, !tbaa !14
  %437 = load ptr, ptr %51, align 8, !tbaa !5
  %438 = load i64, ptr %66, align 8, !tbaa !9
  %439 = getelementptr inbounds %struct.complex, ptr %437, i64 %438
  %440 = getelementptr inbounds %struct.complex, ptr %439, i32 0, i32 0
  store float %436, ptr %440, align 4, !tbaa !14
  %441 = load ptr, ptr %50, align 8, !tbaa !5
  %442 = load i64, ptr %67, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.complex, ptr %441, i64 %442
  %444 = getelementptr inbounds %struct.complex, ptr %443, i32 0, i32 1
  %445 = load float, ptr %444, align 4, !tbaa !16
  %446 = load ptr, ptr %51, align 8, !tbaa !5
  %447 = load i64, ptr %66, align 8, !tbaa !9
  %448 = getelementptr inbounds %struct.complex, ptr %446, i64 %447
  %449 = getelementptr inbounds %struct.complex, ptr %448, i32 0, i32 1
  store float %445, ptr %449, align 4, !tbaa !16
  br label %450

450:                                              ; preds = %429
  %451 = load i64, ptr %69, align 8, !tbaa !9
  %452 = add nsw i64 %451, 1
  store i64 %452, ptr %69, align 8, !tbaa !9
  br label %425, !llvm.loop !20

453:                                              ; preds = %425
  %454 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %454, ptr %94, align 8, !tbaa !9
  %455 = load ptr, ptr %33, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  %457 = icmp ne i64 %456, 0
  br i1 %457, label %458, label %477

458:                                              ; preds = %453
  %459 = load ptr, ptr %32, align 8, !tbaa !5
  %460 = load i64, ptr %459, align 8, !tbaa !9
  store i64 %460, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___172, i32 0, i32 1), align 8, !tbaa !21
  %461 = call i64 @s_wsfe(ptr noundef @cchk2_.io___172)
  %462 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %463 = load ptr, ptr %28, align 8, !tbaa !5
  %464 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %463, i64 noundef 6)
  %465 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %466 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %465, i64 noundef 1)
  %467 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %468 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %467, i64 noundef 1)
  %469 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %470 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %471 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %101, i64 noundef 4)
  %472 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %473 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %474 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %91, i64 noundef 4)
  %475 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %85, i64 noundef 8)
  %476 = call i64 @e_wsfe()
  br label %477

477:                                              ; preds = %458, %453
  %478 = load ptr, ptr %34, align 8, !tbaa !5
  %479 = load i64, ptr %478, align 8, !tbaa !9
  %480 = icmp ne i64 %479, 0
  br i1 %480, label %481, label %487

481:                                              ; preds = %477
  %482 = getelementptr inbounds %struct.alist, ptr %68, i32 0, i32 0
  store i64 0, ptr %482, align 8, !tbaa !23
  %483 = load ptr, ptr %32, align 8, !tbaa !5
  %484 = load i64, ptr %483, align 8, !tbaa !9
  %485 = getelementptr inbounds %struct.alist, ptr %68, i32 0, i32 1
  store i64 %484, ptr %485, align 8, !tbaa !25
  %486 = call i64 @f_rew(ptr noundef %68)
  br label %487

487:                                              ; preds = %481, %477
  %488 = load i64, ptr %97, align 8, !tbaa !9
  %489 = icmp ne i64 %488, 0
  br i1 %489, label %490, label %500

490:                                              ; preds = %487
  %491 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %492 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %493 = load ptr, ptr %44, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.complex, ptr %493, i64 1
  %495 = load ptr, ptr %47, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.complex, ptr %495, i64 1
  %497 = load ptr, ptr %50, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.complex, ptr %497, i64 1
  %499 = call i32 @f2c_chemm(ptr noundef %491, ptr noundef %492, ptr noundef %70, ptr noundef %71, ptr noundef %101, ptr noundef %494, ptr noundef %82, ptr noundef %496, ptr noundef %84, ptr noundef %91, ptr noundef %498, ptr noundef %85)
  br label %510

500:                                              ; preds = %487
  %501 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %502 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %503 = load ptr, ptr %44, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.complex, ptr %503, i64 1
  %505 = load ptr, ptr %47, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.complex, ptr %505, i64 1
  %507 = load ptr, ptr %50, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.complex, ptr %507, i64 1
  %509 = call i32 @f2c_csymm(ptr noundef %501, ptr noundef %502, ptr noundef %70, ptr noundef %71, ptr noundef %101, ptr noundef %504, ptr noundef %82, ptr noundef %506, ptr noundef %84, ptr noundef %91, ptr noundef %508, ptr noundef %85)
  br label %510

510:                                              ; preds = %500, %490
  %511 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %512 = icmp ne i64 %511, 0
  br i1 %512, label %519, label %513

513:                                              ; preds = %510
  %514 = load ptr, ptr %31, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  store i64 %515, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___173, i32 0, i32 1), align 8, !tbaa !21
  %516 = call i64 @s_wsfe(ptr noundef @cchk2_.io___173)
  %517 = call i64 @e_wsfe()
  %518 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %518, align 8, !tbaa !9
  br label %787

519:                                              ; preds = %510
  %520 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %521 = load i8, ptr %520, align 1, !tbaa !13
  %522 = zext i8 %521 to i32
  %523 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %524 = load i8, ptr %523, align 1, !tbaa !13
  %525 = zext i8 %524 to i32
  %526 = icmp eq i32 %522, %525
  %527 = zext i1 %526 to i32
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 0
  store i64 %528, ptr %529, align 16, !tbaa !9
  %530 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %531 = load i8, ptr %530, align 1, !tbaa !13
  %532 = zext i8 %531 to i32
  %533 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %534 = load i8, ptr %533, align 1, !tbaa !13
  %535 = zext i8 %534 to i32
  %536 = icmp eq i32 %532, %535
  %537 = zext i1 %536 to i32
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 1
  store i64 %538, ptr %539, align 8, !tbaa !9
  %540 = load i64, ptr %78, align 8, !tbaa !9
  %541 = load i64, ptr %70, align 8, !tbaa !9
  %542 = icmp eq i64 %540, %541
  %543 = zext i1 %542 to i32
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 2
  store i64 %544, ptr %545, align 16, !tbaa !9
  %546 = load i64, ptr %79, align 8, !tbaa !9
  %547 = load i64, ptr %71, align 8, !tbaa !9
  %548 = icmp eq i64 %546, %547
  %549 = zext i1 %548 to i32
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 3
  store i64 %550, ptr %551, align 8, !tbaa !9
  %552 = getelementptr inbounds %struct.complex, ptr %87, i32 0, i32 0
  %553 = load float, ptr %552, align 4, !tbaa !14
  %554 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 0
  %555 = load float, ptr %554, align 4, !tbaa !14
  %556 = fcmp oeq float %553, %555
  br i1 %556, label %557, label %563

557:                                              ; preds = %519
  %558 = getelementptr inbounds %struct.complex, ptr %87, i32 0, i32 1
  %559 = load float, ptr %558, align 4, !tbaa !16
  %560 = getelementptr inbounds %struct.complex, ptr %101, i32 0, i32 1
  %561 = load float, ptr %560, align 4, !tbaa !16
  %562 = fcmp oeq float %559, %561
  br label %563

563:                                              ; preds = %557, %519
  %564 = phi i1 [ false, %519 ], [ %562, %557 ]
  %565 = zext i1 %564 to i32
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 4
  store i64 %566, ptr %567, align 16, !tbaa !9
  %568 = load ptr, ptr %45, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.complex, ptr %568, i64 1
  %570 = load ptr, ptr %44, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.complex, ptr %570, i64 1
  %572 = call i64 @lce_(ptr noundef %569, ptr noundef %571, ptr noundef %80)
  %573 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 5
  store i64 %572, ptr %573, align 8, !tbaa !9
  %574 = load i64, ptr %92, align 8, !tbaa !9
  %575 = load i64, ptr %82, align 8, !tbaa !9
  %576 = icmp eq i64 %574, %575
  %577 = zext i1 %576 to i32
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 6
  store i64 %578, ptr %579, align 16, !tbaa !9
  %580 = load ptr, ptr %48, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.complex, ptr %580, i64 1
  %582 = load ptr, ptr %47, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.complex, ptr %582, i64 1
  %584 = call i64 @lce_(ptr noundef %581, ptr noundef %583, ptr noundef %81)
  %585 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 7
  store i64 %584, ptr %585, align 8, !tbaa !9
  %586 = load i64, ptr %93, align 8, !tbaa !9
  %587 = load i64, ptr %84, align 8, !tbaa !9
  %588 = icmp eq i64 %586, %587
  %589 = zext i1 %588 to i32
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 8
  store i64 %590, ptr %591, align 16, !tbaa !9
  %592 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %593 = load float, ptr %592, align 4, !tbaa !14
  %594 = getelementptr inbounds %struct.complex, ptr %91, i32 0, i32 0
  %595 = load float, ptr %594, align 4, !tbaa !14
  %596 = fcmp oeq float %593, %595
  br i1 %596, label %597, label %603

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

603:                                              ; preds = %597, %563
  %604 = phi i1 [ false, %563 ], [ %602, %597 ]
  %605 = zext i1 %604 to i32
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 9
  store i64 %606, ptr %607, align 8, !tbaa !9
  %608 = load i64, ptr %99, align 8, !tbaa !9
  %609 = icmp ne i64 %608, 0
  br i1 %609, label %610, label %617

610:                                              ; preds = %603
  %611 = load ptr, ptr %51, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.complex, ptr %611, i64 1
  %613 = load ptr, ptr %50, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.complex, ptr %613, i64 1
  %615 = call i64 @lce_(ptr noundef %612, ptr noundef %614, ptr noundef %83)
  %616 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 10
  store i64 %615, ptr %616, align 16, !tbaa !9
  br label %624

617:                                              ; preds = %603
  %618 = load ptr, ptr %51, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.complex, ptr %618, i64 1
  %620 = load ptr, ptr %50, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.complex, ptr %620, i64 1
  %622 = call i64 @lceres_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %70, ptr noundef %71, ptr noundef %619, ptr noundef %621, ptr noundef %85, i64 noundef 2, i64 noundef 1)
  %623 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 10
  store i64 %622, ptr %623, align 16, !tbaa !9
  br label %624

624:                                              ; preds = %617, %610
  %625 = load i64, ptr %94, align 8, !tbaa !9
  %626 = load i64, ptr %85, align 8, !tbaa !9
  %627 = icmp eq i64 %625, %626
  %628 = zext i1 %627 to i32
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 11
  store i64 %629, ptr %630, align 8, !tbaa !9
  store i64 1, ptr %95, align 8, !tbaa !9
  %631 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %631, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %632

632:                                              ; preds = %661, %624
  %633 = load i64, ptr %69, align 8, !tbaa !9
  %634 = load i64, ptr %65, align 8, !tbaa !9
  %635 = icmp sle i64 %633, %634
  br i1 %635, label %636, label %664

636:                                              ; preds = %632
  %637 = load i64, ptr %95, align 8, !tbaa !9
  %638 = icmp ne i64 %637, 0
  br i1 %638, label %639, label %645

639:                                              ; preds = %636
  %640 = load i64, ptr %69, align 8, !tbaa !9
  %641 = sub nsw i64 %640, 1
  %642 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 %641
  %643 = load i64, ptr %642, align 8, !tbaa !9
  %644 = icmp ne i64 %643, 0
  br label %645

645:                                              ; preds = %639, %636
  %646 = phi i1 [ false, %636 ], [ %644, %639 ]
  %647 = zext i1 %646 to i32
  %648 = sext i32 %647 to i64
  store i64 %648, ptr %95, align 8, !tbaa !9
  %649 = load i64, ptr %69, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  %651 = getelementptr inbounds [13 x i64], ptr %102, i64 0, i64 %650
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = icmp ne i64 %652, 0
  br i1 %653, label %660, label %654

654:                                              ; preds = %645
  %655 = load ptr, ptr %31, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  store i64 %656, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___176, i32 0, i32 1), align 8, !tbaa !21
  %657 = call i64 @s_wsfe(ptr noundef @cchk2_.io___176)
  %658 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %659 = call i64 @e_wsfe()
  br label %660

660:                                              ; preds = %654, %645
  br label %661

661:                                              ; preds = %660
  %662 = load i64, ptr %69, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  store i64 %663, ptr %69, align 8, !tbaa !9
  br label %632, !llvm.loop !26

664:                                              ; preds = %632
  %665 = load i64, ptr %95, align 8, !tbaa !9
  %666 = icmp ne i64 %665, 0
  br i1 %666, label %669, label %667

667:                                              ; preds = %664
  %668 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %668, align 8, !tbaa !9
  br label %787

669:                                              ; preds = %664
  %670 = load i64, ptr %99, align 8, !tbaa !9
  %671 = icmp ne i64 %670, 0
  br i1 %671, label %738, label %672

672:                                              ; preds = %669
  %673 = load i64, ptr %98, align 8, !tbaa !9
  %674 = icmp ne i64 %673, 0
  br i1 %674, label %675, label %698

675:                                              ; preds = %672
  %676 = load ptr, ptr %43, align 8, !tbaa !5
  %677 = load i64, ptr %56, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.complex, ptr %676, i64 %677
  %679 = load ptr, ptr %42, align 8, !tbaa !5
  %680 = load ptr, ptr %46, align 8, !tbaa !5
  %681 = load i64, ptr %58, align 8, !tbaa !9
  %682 = getelementptr inbounds %struct.complex, ptr %680, i64 %681
  %683 = load ptr, ptr %42, align 8, !tbaa !5
  %684 = load ptr, ptr %49, align 8, !tbaa !5
  %685 = load i64, ptr %60, align 8, !tbaa !9
  %686 = getelementptr inbounds %struct.complex, ptr %684, i64 %685
  %687 = load ptr, ptr %42, align 8, !tbaa !5
  %688 = load ptr, ptr %52, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.complex, ptr %688, i64 1
  %690 = load ptr, ptr %53, align 8, !tbaa !5
  %691 = getelementptr inbounds float, ptr %690, i64 1
  %692 = load ptr, ptr %50, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.complex, ptr %692, i64 1
  %694 = load ptr, ptr %29, align 8, !tbaa !5
  %695 = load ptr, ptr %35, align 8, !tbaa !5
  %696 = load ptr, ptr %31, align 8, !tbaa !5
  %697 = call i32 @cmmch_(ptr noundef @.str, ptr noundef @.str, ptr noundef %70, ptr noundef %71, ptr noundef %70, ptr noundef %101, ptr noundef %678, ptr noundef %679, ptr noundef %682, ptr noundef %683, ptr noundef %91, ptr noundef %686, ptr noundef %687, ptr noundef %689, ptr noundef %691, ptr noundef %693, ptr noundef %85, ptr noundef %694, ptr noundef %90, ptr noundef %695, ptr noundef %696, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %721

698:                                              ; preds = %672
  %699 = load ptr, ptr %46, align 8, !tbaa !5
  %700 = load i64, ptr %58, align 8, !tbaa !9
  %701 = getelementptr inbounds %struct.complex, ptr %699, i64 %700
  %702 = load ptr, ptr %42, align 8, !tbaa !5
  %703 = load ptr, ptr %43, align 8, !tbaa !5
  %704 = load i64, ptr %56, align 8, !tbaa !9
  %705 = getelementptr inbounds %struct.complex, ptr %703, i64 %704
  %706 = load ptr, ptr %42, align 8, !tbaa !5
  %707 = load ptr, ptr %49, align 8, !tbaa !5
  %708 = load i64, ptr %60, align 8, !tbaa !9
  %709 = getelementptr inbounds %struct.complex, ptr %707, i64 %708
  %710 = load ptr, ptr %42, align 8, !tbaa !5
  %711 = load ptr, ptr %52, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.complex, ptr %711, i64 1
  %713 = load ptr, ptr %53, align 8, !tbaa !5
  %714 = getelementptr inbounds float, ptr %713, i64 1
  %715 = load ptr, ptr %50, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.complex, ptr %715, i64 1
  %717 = load ptr, ptr %29, align 8, !tbaa !5
  %718 = load ptr, ptr %35, align 8, !tbaa !5
  %719 = load ptr, ptr %31, align 8, !tbaa !5
  %720 = call i32 @cmmch_(ptr noundef @.str, ptr noundef @.str, ptr noundef %70, ptr noundef %71, ptr noundef %71, ptr noundef %101, ptr noundef %701, ptr noundef %702, ptr noundef %705, ptr noundef %706, ptr noundef %91, ptr noundef %709, ptr noundef %710, ptr noundef %712, ptr noundef %714, ptr noundef %716, ptr noundef %85, ptr noundef %717, ptr noundef %90, ptr noundef %718, ptr noundef %719, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %721

721:                                              ; preds = %698, %675
  %722 = load float, ptr %107, align 4, !tbaa !11
  %723 = load float, ptr %90, align 4, !tbaa !11
  %724 = fcmp oge float %722, %723
  br i1 %724, label %725, label %727

725:                                              ; preds = %721
  %726 = load float, ptr %107, align 4, !tbaa !11
  br label %729

727:                                              ; preds = %721
  %728 = load float, ptr %90, align 4, !tbaa !11
  br label %729

729:                                              ; preds = %727, %725
  %730 = phi float [ %726, %725 ], [ %728, %727 ]
  %731 = fpext float %730 to double
  %732 = fptrunc double %731 to float
  store float %732, ptr %107, align 4, !tbaa !11
  %733 = load ptr, ptr %35, align 8, !tbaa !5
  %734 = load i64, ptr %733, align 8, !tbaa !9
  %735 = icmp ne i64 %734, 0
  br i1 %735, label %736, label %737

736:                                              ; preds = %729
  br label %787

737:                                              ; preds = %729
  br label %738

738:                                              ; preds = %737, %669
  br label %739

739:                                              ; preds = %738
  %740 = load i64, ptr %73, align 8, !tbaa !9
  %741 = add nsw i64 %740, 1
  store i64 %741, ptr %73, align 8, !tbaa !9
  br label %315, !llvm.loop !27

742:                                              ; preds = %315
  br label %743

743:                                              ; preds = %742
  %744 = load i64, ptr %72, align 8, !tbaa !9
  %745 = add nsw i64 %744, 1
  store i64 %745, ptr %72, align 8, !tbaa !9
  br label %295, !llvm.loop !28

746:                                              ; preds = %295
  br label %747

747:                                              ; preds = %746
  %748 = load i64, ptr %89, align 8, !tbaa !9
  %749 = add nsw i64 %748, 1
  store i64 %749, ptr %89, align 8, !tbaa !9
  br label %274, !llvm.loop !29

750:                                              ; preds = %274
  br label %751

751:                                              ; preds = %750, %269
  br label %752

752:                                              ; preds = %751
  %753 = load i64, ptr %86, align 8, !tbaa !9
  %754 = add nsw i64 %753, 1
  store i64 %754, ptr %86, align 8, !tbaa !9
  br label %234, !llvm.loop !30

755:                                              ; preds = %234
  br label %756

756:                                              ; preds = %755, %222, %195
  br label %757

757:                                              ; preds = %756
  %758 = load i64, ptr %77, align 8, !tbaa !9
  %759 = add nsw i64 %758, 1
  store i64 %759, ptr %77, align 8, !tbaa !9
  br label %173, !llvm.loop !31

760:                                              ; preds = %173
  br label %761

761:                                              ; preds = %760
  %762 = load i64, ptr %76, align 8, !tbaa !9
  %763 = add nsw i64 %762, 1
  store i64 %763, ptr %76, align 8, !tbaa !9
  br label %162, !llvm.loop !32

764:                                              ; preds = %162
  %765 = load float, ptr %107, align 4, !tbaa !11
  %766 = load ptr, ptr %30, align 8, !tbaa !5
  %767 = load float, ptr %766, align 4, !tbaa !11
  %768 = fcmp olt float %765, %767
  br i1 %768, label %769, label %777

769:                                              ; preds = %764
  %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 @cchk2_.io___178, i32 0, i32 1), align 8, !tbaa !21
  %772 = call i64 @s_wsfe(ptr noundef @cchk2_.io___178)
  %773 = load ptr, ptr %28, align 8, !tbaa !5
  %774 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %773, i64 noundef 6)
  %775 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %776 = call i64 @e_wsfe()
  br label %786

777:                                              ; preds = %764
  %778 = load ptr, ptr %31, align 8, !tbaa !5
  %779 = load i64, ptr %778, align 8, !tbaa !9
  store i64 %779, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___179, i32 0, i32 1), align 8, !tbaa !21
  %780 = call i64 @s_wsfe(ptr noundef @cchk2_.io___179)
  %781 = load ptr, ptr %28, align 8, !tbaa !5
  %782 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %781, i64 noundef 6)
  %783 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %784 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %107, i64 noundef 4)
  %785 = call i64 @e_wsfe()
  br label %786

786:                                              ; preds = %777, %769
  br label %812

787:                                              ; preds = %736, %667, %513
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = load i64, ptr %788, align 8, !tbaa !9
  store i64 %789, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___180, i32 0, i32 1), align 8, !tbaa !21
  %790 = call i64 @s_wsfe(ptr noundef @cchk2_.io___180)
  %791 = load ptr, ptr %28, align 8, !tbaa !5
  %792 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %791, i64 noundef 6)
  %793 = call i64 @e_wsfe()
  %794 = load ptr, ptr %31, align 8, !tbaa !5
  %795 = load i64, ptr %794, align 8, !tbaa !9
  store i64 %795, ptr getelementptr inbounds (%struct.cilist, ptr @cchk2_.io___181, i32 0, i32 1), align 8, !tbaa !21
  %796 = call i64 @s_wsfe(ptr noundef @cchk2_.io___181)
  %797 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %798 = load ptr, ptr %28, align 8, !tbaa !5
  %799 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %798, i64 noundef 6)
  %800 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %801 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %800, i64 noundef 1)
  %802 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %803 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %802, i64 noundef 1)
  %804 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %805 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %806 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %101, i64 noundef 4)
  %807 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %808 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %809 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %91, i64 noundef 4)
  %810 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %85, i64 noundef 8)
  %811 = call i64 @e_wsfe()
  br label %812

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

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

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

declare i64 @f_rew(ptr noundef) #1

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

declare i32 @f2c_chemm(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_csymm(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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!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}


; 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_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
@cchk2_.ichs = external hidden local_unnamed_addr global [2 x i8], align 1
@cchk2_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@cchk2_.io___172 = external hidden global %struct.cilist, align 8
@cchk2_.io___173 = external hidden global %struct.cilist, align 8
@cchk2_.io___176 = external hidden global %struct.cilist, align 8
@cchk2_.io___178 = external hidden global %struct.cilist, align 8
@cchk2_.io___179 = external hidden global %struct.cilist, align 8
@cchk2_.io___180 = external hidden global %struct.cilist, align 8
@cchk2_.io___181 = external hidden global %struct.cilist, align 8
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1

; 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 @cchk2_(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 %struct.alist, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, 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 float, align 4
  %41 = alloca %struct.complex, align 8
  %42 = alloca [1 x i8], align 1
  %43 = alloca [1 x i8], align 1
  %44 = alloca %struct.complex, align 8
  %45 = alloca [13 x i64], align 16
  %46 = alloca i64, align 8
  %47 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #3
  %48 = getelementptr inbounds i8, ptr %9, i64 -8
  %49 = getelementptr inbounds i8, ptr %11, i64 -8
  %50 = getelementptr inbounds i8, ptr %13, i64 -8
  %51 = getelementptr inbounds i8, ptr %23, i64 -8
  %52 = getelementptr inbounds i8, ptr %22, i64 -8
  %53 = getelementptr inbounds i8, ptr %20, i64 -8
  %54 = getelementptr inbounds i8, ptr %19, i64 -8
  %55 = getelementptr inbounds i8, ptr %17, i64 -8
  %56 = getelementptr inbounds i8, ptr %16, i64 -8
  %57 = getelementptr inbounds i8, ptr %0, i64 1
  %58 = tail call i64 @s_cmp(ptr noundef nonnull %57, ptr noundef nonnull @.str.6, i64 noundef 2, i64 noundef 2) #3
  %59 = icmp eq i64 %58, 0
  store i64 0, ptr %33, align 8, !tbaa !5
  store i64 1, ptr %46, align 8, !tbaa !5
  store float 0.000000e+00, ptr %47, align 4, !tbaa !9
  %60 = load i64, ptr %8, align 8, !tbaa !5
  %.not260 = icmp slt i64 %60, 1
  br i1 %.not260, label %._crit_edge264, label %.lr.ph263.split.preheader

.lr.ph263.split.preheader:                        ; preds = %27
  %61 = getelementptr inbounds i8, ptr %44, i64 4
  %62 = getelementptr inbounds i8, ptr %41, i64 4
  %63 = getelementptr inbounds i8, ptr %28, i64 8
  %64 = getelementptr inbounds i8, ptr %45, i64 8
  %65 = getelementptr inbounds i8, ptr %45, i64 16
  %66 = getelementptr inbounds i8, ptr %45, i64 24
  %67 = getelementptr inbounds i8, ptr %45, i64 32
  %68 = getelementptr inbounds i8, ptr %45, i64 40
  %69 = getelementptr inbounds i8, ptr %45, i64 48
  %70 = getelementptr inbounds i8, ptr %45, i64 56
  %71 = getelementptr inbounds i8, ptr %45, i64 64
  %72 = getelementptr inbounds i8, ptr %45, i64 72
  %73 = getelementptr inbounds i8, ptr %45, i64 80
  %74 = getelementptr inbounds i8, ptr %45, i64 88
  %scevgep = getelementptr i8, ptr %23, i64 -4
  %scevgep293 = getelementptr i8, ptr %22, i64 -4
  %scevgep295 = getelementptr i8, ptr %23, i64 4
  %scevgep297 = getelementptr i8, ptr %22, i64 4
  %scevgep308 = getelementptr i8, ptr %20, i64 -4
  %scevgep310 = getelementptr i8, ptr %19, i64 -4
  %scevgep312 = getelementptr i8, ptr %20, i64 4
  %scevgep314 = getelementptr i8, ptr %19, i64 4
  %scevgep345 = getelementptr i8, ptr %17, i64 -4
  %scevgep347 = getelementptr i8, ptr %16, i64 -4
  %scevgep349 = getelementptr i8, ptr %17, i64 4
  %scevgep351 = getelementptr i8, ptr %16, i64 4
  br label %.lr.ph263.split

.lr.ph263.split:                                  ; preds = %.lr.ph263.split.preheader, %._crit_edge259
  %75 = phi float [ %349, %._crit_edge259 ], [ 0.000000e+00, %.lr.ph263.split.preheader ]
  %.0189261 = phi i64 [ %350, %._crit_edge259 ], [ 1, %.lr.ph263.split.preheader ]
  %76 = getelementptr inbounds i64, ptr %48, i64 %.0189261
  %77 = load i64, ptr %76, align 8, !tbaa !5
  store i64 %77, ptr %30, align 8, !tbaa !5
  %78 = load i64, ptr %8, align 8, !tbaa !5
  %.not202255 = icmp slt i64 %78, 1
  br i1 %.not202255, label %._crit_edge259, label %.lr.ph258

.lr.ph258:                                        ; preds = %.lr.ph263.split, %.loopexit222
  %79 = phi float [ %347, %.loopexit222 ], [ %75, %.lr.ph263.split ]
  %.0188256 = phi i64 [ %348, %.loopexit222 ], [ 1, %.lr.ph263.split ]
  %80 = getelementptr inbounds i64, ptr %48, i64 %.0188256
  %81 = load i64, ptr %80, align 8, !tbaa !5
  store i64 %81, ptr %31, align 8, !tbaa !5
  %82 = load i64, ptr %30, align 8
  store i64 %82, ptr %39, align 8, !tbaa !5
  %83 = load i64, ptr %14, align 8, !tbaa !5
  %84 = icmp slt i64 %82, %83
  br i1 %84, label %85, label %87

85:                                               ; preds = %.lr.ph258
  %86 = add nsw i64 %82, 1
  store i64 %86, ptr %39, align 8, !tbaa !5
  br label %87

87:                                               ; preds = %85, %.lr.ph258
  %88 = phi i64 [ %86, %85 ], [ %82, %.lr.ph258 ]
  %89 = icmp sgt i64 %88, %83
  br i1 %89, label %.loopexit222, label %90

90:                                               ; preds = %87
  %91 = mul nsw i64 %88, %81
  store i64 %91, ptr %37, align 8, !tbaa !5
  %92 = icmp slt i64 %81, 1
  %93 = icmp slt i64 %82, 1
  %94 = or i1 %92, %93
  %95 = zext i1 %84 to i64
  %spec.select = add nsw i64 %82, %95
  store i64 %spec.select, ptr %38, align 8, !tbaa !5
  %96 = icmp sgt i64 %spec.select, %83
  br i1 %96, label %.loopexit222, label %97

97:                                               ; preds = %90
  %98 = mul nsw i64 %spec.select, %81
  store i64 %98, ptr %35, align 8, !tbaa !5
  %99 = call i32 @cmake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %18, ptr noundef nonnull %14, ptr noundef %19, ptr noundef nonnull %38, ptr noundef nonnull %46, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %100

100:                                              ; preds = %97, %.loopexit221
  %101 = phi float [ %79, %97 ], [ %345, %.loopexit221 ]
  %.0187254 = phi i64 [ 1, %97 ], [ %346, %.loopexit221 ]
  %102 = add nsw i64 %.0187254, -1
  %103 = getelementptr inbounds [2 x i8], ptr @cchk2_.ichs, i64 0, i64 %102
  %104 = load i8, ptr %103, align 1, !tbaa !11
  store i8 %104, ptr %42, align 1, !tbaa !11
  %105 = icmp eq i8 %104, 76
  %.val = load i64, ptr %30, align 8
  %.val220 = load i64, ptr %31, align 8
  %storemerge = select i1 %105, i64 %.val, i64 %.val220
  store i64 %storemerge, ptr %32, align 8, !tbaa !5
  store i64 %storemerge, ptr %36, align 8, !tbaa !5
  %106 = load i64, ptr %14, align 8, !tbaa !5
  %107 = icmp slt i64 %storemerge, %106
  br i1 %107, label %108, label %110

108:                                              ; preds = %100
  %109 = add nsw i64 %storemerge, 1
  store i64 %109, ptr %36, align 8, !tbaa !5
  br label %110

110:                                              ; preds = %108, %100
  %111 = phi i64 [ %109, %108 ], [ %storemerge, %100 ]
  %112 = icmp sgt i64 %111, %106
  br i1 %112, label %.loopexit221, label %113

113:                                              ; preds = %110
  %114 = mul nsw i64 %111, %storemerge
  store i64 %114, ptr %34, align 8, !tbaa !5
  br label %115

115:                                              ; preds = %113, %._crit_edge248
  %116 = phi float [ %101, %113 ], [ %343, %._crit_edge248 ]
  %.0186253 = phi i64 [ 1, %113 ], [ %344, %._crit_edge248 ]
  %117 = add nsw i64 %.0186253, -1
  %118 = getelementptr inbounds [2 x i8], ptr @cchk2_.ichu, i64 0, i64 %117
  %119 = load i8, ptr %118, align 1, !tbaa !11
  store i8 %119, ptr %43, align 1, !tbaa !11
  %120 = call i32 @cmake_(ptr noundef nonnull %57, ptr noundef nonnull %43, ptr noundef nonnull @.str.5, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %36, ptr noundef nonnull %46, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %121 = load i64, ptr %10, align 8, !tbaa !5
  %.not203244 = icmp slt i64 %121, 1
  br i1 %.not203244, label %._crit_edge248, label %.lr.ph247

.lr.ph247:                                        ; preds = %115
  %122 = load i64, ptr %12, align 8, !tbaa !5
  %123 = icmp slt i64 %122, 1
  br i1 %123, label %.lr.ph247.split.us.preheader, label %.lr.ph247.split

.lr.ph247.split.us.preheader:                     ; preds = %.lr.ph247
  %124 = getelementptr inbounds %struct.complex, ptr %49, i64 %121
  %125 = load <2 x float>, ptr %124, align 4, !tbaa !9
  store <2 x float> %125, ptr %44, align 8, !tbaa !9
  br label %._crit_edge248

.lr.ph247.split:                                  ; preds = %.lr.ph247, %._crit_edge243
  %126 = phi float [ %341, %._crit_edge243 ], [ %116, %.lr.ph247 ]
  %.0191245 = phi i64 [ %342, %._crit_edge243 ], [ 1, %.lr.ph247 ]
  %127 = getelementptr inbounds %struct.complex, ptr %49, i64 %.0191245
  %128 = load <2 x float>, ptr %127, align 4, !tbaa !9
  store <2 x float> %128, ptr %44, align 8, !tbaa !9
  %129 = load i64, ptr %12, align 8, !tbaa !5
  %.not204239 = icmp slt i64 %129, 1
  br i1 %.not204239, label %._crit_edge243, label %.lr.ph242

.lr.ph242:                                        ; preds = %.lr.ph247.split, %338
  %130 = phi float [ %339, %338 ], [ %126, %.lr.ph247.split ]
  %.0190240 = phi i64 [ %340, %338 ], [ 1, %.lr.ph247.split ]
  %131 = getelementptr inbounds %struct.complex, ptr %50, i64 %.0190240
  %132 = load <2 x float>, ptr %131, align 4, !tbaa !9
  store <2 x float> %132, ptr %41, align 8, !tbaa !9
  %133 = call i32 @cmake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %22, ptr noundef nonnull %39, ptr noundef nonnull %46, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %134 = load i64, ptr %33, align 8, !tbaa !5
  %135 = add nsw i64 %134, 1
  store i64 %135, ptr %33, align 8, !tbaa !5
  %136 = load i8, ptr %42, align 1, !tbaa !11
  %137 = load i8, ptr %43, align 1, !tbaa !11
  %138 = load i64, ptr %30, align 8, !tbaa !5
  %139 = load i64, ptr %31, align 8, !tbaa !5
  %140 = load float, ptr %44, align 8, !tbaa !12
  %141 = load float, ptr %61, align 4, !tbaa !14
  %142 = load i64, ptr %34, align 8, !tbaa !5
  %.not206223 = icmp slt i64 %142, 1
  br i1 %.not206223, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph242
  %min.iters.check362 = icmp ult i64 %142, 8
  br i1 %min.iters.check362, label %.lr.ph.preheader383, label %vector.memcheck344

vector.memcheck344:                               ; preds = %.lr.ph.preheader
  %143 = shl i64 %142, 3
  %scevgep346 = getelementptr i8, ptr %scevgep345, i64 %143
  %scevgep348 = getelementptr i8, ptr %scevgep347, i64 %143
  %scevgep350 = getelementptr i8, ptr %17, i64 %143
  %scevgep352 = getelementptr i8, ptr %16, i64 %143
  %bound0353 = icmp ugt ptr %scevgep348, %17
  %bound1354 = icmp ugt ptr %scevgep346, %16
  %found.conflict355 = and i1 %bound0353, %bound1354
  %bound0356 = icmp ult ptr %scevgep349, %scevgep352
  %bound1357 = icmp ult ptr %scevgep351, %scevgep350
  %found.conflict358 = and i1 %bound0356, %bound1357
  %conflict.rdx359 = or i1 %found.conflict355, %found.conflict358
  br i1 %conflict.rdx359, label %.lr.ph.preheader383, label %vector.ph363

vector.ph363:                                     ; preds = %vector.memcheck344
  %n.vec365 = and i64 %142, 9223372036854775804
  %ind.end366 = or disjoint i64 %n.vec365, 1
  br label %vector.body368

vector.body368:                                   ; preds = %vector.body368, %vector.ph363
  %index369 = phi i64 [ 0, %vector.ph363 ], [ %index.next379, %vector.body368 ]
  %144 = or disjoint i64 %index369, 3
  %145 = getelementptr %struct.complex, ptr %16, i64 %index369
  %146 = getelementptr inbounds %struct.complex, ptr %56, i64 %144
  %wide.vec371 = load <4 x float>, ptr %145, align 4, !tbaa !9
  %wide.vec372 = load <4 x float>, ptr %146, align 4, !tbaa !9
  %147 = getelementptr %struct.complex, ptr %17, i64 %index369
  %148 = getelementptr inbounds %struct.complex, ptr %55, i64 %144
  store <4 x float> %wide.vec371, ptr %147, align 4, !tbaa !9
  store <4 x float> %wide.vec372, ptr %148, align 4, !tbaa !9
  %index.next379 = add nuw i64 %index369, 4
  %149 = icmp eq i64 %index.next379, %n.vec365
  br i1 %149, label %middle.block360, label %vector.body368, !llvm.loop !15

middle.block360:                                  ; preds = %vector.body368
  %cmp.n380 = icmp eq i64 %142, %n.vec365
  br i1 %cmp.n380, label %._crit_edge, label %.lr.ph.preheader383

.lr.ph.preheader383:                              ; preds = %middle.block360, %vector.memcheck344, %.lr.ph.preheader
  %storemerge205224.ph = phi i64 [ 1, %vector.memcheck344 ], [ 1, %.lr.ph.preheader ], [ %ind.end366, %middle.block360 ]
  %150 = add nuw i64 %142, 1
  %151 = sub i64 %150, %storemerge205224.ph
  %152 = sub i64 %142, %storemerge205224.ph
  %xtraiter = and i64 %151, 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.preheader383, %.lr.ph.prol
  %storemerge205224.prol = phi i64 [ %156, %.lr.ph.prol ], [ %storemerge205224.ph, %.lr.ph.preheader383 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader383 ]
  %153 = getelementptr inbounds %struct.complex, ptr %56, i64 %storemerge205224.prol
  %154 = getelementptr inbounds %struct.complex, ptr %55, i64 %storemerge205224.prol
  %155 = load <2 x float>, ptr %153, align 4, !tbaa !9
  store <2 x float> %155, ptr %154, align 4, !tbaa !9
  %156 = add nuw i64 %storemerge205224.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.preheader383
  %storemerge205224.unr = phi i64 [ %storemerge205224.ph, %.lr.ph.preheader383 ], [ %156, %.lr.ph.prol ]
  %157 = icmp ult i64 %152, 3
  br i1 %157, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge205224 = phi i64 [ %172, %.lr.ph ], [ %storemerge205224.unr, %.lr.ph.prol.loopexit ]
  %158 = getelementptr inbounds %struct.complex, ptr %56, i64 %storemerge205224
  %159 = getelementptr inbounds %struct.complex, ptr %55, i64 %storemerge205224
  %160 = load <2 x float>, ptr %158, align 4, !tbaa !9
  store <2 x float> %160, ptr %159, align 4, !tbaa !9
  %161 = getelementptr %struct.complex, ptr %16, i64 %storemerge205224
  %162 = getelementptr %struct.complex, ptr %17, i64 %storemerge205224
  %163 = load <2 x float>, ptr %161, align 4, !tbaa !9
  store <2 x float> %163, ptr %162, align 4, !tbaa !9
  %164 = add nuw i64 %storemerge205224, 2
  %165 = getelementptr inbounds %struct.complex, ptr %56, i64 %164
  %166 = getelementptr inbounds %struct.complex, ptr %55, i64 %164
  %167 = load <2 x float>, ptr %165, align 4, !tbaa !9
  store <2 x float> %167, ptr %166, align 4, !tbaa !9
  %168 = add nuw i64 %storemerge205224, 3
  %169 = getelementptr inbounds %struct.complex, ptr %56, i64 %168
  %170 = getelementptr inbounds %struct.complex, ptr %55, i64 %168
  %171 = load <2 x float>, ptr %169, align 4, !tbaa !9
  store <2 x float> %171, ptr %170, align 4, !tbaa !9
  %172 = add nuw i64 %storemerge205224, 4
  %exitcond.not.3 = icmp eq i64 %168, %142
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !21

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block360, %.lr.ph242
  %173 = load i64, ptr %36, align 8, !tbaa !5
  %174 = load i64, ptr %35, align 8, !tbaa !5
  %.not208225 = icmp slt i64 %174, 1
  br i1 %.not208225, label %._crit_edge229, label %.lr.ph228.preheader

.lr.ph228.preheader:                              ; preds = %._crit_edge
  %min.iters.check325 = icmp ult i64 %174, 8
  br i1 %min.iters.check325, label %.lr.ph228.preheader382, label %vector.memcheck307

vector.memcheck307:                               ; preds = %.lr.ph228.preheader
  %175 = shl i64 %174, 3
  %scevgep309 = getelementptr i8, ptr %scevgep308, i64 %175
  %scevgep311 = getelementptr i8, ptr %scevgep310, i64 %175
  %scevgep313 = getelementptr i8, ptr %20, i64 %175
  %scevgep315 = getelementptr i8, ptr %19, i64 %175
  %bound0316 = icmp ugt ptr %scevgep311, %20
  %bound1317 = icmp ugt ptr %scevgep309, %19
  %found.conflict318 = and i1 %bound0316, %bound1317
  %bound0319 = icmp ult ptr %scevgep312, %scevgep315
  %bound1320 = icmp ult ptr %scevgep314, %scevgep313
  %found.conflict321 = and i1 %bound0319, %bound1320
  %conflict.rdx322 = or i1 %found.conflict318, %found.conflict321
  br i1 %conflict.rdx322, label %.lr.ph228.preheader382, label %vector.ph326

vector.ph326:                                     ; preds = %vector.memcheck307
  %n.vec328 = and i64 %174, 9223372036854775804
  %ind.end329 = or disjoint i64 %n.vec328, 1
  br label %vector.body331

vector.body331:                                   ; preds = %vector.body331, %vector.ph326
  %index332 = phi i64 [ 0, %vector.ph326 ], [ %index.next342, %vector.body331 ]
  %176 = or disjoint i64 %index332, 3
  %177 = getelementptr %struct.complex, ptr %19, i64 %index332
  %178 = getelementptr inbounds %struct.complex, ptr %54, i64 %176
  %wide.vec334 = load <4 x float>, ptr %177, align 4, !tbaa !9
  %wide.vec335 = load <4 x float>, ptr %178, align 4, !tbaa !9
  %179 = getelementptr %struct.complex, ptr %20, i64 %index332
  %180 = getelementptr inbounds %struct.complex, ptr %53, i64 %176
  store <4 x float> %wide.vec334, ptr %179, align 4, !tbaa !9
  store <4 x float> %wide.vec335, ptr %180, align 4, !tbaa !9
  %index.next342 = add nuw i64 %index332, 4
  %181 = icmp eq i64 %index.next342, %n.vec328
  br i1 %181, label %middle.block323, label %vector.body331, !llvm.loop !22

middle.block323:                                  ; preds = %vector.body331
  %cmp.n343 = icmp eq i64 %174, %n.vec328
  br i1 %cmp.n343, label %._crit_edge229, label %.lr.ph228.preheader382

.lr.ph228.preheader382:                           ; preds = %middle.block323, %vector.memcheck307, %.lr.ph228.preheader
  %storemerge207226.ph = phi i64 [ 1, %vector.memcheck307 ], [ 1, %.lr.ph228.preheader ], [ %ind.end329, %middle.block323 ]
  %182 = add nuw i64 %174, 1
  %183 = sub i64 %182, %storemerge207226.ph
  %184 = sub i64 %174, %storemerge207226.ph
  %xtraiter390 = and i64 %183, 3
  %lcmp.mod391.not = icmp eq i64 %xtraiter390, 0
  br i1 %lcmp.mod391.not, label %.lr.ph228.prol.loopexit, label %.lr.ph228.prol

.lr.ph228.prol:                                   ; preds = %.lr.ph228.preheader382, %.lr.ph228.prol
  %storemerge207226.prol = phi i64 [ %188, %.lr.ph228.prol ], [ %storemerge207226.ph, %.lr.ph228.preheader382 ]
  %prol.iter392 = phi i64 [ %prol.iter392.next, %.lr.ph228.prol ], [ 0, %.lr.ph228.preheader382 ]
  %185 = getelementptr inbounds %struct.complex, ptr %54, i64 %storemerge207226.prol
  %186 = getelementptr inbounds %struct.complex, ptr %53, i64 %storemerge207226.prol
  %187 = load <2 x float>, ptr %185, align 4, !tbaa !9
  store <2 x float> %187, ptr %186, align 4, !tbaa !9
  %188 = add nuw i64 %storemerge207226.prol, 1
  %prol.iter392.next = add i64 %prol.iter392, 1
  %prol.iter392.cmp.not = icmp eq i64 %prol.iter392.next, %xtraiter390
  br i1 %prol.iter392.cmp.not, label %.lr.ph228.prol.loopexit, label %.lr.ph228.prol, !llvm.loop !23

.lr.ph228.prol.loopexit:                          ; preds = %.lr.ph228.prol, %.lr.ph228.preheader382
  %storemerge207226.unr = phi i64 [ %storemerge207226.ph, %.lr.ph228.preheader382 ], [ %188, %.lr.ph228.prol ]
  %189 = icmp ult i64 %184, 3
  br i1 %189, label %._crit_edge229, label %.lr.ph228

.lr.ph228:                                        ; preds = %.lr.ph228.prol.loopexit, %.lr.ph228
  %storemerge207226 = phi i64 [ %204, %.lr.ph228 ], [ %storemerge207226.unr, %.lr.ph228.prol.loopexit ]
  %190 = getelementptr inbounds %struct.complex, ptr %54, i64 %storemerge207226
  %191 = getelementptr inbounds %struct.complex, ptr %53, i64 %storemerge207226
  %192 = load <2 x float>, ptr %190, align 4, !tbaa !9
  store <2 x float> %192, ptr %191, align 4, !tbaa !9
  %193 = getelementptr %struct.complex, ptr %19, i64 %storemerge207226
  %194 = getelementptr %struct.complex, ptr %20, i64 %storemerge207226
  %195 = load <2 x float>, ptr %193, align 4, !tbaa !9
  store <2 x float> %195, ptr %194, align 4, !tbaa !9
  %196 = add nuw i64 %storemerge207226, 2
  %197 = getelementptr inbounds %struct.complex, ptr %54, i64 %196
  %198 = getelementptr inbounds %struct.complex, ptr %53, i64 %196
  %199 = load <2 x float>, ptr %197, align 4, !tbaa !9
  store <2 x float> %199, ptr %198, align 4, !tbaa !9
  %200 = add nuw i64 %storemerge207226, 3
  %201 = getelementptr inbounds %struct.complex, ptr %54, i64 %200
  %202 = getelementptr inbounds %struct.complex, ptr %53, i64 %200
  %203 = load <2 x float>, ptr %201, align 4, !tbaa !9
  store <2 x float> %203, ptr %202, align 4, !tbaa !9
  %204 = add nuw i64 %storemerge207226, 4
  %exitcond269.not.3 = icmp eq i64 %200, %174
  br i1 %exitcond269.not.3, label %._crit_edge229, label %.lr.ph228, !llvm.loop !24

._crit_edge229:                                   ; preds = %.lr.ph228.prol.loopexit, %.lr.ph228, %middle.block323, %._crit_edge
  %205 = load i64, ptr %38, align 8, !tbaa !5
  %206 = load float, ptr %41, align 8, !tbaa !12
  %207 = load float, ptr %62, align 4, !tbaa !14
  %208 = load i64, ptr %37, align 8, !tbaa !5
  %.not210231 = icmp slt i64 %208, 1
  br i1 %.not210231, label %._crit_edge235, label %.lr.ph234.preheader

.lr.ph234.preheader:                              ; preds = %._crit_edge229
  %209 = add nuw i64 %208, 1
  %min.iters.check = icmp ult i64 %208, 8
  br i1 %min.iters.check, label %.lr.ph234.preheader381, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph234.preheader
  %210 = shl i64 %208, 3
  %scevgep292 = getelementptr i8, ptr %scevgep, i64 %210
  %scevgep294 = getelementptr i8, ptr %scevgep293, i64 %210
  %scevgep296 = getelementptr i8, ptr %23, i64 %210
  %scevgep298 = getelementptr i8, ptr %22, i64 %210
  %bound0 = icmp ugt ptr %scevgep294, %23
  %bound1 = icmp ugt ptr %scevgep292, %22
  %found.conflict = and i1 %bound0, %bound1
  %bound0299 = icmp ult ptr %scevgep295, %scevgep298
  %bound1300 = icmp ult ptr %scevgep297, %scevgep296
  %found.conflict301 = and i1 %bound0299, %bound1300
  %conflict.rdx = or i1 %found.conflict, %found.conflict301
  br i1 %conflict.rdx, label %.lr.ph234.preheader381, label %vector.ph

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

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %211 = or disjoint i64 %index, 3
  %212 = getelementptr %struct.complex, ptr %22, i64 %index
  %213 = getelementptr inbounds %struct.complex, ptr %52, i64 %211
  %wide.vec = load <4 x float>, ptr %212, align 4, !tbaa !9
  %wide.vec302 = load <4 x float>, ptr %213, align 4, !tbaa !9
  %214 = getelementptr %struct.complex, ptr %23, i64 %index
  %215 = getelementptr inbounds %struct.complex, ptr %51, i64 %211
  store <4 x float> %wide.vec, ptr %214, align 4, !tbaa !9
  store <4 x float> %wide.vec302, ptr %215, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %216 = icmp eq i64 %index.next, %n.vec
  br i1 %216, label %middle.block, label %vector.body, !llvm.loop !25

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %208, %n.vec
  br i1 %cmp.n, label %._crit_edge235, label %.lr.ph234.preheader381

.lr.ph234.preheader381:                           ; preds = %middle.block, %vector.memcheck, %.lr.ph234.preheader
  %storemerge209232.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph234.preheader ], [ %ind.end, %middle.block ]
  %217 = add nuw i64 %208, 1
  %218 = sub i64 %217, %storemerge209232.ph
  %219 = sub i64 %208, %storemerge209232.ph
  %xtraiter393 = and i64 %218, 3
  %lcmp.mod394.not = icmp eq i64 %xtraiter393, 0
  br i1 %lcmp.mod394.not, label %.lr.ph234.prol.loopexit, label %.lr.ph234.prol

.lr.ph234.prol:                                   ; preds = %.lr.ph234.preheader381, %.lr.ph234.prol
  %storemerge209232.prol = phi i64 [ %223, %.lr.ph234.prol ], [ %storemerge209232.ph, %.lr.ph234.preheader381 ]
  %prol.iter395 = phi i64 [ %prol.iter395.next, %.lr.ph234.prol ], [ 0, %.lr.ph234.preheader381 ]
  %220 = getelementptr inbounds %struct.complex, ptr %52, i64 %storemerge209232.prol
  %221 = getelementptr inbounds %struct.complex, ptr %51, i64 %storemerge209232.prol
  %222 = load <2 x float>, ptr %220, align 4, !tbaa !9
  store <2 x float> %222, ptr %221, align 4, !tbaa !9
  %223 = add nuw i64 %storemerge209232.prol, 1
  %prol.iter395.next = add i64 %prol.iter395, 1
  %prol.iter395.cmp.not = icmp eq i64 %prol.iter395.next, %xtraiter393
  br i1 %prol.iter395.cmp.not, label %.lr.ph234.prol.loopexit, label %.lr.ph234.prol, !llvm.loop !26

.lr.ph234.prol.loopexit:                          ; preds = %.lr.ph234.prol, %.lr.ph234.preheader381
  %storemerge209232.unr = phi i64 [ %storemerge209232.ph, %.lr.ph234.preheader381 ], [ %223, %.lr.ph234.prol ]
  %224 = icmp ult i64 %219, 3
  br i1 %224, label %._crit_edge235, label %.lr.ph234

.lr.ph234:                                        ; preds = %.lr.ph234.prol.loopexit, %.lr.ph234
  %storemerge209232 = phi i64 [ %239, %.lr.ph234 ], [ %storemerge209232.unr, %.lr.ph234.prol.loopexit ]
  %225 = getelementptr inbounds %struct.complex, ptr %52, i64 %storemerge209232
  %226 = getelementptr inbounds %struct.complex, ptr %51, i64 %storemerge209232
  %227 = load <2 x float>, ptr %225, align 4, !tbaa !9
  store <2 x float> %227, ptr %226, align 4, !tbaa !9
  %228 = getelementptr %struct.complex, ptr %22, i64 %storemerge209232
  %229 = getelementptr %struct.complex, ptr %23, i64 %storemerge209232
  %230 = load <2 x float>, ptr %228, align 4, !tbaa !9
  store <2 x float> %230, ptr %229, align 4, !tbaa !9
  %231 = add nuw i64 %storemerge209232, 2
  %232 = getelementptr inbounds %struct.complex, ptr %52, i64 %231
  %233 = getelementptr inbounds %struct.complex, ptr %51, i64 %231
  %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 %storemerge209232, 3
  %236 = getelementptr inbounds %struct.complex, ptr %52, i64 %235
  %237 = getelementptr inbounds %struct.complex, ptr %51, i64 %235
  %238 = load <2 x float>, ptr %236, align 4, !tbaa !9
  store <2 x float> %238, ptr %237, align 4, !tbaa !9
  %239 = add nuw i64 %storemerge209232, 4
  %exitcond270.not.3 = icmp eq i64 %235, %208
  br i1 %exitcond270.not.3, label %._crit_edge235, label %.lr.ph234, !llvm.loop !27

._crit_edge235:                                   ; preds = %.lr.ph234.prol.loopexit, %.lr.ph234, %middle.block, %._crit_edge229
  %storemerge209.lcssa = phi i64 [ 1, %._crit_edge229 ], [ %209, %middle.block ], [ %209, %.lr.ph234 ], [ %209, %.lr.ph234.prol.loopexit ]
  store i64 %storemerge209.lcssa, ptr %29, align 8, !tbaa !5
  %240 = load i64, ptr %39, align 8, !tbaa !5
  %241 = load i64, ptr %5, align 8, !tbaa !5
  %.not211 = icmp eq i64 %241, 0
  br i1 %.not211, label %257, label %242

242:                                              ; preds = %._crit_edge235
  %243 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %243, ptr getelementptr inbounds (i8, ptr @cchk2_.io___172, i64 8), align 8, !tbaa !28
  %244 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___172) #3
  %245 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #3
  %246 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %247 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #3
  %248 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %249 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %250 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %251 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %44, i64 noundef 4) #3
  %252 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #3
  %253 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %254 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %41, i64 noundef 4) #3
  %255 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #3
  %256 = call i64 @e_wsfe() #3
  br label %257

257:                                              ; preds = %242, %._crit_edge235
  %258 = load i64, ptr %6, align 8, !tbaa !5
  %.not212 = icmp eq i64 %258, 0
  br i1 %.not212, label %262, label %259

259:                                              ; preds = %257
  store i64 0, ptr %28, align 8, !tbaa !31
  %260 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %260, ptr %63, align 8, !tbaa !33
  %261 = call i64 @f_rew(ptr noundef nonnull %28) #3
  br label %262

262:                                              ; preds = %259, %257
  br i1 %59, label %263, label %265

263:                                              ; preds = %262
  %264 = call i32 @f2c_chemm(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %16, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %38, ptr noundef nonnull %41, ptr noundef %22, ptr noundef nonnull %39) #3
  br label %267

265:                                              ; preds = %262
  %266 = call i32 @f2c_csymm(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %16, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %38, ptr noundef nonnull %41, ptr noundef %22, ptr noundef nonnull %39) #3
  br label %267

267:                                              ; preds = %265, %263
  %268 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not213 = icmp eq i64 %268, 0
  br i1 %.not213, label %269, label %273

269:                                              ; preds = %267
  %270 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %270, ptr getelementptr inbounds (i8, ptr @cchk2_.io___173, i64 8), align 8, !tbaa !28
  %271 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___173) #3
  %272 = call i64 @e_wsfe() #3
  br label %.loopexit.sink.split

273:                                              ; preds = %267
  %274 = load i8, ptr %42, align 1, !tbaa !11
  %275 = icmp eq i8 %136, %274
  %276 = zext i1 %275 to i64
  store i64 %276, ptr %45, align 16, !tbaa !5
  %277 = load i8, ptr %43, align 1, !tbaa !11
  %278 = icmp eq i8 %137, %277
  %279 = zext i1 %278 to i64
  store i64 %279, ptr %64, align 8, !tbaa !5
  %280 = load i64, ptr %30, align 8, !tbaa !5
  %281 = icmp eq i64 %138, %280
  %282 = zext i1 %281 to i64
  store i64 %282, ptr %65, align 16, !tbaa !5
  %283 = load i64, ptr %31, align 8, !tbaa !5
  %284 = icmp eq i64 %139, %283
  %285 = zext i1 %284 to i64
  store i64 %285, ptr %66, align 8, !tbaa !5
  %286 = load float, ptr %44, align 8, !tbaa !12
  %287 = fcmp oeq float %140, %286
  %288 = load float, ptr %61, align 4
  %289 = fcmp oeq float %141, %288
  %290 = select i1 %287, i1 %289, i1 false
  %291 = zext i1 %290 to i64
  store i64 %291, ptr %67, align 16, !tbaa !5
  %292 = call i64 @lce_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %34)
  store i64 %292, ptr %68, align 8, !tbaa !5
  %293 = load i64, ptr %36, align 8, !tbaa !5
  %294 = icmp eq i64 %173, %293
  %295 = zext i1 %294 to i64
  store i64 %295, ptr %69, align 16, !tbaa !5
  %296 = call i64 @lce_(ptr noundef %20, ptr noundef %19, ptr noundef nonnull %35)
  store i64 %296, ptr %70, align 8, !tbaa !5
  %297 = load i64, ptr %38, align 8, !tbaa !5
  %298 = icmp eq i64 %205, %297
  %299 = zext i1 %298 to i64
  store i64 %299, ptr %71, align 16, !tbaa !5
  %300 = load float, ptr %41, align 8, !tbaa !12
  %301 = fcmp oeq float %206, %300
  %302 = load float, ptr %62, align 4
  %303 = fcmp oeq float %207, %302
  %304 = select i1 %301, i1 %303, i1 false
  %305 = zext i1 %304 to i64
  store i64 %305, ptr %72, align 8, !tbaa !5
  br i1 %94, label %306, label %308

306:                                              ; preds = %273
  %307 = call i64 @lce_(ptr noundef %23, ptr noundef %22, ptr noundef nonnull %37)
  br label %310

308:                                              ; preds = %273
  %309 = call i64 @lceres_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %23, ptr noundef %22, ptr noundef nonnull %39, i64 noundef 2, i64 noundef 1)
  br label %310

310:                                              ; preds = %308, %306
  %storemerge279 = phi i64 [ %309, %308 ], [ %307, %306 ]
  store i64 %storemerge279, ptr %73, align 16, !tbaa !5
  %311 = load i64, ptr %39, align 8, !tbaa !5
  %312 = icmp eq i64 %240, %311
  %313 = zext i1 %312 to i64
  store i64 %313, ptr %74, align 8, !tbaa !5
  store i64 1, ptr %29, align 8, !tbaa !5
  br label %._crit_edge277

._crit_edge277:                                   ; preds = %310, %322
  %314 = phi i64 [ 1, %310 ], [ %324, %322 ]
  %.0238 = phi i1 [ true, %310 ], [ %316, %322 ]
  %storemerge214237 = phi i64 [ 0, %310 ], [ %323, %322 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %45, i64 0, i64 %storemerge214237
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %315 = icmp ne i64 %.pre, 0
  %316 = and i1 %.0238, %315
  %.not218 = icmp eq i64 %.pre, 0
  br i1 %.not218, label %317, label %322

317:                                              ; preds = %._crit_edge277
  %318 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %318, ptr getelementptr inbounds (i8, ptr @cchk2_.io___176, i64 8), align 8, !tbaa !28
  %319 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___176) #3
  %320 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %29, i64 noundef 8) #3
  %321 = call i64 @e_wsfe() #3
  %.pre278 = load i64, ptr %29, align 8, !tbaa !5
  br label %322

322:                                              ; preds = %._crit_edge277, %317
  %323 = phi i64 [ %314, %._crit_edge277 ], [ %.pre278, %317 ]
  %324 = add nsw i64 %323, 1
  store i64 %324, ptr %29, align 8, !tbaa !5
  %325 = icmp slt i64 %323, 12
  br i1 %325, label %._crit_edge277, label %326, !llvm.loop !34

326:                                              ; preds = %322
  br i1 %316, label %327, label %.loopexit.sink.split

327:                                              ; preds = %326
  br i1 %94, label %338, label %328

328:                                              ; preds = %327
  br i1 %105, label %329, label %331

329:                                              ; preds = %328
  %330 = call i32 @cmmch_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull %44, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %18, ptr noundef nonnull %14, ptr noundef nonnull %41, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef %22, ptr noundef nonnull %39, ptr noundef %1, ptr noundef nonnull %40, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %333

331:                                              ; preds = %328
  %332 = call i32 @cmmch_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %18, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %14, ptr noundef nonnull %41, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef %22, ptr noundef nonnull %39, ptr noundef %1, ptr noundef nonnull %40, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %333

333:                                              ; preds = %331, %329
  %334 = load float, ptr %40, align 4
  %335 = fcmp oge float %130, %334
  %336 = select i1 %335, float %130, float %334
  store float %336, ptr %47, align 4, !tbaa !9
  %337 = load i64, ptr %7, align 8, !tbaa !5
  %.not216 = icmp eq i64 %337, 0
  br i1 %.not216, label %338, label %.loopexit

338:                                              ; preds = %327, %333
  %339 = phi float [ %130, %327 ], [ %336, %333 ]
  %340 = add nuw i64 %.0190240, 1
  %exitcond271.not = icmp eq i64 %.0190240, %129
  br i1 %exitcond271.not, label %._crit_edge243, label %.lr.ph242, !llvm.loop !35

._crit_edge243:                                   ; preds = %338, %.lr.ph247.split
  %341 = phi float [ %126, %.lr.ph247.split ], [ %339, %338 ]
  %342 = add nuw i64 %.0191245, 1
  %exitcond272.not = icmp eq i64 %.0191245, %121
  br i1 %exitcond272.not, label %._crit_edge248, label %.lr.ph247.split, !llvm.loop !36

._crit_edge248:                                   ; preds = %._crit_edge243, %.lr.ph247.split.us.preheader, %115
  %343 = phi float [ %116, %.lr.ph247.split.us.preheader ], [ %116, %115 ], [ %341, %._crit_edge243 ]
  %344 = add nuw nsw i64 %.0186253, 1
  %exitcond273.not = icmp eq i64 %344, 3
  br i1 %exitcond273.not, label %.loopexit221, label %115, !llvm.loop !38

.loopexit221:                                     ; preds = %._crit_edge248, %110
  %345 = phi float [ %101, %110 ], [ %343, %._crit_edge248 ]
  %346 = add nuw nsw i64 %.0187254, 1
  %exitcond274.not = icmp eq i64 %346, 3
  br i1 %exitcond274.not, label %.loopexit222, label %100, !llvm.loop !39

.loopexit222:                                     ; preds = %.loopexit221, %87, %90
  %347 = phi float [ %79, %87 ], [ %79, %90 ], [ %345, %.loopexit221 ]
  %348 = add nuw i64 %.0188256, 1
  %exitcond275.not = icmp eq i64 %.0188256, %78
  br i1 %exitcond275.not, label %._crit_edge259, label %.lr.ph258, !llvm.loop !40

._crit_edge259:                                   ; preds = %.loopexit222, %.lr.ph263.split
  %349 = phi float [ %75, %.lr.ph263.split ], [ %347, %.loopexit222 ]
  %350 = add nuw i64 %.0189261, 1
  %exitcond276.not = icmp eq i64 %.0189261, %60
  br i1 %exitcond276.not, label %._crit_edge264, label %.lr.ph263.split, !llvm.loop !41

._crit_edge264:                                   ; preds = %._crit_edge259, %27
  %351 = phi float [ 0.000000e+00, %27 ], [ %349, %._crit_edge259 ]
  %352 = load float, ptr %2, align 4, !tbaa !9
  %353 = fcmp olt float %351, %352
  %354 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %353, label %355, label %359

355:                                              ; preds = %._crit_edge264
  store i64 %354, ptr getelementptr inbounds (i8, ptr @cchk2_.io___178, i64 8), align 8, !tbaa !28
  %356 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___178) #3
  %357 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %358 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #3
  br label %381

359:                                              ; preds = %._crit_edge264
  store i64 %354, ptr getelementptr inbounds (i8, ptr @cchk2_.io___179, i64 8), align 8, !tbaa !28
  %360 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___179) #3
  %361 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %362 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #3
  %363 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 4) #3
  br label %381

.loopexit.sink.split:                             ; preds = %326, %269
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %333, %.loopexit.sink.split
  %364 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %364, ptr getelementptr inbounds (i8, ptr @cchk2_.io___180, i64 8), align 8, !tbaa !28
  %365 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___180) #3
  %366 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %367 = call i64 @e_wsfe() #3
  %368 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %368, ptr getelementptr inbounds (i8, ptr @cchk2_.io___181, i64 8), align 8, !tbaa !28
  %369 = call i64 @s_wsfe(ptr noundef nonnull @cchk2_.io___181) #3
  %370 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #3
  %371 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %372 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #3
  %373 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %374 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %375 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %376 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %44, i64 noundef 4) #3
  %377 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #3
  %378 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %379 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %41, i64 noundef 4) #3
  %380 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #3
  br label %381

381:                                              ; preds = %355, %359, %.loopexit
  %382 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #3
  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_chemm(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_csymm(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

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 = { 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}
!37 = !{!"llvm.loop.unswitch.partial.disable"}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16, !37}


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