; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (dsyrfsx)

; 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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4

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

156:                                              ; preds = %24
  %157 = load ptr, ptr %45, align 8, !tbaa !5
  %158 = getelementptr inbounds double, ptr %157, i64 1
  %159 = load double, ptr %158, align 8, !tbaa !11
  %160 = fcmp olt double %159, 0.000000e+00
  br i1 %160, label %161, label %164

161:                                              ; preds = %156
  %162 = load ptr, ptr %45, align 8, !tbaa !5
  %163 = getelementptr inbounds double, ptr %162, i64 1
  store double 1.000000e+00, ptr %163, align 8, !tbaa !11
  br label %169

164:                                              ; preds = %156
  %165 = load ptr, ptr %45, align 8, !tbaa !5
  %166 = getelementptr inbounds double, ptr %165, i64 1
  %167 = load double, ptr %166, align 8, !tbaa !11
  %168 = fptosi double %167 to i32
  store i32 %168, ptr %68, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %164, %161
  br label %170

170:                                              ; preds = %169, %24
  %171 = load ptr, ptr %27, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = sitofp i32 %172 to double
  %174 = call double @dlamch_(ptr noundef @.str)
  %175 = fmul double %173, %174
  store double %175, ptr %64, align 8, !tbaa !11
  store i32 10, ptr %75, align 4, !tbaa !9
  store double 5.000000e-01, ptr %77, align 8, !tbaa !11
  store double 2.500000e-01, ptr %65, align 8, !tbaa !11
  store i32 0, ptr %69, align 4, !tbaa !9
  %176 = load ptr, ptr %44, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = icmp sge i32 %177, 2
  br i1 %178, label %179, label %195

179:                                              ; preds = %170
  %180 = load ptr, ptr %45, align 8, !tbaa !5
  %181 = getelementptr inbounds double, ptr %180, i64 2
  %182 = load double, ptr %181, align 8, !tbaa !11
  %183 = fcmp olt double %182, 0.000000e+00
  br i1 %183, label %184, label %189

184:                                              ; preds = %179
  %185 = load i32, ptr %75, align 4, !tbaa !9
  %186 = sitofp i32 %185 to double
  %187 = load ptr, ptr %45, align 8, !tbaa !5
  %188 = getelementptr inbounds double, ptr %187, i64 2
  store double %186, ptr %188, align 8, !tbaa !11
  br label %194

189:                                              ; preds = %179
  %190 = load ptr, ptr %45, align 8, !tbaa !5
  %191 = getelementptr inbounds double, ptr %190, i64 2
  %192 = load double, ptr %191, align 8, !tbaa !11
  %193 = fptosi double %192 to i32
  store i32 %193, ptr %75, align 4, !tbaa !9
  br label %194

194:                                              ; preds = %189, %184
  br label %195

195:                                              ; preds = %194, %170
  %196 = load ptr, ptr %44, align 8, !tbaa !5
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = icmp sge i32 %197, 3
  br i1 %198, label %199, label %221

199:                                              ; preds = %195
  %200 = load ptr, ptr %45, align 8, !tbaa !5
  %201 = getelementptr inbounds double, ptr %200, i64 3
  %202 = load double, ptr %201, align 8, !tbaa !11
  %203 = fcmp olt double %202, 0.000000e+00
  br i1 %203, label %204, label %214

204:                                              ; preds = %199
  %205 = load i32, ptr %69, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %210

207:                                              ; preds = %204
  %208 = load ptr, ptr %45, align 8, !tbaa !5
  %209 = getelementptr inbounds double, ptr %208, i64 3
  store double 0.000000e+00, ptr %209, align 8, !tbaa !11
  br label %213

210:                                              ; preds = %204
  %211 = load ptr, ptr %45, align 8, !tbaa !5
  %212 = getelementptr inbounds double, ptr %211, i64 3
  store double 1.000000e+00, ptr %212, align 8, !tbaa !11
  br label %213

213:                                              ; preds = %210, %207
  br label %220

214:                                              ; preds = %199
  %215 = load ptr, ptr %45, align 8, !tbaa !5
  %216 = getelementptr inbounds double, ptr %215, i64 3
  %217 = load double, ptr %216, align 8, !tbaa !11
  %218 = fcmp oeq double %217, 0.000000e+00
  %219 = zext i1 %218 to i32
  store i32 %219, ptr %69, align 4, !tbaa !9
  br label %220

220:                                              ; preds = %214, %213
  br label %221

221:                                              ; preds = %220, %195
  %222 = load i32, ptr %68, align 4, !tbaa !9
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %228, label %224

224:                                              ; preds = %221
  %225 = load ptr, ptr %41, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %224, %221
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %235

229:                                              ; preds = %224
  %230 = load i32, ptr %69, align 4, !tbaa !9
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %233

232:                                              ; preds = %229
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %234

233:                                              ; preds = %229
  store i32 2, ptr %76, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %233, %232
  br label %235

235:                                              ; preds = %234, %228
  %236 = load ptr, ptr %26, align 8, !tbaa !5
  %237 = call i32 @lsame_(ptr noundef %236, ptr noundef @.str.1)
  store i32 %237, ptr %72, align 4, !tbaa !9
  %238 = load ptr, ptr %25, align 8, !tbaa !5
  %239 = call i32 @lsame_(ptr noundef %238, ptr noundef @.str.2)
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %247, label %241

241:                                              ; preds = %235
  %242 = load ptr, ptr %25, align 8, !tbaa !5
  %243 = call i32 @lsame_(ptr noundef %242, ptr noundef @.str.3)
  %244 = icmp ne i32 %243, 0
  br i1 %244, label %247, label %245

245:                                              ; preds = %241
  %246 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -1, ptr %246, align 4, !tbaa !9
  br label %335

247:                                              ; preds = %241, %235
  %248 = load i32, ptr %72, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %256, label %250

250:                                              ; preds = %247
  %251 = load ptr, ptr %26, align 8, !tbaa !5
  %252 = call i32 @lsame_(ptr noundef %251, ptr noundef @.str.4)
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %256, label %254

254:                                              ; preds = %250
  %255 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -2, ptr %255, align 4, !tbaa !9
  br label %334

256:                                              ; preds = %250, %247
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = icmp slt i32 %258, 0
  br i1 %259, label %260, label %262

260:                                              ; preds = %256
  %261 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -3, ptr %261, align 4, !tbaa !9
  br label %333

262:                                              ; preds = %256
  %263 = load ptr, ptr %28, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp slt i32 %264, 0
  br i1 %265, label %266, label %268

266:                                              ; preds = %262
  %267 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -4, ptr %267, align 4, !tbaa !9
  br label %332

268:                                              ; preds = %262
  %269 = load ptr, ptr %30, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = load ptr, ptr %27, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = icmp sge i32 1, %272
  br i1 %273, label %274, label %275

274:                                              ; preds = %268
  br label %278

275:                                              ; preds = %268
  %276 = load ptr, ptr %27, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %275, %274
  %279 = phi i32 [ 1, %274 ], [ %277, %275 ]
  %280 = icmp slt i32 %270, %279
  br i1 %280, label %281, label %283

281:                                              ; preds = %278
  %282 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -6, ptr %282, align 4, !tbaa !9
  br label %331

283:                                              ; preds = %278
  %284 = load ptr, ptr %32, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = load ptr, ptr %27, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  %288 = icmp sge i32 1, %287
  br i1 %288, label %289, label %290

289:                                              ; preds = %283
  br label %293

290:                                              ; preds = %283
  %291 = load ptr, ptr %27, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %290, %289
  %294 = phi i32 [ 1, %289 ], [ %292, %290 ]
  %295 = icmp slt i32 %285, %294
  br i1 %295, label %296, label %298

296:                                              ; preds = %293
  %297 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -8, ptr %297, align 4, !tbaa !9
  br label %330

298:                                              ; preds = %293
  %299 = load ptr, ptr %36, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = load ptr, ptr %27, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = icmp sge i32 1, %302
  br i1 %303, label %304, label %305

304:                                              ; preds = %298
  br label %308

305:                                              ; preds = %298
  %306 = load ptr, ptr %27, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %305, %304
  %309 = phi i32 [ 1, %304 ], [ %307, %305 ]
  %310 = icmp slt i32 %300, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %308
  %312 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -12, ptr %312, align 4, !tbaa !9
  br label %329

313:                                              ; preds = %308
  %314 = load ptr, ptr %38, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = load ptr, ptr %27, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = icmp sge i32 1, %317
  br i1 %318, label %319, label %320

319:                                              ; preds = %313
  br label %323

320:                                              ; preds = %313
  %321 = load ptr, ptr %27, align 8, !tbaa !5
  %322 = load i32, ptr %321, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %320, %319
  %324 = phi i32 [ 1, %319 ], [ %322, %320 ]
  %325 = icmp slt i32 %315, %324
  br i1 %325, label %326, label %328

326:                                              ; preds = %323
  %327 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -14, ptr %327, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %326, %323
  br label %329

329:                                              ; preds = %328, %311
  br label %330

330:                                              ; preds = %329, %296
  br label %331

331:                                              ; preds = %330, %281
  br label %332

332:                                              ; preds = %331, %266
  br label %333

333:                                              ; preds = %332, %260
  br label %334

334:                                              ; preds = %333, %254
  br label %335

335:                                              ; preds = %334, %245
  %336 = load ptr, ptr %48, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %344

339:                                              ; preds = %335
  %340 = load ptr, ptr %48, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = sub nsw i32 0, %341
  store i32 %342, ptr %61, align 4, !tbaa !9
  %343 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %61, i32 noundef 7)
  store i32 1, ptr %79, align 4
  br label %917

344:                                              ; preds = %335
  %345 = load ptr, ptr %27, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %352, label %348

348:                                              ; preds = %344
  %349 = load ptr, ptr %28, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %352, label %424

352:                                              ; preds = %348, %344
  %353 = load ptr, ptr %39, align 8, !tbaa !5
  store double 1.000000e+00, ptr %353, align 8, !tbaa !11
  %354 = load ptr, ptr %28, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  store i32 %355, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %356

356:                                              ; preds = %420, %352
  %357 = load i32, ptr %70, align 4, !tbaa !9
  %358 = load i32, ptr %61, align 4, !tbaa !9
  %359 = icmp sle i32 %357, %358
  br i1 %359, label %360, label %423

360:                                              ; preds = %356
  %361 = load ptr, ptr %40, align 8, !tbaa !5
  %362 = load i32, ptr %70, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds double, ptr %361, i64 %363
  store double 0.000000e+00, ptr %364, align 8, !tbaa !11
  %365 = load ptr, ptr %41, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = icmp sge i32 %366, 1
  br i1 %367, label %368, label %381

368:                                              ; preds = %360
  %369 = load ptr, ptr %42, align 8, !tbaa !5
  %370 = load i32, ptr %70, align 4, !tbaa !9
  %371 = load i32, ptr %57, align 4, !tbaa !9
  %372 = add nsw i32 %370, %371
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds double, ptr %369, i64 %373
  store double 1.000000e+00, ptr %374, align 8, !tbaa !11
  %375 = load ptr, ptr %43, align 8, !tbaa !5
  %376 = load i32, ptr %70, align 4, !tbaa !9
  %377 = load i32, ptr %59, align 4, !tbaa !9
  %378 = add nsw i32 %376, %377
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds double, ptr %375, i64 %379
  store double 1.000000e+00, ptr %380, align 8, !tbaa !11
  br label %381

381:                                              ; preds = %368, %360
  %382 = load ptr, ptr %41, align 8, !tbaa !5
  %383 = load i32, ptr %382, align 4, !tbaa !9
  %384 = icmp sge i32 %383, 2
  br i1 %384, label %385, label %400

385:                                              ; preds = %381
  %386 = load ptr, ptr %42, align 8, !tbaa !5
  %387 = load i32, ptr %70, align 4, !tbaa !9
  %388 = load i32, ptr %57, align 4, !tbaa !9
  %389 = shl i32 %388, 1
  %390 = add nsw i32 %387, %389
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds double, ptr %386, i64 %391
  store double 0.000000e+00, ptr %392, align 8, !tbaa !11
  %393 = load ptr, ptr %43, align 8, !tbaa !5
  %394 = load i32, ptr %70, align 4, !tbaa !9
  %395 = load i32, ptr %59, align 4, !tbaa !9
  %396 = shl i32 %395, 1
  %397 = add nsw i32 %394, %396
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds double, ptr %393, i64 %398
  store double 0.000000e+00, ptr %399, align 8, !tbaa !11
  br label %400

400:                                              ; preds = %385, %381
  %401 = load ptr, ptr %41, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = icmp sge i32 %402, 3
  br i1 %403, label %404, label %419

404:                                              ; preds = %400
  %405 = load ptr, ptr %42, align 8, !tbaa !5
  %406 = load i32, ptr %70, align 4, !tbaa !9
  %407 = load i32, ptr %57, align 4, !tbaa !9
  %408 = mul nsw i32 %407, 3
  %409 = add nsw i32 %406, %408
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds double, ptr %405, i64 %410
  store double 1.000000e+00, ptr %411, align 8, !tbaa !11
  %412 = load ptr, ptr %43, align 8, !tbaa !5
  %413 = load i32, ptr %70, align 4, !tbaa !9
  %414 = load i32, ptr %59, align 4, !tbaa !9
  %415 = mul nsw i32 %414, 3
  %416 = add nsw i32 %413, %415
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds double, ptr %412, i64 %417
  store double 1.000000e+00, ptr %418, align 8, !tbaa !11
  br label %419

419:                                              ; preds = %404, %400
  br label %420

420:                                              ; preds = %419
  %421 = load i32, ptr %70, align 4, !tbaa !9
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %70, align 4, !tbaa !9
  br label %356, !llvm.loop !13

423:                                              ; preds = %356
  store i32 1, ptr %79, align 4
  br label %917

424:                                              ; preds = %348
  %425 = load ptr, ptr %39, align 8, !tbaa !5
  store double 0.000000e+00, ptr %425, align 8, !tbaa !11
  %426 = load ptr, ptr %28, align 8, !tbaa !5
  %427 = load i32, ptr %426, align 4, !tbaa !9
  store i32 %427, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %492, %424
  %429 = load i32, ptr %70, align 4, !tbaa !9
  %430 = load i32, ptr %61, align 4, !tbaa !9
  %431 = icmp sle i32 %429, %430
  br i1 %431, label %432, label %495

432:                                              ; preds = %428
  %433 = load ptr, ptr %40, align 8, !tbaa !5
  %434 = load i32, ptr %70, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds double, ptr %433, i64 %435
  store double 1.000000e+00, ptr %436, align 8, !tbaa !11
  %437 = load ptr, ptr %41, align 8, !tbaa !5
  %438 = load i32, ptr %437, align 4, !tbaa !9
  %439 = icmp sge i32 %438, 1
  br i1 %439, label %440, label %453

440:                                              ; preds = %432
  %441 = load ptr, ptr %42, align 8, !tbaa !5
  %442 = load i32, ptr %70, align 4, !tbaa !9
  %443 = load i32, ptr %57, align 4, !tbaa !9
  %444 = add nsw i32 %442, %443
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds double, ptr %441, i64 %445
  store double 1.000000e+00, ptr %446, align 8, !tbaa !11
  %447 = load ptr, ptr %43, align 8, !tbaa !5
  %448 = load i32, ptr %70, align 4, !tbaa !9
  %449 = load i32, ptr %59, align 4, !tbaa !9
  %450 = add nsw i32 %448, %449
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds double, ptr %447, i64 %451
  store double 1.000000e+00, ptr %452, align 8, !tbaa !11
  br label %453

453:                                              ; preds = %440, %432
  %454 = load ptr, ptr %41, align 8, !tbaa !5
  %455 = load i32, ptr %454, align 4, !tbaa !9
  %456 = icmp sge i32 %455, 2
  br i1 %456, label %457, label %472

457:                                              ; preds = %453
  %458 = load ptr, ptr %42, align 8, !tbaa !5
  %459 = load i32, ptr %70, align 4, !tbaa !9
  %460 = load i32, ptr %57, align 4, !tbaa !9
  %461 = shl i32 %460, 1
  %462 = add nsw i32 %459, %461
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds double, ptr %458, i64 %463
  store double 1.000000e+00, ptr %464, align 8, !tbaa !11
  %465 = load ptr, ptr %43, align 8, !tbaa !5
  %466 = load i32, ptr %70, align 4, !tbaa !9
  %467 = load i32, ptr %59, align 4, !tbaa !9
  %468 = shl i32 %467, 1
  %469 = add nsw i32 %466, %468
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds double, ptr %465, i64 %470
  store double 1.000000e+00, ptr %471, align 8, !tbaa !11
  br label %472

472:                                              ; preds = %457, %453
  %473 = load ptr, ptr %41, align 8, !tbaa !5
  %474 = load i32, ptr %473, align 4, !tbaa !9
  %475 = icmp sge i32 %474, 3
  br i1 %475, label %476, label %491

476:                                              ; preds = %472
  %477 = load ptr, ptr %42, align 8, !tbaa !5
  %478 = load i32, ptr %70, align 4, !tbaa !9
  %479 = load i32, ptr %57, align 4, !tbaa !9
  %480 = mul nsw i32 %479, 3
  %481 = add nsw i32 %478, %480
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds double, ptr %477, i64 %482
  store double 0.000000e+00, ptr %483, align 8, !tbaa !11
  %484 = load ptr, ptr %43, align 8, !tbaa !5
  %485 = load i32, ptr %70, align 4, !tbaa !9
  %486 = load i32, ptr %59, align 4, !tbaa !9
  %487 = mul nsw i32 %486, 3
  %488 = add nsw i32 %485, %487
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds double, ptr %484, i64 %489
  store double 0.000000e+00, ptr %490, align 8, !tbaa !11
  br label %491

491:                                              ; preds = %476, %472
  br label %492

492:                                              ; preds = %491
  %493 = load i32, ptr %70, align 4, !tbaa !9
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr %70, align 4, !tbaa !9
  br label %428, !llvm.loop !15

495:                                              ; preds = %428
  %496 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  store i8 73, ptr %496, align 1, !tbaa !16
  %497 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  %498 = load ptr, ptr %25, align 8, !tbaa !5
  %499 = load ptr, ptr %27, align 8, !tbaa !5
  %500 = load ptr, ptr %29, align 8, !tbaa !5
  %501 = load i32, ptr %50, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %500, i64 %502
  %504 = load ptr, ptr %30, align 8, !tbaa !5
  %505 = load ptr, ptr %46, align 8, !tbaa !5
  %506 = getelementptr inbounds double, ptr %505, i64 1
  %507 = call double @dlansy_(ptr noundef %497, ptr noundef %498, ptr noundef %499, ptr noundef %503, ptr noundef %504, ptr noundef %506)
  store double %507, ptr %71, align 8, !tbaa !11
  %508 = load ptr, ptr %25, align 8, !tbaa !5
  %509 = load ptr, ptr %27, align 8, !tbaa !5
  %510 = load ptr, ptr %31, align 8, !tbaa !5
  %511 = load i32, ptr %52, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds double, ptr %510, i64 %512
  %514 = load ptr, ptr %32, align 8, !tbaa !5
  %515 = load ptr, ptr %33, align 8, !tbaa !5
  %516 = getelementptr inbounds i32, ptr %515, i64 1
  %517 = load ptr, ptr %39, align 8, !tbaa !5
  %518 = load ptr, ptr %46, align 8, !tbaa !5
  %519 = getelementptr inbounds double, ptr %518, i64 1
  %520 = load ptr, ptr %47, align 8, !tbaa !5
  %521 = getelementptr inbounds i32, ptr %520, i64 1
  %522 = load ptr, ptr %48, align 8, !tbaa !5
  call void @dsycon_(ptr noundef %508, ptr noundef %509, ptr noundef %513, ptr noundef %514, ptr noundef %516, ptr noundef %71, ptr noundef %517, ptr noundef %519, ptr noundef %521, ptr noundef %522)
  %523 = load i32, ptr %68, align 4, !tbaa !9
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %583

525:                                              ; preds = %495
  %526 = call i32 @ilaprec_(ptr noundef @.str.6)
  store i32 %526, ptr %74, align 4, !tbaa !9
  %527 = load ptr, ptr %25, align 8, !tbaa !5
  %528 = load ptr, ptr %27, align 8, !tbaa !5
  %529 = load ptr, ptr %28, align 8, !tbaa !5
  %530 = load ptr, ptr %29, align 8, !tbaa !5
  %531 = load i32, ptr %50, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds double, ptr %530, i64 %532
  %534 = load ptr, ptr %30, align 8, !tbaa !5
  %535 = load ptr, ptr %31, align 8, !tbaa !5
  %536 = load i32, ptr %52, align 4, !tbaa !9
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds double, ptr %535, i64 %537
  %539 = load ptr, ptr %32, align 8, !tbaa !5
  %540 = load ptr, ptr %33, align 8, !tbaa !5
  %541 = getelementptr inbounds i32, ptr %540, i64 1
  %542 = load ptr, ptr %34, align 8, !tbaa !5
  %543 = getelementptr inbounds double, ptr %542, i64 1
  %544 = load ptr, ptr %35, align 8, !tbaa !5
  %545 = load i32, ptr %54, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds double, ptr %544, i64 %546
  %548 = load ptr, ptr %36, align 8, !tbaa !5
  %549 = load ptr, ptr %37, align 8, !tbaa !5
  %550 = load i32, ptr %56, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %549, i64 %551
  %553 = load ptr, ptr %38, align 8, !tbaa !5
  %554 = load ptr, ptr %40, align 8, !tbaa !5
  %555 = getelementptr inbounds double, ptr %554, i64 1
  %556 = load ptr, ptr %42, align 8, !tbaa !5
  %557 = load i32, ptr %58, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds double, ptr %556, i64 %558
  %560 = load ptr, ptr %43, align 8, !tbaa !5
  %561 = load i32, ptr %60, align 4, !tbaa !9
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds double, ptr %560, i64 %562
  %564 = load ptr, ptr %46, align 8, !tbaa !5
  %565 = load ptr, ptr %27, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = add nsw i32 %566, 1
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds double, ptr %564, i64 %568
  %570 = load ptr, ptr %46, align 8, !tbaa !5
  %571 = getelementptr inbounds double, ptr %570, i64 1
  %572 = load ptr, ptr %46, align 8, !tbaa !5
  %573 = load ptr, ptr %27, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = shl i32 %574, 1
  %576 = add nsw i32 %575, 1
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds double, ptr %572, i64 %577
  %579 = load ptr, ptr %46, align 8, !tbaa !5
  %580 = getelementptr inbounds double, ptr %579, i64 1
  %581 = load ptr, ptr %39, align 8, !tbaa !5
  %582 = load ptr, ptr %48, align 8, !tbaa !5
  call void @dla_syrfsx_extended_(ptr noundef %74, ptr noundef %527, ptr noundef %528, ptr noundef %529, ptr noundef %533, ptr noundef %534, ptr noundef %538, ptr noundef %539, ptr noundef %541, ptr noundef %72, ptr noundef %543, ptr noundef %547, ptr noundef %548, ptr noundef %552, ptr noundef %553, ptr noundef %555, ptr noundef %76, ptr noundef %559, ptr noundef %563, ptr noundef %569, ptr noundef %571, ptr noundef %578, ptr noundef %580, ptr noundef %581, ptr noundef %75, ptr noundef %77, ptr noundef %65, ptr noundef %69, ptr noundef %582)
  br label %583

583:                                              ; preds = %525, %495
  store double 1.000000e+01, ptr %62, align 8, !tbaa !11
  %584 = load ptr, ptr %27, align 8, !tbaa !5
  %585 = load i32, ptr %584, align 4, !tbaa !9
  %586 = sitofp i32 %585 to double
  %587 = call double @sqrt(double noundef %586) #4
  store double %587, ptr %63, align 8, !tbaa !11
  %588 = load double, ptr %62, align 8, !tbaa !11
  %589 = load double, ptr %63, align 8, !tbaa !11
  %590 = fcmp oge double %588, %589
  br i1 %590, label %591, label %593

591:                                              ; preds = %583
  %592 = load double, ptr %62, align 8, !tbaa !11
  br label %595

593:                                              ; preds = %583
  %594 = load double, ptr %63, align 8, !tbaa !11
  br label %595

595:                                              ; preds = %593, %591
  %596 = phi double [ %592, %591 ], [ %594, %593 ]
  %597 = call double @dlamch_(ptr noundef @.str)
  %598 = fmul double %596, %597
  store double %598, ptr %66, align 8, !tbaa !11
  %599 = load ptr, ptr %41, align 8, !tbaa !5
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = icmp sge i32 %600, 1
  br i1 %601, label %602, label %758

602:                                              ; preds = %595
  %603 = load i32, ptr %76, align 4, !tbaa !9
  %604 = icmp sge i32 %603, 1
  br i1 %604, label %605, label %758

605:                                              ; preds = %602
  %606 = load i32, ptr %72, align 4, !tbaa !9
  %607 = icmp ne i32 %606, 0
  br i1 %607, label %608, label %631

608:                                              ; preds = %605
  %609 = load ptr, ptr %25, align 8, !tbaa !5
  %610 = load ptr, ptr %27, align 8, !tbaa !5
  %611 = load ptr, ptr %29, align 8, !tbaa !5
  %612 = load i32, ptr %50, align 4, !tbaa !9
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds double, ptr %611, i64 %613
  %615 = load ptr, ptr %30, align 8, !tbaa !5
  %616 = load ptr, ptr %31, align 8, !tbaa !5
  %617 = load i32, ptr %52, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds double, ptr %616, i64 %618
  %620 = load ptr, ptr %32, align 8, !tbaa !5
  %621 = load ptr, ptr %33, align 8, !tbaa !5
  %622 = getelementptr inbounds i32, ptr %621, i64 1
  %623 = load ptr, ptr %34, align 8, !tbaa !5
  %624 = getelementptr inbounds double, ptr %623, i64 1
  %625 = load ptr, ptr %48, align 8, !tbaa !5
  %626 = load ptr, ptr %46, align 8, !tbaa !5
  %627 = getelementptr inbounds double, ptr %626, i64 1
  %628 = load ptr, ptr %47, align 8, !tbaa !5
  %629 = getelementptr inbounds i32, ptr %628, i64 1
  %630 = call double @dla_syrcond_(ptr noundef %609, ptr noundef %610, ptr noundef %614, ptr noundef %615, ptr noundef %619, ptr noundef %620, ptr noundef %622, ptr noundef @c_n1, ptr noundef %624, ptr noundef %625, ptr noundef %627, ptr noundef %629)
  store double %630, ptr %73, align 8, !tbaa !11
  br label %654

631:                                              ; preds = %605
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = load ptr, ptr %27, align 8, !tbaa !5
  %634 = load ptr, ptr %29, align 8, !tbaa !5
  %635 = load i32, ptr %50, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds double, ptr %634, i64 %636
  %638 = load ptr, ptr %30, align 8, !tbaa !5
  %639 = load ptr, ptr %31, align 8, !tbaa !5
  %640 = load i32, ptr %52, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds double, ptr %639, i64 %641
  %643 = load ptr, ptr %32, align 8, !tbaa !5
  %644 = load ptr, ptr %33, align 8, !tbaa !5
  %645 = getelementptr inbounds i32, ptr %644, i64 1
  %646 = load ptr, ptr %34, align 8, !tbaa !5
  %647 = getelementptr inbounds double, ptr %646, i64 1
  %648 = load ptr, ptr %48, align 8, !tbaa !5
  %649 = load ptr, ptr %46, align 8, !tbaa !5
  %650 = getelementptr inbounds double, ptr %649, i64 1
  %651 = load ptr, ptr %47, align 8, !tbaa !5
  %652 = getelementptr inbounds i32, ptr %651, i64 1
  %653 = call double @dla_syrcond_(ptr noundef %632, ptr noundef %633, ptr noundef %637, ptr noundef %638, ptr noundef %642, ptr noundef %643, ptr noundef %645, ptr noundef @c__0, ptr noundef %647, ptr noundef %648, ptr noundef %650, ptr noundef %652)
  store double %653, ptr %73, align 8, !tbaa !11
  br label %654

654:                                              ; preds = %631, %608
  %655 = load ptr, ptr %28, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  store i32 %656, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %657

657:                                              ; preds = %754, %654
  %658 = load i32, ptr %70, align 4, !tbaa !9
  %659 = load i32, ptr %61, align 4, !tbaa !9
  %660 = icmp sle i32 %658, %659
  br i1 %660, label %661, label %757

661:                                              ; preds = %657
  %662 = load ptr, ptr %41, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = icmp sge i32 %663, 2
  br i1 %664, label %665, label %683

665:                                              ; preds = %661
  %666 = load ptr, ptr %42, align 8, !tbaa !5
  %667 = load i32, ptr %70, align 4, !tbaa !9
  %668 = load i32, ptr %57, align 4, !tbaa !9
  %669 = shl i32 %668, 1
  %670 = add nsw i32 %667, %669
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds double, ptr %666, i64 %671
  %673 = load double, ptr %672, align 8, !tbaa !11
  %674 = fcmp ogt double %673, 1.000000e+00
  br i1 %674, label %675, label %683

675:                                              ; preds = %665
  %676 = load ptr, ptr %42, align 8, !tbaa !5
  %677 = load i32, ptr %70, align 4, !tbaa !9
  %678 = load i32, ptr %57, align 4, !tbaa !9
  %679 = shl i32 %678, 1
  %680 = add nsw i32 %677, %679
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds double, ptr %676, i64 %681
  store double 1.000000e+00, ptr %682, align 8, !tbaa !11
  br label %683

683:                                              ; preds = %675, %665, %661
  %684 = load double, ptr %73, align 8, !tbaa !11
  %685 = load double, ptr %64, align 8, !tbaa !11
  %686 = fcmp olt double %684, %685
  br i1 %686, label %687, label %713

687:                                              ; preds = %683
  %688 = load ptr, ptr %42, align 8, !tbaa !5
  %689 = load i32, ptr %70, align 4, !tbaa !9
  %690 = load i32, ptr %57, align 4, !tbaa !9
  %691 = shl i32 %690, 1
  %692 = add nsw i32 %689, %691
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds double, ptr %688, i64 %693
  store double 1.000000e+00, ptr %694, align 8, !tbaa !11
  %695 = load ptr, ptr %42, align 8, !tbaa !5
  %696 = load i32, ptr %70, align 4, !tbaa !9
  %697 = load i32, ptr %57, align 4, !tbaa !9
  %698 = add nsw i32 %696, %697
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds double, ptr %695, i64 %699
  store double 0.000000e+00, ptr %700, align 8, !tbaa !11
  %701 = load ptr, ptr %48, align 8, !tbaa !5
  %702 = load i32, ptr %701, align 4, !tbaa !9
  %703 = load ptr, ptr %27, align 8, !tbaa !5
  %704 = load i32, ptr %703, align 4, !tbaa !9
  %705 = icmp sle i32 %702, %704
  br i1 %705, label %706, label %712

706:                                              ; preds = %687
  %707 = load ptr, ptr %27, align 8, !tbaa !5
  %708 = load i32, ptr %707, align 4, !tbaa !9
  %709 = load i32, ptr %70, align 4, !tbaa !9
  %710 = add nsw i32 %708, %709
  %711 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 %710, ptr %711, align 4, !tbaa !9
  br label %712

712:                                              ; preds = %706, %687
  br label %740

713:                                              ; preds = %683
  %714 = load ptr, ptr %42, align 8, !tbaa !5
  %715 = load i32, ptr %70, align 4, !tbaa !9
  %716 = load i32, ptr %57, align 4, !tbaa !9
  %717 = shl i32 %716, 1
  %718 = add nsw i32 %715, %717
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds double, ptr %714, i64 %719
  %721 = load double, ptr %720, align 8, !tbaa !11
  %722 = load double, ptr %66, align 8, !tbaa !11
  %723 = fcmp olt double %721, %722
  br i1 %723, label %724, label %739

724:                                              ; preds = %713
  %725 = load double, ptr %66, align 8, !tbaa !11
  %726 = load ptr, ptr %42, align 8, !tbaa !5
  %727 = load i32, ptr %70, align 4, !tbaa !9
  %728 = load i32, ptr %57, align 4, !tbaa !9
  %729 = shl i32 %728, 1
  %730 = add nsw i32 %727, %729
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds double, ptr %726, i64 %731
  store double %725, ptr %732, align 8, !tbaa !11
  %733 = load ptr, ptr %42, align 8, !tbaa !5
  %734 = load i32, ptr %70, align 4, !tbaa !9
  %735 = load i32, ptr %57, align 4, !tbaa !9
  %736 = add nsw i32 %734, %735
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds double, ptr %733, i64 %737
  store double 1.000000e+00, ptr %738, align 8, !tbaa !11
  br label %739

739:                                              ; preds = %724, %713
  br label %740

740:                                              ; preds = %739, %712
  %741 = load ptr, ptr %41, align 8, !tbaa !5
  %742 = load i32, ptr %741, align 4, !tbaa !9
  %743 = icmp sge i32 %742, 3
  br i1 %743, label %744, label %753

744:                                              ; preds = %740
  %745 = load double, ptr %73, align 8, !tbaa !11
  %746 = load ptr, ptr %42, align 8, !tbaa !5
  %747 = load i32, ptr %70, align 4, !tbaa !9
  %748 = load i32, ptr %57, align 4, !tbaa !9
  %749 = mul nsw i32 %748, 3
  %750 = add nsw i32 %747, %749
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds double, ptr %746, i64 %751
  store double %745, ptr %752, align 8, !tbaa !11
  br label %753

753:                                              ; preds = %744, %740
  br label %754

754:                                              ; preds = %753
  %755 = load i32, ptr %70, align 4, !tbaa !9
  %756 = add nsw i32 %755, 1
  store i32 %756, ptr %70, align 4, !tbaa !9
  br label %657, !llvm.loop !17

757:                                              ; preds = %657
  br label %758

758:                                              ; preds = %757, %602, %595
  %759 = load ptr, ptr %41, align 8, !tbaa !5
  %760 = load i32, ptr %759, align 4, !tbaa !9
  %761 = icmp sge i32 %760, 1
  br i1 %761, label %762, label %916

762:                                              ; preds = %758
  %763 = load i32, ptr %76, align 4, !tbaa !9
  %764 = icmp sge i32 %763, 2
  br i1 %764, label %765, label %916

765:                                              ; preds = %762
  %766 = call double @dlamch_(ptr noundef @.str)
  %767 = call double @sqrt(double noundef %766) #4
  store double %767, ptr %78, align 8, !tbaa !11
  %768 = load ptr, ptr %28, align 8, !tbaa !5
  %769 = load i32, ptr %768, align 4, !tbaa !9
  store i32 %769, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %770

770:                                              ; preds = %912, %765
  %771 = load i32, ptr %70, align 4, !tbaa !9
  %772 = load i32, ptr %61, align 4, !tbaa !9
  %773 = icmp sle i32 %771, %772
  br i1 %773, label %774, label %915

774:                                              ; preds = %770
  %775 = load ptr, ptr %43, align 8, !tbaa !5
  %776 = load i32, ptr %70, align 4, !tbaa !9
  %777 = load i32, ptr %59, align 4, !tbaa !9
  %778 = shl i32 %777, 1
  %779 = add nsw i32 %776, %778
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds double, ptr %775, i64 %780
  %782 = load double, ptr %781, align 8, !tbaa !11
  %783 = load double, ptr %78, align 8, !tbaa !11
  %784 = fcmp olt double %782, %783
  br i1 %784, label %785, label %813

785:                                              ; preds = %774
  %786 = load ptr, ptr %25, align 8, !tbaa !5
  %787 = load ptr, ptr %27, align 8, !tbaa !5
  %788 = load ptr, ptr %29, align 8, !tbaa !5
  %789 = load i32, ptr %50, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds double, ptr %788, i64 %790
  %792 = load ptr, ptr %30, align 8, !tbaa !5
  %793 = load ptr, ptr %31, align 8, !tbaa !5
  %794 = load i32, ptr %52, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds double, ptr %793, i64 %795
  %797 = load ptr, ptr %32, align 8, !tbaa !5
  %798 = load ptr, ptr %33, align 8, !tbaa !5
  %799 = getelementptr inbounds i32, ptr %798, i64 1
  %800 = load ptr, ptr %37, align 8, !tbaa !5
  %801 = load i32, ptr %70, align 4, !tbaa !9
  %802 = load i32, ptr %55, align 4, !tbaa !9
  %803 = mul nsw i32 %801, %802
  %804 = add nsw i32 %803, 1
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds double, ptr %800, i64 %805
  %807 = load ptr, ptr %48, align 8, !tbaa !5
  %808 = load ptr, ptr %46, align 8, !tbaa !5
  %809 = getelementptr inbounds double, ptr %808, i64 1
  %810 = load ptr, ptr %47, align 8, !tbaa !5
  %811 = getelementptr inbounds i32, ptr %810, i64 1
  %812 = call double @dla_syrcond_(ptr noundef %786, ptr noundef %787, ptr noundef %791, ptr noundef %792, ptr noundef %796, ptr noundef %797, ptr noundef %799, ptr noundef @c__1, ptr noundef %806, ptr noundef %807, ptr noundef %809, ptr noundef %811)
  store double %812, ptr %73, align 8, !tbaa !11
  br label %814

813:                                              ; preds = %774
  store double 0.000000e+00, ptr %73, align 8, !tbaa !11
  br label %814

814:                                              ; preds = %813, %785
  %815 = load ptr, ptr %41, align 8, !tbaa !5
  %816 = load i32, ptr %815, align 4, !tbaa !9
  %817 = icmp sge i32 %816, 2
  br i1 %817, label %818, label %836

818:                                              ; preds = %814
  %819 = load ptr, ptr %43, align 8, !tbaa !5
  %820 = load i32, ptr %70, align 4, !tbaa !9
  %821 = load i32, ptr %59, align 4, !tbaa !9
  %822 = shl i32 %821, 1
  %823 = add nsw i32 %820, %822
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds double, ptr %819, i64 %824
  %826 = load double, ptr %825, align 8, !tbaa !11
  %827 = fcmp ogt double %826, 1.000000e+00
  br i1 %827, label %828, label %836

828:                                              ; preds = %818
  %829 = load ptr, ptr %43, align 8, !tbaa !5
  %830 = load i32, ptr %70, align 4, !tbaa !9
  %831 = load i32, ptr %59, align 4, !tbaa !9
  %832 = shl i32 %831, 1
  %833 = add nsw i32 %830, %832
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds double, ptr %829, i64 %834
  store double 1.000000e+00, ptr %835, align 8, !tbaa !11
  br label %836

836:                                              ; preds = %828, %818, %814
  %837 = load double, ptr %73, align 8, !tbaa !11
  %838 = load double, ptr %64, align 8, !tbaa !11
  %839 = fcmp olt double %837, %838
  br i1 %839, label %840, label %871

840:                                              ; preds = %836
  %841 = load ptr, ptr %43, align 8, !tbaa !5
  %842 = load i32, ptr %70, align 4, !tbaa !9
  %843 = load i32, ptr %59, align 4, !tbaa !9
  %844 = shl i32 %843, 1
  %845 = add nsw i32 %842, %844
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds double, ptr %841, i64 %846
  store double 1.000000e+00, ptr %847, align 8, !tbaa !11
  %848 = load ptr, ptr %43, align 8, !tbaa !5
  %849 = load i32, ptr %70, align 4, !tbaa !9
  %850 = load i32, ptr %59, align 4, !tbaa !9
  %851 = add nsw i32 %849, %850
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds double, ptr %848, i64 %852
  store double 0.000000e+00, ptr %853, align 8, !tbaa !11
  %854 = load i32, ptr %69, align 4, !tbaa !9
  %855 = icmp ne i32 %854, 0
  br i1 %855, label %870, label %856

856:                                              ; preds = %840
  %857 = load ptr, ptr %48, align 8, !tbaa !5
  %858 = load i32, ptr %857, align 4, !tbaa !9
  %859 = load ptr, ptr %27, align 8, !tbaa !5
  %860 = load i32, ptr %859, align 4, !tbaa !9
  %861 = load i32, ptr %70, align 4, !tbaa !9
  %862 = add nsw i32 %860, %861
  %863 = icmp slt i32 %858, %862
  br i1 %863, label %864, label %870

864:                                              ; preds = %856
  %865 = load ptr, ptr %27, align 8, !tbaa !5
  %866 = load i32, ptr %865, align 4, !tbaa !9
  %867 = load i32, ptr %70, align 4, !tbaa !9
  %868 = add nsw i32 %866, %867
  %869 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 %868, ptr %869, align 4, !tbaa !9
  br label %870

870:                                              ; preds = %864, %856, %840
  br label %898

871:                                              ; preds = %836
  %872 = load ptr, ptr %43, align 8, !tbaa !5
  %873 = load i32, ptr %70, align 4, !tbaa !9
  %874 = load i32, ptr %59, align 4, !tbaa !9
  %875 = shl i32 %874, 1
  %876 = add nsw i32 %873, %875
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds double, ptr %872, i64 %877
  %879 = load double, ptr %878, align 8, !tbaa !11
  %880 = load double, ptr %66, align 8, !tbaa !11
  %881 = fcmp olt double %879, %880
  br i1 %881, label %882, label %897

882:                                              ; preds = %871
  %883 = load double, ptr %66, align 8, !tbaa !11
  %884 = load ptr, ptr %43, align 8, !tbaa !5
  %885 = load i32, ptr %70, align 4, !tbaa !9
  %886 = load i32, ptr %59, align 4, !tbaa !9
  %887 = shl i32 %886, 1
  %888 = add nsw i32 %885, %887
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds double, ptr %884, i64 %889
  store double %883, ptr %890, align 8, !tbaa !11
  %891 = load ptr, ptr %43, align 8, !tbaa !5
  %892 = load i32, ptr %70, align 4, !tbaa !9
  %893 = load i32, ptr %59, align 4, !tbaa !9
  %894 = add nsw i32 %892, %893
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds double, ptr %891, i64 %895
  store double 1.000000e+00, ptr %896, align 8, !tbaa !11
  br label %897

897:                                              ; preds = %882, %871
  br label %898

898:                                              ; preds = %897, %870
  %899 = load ptr, ptr %41, align 8, !tbaa !5
  %900 = load i32, ptr %899, align 4, !tbaa !9
  %901 = icmp sge i32 %900, 3
  br i1 %901, label %902, label %911

902:                                              ; preds = %898
  %903 = load double, ptr %73, align 8, !tbaa !11
  %904 = load ptr, ptr %43, align 8, !tbaa !5
  %905 = load i32, ptr %70, align 4, !tbaa !9
  %906 = load i32, ptr %59, align 4, !tbaa !9
  %907 = mul nsw i32 %906, 3
  %908 = add nsw i32 %905, %907
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds double, ptr %904, i64 %909
  store double %903, ptr %910, align 8, !tbaa !11
  br label %911

911:                                              ; preds = %902, %898
  br label %912

912:                                              ; preds = %911
  %913 = load i32, ptr %70, align 4, !tbaa !9
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr %70, align 4, !tbaa !9
  br label %770, !llvm.loop !18

915:                                              ; preds = %770
  br label %916

916:                                              ; preds = %915, %762, %758
  store i32 1, ptr %79, align 4
  br label %917

917:                                              ; preds = %916, %423, %339
  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 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 1, 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 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  ret void
}

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

declare double @dlamch_(ptr noundef) #2

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

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

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

declare void @dsycon_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @ilaprec_(ptr noundef) #2

declare void @dla_syrfsx_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) #2

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

declare double @dla_syrcond_(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: 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 = !{!"int", !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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4

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

52:                                               ; preds = %24
  %53 = load double, ptr %20, align 8, !tbaa !9
  %54 = fcmp olt double %53, 0.000000e+00
  br i1 %54, label %55, label %56

55:                                               ; preds = %52
  store double 1.000000e+00, ptr %20, align 8, !tbaa !9
  br label %58

56:                                               ; preds = %52
  %57 = fptosi double %53 to i32
  br label %58

58:                                               ; preds = %55, %56, %24
  %.0313 = phi i32 [ 1, %55 ], [ %57, %56 ], [ 1, %24 ]
  %59 = load i32, ptr %2, align 4, !tbaa !5
  %60 = sitofp i32 %59 to double
  %61 = tail call double @dlamch_(ptr noundef nonnull @.str) #6
  %62 = fmul double %61, %60
  store i32 10, ptr %38, align 4, !tbaa !5
  store double 5.000000e-01, ptr %40, align 8, !tbaa !9
  store double 2.500000e-01, ptr %32, align 8, !tbaa !9
  store i32 0, ptr %34, align 4, !tbaa !5
  %63 = load i32, ptr %19, align 4, !tbaa !5
  %64 = icmp sgt i32 %63, 1
  br i1 %64, label %65, label %.thread

65:                                               ; preds = %58
  %66 = getelementptr inbounds i8, ptr %20, i64 8
  %67 = load double, ptr %66, align 8, !tbaa !9
  %68 = fcmp olt double %67, 0.000000e+00
  br i1 %68, label %69, label %70

69:                                               ; preds = %65
  store double 1.000000e+01, ptr %66, align 8, !tbaa !9
  br label %72

70:                                               ; preds = %65
  %71 = fptosi double %67 to i32
  store i32 %71, ptr %38, align 4, !tbaa !5
  br label %72

72:                                               ; preds = %69, %70
  %.not = icmp eq i32 %63, 2
  br i1 %.not, label %.thread, label %73

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %20, i64 16
  %75 = load double, ptr %74, align 8, !tbaa !9
  %76 = fcmp olt double %75, 0.000000e+00
  br i1 %76, label %77, label %78

77:                                               ; preds = %73
  store double 1.000000e+00, ptr %74, align 8, !tbaa !9
  br label %.thread

78:                                               ; preds = %73
  %79 = fcmp oeq double %75, 0.000000e+00
  %80 = zext i1 %79 to i32
  store i32 %80, ptr %34, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %58, %78, %77, %72
  %81 = phi i32 [ 0, %58 ], [ %80, %78 ], [ 0, %77 ], [ 0, %72 ]
  %82 = icmp eq i32 %.0313, 0
  br i1 %82, label %86, label %83

83:                                               ; preds = %.thread
  %84 = load i32, ptr %16, align 4, !tbaa !5
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %83, %.thread
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %90

87:                                               ; preds = %83
  %.not326 = icmp eq i32 %81, 0
  br i1 %.not326, label %89, label %88

88:                                               ; preds = %87
  store i32 1, ptr %39, align 4, !tbaa !5
  br label %90

89:                                               ; preds = %87
  store i32 2, ptr %39, align 4, !tbaa !5
  br label %90

90:                                               ; preds = %88, %89, %86
  %91 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  store i32 %91, ptr %36, align 4, !tbaa !5
  %92 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not327 = icmp eq i32 %92, 0
  br i1 %.not327, label %93, label %95

93:                                               ; preds = %90
  %94 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not328 = icmp eq i32 %94, 0
  br i1 %.not328, label %.thread344.sink.split, label %95

95:                                               ; preds = %93, %90
  %.not329 = icmp eq i32 %91, 0
  br i1 %.not329, label %96, label %98

96:                                               ; preds = %95
  %97 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not330 = icmp eq i32 %97, 0
  br i1 %.not330, label %.thread344.sink.split, label %98

98:                                               ; preds = %96, %95
  %99 = load i32, ptr %2, align 4, !tbaa !5
  %100 = icmp slt i32 %99, 0
  br i1 %100, label %.thread344.sink.split, label %101

101:                                              ; preds = %98
  %102 = load i32, ptr %3, align 4, !tbaa !5
  %103 = icmp slt i32 %102, 0
  br i1 %103, label %.thread344.sink.split, label %104

104:                                              ; preds = %101
  %105 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %99, i32 1)
  %106 = icmp slt i32 %105, %spec.select
  br i1 %106, label %.thread344.sink.split, label %107

107:                                              ; preds = %104
  %108 = load i32, ptr %7, align 4, !tbaa !5
  %109 = icmp slt i32 %108, %spec.select
  br i1 %109, label %.thread344.sink.split, label %110

110:                                              ; preds = %107
  %111 = load i32, ptr %11, align 4, !tbaa !5
  %112 = icmp slt i32 %111, %spec.select
  br i1 %112, label %.thread344.sink.split, label %113

113:                                              ; preds = %110
  %114 = load i32, ptr %13, align 4, !tbaa !5
  %115 = icmp slt i32 %114, %spec.select
  br i1 %115, label %.thread344.sink.split, label %116

116:                                              ; preds = %113
  %.pr = load i32, ptr %23, align 4, !tbaa !5
  %.not331 = icmp eq i32 %.pr, 0
  br i1 %.not331, label %120, label %.thread344

.thread344.sink.split:                            ; preds = %113, %110, %107, %104, %101, %98, %96, %93
  %.sink = phi i32 [ -1, %93 ], [ -2, %96 ], [ -3, %98 ], [ -4, %101 ], [ -6, %104 ], [ -8, %107 ], [ -12, %110 ], [ -14, %113 ]
  store i32 %.sink, ptr %23, align 4, !tbaa !5
  br label %.thread344

.thread344:                                       ; preds = %.thread344.sink.split, %116
  %117 = phi i32 [ %.pr, %116 ], [ %.sink, %.thread344.sink.split ]
  %118 = sub nsw i32 0, %117
  store i32 %118, ptr %31, align 4, !tbaa !5
  %119 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %31, i32 noundef 7) #6
  br label %.loopexit

120:                                              ; preds = %116
  %121 = icmp eq i32 %99, 0
  br i1 %121, label %124, label %122

122:                                              ; preds = %120
  %123 = icmp eq i32 %102, 0
  br i1 %123, label %.thread409, label %.lr.ph

.thread409:                                       ; preds = %122
  store double 1.000000e+00, ptr %14, align 8, !tbaa !9
  br label %.loopexit

124:                                              ; preds = %120
  store double 1.000000e+00, ptr %14, align 8, !tbaa !9
  %.not340366 = icmp eq i32 %102, 0
  br i1 %.not340366, label %.loopexit, label %.lr.ph369

.lr.ph369:                                        ; preds = %124
  %125 = load i32, ptr %16, align 4, !tbaa !5
  %126 = icmp sgt i32 %125, 0
  %127 = shl i32 %41, 1
  %128 = icmp ugt i32 %125, 2
  %129 = mul nsw i32 %41, 3
  br i1 %126, label %.lr.ph369.split.us, label %.thread348.preheader

.thread348.preheader:                             ; preds = %.lr.ph369
  %130 = zext nneg i32 %102 to i64
  %131 = shl nuw nsw i64 %130, 3
  tail call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 %131, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph369.split.us:                               ; preds = %.lr.ph369
  %.not353 = icmp eq i32 %125, 1
  %132 = sext i32 %41 to i64
  br i1 %.not353, label %.thread348.us.us.preheader, label %.lr.ph369.split.us.split.preheader

.lr.ph369.split.us.split.preheader:               ; preds = %.lr.ph369.split.us
  %133 = sext i32 %127 to i64
  %134 = sext i32 %129 to i64
  %135 = add nuw i32 %102, 1
  %wide.trip.count400 = zext i32 %135 to i64
  br label %.lr.ph369.split.us.split

.thread348.us.us.preheader:                       ; preds = %.lr.ph369.split.us
  %136 = add nuw i32 %102, 1
  %wide.trip.count405 = zext i32 %136 to i64
  %137 = zext nneg i32 %102 to i64
  %min.iters.check463 = icmp ult i32 %102, 18
  br i1 %min.iters.check463, label %.thread348.us.us.preheader474, label %vector.memcheck455

vector.memcheck455:                               ; preds = %.thread348.us.us.preheader
  %138 = shl nsw i64 %132, 3
  %139 = add i64 %138, %27
  %140 = shl nsw i64 %42, 3
  %141 = add i64 %139, %140
  %142 = add i64 %141, 8
  %143 = sub i64 %142, %26
  %diff.check456 = icmp ult i64 %143, 32
  %144 = add i64 %138, %25
  %145 = add i64 %144, %140
  %146 = add i64 %145, 8
  %147 = sub i64 %146, %26
  %diff.check457 = icmp ult i64 %147, 32
  %conflict.rdx458 = or i1 %diff.check456, %diff.check457
  %148 = sub i64 %25, %27
  %diff.check459 = icmp ult i64 %148, 32
  %conflict.rdx460 = or i1 %conflict.rdx458, %diff.check459
  br i1 %conflict.rdx460, label %.thread348.us.us.preheader474, label %vector.ph464

vector.ph464:                                     ; preds = %vector.memcheck455
  %n.vec466 = and i64 %137, 2147483644
  %ind.end467 = or disjoint i64 %n.vec466, 1
  br label %vector.body469

vector.body469:                                   ; preds = %vector.body469, %vector.ph464
  %index470 = phi i64 [ 0, %vector.ph464 ], [ %index.next472, %vector.body469 ]
  %offset.idx471 = or disjoint i64 %index470, 1
  %149 = getelementptr double, ptr %15, i64 %index470
  %150 = getelementptr inbounds i8, ptr %149, i64 16
  store <2 x double> zeroinitializer, ptr %149, align 8, !tbaa !9
  store <2 x double> zeroinitializer, ptr %150, align 8, !tbaa !9
  %151 = add nsw i64 %offset.idx471, %132
  %152 = getelementptr inbounds double, ptr %44, i64 %151
  %153 = getelementptr inbounds i8, ptr %152, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %152, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %153, align 8, !tbaa !9
  %154 = getelementptr inbounds double, ptr %43, i64 %151
  %155 = getelementptr inbounds i8, ptr %154, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %154, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %155, align 8, !tbaa !9
  %index.next472 = add nuw i64 %index470, 4
  %156 = icmp eq i64 %index.next472, %n.vec466
  br i1 %156, label %middle.block461, label %vector.body469, !llvm.loop !11

middle.block461:                                  ; preds = %vector.body469
  %cmp.n473 = icmp eq i64 %n.vec466, %137
  br i1 %cmp.n473, label %.loopexit, label %.thread348.us.us.preheader474

.thread348.us.us.preheader474:                    ; preds = %middle.block461, %vector.memcheck455, %.thread348.us.us.preheader
  %indvars.iv402.ph = phi i64 [ 1, %vector.memcheck455 ], [ 1, %.thread348.us.us.preheader ], [ %ind.end467, %middle.block461 ]
  %157 = zext nneg i32 %102 to i64
  %158 = and i32 %102, 1
  %lcmp.mod482.not = icmp eq i32 %158, 0
  br i1 %lcmp.mod482.not, label %.thread348.us.us.prol.loopexit, label %.thread348.us.us.prol

.thread348.us.us.prol:                            ; preds = %.thread348.us.us.preheader474
  %159 = getelementptr inbounds double, ptr %48, i64 %indvars.iv402.ph
  store double 0.000000e+00, ptr %159, align 8, !tbaa !9
  %160 = add nsw i64 %indvars.iv402.ph, %132
  %161 = getelementptr inbounds double, ptr %44, i64 %160
  store double 1.000000e+00, ptr %161, align 8, !tbaa !9
  %162 = getelementptr inbounds double, ptr %43, i64 %160
  store double 1.000000e+00, ptr %162, align 8, !tbaa !9
  %indvars.iv.next403.prol = add nuw nsw i64 %indvars.iv402.ph, 1
  br label %.thread348.us.us.prol.loopexit

.thread348.us.us.prol.loopexit:                   ; preds = %.thread348.us.us.prol, %.thread348.us.us.preheader474
  %indvars.iv402.unr = phi i64 [ %indvars.iv402.ph, %.thread348.us.us.preheader474 ], [ %indvars.iv.next403.prol, %.thread348.us.us.prol ]
  %163 = icmp eq i64 %indvars.iv402.ph, %157
  br i1 %163, label %.loopexit, label %.thread348.us.us

.thread348.us.us:                                 ; preds = %.thread348.us.us.prol.loopexit, %.thread348.us.us
  %indvars.iv402 = phi i64 [ %indvars.iv.next403.1, %.thread348.us.us ], [ %indvars.iv402.unr, %.thread348.us.us.prol.loopexit ]
  %164 = getelementptr inbounds double, ptr %48, i64 %indvars.iv402
  store double 0.000000e+00, ptr %164, align 8, !tbaa !9
  %165 = add nsw i64 %indvars.iv402, %132
  %166 = getelementptr inbounds double, ptr %44, i64 %165
  store double 1.000000e+00, ptr %166, align 8, !tbaa !9
  %167 = getelementptr inbounds double, ptr %43, i64 %165
  store double 1.000000e+00, ptr %167, align 8, !tbaa !9
  %indvars.iv.next403 = add nuw nsw i64 %indvars.iv402, 1
  %168 = getelementptr double, ptr %15, i64 %indvars.iv402
  store double 0.000000e+00, ptr %168, align 8, !tbaa !9
  %169 = add nsw i64 %indvars.iv.next403, %132
  %170 = getelementptr inbounds double, ptr %44, i64 %169
  store double 1.000000e+00, ptr %170, align 8, !tbaa !9
  %171 = getelementptr inbounds double, ptr %43, i64 %169
  store double 1.000000e+00, ptr %171, align 8, !tbaa !9
  %indvars.iv.next403.1 = add nuw nsw i64 %indvars.iv402, 2
  %exitcond406.not.1 = icmp eq i64 %indvars.iv.next403.1, %wide.trip.count405
  br i1 %exitcond406.not.1, label %.loopexit, label %.thread348.us.us, !llvm.loop !15

.lr.ph369.split.us.split:                         ; preds = %.lr.ph369.split.us.split.preheader, %.thread348.us
  %indvars.iv397 = phi i64 [ 1, %.lr.ph369.split.us.split.preheader ], [ %indvars.iv.next398, %.thread348.us ]
  %172 = getelementptr inbounds double, ptr %48, i64 %indvars.iv397
  store double 0.000000e+00, ptr %172, align 8, !tbaa !9
  %173 = add nsw i64 %indvars.iv397, %132
  %174 = getelementptr inbounds double, ptr %44, i64 %173
  store double 1.000000e+00, ptr %174, align 8, !tbaa !9
  %175 = getelementptr inbounds double, ptr %43, i64 %173
  store double 1.000000e+00, ptr %175, align 8, !tbaa !9
  %176 = add nsw i64 %indvars.iv397, %133
  %177 = getelementptr inbounds double, ptr %44, i64 %176
  store double 0.000000e+00, ptr %177, align 8, !tbaa !9
  %178 = getelementptr inbounds double, ptr %43, i64 %176
  store double 0.000000e+00, ptr %178, align 8, !tbaa !9
  br i1 %128, label %179, label %.thread348.us

179:                                              ; preds = %.lr.ph369.split.us.split
  %180 = add nsw i64 %indvars.iv397, %134
  %181 = getelementptr inbounds double, ptr %44, i64 %180
  store double 1.000000e+00, ptr %181, align 8, !tbaa !9
  %182 = getelementptr inbounds double, ptr %43, i64 %180
  store double 1.000000e+00, ptr %182, align 8, !tbaa !9
  br label %.thread348.us

.thread348.us:                                    ; preds = %179, %.lr.ph369.split.us.split
  %indvars.iv.next398 = add nuw nsw i64 %indvars.iv397, 1
  %exitcond401.not = icmp eq i64 %indvars.iv.next398, %wide.trip.count400
  br i1 %exitcond401.not, label %.loopexit, label %.lr.ph369.split.us.split, !llvm.loop !16

.lr.ph:                                           ; preds = %122
  store double 0.000000e+00, ptr %14, align 8, !tbaa !9
  %183 = load i32, ptr %16, align 4, !tbaa !5
  %184 = icmp sgt i32 %183, 0
  %185 = shl i32 %41, 1
  %186 = icmp ugt i32 %183, 2
  %187 = mul nsw i32 %41, 3
  br i1 %184, label %.lr.ph.split.us, label %.thread351.preheader

.thread351.preheader:                             ; preds = %.lr.ph
  %188 = add nuw i32 %102, 1
  %wide.trip.count = zext i32 %188 to i64
  %189 = zext nneg i32 %102 to i64
  %min.iters.check = icmp ult i32 %102, 4
  br i1 %min.iters.check, label %.thread351.preheader479, label %vector.ph

.thread351.preheader479:                          ; preds = %middle.block, %.thread351.preheader
  %indvars.iv.ph = phi i64 [ 1, %.thread351.preheader ], [ %ind.end, %middle.block ]
  br label %.thread351

vector.ph:                                        ; preds = %.thread351.preheader
  %n.vec = and i64 %189, 2147483644
  %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 ]
  %190 = getelementptr double, ptr %15, i64 %index
  %191 = getelementptr inbounds i8, ptr %190, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %190, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %191, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %192 = icmp eq i64 %index.next, %n.vec
  br i1 %192, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %189
  br i1 %cmp.n, label %._crit_edge, label %.thread351.preheader479

.lr.ph.split.us:                                  ; preds = %.lr.ph
  %.not352 = icmp eq i32 %183, 1
  %193 = sext i32 %41 to i64
  br i1 %.not352, label %.thread351.us.us.preheader, label %.lr.ph.split.us.split.preheader

.lr.ph.split.us.split.preheader:                  ; preds = %.lr.ph.split.us
  %194 = sext i32 %185 to i64
  %195 = sext i32 %187 to i64
  %196 = add nuw i32 %102, 1
  %wide.trip.count379 = zext i32 %196 to i64
  br label %.lr.ph.split.us.split

.thread351.us.us.preheader:                       ; preds = %.lr.ph.split.us
  %197 = add nuw i32 %102, 1
  %wide.trip.count384 = zext i32 %197 to i64
  %198 = zext nneg i32 %102 to i64
  %min.iters.check444 = icmp ult i32 %102, 18
  br i1 %min.iters.check444, label %.thread351.us.us.preheader477, label %vector.memcheck

vector.memcheck:                                  ; preds = %.thread351.us.us.preheader
  %199 = shl nsw i64 %193, 3
  %200 = add i64 %199, %30
  %201 = shl nsw i64 %42, 3
  %202 = add i64 %200, %201
  %203 = add i64 %202, 8
  %204 = sub i64 %203, %29
  %diff.check = icmp ult i64 %204, 32
  %205 = add i64 %199, %28
  %206 = add i64 %205, %201
  %207 = add i64 %206, 8
  %208 = sub i64 %207, %29
  %diff.check439 = icmp ult i64 %208, 32
  %conflict.rdx = or i1 %diff.check, %diff.check439
  %209 = sub i64 %28, %30
  %diff.check440 = icmp ult i64 %209, 32
  %conflict.rdx441 = or i1 %conflict.rdx, %diff.check440
  br i1 %conflict.rdx441, label %.thread351.us.us.preheader477, label %vector.ph445

vector.ph445:                                     ; preds = %vector.memcheck
  %n.vec447 = and i64 %198, 2147483644
  %ind.end448 = or disjoint i64 %n.vec447, 1
  br label %vector.body450

vector.body450:                                   ; preds = %vector.body450, %vector.ph445
  %index451 = phi i64 [ 0, %vector.ph445 ], [ %index.next453, %vector.body450 ]
  %offset.idx452 = or disjoint i64 %index451, 1
  %210 = getelementptr double, ptr %15, i64 %index451
  %211 = getelementptr inbounds i8, ptr %210, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %210, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %211, align 8, !tbaa !9
  %212 = add nsw i64 %offset.idx452, %193
  %213 = getelementptr inbounds double, ptr %44, i64 %212
  %214 = getelementptr inbounds i8, ptr %213, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %213, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %214, align 8, !tbaa !9
  %215 = getelementptr inbounds double, ptr %43, i64 %212
  %216 = getelementptr inbounds i8, ptr %215, i64 16
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %215, align 8, !tbaa !9
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %216, align 8, !tbaa !9
  %index.next453 = add nuw i64 %index451, 4
  %217 = icmp eq i64 %index.next453, %n.vec447
  br i1 %217, label %middle.block442, label %vector.body450, !llvm.loop !18

middle.block442:                                  ; preds = %vector.body450
  %cmp.n454 = icmp eq i64 %n.vec447, %198
  br i1 %cmp.n454, label %._crit_edge, label %.thread351.us.us.preheader477

.thread351.us.us.preheader477:                    ; preds = %middle.block442, %vector.memcheck, %.thread351.us.us.preheader
  %indvars.iv381.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.thread351.us.us.preheader ], [ %ind.end448, %middle.block442 ]
  %218 = zext nneg i32 %102 to i64
  %219 = and i32 %102, 1
  %lcmp.mod.not = icmp eq i32 %219, 0
  br i1 %lcmp.mod.not, label %.thread351.us.us.prol.loopexit, label %.thread351.us.us.prol

.thread351.us.us.prol:                            ; preds = %.thread351.us.us.preheader477
  %220 = getelementptr inbounds double, ptr %48, i64 %indvars.iv381.ph
  store double 1.000000e+00, ptr %220, align 8, !tbaa !9
  %221 = add nsw i64 %indvars.iv381.ph, %193
  %222 = getelementptr inbounds double, ptr %44, i64 %221
  store double 1.000000e+00, ptr %222, align 8, !tbaa !9
  %223 = getelementptr inbounds double, ptr %43, i64 %221
  store double 1.000000e+00, ptr %223, align 8, !tbaa !9
  %indvars.iv.next382.prol = add nuw nsw i64 %indvars.iv381.ph, 1
  br label %.thread351.us.us.prol.loopexit

.thread351.us.us.prol.loopexit:                   ; preds = %.thread351.us.us.prol, %.thread351.us.us.preheader477
  %indvars.iv381.unr = phi i64 [ %indvars.iv381.ph, %.thread351.us.us.preheader477 ], [ %indvars.iv.next382.prol, %.thread351.us.us.prol ]
  %224 = icmp eq i64 %indvars.iv381.ph, %218
  br i1 %224, label %._crit_edge, label %.thread351.us.us

.thread351.us.us:                                 ; preds = %.thread351.us.us.prol.loopexit, %.thread351.us.us
  %indvars.iv381 = phi i64 [ %indvars.iv.next382.1, %.thread351.us.us ], [ %indvars.iv381.unr, %.thread351.us.us.prol.loopexit ]
  %225 = getelementptr inbounds double, ptr %48, i64 %indvars.iv381
  store double 1.000000e+00, ptr %225, align 8, !tbaa !9
  %226 = add nsw i64 %indvars.iv381, %193
  %227 = getelementptr inbounds double, ptr %44, i64 %226
  store double 1.000000e+00, ptr %227, align 8, !tbaa !9
  %228 = getelementptr inbounds double, ptr %43, i64 %226
  store double 1.000000e+00, ptr %228, align 8, !tbaa !9
  %indvars.iv.next382 = add nuw nsw i64 %indvars.iv381, 1
  %229 = getelementptr double, ptr %15, i64 %indvars.iv381
  store double 1.000000e+00, ptr %229, align 8, !tbaa !9
  %230 = add nsw i64 %indvars.iv.next382, %193
  %231 = getelementptr inbounds double, ptr %44, i64 %230
  store double 1.000000e+00, ptr %231, align 8, !tbaa !9
  %232 = getelementptr inbounds double, ptr %43, i64 %230
  store double 1.000000e+00, ptr %232, align 8, !tbaa !9
  %indvars.iv.next382.1 = add nuw nsw i64 %indvars.iv381, 2
  %exitcond385.not.1 = icmp eq i64 %indvars.iv.next382.1, %wide.trip.count384
  br i1 %exitcond385.not.1, label %._crit_edge, label %.thread351.us.us, !llvm.loop !19

.lr.ph.split.us.split:                            ; preds = %.lr.ph.split.us.split.preheader, %.thread351.us
  %indvars.iv376 = phi i64 [ 1, %.lr.ph.split.us.split.preheader ], [ %indvars.iv.next377, %.thread351.us ]
  %233 = getelementptr inbounds double, ptr %48, i64 %indvars.iv376
  store double 1.000000e+00, ptr %233, align 8, !tbaa !9
  %234 = add nsw i64 %indvars.iv376, %193
  %235 = getelementptr inbounds double, ptr %44, i64 %234
  store double 1.000000e+00, ptr %235, align 8, !tbaa !9
  %236 = getelementptr inbounds double, ptr %43, i64 %234
  store double 1.000000e+00, ptr %236, align 8, !tbaa !9
  %237 = add nsw i64 %indvars.iv376, %194
  %238 = getelementptr inbounds double, ptr %44, i64 %237
  store double 1.000000e+00, ptr %238, align 8, !tbaa !9
  %239 = getelementptr inbounds double, ptr %43, i64 %237
  store double 1.000000e+00, ptr %239, align 8, !tbaa !9
  br i1 %186, label %240, label %.thread351.us

240:                                              ; preds = %.lr.ph.split.us.split
  %241 = add nsw i64 %indvars.iv376, %195
  %242 = getelementptr inbounds double, ptr %44, i64 %241
  store double 0.000000e+00, ptr %242, align 8, !tbaa !9
  %243 = getelementptr inbounds double, ptr %43, i64 %241
  store double 0.000000e+00, ptr %243, align 8, !tbaa !9
  br label %.thread351.us

.thread351.us:                                    ; preds = %240, %.lr.ph.split.us.split
  %indvars.iv.next377 = add nuw nsw i64 %indvars.iv376, 1
  %exitcond380.not = icmp eq i64 %indvars.iv.next377, %wide.trip.count379
  br i1 %exitcond380.not, label %._crit_edge, label %.lr.ph.split.us.split, !llvm.loop !20

.thread351:                                       ; preds = %.thread351.preheader479, %.thread351
  %indvars.iv = phi i64 [ %indvars.iv.next, %.thread351 ], [ %indvars.iv.ph, %.thread351.preheader479 ]
  %244 = getelementptr inbounds double, ptr %48, i64 %indvars.iv
  store double 1.000000e+00, ptr %244, align 8, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.thread351, !llvm.loop !21

._crit_edge:                                      ; preds = %.thread351, %.thread351.us, %.thread351.us.us.prol.loopexit, %.thread351.us.us, %middle.block, %middle.block442
  store i8 73, ptr %33, align 1, !tbaa !22
  %245 = call double @dlansy_(ptr noundef nonnull %33, ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %21) #6
  store double %245, ptr %35, align 8, !tbaa !9
  call void @dsycon_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %35, ptr noundef nonnull %14, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %23) #6
  br i1 %82, label %256, label %246

246:                                              ; preds = %._crit_edge
  %247 = call i32 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i32 %247, ptr %37, align 4, !tbaa !5
  %248 = load i32, ptr %2, align 4, !tbaa !5
  %249 = sext i32 %248 to i64
  %250 = getelementptr double, ptr %49, i64 %249
  %251 = getelementptr i8, ptr %250, i64 8
  %252 = shl i32 %248, 1
  %253 = or disjoint i32 %252, 1
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds double, ptr %49, i64 %254
  call void @dla_syrfsx_extended_(ptr noundef nonnull %37, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %36, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef nonnull %39, ptr noundef %17, ptr noundef %18, ptr noundef %251, ptr noundef %21, ptr noundef nonnull %255, ptr noundef %21, ptr noundef nonnull %14, ptr noundef nonnull %38, ptr noundef nonnull %40, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %23) #6
  br label %256

256:                                              ; preds = %246, %._crit_edge
  %257 = load i32, ptr %2, align 4, !tbaa !5
  %258 = sitofp i32 %257 to double
  %259 = call double @sqrt(double noundef %258) #6
  %260 = fcmp ole double %259, 1.000000e+01
  %261 = select i1 %260, double 1.000000e+01, double %259
  %262 = call double @dlamch_(ptr noundef nonnull @.str) #6
  %263 = fmul double %262, %261
  %264 = load i32, ptr %16, align 4, !tbaa !5
  %265 = icmp sgt i32 %264, 0
  %266 = load i32, ptr %39, align 4
  %267 = icmp sgt i32 %266, 0
  %or.cond = select i1 %265, i1 %267, i1 false
  br i1 %or.cond, label %268, label %.loopexit355

268:                                              ; preds = %256
  %269 = load i32, ptr %36, align 4, !tbaa !5
  %.not335 = icmp eq i32 %269, 0
  %c__0.c_n1 = select i1 %.not335, ptr @c__0, ptr @c_n1
  %270 = call double @dla_syrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %c__0.c_n1, ptr noundef %9, ptr noundef nonnull %23, ptr noundef %21, ptr noundef %22) #6
  %271 = load i32, ptr %3, align 4, !tbaa !5
  %.not336358 = icmp slt i32 %271, 1
  %.pre408 = load i32, ptr %16, align 4, !tbaa !5
  br i1 %.not336358, label %.loopexit355, label %.lr.ph361

.lr.ph361:                                        ; preds = %268
  %272 = shl i32 %41, 1
  %273 = fcmp olt double %270, %62
  %274 = mul nsw i32 %41, 3
  %275 = sext i32 %272 to i64
  %276 = sext i32 %41 to i64
  %277 = sext i32 %274 to i64
  %278 = add nuw i32 %271, 1
  %wide.trip.count389 = zext i32 %278 to i64
  %invariant.gep415 = getelementptr double, ptr %44, i64 %275
  %invariant.gep417 = getelementptr double, ptr %44, i64 %275
  %invariant.gep419 = getelementptr double, ptr %44, i64 %276
  %invariant.gep421 = getelementptr double, ptr %44, i64 %275
  %invariant.gep423 = getelementptr double, ptr %44, i64 %276
  %invariant.gep425 = getelementptr double, ptr %44, i64 %277
  br label %279

279:                                              ; preds = %.lr.ph361, %301
  %280 = phi i32 [ %.pre408, %.lr.ph361 ], [ %298, %301 ]
  %indvars.iv386 = phi i64 [ 1, %.lr.ph361 ], [ %indvars.iv.next387, %301 ]
  %281 = icmp sgt i32 %280, 1
  br i1 %281, label %282, label %286

282:                                              ; preds = %279
  %gep416 = getelementptr double, ptr %invariant.gep415, i64 %indvars.iv386
  %283 = load double, ptr %gep416, align 8, !tbaa !9
  %284 = fcmp ogt double %283, 1.000000e+00
  br i1 %284, label %285, label %286

285:                                              ; preds = %282
  store double 1.000000e+00, ptr %gep416, align 8, !tbaa !9
  br label %286

286:                                              ; preds = %285, %282, %279
  br i1 %273, label %287, label %293

287:                                              ; preds = %286
  %gep422 = getelementptr double, ptr %invariant.gep421, i64 %indvars.iv386
  store double 1.000000e+00, ptr %gep422, align 8, !tbaa !9
  %gep424 = getelementptr double, ptr %invariant.gep423, i64 %indvars.iv386
  store double 0.000000e+00, ptr %gep424, align 8, !tbaa !9
  %288 = load i32, ptr %23, align 4, !tbaa !5
  %289 = load i32, ptr %2, align 4, !tbaa !5
  %.not339 = icmp sgt i32 %288, %289
  br i1 %.not339, label %297, label %290

290:                                              ; preds = %287
  %291 = trunc nuw nsw i64 %indvars.iv386 to i32
  %292 = add nsw i32 %289, %291
  store i32 %292, ptr %23, align 4, !tbaa !5
  %.pre407 = load i32, ptr %16, align 4, !tbaa !5
  br label %297

293:                                              ; preds = %286
  %gep418 = getelementptr double, ptr %invariant.gep417, i64 %indvars.iv386
  %294 = load double, ptr %gep418, align 8, !tbaa !9
  %295 = fcmp olt double %294, %263
  br i1 %295, label %296, label %297

296:                                              ; preds = %293
  store double %263, ptr %gep418, align 8, !tbaa !9
  %gep420 = getelementptr double, ptr %invariant.gep419, i64 %indvars.iv386
  store double 1.000000e+00, ptr %gep420, align 8, !tbaa !9
  br label %297

297:                                              ; preds = %293, %296, %287, %290
  %298 = phi i32 [ %280, %293 ], [ %280, %296 ], [ %280, %287 ], [ %.pre407, %290 ]
  %299 = icmp sgt i32 %298, 2
  br i1 %299, label %300, label %301

300:                                              ; preds = %297
  %gep426 = getelementptr double, ptr %invariant.gep425, i64 %indvars.iv386
  store double %270, ptr %gep426, align 8, !tbaa !9
  br label %301

301:                                              ; preds = %297, %300
  %indvars.iv.next387 = add nuw nsw i64 %indvars.iv386, 1
  %exitcond390.not = icmp eq i64 %indvars.iv.next387, %wide.trip.count389
  br i1 %exitcond390.not, label %.loopexit355, label %279, !llvm.loop !23

.loopexit355:                                     ; preds = %301, %268, %256
  %302 = phi i32 [ %.pre408, %268 ], [ %264, %256 ], [ %298, %301 ]
  %303 = icmp sgt i32 %302, 0
  %304 = load i32, ptr %39, align 4
  %305 = icmp sgt i32 %304, 1
  %or.cond3 = select i1 %303, i1 %305, i1 false
  br i1 %or.cond3, label %306, label %.loopexit

306:                                              ; preds = %.loopexit355
  %307 = call double @dlamch_(ptr noundef nonnull @.str) #6
  %308 = call double @sqrt(double noundef %307) #6
  %309 = load i32, ptr %3, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %47, i64 8
  %.not337362 = icmp slt i32 %309, 1
  br i1 %.not337362, label %.loopexit, label %.lr.ph365

.lr.ph365:                                        ; preds = %306
  %310 = shl i32 %41, 1
  %311 = mul nsw i32 %41, 3
  %312 = sext i32 %310 to i64
  %313 = sext i32 %45 to i64
  %314 = sext i32 %41 to i64
  %315 = sext i32 %311 to i64
  %invariant.gep427 = getelementptr double, ptr %43, i64 %312
  %invariant.gep429 = getelementptr double, ptr %43, i64 %314
  %invariant.gep431 = getelementptr double, ptr %43, i64 %314
  %invariant.gep433 = getelementptr double, ptr %43, i64 %315
  %316 = zext nneg i32 %309 to i64
  br label %317

317:                                              ; preds = %.lr.ph365, %349
  %indvars.iv391 = phi i64 [ 1, %.lr.ph365 ], [ %indvars.iv.next392, %349 ]
  %gep428 = getelementptr double, ptr %invariant.gep427, i64 %indvars.iv391
  %318 = load double, ptr %gep428, align 8, !tbaa !9
  %319 = fcmp olt double %318, %308
  br i1 %319, label %320, label %323

320:                                              ; preds = %317
  %321 = mul nsw i64 %indvars.iv391, %313
  %gep = getelementptr double, ptr %invariant.gep, i64 %321
  %322 = call double @dla_syrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %23, ptr noundef %21, ptr noundef %22) #6
  br label %323

323:                                              ; preds = %317, %320
  %.1 = phi double [ %322, %320 ], [ 0.000000e+00, %317 ]
  %324 = load i32, ptr %16, align 4, !tbaa !5
  %325 = icmp sgt i32 %324, 1
  br i1 %325, label %326, label %330

326:                                              ; preds = %323
  %327 = load double, ptr %gep428, align 8, !tbaa !9
  %328 = fcmp ogt double %327, 1.000000e+00
  br i1 %328, label %329, label %330

329:                                              ; preds = %326
  store double 1.000000e+00, ptr %gep428, align 8, !tbaa !9
  br label %330

330:                                              ; preds = %329, %326, %323
  %331 = fcmp olt double %.1, %62
  br i1 %331, label %332, label %341

332:                                              ; preds = %330
  store double 1.000000e+00, ptr %gep428, align 8, !tbaa !9
  %gep432 = getelementptr double, ptr %invariant.gep431, i64 %indvars.iv391
  store double 0.000000e+00, ptr %gep432, align 8, !tbaa !9
  %333 = load i32, ptr %34, align 4, !tbaa !5
  %.not338 = icmp eq i32 %333, 0
  br i1 %.not338, label %334, label %345

334:                                              ; preds = %332
  %335 = load i32, ptr %23, align 4, !tbaa !5
  %336 = load i32, ptr %2, align 4, !tbaa !5
  %337 = trunc nuw nsw i64 %indvars.iv391 to i32
  %338 = add nsw i32 %336, %337
  %339 = icmp slt i32 %335, %338
  br i1 %339, label %340, label %345

340:                                              ; preds = %334
  store i32 %338, ptr %23, align 4, !tbaa !5
  %.pre = load i32, ptr %16, align 4, !tbaa !5
  br label %345

341:                                              ; preds = %330
  %342 = load double, ptr %gep428, align 8, !tbaa !9
  %343 = fcmp olt double %342, %263
  br i1 %343, label %344, label %345

344:                                              ; preds = %341
  store double %263, ptr %gep428, align 8, !tbaa !9
  %gep430 = getelementptr double, ptr %invariant.gep429, i64 %indvars.iv391
  store double 1.000000e+00, ptr %gep430, align 8, !tbaa !9
  br label %345

345:                                              ; preds = %341, %344, %332, %334, %340
  %346 = phi i32 [ %324, %341 ], [ %324, %344 ], [ %324, %332 ], [ %324, %334 ], [ %.pre, %340 ]
  %347 = icmp sgt i32 %346, 2
  br i1 %347, label %348, label %349

348:                                              ; preds = %345
  %gep434 = getelementptr double, ptr %invariant.gep433, i64 %indvars.iv391
  store double %.1, ptr %gep434, align 8, !tbaa !9
  br label %349

349:                                              ; preds = %345, %348
  %indvars.iv.next392 = add nuw nsw i64 %indvars.iv391, 1
  %.not337.not = icmp ult i64 %indvars.iv391, %316
  br i1 %.not337.not, label %317, label %.loopexit, !llvm.loop !24

.loopexit:                                        ; preds = %349, %.thread348.us, %.thread348.us.us.prol.loopexit, %.thread348.us.us, %middle.block461, %.thread409, %.thread348.preheader, %306, %124, %.loopexit355, %.thread344
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  ret void
}

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @dsycon_(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 i32 @ilaprec_(ptr noundef) local_unnamed_addr #2

declare void @dla_syrfsx_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) local_unnamed_addr #2

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

declare double @dla_syrcond_(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 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 i32 @llvm.umax.i32(i32, i32) #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 = !{!"int", !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}
!17 = distinct !{!17, !12, !13, !14}
!18 = distinct !{!18, !12, !13, !14}
!19 = distinct !{!19, !12, !13}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12, !14, !13}
!22 = !{!7, !7, i64 0}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !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