; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (dgbrfsx)

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

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8

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

158:                                              ; preds = %27
  %159 = load ptr, ptr %52, align 8, !tbaa !5
  %160 = getelementptr inbounds double, ptr %159, i64 1
  %161 = load double, ptr %160, align 8, !tbaa !11
  %162 = fcmp olt double %161, 0.000000e+00
  br i1 %162, label %163, label %166

163:                                              ; preds = %158
  %164 = load ptr, ptr %52, align 8, !tbaa !5
  %165 = getelementptr inbounds double, ptr %164, i64 1
  store double 1.000000e+00, ptr %165, align 8, !tbaa !11
  br label %171

166:                                              ; preds = %158
  %167 = load ptr, ptr %52, align 8, !tbaa !5
  %168 = getelementptr inbounds double, ptr %167, i64 1
  %169 = load double, ptr %168, align 8, !tbaa !11
  %170 = fptosi double %169 to i64
  store i64 %170, ptr %74, align 8, !tbaa !9
  br label %171

171:                                              ; preds = %166, %163
  br label %172

172:                                              ; preds = %171, %27
  %173 = load ptr, ptr %31, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = sitofp i64 %174 to double
  %176 = call double @dlamch_(ptr noundef @.str)
  %177 = fmul double %175, %176
  store double %177, ptr %71, align 8, !tbaa !11
  store i64 10, ptr %86, align 8, !tbaa !9
  store double 5.000000e-01, ptr %88, align 8, !tbaa !11
  store double 2.500000e-01, ptr %72, align 8, !tbaa !11
  store i64 0, ptr %81, align 8, !tbaa !9
  %178 = load ptr, ptr %51, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = icmp sge i64 %179, 2
  br i1 %180, label %181, label %197

181:                                              ; preds = %172
  %182 = load ptr, ptr %52, align 8, !tbaa !5
  %183 = getelementptr inbounds double, ptr %182, i64 2
  %184 = load double, ptr %183, align 8, !tbaa !11
  %185 = fcmp olt double %184, 0.000000e+00
  br i1 %185, label %186, label %191

186:                                              ; preds = %181
  %187 = load i64, ptr %86, align 8, !tbaa !9
  %188 = sitofp i64 %187 to double
  %189 = load ptr, ptr %52, align 8, !tbaa !5
  %190 = getelementptr inbounds double, ptr %189, i64 2
  store double %188, ptr %190, align 8, !tbaa !11
  br label %196

191:                                              ; preds = %181
  %192 = load ptr, ptr %52, align 8, !tbaa !5
  %193 = getelementptr inbounds double, ptr %192, i64 2
  %194 = load double, ptr %193, align 8, !tbaa !11
  %195 = fptosi double %194 to i64
  store i64 %195, ptr %86, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %191, %186
  br label %197

197:                                              ; preds = %196, %172
  %198 = load ptr, ptr %51, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = icmp sge i64 %199, 3
  br i1 %200, label %201, label %224

201:                                              ; preds = %197
  %202 = load ptr, ptr %52, align 8, !tbaa !5
  %203 = getelementptr inbounds double, ptr %202, i64 3
  %204 = load double, ptr %203, align 8, !tbaa !11
  %205 = fcmp olt double %204, 0.000000e+00
  br i1 %205, label %206, label %216

206:                                              ; preds = %201
  %207 = load i64, ptr %81, align 8, !tbaa !9
  %208 = icmp ne i64 %207, 0
  br i1 %208, label %209, label %212

209:                                              ; preds = %206
  %210 = load ptr, ptr %52, align 8, !tbaa !5
  %211 = getelementptr inbounds double, ptr %210, i64 3
  store double 0.000000e+00, ptr %211, align 8, !tbaa !11
  br label %215

212:                                              ; preds = %206
  %213 = load ptr, ptr %52, align 8, !tbaa !5
  %214 = getelementptr inbounds double, ptr %213, i64 3
  store double 1.000000e+00, ptr %214, align 8, !tbaa !11
  br label %215

215:                                              ; preds = %212, %209
  br label %223

216:                                              ; preds = %201
  %217 = load ptr, ptr %52, align 8, !tbaa !5
  %218 = getelementptr inbounds double, ptr %217, i64 3
  %219 = load double, ptr %218, align 8, !tbaa !11
  %220 = fcmp oeq double %219, 0.000000e+00
  %221 = zext i1 %220 to i32
  %222 = sext i32 %221 to i64
  store i64 %222, ptr %81, align 8, !tbaa !9
  br label %223

223:                                              ; preds = %216, %215
  br label %224

224:                                              ; preds = %223, %197
  %225 = load i64, ptr %74, align 8, !tbaa !9
  %226 = icmp eq i64 %225, 0
  br i1 %226, label %231, label %227

227:                                              ; preds = %224
  %228 = load ptr, ptr %48, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = icmp eq i64 %229, 0
  br i1 %230, label %231, label %232

231:                                              ; preds = %227, %224
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %238

232:                                              ; preds = %227
  %233 = load i64, ptr %81, align 8, !tbaa !9
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %235, label %236

235:                                              ; preds = %232
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %237

236:                                              ; preds = %232
  store i64 2, ptr %87, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %236, %235
  br label %238

238:                                              ; preds = %237, %231
  %239 = load ptr, ptr %29, align 8, !tbaa !5
  %240 = call i64 @lsame_(ptr noundef %239, ptr noundef @.str.1)
  store i64 %240, ptr %84, align 8, !tbaa !9
  %241 = load ptr, ptr %30, align 8, !tbaa !5
  %242 = call i64 @lsame_(ptr noundef %241, ptr noundef @.str.2)
  %243 = icmp ne i64 %242, 0
  br i1 %243, label %248, label %244

244:                                              ; preds = %238
  %245 = load ptr, ptr %30, align 8, !tbaa !5
  %246 = call i64 @lsame_(ptr noundef %245, ptr noundef @.str.3)
  %247 = icmp ne i64 %246, 0
  br label %248

248:                                              ; preds = %244, %238
  %249 = phi i1 [ true, %238 ], [ %247, %244 ]
  %250 = zext i1 %249 to i32
  %251 = sext i32 %250 to i64
  store i64 %251, ptr %85, align 8, !tbaa !9
  %252 = load ptr, ptr %30, align 8, !tbaa !5
  %253 = call i64 @lsame_(ptr noundef %252, ptr noundef @.str.4)
  %254 = icmp ne i64 %253, 0
  br i1 %254, label %259, label %255

255:                                              ; preds = %248
  %256 = load ptr, ptr %30, align 8, !tbaa !5
  %257 = call i64 @lsame_(ptr noundef %256, ptr noundef @.str.3)
  %258 = icmp ne i64 %257, 0
  br label %259

259:                                              ; preds = %255, %248
  %260 = phi i1 [ true, %248 ], [ %258, %255 ]
  %261 = zext i1 %260 to i32
  %262 = sext i32 %261 to i64
  store i64 %262, ptr %83, align 8, !tbaa !9
  %263 = load i64, ptr %78, align 8, !tbaa !9
  %264 = icmp eq i64 %263, -1
  br i1 %264, label %265, label %267

265:                                              ; preds = %259
  %266 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -1, ptr %266, align 8, !tbaa !9
  br label %367

267:                                              ; preds = %259
  %268 = load i64, ptr %85, align 8, !tbaa !9
  %269 = icmp ne i64 %268, 0
  br i1 %269, label %279, label %270

270:                                              ; preds = %267
  %271 = load i64, ptr %83, align 8, !tbaa !9
  %272 = icmp ne i64 %271, 0
  br i1 %272, label %279, label %273

273:                                              ; preds = %270
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = call i64 @lsame_(ptr noundef %274, ptr noundef @.str.1)
  %276 = icmp ne i64 %275, 0
  br i1 %276, label %279, label %277

277:                                              ; preds = %273
  %278 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -2, ptr %278, align 8, !tbaa !9
  br label %366

279:                                              ; preds = %273, %270, %267
  %280 = load ptr, ptr %31, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  %282 = icmp slt i64 %281, 0
  br i1 %282, label %283, label %285

283:                                              ; preds = %279
  %284 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -3, ptr %284, align 8, !tbaa !9
  br label %365

285:                                              ; preds = %279
  %286 = load ptr, ptr %32, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = icmp slt i64 %287, 0
  br i1 %288, label %289, label %291

289:                                              ; preds = %285
  %290 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -4, ptr %290, align 8, !tbaa !9
  br label %364

291:                                              ; preds = %285
  %292 = load ptr, ptr %33, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = icmp slt i64 %293, 0
  br i1 %294, label %295, label %297

295:                                              ; preds = %291
  %296 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -5, ptr %296, align 8, !tbaa !9
  br label %363

297:                                              ; preds = %291
  %298 = load ptr, ptr %34, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  %300 = icmp slt i64 %299, 0
  br i1 %300, label %301, label %303

301:                                              ; preds = %297
  %302 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -6, ptr %302, align 8, !tbaa !9
  br label %362

303:                                              ; preds = %297
  %304 = load ptr, ptr %36, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = load ptr, ptr %32, align 8, !tbaa !5
  %307 = load i64, ptr %306, align 8, !tbaa !9
  %308 = load ptr, ptr %33, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = add nsw i64 %307, %309
  %311 = add nsw i64 %310, 1
  %312 = icmp slt i64 %305, %311
  br i1 %312, label %313, label %315

313:                                              ; preds = %303
  %314 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -8, ptr %314, align 8, !tbaa !9
  br label %361

315:                                              ; preds = %303
  %316 = load ptr, ptr %38, align 8, !tbaa !5
  %317 = load i64, ptr %316, align 8, !tbaa !9
  %318 = load ptr, ptr %32, align 8, !tbaa !5
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = shl i64 %319, 1
  %321 = load ptr, ptr %33, align 8, !tbaa !5
  %322 = load i64, ptr %321, align 8, !tbaa !9
  %323 = add nsw i64 %320, %322
  %324 = add nsw i64 %323, 1
  %325 = icmp slt i64 %317, %324
  br i1 %325, label %326, label %328

326:                                              ; preds = %315
  %327 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -10, ptr %327, align 8, !tbaa !9
  br label %360

328:                                              ; preds = %315
  %329 = load ptr, ptr %43, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = load ptr, ptr %31, align 8, !tbaa !5
  %332 = load i64, ptr %331, align 8, !tbaa !9
  %333 = icmp sge i64 1, %332
  br i1 %333, label %334, label %335

334:                                              ; preds = %328
  br label %338

335:                                              ; preds = %328
  %336 = load ptr, ptr %31, align 8, !tbaa !5
  %337 = load i64, ptr %336, align 8, !tbaa !9
  br label %338

338:                                              ; preds = %335, %334
  %339 = phi i64 [ 1, %334 ], [ %337, %335 ]
  %340 = icmp slt i64 %330, %339
  br i1 %340, label %341, label %343

341:                                              ; preds = %338
  %342 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -13, ptr %342, align 8, !tbaa !9
  br label %359

343:                                              ; preds = %338
  %344 = load ptr, ptr %45, align 8, !tbaa !5
  %345 = load i64, ptr %344, align 8, !tbaa !9
  %346 = load ptr, ptr %31, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = icmp sge i64 1, %347
  br i1 %348, label %349, label %350

349:                                              ; preds = %343
  br label %353

350:                                              ; preds = %343
  %351 = load ptr, ptr %31, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  br label %353

353:                                              ; preds = %350, %349
  %354 = phi i64 [ 1, %349 ], [ %352, %350 ]
  %355 = icmp slt i64 %345, %354
  br i1 %355, label %356, label %358

356:                                              ; preds = %353
  %357 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -15, ptr %357, align 8, !tbaa !9
  br label %358

358:                                              ; preds = %356, %353
  br label %359

359:                                              ; preds = %358, %341
  br label %360

360:                                              ; preds = %359, %326
  br label %361

361:                                              ; preds = %360, %313
  br label %362

362:                                              ; preds = %361, %301
  br label %363

363:                                              ; preds = %362, %295
  br label %364

364:                                              ; preds = %363, %289
  br label %365

365:                                              ; preds = %364, %283
  br label %366

366:                                              ; preds = %365, %277
  br label %367

367:                                              ; preds = %366, %265
  %368 = load ptr, ptr %55, align 8, !tbaa !5
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = icmp ne i64 %369, 0
  br i1 %370, label %371, label %376

371:                                              ; preds = %367
  %372 = load ptr, ptr %55, align 8, !tbaa !5
  %373 = load i64, ptr %372, align 8, !tbaa !9
  %374 = sub nsw i64 0, %373
  store i64 %374, ptr %68, align 8, !tbaa !9
  %375 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %68)
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1013

376:                                              ; preds = %367
  %377 = load ptr, ptr %31, align 8, !tbaa !5
  %378 = load i64, ptr %377, align 8, !tbaa !9
  %379 = icmp eq i64 %378, 0
  br i1 %379, label %384, label %380

380:                                              ; preds = %376
  %381 = load ptr, ptr %34, align 8, !tbaa !5
  %382 = load i64, ptr %381, align 8, !tbaa !9
  %383 = icmp eq i64 %382, 0
  br i1 %383, label %384, label %451

384:                                              ; preds = %380, %376
  %385 = load ptr, ptr %46, align 8, !tbaa !5
  store double 1.000000e+00, ptr %385, align 8, !tbaa !11
  %386 = load ptr, ptr %34, align 8, !tbaa !5
  %387 = load i64, ptr %386, align 8, !tbaa !9
  store i64 %387, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %388

388:                                              ; preds = %447, %384
  %389 = load i64, ptr %75, align 8, !tbaa !9
  %390 = load i64, ptr %68, align 8, !tbaa !9
  %391 = icmp sle i64 %389, %390
  br i1 %391, label %392, label %450

392:                                              ; preds = %388
  %393 = load ptr, ptr %47, align 8, !tbaa !5
  %394 = load i64, ptr %75, align 8, !tbaa !9
  %395 = getelementptr inbounds double, ptr %393, i64 %394
  store double 0.000000e+00, ptr %395, align 8, !tbaa !11
  %396 = load ptr, ptr %48, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = icmp sge i64 %397, 1
  br i1 %398, label %399, label %410

399:                                              ; preds = %392
  %400 = load ptr, ptr %49, align 8, !tbaa !5
  %401 = load i64, ptr %75, align 8, !tbaa !9
  %402 = load i64, ptr %64, align 8, !tbaa !9
  %403 = add nsw i64 %401, %402
  %404 = getelementptr inbounds double, ptr %400, i64 %403
  store double 1.000000e+00, ptr %404, align 8, !tbaa !11
  %405 = load ptr, ptr %50, align 8, !tbaa !5
  %406 = load i64, ptr %75, align 8, !tbaa !9
  %407 = load i64, ptr %66, align 8, !tbaa !9
  %408 = add nsw i64 %406, %407
  %409 = getelementptr inbounds double, ptr %405, i64 %408
  store double 1.000000e+00, ptr %409, align 8, !tbaa !11
  br label %446

410:                                              ; preds = %392
  %411 = load ptr, ptr %48, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  %413 = icmp sge i64 %412, 2
  br i1 %413, label %414, label %427

414:                                              ; preds = %410
  %415 = load ptr, ptr %49, align 8, !tbaa !5
  %416 = load i64, ptr %75, align 8, !tbaa !9
  %417 = load i64, ptr %64, align 8, !tbaa !9
  %418 = shl i64 %417, 1
  %419 = add nsw i64 %416, %418
  %420 = getelementptr inbounds double, ptr %415, i64 %419
  store double 0.000000e+00, ptr %420, align 8, !tbaa !11
  %421 = load ptr, ptr %50, align 8, !tbaa !5
  %422 = load i64, ptr %75, align 8, !tbaa !9
  %423 = load i64, ptr %66, align 8, !tbaa !9
  %424 = shl i64 %423, 1
  %425 = add nsw i64 %422, %424
  %426 = getelementptr inbounds double, ptr %421, i64 %425
  store double 0.000000e+00, ptr %426, align 8, !tbaa !11
  br label %445

427:                                              ; preds = %410
  %428 = load ptr, ptr %48, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  %430 = icmp sge i64 %429, 3
  br i1 %430, label %431, label %444

431:                                              ; preds = %427
  %432 = load ptr, ptr %49, align 8, !tbaa !5
  %433 = load i64, ptr %75, align 8, !tbaa !9
  %434 = load i64, ptr %64, align 8, !tbaa !9
  %435 = mul nsw i64 %434, 3
  %436 = add nsw i64 %433, %435
  %437 = getelementptr inbounds double, ptr %432, i64 %436
  store double 1.000000e+00, ptr %437, align 8, !tbaa !11
  %438 = load ptr, ptr %50, align 8, !tbaa !5
  %439 = load i64, ptr %75, align 8, !tbaa !9
  %440 = load i64, ptr %66, align 8, !tbaa !9
  %441 = mul nsw i64 %440, 3
  %442 = add nsw i64 %439, %441
  %443 = getelementptr inbounds double, ptr %438, i64 %442
  store double 1.000000e+00, ptr %443, align 8, !tbaa !11
  br label %444

444:                                              ; preds = %431, %427
  br label %445

445:                                              ; preds = %444, %414
  br label %446

446:                                              ; preds = %445, %399
  br label %447

447:                                              ; preds = %446
  %448 = load i64, ptr %75, align 8, !tbaa !9
  %449 = add nsw i64 %448, 1
  store i64 %449, ptr %75, align 8, !tbaa !9
  br label %388, !llvm.loop !13

450:                                              ; preds = %388
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1013

451:                                              ; preds = %380
  %452 = load ptr, ptr %46, align 8, !tbaa !5
  store double 0.000000e+00, ptr %452, align 8, !tbaa !11
  %453 = load ptr, ptr %34, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  store i64 %454, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %455

455:                                              ; preds = %514, %451
  %456 = load i64, ptr %75, align 8, !tbaa !9
  %457 = load i64, ptr %68, align 8, !tbaa !9
  %458 = icmp sle i64 %456, %457
  br i1 %458, label %459, label %517

459:                                              ; preds = %455
  %460 = load ptr, ptr %47, align 8, !tbaa !5
  %461 = load i64, ptr %75, align 8, !tbaa !9
  %462 = getelementptr inbounds double, ptr %460, i64 %461
  store double 1.000000e+00, ptr %462, align 8, !tbaa !11
  %463 = load ptr, ptr %48, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = icmp sge i64 %464, 1
  br i1 %465, label %466, label %477

466:                                              ; preds = %459
  %467 = load ptr, ptr %49, align 8, !tbaa !5
  %468 = load i64, ptr %75, align 8, !tbaa !9
  %469 = load i64, ptr %64, align 8, !tbaa !9
  %470 = add nsw i64 %468, %469
  %471 = getelementptr inbounds double, ptr %467, i64 %470
  store double 1.000000e+00, ptr %471, align 8, !tbaa !11
  %472 = load ptr, ptr %50, align 8, !tbaa !5
  %473 = load i64, ptr %75, align 8, !tbaa !9
  %474 = load i64, ptr %66, align 8, !tbaa !9
  %475 = add nsw i64 %473, %474
  %476 = getelementptr inbounds double, ptr %472, i64 %475
  store double 1.000000e+00, ptr %476, align 8, !tbaa !11
  br label %513

477:                                              ; preds = %459
  %478 = load ptr, ptr %48, align 8, !tbaa !5
  %479 = load i64, ptr %478, align 8, !tbaa !9
  %480 = icmp sge i64 %479, 2
  br i1 %480, label %481, label %494

481:                                              ; preds = %477
  %482 = load ptr, ptr %49, align 8, !tbaa !5
  %483 = load i64, ptr %75, align 8, !tbaa !9
  %484 = load i64, ptr %64, align 8, !tbaa !9
  %485 = shl i64 %484, 1
  %486 = add nsw i64 %483, %485
  %487 = getelementptr inbounds double, ptr %482, i64 %486
  store double 1.000000e+00, ptr %487, align 8, !tbaa !11
  %488 = load ptr, ptr %50, align 8, !tbaa !5
  %489 = load i64, ptr %75, align 8, !tbaa !9
  %490 = load i64, ptr %66, align 8, !tbaa !9
  %491 = shl i64 %490, 1
  %492 = add nsw i64 %489, %491
  %493 = getelementptr inbounds double, ptr %488, i64 %492
  store double 1.000000e+00, ptr %493, align 8, !tbaa !11
  br label %512

494:                                              ; preds = %477
  %495 = load ptr, ptr %48, align 8, !tbaa !5
  %496 = load i64, ptr %495, align 8, !tbaa !9
  %497 = icmp sge i64 %496, 3
  br i1 %497, label %498, label %511

498:                                              ; preds = %494
  %499 = load ptr, ptr %49, align 8, !tbaa !5
  %500 = load i64, ptr %75, align 8, !tbaa !9
  %501 = load i64, ptr %64, align 8, !tbaa !9
  %502 = mul nsw i64 %501, 3
  %503 = add nsw i64 %500, %502
  %504 = getelementptr inbounds double, ptr %499, i64 %503
  store double 0.000000e+00, ptr %504, align 8, !tbaa !11
  %505 = load ptr, ptr %50, align 8, !tbaa !5
  %506 = load i64, ptr %75, align 8, !tbaa !9
  %507 = load i64, ptr %66, align 8, !tbaa !9
  %508 = mul nsw i64 %507, 3
  %509 = add nsw i64 %506, %508
  %510 = getelementptr inbounds double, ptr %505, i64 %509
  store double 0.000000e+00, ptr %510, align 8, !tbaa !11
  br label %511

511:                                              ; preds = %498, %494
  br label %512

512:                                              ; preds = %511, %481
  br label %513

513:                                              ; preds = %512, %466
  br label %514

514:                                              ; preds = %513
  %515 = load i64, ptr %75, align 8, !tbaa !9
  %516 = add nsw i64 %515, 1
  store i64 %516, ptr %75, align 8, !tbaa !9
  br label %455, !llvm.loop !15

517:                                              ; preds = %455
  %518 = load i64, ptr %84, align 8, !tbaa !9
  %519 = icmp ne i64 %518, 0
  br i1 %519, label %520, label %522

520:                                              ; preds = %517
  %521 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  store i8 73, ptr %521, align 1, !tbaa !16
  br label %524

522:                                              ; preds = %517
  %523 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  store i8 49, ptr %523, align 1, !tbaa !16
  br label %524

524:                                              ; preds = %522, %520
  %525 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  %526 = load ptr, ptr %31, align 8, !tbaa !5
  %527 = load ptr, ptr %32, align 8, !tbaa !5
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = load ptr, ptr %35, align 8, !tbaa !5
  %530 = load i64, ptr %57, align 8, !tbaa !9
  %531 = getelementptr inbounds double, ptr %529, i64 %530
  %532 = load ptr, ptr %36, align 8, !tbaa !5
  %533 = load ptr, ptr %53, align 8, !tbaa !5
  %534 = getelementptr inbounds double, ptr %533, i64 1
  %535 = call double @dlangb_(ptr noundef %525, ptr noundef %526, ptr noundef %527, ptr noundef %528, ptr noundef %531, ptr noundef %532, ptr noundef %534)
  store double %535, ptr %82, align 8, !tbaa !11
  %536 = getelementptr inbounds [1 x i8], ptr %80, i64 0, i64 0
  %537 = load ptr, ptr %31, align 8, !tbaa !5
  %538 = load ptr, ptr %32, align 8, !tbaa !5
  %539 = load ptr, ptr %33, align 8, !tbaa !5
  %540 = load ptr, ptr %37, align 8, !tbaa !5
  %541 = load i64, ptr %59, align 8, !tbaa !9
  %542 = getelementptr inbounds double, ptr %540, i64 %541
  %543 = load ptr, ptr %38, align 8, !tbaa !5
  %544 = load ptr, ptr %39, align 8, !tbaa !5
  %545 = getelementptr inbounds i64, ptr %544, i64 1
  %546 = load ptr, ptr %46, align 8, !tbaa !5
  %547 = load ptr, ptr %53, align 8, !tbaa !5
  %548 = getelementptr inbounds double, ptr %547, i64 1
  %549 = load ptr, ptr %54, align 8, !tbaa !5
  %550 = getelementptr inbounds i64, ptr %549, i64 1
  %551 = load ptr, ptr %55, align 8, !tbaa !5
  %552 = call i32 @dgbcon_(ptr noundef %536, ptr noundef %537, ptr noundef %538, ptr noundef %539, ptr noundef %542, ptr noundef %543, ptr noundef %545, ptr noundef %82, ptr noundef %546, ptr noundef %548, ptr noundef %550, ptr noundef %551)
  %553 = load i64, ptr %74, align 8, !tbaa !9
  %554 = icmp ne i64 %553, 0
  br i1 %554, label %555, label %662

555:                                              ; preds = %524
  %556 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %556, ptr %77, align 8, !tbaa !9
  %557 = load i64, ptr %84, align 8, !tbaa !9
  %558 = icmp ne i64 %557, 0
  br i1 %558, label %559, label %610

559:                                              ; preds = %555
  %560 = load ptr, ptr %31, align 8, !tbaa !5
  %561 = load ptr, ptr %32, align 8, !tbaa !5
  %562 = load ptr, ptr %33, align 8, !tbaa !5
  %563 = load ptr, ptr %34, align 8, !tbaa !5
  %564 = load ptr, ptr %35, align 8, !tbaa !5
  %565 = load i64, ptr %57, align 8, !tbaa !9
  %566 = getelementptr inbounds double, ptr %564, i64 %565
  %567 = load ptr, ptr %36, align 8, !tbaa !5
  %568 = load ptr, ptr %37, align 8, !tbaa !5
  %569 = load i64, ptr %59, align 8, !tbaa !9
  %570 = getelementptr inbounds double, ptr %568, i64 %569
  %571 = load ptr, ptr %38, align 8, !tbaa !5
  %572 = load ptr, ptr %39, align 8, !tbaa !5
  %573 = getelementptr inbounds i64, ptr %572, i64 1
  %574 = load ptr, ptr %41, align 8, !tbaa !5
  %575 = getelementptr inbounds double, ptr %574, i64 1
  %576 = load ptr, ptr %42, align 8, !tbaa !5
  %577 = load i64, ptr %61, align 8, !tbaa !9
  %578 = getelementptr inbounds double, ptr %576, i64 %577
  %579 = load ptr, ptr %43, align 8, !tbaa !5
  %580 = load ptr, ptr %44, align 8, !tbaa !5
  %581 = load i64, ptr %63, align 8, !tbaa !9
  %582 = getelementptr inbounds double, ptr %580, i64 %581
  %583 = load ptr, ptr %45, align 8, !tbaa !5
  %584 = load ptr, ptr %47, align 8, !tbaa !5
  %585 = getelementptr inbounds double, ptr %584, i64 1
  %586 = load ptr, ptr %49, align 8, !tbaa !5
  %587 = load i64, ptr %65, align 8, !tbaa !9
  %588 = getelementptr inbounds double, ptr %586, i64 %587
  %589 = load ptr, ptr %50, align 8, !tbaa !5
  %590 = load i64, ptr %67, align 8, !tbaa !9
  %591 = getelementptr inbounds double, ptr %589, i64 %590
  %592 = load ptr, ptr %53, align 8, !tbaa !5
  %593 = load ptr, ptr %31, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = add nsw i64 %594, 1
  %596 = getelementptr inbounds double, ptr %592, i64 %595
  %597 = load ptr, ptr %53, align 8, !tbaa !5
  %598 = getelementptr inbounds double, ptr %597, i64 1
  %599 = load ptr, ptr %53, align 8, !tbaa !5
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = load i64, ptr %600, align 8, !tbaa !9
  %602 = shl i64 %601, 1
  %603 = add nsw i64 %602, 1
  %604 = getelementptr inbounds double, ptr %599, i64 %603
  %605 = load ptr, ptr %53, align 8, !tbaa !5
  %606 = getelementptr inbounds double, ptr %605, i64 1
  %607 = load ptr, ptr %46, align 8, !tbaa !5
  %608 = load ptr, ptr %55, align 8, !tbaa !5
  %609 = call i32 @dla_gbrfsx_extended__(ptr noundef %77, ptr noundef %78, ptr noundef %560, ptr noundef %561, ptr noundef %562, ptr noundef %563, ptr noundef %566, ptr noundef %567, ptr noundef %570, ptr noundef %571, ptr noundef %573, ptr noundef %83, ptr noundef %575, ptr noundef %578, ptr noundef %579, ptr noundef %582, ptr noundef %583, ptr noundef %585, ptr noundef %87, ptr noundef %588, ptr noundef %591, ptr noundef %596, ptr noundef %598, ptr noundef %604, ptr noundef %606, ptr noundef %607, ptr noundef %86, ptr noundef %88, ptr noundef %72, ptr noundef %81, ptr noundef %608)
  br label %661

610:                                              ; preds = %555
  %611 = load ptr, ptr %31, align 8, !tbaa !5
  %612 = load ptr, ptr %32, align 8, !tbaa !5
  %613 = load ptr, ptr %33, align 8, !tbaa !5
  %614 = load ptr, ptr %34, align 8, !tbaa !5
  %615 = load ptr, ptr %35, align 8, !tbaa !5
  %616 = load i64, ptr %57, align 8, !tbaa !9
  %617 = getelementptr inbounds double, ptr %615, i64 %616
  %618 = load ptr, ptr %36, align 8, !tbaa !5
  %619 = load ptr, ptr %37, align 8, !tbaa !5
  %620 = load i64, ptr %59, align 8, !tbaa !9
  %621 = getelementptr inbounds double, ptr %619, i64 %620
  %622 = load ptr, ptr %38, align 8, !tbaa !5
  %623 = load ptr, ptr %39, align 8, !tbaa !5
  %624 = getelementptr inbounds i64, ptr %623, i64 1
  %625 = load ptr, ptr %40, align 8, !tbaa !5
  %626 = getelementptr inbounds double, ptr %625, i64 1
  %627 = load ptr, ptr %42, align 8, !tbaa !5
  %628 = load i64, ptr %61, align 8, !tbaa !9
  %629 = getelementptr inbounds double, ptr %627, i64 %628
  %630 = load ptr, ptr %43, align 8, !tbaa !5
  %631 = load ptr, ptr %44, align 8, !tbaa !5
  %632 = load i64, ptr %63, align 8, !tbaa !9
  %633 = getelementptr inbounds double, ptr %631, i64 %632
  %634 = load ptr, ptr %45, align 8, !tbaa !5
  %635 = load ptr, ptr %47, align 8, !tbaa !5
  %636 = getelementptr inbounds double, ptr %635, i64 1
  %637 = load ptr, ptr %49, align 8, !tbaa !5
  %638 = load i64, ptr %65, align 8, !tbaa !9
  %639 = getelementptr inbounds double, ptr %637, i64 %638
  %640 = load ptr, ptr %50, align 8, !tbaa !5
  %641 = load i64, ptr %67, align 8, !tbaa !9
  %642 = getelementptr inbounds double, ptr %640, i64 %641
  %643 = load ptr, ptr %53, align 8, !tbaa !5
  %644 = load ptr, ptr %31, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = add nsw i64 %645, 1
  %647 = getelementptr inbounds double, ptr %643, i64 %646
  %648 = load ptr, ptr %53, align 8, !tbaa !5
  %649 = getelementptr inbounds double, ptr %648, i64 1
  %650 = load ptr, ptr %53, align 8, !tbaa !5
  %651 = load ptr, ptr %31, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = shl i64 %652, 1
  %654 = add nsw i64 %653, 1
  %655 = getelementptr inbounds double, ptr %650, i64 %654
  %656 = load ptr, ptr %53, align 8, !tbaa !5
  %657 = getelementptr inbounds double, ptr %656, i64 1
  %658 = load ptr, ptr %46, align 8, !tbaa !5
  %659 = load ptr, ptr %55, align 8, !tbaa !5
  %660 = call i32 @dla_gbrfsx_extended__(ptr noundef %77, ptr noundef %78, ptr noundef %611, ptr noundef %612, ptr noundef %613, ptr noundef %614, ptr noundef %617, ptr noundef %618, ptr noundef %621, ptr noundef %622, ptr noundef %624, ptr noundef %85, ptr noundef %626, ptr noundef %629, ptr noundef %630, ptr noundef %633, ptr noundef %634, ptr noundef %636, ptr noundef %87, ptr noundef %639, ptr noundef %642, ptr noundef %647, ptr noundef %649, ptr noundef %655, ptr noundef %657, ptr noundef %658, ptr noundef %86, ptr noundef %88, ptr noundef %72, ptr noundef %81, ptr noundef %659)
  br label %661

661:                                              ; preds = %610, %559
  br label %662

662:                                              ; preds = %661, %524
  store double 1.000000e+01, ptr %69, align 8, !tbaa !11
  %663 = load ptr, ptr %31, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = sitofp i64 %664 to double
  %666 = call double @sqrt(double noundef %665) #4
  store double %666, ptr %70, align 8, !tbaa !11
  %667 = load double, ptr %69, align 8, !tbaa !11
  %668 = load double, ptr %70, align 8, !tbaa !11
  %669 = fcmp oge double %667, %668
  br i1 %669, label %670, label %672

670:                                              ; preds = %662
  %671 = load double, ptr %69, align 8, !tbaa !11
  br label %674

672:                                              ; preds = %662
  %673 = load double, ptr %70, align 8, !tbaa !11
  br label %674

674:                                              ; preds = %672, %670
  %675 = phi double [ %671, %670 ], [ %673, %672 ]
  %676 = call double @dlamch_(ptr noundef @.str)
  %677 = fmul double %675, %676
  store double %677, ptr %73, align 8, !tbaa !11
  %678 = load ptr, ptr %48, align 8, !tbaa !5
  %679 = load i64, ptr %678, align 8, !tbaa !9
  %680 = icmp sge i64 %679, 1
  br i1 %680, label %681, label %862

681:                                              ; preds = %674
  %682 = load i64, ptr %87, align 8, !tbaa !9
  %683 = icmp sge i64 %682, 1
  br i1 %683, label %684, label %862

684:                                              ; preds = %681
  %685 = load i64, ptr %83, align 8, !tbaa !9
  %686 = icmp ne i64 %685, 0
  br i1 %686, label %687, label %713

687:                                              ; preds = %684
  %688 = load i64, ptr %84, align 8, !tbaa !9
  %689 = icmp ne i64 %688, 0
  br i1 %689, label %690, label %713

690:                                              ; preds = %687
  %691 = load ptr, ptr %29, align 8, !tbaa !5
  %692 = load ptr, ptr %31, align 8, !tbaa !5
  %693 = load ptr, ptr %32, align 8, !tbaa !5
  %694 = load ptr, ptr %33, align 8, !tbaa !5
  %695 = load ptr, ptr %35, align 8, !tbaa !5
  %696 = load i64, ptr %57, align 8, !tbaa !9
  %697 = getelementptr inbounds double, ptr %695, i64 %696
  %698 = load ptr, ptr %36, align 8, !tbaa !5
  %699 = load ptr, ptr %37, align 8, !tbaa !5
  %700 = load i64, ptr %59, align 8, !tbaa !9
  %701 = getelementptr inbounds double, ptr %699, i64 %700
  %702 = load ptr, ptr %38, align 8, !tbaa !5
  %703 = load ptr, ptr %39, align 8, !tbaa !5
  %704 = getelementptr inbounds i64, ptr %703, i64 1
  %705 = load ptr, ptr %41, align 8, !tbaa !5
  %706 = getelementptr inbounds double, ptr %705, i64 1
  %707 = load ptr, ptr %55, align 8, !tbaa !5
  %708 = load ptr, ptr %53, align 8, !tbaa !5
  %709 = getelementptr inbounds double, ptr %708, i64 1
  %710 = load ptr, ptr %54, align 8, !tbaa !5
  %711 = getelementptr inbounds i64, ptr %710, i64 1
  %712 = call double @dla_gbrcond__(ptr noundef %691, ptr noundef %692, ptr noundef %693, ptr noundef %694, ptr noundef %697, ptr noundef %698, ptr noundef %701, ptr noundef %702, ptr noundef %704, ptr noundef @c_n1, ptr noundef %706, ptr noundef %707, ptr noundef %709, ptr noundef %711, i64 noundef 1)
  store double %712, ptr %76, align 8, !tbaa !11
  br label %766

713:                                              ; preds = %687, %684
  %714 = load i64, ptr %85, align 8, !tbaa !9
  %715 = icmp ne i64 %714, 0
  br i1 %715, label %716, label %742

716:                                              ; preds = %713
  %717 = load i64, ptr %84, align 8, !tbaa !9
  %718 = icmp ne i64 %717, 0
  br i1 %718, label %742, label %719

719:                                              ; preds = %716
  %720 = load ptr, ptr %29, align 8, !tbaa !5
  %721 = load ptr, ptr %31, align 8, !tbaa !5
  %722 = load ptr, ptr %32, align 8, !tbaa !5
  %723 = load ptr, ptr %33, align 8, !tbaa !5
  %724 = load ptr, ptr %35, align 8, !tbaa !5
  %725 = load i64, ptr %57, align 8, !tbaa !9
  %726 = getelementptr inbounds double, ptr %724, i64 %725
  %727 = load ptr, ptr %36, align 8, !tbaa !5
  %728 = load ptr, ptr %37, align 8, !tbaa !5
  %729 = load i64, ptr %59, align 8, !tbaa !9
  %730 = getelementptr inbounds double, ptr %728, i64 %729
  %731 = load ptr, ptr %38, align 8, !tbaa !5
  %732 = load ptr, ptr %39, align 8, !tbaa !5
  %733 = getelementptr inbounds i64, ptr %732, i64 1
  %734 = load ptr, ptr %40, align 8, !tbaa !5
  %735 = getelementptr inbounds double, ptr %734, i64 1
  %736 = load ptr, ptr %55, align 8, !tbaa !5
  %737 = load ptr, ptr %53, align 8, !tbaa !5
  %738 = getelementptr inbounds double, ptr %737, i64 1
  %739 = load ptr, ptr %54, align 8, !tbaa !5
  %740 = getelementptr inbounds i64, ptr %739, i64 1
  %741 = call double @dla_gbrcond__(ptr noundef %720, ptr noundef %721, ptr noundef %722, ptr noundef %723, ptr noundef %726, ptr noundef %727, ptr noundef %730, ptr noundef %731, ptr noundef %733, ptr noundef @c_n1, ptr noundef %735, ptr noundef %736, ptr noundef %738, ptr noundef %740, i64 noundef 1)
  store double %741, ptr %76, align 8, !tbaa !11
  br label %765

742:                                              ; preds = %716, %713
  %743 = load ptr, ptr %29, align 8, !tbaa !5
  %744 = load ptr, ptr %31, align 8, !tbaa !5
  %745 = load ptr, ptr %32, align 8, !tbaa !5
  %746 = load ptr, ptr %33, align 8, !tbaa !5
  %747 = load ptr, ptr %35, align 8, !tbaa !5
  %748 = load i64, ptr %57, align 8, !tbaa !9
  %749 = getelementptr inbounds double, ptr %747, i64 %748
  %750 = load ptr, ptr %36, align 8, !tbaa !5
  %751 = load ptr, ptr %37, align 8, !tbaa !5
  %752 = load i64, ptr %59, align 8, !tbaa !9
  %753 = getelementptr inbounds double, ptr %751, i64 %752
  %754 = load ptr, ptr %38, align 8, !tbaa !5
  %755 = load ptr, ptr %39, align 8, !tbaa !5
  %756 = getelementptr inbounds i64, ptr %755, i64 1
  %757 = load ptr, ptr %40, align 8, !tbaa !5
  %758 = getelementptr inbounds double, ptr %757, i64 1
  %759 = load ptr, ptr %55, align 8, !tbaa !5
  %760 = load ptr, ptr %53, align 8, !tbaa !5
  %761 = getelementptr inbounds double, ptr %760, i64 1
  %762 = load ptr, ptr %54, align 8, !tbaa !5
  %763 = getelementptr inbounds i64, ptr %762, i64 1
  %764 = call double @dla_gbrcond__(ptr noundef %743, ptr noundef %744, ptr noundef %745, ptr noundef %746, ptr noundef %749, ptr noundef %750, ptr noundef %753, ptr noundef %754, ptr noundef %756, ptr noundef @c__0, ptr noundef %758, ptr noundef %759, ptr noundef %761, ptr noundef %763, i64 noundef 1)
  store double %764, ptr %76, align 8, !tbaa !11
  br label %765

765:                                              ; preds = %742, %719
  br label %766

766:                                              ; preds = %765, %690
  %767 = load ptr, ptr %34, align 8, !tbaa !5
  %768 = load i64, ptr %767, align 8, !tbaa !9
  store i64 %768, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %769

769:                                              ; preds = %858, %766
  %770 = load i64, ptr %75, align 8, !tbaa !9
  %771 = load i64, ptr %68, align 8, !tbaa !9
  %772 = icmp sle i64 %770, %771
  br i1 %772, label %773, label %861

773:                                              ; preds = %769
  %774 = load ptr, ptr %48, align 8, !tbaa !5
  %775 = load i64, ptr %774, align 8, !tbaa !9
  %776 = icmp sge i64 %775, 2
  br i1 %776, label %777, label %793

777:                                              ; preds = %773
  %778 = load ptr, ptr %49, align 8, !tbaa !5
  %779 = load i64, ptr %75, align 8, !tbaa !9
  %780 = load i64, ptr %64, align 8, !tbaa !9
  %781 = shl i64 %780, 1
  %782 = add nsw i64 %779, %781
  %783 = getelementptr inbounds double, ptr %778, i64 %782
  %784 = load double, ptr %783, align 8, !tbaa !11
  %785 = fcmp ogt double %784, 1.000000e+00
  br i1 %785, label %786, label %793

786:                                              ; preds = %777
  %787 = load ptr, ptr %49, align 8, !tbaa !5
  %788 = load i64, ptr %75, align 8, !tbaa !9
  %789 = load i64, ptr %64, align 8, !tbaa !9
  %790 = shl i64 %789, 1
  %791 = add nsw i64 %788, %790
  %792 = getelementptr inbounds double, ptr %787, i64 %791
  store double 1.000000e+00, ptr %792, align 8, !tbaa !11
  br label %793

793:                                              ; preds = %786, %777, %773
  %794 = load double, ptr %76, align 8, !tbaa !11
  %795 = load double, ptr %71, align 8, !tbaa !11
  %796 = fcmp olt double %794, %795
  br i1 %796, label %797, label %821

797:                                              ; preds = %793
  %798 = load ptr, ptr %49, align 8, !tbaa !5
  %799 = load i64, ptr %75, align 8, !tbaa !9
  %800 = load i64, ptr %64, align 8, !tbaa !9
  %801 = shl i64 %800, 1
  %802 = add nsw i64 %799, %801
  %803 = getelementptr inbounds double, ptr %798, i64 %802
  store double 1.000000e+00, ptr %803, align 8, !tbaa !11
  %804 = load ptr, ptr %49, align 8, !tbaa !5
  %805 = load i64, ptr %75, align 8, !tbaa !9
  %806 = load i64, ptr %64, align 8, !tbaa !9
  %807 = add nsw i64 %805, %806
  %808 = getelementptr inbounds double, ptr %804, i64 %807
  store double 0.000000e+00, ptr %808, align 8, !tbaa !11
  %809 = load ptr, ptr %55, align 8, !tbaa !5
  %810 = load i64, ptr %809, align 8, !tbaa !9
  %811 = load ptr, ptr %31, align 8, !tbaa !5
  %812 = load i64, ptr %811, align 8, !tbaa !9
  %813 = icmp sle i64 %810, %812
  br i1 %813, label %814, label %820

814:                                              ; preds = %797
  %815 = load ptr, ptr %31, align 8, !tbaa !5
  %816 = load i64, ptr %815, align 8, !tbaa !9
  %817 = load i64, ptr %75, align 8, !tbaa !9
  %818 = add nsw i64 %816, %817
  %819 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %818, ptr %819, align 8, !tbaa !9
  br label %820

820:                                              ; preds = %814, %797
  br label %845

821:                                              ; preds = %793
  %822 = load ptr, ptr %49, align 8, !tbaa !5
  %823 = load i64, ptr %75, align 8, !tbaa !9
  %824 = load i64, ptr %64, align 8, !tbaa !9
  %825 = shl i64 %824, 1
  %826 = add nsw i64 %823, %825
  %827 = getelementptr inbounds double, ptr %822, i64 %826
  %828 = load double, ptr %827, align 8, !tbaa !11
  %829 = load double, ptr %73, align 8, !tbaa !11
  %830 = fcmp olt double %828, %829
  br i1 %830, label %831, label %844

831:                                              ; preds = %821
  %832 = load double, ptr %73, align 8, !tbaa !11
  %833 = load ptr, ptr %49, align 8, !tbaa !5
  %834 = load i64, ptr %75, align 8, !tbaa !9
  %835 = load i64, ptr %64, align 8, !tbaa !9
  %836 = shl i64 %835, 1
  %837 = add nsw i64 %834, %836
  %838 = getelementptr inbounds double, ptr %833, i64 %837
  store double %832, ptr %838, align 8, !tbaa !11
  %839 = load ptr, ptr %49, align 8, !tbaa !5
  %840 = load i64, ptr %75, align 8, !tbaa !9
  %841 = load i64, ptr %64, align 8, !tbaa !9
  %842 = add nsw i64 %840, %841
  %843 = getelementptr inbounds double, ptr %839, i64 %842
  store double 1.000000e+00, ptr %843, align 8, !tbaa !11
  br label %844

844:                                              ; preds = %831, %821
  br label %845

845:                                              ; preds = %844, %820
  %846 = load ptr, ptr %48, align 8, !tbaa !5
  %847 = load i64, ptr %846, align 8, !tbaa !9
  %848 = icmp sge i64 %847, 3
  br i1 %848, label %849, label %857

849:                                              ; preds = %845
  %850 = load double, ptr %76, align 8, !tbaa !11
  %851 = load ptr, ptr %49, align 8, !tbaa !5
  %852 = load i64, ptr %75, align 8, !tbaa !9
  %853 = load i64, ptr %64, align 8, !tbaa !9
  %854 = mul nsw i64 %853, 3
  %855 = add nsw i64 %852, %854
  %856 = getelementptr inbounds double, ptr %851, i64 %855
  store double %850, ptr %856, align 8, !tbaa !11
  br label %857

857:                                              ; preds = %849, %845
  br label %858

858:                                              ; preds = %857
  %859 = load i64, ptr %75, align 8, !tbaa !9
  %860 = add nsw i64 %859, 1
  store i64 %860, ptr %75, align 8, !tbaa !9
  br label %769, !llvm.loop !17

861:                                              ; preds = %769
  br label %862

862:                                              ; preds = %861, %681, %674
  %863 = load ptr, ptr %48, align 8, !tbaa !5
  %864 = load i64, ptr %863, align 8, !tbaa !9
  %865 = icmp sge i64 %864, 1
  br i1 %865, label %866, label %1012

866:                                              ; preds = %862
  %867 = load i64, ptr %87, align 8, !tbaa !9
  %868 = icmp sge i64 %867, 2
  br i1 %868, label %869, label %1012

869:                                              ; preds = %866
  %870 = call double @dlamch_(ptr noundef @.str)
  %871 = call double @sqrt(double noundef %870) #4
  store double %871, ptr %79, align 8, !tbaa !11
  %872 = load ptr, ptr %34, align 8, !tbaa !5
  %873 = load i64, ptr %872, align 8, !tbaa !9
  store i64 %873, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %874

874:                                              ; preds = %1008, %869
  %875 = load i64, ptr %75, align 8, !tbaa !9
  %876 = load i64, ptr %68, align 8, !tbaa !9
  %877 = icmp sle i64 %875, %876
  br i1 %877, label %878, label %1011

878:                                              ; preds = %874
  %879 = load ptr, ptr %50, align 8, !tbaa !5
  %880 = load i64, ptr %75, align 8, !tbaa !9
  %881 = load i64, ptr %66, align 8, !tbaa !9
  %882 = shl i64 %881, 1
  %883 = add nsw i64 %880, %882
  %884 = getelementptr inbounds double, ptr %879, i64 %883
  %885 = load double, ptr %884, align 8, !tbaa !11
  %886 = load double, ptr %79, align 8, !tbaa !11
  %887 = fcmp olt double %885, %886
  br i1 %887, label %888, label %915

888:                                              ; preds = %878
  %889 = load ptr, ptr %29, align 8, !tbaa !5
  %890 = load ptr, ptr %31, align 8, !tbaa !5
  %891 = load ptr, ptr %32, align 8, !tbaa !5
  %892 = load ptr, ptr %33, align 8, !tbaa !5
  %893 = load ptr, ptr %35, align 8, !tbaa !5
  %894 = load i64, ptr %57, align 8, !tbaa !9
  %895 = getelementptr inbounds double, ptr %893, i64 %894
  %896 = load ptr, ptr %36, align 8, !tbaa !5
  %897 = load ptr, ptr %37, align 8, !tbaa !5
  %898 = load i64, ptr %59, align 8, !tbaa !9
  %899 = getelementptr inbounds double, ptr %897, i64 %898
  %900 = load ptr, ptr %38, align 8, !tbaa !5
  %901 = load ptr, ptr %39, align 8, !tbaa !5
  %902 = getelementptr inbounds i64, ptr %901, i64 1
  %903 = load ptr, ptr %44, align 8, !tbaa !5
  %904 = load i64, ptr %75, align 8, !tbaa !9
  %905 = load i64, ptr %62, align 8, !tbaa !9
  %906 = mul nsw i64 %904, %905
  %907 = add nsw i64 %906, 1
  %908 = getelementptr inbounds double, ptr %903, i64 %907
  %909 = load ptr, ptr %55, align 8, !tbaa !5
  %910 = load ptr, ptr %53, align 8, !tbaa !5
  %911 = getelementptr inbounds double, ptr %910, i64 1
  %912 = load ptr, ptr %54, align 8, !tbaa !5
  %913 = getelementptr inbounds i64, ptr %912, i64 1
  %914 = call double @dla_gbrcond__(ptr noundef %889, ptr noundef %890, ptr noundef %891, ptr noundef %892, ptr noundef %895, ptr noundef %896, ptr noundef %899, ptr noundef %900, ptr noundef %902, ptr noundef @c__1, ptr noundef %908, ptr noundef %909, ptr noundef %911, ptr noundef %913, i64 noundef 1)
  store double %914, ptr %76, align 8, !tbaa !11
  br label %916

915:                                              ; preds = %878
  store double 0.000000e+00, ptr %76, align 8, !tbaa !11
  br label %916

916:                                              ; preds = %915, %888
  %917 = load ptr, ptr %48, align 8, !tbaa !5
  %918 = load i64, ptr %917, align 8, !tbaa !9
  %919 = icmp sge i64 %918, 2
  br i1 %919, label %920, label %936

920:                                              ; preds = %916
  %921 = load ptr, ptr %50, align 8, !tbaa !5
  %922 = load i64, ptr %75, align 8, !tbaa !9
  %923 = load i64, ptr %66, align 8, !tbaa !9
  %924 = shl i64 %923, 1
  %925 = add nsw i64 %922, %924
  %926 = getelementptr inbounds double, ptr %921, i64 %925
  %927 = load double, ptr %926, align 8, !tbaa !11
  %928 = fcmp ogt double %927, 1.000000e+00
  br i1 %928, label %929, label %936

929:                                              ; preds = %920
  %930 = load ptr, ptr %50, align 8, !tbaa !5
  %931 = load i64, ptr %75, align 8, !tbaa !9
  %932 = load i64, ptr %66, align 8, !tbaa !9
  %933 = shl i64 %932, 1
  %934 = add nsw i64 %931, %933
  %935 = getelementptr inbounds double, ptr %930, i64 %934
  store double 1.000000e+00, ptr %935, align 8, !tbaa !11
  br label %936

936:                                              ; preds = %929, %920, %916
  %937 = load double, ptr %76, align 8, !tbaa !11
  %938 = load double, ptr %71, align 8, !tbaa !11
  %939 = fcmp olt double %937, %938
  br i1 %939, label %940, label %971

940:                                              ; preds = %936
  %941 = load ptr, ptr %50, align 8, !tbaa !5
  %942 = load i64, ptr %75, align 8, !tbaa !9
  %943 = load i64, ptr %66, align 8, !tbaa !9
  %944 = shl i64 %943, 1
  %945 = add nsw i64 %942, %944
  %946 = getelementptr inbounds double, ptr %941, i64 %945
  store double 1.000000e+00, ptr %946, align 8, !tbaa !11
  %947 = load ptr, ptr %50, align 8, !tbaa !5
  %948 = load i64, ptr %75, align 8, !tbaa !9
  %949 = load i64, ptr %66, align 8, !tbaa !9
  %950 = add nsw i64 %948, %949
  %951 = getelementptr inbounds double, ptr %947, i64 %950
  store double 0.000000e+00, ptr %951, align 8, !tbaa !11
  %952 = load ptr, ptr %52, align 8, !tbaa !5
  %953 = getelementptr inbounds double, ptr %952, i64 3
  %954 = load double, ptr %953, align 8, !tbaa !11
  %955 = fcmp oeq double %954, 1.000000e+00
  br i1 %955, label %956, label %970

956:                                              ; preds = %940
  %957 = load ptr, ptr %55, align 8, !tbaa !5
  %958 = load i64, ptr %957, align 8, !tbaa !9
  %959 = load ptr, ptr %31, align 8, !tbaa !5
  %960 = load i64, ptr %959, align 8, !tbaa !9
  %961 = load i64, ptr %75, align 8, !tbaa !9
  %962 = add nsw i64 %960, %961
  %963 = icmp slt i64 %958, %962
  br i1 %963, label %964, label %970

964:                                              ; preds = %956
  %965 = load ptr, ptr %31, align 8, !tbaa !5
  %966 = load i64, ptr %965, align 8, !tbaa !9
  %967 = load i64, ptr %75, align 8, !tbaa !9
  %968 = add nsw i64 %966, %967
  %969 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %968, ptr %969, align 8, !tbaa !9
  br label %970

970:                                              ; preds = %964, %956, %940
  br label %995

971:                                              ; preds = %936
  %972 = load ptr, ptr %50, align 8, !tbaa !5
  %973 = load i64, ptr %75, align 8, !tbaa !9
  %974 = load i64, ptr %66, align 8, !tbaa !9
  %975 = shl i64 %974, 1
  %976 = add nsw i64 %973, %975
  %977 = getelementptr inbounds double, ptr %972, i64 %976
  %978 = load double, ptr %977, align 8, !tbaa !11
  %979 = load double, ptr %73, align 8, !tbaa !11
  %980 = fcmp olt double %978, %979
  br i1 %980, label %981, label %994

981:                                              ; preds = %971
  %982 = load double, ptr %73, align 8, !tbaa !11
  %983 = load ptr, ptr %50, align 8, !tbaa !5
  %984 = load i64, ptr %75, align 8, !tbaa !9
  %985 = load i64, ptr %66, align 8, !tbaa !9
  %986 = shl i64 %985, 1
  %987 = add nsw i64 %984, %986
  %988 = getelementptr inbounds double, ptr %983, i64 %987
  store double %982, ptr %988, align 8, !tbaa !11
  %989 = load ptr, ptr %50, align 8, !tbaa !5
  %990 = load i64, ptr %75, align 8, !tbaa !9
  %991 = load i64, ptr %66, align 8, !tbaa !9
  %992 = add nsw i64 %990, %991
  %993 = getelementptr inbounds double, ptr %989, i64 %992
  store double 1.000000e+00, ptr %993, align 8, !tbaa !11
  br label %994

994:                                              ; preds = %981, %971
  br label %995

995:                                              ; preds = %994, %970
  %996 = load ptr, ptr %48, align 8, !tbaa !5
  %997 = load i64, ptr %996, align 8, !tbaa !9
  %998 = icmp sge i64 %997, 3
  br i1 %998, label %999, label %1007

999:                                              ; preds = %995
  %1000 = load double, ptr %76, align 8, !tbaa !11
  %1001 = load ptr, ptr %50, align 8, !tbaa !5
  %1002 = load i64, ptr %75, align 8, !tbaa !9
  %1003 = load i64, ptr %66, align 8, !tbaa !9
  %1004 = mul nsw i64 %1003, 3
  %1005 = add nsw i64 %1002, %1004
  %1006 = getelementptr inbounds double, ptr %1001, i64 %1005
  store double %1000, ptr %1006, align 8, !tbaa !11
  br label %1007

1007:                                             ; preds = %999, %995
  br label %1008

1008:                                             ; preds = %1007
  %1009 = load i64, ptr %75, align 8, !tbaa !9
  %1010 = add nsw i64 %1009, 1
  store i64 %1010, ptr %75, align 8, !tbaa !9
  br label %874, !llvm.loop !18

1011:                                             ; preds = %874
  br label %1012

1012:                                             ; preds = %1011, %866, %862
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1013

1013:                                             ; preds = %1012, %450, %371
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  %1014 = load i32, ptr %28, align 4
  ret i32 %1014
}

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

declare i64 @ilatrans_(ptr noundef) #2

declare double @dlamch_(ptr noundef) #2

declare i64 @lsame_(ptr noundef, ptr noundef) #2

declare i32 @xerbla_(ptr noundef, ptr noundef) #2

declare double @dlangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @dgbcon_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i64 @ilaprec_(ptr noundef) #2

declare i32 @dla_gbrfsx_extended__(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

declare double @dla_gbrcond__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}


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

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__0 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dgbrfsx_(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 nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21, ptr nocapture noundef readonly %22, ptr nocapture noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26) local_unnamed_addr #0 {
  %28 = ptrtoint ptr %21 to i64
  %29 = ptrtoint ptr %18 to i64
  %30 = ptrtoint ptr %20 to i64
  %31 = ptrtoint ptr %21 to i64
  %32 = ptrtoint ptr %18 to i64
  %33 = ptrtoint ptr %20 to i64
  %34 = alloca i64, align 8
  %35 = alloca double, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca [1 x i8], align 1
  %39 = alloca i64, align 8
  %40 = alloca double, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #6
  %46 = load i64, ptr %5, align 8, !tbaa !5
  %47 = xor i64 %46, -1
  %48 = getelementptr inbounds double, ptr %21, i64 %47
  %49 = getelementptr inbounds double, ptr %20, i64 %47
  %50 = load i64, ptr %16, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds double, ptr %15, i64 %51
  %53 = getelementptr inbounds i8, ptr %18, i64 -8
  store i64 0, ptr %26, align 8, !tbaa !5
  %54 = tail call i64 @ilatrans_(ptr noundef %0) #6
  store i64 %54, ptr %37, align 8, !tbaa !5
  %55 = load i64, ptr %22, align 8, !tbaa !5
  %56 = icmp sgt i64 %55, 0
  br i1 %56, label %57, label %63

57:                                               ; preds = %27
  %58 = load double, ptr %23, align 8, !tbaa !9
  %59 = fcmp olt double %58, 0.000000e+00
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  store double 1.000000e+00, ptr %23, align 8, !tbaa !9
  br label %63

61:                                               ; preds = %57
  %62 = fptosi double %58 to i64
  br label %63

63:                                               ; preds = %60, %61, %27
  %.0389 = phi i64 [ 1, %60 ], [ %62, %61 ], [ 1, %27 ]
  %64 = load i64, ptr %2, align 8, !tbaa !5
  %65 = sitofp i64 %64 to double
  %66 = tail call double @dlamch_(ptr noundef nonnull @.str) #6
  %67 = fmul double %66, %65
  store i64 10, ptr %43, align 8, !tbaa !5
  store double 5.000000e-01, ptr %45, align 8, !tbaa !9
  store double 2.500000e-01, ptr %35, align 8, !tbaa !9
  store i64 0, ptr %39, align 8, !tbaa !5
  %68 = load i64, ptr %22, align 8, !tbaa !5
  %69 = icmp sgt i64 %68, 1
  br i1 %69, label %70, label %.thread

70:                                               ; preds = %63
  %71 = getelementptr inbounds i8, ptr %23, i64 8
  %72 = load double, ptr %71, align 8, !tbaa !9
  %73 = fcmp olt double %72, 0.000000e+00
  br i1 %73, label %74, label %75

74:                                               ; preds = %70
  store double 1.000000e+01, ptr %71, align 8, !tbaa !9
  br label %77

75:                                               ; preds = %70
  %76 = fptosi double %72 to i64
  store i64 %76, ptr %43, align 8, !tbaa !5
  br label %77

77:                                               ; preds = %74, %75
  %.not = icmp eq i64 %68, 2
  br i1 %.not, label %.thread, label %78

78:                                               ; preds = %77
  %79 = getelementptr inbounds i8, ptr %23, i64 16
  %80 = load double, ptr %79, align 8, !tbaa !9
  %81 = fcmp olt double %80, 0.000000e+00
  br i1 %81, label %82, label %83

82:                                               ; preds = %78
  store double 1.000000e+00, ptr %79, align 8, !tbaa !9
  br label %.thread

83:                                               ; preds = %78
  %84 = fcmp oeq double %80, 0.000000e+00
  %85 = zext i1 %84 to i64
  store i64 %85, ptr %39, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %63, %83, %82, %77
  %86 = phi i64 [ 0, %63 ], [ %85, %83 ], [ 0, %82 ], [ 0, %77 ]
  %87 = icmp eq i64 %.0389, 0
  br i1 %87, label %91, label %88

88:                                               ; preds = %.thread
  %89 = load i64, ptr %19, align 8, !tbaa !5
  %90 = icmp eq i64 %89, 0
  br i1 %90, label %91, label %92

91:                                               ; preds = %88, %.thread
  store i64 0, ptr %44, align 8, !tbaa !5
  br label %95

92:                                               ; preds = %88
  %.not403 = icmp eq i64 %86, 0
  br i1 %.not403, label %94, label %93

93:                                               ; preds = %92
  store i64 1, ptr %44, align 8, !tbaa !5
  br label %95

94:                                               ; preds = %92
  store i64 2, ptr %44, align 8, !tbaa !5
  br label %95

95:                                               ; preds = %93, %94, %91
  %96 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %97 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #6
  %.not404 = icmp eq i64 %97, 0
  br i1 %.not404, label %98, label %101

98:                                               ; preds = %95
  %99 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %100 = icmp ne i64 %99, 0
  br label %101

101:                                              ; preds = %98, %95
  %102 = phi i1 [ true, %95 ], [ %100, %98 ]
  %103 = zext i1 %102 to i64
  store i64 %103, ptr %42, align 8, !tbaa !5
  %104 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not405 = icmp eq i64 %104, 0
  br i1 %.not405, label %105, label %108

105:                                              ; preds = %101
  %106 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %107 = icmp ne i64 %106, 0
  br label %108

108:                                              ; preds = %105, %101
  %109 = phi i1 [ true, %101 ], [ %107, %105 ]
  %110 = zext i1 %109 to i64
  store i64 %110, ptr %41, align 8, !tbaa !5
  %111 = icmp eq i64 %54, -1
  br i1 %111, label %.thread424.sink.split, label %112

112:                                              ; preds = %108
  %or.cond = select i1 %102, i1 true, i1 %109
  br i1 %or.cond, label %115, label %113

113:                                              ; preds = %112
  %114 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not406 = icmp eq i64 %114, 0
  br i1 %.not406, label %.thread424.sink.split, label %115

115:                                              ; preds = %113, %112
  %116 = load i64, ptr %2, align 8, !tbaa !5
  %117 = icmp slt i64 %116, 0
  br i1 %117, label %.thread424.sink.split, label %118

118:                                              ; preds = %115
  %119 = load i64, ptr %3, align 8, !tbaa !5
  %120 = icmp slt i64 %119, 0
  br i1 %120, label %.thread424.sink.split, label %121

121:                                              ; preds = %118
  %122 = load i64, ptr %4, align 8, !tbaa !5
  %123 = icmp slt i64 %122, 0
  br i1 %123, label %.thread424.sink.split, label %124

124:                                              ; preds = %121
  %125 = load i64, ptr %5, align 8, !tbaa !5
  %126 = icmp slt i64 %125, 0
  br i1 %126, label %.thread424.sink.split, label %127

127:                                              ; preds = %124
  %128 = load i64, ptr %7, align 8, !tbaa !5
  %129 = add nuw nsw i64 %122, %119
  %.not407 = icmp sgt i64 %128, %129
  br i1 %.not407, label %130, label %.thread424.sink.split

130:                                              ; preds = %127
  %131 = load i64, ptr %9, align 8, !tbaa !5
  %132 = shl nuw i64 %119, 1
  %133 = add nsw i64 %122, %132
  %.not408 = icmp sgt i64 %131, %133
  br i1 %.not408, label %134, label %.thread424.sink.split

134:                                              ; preds = %130
  %135 = load i64, ptr %14, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %116, i64 1)
  %136 = icmp slt i64 %135, %spec.select
  br i1 %136, label %.thread424.sink.split, label %137

137:                                              ; preds = %134
  %138 = load i64, ptr %16, align 8, !tbaa !5
  %139 = icmp slt i64 %138, %spec.select
  br i1 %139, label %.thread424.sink.split, label %140

140:                                              ; preds = %137
  %.pr = load i64, ptr %26, align 8, !tbaa !5
  %.not409 = icmp eq i64 %.pr, 0
  br i1 %.not409, label %144, label %.thread424

.thread424.sink.split:                            ; preds = %137, %134, %130, %127, %124, %121, %118, %115, %113, %108
  %.sink = phi i64 [ -1, %108 ], [ -2, %113 ], [ -3, %115 ], [ -4, %118 ], [ -5, %121 ], [ -6, %124 ], [ -8, %127 ], [ -10, %130 ], [ -13, %134 ], [ -15, %137 ]
  store i64 %.sink, ptr %26, align 8, !tbaa !5
  br label %.thread424

.thread424:                                       ; preds = %.thread424.sink.split, %140
  %141 = phi i64 [ %.pr, %140 ], [ %.sink, %.thread424.sink.split ]
  %142 = sub nsw i64 0, %141
  store i64 %142, ptr %34, align 8, !tbaa !5
  %143 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %34) #6
  br label %.loopexit

144:                                              ; preds = %140
  %145 = icmp eq i64 %116, 0
  br i1 %145, label %148, label %146

146:                                              ; preds = %144
  %147 = icmp eq i64 %125, 0
  br i1 %147, label %.thread460, label %.lr.ph

.thread460:                                       ; preds = %146
  store double 1.000000e+00, ptr %17, align 8, !tbaa !9
  br label %.loopexit

148:                                              ; preds = %144
  store double 1.000000e+00, ptr %17, align 8, !tbaa !9
  %.not422442 = icmp eq i64 %125, 0
  br i1 %.not422442, label %.loopexit, label %.lr.ph445

.lr.ph445:                                        ; preds = %148
  %149 = load i64, ptr %19, align 8, !tbaa !5
  %150 = icmp sgt i64 %149, 0
  br i1 %150, label %.lr.ph445.split.us.preheader, label %.lr.ph445.split.preheader

.lr.ph445.split.us.preheader:                     ; preds = %.lr.ph445
  %min.iters.check494 = icmp ult i64 %125, 10
  br i1 %min.iters.check494, label %.lr.ph445.split.us.preheader505, label %vector.memcheck486

.lr.ph445.split.us.preheader505:                  ; preds = %middle.block492, %vector.memcheck486, %.lr.ph445.split.us.preheader
  %.0387443.us.ph = phi i64 [ 1, %vector.memcheck486 ], [ 1, %.lr.ph445.split.us.preheader ], [ %ind.end498, %middle.block492 ]
  %xtraiter511 = and i64 %125, 1
  %lcmp.mod512.not = icmp eq i64 %xtraiter511, 0
  br i1 %lcmp.mod512.not, label %.lr.ph445.split.us.prol.loopexit, label %.lr.ph445.split.us.prol

.lr.ph445.split.us.prol:                          ; preds = %.lr.ph445.split.us.preheader505
  %151 = getelementptr inbounds double, ptr %53, i64 %.0387443.us.ph
  store double 0.000000e+00, ptr %151, align 8, !tbaa !9
  %152 = add nsw i64 %.0387443.us.ph, %46
  %153 = getelementptr inbounds double, ptr %49, i64 %152
  store double 1.000000e+00, ptr %153, align 8, !tbaa !9
  %154 = getelementptr inbounds double, ptr %48, i64 %152
  store double 1.000000e+00, ptr %154, align 8, !tbaa !9
  %155 = add nuw i64 %.0387443.us.ph, 1
  br label %.lr.ph445.split.us.prol.loopexit

.lr.ph445.split.us.prol.loopexit:                 ; preds = %.lr.ph445.split.us.prol, %.lr.ph445.split.us.preheader505
  %.0387443.us.unr = phi i64 [ %.0387443.us.ph, %.lr.ph445.split.us.preheader505 ], [ %155, %.lr.ph445.split.us.prol ]
  %156 = icmp eq i64 %125, %.0387443.us.ph
  br i1 %156, label %.loopexit, label %.lr.ph445.split.us

vector.memcheck486:                               ; preds = %.lr.ph445.split.us.preheader
  %157 = sub i64 %30, %29
  %diff.check487 = icmp ult i64 %157, 32
  %158 = sub i64 %28, %29
  %diff.check488 = icmp ult i64 %158, 32
  %conflict.rdx489 = or i1 %diff.check487, %diff.check488
  %159 = sub i64 %28, %30
  %diff.check490 = icmp ult i64 %159, 32
  %conflict.rdx491 = or i1 %conflict.rdx489, %diff.check490
  br i1 %conflict.rdx491, label %.lr.ph445.split.us.preheader505, label %vector.ph495

vector.ph495:                                     ; preds = %vector.memcheck486
  %n.vec497 = and i64 %125, 9223372036854775804
  %ind.end498 = or disjoint i64 %n.vec497, 1
  br label %vector.body500

vector.body500:                                   ; preds = %vector.body500, %vector.ph495
  %index501 = phi i64 [ 0, %vector.ph495 ], [ %index.next503, %vector.body500 ]
  %offset.idx502 = or disjoint i64 %index501, 1
  %160 = getelementptr double, ptr %18, i64 %index501
  %161 = getelementptr inbounds i8, ptr %160, i64 16
  store <2 x double> zeroinitializer, ptr %160, align 8, !tbaa !9
  store <2 x double> zeroinitializer, ptr %161, align 8, !tbaa !9
  %162 = add nsw i64 %offset.idx502, %46
  %163 = getelementptr inbounds double, ptr %49, i64 %162
  %164 = getelementptr inbounds i8, ptr %163, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %163, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %164, align 8, !tbaa !9
  %165 = getelementptr inbounds double, ptr %48, i64 %162
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %165, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %166, align 8, !tbaa !9
  %index.next503 = add nuw i64 %index501, 4
  %167 = icmp eq i64 %index.next503, %n.vec497
  br i1 %167, label %middle.block492, label %vector.body500, !llvm.loop !11

middle.block492:                                  ; preds = %vector.body500
  %cmp.n504 = icmp eq i64 %125, %n.vec497
  br i1 %cmp.n504, label %.loopexit, label %.lr.ph445.split.us.preheader505

.lr.ph445.split.preheader:                        ; preds = %.lr.ph445
  %168 = shl nuw i64 %125, 3
  tail call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 %168, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph445.split.us:                               ; preds = %.lr.ph445.split.us.prol.loopexit, %.lr.ph445.split.us
  %.0387443.us = phi i64 [ %177, %.lr.ph445.split.us ], [ %.0387443.us.unr, %.lr.ph445.split.us.prol.loopexit ]
  %169 = getelementptr inbounds double, ptr %53, i64 %.0387443.us
  store double 0.000000e+00, ptr %169, align 8, !tbaa !9
  %170 = add nsw i64 %.0387443.us, %46
  %171 = getelementptr inbounds double, ptr %49, i64 %170
  store double 1.000000e+00, ptr %171, align 8, !tbaa !9
  %172 = getelementptr inbounds double, ptr %48, i64 %170
  store double 1.000000e+00, ptr %172, align 8, !tbaa !9
  %173 = add nuw i64 %.0387443.us, 1
  %174 = getelementptr double, ptr %18, i64 %.0387443.us
  store double 0.000000e+00, ptr %174, align 8, !tbaa !9
  %175 = getelementptr inbounds double, ptr %20, i64 %.0387443.us
  store double 1.000000e+00, ptr %175, align 8, !tbaa !9
  %176 = getelementptr inbounds double, ptr %21, i64 %.0387443.us
  store double 1.000000e+00, ptr %176, align 8, !tbaa !9
  %177 = add nuw i64 %.0387443.us, 2
  %exitcond453.not.1 = icmp eq i64 %173, %125
  br i1 %exitcond453.not.1, label %.loopexit, label %.lr.ph445.split.us, !llvm.loop !15

.lr.ph:                                           ; preds = %146
  store double 0.000000e+00, ptr %17, align 8, !tbaa !9
  %178 = load i64, ptr %19, align 8, !tbaa !5
  %179 = icmp sgt i64 %178, 0
  br i1 %179, label %.lr.ph.split.us.preheader, label %.lr.ph.split.preheader

.lr.ph.split.preheader:                           ; preds = %.lr.ph
  %min.iters.check = icmp ult i64 %125, 4
  br i1 %min.iters.check, label %.lr.ph.split.preheader509, label %vector.ph

.lr.ph.split.preheader509:                        ; preds = %middle.block, %.lr.ph.split.preheader
  %.1388429.ph = phi i64 [ 1, %.lr.ph.split.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph.split

vector.ph:                                        ; preds = %.lr.ph.split.preheader
  %n.vec = and i64 %125, 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 ]
  %180 = getelementptr double, ptr %18, i64 %index
  %181 = getelementptr inbounds i8, ptr %180, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %180, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %181, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %182 = icmp eq i64 %index.next, %n.vec
  br i1 %182, label %middle.block, label %vector.body, !llvm.loop !16

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %125, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.split.preheader509

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %min.iters.check475 = icmp ult i64 %125, 10
  br i1 %min.iters.check475, label %.lr.ph.split.us.preheader508, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.split.us.preheader
  %183 = sub i64 %33, %32
  %diff.check = icmp ult i64 %183, 32
  %184 = sub i64 %31, %32
  %diff.check470 = icmp ult i64 %184, 32
  %conflict.rdx = or i1 %diff.check, %diff.check470
  %185 = sub i64 %31, %33
  %diff.check471 = icmp ult i64 %185, 32
  %conflict.rdx472 = or i1 %conflict.rdx, %diff.check471
  br i1 %conflict.rdx472, label %.lr.ph.split.us.preheader508, label %vector.ph476

vector.ph476:                                     ; preds = %vector.memcheck
  %n.vec478 = and i64 %125, 9223372036854775804
  %ind.end479 = or disjoint i64 %n.vec478, 1
  br label %vector.body481

vector.body481:                                   ; preds = %vector.body481, %vector.ph476
  %index482 = phi i64 [ 0, %vector.ph476 ], [ %index.next484, %vector.body481 ]
  %offset.idx483 = or disjoint i64 %index482, 1
  %186 = getelementptr double, ptr %18, i64 %index482
  %187 = getelementptr inbounds i8, ptr %186, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %186, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %187, align 8, !tbaa !9
  %188 = add nsw i64 %offset.idx483, %46
  %189 = getelementptr inbounds double, ptr %49, i64 %188
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %189, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %190, align 8, !tbaa !9
  %191 = getelementptr inbounds double, ptr %48, i64 %188
  %192 = getelementptr inbounds i8, ptr %191, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %191, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %192, align 8, !tbaa !9
  %index.next484 = add nuw i64 %index482, 4
  %193 = icmp eq i64 %index.next484, %n.vec478
  br i1 %193, label %middle.block473, label %vector.body481, !llvm.loop !17

middle.block473:                                  ; preds = %vector.body481
  %cmp.n485 = icmp eq i64 %125, %n.vec478
  br i1 %cmp.n485, label %._crit_edge, label %.lr.ph.split.us.preheader508

.lr.ph.split.us.preheader508:                     ; preds = %middle.block473, %vector.memcheck, %.lr.ph.split.us.preheader
  %.1388429.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.split.us.preheader ], [ %ind.end479, %middle.block473 ]
  %xtraiter = and i64 %125, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.split.us.prol.loopexit, label %.lr.ph.split.us.prol

.lr.ph.split.us.prol:                             ; preds = %.lr.ph.split.us.preheader508
  %194 = getelementptr inbounds double, ptr %53, i64 %.1388429.us.ph
  store double 1.000000e+00, ptr %194, align 8, !tbaa !9
  %195 = add nsw i64 %.1388429.us.ph, %46
  %196 = getelementptr inbounds double, ptr %49, i64 %195
  store double 1.000000e+00, ptr %196, align 8, !tbaa !9
  %197 = getelementptr inbounds double, ptr %48, i64 %195
  store double 1.000000e+00, ptr %197, align 8, !tbaa !9
  %198 = add nuw i64 %.1388429.us.ph, 1
  br label %.lr.ph.split.us.prol.loopexit

.lr.ph.split.us.prol.loopexit:                    ; preds = %.lr.ph.split.us.prol, %.lr.ph.split.us.preheader508
  %.1388429.us.unr = phi i64 [ %.1388429.us.ph, %.lr.ph.split.us.preheader508 ], [ %198, %.lr.ph.split.us.prol ]
  %199 = icmp eq i64 %125, %.1388429.us.ph
  br i1 %199, label %._crit_edge, label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us
  %.1388429.us = phi i64 [ %208, %.lr.ph.split.us ], [ %.1388429.us.unr, %.lr.ph.split.us.prol.loopexit ]
  %200 = getelementptr inbounds double, ptr %53, i64 %.1388429.us
  store double 1.000000e+00, ptr %200, align 8, !tbaa !9
  %201 = add nsw i64 %.1388429.us, %46
  %202 = getelementptr inbounds double, ptr %49, i64 %201
  store double 1.000000e+00, ptr %202, align 8, !tbaa !9
  %203 = getelementptr inbounds double, ptr %48, i64 %201
  store double 1.000000e+00, ptr %203, align 8, !tbaa !9
  %204 = add nuw i64 %.1388429.us, 1
  %205 = getelementptr double, ptr %18, i64 %.1388429.us
  store double 1.000000e+00, ptr %205, align 8, !tbaa !9
  %206 = getelementptr inbounds double, ptr %20, i64 %.1388429.us
  store double 1.000000e+00, ptr %206, align 8, !tbaa !9
  %207 = getelementptr inbounds double, ptr %21, i64 %.1388429.us
  store double 1.000000e+00, ptr %207, align 8, !tbaa !9
  %208 = add nuw i64 %.1388429.us, 2
  %exitcond450.not.1 = icmp eq i64 %204, %125
  br i1 %exitcond450.not.1, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !18

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader509, %.lr.ph.split
  %.1388429 = phi i64 [ %210, %.lr.ph.split ], [ %.1388429.ph, %.lr.ph.split.preheader509 ]
  %209 = getelementptr inbounds double, ptr %53, i64 %.1388429
  store double 1.000000e+00, ptr %209, align 8, !tbaa !9
  %210 = add nuw i64 %.1388429, 1
  %exitcond.not = icmp eq i64 %.1388429, %125
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !19

._crit_edge:                                      ; preds = %.lr.ph.split, %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us, %middle.block, %middle.block473
  %211 = icmp ne i64 %96, 0
  %. = select i1 %211, i8 73, i8 49
  store i8 %., ptr %38, align 1, !tbaa !20
  %212 = call double @dlangb_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %24) #6
  store double %212, ptr %40, align 8, !tbaa !9
  %213 = call i32 @dgbcon_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %40, ptr noundef nonnull %17, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26) #6
  br i1 %87, label %223, label %214

214:                                              ; preds = %._crit_edge
  %215 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %215, ptr %36, align 8, !tbaa !5
  %216 = load i64, ptr %2, align 8, !tbaa !5
  %217 = getelementptr double, ptr %24, i64 %216
  %.idx412 = shl i64 %216, 4
  %218 = getelementptr i8, ptr %24, i64 %.idx412
  br i1 %211, label %219, label %221

219:                                              ; preds = %214
  %220 = call i32 @dla_gbrfsx_extended__(ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %41, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %217, ptr noundef %24, ptr noundef %218, ptr noundef %24, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %39, ptr noundef nonnull %26) #6
  br label %223

221:                                              ; preds = %214
  %222 = call i32 @dla_gbrfsx_extended__(ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %217, ptr noundef %24, ptr noundef %218, ptr noundef %24, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %39, ptr noundef nonnull %26) #6
  br label %223

223:                                              ; preds = %219, %221, %._crit_edge
  %224 = load i64, ptr %2, align 8, !tbaa !5
  %225 = sitofp i64 %224 to double
  %226 = call double @sqrt(double noundef %225) #6
  %227 = fcmp ole double %226, 1.000000e+01
  %228 = select i1 %227, double 1.000000e+01, double %226
  %229 = call double @dlamch_(ptr noundef nonnull @.str) #6
  %230 = fmul double %229, %228
  %231 = load i64, ptr %19, align 8, !tbaa !5
  %232 = icmp sgt i64 %231, 0
  %233 = load i64, ptr %44, align 8
  %234 = icmp sgt i64 %233, 0
  %or.cond3 = select i1 %232, i1 %234, i1 false
  br i1 %or.cond3, label %235, label %.loopexit427

235:                                              ; preds = %223
  %236 = load i64, ptr %41, align 8, !tbaa !5
  %237 = icmp ne i64 %236, 0
  %or.cond5 = and i1 %211, %237
  br i1 %or.cond5, label %238, label %240

238:                                              ; preds = %235
  %239 = call double @dla_gbrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %12, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %247

240:                                              ; preds = %235
  %241 = load i64, ptr %42, align 8, !tbaa !5
  %242 = icmp eq i64 %241, 0
  %or.cond7 = or i1 %211, %242
  br i1 %or.cond7, label %245, label %243

243:                                              ; preds = %240
  %244 = call double @dla_gbrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %11, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %247

245:                                              ; preds = %240
  %246 = call double @dla_gbrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c__0, ptr noundef %11, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %247

247:                                              ; preds = %243, %245, %238
  %.0386 = phi double [ %239, %238 ], [ %246, %245 ], [ %244, %243 ]
  %248 = load i64, ptr %5, align 8, !tbaa !5
  %.not413430 = icmp slt i64 %248, 1
  br i1 %.not413430, label %..loopexit427_crit_edge, label %.lr.ph433

..loopexit427_crit_edge:                          ; preds = %247
  %.pre458 = load i64, ptr %19, align 8, !tbaa !5
  br label %.loopexit427

.lr.ph433:                                        ; preds = %247
  %.idx417 = shl i64 %46, 4
  %invariant.gep = getelementptr i8, ptr %49, i64 %.idx417
  %249 = fcmp olt double %.0386, %67
  %.idx421 = mul i64 %46, 24
  %invariant.gep434 = getelementptr i8, ptr %49, i64 %.idx421
  %.pre456 = load i64, ptr %19, align 8, !tbaa !5
  br i1 %249, label %.lr.ph433.split.us, label %.lr.ph433.split.preheader

.lr.ph433.split.preheader:                        ; preds = %.lr.ph433
  %250 = icmp sgt i64 %.pre456, 1
  %invariant.gep465 = getelementptr i8, ptr %49, i64 %.idx417
  %251 = icmp sgt i64 %.pre456, 2
  br label %.lr.ph433.split

.lr.ph433.split.us:                               ; preds = %.lr.ph433, %264
  %252 = phi i64 [ %261, %264 ], [ %.pre456, %.lr.ph433 ]
  %.2431.us = phi i64 [ %265, %264 ], [ 1, %.lr.ph433 ]
  %253 = getelementptr double, ptr %49, i64 %.2431.us
  %254 = getelementptr i8, ptr %253, i64 %.idx417
  store double 1.000000e+00, ptr %254, align 8, !tbaa !9
  %255 = getelementptr double, ptr %253, i64 %46
  store double 0.000000e+00, ptr %255, align 8, !tbaa !9
  %256 = load i64, ptr %26, align 8, !tbaa !5
  %257 = load i64, ptr %2, align 8, !tbaa !5
  %.not420.us = icmp sgt i64 %256, %257
  br i1 %.not420.us, label %260, label %258

258:                                              ; preds = %.lr.ph433.split.us
  %259 = add nsw i64 %257, %.2431.us
  store i64 %259, ptr %26, align 8, !tbaa !5
  %.pre457 = load i64, ptr %19, align 8, !tbaa !5
  br label %260

260:                                              ; preds = %258, %.lr.ph433.split.us
  %261 = phi i64 [ %.pre457, %258 ], [ %252, %.lr.ph433.split.us ]
  %262 = icmp sgt i64 %261, 2
  br i1 %262, label %263, label %264

263:                                              ; preds = %260
  %gep435.us = getelementptr double, ptr %invariant.gep434, i64 %.2431.us
  store double %.0386, ptr %gep435.us, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %263, %260
  %265 = add nuw i64 %.2431.us, 1
  %exitcond452.not = icmp eq i64 %.2431.us, %248
  br i1 %exitcond452.not, label %.loopexit427, label %.lr.ph433.split.us, !llvm.loop !21

.lr.ph433.split:                                  ; preds = %.lr.ph433.split.preheader, %279
  %.2431 = phi i64 [ %280, %279 ], [ 1, %.lr.ph433.split.preheader ]
  br i1 %250, label %266, label %.lr.ph433.split._crit_edge

.lr.ph433.split._crit_edge:                       ; preds = %.lr.ph433.split
  %gep466 = getelementptr double, ptr %invariant.gep465, i64 %.2431
  %.pre455 = load double, ptr %gep466, align 8, !tbaa !9
  br label %270

266:                                              ; preds = %.lr.ph433.split
  %gep = getelementptr double, ptr %invariant.gep, i64 %.2431
  %267 = load double, ptr %gep, align 8, !tbaa !9
  %268 = fcmp ogt double %267, 1.000000e+00
  br i1 %268, label %269, label %270

269:                                              ; preds = %266
  store double 1.000000e+00, ptr %gep, align 8, !tbaa !9
  br label %270

270:                                              ; preds = %.lr.ph433.split._crit_edge, %269, %266
  %271 = phi double [ %.pre455, %.lr.ph433.split._crit_edge ], [ 1.000000e+00, %269 ], [ %267, %266 ]
  %272 = fcmp olt double %271, %230
  br i1 %272, label %273, label %277

273:                                              ; preds = %270
  %274 = getelementptr double, ptr %49, i64 %.2431
  %275 = getelementptr i8, ptr %274, i64 %.idx417
  store double %230, ptr %275, align 8, !tbaa !9
  %276 = getelementptr double, ptr %274, i64 %46
  store double 1.000000e+00, ptr %276, align 8, !tbaa !9
  br label %277

277:                                              ; preds = %270, %273
  br i1 %251, label %278, label %279

278:                                              ; preds = %277
  %gep435 = getelementptr double, ptr %invariant.gep434, i64 %.2431
  store double %.0386, ptr %gep435, align 8, !tbaa !9
  br label %279

279:                                              ; preds = %277, %278
  %280 = add nuw i64 %.2431, 1
  %exitcond451.not = icmp eq i64 %.2431, %248
  br i1 %exitcond451.not, label %.loopexit427, label %.lr.ph433.split, !llvm.loop !21

.loopexit427:                                     ; preds = %279, %264, %..loopexit427_crit_edge, %223
  %281 = phi i64 [ %.pre458, %..loopexit427_crit_edge ], [ %231, %223 ], [ %261, %264 ], [ %.pre456, %279 ]
  %282 = icmp sgt i64 %281, 0
  %283 = load i64, ptr %44, align 8
  %284 = icmp sgt i64 %283, 1
  %or.cond9 = select i1 %282, i1 %284, i1 false
  br i1 %or.cond9, label %285, label %.loopexit

285:                                              ; preds = %.loopexit427
  %286 = call double @dlamch_(ptr noundef nonnull @.str) #6
  %287 = call double @sqrt(double noundef %286) #6
  %288 = load i64, ptr %5, align 8, !tbaa !5
  %invariant.gep436 = getelementptr i8, ptr %52, i64 8
  %.not414438 = icmp slt i64 %288, 1
  br i1 %.not414438, label %.loopexit, label %.lr.ph441

.lr.ph441:                                        ; preds = %285
  %.idx415 = shl i64 %46, 4
  %289 = getelementptr inbounds i8, ptr %23, i64 16
  %.idx416 = mul i64 %46, 24
  br label %290

290:                                              ; preds = %.lr.ph441, %327
  %.3439 = phi i64 [ 1, %.lr.ph441 ], [ %328, %327 ]
  %291 = getelementptr double, ptr %48, i64 %.3439
  %292 = getelementptr i8, ptr %291, i64 %.idx415
  %293 = load double, ptr %292, align 8, !tbaa !9
  %294 = fcmp olt double %293, %287
  br i1 %294, label %295, label %298

295:                                              ; preds = %290
  %296 = mul nsw i64 %.3439, %50
  %gep437 = getelementptr double, ptr %invariant.gep436, i64 %296
  %297 = call double @dla_gbrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %gep437, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  br label %298

298:                                              ; preds = %290, %295
  %.1 = phi double [ %297, %295 ], [ 0.000000e+00, %290 ]
  %299 = load i64, ptr %19, align 8, !tbaa !5
  %300 = icmp sgt i64 %299, 1
  br i1 %300, label %301, label %305

301:                                              ; preds = %298
  %302 = load double, ptr %292, align 8, !tbaa !9
  %303 = fcmp ogt double %302, 1.000000e+00
  br i1 %303, label %304, label %305

304:                                              ; preds = %301
  store double 1.000000e+00, ptr %292, align 8, !tbaa !9
  br label %305

305:                                              ; preds = %304, %301, %298
  %306 = fcmp olt double %.1, %67
  br i1 %306, label %307, label %317

307:                                              ; preds = %305
  store double 1.000000e+00, ptr %292, align 8, !tbaa !9
  %308 = getelementptr double, ptr %291, i64 %46
  store double 0.000000e+00, ptr %308, align 8, !tbaa !9
  %309 = load double, ptr %289, align 8, !tbaa !9
  %310 = fcmp oeq double %309, 1.000000e+00
  br i1 %310, label %311, label %322

311:                                              ; preds = %307
  %312 = load i64, ptr %26, align 8, !tbaa !5
  %313 = load i64, ptr %2, align 8, !tbaa !5
  %314 = add nsw i64 %313, %.3439
  %315 = icmp slt i64 %312, %314
  br i1 %315, label %316, label %322

316:                                              ; preds = %311
  store i64 %314, ptr %26, align 8, !tbaa !5
  %.pre459 = load i64, ptr %19, align 8, !tbaa !5
  br label %322

317:                                              ; preds = %305
  %318 = load double, ptr %292, align 8, !tbaa !9
  %319 = fcmp olt double %318, %230
  br i1 %319, label %320, label %322

320:                                              ; preds = %317
  store double %230, ptr %292, align 8, !tbaa !9
  %321 = getelementptr double, ptr %291, i64 %46
  store double 1.000000e+00, ptr %321, align 8, !tbaa !9
  br label %322

322:                                              ; preds = %317, %320, %307, %311, %316
  %323 = phi i64 [ %299, %317 ], [ %299, %320 ], [ %299, %307 ], [ %299, %311 ], [ %.pre459, %316 ]
  %324 = icmp sgt i64 %323, 2
  br i1 %324, label %325, label %327

325:                                              ; preds = %322
  %326 = getelementptr i8, ptr %291, i64 %.idx416
  store double %.1, ptr %326, align 8, !tbaa !9
  br label %327

327:                                              ; preds = %322, %325
  %328 = add nuw nsw i64 %.3439, 1
  %.not414.not = icmp slt i64 %.3439, %288
  br i1 %.not414.not, label %290, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %327, %.lr.ph445.split.us.prol.loopexit, %.lr.ph445.split.us, %middle.block492, %.thread460, %.lr.ph445.split.preheader, %285, %148, %.loopexit427, %.thread424
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  ret i32 0
}

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

declare i64 @ilatrans_(ptr noundef) local_unnamed_addr #2

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

declare i64 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @xerbla_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @dlangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @dgbcon_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @ilaprec_(ptr noundef) local_unnamed_addr #2

declare i32 @dla_gbrfsx_extended__(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

declare double @dla_gbrcond__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { 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 = distinct !{!11, !12, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !12, !13}
!16 = distinct !{!16, !12, !13, !14}
!17 = distinct !{!17, !12, !13, !14}
!18 = distinct !{!18, !12, !13}
!19 = distinct !{!19, !12, !14, !13}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}


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