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

; 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.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@dchk4_.icht = external hidden global [3 x i8], align 1
@dchk4_.ichu = external hidden global [2 x i8], align 1
@dchk4_.io___268 = external hidden global %struct.cilist, align 8
@dchk4_.io___269 = external hidden global %struct.cilist, align 8
@dchk4_.io___272 = external hidden global %struct.cilist, align 8
@dchk4_.io___278 = external hidden global %struct.cilist, align 8
@dchk4_.io___279 = external hidden global %struct.cilist, align 8
@dchk4_.io___280 = external hidden global %struct.cilist, align 8
@dchk4_.io___281 = external hidden global %struct.cilist, align 8
@dchk4_.io___282 = external hidden global %struct.cilist, align 8
@.str.11 = external hidden unnamed_addr constant [2 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

; Function Attrs: nounwind uwtable
declare dso_local i32 @dmmch_(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 @lde_(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @dchk4_(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 %struct.alist, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca double, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca double, align 8
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca [1 x i8], align 1
  %99 = alloca double, align 8
  %100 = alloca [13 x i64], align 16
  %101 = alloca i64, align 8
  %102 = alloca i64, align 8
  %103 = alloca [1 x i8], align 1
  %104 = alloca i64, align 8
  %105 = alloca [1 x i8], align 1
  %106 = alloca double, align 8
  %107 = alloca [1 x i8], align 1
  store ptr %0, ptr %28, align 8, !tbaa !5
  store ptr %1, ptr %29, align 8, !tbaa !5
  store ptr %2, ptr %30, align 8, !tbaa !5
  store ptr %3, ptr %31, align 8, !tbaa !5
  store ptr %4, ptr %32, align 8, !tbaa !5
  store ptr %5, ptr %33, align 8, !tbaa !5
  store ptr %6, ptr %34, align 8, !tbaa !5
  store ptr %7, ptr %35, align 8, !tbaa !5
  store ptr %8, ptr %36, align 8, !tbaa !5
  store ptr %9, ptr %37, align 8, !tbaa !5
  store ptr %10, ptr %38, align 8, !tbaa !5
  store ptr %11, ptr %39, align 8, !tbaa !5
  store ptr %12, ptr %40, align 8, !tbaa !5
  store ptr %13, ptr %41, align 8, !tbaa !5
  store ptr %14, ptr %42, align 8, !tbaa !5
  store ptr %15, ptr %43, align 8, !tbaa !5
  store ptr %16, ptr %44, align 8, !tbaa !5
  store ptr %17, ptr %45, align 8, !tbaa !5
  store ptr %18, ptr %46, align 8, !tbaa !5
  store ptr %19, ptr %47, align 8, !tbaa !5
  store ptr %20, ptr %48, align 8, !tbaa !5
  store ptr %21, ptr %49, align 8, !tbaa !5
  store ptr %22, ptr %50, align 8, !tbaa !5
  store ptr %23, ptr %51, align 8, !tbaa !5
  store ptr %24, ptr %52, align 8, !tbaa !5
  store ptr %25, ptr %53, align 8, !tbaa !5
  store i64 %26, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #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 16, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 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 8, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 1, ptr %105) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 1, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, ptr %151, i64 %152
  store ptr %153, ptr %43, align 8, !tbaa !5
  store i64 10, ptr %101, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %102, align 8, !tbaa !9
  store double 0.000000e+00, ptr %106, align 8, !tbaa !11
  %154 = load ptr, ptr %36, align 8, !tbaa !5
  %155 = load i64, ptr %154, align 8, !tbaa !9
  store i64 %155, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %156

156:                                              ; preds = %656, %27
  %157 = load i64, ptr %78, align 8, !tbaa !9
  %158 = load i64, ptr %61, align 8, !tbaa !9
  %159 = icmp sle i64 %157, %158
  br i1 %159, label %160, label %659

160:                                              ; preds = %156
  %161 = load ptr, ptr %37, align 8, !tbaa !5
  %162 = load i64, ptr %78, align 8, !tbaa !9
  %163 = getelementptr inbounds i64, ptr %161, i64 %162
  %164 = load i64, ptr %163, align 8, !tbaa !9
  store i64 %164, ptr %70, align 8, !tbaa !9
  %165 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %165, ptr %86, align 8, !tbaa !9
  %166 = load i64, ptr %86, align 8, !tbaa !9
  %167 = load ptr, ptr %42, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = icmp slt i64 %166, %168
  br i1 %169, label %170, label %173

170:                                              ; preds = %160
  %171 = load i64, ptr %86, align 8, !tbaa !9
  %172 = add nsw i64 %171, 1
  store i64 %172, ptr %86, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %170, %160
  %174 = load i64, ptr %86, align 8, !tbaa !9
  %175 = load ptr, ptr %42, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sgt i64 %174, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %173
  br label %655

179:                                              ; preds = %173
  %180 = load i64, ptr %86, align 8, !tbaa !9
  %181 = load i64, ptr %70, align 8, !tbaa !9
  %182 = mul nsw i64 %180, %181
  store i64 %182, ptr %85, align 8, !tbaa !9
  %183 = load i64, ptr %70, align 8, !tbaa !9
  %184 = icmp sle i64 %183, 0
  %185 = zext i1 %184 to i32
  %186 = sext i32 %185 to i64
  store i64 %186, ptr %97, align 8, !tbaa !9
  %187 = load ptr, ptr %36, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  store i64 %188, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %651, %179
  %190 = load i64, ptr %77, align 8, !tbaa !9
  %191 = load i64, ptr %62, align 8, !tbaa !9
  %192 = icmp sle i64 %190, %191
  br i1 %192, label %193, label %654

193:                                              ; preds = %189
  %194 = load ptr, ptr %37, align 8, !tbaa !5
  %195 = load i64, ptr %77, align 8, !tbaa !9
  %196 = getelementptr inbounds i64, ptr %194, i64 %195
  %197 = load i64, ptr %196, align 8, !tbaa !9
  store i64 %197, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %198

198:                                              ; preds = %647, %193
  %199 = load i64, ptr %88, align 8, !tbaa !9
  %200 = icmp sle i64 %199, 3
  br i1 %200, label %201, label %650

201:                                              ; preds = %198
  %202 = load i64, ptr %88, align 8, !tbaa !9
  %203 = sub nsw i64 %202, 1
  %204 = getelementptr inbounds [3 x i8], ptr @dchk4_.icht, i64 0, i64 %203
  %205 = load i8, ptr %204, align 1, !tbaa !13
  %206 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  store i8 %205, ptr %206, align 1, !tbaa !13
  %207 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %208 = load i8, ptr %207, align 1, !tbaa !13
  %209 = zext i8 %208 to i32
  %210 = icmp eq i32 %209, 84
  br i1 %210, label %216, label %211

211:                                              ; preds = %201
  %212 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %213 = load i8, ptr %212, align 1, !tbaa !13
  %214 = zext i8 %213 to i32
  %215 = icmp eq i32 %214, 67
  br label %216

216:                                              ; preds = %211, %201
  %217 = phi i1 [ true, %201 ], [ %215, %211 ]
  %218 = zext i1 %217 to i32
  %219 = sext i32 %218 to i64
  store i64 %219, ptr %96, align 8, !tbaa !9
  %220 = load i64, ptr %96, align 8, !tbaa !9
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %216
  %223 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %223, ptr %74, align 8, !tbaa !9
  %224 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %224, ptr %75, align 8, !tbaa !9
  br label %228

225:                                              ; preds = %216
  %226 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %226, ptr %74, align 8, !tbaa !9
  %227 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %227, ptr %75, align 8, !tbaa !9
  br label %228

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

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

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

242:                                              ; preds = %237
  br label %646

243:                                              ; preds = %237
  %244 = load i64, ptr %84, align 8, !tbaa !9
  %245 = load i64, ptr %75, align 8, !tbaa !9
  %246 = mul nsw i64 %244, %245
  store i64 %246, ptr %83, align 8, !tbaa !9
  %247 = load ptr, ptr %43, align 8, !tbaa !5
  %248 = load i64, ptr %56, align 8, !tbaa !9
  %249 = getelementptr inbounds double, ptr %247, i64 %248
  %250 = load ptr, ptr %42, align 8, !tbaa !5
  %251 = load ptr, ptr %44, align 8, !tbaa !5
  %252 = getelementptr inbounds double, ptr %251, i64 1
  %253 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %74, ptr noundef %75, ptr noundef %249, ptr noundef %250, ptr noundef %252, ptr noundef %84, ptr noundef %102, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %254

254:                                              ; preds = %642, %243
  %255 = load i64, ptr %89, align 8, !tbaa !9
  %256 = icmp sle i64 %255, 2
  br i1 %256, label %257, label %645

257:                                              ; preds = %254
  %258 = load i64, ptr %89, align 8, !tbaa !9
  %259 = sub nsw i64 %258, 1
  %260 = getelementptr inbounds [2 x i8], ptr @dchk4_.ichu, i64 0, i64 %259
  %261 = load i8, ptr %260, align 1, !tbaa !13
  %262 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  store i8 %261, ptr %262, align 1, !tbaa !13
  %263 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %264 = load i8, ptr %263, align 1, !tbaa !13
  %265 = zext i8 %264 to i32
  %266 = icmp eq i32 %265, 85
  %267 = zext i1 %266 to i32
  %268 = sext i32 %267 to i64
  store i64 %268, ptr %104, align 8, !tbaa !9
  %269 = load ptr, ptr %38, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  store i64 %270, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %638, %257
  %272 = load i64, ptr %71, align 8, !tbaa !9
  %273 = load i64, ptr %63, align 8, !tbaa !9
  %274 = icmp sle i64 %272, %273
  br i1 %274, label %275, label %641

275:                                              ; preds = %271
  %276 = load ptr, ptr %39, align 8, !tbaa !5
  %277 = load i64, ptr %71, align 8, !tbaa !9
  %278 = getelementptr inbounds double, ptr %276, i64 %277
  %279 = load double, ptr %278, align 8, !tbaa !11
  store double %279, ptr %99, align 8, !tbaa !11
  %280 = load ptr, ptr %40, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  store i64 %281, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %282

282:                                              ; preds = %634, %275
  %283 = load i64, ptr %72, align 8, !tbaa !9
  %284 = load i64, ptr %64, align 8, !tbaa !9
  %285 = icmp sle i64 %283, %284
  br i1 %285, label %286, label %637

286:                                              ; preds = %282
  %287 = load ptr, ptr %41, align 8, !tbaa !5
  %288 = load i64, ptr %72, align 8, !tbaa !9
  %289 = getelementptr inbounds double, ptr %287, i64 %288
  %290 = load double, ptr %289, align 8, !tbaa !11
  store double %290, ptr %91, align 8, !tbaa !11
  %291 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %292 = load ptr, ptr %49, align 8, !tbaa !5
  %293 = load i64, ptr %60, align 8, !tbaa !9
  %294 = getelementptr inbounds double, ptr %292, i64 %293
  %295 = load ptr, ptr %42, align 8, !tbaa !5
  %296 = load ptr, ptr %50, align 8, !tbaa !5
  %297 = getelementptr inbounds double, ptr %296, i64 1
  %298 = call i32 @dmake_(ptr noundef @.str.7, ptr noundef %291, ptr noundef @.str.6, ptr noundef %70, ptr noundef %70, ptr noundef %294, ptr noundef %295, ptr noundef %297, ptr noundef %86, ptr noundef %102, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %299 = load i64, ptr %76, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %76, align 8, !tbaa !9
  %301 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %302 = load i8, ptr %301, align 1, !tbaa !13
  %303 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  store i8 %302, ptr %303, align 1, !tbaa !13
  %304 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %305 = load i8, ptr %304, align 1, !tbaa !13
  %306 = getelementptr inbounds [1 x i8], ptr %107, i64 0, i64 0
  store i8 %305, ptr %306, align 1, !tbaa !13
  %307 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %307, ptr %82, align 8, !tbaa !9
  %308 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %308, ptr %81, align 8, !tbaa !9
  %309 = load double, ptr %99, align 8, !tbaa !11
  store double %309, ptr %87, align 8, !tbaa !11
  %310 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %310, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %323, %286
  %312 = load i64, ptr %67, align 8, !tbaa !9
  %313 = load i64, ptr %65, align 8, !tbaa !9
  %314 = icmp sle i64 %312, %313
  br i1 %314, label %315, label %326

315:                                              ; preds = %311
  %316 = load ptr, ptr %44, align 8, !tbaa !5
  %317 = load i64, ptr %67, align 8, !tbaa !9
  %318 = getelementptr inbounds double, ptr %316, i64 %317
  %319 = load double, ptr %318, align 8, !tbaa !11
  %320 = load ptr, ptr %45, align 8, !tbaa !5
  %321 = load i64, ptr %67, align 8, !tbaa !9
  %322 = getelementptr inbounds double, ptr %320, i64 %321
  store double %319, ptr %322, align 8, !tbaa !11
  br label %323

323:                                              ; preds = %315
  %324 = load i64, ptr %67, align 8, !tbaa !9
  %325 = add nsw i64 %324, 1
  store i64 %325, ptr %67, align 8, !tbaa !9
  br label %311, !llvm.loop !14

326:                                              ; preds = %311
  %327 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %327, ptr %92, align 8, !tbaa !9
  %328 = load double, ptr %91, align 8, !tbaa !11
  store double %328, ptr %95, align 8, !tbaa !11
  %329 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %329, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %330

330:                                              ; preds = %342, %326
  %331 = load i64, ptr %67, align 8, !tbaa !9
  %332 = load i64, ptr %65, align 8, !tbaa !9
  %333 = icmp sle i64 %331, %332
  br i1 %333, label %334, label %345

334:                                              ; preds = %330
  %335 = load ptr, ptr %50, align 8, !tbaa !5
  %336 = load i64, ptr %67, align 8, !tbaa !9
  %337 = getelementptr inbounds double, ptr %335, i64 %336
  %338 = load double, ptr %337, align 8, !tbaa !11
  %339 = load ptr, ptr %51, align 8, !tbaa !5
  %340 = load i64, ptr %67, align 8, !tbaa !9
  %341 = getelementptr inbounds double, ptr %339, i64 %340
  store double %338, ptr %341, align 8, !tbaa !11
  br label %342

342:                                              ; preds = %334
  %343 = load i64, ptr %67, align 8, !tbaa !9
  %344 = add nsw i64 %343, 1
  store i64 %344, ptr %67, align 8, !tbaa !9
  br label %330, !llvm.loop !16

345:                                              ; preds = %330
  %346 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %346, ptr %93, align 8, !tbaa !9
  %347 = load ptr, ptr %33, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = icmp ne i64 %348, 0
  br i1 %349, label %350, label %368

350:                                              ; preds = %345
  %351 = load ptr, ptr %32, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  store i64 %352, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___268, i32 0, i32 1), align 8, !tbaa !17
  %353 = call i64 @s_wsfe(ptr noundef @dchk4_.io___268)
  %354 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %355 = load ptr, ptr %28, align 8, !tbaa !5
  %356 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %355, i64 noundef 6)
  %357 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %358 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %357, i64 noundef 1)
  %359 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %360 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %359, i64 noundef 1)
  %361 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %362 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %363 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %99, i64 noundef 8)
  %364 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %365 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 8)
  %366 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %367 = call i64 @e_wsfe()
  br label %368

368:                                              ; preds = %350, %345
  %369 = load ptr, ptr %34, align 8, !tbaa !5
  %370 = load i64, ptr %369, align 8, !tbaa !9
  %371 = icmp ne i64 %370, 0
  br i1 %371, label %372, label %378

372:                                              ; preds = %368
  %373 = getelementptr inbounds %struct.alist, ptr %66, i32 0, i32 0
  store i64 0, ptr %373, align 8, !tbaa !19
  %374 = load ptr, ptr %32, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = getelementptr inbounds %struct.alist, ptr %66, i32 0, i32 1
  store i64 %375, ptr %376, align 8, !tbaa !21
  %377 = call i64 @f_rew(ptr noundef %66)
  br label %378

378:                                              ; preds = %372, %368
  %379 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %380 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %381 = load ptr, ptr %44, align 8, !tbaa !5
  %382 = getelementptr inbounds double, ptr %381, i64 1
  %383 = load ptr, ptr %50, align 8, !tbaa !5
  %384 = getelementptr inbounds double, ptr %383, i64 1
  %385 = call i32 @f2c_dsyrk(ptr noundef %379, ptr noundef %380, ptr noundef %70, ptr noundef %69, ptr noundef %99, ptr noundef %382, ptr noundef %84, ptr noundef %91, ptr noundef %384, ptr noundef %86)
  %386 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %387 = icmp ne i64 %386, 0
  br i1 %387, label %394, label %388

388:                                              ; preds = %378
  %389 = load ptr, ptr %31, align 8, !tbaa !5
  %390 = load i64, ptr %389, align 8, !tbaa !9
  store i64 %390, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___269, i32 0, i32 1), align 8, !tbaa !17
  %391 = call i64 @s_wsfe(ptr noundef @dchk4_.io___269)
  %392 = call i64 @e_wsfe()
  %393 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %393, align 8, !tbaa !9
  br label %692

394:                                              ; preds = %378
  %395 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %396 = load i8, ptr %395, align 1, !tbaa !13
  %397 = zext i8 %396 to i32
  %398 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %399 = load i8, ptr %398, align 1, !tbaa !13
  %400 = zext i8 %399 to i32
  %401 = icmp eq i32 %397, %400
  %402 = zext i1 %401 to i32
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 0
  store i64 %403, ptr %404, align 16, !tbaa !9
  %405 = getelementptr inbounds [1 x i8], ptr %107, i64 0, i64 0
  %406 = load i8, ptr %405, align 1, !tbaa !13
  %407 = zext i8 %406 to i32
  %408 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %409 = load i8, ptr %408, align 1, !tbaa !13
  %410 = zext i8 %409 to i32
  %411 = icmp eq i32 %407, %410
  %412 = zext i1 %411 to i32
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 1
  store i64 %413, ptr %414, align 8, !tbaa !9
  %415 = load i64, ptr %82, align 8, !tbaa !9
  %416 = load i64, ptr %70, align 8, !tbaa !9
  %417 = icmp eq i64 %415, %416
  %418 = zext i1 %417 to i32
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 2
  store i64 %419, ptr %420, align 16, !tbaa !9
  %421 = load i64, ptr %81, align 8, !tbaa !9
  %422 = load i64, ptr %69, align 8, !tbaa !9
  %423 = icmp eq i64 %421, %422
  %424 = zext i1 %423 to i32
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 3
  store i64 %425, ptr %426, align 8, !tbaa !9
  %427 = load double, ptr %87, align 8, !tbaa !11
  %428 = load double, ptr %99, align 8, !tbaa !11
  %429 = fcmp oeq double %427, %428
  %430 = zext i1 %429 to i32
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 4
  store i64 %431, ptr %432, align 16, !tbaa !9
  %433 = load ptr, ptr %45, align 8, !tbaa !5
  %434 = getelementptr inbounds double, ptr %433, i64 1
  %435 = load ptr, ptr %44, align 8, !tbaa !5
  %436 = getelementptr inbounds double, ptr %435, i64 1
  %437 = call i64 @lde_(ptr noundef %434, ptr noundef %436, ptr noundef %83)
  %438 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 5
  store i64 %437, ptr %438, align 8, !tbaa !9
  %439 = load i64, ptr %92, align 8, !tbaa !9
  %440 = load i64, ptr %84, align 8, !tbaa !9
  %441 = icmp eq i64 %439, %440
  %442 = zext i1 %441 to i32
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 6
  store i64 %443, ptr %444, align 16, !tbaa !9
  %445 = load double, ptr %95, align 8, !tbaa !11
  %446 = load double, ptr %91, align 8, !tbaa !11
  %447 = fcmp oeq double %445, %446
  %448 = zext i1 %447 to i32
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 7
  store i64 %449, ptr %450, align 8, !tbaa !9
  %451 = load i64, ptr %97, align 8, !tbaa !9
  %452 = icmp ne i64 %451, 0
  br i1 %452, label %453, label %460

453:                                              ; preds = %394
  %454 = load ptr, ptr %51, align 8, !tbaa !5
  %455 = getelementptr inbounds double, ptr %454, i64 1
  %456 = load ptr, ptr %50, align 8, !tbaa !5
  %457 = getelementptr inbounds double, ptr %456, i64 1
  %458 = call i64 @lde_(ptr noundef %455, ptr noundef %457, ptr noundef %85)
  %459 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 8
  store i64 %458, ptr %459, align 16, !tbaa !9
  br label %468

460:                                              ; preds = %394
  %461 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %462 = load ptr, ptr %51, align 8, !tbaa !5
  %463 = getelementptr inbounds double, ptr %462, i64 1
  %464 = load ptr, ptr %50, align 8, !tbaa !5
  %465 = getelementptr inbounds double, ptr %464, i64 1
  %466 = call i64 @lderes_(ptr noundef @.str.7, ptr noundef %461, ptr noundef %70, ptr noundef %70, ptr noundef %463, ptr noundef %465, ptr noundef %86, i64 noundef 2, i64 noundef 1)
  %467 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 8
  store i64 %466, ptr %467, align 16, !tbaa !9
  br label %468

468:                                              ; preds = %460, %453
  %469 = load i64, ptr %93, align 8, !tbaa !9
  %470 = load i64, ptr %86, align 8, !tbaa !9
  %471 = icmp eq i64 %469, %470
  %472 = zext i1 %471 to i32
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 9
  store i64 %473, ptr %474, align 8, !tbaa !9
  store i64 1, ptr %94, align 8, !tbaa !9
  %475 = load i64, ptr %101, align 8, !tbaa !9
  store i64 %475, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %476

476:                                              ; preds = %505, %468
  %477 = load i64, ptr %67, align 8, !tbaa !9
  %478 = load i64, ptr %65, align 8, !tbaa !9
  %479 = icmp sle i64 %477, %478
  br i1 %479, label %480, label %508

480:                                              ; preds = %476
  %481 = load i64, ptr %94, align 8, !tbaa !9
  %482 = icmp ne i64 %481, 0
  br i1 %482, label %483, label %489

483:                                              ; preds = %480
  %484 = load i64, ptr %67, align 8, !tbaa !9
  %485 = sub nsw i64 %484, 1
  %486 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 %485
  %487 = load i64, ptr %486, align 8, !tbaa !9
  %488 = icmp ne i64 %487, 0
  br label %489

489:                                              ; preds = %483, %480
  %490 = phi i1 [ false, %480 ], [ %488, %483 ]
  %491 = zext i1 %490 to i32
  %492 = sext i32 %491 to i64
  store i64 %492, ptr %94, align 8, !tbaa !9
  %493 = load i64, ptr %67, align 8, !tbaa !9
  %494 = sub nsw i64 %493, 1
  %495 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 %494
  %496 = load i64, ptr %495, align 8, !tbaa !9
  %497 = icmp ne i64 %496, 0
  br i1 %497, label %504, label %498

498:                                              ; preds = %489
  %499 = load ptr, ptr %31, align 8, !tbaa !5
  %500 = load i64, ptr %499, align 8, !tbaa !9
  store i64 %500, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___272, i32 0, i32 1), align 8, !tbaa !17
  %501 = call i64 @s_wsfe(ptr noundef @dchk4_.io___272)
  %502 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %67, i64 noundef 8)
  %503 = call i64 @e_wsfe()
  br label %504

504:                                              ; preds = %498, %489
  br label %505

505:                                              ; preds = %504
  %506 = load i64, ptr %67, align 8, !tbaa !9
  %507 = add nsw i64 %506, 1
  store i64 %507, ptr %67, align 8, !tbaa !9
  br label %476, !llvm.loop !22

508:                                              ; preds = %476
  %509 = load i64, ptr %94, align 8, !tbaa !9
  %510 = icmp ne i64 %509, 0
  br i1 %510, label %513, label %511

511:                                              ; preds = %508
  %512 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %512, align 8, !tbaa !9
  br label %692

513:                                              ; preds = %508
  %514 = load i64, ptr %97, align 8, !tbaa !9
  %515 = icmp ne i64 %514, 0
  br i1 %515, label %633, label %516

516:                                              ; preds = %513
  store i64 1, ptr %73, align 8, !tbaa !9
  %517 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %517, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %518

518:                                              ; preds = %629, %516
  %519 = load i64, ptr %68, align 8, !tbaa !9
  %520 = load i64, ptr %65, align 8, !tbaa !9
  %521 = icmp sle i64 %519, %520
  br i1 %521, label %522, label %632

522:                                              ; preds = %518
  %523 = load i64, ptr %104, align 8, !tbaa !9
  %524 = icmp ne i64 %523, 0
  br i1 %524, label %525, label %527

525:                                              ; preds = %522
  store i64 1, ptr %79, align 8, !tbaa !9
  %526 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %526, ptr %80, align 8, !tbaa !9
  br label %533

527:                                              ; preds = %522
  %528 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %528, ptr %79, align 8, !tbaa !9
  %529 = load i64, ptr %70, align 8, !tbaa !9
  %530 = load i64, ptr %68, align 8, !tbaa !9
  %531 = sub nsw i64 %529, %530
  %532 = add nsw i64 %531, 1
  store i64 %532, ptr %80, align 8, !tbaa !9
  br label %533

533:                                              ; preds = %527, %525
  %534 = load i64, ptr %96, align 8, !tbaa !9
  %535 = icmp ne i64 %534, 0
  br i1 %535, label %536, label %570

536:                                              ; preds = %533
  %537 = load ptr, ptr %43, align 8, !tbaa !5
  %538 = load i64, ptr %79, align 8, !tbaa !9
  %539 = load i64, ptr %55, align 8, !tbaa !9
  %540 = mul nsw i64 %538, %539
  %541 = add nsw i64 %540, 1
  %542 = getelementptr inbounds double, ptr %537, i64 %541
  %543 = load ptr, ptr %42, align 8, !tbaa !5
  %544 = load ptr, ptr %43, align 8, !tbaa !5
  %545 = load i64, ptr %68, align 8, !tbaa !9
  %546 = load i64, ptr %55, align 8, !tbaa !9
  %547 = mul nsw i64 %545, %546
  %548 = add nsw i64 %547, 1
  %549 = getelementptr inbounds double, ptr %544, i64 %548
  %550 = load ptr, ptr %42, align 8, !tbaa !5
  %551 = load ptr, ptr %49, align 8, !tbaa !5
  %552 = load i64, ptr %79, align 8, !tbaa !9
  %553 = load i64, ptr %68, align 8, !tbaa !9
  %554 = load i64, ptr %59, align 8, !tbaa !9
  %555 = mul nsw i64 %553, %554
  %556 = add nsw i64 %552, %555
  %557 = getelementptr inbounds double, ptr %551, i64 %556
  %558 = load ptr, ptr %42, align 8, !tbaa !5
  %559 = load ptr, ptr %52, align 8, !tbaa !5
  %560 = getelementptr inbounds double, ptr %559, i64 1
  %561 = load ptr, ptr %53, align 8, !tbaa !5
  %562 = getelementptr inbounds double, ptr %561, i64 1
  %563 = load ptr, ptr %50, align 8, !tbaa !5
  %564 = load i64, ptr %73, align 8, !tbaa !9
  %565 = getelementptr inbounds double, ptr %563, i64 %564
  %566 = load ptr, ptr %29, align 8, !tbaa !5
  %567 = load ptr, ptr %35, align 8, !tbaa !5
  %568 = load ptr, ptr %31, align 8, !tbaa !5
  %569 = call i32 @dmmch_(ptr noundef @.str.11, ptr noundef @.str.1, ptr noundef %80, ptr noundef @c__1, ptr noundef %69, ptr noundef %99, ptr noundef %542, ptr noundef %543, ptr noundef %549, ptr noundef %550, ptr noundef %91, ptr noundef %557, ptr noundef %558, ptr noundef %560, ptr noundef %562, ptr noundef %565, ptr noundef %86, ptr noundef %566, ptr noundef %90, ptr noundef %567, ptr noundef %568, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %602

570:                                              ; preds = %533
  %571 = load ptr, ptr %43, align 8, !tbaa !5
  %572 = load i64, ptr %79, align 8, !tbaa !9
  %573 = load i64, ptr %55, align 8, !tbaa !9
  %574 = add nsw i64 %572, %573
  %575 = getelementptr inbounds double, ptr %571, i64 %574
  %576 = load ptr, ptr %42, align 8, !tbaa !5
  %577 = load ptr, ptr %43, align 8, !tbaa !5
  %578 = load i64, ptr %68, align 8, !tbaa !9
  %579 = load i64, ptr %55, align 8, !tbaa !9
  %580 = add nsw i64 %578, %579
  %581 = getelementptr inbounds double, ptr %577, i64 %580
  %582 = load ptr, ptr %42, align 8, !tbaa !5
  %583 = load ptr, ptr %49, align 8, !tbaa !5
  %584 = load i64, ptr %79, align 8, !tbaa !9
  %585 = load i64, ptr %68, align 8, !tbaa !9
  %586 = load i64, ptr %59, align 8, !tbaa !9
  %587 = mul nsw i64 %585, %586
  %588 = add nsw i64 %584, %587
  %589 = getelementptr inbounds double, ptr %583, i64 %588
  %590 = load ptr, ptr %42, align 8, !tbaa !5
  %591 = load ptr, ptr %52, align 8, !tbaa !5
  %592 = getelementptr inbounds double, ptr %591, i64 1
  %593 = load ptr, ptr %53, align 8, !tbaa !5
  %594 = getelementptr inbounds double, ptr %593, i64 1
  %595 = load ptr, ptr %50, align 8, !tbaa !5
  %596 = load i64, ptr %73, align 8, !tbaa !9
  %597 = getelementptr inbounds double, ptr %595, i64 %596
  %598 = load ptr, ptr %29, align 8, !tbaa !5
  %599 = load ptr, ptr %35, align 8, !tbaa !5
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = call i32 @dmmch_(ptr noundef @.str.1, ptr noundef @.str.11, ptr noundef %80, ptr noundef @c__1, ptr noundef %69, ptr noundef %99, ptr noundef %575, ptr noundef %576, ptr noundef %581, ptr noundef %582, ptr noundef %91, ptr noundef %589, ptr noundef %590, ptr noundef %592, ptr noundef %594, ptr noundef %597, ptr noundef %86, ptr noundef %598, ptr noundef %90, ptr noundef %599, ptr noundef %600, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %602

602:                                              ; preds = %570, %536
  %603 = load i64, ptr %104, align 8, !tbaa !9
  %604 = icmp ne i64 %603, 0
  br i1 %604, label %605, label %609

605:                                              ; preds = %602
  %606 = load i64, ptr %86, align 8, !tbaa !9
  %607 = load i64, ptr %73, align 8, !tbaa !9
  %608 = add nsw i64 %607, %606
  store i64 %608, ptr %73, align 8, !tbaa !9
  br label %614

609:                                              ; preds = %602
  %610 = load i64, ptr %73, align 8, !tbaa !9
  %611 = load i64, ptr %86, align 8, !tbaa !9
  %612 = add nsw i64 %610, %611
  %613 = add nsw i64 %612, 1
  store i64 %613, ptr %73, align 8, !tbaa !9
  br label %614

614:                                              ; preds = %609, %605
  %615 = load double, ptr %106, align 8, !tbaa !11
  %616 = load double, ptr %90, align 8, !tbaa !11
  %617 = fcmp oge double %615, %616
  br i1 %617, label %618, label %620

618:                                              ; preds = %614
  %619 = load double, ptr %106, align 8, !tbaa !11
  br label %622

620:                                              ; preds = %614
  %621 = load double, ptr %90, align 8, !tbaa !11
  br label %622

622:                                              ; preds = %620, %618
  %623 = phi double [ %619, %618 ], [ %621, %620 ]
  store double %623, ptr %106, align 8, !tbaa !11
  %624 = load ptr, ptr %35, align 8, !tbaa !5
  %625 = load i64, ptr %624, align 8, !tbaa !9
  %626 = icmp ne i64 %625, 0
  br i1 %626, label %627, label %628

627:                                              ; preds = %622
  br label %682

628:                                              ; preds = %622
  br label %629

629:                                              ; preds = %628
  %630 = load i64, ptr %68, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  store i64 %631, ptr %68, align 8, !tbaa !9
  br label %518, !llvm.loop !23

632:                                              ; preds = %518
  br label %633

633:                                              ; preds = %632, %513
  br label %634

634:                                              ; preds = %633
  %635 = load i64, ptr %72, align 8, !tbaa !9
  %636 = add nsw i64 %635, 1
  store i64 %636, ptr %72, align 8, !tbaa !9
  br label %282, !llvm.loop !24

637:                                              ; preds = %282
  br label %638

638:                                              ; preds = %637
  %639 = load i64, ptr %71, align 8, !tbaa !9
  %640 = add nsw i64 %639, 1
  store i64 %640, ptr %71, align 8, !tbaa !9
  br label %271, !llvm.loop !25

641:                                              ; preds = %271
  br label %642

642:                                              ; preds = %641
  %643 = load i64, ptr %89, align 8, !tbaa !9
  %644 = add nsw i64 %643, 1
  store i64 %644, ptr %89, align 8, !tbaa !9
  br label %254, !llvm.loop !26

645:                                              ; preds = %254
  br label %646

646:                                              ; preds = %645, %242
  br label %647

647:                                              ; preds = %646
  %648 = load i64, ptr %88, align 8, !tbaa !9
  %649 = add nsw i64 %648, 1
  store i64 %649, ptr %88, align 8, !tbaa !9
  br label %198, !llvm.loop !27

650:                                              ; preds = %198
  br label %651

651:                                              ; preds = %650
  %652 = load i64, ptr %77, align 8, !tbaa !9
  %653 = add nsw i64 %652, 1
  store i64 %653, ptr %77, align 8, !tbaa !9
  br label %189, !llvm.loop !28

654:                                              ; preds = %189
  br label %655

655:                                              ; preds = %654, %178
  br label %656

656:                                              ; preds = %655
  %657 = load i64, ptr %78, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  store i64 %658, ptr %78, align 8, !tbaa !9
  br label %156, !llvm.loop !29

659:                                              ; preds = %156
  %660 = load double, ptr %106, align 8, !tbaa !11
  %661 = load ptr, ptr %30, align 8, !tbaa !5
  %662 = load double, ptr %661, align 8, !tbaa !11
  %663 = fcmp olt double %660, %662
  br i1 %663, label %664, label %672

664:                                              ; preds = %659
  %665 = load ptr, ptr %31, align 8, !tbaa !5
  %666 = load i64, ptr %665, align 8, !tbaa !9
  store i64 %666, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___278, i32 0, i32 1), align 8, !tbaa !17
  %667 = call i64 @s_wsfe(ptr noundef @dchk4_.io___278)
  %668 = load ptr, ptr %28, align 8, !tbaa !5
  %669 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %668, i64 noundef 6)
  %670 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %671 = call i64 @e_wsfe()
  br label %681

672:                                              ; preds = %659
  %673 = load ptr, ptr %31, align 8, !tbaa !5
  %674 = load i64, ptr %673, align 8, !tbaa !9
  store i64 %674, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___279, i32 0, i32 1), align 8, !tbaa !17
  %675 = call i64 @s_wsfe(ptr noundef @dchk4_.io___279)
  %676 = load ptr, ptr %28, align 8, !tbaa !5
  %677 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %676, i64 noundef 6)
  %678 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %679 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 8)
  %680 = call i64 @e_wsfe()
  br label %681

681:                                              ; preds = %672, %664
  br label %716

682:                                              ; preds = %627
  %683 = load i64, ptr %70, align 8, !tbaa !9
  %684 = icmp sgt i64 %683, 1
  br i1 %684, label %685, label %691

685:                                              ; preds = %682
  %686 = load ptr, ptr %31, align 8, !tbaa !5
  %687 = load i64, ptr %686, align 8, !tbaa !9
  store i64 %687, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___280, i32 0, i32 1), align 8, !tbaa !17
  %688 = call i64 @s_wsfe(ptr noundef @dchk4_.io___280)
  %689 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %690 = call i64 @e_wsfe()
  br label %691

691:                                              ; preds = %685, %682
  br label %692

692:                                              ; preds = %691, %511, %388
  %693 = load ptr, ptr %31, align 8, !tbaa !5
  %694 = load i64, ptr %693, align 8, !tbaa !9
  store i64 %694, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___281, i32 0, i32 1), align 8, !tbaa !17
  %695 = call i64 @s_wsfe(ptr noundef @dchk4_.io___281)
  %696 = load ptr, ptr %28, align 8, !tbaa !5
  %697 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %696, i64 noundef 6)
  %698 = call i64 @e_wsfe()
  %699 = load ptr, ptr %31, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  store i64 %700, ptr getelementptr inbounds (%struct.cilist, ptr @dchk4_.io___282, i32 0, i32 1), align 8, !tbaa !17
  %701 = call i64 @s_wsfe(ptr noundef @dchk4_.io___282)
  %702 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %703 = load ptr, ptr %28, align 8, !tbaa !5
  %704 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %703, i64 noundef 6)
  %705 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %706 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %705, i64 noundef 1)
  %707 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %708 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %707, i64 noundef 1)
  %709 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %710 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %711 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %99, i64 noundef 8)
  %712 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %713 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 8)
  %714 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %715 = call i64 @e_wsfe()
  br label %716

716:                                              ; preds = %692, %681
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 16, 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 @dmake_(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 @lderes_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef) #2

declare i32 @f2c_dsyrk(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 = !{!"double", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = !{!18, !10, i64 8}
!18 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16, !6, i64 24, !10, i64 32}
!19 = !{!20, !10, i64 0}
!20 = !{!"", !10, i64 0, !10, i64 8}
!21 = !{!20, !10, i64 8}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = distinct !{!28, !15}
!29 = distinct !{!29, !15}


; 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.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@dchk4_.icht = external hidden local_unnamed_addr global [3 x i8], align 1
@dchk4_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@dchk4_.io___268 = external hidden global %struct.cilist, align 8
@dchk4_.io___269 = external hidden global %struct.cilist, align 8
@dchk4_.io___272 = external hidden global %struct.cilist, align 8
@dchk4_.io___278 = external hidden global %struct.cilist, align 8
@dchk4_.io___279 = external hidden global %struct.cilist, align 8
@dchk4_.io___280 = external hidden global %struct.cilist, align 8
@dchk4_.io___281 = external hidden global %struct.cilist, align 8
@dchk4_.io___282 = external hidden global %struct.cilist, align 8
@.str.11 = external hidden unnamed_addr constant [2 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

; Function Attrs: nounwind uwtable
declare dso_local i32 @dmmch_(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 @lde_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dchk4_(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 nocapture noundef readnone %18, ptr nocapture noundef readnone %19, ptr nocapture noundef readnone %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 i64, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca [1 x i8], align 1
  %44 = alloca double, align 8
  %45 = alloca [13 x i64], align 16
  %46 = alloca i64, align 8
  %47 = alloca [1 x i8], align 1
  %48 = alloca double, align 8
  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 8, ptr nonnull %40) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 1, ptr nonnull %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #3
  %49 = getelementptr inbounds i8, ptr %9, i64 -8
  %50 = getelementptr inbounds i8, ptr %11, i64 -8
  %51 = getelementptr inbounds i8, ptr %13, i64 -8
  %52 = getelementptr inbounds i8, ptr %23, i64 -8
  %53 = getelementptr inbounds i8, ptr %22, i64 -8
  %54 = load i64, ptr %14, align 8, !tbaa !5
  %55 = xor i64 %54, -1
  %56 = getelementptr inbounds double, ptr %21, i64 %55
  %57 = getelementptr inbounds i8, ptr %17, i64 -8
  %58 = getelementptr inbounds i8, ptr %16, i64 -8
  store i64 0, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %46, align 8, !tbaa !5
  store double 0.000000e+00, ptr %48, align 8, !tbaa !9
  %59 = load i64, ptr %8, align 8, !tbaa !5
  %.not230 = icmp slt i64 %59, 1
  br i1 %.not230, label %._crit_edge234, label %.lr.ph233

.lr.ph233:                                        ; preds = %27
  %60 = ptrtoint ptr %23 to i64
  %61 = ptrtoint ptr %22 to i64
  %62 = ptrtoint ptr %17 to i64
  %63 = ptrtoint ptr %16 to i64
  %64 = getelementptr inbounds double, ptr %15, i64 %55
  %65 = getelementptr inbounds i8, ptr %28, i64 8
  %66 = getelementptr inbounds i8, ptr %45, i64 8
  %67 = getelementptr inbounds i8, ptr %45, i64 16
  %68 = getelementptr inbounds i8, ptr %45, i64 24
  %69 = getelementptr inbounds i8, ptr %45, i64 32
  %70 = getelementptr inbounds i8, ptr %45, i64 40
  %71 = getelementptr inbounds i8, ptr %45, i64 48
  %72 = getelementptr inbounds i8, ptr %45, i64 56
  %73 = getelementptr inbounds i8, ptr %45, i64 64
  %74 = getelementptr inbounds i8, ptr %45, i64 72
  %invariant.gep = getelementptr i8, ptr %64, i64 8
  %invariant.gep203 = getelementptr i8, ptr %15, i64 -8
  %75 = sub i64 %60, %61
  %76 = sub i64 %62, %63
  %diff.check263 = icmp ult i64 %76, 32
  %diff.check = icmp ult i64 %75, 32
  br label %77

77:                                               ; preds = %.lr.ph233, %.loopexit190
  %78 = phi double [ 0.000000e+00, %.lr.ph233 ], [ %313, %.loopexit190 ]
  %.0157231 = phi i64 [ 1, %.lr.ph233 ], [ %314, %.loopexit190 ]
  %79 = getelementptr inbounds i64, ptr %49, i64 %.0157231
  %80 = load i64, ptr %79, align 8, !tbaa !5
  store i64 %80, ptr %32, align 8, !tbaa !5
  store i64 %80, ptr %40, align 8, !tbaa !5
  %81 = load i64, ptr %14, align 8, !tbaa !5
  %82 = icmp slt i64 %80, %81
  br i1 %82, label %83, label %85

83:                                               ; preds = %77
  %84 = add nsw i64 %80, 1
  store i64 %84, ptr %40, align 8, !tbaa !5
  br label %85

85:                                               ; preds = %83, %77
  %86 = phi i64 [ %84, %83 ], [ %80, %77 ]
  %87 = icmp sgt i64 %86, %81
  br i1 %87, label %.loopexit190, label %88

88:                                               ; preds = %85
  %89 = mul nsw i64 %86, %80
  store i64 %89, ptr %39, align 8, !tbaa !5
  %90 = icmp slt i64 %80, 1
  %91 = load i64, ptr %8, align 8, !tbaa !5
  %.not170226 = icmp slt i64 %91, 1
  br i1 %.not170226, label %.loopexit190, label %.lr.ph229

.lr.ph229:                                        ; preds = %88, %311
  %92 = phi double [ %309, %311 ], [ %78, %88 ]
  %.0158227 = phi i64 [ %312, %311 ], [ 1, %88 ]
  %93 = getelementptr inbounds i64, ptr %49, i64 %.0158227
  %94 = load i64, ptr %93, align 8, !tbaa !5
  store i64 %94, ptr %31, align 8, !tbaa !5
  br label %95

95:                                               ; preds = %.lr.ph229, %.loopexit189
  %96 = phi double [ %92, %.lr.ph229 ], [ %309, %.loopexit189 ]
  %.0155225 = phi i64 [ 1, %.lr.ph229 ], [ %310, %.loopexit189 ]
  %97 = add nsw i64 %.0155225, -1
  %98 = getelementptr inbounds [3 x i8], ptr @dchk4_.icht, i64 0, i64 %97
  %99 = load i8, ptr %98, align 1, !tbaa !11
  store i8 %99, ptr %47, align 1, !tbaa !11
  switch i8 %99, label %100 [
    i8 84, label %101
    i8 67, label %101
  ]

100:                                              ; preds = %95
  br label %101

101:                                              ; preds = %95, %95, %100
  %storemerge171.in = phi ptr [ %32, %100 ], [ %31, %95 ], [ %31, %95 ]
  %storemerge.in = phi ptr [ %31, %100 ], [ %32, %95 ], [ %32, %95 ]
  %storemerge171 = load i64, ptr %storemerge171.in, align 8, !tbaa !5
  store i64 %storemerge171, ptr %33, align 8, !tbaa !5
  %storemerge = load i64, ptr %storemerge.in, align 8, !tbaa !5
  store i64 %storemerge, ptr %34, align 8, !tbaa !5
  store i64 %storemerge171, ptr %38, align 8, !tbaa !5
  %102 = load i64, ptr %14, align 8, !tbaa !5
  %103 = icmp slt i64 %storemerge171, %102
  br i1 %103, label %104, label %106

104:                                              ; preds = %101
  %105 = add nsw i64 %storemerge171, 1
  store i64 %105, ptr %38, align 8, !tbaa !5
  br label %106

106:                                              ; preds = %104, %101
  %107 = phi i64 [ %105, %104 ], [ %storemerge171, %101 ]
  %108 = icmp sgt i64 %107, %102
  br i1 %108, label %.loopexit189, label %109

109:                                              ; preds = %106
  %110 = mul nsw i64 %107, %storemerge
  store i64 %110, ptr %37, align 8, !tbaa !5
  %111 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %38, ptr noundef nonnull %46, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %112 = load i64, ptr %10, align 8, !tbaa !5
  %113 = icmp slt i64 %112, 1
  br i1 %113, label %.split.us.preheader, label %.split

.split.us.preheader:                              ; preds = %109
  %114 = load i8, ptr getelementptr inbounds (i8, ptr @dchk4_.ichu, i64 1), align 1, !tbaa !11
  store i8 %114, ptr %43, align 1, !tbaa !11
  br label %.loopexit189

.split:                                           ; preds = %109, %._crit_edge221
  %115 = phi double [ %307, %._crit_edge221 ], [ %96, %109 ]
  %.0154223 = phi i64 [ %308, %._crit_edge221 ], [ 1, %109 ]
  %116 = add nsw i64 %.0154223, -1
  %117 = getelementptr inbounds [2 x i8], ptr @dchk4_.ichu, i64 0, i64 %116
  %118 = load i8, ptr %117, align 1, !tbaa !11
  store i8 %118, ptr %43, align 1, !tbaa !11
  %119 = icmp ne i8 %118, 85
  %120 = load i64, ptr %10, align 8, !tbaa !5
  %.not172217 = icmp slt i64 %120, 1
  br i1 %.not172217, label %._crit_edge221, label %.lr.ph220

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

.lr.ph220.split.preheader:                        ; preds = %.lr.ph220
  %123 = zext i1 %119 to i64
  br label %.lr.ph220.split

.lr.ph220.split.us.preheader:                     ; preds = %.lr.ph220
  %124 = getelementptr inbounds double, ptr %50, i64 %120
  %125 = load double, ptr %124, align 8, !tbaa !9
  store double %125, ptr %44, align 8, !tbaa !9
  br label %._crit_edge221

.lr.ph220.splitthread-pre-split:                  ; preds = %._crit_edge216
  %126 = add nuw i64 %.0161218, 1
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  br label %.lr.ph220.split

.lr.ph220.split:                                  ; preds = %.lr.ph220.split.preheader, %.lr.ph220.splitthread-pre-split
  %127 = phi i64 [ %.pr, %.lr.ph220.splitthread-pre-split ], [ %121, %.lr.ph220.split.preheader ]
  %128 = phi double [ %306, %.lr.ph220.splitthread-pre-split ], [ %115, %.lr.ph220.split.preheader ]
  %.0161218 = phi i64 [ %126, %.lr.ph220.splitthread-pre-split ], [ 1, %.lr.ph220.split.preheader ]
  %129 = getelementptr inbounds double, ptr %50, i64 %.0161218
  %130 = load double, ptr %129, align 8, !tbaa !9
  store double %130, ptr %44, align 8, !tbaa !9
  %.not173212 = icmp slt i64 %127, 1
  br i1 %.not173212, label %._crit_edge216, label %.lr.ph215

.lr.ph215:                                        ; preds = %.lr.ph220.split, %.loopexit
  %131 = phi double [ %304, %.loopexit ], [ %128, %.lr.ph220.split ]
  %.0160213 = phi i64 [ %305, %.loopexit ], [ 1, %.lr.ph220.split ]
  %132 = getelementptr inbounds double, ptr %51, i64 %.0160213
  %133 = load double, ptr %132, align 8, !tbaa !9
  store double %133, ptr %42, align 8, !tbaa !9
  %134 = call i32 @dmake_(ptr noundef nonnull @.str.7, ptr noundef nonnull %43, ptr noundef nonnull @.str.6, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %22, ptr noundef nonnull %40, ptr noundef nonnull %46, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %35, align 8, !tbaa !5
  %136 = add nsw i64 %135, 1
  store i64 %136, ptr %35, align 8, !tbaa !5
  %137 = load i8, ptr %43, align 1, !tbaa !11
  %138 = load i8, ptr %47, align 1, !tbaa !11
  %139 = load i64, ptr %32, align 8, !tbaa !5
  %140 = load i64, ptr %31, align 8, !tbaa !5
  %141 = load double, ptr %44, align 8, !tbaa !9
  %142 = load i64, ptr %37, align 8, !tbaa !5
  %.not175191 = icmp slt i64 %142, 1
  br i1 %.not175191, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph215
  %min.iters.check266 = icmp ult i64 %142, 4
  %or.cond = or i1 %min.iters.check266, %diff.check263
  br i1 %or.cond, label %.lr.ph.preheader281, label %vector.ph267

vector.ph267:                                     ; preds = %.lr.ph.preheader
  %n.vec269 = and i64 %142, 9223372036854775804
  %ind.end270 = or disjoint i64 %n.vec269, 1
  br label %vector.body272

vector.body272:                                   ; preds = %vector.body272, %vector.ph267
  %index273 = phi i64 [ 0, %vector.ph267 ], [ %index.next277, %vector.body272 ]
  %143 = getelementptr double, ptr %16, i64 %index273
  %144 = getelementptr inbounds i8, ptr %143, i64 16
  %wide.load275 = load <2 x double>, ptr %143, align 8, !tbaa !9
  %wide.load276 = load <2 x double>, ptr %144, align 8, !tbaa !9
  %145 = getelementptr double, ptr %17, i64 %index273
  %146 = getelementptr inbounds i8, ptr %145, i64 16
  store <2 x double> %wide.load275, ptr %145, align 8, !tbaa !9
  store <2 x double> %wide.load276, ptr %146, align 8, !tbaa !9
  %index.next277 = add nuw i64 %index273, 4
  %147 = icmp eq i64 %index.next277, %n.vec269
  br i1 %147, label %middle.block264, label %vector.body272, !llvm.loop !12

middle.block264:                                  ; preds = %vector.body272
  %cmp.n278 = icmp eq i64 %142, %n.vec269
  br i1 %cmp.n278, label %._crit_edge, label %.lr.ph.preheader281

.lr.ph.preheader281:                              ; preds = %middle.block264, %.lr.ph.preheader
  %storemerge174192.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end270, %middle.block264 ]
  %148 = add nuw i64 %142, 1
  %149 = sub i64 %148, %storemerge174192.ph
  %150 = sub i64 %142, %storemerge174192.ph
  %xtraiter = and i64 %149, 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.preheader281, %.lr.ph.prol
  %storemerge174192.prol = phi i64 [ %154, %.lr.ph.prol ], [ %storemerge174192.ph, %.lr.ph.preheader281 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader281 ]
  %151 = getelementptr inbounds double, ptr %58, i64 %storemerge174192.prol
  %152 = load double, ptr %151, align 8, !tbaa !9
  %153 = getelementptr inbounds double, ptr %57, i64 %storemerge174192.prol
  store double %152, ptr %153, align 8, !tbaa !9
  %154 = add nuw i64 %storemerge174192.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 !16

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader281
  %storemerge174192.unr = phi i64 [ %storemerge174192.ph, %.lr.ph.preheader281 ], [ %154, %.lr.ph.prol ]
  %155 = icmp ult i64 %150, 3
  br i1 %155, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge174192 = phi i64 [ %170, %.lr.ph ], [ %storemerge174192.unr, %.lr.ph.prol.loopexit ]
  %156 = getelementptr inbounds double, ptr %58, i64 %storemerge174192
  %157 = load double, ptr %156, align 8, !tbaa !9
  %158 = getelementptr inbounds double, ptr %57, i64 %storemerge174192
  store double %157, ptr %158, align 8, !tbaa !9
  %159 = getelementptr double, ptr %16, i64 %storemerge174192
  %160 = load double, ptr %159, align 8, !tbaa !9
  %161 = getelementptr double, ptr %17, i64 %storemerge174192
  store double %160, ptr %161, align 8, !tbaa !9
  %162 = add nuw i64 %storemerge174192, 2
  %163 = getelementptr inbounds double, ptr %58, i64 %162
  %164 = load double, ptr %163, align 8, !tbaa !9
  %165 = getelementptr inbounds double, ptr %57, i64 %162
  store double %164, ptr %165, align 8, !tbaa !9
  %166 = add nuw i64 %storemerge174192, 3
  %167 = getelementptr inbounds double, ptr %58, i64 %166
  %168 = load double, ptr %167, align 8, !tbaa !9
  %169 = getelementptr inbounds double, ptr %57, i64 %166
  store double %168, ptr %169, align 8, !tbaa !9
  %170 = add nuw i64 %storemerge174192, 4
  %exitcond.not.3 = icmp eq i64 %166, %142
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block264, %.lr.ph215
  %171 = load i64, ptr %38, align 8, !tbaa !5
  %172 = load double, ptr %42, align 8, !tbaa !9
  %173 = load i64, ptr %39, align 8, !tbaa !5
  %.not177193 = icmp slt i64 %173, 1
  br i1 %.not177193, label %._crit_edge197, label %.lr.ph196.preheader

.lr.ph196.preheader:                              ; preds = %._crit_edge
  %174 = add nuw i64 %173, 1
  %min.iters.check = icmp ult i64 %173, 4
  %or.cond279 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond279, label %.lr.ph196.preheader280, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph196.preheader
  %n.vec = and i64 %173, 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 ]
  %175 = getelementptr double, ptr %22, i64 %index
  %176 = getelementptr inbounds i8, ptr %175, i64 16
  %wide.load = load <2 x double>, ptr %175, align 8, !tbaa !9
  %wide.load261 = load <2 x double>, ptr %176, align 8, !tbaa !9
  %177 = getelementptr double, ptr %23, i64 %index
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  store <2 x double> %wide.load, ptr %177, align 8, !tbaa !9
  store <2 x double> %wide.load261, ptr %178, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %179 = icmp eq i64 %index.next, %n.vec
  br i1 %179, label %middle.block, label %vector.body, !llvm.loop !19

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %173, %n.vec
  br i1 %cmp.n, label %._crit_edge197, label %.lr.ph196.preheader280

.lr.ph196.preheader280:                           ; preds = %middle.block, %.lr.ph196.preheader
  %storemerge176194.ph = phi i64 [ 1, %.lr.ph196.preheader ], [ %ind.end, %middle.block ]
  %180 = add nuw i64 %173, 1
  %181 = sub i64 %180, %storemerge176194.ph
  %182 = sub i64 %173, %storemerge176194.ph
  %xtraiter289 = and i64 %181, 3
  %lcmp.mod290.not = icmp eq i64 %xtraiter289, 0
  br i1 %lcmp.mod290.not, label %.lr.ph196.prol.loopexit, label %.lr.ph196.prol

.lr.ph196.prol:                                   ; preds = %.lr.ph196.preheader280, %.lr.ph196.prol
  %storemerge176194.prol = phi i64 [ %186, %.lr.ph196.prol ], [ %storemerge176194.ph, %.lr.ph196.preheader280 ]
  %prol.iter291 = phi i64 [ %prol.iter291.next, %.lr.ph196.prol ], [ 0, %.lr.ph196.preheader280 ]
  %183 = getelementptr inbounds double, ptr %53, i64 %storemerge176194.prol
  %184 = load double, ptr %183, align 8, !tbaa !9
  %185 = getelementptr inbounds double, ptr %52, i64 %storemerge176194.prol
  store double %184, ptr %185, align 8, !tbaa !9
  %186 = add nuw i64 %storemerge176194.prol, 1
  %prol.iter291.next = add i64 %prol.iter291, 1
  %prol.iter291.cmp.not = icmp eq i64 %prol.iter291.next, %xtraiter289
  br i1 %prol.iter291.cmp.not, label %.lr.ph196.prol.loopexit, label %.lr.ph196.prol, !llvm.loop !20

.lr.ph196.prol.loopexit:                          ; preds = %.lr.ph196.prol, %.lr.ph196.preheader280
  %storemerge176194.unr = phi i64 [ %storemerge176194.ph, %.lr.ph196.preheader280 ], [ %186, %.lr.ph196.prol ]
  %187 = icmp ult i64 %182, 3
  br i1 %187, label %._crit_edge197, label %.lr.ph196

.lr.ph196:                                        ; preds = %.lr.ph196.prol.loopexit, %.lr.ph196
  %storemerge176194 = phi i64 [ %202, %.lr.ph196 ], [ %storemerge176194.unr, %.lr.ph196.prol.loopexit ]
  %188 = getelementptr inbounds double, ptr %53, i64 %storemerge176194
  %189 = load double, ptr %188, align 8, !tbaa !9
  %190 = getelementptr inbounds double, ptr %52, i64 %storemerge176194
  store double %189, ptr %190, align 8, !tbaa !9
  %191 = getelementptr double, ptr %22, i64 %storemerge176194
  %192 = load double, ptr %191, align 8, !tbaa !9
  %193 = getelementptr double, ptr %23, i64 %storemerge176194
  store double %192, ptr %193, align 8, !tbaa !9
  %194 = add nuw i64 %storemerge176194, 2
  %195 = getelementptr inbounds double, ptr %53, i64 %194
  %196 = load double, ptr %195, align 8, !tbaa !9
  %197 = getelementptr inbounds double, ptr %52, i64 %194
  store double %196, ptr %197, align 8, !tbaa !9
  %198 = add nuw i64 %storemerge176194, 3
  %199 = getelementptr inbounds double, ptr %53, i64 %198
  %200 = load double, ptr %199, align 8, !tbaa !9
  %201 = getelementptr inbounds double, ptr %52, i64 %198
  store double %200, ptr %201, align 8, !tbaa !9
  %202 = add nuw i64 %storemerge176194, 4
  %exitcond237.not.3 = icmp eq i64 %198, %173
  br i1 %exitcond237.not.3, label %._crit_edge197, label %.lr.ph196, !llvm.loop !21

._crit_edge197:                                   ; preds = %.lr.ph196.prol.loopexit, %.lr.ph196, %middle.block, %._crit_edge
  %storemerge176.lcssa = phi i64 [ 1, %._crit_edge ], [ %174, %middle.block ], [ %174, %.lr.ph196 ], [ %174, %.lr.ph196.prol.loopexit ]
  store i64 %storemerge176.lcssa, ptr %29, align 8, !tbaa !5
  %203 = load i64, ptr %40, align 8, !tbaa !5
  %204 = load i64, ptr %5, align 8, !tbaa !5
  %.not178 = icmp eq i64 %204, 0
  br i1 %.not178, label %219, label %205

205:                                              ; preds = %._crit_edge197
  %206 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %206, ptr getelementptr inbounds (i8, ptr @dchk4_.io___268, i64 8), align 8, !tbaa !22
  %207 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___268) #3
  %208 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %209 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %210 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %211 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #3
  %212 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %213 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %214 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 8) #3
  %215 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %216 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 8) #3
  %217 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #3
  %218 = call i64 @e_wsfe() #3
  br label %219

219:                                              ; preds = %205, %._crit_edge197
  %220 = load i64, ptr %6, align 8, !tbaa !5
  %.not179 = icmp eq i64 %220, 0
  br i1 %.not179, label %224, label %221

221:                                              ; preds = %219
  store i64 0, ptr %28, align 8, !tbaa !25
  %222 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %222, ptr %65, align 8, !tbaa !27
  %223 = call i64 @f_rew(ptr noundef nonnull %28) #3
  br label %224

224:                                              ; preds = %221, %219
  %225 = call i32 @f2c_dsyrk(ptr noundef nonnull %43, ptr noundef nonnull %47, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %16, ptr noundef nonnull %38, ptr noundef nonnull %42, ptr noundef %22, ptr noundef nonnull %40) #3
  %226 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not180 = icmp eq i64 %226, 0
  br i1 %.not180, label %227, label %231

227:                                              ; preds = %224
  %228 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %228, ptr getelementptr inbounds (i8, ptr @dchk4_.io___269, i64 8), align 8, !tbaa !22
  %229 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___269) #3
  %230 = call i64 @e_wsfe() #3
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %334

231:                                              ; preds = %224
  %232 = load i8, ptr %43, align 1, !tbaa !11
  %233 = icmp eq i8 %137, %232
  %234 = zext i1 %233 to i64
  store i64 %234, ptr %45, align 16, !tbaa !5
  %235 = load i8, ptr %47, align 1, !tbaa !11
  %236 = icmp eq i8 %138, %235
  %237 = zext i1 %236 to i64
  store i64 %237, ptr %66, align 8, !tbaa !5
  %238 = load i64, ptr %32, align 8, !tbaa !5
  %239 = icmp eq i64 %139, %238
  %240 = zext i1 %239 to i64
  store i64 %240, ptr %67, align 16, !tbaa !5
  %241 = load i64, ptr %31, align 8, !tbaa !5
  %242 = icmp eq i64 %140, %241
  %243 = zext i1 %242 to i64
  store i64 %243, ptr %68, align 8, !tbaa !5
  %244 = load double, ptr %44, align 8, !tbaa !9
  %245 = fcmp oeq double %141, %244
  %246 = zext i1 %245 to i64
  store i64 %246, ptr %69, align 16, !tbaa !5
  %247 = call i64 @lde_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %37)
  store i64 %247, ptr %70, align 8, !tbaa !5
  %248 = load i64, ptr %38, align 8, !tbaa !5
  %249 = icmp eq i64 %171, %248
  %250 = zext i1 %249 to i64
  store i64 %250, ptr %71, align 16, !tbaa !5
  %251 = load double, ptr %42, align 8, !tbaa !9
  %252 = fcmp oeq double %172, %251
  %253 = zext i1 %252 to i64
  store i64 %253, ptr %72, align 8, !tbaa !5
  br i1 %90, label %254, label %256

254:                                              ; preds = %231
  %255 = call i64 @lde_(ptr noundef %23, ptr noundef %22, ptr noundef nonnull %39)
  br label %258

256:                                              ; preds = %231
  %257 = call i64 @lderes_(ptr noundef nonnull @.str.7, ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %23, ptr noundef %22, ptr noundef nonnull %40, i64 noundef 2, i64 noundef 1)
  br label %258

258:                                              ; preds = %256, %254
  %storemerge246 = phi i64 [ %257, %256 ], [ %255, %254 ]
  store i64 %storemerge246, ptr %73, align 16, !tbaa !5
  %259 = load i64, ptr %40, align 8, !tbaa !5
  %260 = icmp eq i64 %203, %259
  %261 = zext i1 %260 to i64
  store i64 %261, ptr %74, align 8, !tbaa !5
  store i64 1, ptr %29, align 8, !tbaa !5
  br label %._crit_edge244

._crit_edge244:                                   ; preds = %258, %270
  %262 = phi i64 [ 1, %258 ], [ %272, %270 ]
  %.0200 = phi i1 [ true, %258 ], [ %264, %270 ]
  %storemerge181199 = phi i64 [ 0, %258 ], [ %271, %270 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %45, i64 0, i64 %storemerge181199
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %263 = icmp ne i64 %.pre, 0
  %264 = and i1 %.0200, %263
  %.not188 = icmp eq i64 %.pre, 0
  br i1 %.not188, label %265, label %270

265:                                              ; preds = %._crit_edge244
  %266 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %266, ptr getelementptr inbounds (i8, ptr @dchk4_.io___272, i64 8), align 8, !tbaa !22
  %267 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___272) #3
  %268 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %29, i64 noundef 8) #3
  %269 = call i64 @e_wsfe() #3
  %.pre245 = load i64, ptr %29, align 8, !tbaa !5
  br label %270

270:                                              ; preds = %._crit_edge244, %265
  %271 = phi i64 [ %262, %._crit_edge244 ], [ %.pre245, %265 ]
  %272 = add nsw i64 %271, 1
  store i64 %272, ptr %29, align 8, !tbaa !5
  %273 = icmp slt i64 %271, 10
  br i1 %273, label %._crit_edge244, label %274, !llvm.loop !28

274:                                              ; preds = %270
  br i1 %264, label %276, label %275

275:                                              ; preds = %274
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %334

276:                                              ; preds = %274
  br i1 %90, label %.loopexit, label %277

277:                                              ; preds = %276
  %278 = load i64, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %30, align 8, !tbaa !5
  %.not184207 = icmp slt i64 %278, 1
  br i1 %.not184207, label %.loopexit, label %.lr.ph211

.lr.ph211:                                        ; preds = %277, %302
  %279 = phi double [ %300, %302 ], [ %131, %277 ]
  %.0159209 = phi i64 [ %.1, %302 ], [ 1, %277 ]
  %280 = phi i64 [ %303, %302 ], [ 1, %277 ]
  %281 = load i64, ptr %32, align 8
  %reass.sub = sub i64 %281, %280
  %282 = add i64 %reass.sub, 1
  %storemerge185 = select i1 %119, i64 %282, i64 %280
  %.0156 = select i1 %119, i64 %280, i64 1
  store i64 %storemerge185, ptr %36, align 8, !tbaa !5
  switch i8 %99, label %290 [
    i8 84, label %283
    i8 67, label %283
  ]

283:                                              ; preds = %.lr.ph211, %.lr.ph211
  %284 = mul nsw i64 %.0156, %54
  %gep = getelementptr double, ptr %invariant.gep, i64 %284
  %285 = mul nsw i64 %280, %54
  %gep202 = getelementptr double, ptr %invariant.gep, i64 %285
  %286 = getelementptr double, ptr %56, i64 %.0156
  %287 = getelementptr double, ptr %286, i64 %285
  %288 = getelementptr inbounds double, ptr %53, i64 %.0159209
  %289 = call i32 @dmmch_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %gep, ptr noundef nonnull %14, ptr noundef %gep202, ptr noundef nonnull %14, ptr noundef nonnull %42, ptr noundef %287, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %288, ptr noundef nonnull %40, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %296

290:                                              ; preds = %.lr.ph211
  %gep204 = getelementptr double, ptr %invariant.gep203, i64 %.0156
  %gep206 = getelementptr double, ptr %invariant.gep203, i64 %280
  %291 = mul nsw i64 %280, %54
  %292 = getelementptr double, ptr %56, i64 %.0156
  %293 = getelementptr double, ptr %292, i64 %291
  %294 = getelementptr inbounds double, ptr %53, i64 %.0159209
  %295 = call i32 @dmmch_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.11, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %gep204, ptr noundef nonnull %14, ptr noundef %gep206, ptr noundef nonnull %14, ptr noundef nonnull %42, ptr noundef %293, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %294, ptr noundef nonnull %40, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %296

296:                                              ; preds = %290, %283
  %297 = load i64, ptr %40, align 8, !tbaa !5
  %298 = load double, ptr %41, align 8
  %299 = fcmp oge double %279, %298
  %300 = select i1 %299, double %279, double %298
  store double %300, ptr %48, align 8, !tbaa !9
  %301 = load i64, ptr %7, align 8, !tbaa !5
  %.not186 = icmp eq i64 %301, 0
  br i1 %.not186, label %302, label %326

302:                                              ; preds = %296
  %.1.v = add i64 %.0159209, %123
  %.1 = add i64 %297, %.1.v
  %303 = add nuw nsw i64 %280, 1
  store i64 %303, ptr %30, align 8, !tbaa !5
  %.not184.not = icmp slt i64 %280, %278
  br i1 %.not184.not, label %.lr.ph211, label %.loopexit, !llvm.loop !29

.loopexit:                                        ; preds = %302, %277, %276
  %304 = phi double [ %131, %277 ], [ %131, %276 ], [ %300, %302 ]
  %305 = add nuw i64 %.0160213, 1
  %exitcond238.not = icmp eq i64 %.0160213, %127
  br i1 %exitcond238.not, label %._crit_edge216, label %.lr.ph215, !llvm.loop !30

._crit_edge216:                                   ; preds = %.loopexit, %.lr.ph220.split
  %306 = phi double [ %128, %.lr.ph220.split ], [ %304, %.loopexit ]
  %exitcond239.not = icmp eq i64 %.0161218, %120
  br i1 %exitcond239.not, label %._crit_edge221, label %.lr.ph220.splitthread-pre-split, !llvm.loop !31

._crit_edge221:                                   ; preds = %._crit_edge216, %.lr.ph220.split.us.preheader, %.split
  %307 = phi double [ %115, %.lr.ph220.split.us.preheader ], [ %115, %.split ], [ %306, %._crit_edge216 ]
  %308 = add nuw nsw i64 %.0154223, 1
  %exitcond240.not = icmp eq i64 %308, 3
  br i1 %exitcond240.not, label %.loopexit189, label %.split, !llvm.loop !33

.loopexit189:                                     ; preds = %._crit_edge221, %.split.us.preheader, %106
  %309 = phi double [ %96, %.split.us.preheader ], [ %96, %106 ], [ %307, %._crit_edge221 ]
  %310 = add nuw nsw i64 %.0155225, 1
  %exitcond241.not = icmp eq i64 %310, 4
  br i1 %exitcond241.not, label %311, label %95, !llvm.loop !34

311:                                              ; preds = %.loopexit189
  %312 = add nuw i64 %.0158227, 1
  %exitcond242.not = icmp eq i64 %.0158227, %91
  br i1 %exitcond242.not, label %.loopexit190, label %.lr.ph229, !llvm.loop !35

.loopexit190:                                     ; preds = %311, %88, %85
  %313 = phi double [ %78, %88 ], [ %78, %85 ], [ %309, %311 ]
  %314 = add nuw i64 %.0157231, 1
  %exitcond243.not = icmp eq i64 %.0157231, %59
  br i1 %exitcond243.not, label %._crit_edge234, label %77, !llvm.loop !36

._crit_edge234:                                   ; preds = %.loopexit190, %27
  %315 = phi double [ 0.000000e+00, %27 ], [ %313, %.loopexit190 ]
  %316 = load double, ptr %2, align 8, !tbaa !9
  %317 = fcmp olt double %315, %316
  %318 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %317, label %319, label %322

319:                                              ; preds = %._crit_edge234
  store i64 %318, ptr getelementptr inbounds (i8, ptr @dchk4_.io___278, i64 8), align 8, !tbaa !22
  %320 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___278) #3
  %321 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  br label %350

322:                                              ; preds = %._crit_edge234
  store i64 %318, ptr getelementptr inbounds (i8, ptr @dchk4_.io___279, i64 8), align 8, !tbaa !22
  %323 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___279) #3
  %324 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %325 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  br label %350

326:                                              ; preds = %296
  %327 = load i64, ptr %32, align 8, !tbaa !5
  %328 = icmp sgt i64 %327, 1
  br i1 %328, label %329, label %334

329:                                              ; preds = %326
  %330 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %330, ptr getelementptr inbounds (i8, ptr @dchk4_.io___280, i64 8), align 8, !tbaa !22
  %331 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___280) #3
  %332 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %333 = call i64 @e_wsfe() #3
  br label %334

334:                                              ; preds = %326, %329, %275, %227
  %335 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %335, ptr getelementptr inbounds (i8, ptr @dchk4_.io___281, i64 8), align 8, !tbaa !22
  %336 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___281) #3
  %337 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %338 = call i64 @e_wsfe() #3
  %339 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %339, ptr getelementptr inbounds (i8, ptr @dchk4_.io___282, i64 8), align 8, !tbaa !22
  %340 = call i64 @s_wsfe(ptr noundef nonnull @dchk4_.io___282) #3
  %341 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %342 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %343 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %344 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #3
  %345 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %346 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %347 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 8) #3
  %348 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %349 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 8) #3
  br label %350

350:                                              ; preds = %319, %322, %334
  %.sink = phi ptr [ %35, %319 ], [ %48, %322 ], [ %40, %334 ]
  %351 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #3
  %352 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr nonnull %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 @dmake_(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 @lderes_(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_dsyrk(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 = !{!"double", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13, !14, !15}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.unroll.disable"}
!18 = distinct !{!18, !13, !14}
!19 = distinct !{!19, !13, !14, !15}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !13, !14}
!22 = !{!23, !6, i64 8}
!23 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !24, i64 24, !6, i64 32}
!24 = !{!"any pointer", !7, i64 0}
!25 = !{!26, !6, i64 0}
!26 = !{!"", !6, i64 0, !6, i64 8}
!27 = !{!26, !6, i64 8}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13, !32}
!32 = !{!"llvm.loop.unswitch.partial.disable"}
!33 = distinct !{!33, !13, !32}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}


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